<commit_before>(function() {

    "use strict";

    var seedrandom = require('seedrandom');
    var randomSeed = (new Date()).getTime();

    // must be first
    seedrandom(randomSeed, {
        global: true
    });

    var chalk = require('chalk');
    var math = require('mathjs');
    var jpeg = require('jpeg-js');
    var R = require('ramda');
    var Rp = require('./plus-fp/plus-fp');

    var clr = require('./color');

    var path = require('path');
    var promise = require("bluebird");
    var fs = promise.promisifyAll(require('fs'));

    // load jpeg

    function loadJpeg(filename) {

        var jpegData = fs.readFileSync(filename);

        var rawImageData = jpeg.decode(jpegData);

        var data = R.times(() => [], rawImageData.height);

        var rawData = rawImageData.data;
        var w = rawImageData.width;
        var h = rawImageData.height;

        for (var d = 0; d < rawImageData.width * rawImageData.height * 4; d += 4) {
            let rgb = {};

            rgb.r = rawData[d];
            rgb.g = rawData[d + 1];
            rgb.b = rawData[d + 2];

            let d1 = d / 4;

            let x = math.floor(d1 / w);
            let y = d1 - x * w;

            data[y][x] = {
                rgb: rgb
            };
        }

        return {
            data: data,
            width: w,
            height: h
        };
    }

    function num2hex(d) {
      return (d < 16 ? "0" : "") + d.toString(16);
    }

    // ------------ output to html+three.js

    var create3d = function(filename) {

        return new promise(function(resolve) {

            console.log(chalk.yellow(filename));

            var jpeg = loadJpeg(filename);

            let data = jpeg.data;
            let inputWidth = jpeg.width;
            let inputHeight = jpeg.height;

            var outputFilename = filename.replace(/\.jpg/, '.html');

            var outputWidth = inputWidth;
            var outputHeight = inputHeight;

            var maxz = 100 + Rp.bandomInt(outputHeight - 100, 3);
            console.log('maxz ' , maxz);

            try {
                var outf = fs.createWriteStream(`${outputFilename}`);

                outf.write(`<!DOCTYPE html>
                <html lang='en'>
                <head>
                    <meta charset='UTF-8'>
                    <title>${outputFilename}</title>
                    <script src='https://cdnjs.cloudflare.com/ajax/libs/three.js/r73/three.min.js'></script>
                </head>
                <body style='margin:0; padding:0; overflow: hidden'>\n`);

                // add line
                outf.write(`<script>
                function al(scene, x3, y3, z3, color) {
                  var geometry = new THREE.Geometry();

                  geometry.vertices.push(
                    new THREE.Vector3( x3, y3, 0 ),
                    new THREE.Vector3( x3, y3, z3 )
                  );

                  var material = new THREE.LineBasicMaterial({
                    color: color
                  });

                  var line = new THREE.Line( geometry, material );

                  scene.add(line);
                }
                </script>\n`);

                outf.write(`<script>
                  draw();

                  function draw() {

                      var width = ${outputWidth};
                      var height = ${outputHeight};

                      var s = new THREE.Scene();

                      var planeGeometry = new THREE.PlaneGeometry(width, height);
                      var planeMaterial = new THREE.MeshBasicMaterial({color: 0xff6600});
                      var plane = new THREE.Mesh(planeGeometry, planeMaterial);
                \n`);

                // outf.write(`
                //       var planeGeometry = new THREE.PlaneGeometry(width, height);
                //       var planeMaterial = new THREE.MeshBasicMaterial({color: 0xff6600});
                //       var plane = new THREE.Mesh(planeGeometry, planeMaterial);

                //       // rotate and position the plane
                //       plane.rotation.x = -0.5 * Math.PI;
                //       plane.position.x = 15;
                //       plane.position.y = 0;
                //       plane.position.z = 0;

                //       s.add(plane);
                // \n`);

                let xy = [];

                for (let y = 0; y < outputHeight; y++) {

                    for (let x = 0; x < outputWidth; x++) {
                        xy.push({
                            x: x,
                            y: y
                        });
                    }
                }

                // use a small % of points otherwise too big to render
                xy = R.sortBy(() => math.random(), xy);
                xy = R.take(xy.length * 0.75, xy);
                // xy = R.take(1000, xy); // debug

                for (let k = 0; k < xy.length; k++) {

                    let yy = xy[k].y;
                    let xx = xy[k].x;

                    let x = xx + inputWidth / 2 - outputWidth / 2;
                    let y = yy + inputHeight / 2 - outputHeight / 2;
                    let rgb = data[x][y].rgb;

                    let hsl = clr.rgb2hsl(rgb);

                    // 3d coords
                    let x3 = (x / inputWidth) * outputWidth - outputWidth / 2;
                    let y3 = - ((y / inputHeight) * outputHeight - outputHeight / 2);

                    let z3 = math.round(hsl.l * maxz, 0); /// outputHeight;

                    outf.write(`al(s, ${x3}, ${y3}, ${z3}, 0x${num2hex(rgb.r)}${num2hex(rgb.g)}${num2hex(rgb.b)});\n`);
                }

                // end

                let backgroundColor = '0x000000';

                outf.write(`
                  var renderer = new THREE.WebGLRenderer();

                  var camera = new THREE.PerspectiveCamera( 75, width / height, 0.1, 1000 );

                  camera.position.x = ${ Rp.bandomInt(outputWidth / 2, 2) * Rp.randomSign()};
                  camera.position.y = ${ Rp.bandomInt(outputHeight / 2, 2) * Rp.randomSign()};
                  camera.position.z = ${ Rp.bandomInt(1000, -2)};

                  camera.lookAt(s.position);

                  renderer.setClearColor(new THREE.Color(${backgroundColor}));

                  renderer.setSize( width, height );

                  document.body.appendChild( renderer.domElement );

                  renderer.render( s, camera );
                \n`);

                outf.write(`}
                      </script>
                  </body>
                  </html>
                  \n`);

                data = null;
                jpeg.data = null;
                jpeg = null;
                xy = null;

                outf.end(function() {
                    outf = null;
                    resolve();
                });
            } catch (ex) {
                console.log(chalk.red('error'), ex);

                resolve();
            }

        });
    };

    // process file

    var processFiles = function() {

        if (process.argv.length > 2) {

            var files = R.tail(R.tail(process.argv));

            files = R.filter((f) => path.extname(f) === '.jpg', files);

            // console.log(files);

            promise.each(files, create3d).then(function() {});
        }
        else {
            console.log('usage: node 3d-image path ...');
        }

    };

    // kick off

    processFiles();

}());
<commit_msg>less points<commit_after>(function() {

    "use strict";

    var seedrandom = require('seedrandom');
    var randomSeed = (new Date()).getTime();

    // must be first
    seedrandom(randomSeed, {
        global: true
    });

    var chalk = require('chalk');
    var math = require('mathjs');
    var jpeg = require('jpeg-js');
    var R = require('ramda');
    var Rp = require('./plus-fp/plus-fp');

    var clr = require('./color');

    var path = require('path');
    var promise = require("bluebird");
    var fs = promise.promisifyAll(require('fs'));

    // load jpeg

    function loadJpeg(filename) {

        var jpegData = fs.readFileSync(filename);

        var rawImageData = jpeg.decode(jpegData);

        var data = R.times(() => [], rawImageData.height);

        var rawData = rawImageData.data;
        var w = rawImageData.width;
        var h = rawImageData.height;

        for (var d = 0; d < rawImageData.width * rawImageData.height * 4; d += 4) {
            let rgb = {};

            rgb.r = rawData[d];
            rgb.g = rawData[d + 1];
            rgb.b = rawData[d + 2];

            let d1 = d / 4;

            let x = math.floor(d1 / w);
            let y = d1 - x * w;

            data[y][x] = {
                rgb: rgb
            };
        }

        return {
            data: data,
            width: w,
            height: h
        };
    }

    function num2hex(d) {
      return (d < 16 ? "0" : "") + d.toString(16);
    }

    // ------------ output to html+three.js

    var create3d = function(filename) {

        return new promise(function(resolve) {

            console.log(chalk.yellow(filename));

            var jpeg = loadJpeg(filename);

            let data = jpeg.data;
            let inputWidth = jpeg.width;
            let inputHeight = jpeg.height;

            var outputFilename = filename.replace(/\.jpg/, '.html');

            var outputWidth = inputWidth;
            var outputHeight = inputHeight;

            var maxz = 100 + Rp.bandomInt(outputHeight - 100, 3);
            console.log('maxz ' , maxz);

            try {
                var outf = fs.createWriteStream(`${outputFilename}`);

                outf.write(`<!DOCTYPE html>
                <html lang='en'>
                <head>
                    <meta charset='UTF-8'>
                    <title>${outputFilename}</title>
                    <script src='https://cdnjs.cloudflare.com/ajax/libs/three.js/r73/three.min.js'></script>
                </head>
                <body style='margin:0; padding:0; overflow: hidden'>\n`);

                // add line
                outf.write(`<script>
                function al(scene, x3, y3, z3, color) {
                  var geometry = new THREE.Geometry();

                  geometry.vertices.push(
                    new THREE.Vector3( x3, y3, 0 ),
                    new THREE.Vector3( x3, y3, z3 )
                  );

                  var material = new THREE.LineBasicMaterial({
                    color: color
                  });

                  var line = new THREE.Line( geometry, material );

                  scene.add(line);
                }
                </script>\n`);

                outf.write(`<script>
                  draw();

                  function draw() {

                      var width = ${outputWidth};
                      var height = ${outputHeight};

                      var s = new THREE.Scene();

                      var planeGeometry = new THREE.PlaneGeometry(width, height);
                      var planeMaterial = new THREE.MeshBasicMaterial({color: 0xff6600});
                      var plane = new THREE.Mesh(planeGeometry, planeMaterial);
                \n`);

                // outf.write(`
                //       var planeGeometry = new THREE.PlaneGeometry(width, height);
                //       var planeMaterial = new THREE.MeshBasicMaterial({color: 0xff6600});
                //       var plane = new THREE.Mesh(planeGeometry, planeMaterial);

                //       // rotate and position the plane
                //       plane.rotation.x = -0.5 * Math.PI;
                //       plane.position.x = 15;
                //       plane.position.y = 0;
                //       plane.position.z = 0;

                //       s.add(plane);
                // \n`);

                let xy = [];

                for (let y = 0; y < outputHeight; y++) {

                    for (let x = 0; x < outputWidth; x++) {
                        xy.push({
                            x: x,
                            y: y
                        });
                    }
                }

                // use a small % of points otherwise too big to render
                xy = R.sortBy(() => math.random(), xy);
                xy = R.take(xy.length * 0.4, xy);
                // xy = R.take(1000, xy); // debug

                for (let k = 0; k < xy.length; k++) {

                    let yy = xy[k].y;
                    let xx = xy[k].x;

                    let x = xx + inputWidth / 2 - outputWidth / 2;
                    let y = yy + inputHeight / 2 - outputHeight / 2;
                    let rgb = data[x][y].rgb;

                    let hsl = clr.rgb2hsl(rgb);

                    // 3d coords
                    let x3 = (x / inputWidth) * outputWidth - outputWidth / 2;
                    let y3 = - ((y / inputHeight) * outputHeight - outputHeight / 2);

                    let z3 = math.round(hsl.l * maxz, 0); /// outputHeight;

                    outf.write(`al(s, ${x3}, ${y3}, ${z3}, 0x${num2hex(rgb.r)}${num2hex(rgb.g)}${num2hex(rgb.b)});\n`);
                }

                // end

                let backgroundColor = '0x000000';

                outf.write(`
                  var renderer = new THREE.WebGLRenderer();

                  var camera = new THREE.PerspectiveCamera( 75, width / height, 0.1, 1000 );

                  camera.position.x = ${ Rp.bandomInt(outputWidth / 2, 2) * Rp.randomSign()};
                  camera.position.y = ${ Rp.bandomInt(outputHeight / 2, 2) * Rp.randomSign()};
                  camera.position.z = ${ Rp.bandomInt(1000, -2)};

                  camera.lookAt(s.position);

                  renderer.setClearColor(new THREE.Color(${backgroundColor}));

                  renderer.setSize( width, height );

                  document.body.appendChild( renderer.domElement );

                  renderer.render( s, camera );
                \n`);

                outf.write(`}
                      </script>
                  </body>
                  </html>
                  \n`);

                data = null;
                jpeg.data = null;
                jpeg = null;
                xy = null;

                outf.end(function() {
                    outf = null;
                    resolve();
                });
            } catch (ex) {
                console.log(chalk.red('error'), ex);

                resolve();
            }

        });
    };

    // process file

    var processFiles = function() {

        if (process.argv.length > 2) {

            var files = R.tail(R.tail(process.argv));

            files = R.filter((f) => path.extname(f) === '.jpg', files);

            // console.log(files);

            promise.each(files, create3d).then(function() {});
        }
        else {
            console.log('usage: node 3d-image path ...');
        }

    };

    // kick off

    processFiles();

}());
<|endoftext|>


<commit_before>var app = require('express').createServer();
var sys = require('sys');

var client = require("./lib/redis-client").createClient();

app.get('/', function(req, res){
        res.send('hello world');
    });

app.listen(8124);
<commit_msg>Formatting.<commit_after>var app = require('express').createServer();
var sys = require('sys');

var client = require("./lib/redis-client").createClient();

app.get('/', function(req, res){
    res.send('hello world');
});

app.get('/users', function(req, res){
    var userlist = "User List\n"
    client.keys("user:*:name", function(err,reply){
        sys.print(reply);
        userlist=String(reply)
        res.send(userlist);
        client.get(reply, function(err,reply){
        });
    });
});

app.listen(8124);
<|endoftext|>


<commit_before>/*
 *
 * PostViewer
 *
 */

import React from 'react'
import PropTypes from 'prop-types'
import { inject, observer } from 'mobx-react'
import R from 'ramda'

import { makeDebugger, storePlug, THREAD } from 'utils'

import Comments from 'containers/Comments'
import Labeler from 'containers/Labeler'
import ArticleViewerHeader from 'containers/ArticleViewerHeader'
import ArticleBodyHeader from 'containers/ArticleBodyHeader'

import Maybe from 'components/Maybe'
import MarkDownRender from 'components/MarkDownRender'
import { ArticleContentLoading } from 'components/LoadingEffects'

import {
  BodyWrapper,
  CommentsWrapper,
  ArticleTitle,
  ArticleBody,
  Footer,
} from './styles'

import * as logic from './logic'
/* eslint-disable-next-line */
const debug = makeDebugger('C:PostViewer')

class PostViewerContainer extends React.Component {
  componentDidMount() {
    const { postViewer, attachment } = this.props
    logic.init(postViewer, attachment)
  }

  componentWillUnmount() {
    logic.uninit()
  }

  render() {
    const { postViewer } = this.props
    const { curCommunity, viewingData, loading } = postViewer

    const tagTitleList = R.pluck('title', viewingData.tags)

    return (
      <React.Fragment>
        <ArticleViewerHeader data={viewingData} author={viewingData.author} />
        <BodyWrapper>
          <ArticleBodyHeader
            communityRaw={curCommunity.raw}
            thread={THREAD.POST}
            data={viewingData}
          />
          <ArticleTitle>{viewingData.title}</ArticleTitle>
          <Maybe test={!loading} loading={<ArticleContentLoading num={2} />}>
            <ArticleBody>
              <MarkDownRender body={viewingData.body} />
            </ArticleBody>
          </Maybe>
          <Footer>
            <Labeler
              passport={`owner;${curCommunity.raw}->${THREAD.POST}.tag.set`}
              ownerId={viewingData.author.id}
              fallbackProps="readOnly"
              onTagSelect={logic.onTagSelect}
              onTagUnselect={logic.onTagUnselect}
              selected={tagTitleList}
            />
          </Footer>
        </BodyWrapper>

        <CommentsWrapper>
          <Comments onCreate={logic.onCommentCreate} />
        </CommentsWrapper>
      </React.Fragment>
    )
  }
}

PostViewerContainer.propTypes = {
  postViewer: PropTypes.object.isRequired,
  attachment: PropTypes.any,
}

PostViewerContainer.defaultProps = {
  attachment: {},
}

export default inject(storePlug('postViewer'))(observer(PostViewerContainer))
<commit_msg>fix(tags): owner can not update tag<commit_after>/*
 *
 * PostViewer
 *
 */

import React from 'react'
import PropTypes from 'prop-types'
import { inject, observer } from 'mobx-react'
import R from 'ramda'

import { makeDebugger, storePlug, THREAD } from 'utils'

import Comments from 'containers/Comments'
import Labeler from 'containers/Labeler'
import ArticleViewerHeader from 'containers/ArticleViewerHeader'
import ArticleBodyHeader from 'containers/ArticleBodyHeader'

import Maybe from 'components/Maybe'
import MarkDownRender from 'components/MarkDownRender'
import { ArticleContentLoading } from 'components/LoadingEffects'

import {
  BodyWrapper,
  CommentsWrapper,
  ArticleTitle,
  ArticleBody,
  Footer,
} from './styles'

import * as logic from './logic'
/* eslint-disable-next-line */
const debug = makeDebugger('C:PostViewer')

class PostViewerContainer extends React.Component {
  componentDidMount() {
    const { postViewer, attachment } = this.props
    logic.init(postViewer, attachment)
  }

  componentWillUnmount() {
    logic.uninit()
  }

  render() {
    const { postViewer } = this.props
    const { curCommunity, viewingData, loading } = postViewer

    const tagTitleList = R.pluck('title', viewingData.tags)

    return (
      <React.Fragment>
        <ArticleViewerHeader data={viewingData} author={viewingData.author} />
        <BodyWrapper>
          <ArticleBodyHeader
            communityRaw={curCommunity.raw}
            thread={THREAD.POST}
            data={viewingData}
          />
          <ArticleTitle>{viewingData.title}</ArticleTitle>
          <Maybe test={!loading} loading={<ArticleContentLoading num={2} />}>
            <ArticleBody>
              <MarkDownRender body={viewingData.body} />
            </ArticleBody>
          </Maybe>
          <Footer>
            <Labeler
              passport={`${curCommunity.raw}->${THREAD.POST}.tag.set`}
              ownerId={viewingData.author.id}
              fallbackProps="readOnly"
              onTagSelect={logic.onTagSelect}
              onTagUnselect={logic.onTagUnselect}
              selected={tagTitleList}
            />
          </Footer>
        </BodyWrapper>

        <CommentsWrapper>
          <Comments onCreate={logic.onCommentCreate} />
        </CommentsWrapper>
      </React.Fragment>
    )
  }
}

PostViewerContainer.propTypes = {
  postViewer: PropTypes.object.isRequired,
  attachment: PropTypes.any,
}

PostViewerContainer.defaultProps = {
  attachment: {},
}

export default inject(storePlug('postViewer'))(observer(PostViewerContainer))
<|endoftext|>


<commit_before>// Node modules.
import React from 'react';
import PropTypes from 'prop-types';
import EmergencyBanner from '@department-of-veterans-affairs/component-library/EmergencyBanner';
import MaintenanceBanner from '@department-of-veterans-affairs/component-library/MaintenanceBanner';
// Relative imports.
import config from '../../config/maintenanceBanner';
import environment from 'platform/utilities/environment';
import recordEvent from 'platform/monitoring/record-event';

export const Banners = ({
  homepageBannerContent,
  homepageBannerTitle,
  homepageBannerType,
  homepageBannerVisible,
}) => (
  <>
    {/* Homepage Banner */}
    <EmergencyBanner
      content={homepageBannerContent}
      localStorage={localStorage}
      recordEvent={recordEvent}
      showClose={!environment.isProduction()}
      title={homepageBannerTitle}
      type={homepageBannerType}
      visible={homepageBannerVisible === 'true'}
    />

    {/* Maintenance Banner */}
    <MaintenanceBanner
      content={config.content}
      expiresAt={config.expiresAt}
      id={config.id}
      localStorage={localStorage}
      startsAt={config.startsAt}
      title={config.title}
      warnContent={config.warnContent}
      warnStartsAt={config.warnStartsAt}
      warnTitle={config.warnTitle}
    />
  </>
);

Banners.propTypes = {
  homepageBannerContent: PropTypes.string.isRequired,
  homepageBannerTitle: PropTypes.string.isRequired,
  homepageBannerType: PropTypes.string.isRequired,
  homepageBannerVisible: PropTypes.string.isRequired,
};

export default Banners;
<commit_msg>Always show close (#18012)<commit_after>// Node modules.
import React from 'react';
import PropTypes from 'prop-types';
import EmergencyBanner from '@department-of-veterans-affairs/component-library/EmergencyBanner';
import MaintenanceBanner from '@department-of-veterans-affairs/component-library/MaintenanceBanner';
// Relative imports.
import config from '../../config/maintenanceBanner';
import recordEvent from 'platform/monitoring/record-event';

export const Banners = ({
  homepageBannerContent,
  homepageBannerTitle,
  homepageBannerType,
  homepageBannerVisible,
}) => (
  <>
    {/* Homepage Banner */}
    <EmergencyBanner
      content={homepageBannerContent}
      localStorage={localStorage}
      recordEvent={recordEvent}
      showClose
      title={homepageBannerTitle}
      type={homepageBannerType}
      visible={homepageBannerVisible === 'true'}
    />

    {/* Maintenance Banner */}
    <MaintenanceBanner
      content={config.content}
      expiresAt={config.expiresAt}
      id={config.id}
      localStorage={localStorage}
      startsAt={config.startsAt}
      title={config.title}
      warnContent={config.warnContent}
      warnStartsAt={config.warnStartsAt}
      warnTitle={config.warnTitle}
    />
  </>
);

Banners.propTypes = {
  homepageBannerContent: PropTypes.string.isRequired,
  homepageBannerTitle: PropTypes.string.isRequired,
  homepageBannerType: PropTypes.string.isRequired,
  homepageBannerVisible: PropTypes.string.isRequired,
};

export default Banners;
<|endoftext|>


<commit_before>// prettier-ignore

export default Object.freeze({
  caregiverAsync: 'caregiver_async',
  caregiverSIGIEnabled: 'caregiver_sigi_enabled',
  caregiverUseFacilitiesApi: 'caregiver_use_facilities_API',
  cernerOverride463: 'cerner_override_463',
  cernerOverride531: 'cerner_override_531',
  cernerOverride648: 'cerner_override_648',
  cernerOverride653: 'cerner_override_653',
  cernerOverride663: 'cerner_override_663',
  cernerOverride668: 'cerner_override_668',
  cernerOverride687: 'cerner_override_687',
  cernerOverride692: 'cerner_override_692',
  cernerOverride757: 'cerner_override_757',
  checkInExperienceEnabled: 'check_in_experience_enabled',
  checkInExperiencePreCheckInEnabled:
    'check_in_experience_pre_check_in_enabled',
  checkInExperienceTranslationDisclaimerSpanishEnabled: 'check_in_experience_translation_disclaimer_spanish_enabled',
  checkInExperienceDayOfDemographicsFlagsEnabled: 'check_in_experience_day_of_demographics_flags_enabled',
  checkInExperienceLorotaSecurityUpdatesEnabled: 'check_in_experience_lorota_security_updates_enabled',
  checkInExperiencePhoneAppointmentsEnabled: 'check_in_experience_phone_appointments_enabled',
  checkInExperienceLorotaDeletionEnabled: 'check_in_experience_lorota_deletion_enabled',
  checkInExperienceTravelReimbursement: 'check_in_experience_travel_reimbursement',
  checkInExperienceBrowserMonitoring: 'check_in_experience_browser_monitoring',
  checkVAInboxEnabled: 'check_va_inbox_enabled',
  claimLettersAccess: 'claim_letters_access',
  coeAccess: 'coe_access',
  combinedDebtPortalAccess: 'combined_debt_portal_access',
  combinedFinancialStatusReport: 'combined_financial_status_report',
  combinedFinancialStatusReportEnhancements: 'combined_financial_status_report_enhancements',
  covidVaccineSchedulingFrontend: 'covid_vaccine_scheduling_frontend',
  covidVaccineUpdatesCTA: 'covid_vaccine_registration_frontend_cta',
  covidVaccineUpdatesDisableAuth:
    'covid_vaccine_registration_frontend_hide_auth',
  covidVaccineUpdatesEnableExpandedEligibility:
    'covid_vaccine_registration_frontend_enable_expanded_eligibility',
  covidVaccineUpdatesForm: 'covid_vaccine_registration_frontend',
  covidVolunteerIntakeBackendEnabled: 'covid_volunteer_intake_backend_enabled',
  covidVolunteerIntakeEnabled: 'covid_volunteer_intake_enabled',
  covidVolunteerUpdateEnabled: 'covid_volunteer_update_enabled',
  debtLettersShowLetters: 'debt_letters_show_letters',
  debtLettersShowLettersVBMS: 'debt_letters_show_letters_vbms',
  dependencyVerification: 'dependency_verification',
  dhpConnectedDevicesFitbit: 'dhp_connected_devices_fitbit',
  dischargeWizardFeatures: 'discharge_wizard_features',
  enrollmentVerification: 'enrollment_verification',
  facilitiesPpmsSuppressAll: 'facilities_ppms_suppress_all',
  facilitiesPpmsSuppressCommunityCare:
    'facilities_ppms_suppress_community_care',
  facilitiesPpmsSuppressPharmacies: 'facilities_ppms_suppress_pharmacies',
  facilityLocatorLatLongOnly: 'facility_locator_lat_long_only',
  facilityLocatorLighthouseCovidVaccineQuery:
    'facility_locator_lighthouse_covid_vaccine_query',
  facilityLocatorShowHealthConnectNumber: 'facility_locator_show_health_connect_number',
  facilityLocatorPredictiveLocationSearch:
    'facility_locator_predictive_location_search',
  facilityLocatorRailsEngine: 'facility_locator_rails_engine',
  facilityLocatorRestoreCommunityCarePagination:
    'facility_locator_restore_community_care_pagination',
  facilityLocatorShowCommunityCares: 'facility_locator_show_community_cares', // Facilities team has deprecated this flag for the frontEnd logic, there is still backend support though.
  facilityLocatorShowOperationalHoursSpecialInstructions:
    'facility_locator_show_operational_hours_special_instructions',
  findFormsShowPdfModal: 'find_forms_show_pdf_modal',
  fileUploadShortWorkflowEnabled: 'file_upload_short_workflow_enabled',
  form10182Nod: 'form10182_nod',
  fsrConfirmationEmail: 'fsr_confirmation_email',
  gibctEybBottomSheet: 'gibct_eyb_bottom_sheet',
  gibctSchoolRatings: 'gibct_school_ratings',
  giSandboxComparisonToolToggle: 'gi_sandbox_comparision_tool_toggle',
  hcaAmericanIndianEnabled: 'hca_american_indian_enabled',
  hcaEnrollmentStatusOverrideEnabled: 'hca_enrollment_status_override_enabled',
  hcaMedicareClaimNumberEnabled: 'hca_medicare_claim_number_enabled',
  hcaShortFormEnabled: 'hca_short_form_enabled',
  hcaUseFacilitiesApi: 'hca_use_facilities_API',
  hlrv2: 'hlr_v2',
  loopPages: 'loop_pages',
  manageDependents: 'dependents_management',
  megaMenuMobileV2: 'mega_menu_mobile_v2',
  medicalCopaysHtmlMedicalStatementsViewEnabled:'medical_copays_html_medical_statements_view_enabled',
  mhvToLogingovAccountTransition: 'mhv_to_logingov_account_transition',
  mhvToLogingovAccountTransitionModal: 'mhv_to_logingov_account_transition_modal',
  omniChannelLink: 'omni_channel_link',
  preEntryCovid19Screener: 'pre_entry_covid19_screener',
  profileNotificationSettings: 'profile_notification_settings',
  profileHideDirectDepositCompAndPen: 'profile_hide_direct_deposit_comp_and_pen',
  profileDoNotRequireInternationalZipCode: 'profile_do_not_require_international_zip_code',
  profileForceBadAddressIndicator: 'profile_force_bad_address_indicator',
  profileShowAddressChangeModal: 'profile_show_address_change_modal',
  profileShowBadAddressIndicator: 'profile_show_bad_address_indicator',
  profileShowPronounsAndSexualOrientation: 'profile_show_pronouns_and_sexual_orientation',
  profileShowPaymentsNotificationSetting: 'profile_show_payments_notification_setting',
  profileUseVaosV2Api:'profile_use_vaos_v2_api',
  profileUseVAFSC: 'profile_use_vafsc',
  pwEhrCtaDrupalSourceOfTruth: 'pw_ehr_cta_drupal_source_of_truth',
  pwEhrCtaUseSlo: 'pw_ehr_cta_use_slo',
  ratedDisabilitiesSortAbTest: 'rated_disabilities_sort_ab_test',
  searchRepresentative: 'search_representative',
  searchDropdownComponentEnabled: 'search_dropdown_component_enabled',
  shiftVetsBanner: 'shift_vets_banner',
  show526Wizard: 'show526_wizard',
  showPaymentAndDebtSection: 'show_payment_and_debt_section',
  showContactChatbot: 'show_contact_chatbot',
  showDashboardNotifications: 'show_dashboard_notifications',
  showMyVADashboardV2: 'show_myva_dashboard_2_0',
  showDigitalForm1095b: 'show_digital_form_1095b',
  showEduBenefits0994Wizard: 'show_edu_benefits_0994_wizard',
  showEduBenefits1990EWizard: 'show_edu_benefits_1990e_wizard',
  showEduBenefits1990EZWizard: 'show_edu_benefits_1990EZ_Wizard',
  showEduBenefits1990NWizard: 'show_edu_benefits_1990n_wizard',
  showEduBenefits1990Wizard: 'show_edu_benefits_1990_wizard',
  showEduBenefits1995Wizard: 'show_edu_benefits_1995_wizard',
  showEduBenefits5490Wizard: 'show_edu_benefits_5490_wizard',
  showEduBenefits5495Wizard: 'show_edu_benefits_5495_wizard',
  showExpandableVamcAlert: 'show_expandable_vamc_alert',
  showFinancialStatusReport: 'show_financial_status_report',
  showFinancialStatusReportWizard: 'show_financial_status_report_wizard',
  showFormI18n: 'show_form_i18n',
  showMebMockEndpoints: 'show_meb_mock_endpoints',
  showMebUnverifiedUserAlert: 'show_meb_unverified_user_alert',
  showUpdatedToeApp: 'show_updated_toe_app',
  showMedicalCopays: 'show_medical_copays',
  showHealthcareExperienceQuestionnaire:
    'show_healthcare_experience_questionnaire',
  showNewGetMedicalRecordsPage: 'show_new_get_medical_records_page',
  showNewRefillTrackPrescriptionsPage:
    'show_new_refill_track_prescriptions_page',
  showNewScheduleViewAppointmentsPage:
    'show_new_schedule_view_appointments_page',
  showNewSecureMessagingPage: 'show_new_secure_messaging_page',
  showNewViewTestLabResultsPage: 'show_new_view_test_lab_results_page',
  showUpdatedFryDeaApp: 'show_updated_fry_dea_app',
  signInServiceEnabled: 'sign_in_service_enabled',
  stemAutomatedDecision: 'stem_automated_decision',
  stemSCOEmail: 'stem_sco_email',
  subform89404192: 'subform_8940_4192',
  useLighthouseFormsSearchLogic: 'new_va_forms_search',
  vaGlobalDowntimeNotification: 'va_global_downtime_notification',
  vaHomePreview:
  'va_home_preview',
  vaOnlineFacilitySelectionV22: 'va_online_scheduling_facility_selection_v2_2',
  vaOnlineScheduling: 'va_online_scheduling',
  vaOnlineSchedulingCancel: 'va_online_scheduling_cancel',
  vaOnlineSchedulingCheetah: 'va_online_scheduling_cheetah',
  vaOnlineSchedulingCommunityCare: 'va_online_scheduling_community_care',
  vaOnlineSchedulingDirect: 'va_online_scheduling_direct',
  vaOnlineSchedulingProviderSelection:
    'va_online_scheduling_provider_selection',
  vaOnlineSchedulingRequests: 'va_online_scheduling_requests',
  vaOnlineSchedulingUnenrolledVaccine:
    'va_online_scheduling_unenrolled_vaccine',
  vaOnlineSchedulingVAOSServiceCCAppointments:
    'va_online_scheduling_vaos_service_cc_appointments',
  vaOnlineSchedulingVAOSServiceRequests:
    'va_online_scheduling_vaos_service_requests',
  vaOnlineSchedulingVAOSServiceVAAppointments:
    'va_online_scheduling_vaos_service_va_appointments',
  vaOnlineSchedulingFacilitiesServiceV2:
    'va_online_scheduling_facilities_service_v2',
  vaOnlineSchedulingVariantTesting: 'va_online_scheduling_variant_testing',
  vaOnlineSchedulingPocHealthApt: 'va_online_scheduling_poc_health_apt',
  vaOnlineSchedulingStatusImprovement: 'va_online_scheduling_status_improvement',
  vaOnlineSchedulingClinicLocation: 'va_online_scheduling_clinic_location',
  vaOnlineSchedulingVaosV2Next: 'va_online_scheduling_vaos_v2_next',
  vaOnlineSchedulingAppointmentList: 'va_online_scheduling_appointment_list',
  vaOnlineSchedulingClinicFilter: 'va_online_scheduling_clinic_filter',
  vaOnlineSchedulingAcheronService: 'va_online_scheduling_acheron_service',
  vaOnlineFilter36Vats: 'va_online_filter36_vats',
  vaViewDependentsAccess: 'va_view_dependents_access',
  yellowRibbonEnhancements: 'yellow_ribbon_mvp_enhancement',
  showMebDgi40Features: 'show_meb_dgi40_features'
});
<commit_msg>Add supplemental claims feature flag (#22524)<commit_after>// prettier-ignore

export default Object.freeze({
  caregiverAsync: 'caregiver_async',
  caregiverSIGIEnabled: 'caregiver_sigi_enabled',
  caregiverUseFacilitiesApi: 'caregiver_use_facilities_API',
  cernerOverride463: 'cerner_override_463',
  cernerOverride531: 'cerner_override_531',
  cernerOverride648: 'cerner_override_648',
  cernerOverride653: 'cerner_override_653',
  cernerOverride663: 'cerner_override_663',
  cernerOverride668: 'cerner_override_668',
  cernerOverride687: 'cerner_override_687',
  cernerOverride692: 'cerner_override_692',
  cernerOverride757: 'cerner_override_757',
  checkInExperienceEnabled: 'check_in_experience_enabled',
  checkInExperiencePreCheckInEnabled:
    'check_in_experience_pre_check_in_enabled',
  checkInExperienceTranslationDisclaimerSpanishEnabled: 'check_in_experience_translation_disclaimer_spanish_enabled',
  checkInExperienceDayOfDemographicsFlagsEnabled: 'check_in_experience_day_of_demographics_flags_enabled',
  checkInExperienceLorotaSecurityUpdatesEnabled: 'check_in_experience_lorota_security_updates_enabled',
  checkInExperiencePhoneAppointmentsEnabled: 'check_in_experience_phone_appointments_enabled',
  checkInExperienceLorotaDeletionEnabled: 'check_in_experience_lorota_deletion_enabled',
  checkInExperienceTravelReimbursement: 'check_in_experience_travel_reimbursement',
  checkInExperienceBrowserMonitoring: 'check_in_experience_browser_monitoring',
  checkVAInboxEnabled: 'check_va_inbox_enabled',
  claimLettersAccess: 'claim_letters_access',
  coeAccess: 'coe_access',
  combinedDebtPortalAccess: 'combined_debt_portal_access',
  combinedFinancialStatusReport: 'combined_financial_status_report',
  combinedFinancialStatusReportEnhancements: 'combined_financial_status_report_enhancements',
  covidVaccineSchedulingFrontend: 'covid_vaccine_scheduling_frontend',
  covidVaccineUpdatesCTA: 'covid_vaccine_registration_frontend_cta',
  covidVaccineUpdatesDisableAuth:
    'covid_vaccine_registration_frontend_hide_auth',
  covidVaccineUpdatesEnableExpandedEligibility:
    'covid_vaccine_registration_frontend_enable_expanded_eligibility',
  covidVaccineUpdatesForm: 'covid_vaccine_registration_frontend',
  covidVolunteerIntakeBackendEnabled: 'covid_volunteer_intake_backend_enabled',
  covidVolunteerIntakeEnabled: 'covid_volunteer_intake_enabled',
  covidVolunteerUpdateEnabled: 'covid_volunteer_update_enabled',
  debtLettersShowLetters: 'debt_letters_show_letters',
  debtLettersShowLettersVBMS: 'debt_letters_show_letters_vbms',
  dependencyVerification: 'dependency_verification',
  dhpConnectedDevicesFitbit: 'dhp_connected_devices_fitbit',
  dischargeWizardFeatures: 'discharge_wizard_features',
  enrollmentVerification: 'enrollment_verification',
  facilitiesPpmsSuppressAll: 'facilities_ppms_suppress_all',
  facilitiesPpmsSuppressCommunityCare:
    'facilities_ppms_suppress_community_care',
  facilitiesPpmsSuppressPharmacies: 'facilities_ppms_suppress_pharmacies',
  facilityLocatorLatLongOnly: 'facility_locator_lat_long_only',
  facilityLocatorLighthouseCovidVaccineQuery:
    'facility_locator_lighthouse_covid_vaccine_query',
  facilityLocatorShowHealthConnectNumber: 'facility_locator_show_health_connect_number',
  facilityLocatorPredictiveLocationSearch:
    'facility_locator_predictive_location_search',
  facilityLocatorRailsEngine: 'facility_locator_rails_engine',
  facilityLocatorRestoreCommunityCarePagination:
    'facility_locator_restore_community_care_pagination',
  facilityLocatorShowCommunityCares: 'facility_locator_show_community_cares', // Facilities team has deprecated this flag for the frontEnd logic, there is still backend support though.
  facilityLocatorShowOperationalHoursSpecialInstructions:
    'facility_locator_show_operational_hours_special_instructions',
  findFormsShowPdfModal: 'find_forms_show_pdf_modal',
  fileUploadShortWorkflowEnabled: 'file_upload_short_workflow_enabled',
  form10182Nod: 'form10182_nod',
  fsrConfirmationEmail: 'fsr_confirmation_email',
  gibctEybBottomSheet: 'gibct_eyb_bottom_sheet',
  gibctSchoolRatings: 'gibct_school_ratings',
  giSandboxComparisonToolToggle: 'gi_sandbox_comparision_tool_toggle',
  hcaAmericanIndianEnabled: 'hca_american_indian_enabled',
  hcaEnrollmentStatusOverrideEnabled: 'hca_enrollment_status_override_enabled',
  hcaMedicareClaimNumberEnabled: 'hca_medicare_claim_number_enabled',
  hcaShortFormEnabled: 'hca_short_form_enabled',
  hcaUseFacilitiesApi: 'hca_use_facilities_API',
  loopPages: 'loop_pages',
  manageDependents: 'dependents_management',
  megaMenuMobileV2: 'mega_menu_mobile_v2',
  medicalCopaysHtmlMedicalStatementsViewEnabled:'medical_copays_html_medical_statements_view_enabled',
  mhvToLogingovAccountTransition: 'mhv_to_logingov_account_transition',
  mhvToLogingovAccountTransitionModal: 'mhv_to_logingov_account_transition_modal',
  omniChannelLink: 'omni_channel_link',
  preEntryCovid19Screener: 'pre_entry_covid19_screener',
  profileNotificationSettings: 'profile_notification_settings',
  profileHideDirectDepositCompAndPen: 'profile_hide_direct_deposit_comp_and_pen',
  profileDoNotRequireInternationalZipCode: 'profile_do_not_require_international_zip_code',
  profileForceBadAddressIndicator: 'profile_force_bad_address_indicator',
  profileShowAddressChangeModal: 'profile_show_address_change_modal',
  profileShowBadAddressIndicator: 'profile_show_bad_address_indicator',
  profileShowPronounsAndSexualOrientation: 'profile_show_pronouns_and_sexual_orientation',
  profileShowPaymentsNotificationSetting: 'profile_show_payments_notification_setting',
  profileUseVaosV2Api:'profile_use_vaos_v2_api',
  profileUseVAFSC: 'profile_use_vafsc',
  pwEhrCtaDrupalSourceOfTruth: 'pw_ehr_cta_drupal_source_of_truth',
  pwEhrCtaUseSlo: 'pw_ehr_cta_use_slo',
  ratedDisabilitiesSortAbTest: 'rated_disabilities_sort_ab_test',
  searchRepresentative: 'search_representative',
  searchDropdownComponentEnabled: 'search_dropdown_component_enabled',
  shiftVetsBanner: 'shift_vets_banner',
  show526Wizard: 'show526_wizard',
  showPaymentAndDebtSection: 'show_payment_and_debt_section',
  showContactChatbot: 'show_contact_chatbot',
  showDashboardNotifications: 'show_dashboard_notifications',
  showMyVADashboardV2: 'show_myva_dashboard_2_0',
  showDigitalForm1095b: 'show_digital_form_1095b',
  showEduBenefits0994Wizard: 'show_edu_benefits_0994_wizard',
  showEduBenefits1990EWizard: 'show_edu_benefits_1990e_wizard',
  showEduBenefits1990EZWizard: 'show_edu_benefits_1990EZ_Wizard',
  showEduBenefits1990NWizard: 'show_edu_benefits_1990n_wizard',
  showEduBenefits1990Wizard: 'show_edu_benefits_1990_wizard',
  showEduBenefits1995Wizard: 'show_edu_benefits_1995_wizard',
  showEduBenefits5490Wizard: 'show_edu_benefits_5490_wizard',
  showEduBenefits5495Wizard: 'show_edu_benefits_5495_wizard',
  showExpandableVamcAlert: 'show_expandable_vamc_alert',
  showFinancialStatusReport: 'show_financial_status_report',
  showFinancialStatusReportWizard: 'show_financial_status_report_wizard',
  showFormI18n: 'show_form_i18n',
  showMebMockEndpoints: 'show_meb_mock_endpoints',
  showMebUnverifiedUserAlert: 'show_meb_unverified_user_alert',
  showUpdatedToeApp: 'show_updated_toe_app',
  showMedicalCopays: 'show_medical_copays',
  showHealthcareExperienceQuestionnaire:
    'show_healthcare_experience_questionnaire',
  showNewGetMedicalRecordsPage: 'show_new_get_medical_records_page',
  showNewRefillTrackPrescriptionsPage:
    'show_new_refill_track_prescriptions_page',
  showNewScheduleViewAppointmentsPage:
    'show_new_schedule_view_appointments_page',
  showNewSecureMessagingPage: 'show_new_secure_messaging_page',
  showNewViewTestLabResultsPage: 'show_new_view_test_lab_results_page',
  showUpdatedFryDeaApp: 'show_updated_fry_dea_app',
  signInServiceEnabled: 'sign_in_service_enabled',
  stemAutomatedDecision: 'stem_automated_decision',
  stemSCOEmail: 'stem_sco_email',
  subform89404192: 'subform_8940_4192',
  supplementalClaim: 'supplemental_claim',
  useLighthouseFormsSearchLogic: 'new_va_forms_search',
  vaGlobalDowntimeNotification: 'va_global_downtime_notification',
  vaHomePreview:
  'va_home_preview',
  vaOnlineFacilitySelectionV22: 'va_online_scheduling_facility_selection_v2_2',
  vaOnlineScheduling: 'va_online_scheduling',
  vaOnlineSchedulingCancel: 'va_online_scheduling_cancel',
  vaOnlineSchedulingCheetah: 'va_online_scheduling_cheetah',
  vaOnlineSchedulingCommunityCare: 'va_online_scheduling_community_care',
  vaOnlineSchedulingDirect: 'va_online_scheduling_direct',
  vaOnlineSchedulingProviderSelection:
    'va_online_scheduling_provider_selection',
  vaOnlineSchedulingRequests: 'va_online_scheduling_requests',
  vaOnlineSchedulingUnenrolledVaccine:
    'va_online_scheduling_unenrolled_vaccine',
  vaOnlineSchedulingVAOSServiceCCAppointments:
    'va_online_scheduling_vaos_service_cc_appointments',
  vaOnlineSchedulingVAOSServiceRequests:
    'va_online_scheduling_vaos_service_requests',
  vaOnlineSchedulingVAOSServiceVAAppointments:
    'va_online_scheduling_vaos_service_va_appointments',
  vaOnlineSchedulingFacilitiesServiceV2:
    'va_online_scheduling_facilities_service_v2',
  vaOnlineSchedulingVariantTesting: 'va_online_scheduling_variant_testing',
  vaOnlineSchedulingPocHealthApt: 'va_online_scheduling_poc_health_apt',
  vaOnlineSchedulingStatusImprovement: 'va_online_scheduling_status_improvement',
  vaOnlineSchedulingClinicLocation: 'va_online_scheduling_clinic_location',
  vaOnlineSchedulingVaosV2Next: 'va_online_scheduling_vaos_v2_next',
  vaOnlineSchedulingAppointmentList: 'va_online_scheduling_appointment_list',
  vaOnlineSchedulingClinicFilter: 'va_online_scheduling_clinic_filter',
  vaOnlineSchedulingAcheronService: 'va_online_scheduling_acheron_service',
  vaOnlineFilter36Vats: 'va_online_filter36_vats',
  vaViewDependentsAccess: 'va_view_dependents_access',
  yellowRibbonEnhancements: 'yellow_ribbon_mvp_enhancement',
  showMebDgi40Features: 'show_meb_dgi40_features'
});
<|endoftext|>


<commit_before>// Utility functions for animated plots.

// Thanks to http://stackoverflow.com/a/10284006 for zip() function.
function zip(arrays) {
  return arrays[0].map(function(_, i) {
    return arrays.map(function(array) { return array[i]; })
  });
}

// Create a covariance matrix with compact support for a given number of equally
// spaced points.
function CompactSupportCovarianceMatrix(N) {
  return jStat.create(N, N, function(i, j) {
    var dt = Math.abs(i - j) / N;
    return (Math.pow(1 - dt, 6)
            * ((12.8 * dt * dt * dt) + (13.8 * dt * dt) + (6 * dt) + 1));
  });
}

function DatasetGenerator(x, mu, kFunc, N_t) {
  var return_object = {};

  // First section: declare member variables for the closure.
  //
  // The x-values for this closure.
  return_object.x = x;
  // The number of timesteps we need to keep in memory.
  var N_t = N_t;
  // The number of points in the dataset.
  var N = x.length;
  // The time-domain covariance matrix (with compact support).
  var K_t = CompactSupportCovarianceMatrix(N_t);
  // Each row of L_t is a vector to multiply different timesteps.
  var L_t = LoopingCholesky(K_t);
  var random_matrix = jStat.create(N_t, N, function(i, j) {
    return jStat.normal.sample(0, 1);
  });
  // i indicates which vector from L_t to use, and also which row of the random
  // matrix to update.
  var i = N_t - 1;
  // The covariance matrix in space.
  //
  // We add a small amount of noise on the diagonal to help computational
  // stability.
  K = CovarianceMatrix(x, kFunc);
  var U = jStat.transpose(Cholesky(K));

  return_object.NextDataset = function() {
    // Compute the next data.
    var independent_data = jStat(L_t[i]).multiply(random_matrix)[0];
    // Generate new random numbers.
    for (var j = 0; j < N; ++j) {
      random_matrix[i][j] = jStat.normal.sample(0, 1);
    }
    // Update the counter.
    i = ((i > 0) ? i : N_t) - 1
    // Return the next dataset.
    var new_data = jStat(independent_data).multiply(U)[0];
    return new_data;
  }

  return return_object;
};

// Return a chart object.
function AnimatedChart(dataset_generator, div_id, title) {
  // The generator which generates new datasets.
  var generator = dataset_generator;
  // The number of milliseconds for each frame.
  var frame_length = 200;
  // Copy the x-values for the data.
  var x = generator.x.slice();

  var data = new google.visualization.DataTable();
  data.addColumn('number', 'x');
  data.addColumn('number', 'y');
  data.addRows(zip([x, generator.NextDataset()]));

  // Set chart options.
  var options = {
    title: title,
    width: 800,
    vAxis: {
      viewWindow: {
        min: -3.0,
        max: 3.0,
      },
    },
    animation: {
      duration: frame_length,
      easing: 'linear',
      startup: true,
    },
    height: 500};

  var return_object = {
    animation_id: null,
  };

  return_object.chart = new
    google.visualization.LineChart(document.getElementById(div_id))
  return_object.chart.draw(data, options);

  return_object.draw = function() {
    // Kick off the animation.
    return_object.chart.draw(data, options);

    // Compute the new data for the next frame.
    var new_data = generator.NextDataset();
    for (var i = 0; i < new_data.length; ++i) {
      data.setValue(i, 1, new_data[i]);
    }
  };

  return return_object;
};
<commit_msg>Make AnimatedChart chart type overrideable<commit_after>// Utility functions for animated plots.

// Thanks to http://stackoverflow.com/a/10284006 for zip() function.
function zip(arrays) {
  return arrays[0].map(function(_, i) {
    return arrays.map(function(array) { return array[i]; })
  });
}

// Create a covariance matrix with compact support for a given number of equally
// spaced points.
function CompactSupportCovarianceMatrix(N) {
  return jStat.create(N, N, function(i, j) {
    var dt = Math.abs(i - j) / N;
    return (Math.pow(1 - dt, 6)
            * ((12.8 * dt * dt * dt) + (13.8 * dt * dt) + (6 * dt) + 1));
  });
}

function DatasetGenerator(x, mu, kFunc, N_t) {
  var return_object = {};

  // First section: declare member variables for the closure.
  //
  // The x-values for this closure.
  return_object.x = x;
  // The number of timesteps we need to keep in memory.
  var N_t = N_t;
  // The number of points in the dataset.
  var N = x.length;
  // The time-domain covariance matrix (with compact support).
  var K_t = CompactSupportCovarianceMatrix(N_t);
  // Each row of L_t is a vector to multiply different timesteps.
  var L_t = LoopingCholesky(K_t);
  var random_matrix = jStat.create(N_t, N, function(i, j) {
    return jStat.normal.sample(0, 1);
  });
  // i indicates which vector from L_t to use, and also which row of the random
  // matrix to update.
  var i = N_t - 1;
  // The covariance matrix in space.
  //
  // We add a small amount of noise on the diagonal to help computational
  // stability.
  K = CovarianceMatrix(x, kFunc);
  var U = jStat.transpose(Cholesky(K));

  return_object.NextDataset = function() {
    // Compute the next data.
    var independent_data = jStat(L_t[i]).multiply(random_matrix)[0];
    // Generate new random numbers.
    for (var j = 0; j < N; ++j) {
      random_matrix[i][j] = jStat.normal.sample(0, 1);
    }
    // Update the counter.
    i = ((i > 0) ? i : N_t) - 1
    // Return the next dataset.
    var new_data = jStat(independent_data).multiply(U)[0];
    return new_data;
  }

  return return_object;
};

// Return a chart object.
function AnimatedChart(dataset_generator, div_id, title, chart_type) {
  chart_type = (typeof chart_type !== 'undefined') ?
    chart_type : google.visualization.LineChart;
  // The generator which generates new datasets.
  var generator = dataset_generator;
  // The number of milliseconds for each frame.
  var frame_length = 200;
  // Copy the x-values for the data.
  var x = generator.x.slice();

  var data = new google.visualization.DataTable();
  data.addColumn('number', 'x');
  data.addColumn('number', 'y');
  data.addRows(zip([x, generator.NextDataset()]));

  // Set chart options.
  var options = {
    title: title,
    width: 800,
    vAxis: {
      viewWindow: {
        min: -3.0,
        max: 3.0,
      },
    },
    animation: {
      duration: frame_length,
      easing: 'linear',
      startup: true,
    },
    height: 500};

  var return_object = {
    animation_id: null,
  };

  return_object.chart = new chart_type(document.getElementById(div_id))
  return_object.chart.draw(data, options);

  return_object.draw = function() {
    // Kick off the animation.
    return_object.chart.draw(data, options);

    // Compute the new data for the next frame.
    var new_data = generator.NextDataset();
    for (var i = 0; i < new_data.length; ++i) {
      data.setValue(i, 1, new_data[i]);
    }
  };

  return return_object;
};
<|endoftext|>


<commit_before>export default Object.freeze({
  preEntryCovid19Screener: 'preEntryCovid19Screener',
  dashboardShowCovid19Alert: 'dashboardShowCovid19Alert',
  facilityLocatorShowCommunityCares: 'facilityLocatorShowCommunityCares', // Facilities team has deprecated this flag for the frontEnd logic, there is still backend support though.
  facilitiesPpmsSuppressPharmacies: 'facilitiesPpmsSuppressPharmacies',
  facilitiesPpmsSuppressCommunityCare: 'facilitiesPpmsSuppressCommunityCare',
  profileShowProfile2: 'profile_show_profile_2.0',
  vaOnlineScheduling: 'vaOnlineScheduling',
  vaOnlineSchedulingCancel: 'vaOnlineSchedulingCancel',
  vaOnlineSchedulingRequests: 'vaOnlineSchedulingRequests',
  vaOnlineSchedulingCommunityCare: 'vaOnlineSchedulingCommunityCare',
  vaOnlineSchedulingDirect: 'vaOnlineSchedulingDirect',
  vaOnlineSchedulingPast: 'vaOnlineSchedulingPast',
  vaOnlineSchedulingVSPAppointmentList: 'vaOnlineSchedulingVspAppointmentList',
  vaOnlineSchedulingVSPAppointmentNew: 'vaOnlineSchedulingVspAppointmentNew',
  vaOnlineSchedulingCCSPAppointmentList:
    'vaOnlineSchedulingCcspAppointmentList',
  vaOnlineSchedulingCCSPRequestNew: 'vaOnlineSchedulingCcspRequestNew',
  vaOnlineSchedulingVSPRequestList: 'vaOnlineSchedulingVspRequestList',
  vaOnlineSchedulingVSPRequestNew: 'vaOnlineSchedulingVspRequestNew',
  vaOnlineSchedulingExpressCare: 'vaOnlineSchedulingExpressCare',
  vaOnlineSchedulingExpressCareNew: 'vaOnlineSchedulingExpressCareNew',
  vaGlobalDowntimeNotification: 'vaGlobalDowntimeNotification',
  ssoe: 'ssoe',
  ssoeInbound: 'ssoeInbound',
  ssoeEbenefitsLinks: 'ssoeEbenefitsLinks',
  eduBenefitsStemScholarship: 'eduBenefitsStemScholarship',
  form526OriginalClaims: 'form526OriginalClaims',
  vaViewDependentsAccess: 'vaViewDependentsAccess',
  allowOnline1010cgSubmissions: 'allow_online_10_10cg_submissions',
  gibctEybBottomSheet: 'gibctEybBottomSheet',
  gibctSearchEnhancements: 'gibctSearchEnhancements',
  gibctFilterEnhancement: 'gibctFilterEnhancement',
  gibctBenefitFilterEnhancement: 'gibctBenefitFilterEnhancement',
  form996HigherLevelReview: 'form996HigherLevelReview',
  debtLettersShowLetters: 'debtLettersShowLetters',
  debtLettersShowLettersV2: 'debtLettersShowLettersV2',
  form526BDD: 'form526BenefitsDeliveryAtDischarge',
  showEduBenefits1995Wizard: 'show_edu_benefits_1995_wizard',
  showEduBenefits5495Wizard: 'show_edu_benefits_5495_wizard',
  showEduBenefits0994Wizard: 'show_edu_benefits_0994_wizard',
  showEduBenefits1990NWizard: 'show_edu_benefits_1990n_wizard',
  showEduBenefits5490Wizard: 'show_edu_benefits_5490_wizard',
  showEduBenefits1990EWizard: 'show_edu_benefits_1990e_wizard',
  showEduBenefits1990Wizard: 'show_edu_benefits_1990_wizard',
  stemSCOEmail: 'stem_sco_email',
  showHealthcareExperienceQuestionnaire:
    'showHealthcareExperienceQuestionnaire',
  showNewGetMedicalRecordsPage: 'show_new_get_medical_records_page',
  showNewRefillTrackPrescriptionsPage:
    'show_new_refill_track_prescriptions_page',
  showNewScheduleViewAppointmentsPage:
    'show_new_schedule_view_appointments_page',
  showNewSecureMessagingPage: 'show_new_secure_messaging_page',
  showNewViewTestLabResultsPage: 'show_new_view_test_lab_results_page',
  show526Wizard: 'show526Wizard',
});
<commit_msg>Add new VAOS feature flag for flat facility list (#14150)<commit_after>export default Object.freeze({
  preEntryCovid19Screener: 'preEntryCovid19Screener',
  dashboardShowCovid19Alert: 'dashboardShowCovid19Alert',
  facilityLocatorShowCommunityCares: 'facilityLocatorShowCommunityCares', // Facilities team has deprecated this flag for the frontEnd logic, there is still backend support though.
  facilitiesPpmsSuppressPharmacies: 'facilitiesPpmsSuppressPharmacies',
  facilitiesPpmsSuppressCommunityCare: 'facilitiesPpmsSuppressCommunityCare',
  profileShowProfile2: 'profile_show_profile_2.0',
  vaOnlineScheduling: 'vaOnlineScheduling',
  vaOnlineSchedulingCancel: 'vaOnlineSchedulingCancel',
  vaOnlineSchedulingRequests: 'vaOnlineSchedulingRequests',
  vaOnlineSchedulingCommunityCare: 'vaOnlineSchedulingCommunityCare',
  vaOnlineSchedulingDirect: 'vaOnlineSchedulingDirect',
  vaOnlineSchedulingPast: 'vaOnlineSchedulingPast',
  vaOnlineSchedulingVSPAppointmentList: 'vaOnlineSchedulingVspAppointmentList',
  vaOnlineSchedulingVSPAppointmentNew: 'vaOnlineSchedulingVspAppointmentNew',
  vaOnlineSchedulingCCSPAppointmentList:
    'vaOnlineSchedulingCcspAppointmentList',
  vaOnlineSchedulingCCSPRequestNew: 'vaOnlineSchedulingCcspRequestNew',
  vaOnlineSchedulingVSPRequestList: 'vaOnlineSchedulingVspRequestList',
  vaOnlineSchedulingVSPRequestNew: 'vaOnlineSchedulingVspRequestNew',
  vaOnlineSchedulingExpressCare: 'vaOnlineSchedulingExpressCare',
  vaOnlineSchedulingExpressCareNew: 'vaOnlineSchedulingExpressCareNew',
  vaOnlineSchedulingFlatFacilityPage: 'vaOnlineSchedulingFlatFacilityPage',
  vaGlobalDowntimeNotification: 'vaGlobalDowntimeNotification',
  ssoe: 'ssoe',
  ssoeInbound: 'ssoeInbound',
  ssoeEbenefitsLinks: 'ssoeEbenefitsLinks',
  eduBenefitsStemScholarship: 'eduBenefitsStemScholarship',
  form526OriginalClaims: 'form526OriginalClaims',
  vaViewDependentsAccess: 'vaViewDependentsAccess',
  allowOnline1010cgSubmissions: 'allow_online_10_10cg_submissions',
  gibctEybBottomSheet: 'gibctEybBottomSheet',
  gibctSearchEnhancements: 'gibctSearchEnhancements',
  gibctFilterEnhancement: 'gibctFilterEnhancement',
  gibctBenefitFilterEnhancement: 'gibctBenefitFilterEnhancement',
  form996HigherLevelReview: 'form996HigherLevelReview',
  debtLettersShowLetters: 'debtLettersShowLetters',
  debtLettersShowLettersV2: 'debtLettersShowLettersV2',
  form526BDD: 'form526BenefitsDeliveryAtDischarge',
  showEduBenefits1995Wizard: 'show_edu_benefits_1995_wizard',
  showEduBenefits5495Wizard: 'show_edu_benefits_5495_wizard',
  showEduBenefits0994Wizard: 'show_edu_benefits_0994_wizard',
  showEduBenefits1990NWizard: 'show_edu_benefits_1990n_wizard',
  showEduBenefits5490Wizard: 'show_edu_benefits_5490_wizard',
  showEduBenefits1990EWizard: 'show_edu_benefits_1990e_wizard',
  showEduBenefits1990Wizard: 'show_edu_benefits_1990_wizard',
  stemSCOEmail: 'stem_sco_email',
  showHealthcareExperienceQuestionnaire:
    'showHealthcareExperienceQuestionnaire',
  showNewGetMedicalRecordsPage: 'show_new_get_medical_records_page',
  showNewRefillTrackPrescriptionsPage:
    'show_new_refill_track_prescriptions_page',
  showNewScheduleViewAppointmentsPage:
    'show_new_schedule_view_appointments_page',
  showNewSecureMessagingPage: 'show_new_secure_messaging_page',
  showNewViewTestLabResultsPage: 'show_new_view_test_lab_results_page',
  show526Wizard: 'show526Wizard',
});
<|endoftext|>


<commit_before>/* ©Copyright Utrecht University (Department of Information and Computing Sciences) */

var Enumeration;

(function()
{
    "use strict";

    Enumeration =
    {
        addDefinition: addDefinition,
        removeDefinition: removeDefinition
    };

    function addDefinition(containerEl, openDialogImmediately, onSave)
    {
        // If this was an enumeration already, use the old button
        if (containerEl.find(".enumeration-dialog-button").length === 0)
        {
            var enumerationScreenButton = $('<button>', { class: "enumeration-dialog-button" });
            enumerationScreenButton.attr('title', i18next.t('enumeration:button_alt'));
            var buttonIcon = $('<img>', { src: editor_url + "png/others/list.png" });
            enumerationScreenButton.on('mouseover', function()
            {
                buttonIcon.attr('src', editor_url + "png/others/list_hover.png");
            });
            enumerationScreenButton.on('mouseout', function()
            {
                buttonIcon.attr('src', editor_url + "png/others/list.png");
            });
            buttonIcon.attr('alt', i18next.t('enumeration:button_alt'));
            enumerationScreenButton.append(buttonIcon);
            enumerationScreenButton.on('click', function()
            {
                dialog(containerEl, onSave);
            });
            containerEl.append(enumerationScreenButton);
        }

        if (openDialogImmediately)
        {
            dialog(containerEl, onSave);
        }
    }

    function removeDefinition(containerEl)
    {
        containerEl.find(".enumeration-dialog-button").remove();
    }

    function dialog(containerEl, onSave)
    {
        var enumerationDialog = $('<div>').append($('<div>', { text: i18next.t('enumeration:values') }));

        var valuesContainer = $('<ul>', { class: "enumeration-values-container" }).appendTo(enumerationDialog);
        var valueInput = $('<input>', { autofocus: true, type: 'text' });
        var valueAddButton = $('<button>', { type: 'button' })
            .append($('<img>', { src: editor_url + "png/others/plus.png", title: i18next.t('common:add') }));
        valueAddButton.on('click', function()
        {
            appendValue(valuesContainer, valueInput, valueInput.val());
        });
        valueInput.on('keydown', function(e)
        {
            if (e.which === 13) // ENTER
            {
                appendValue(valuesContainer, valueInput, valueInput.val());
            }
        });
        valuesContainer.append($('<li>').append(valueInput).append(valueAddButton));

        Types.primitives.enumeration.loadTypeFromDOM(containerEl, $()).options.sequence.forEach(function(option)
        {
            appendValue(valuesContainer, valueInput, option.text);
        });

        var alertNoEnumValuesDefined = function() { alert(i18next.t('enumeration:no_values_defined')); };

        enumerationDialog.dialog(
        {
            title: i18next.t('enumeration:title'),
            height: Constants.heightEnumerationScreen,
            width: Constants.widthEnumerationScreen,
            modal: true,
            buttons: [
            {
                text: i18next.t('common:confirm'),
                click: function()
                {
                    var success = save(containerEl, valuesContainer, onSave);
                    if (success) $(this).dialog('close');
                    else         alertNoEnumValuesDefined();
                }
            },
            {
                text: i18next.t('common:cancel'),
                click: function()
                {
                    $(this).dialog('close');
                }
            }],
            beforeClose: function()
            {
                if (valuesContainer.children().not(":last-child").length === 0)
                {
                    alertNoEnumValuesDefined();
                    return false;
                }
            },
            close: function()
            {
                valuesContainer.children().not(":last-child").each(function() { $(this).remove(); });
                valueInput.val("");
            }
        });
    }

    function appendValue(valuesContainer, valueInput, value)
    {
        // The value of an enumeration can not be the empty string
        if (value)
        {
            var deleteParentButton = $(Parts.getDeleteParentButtonHTML());
            deleteParentButton.on('click', function()
            {
                $(this).parent().remove();
                valueInput.focus();
            });

            var valueItem = $('<li>').append($('<span>', { text: value }));
            valueItem.append(deleteParentButton);
            valueItem.insertBefore(valuesContainer.children().last());

            valueInput.val("").focus();
        }
    }

    function save(containerEl, valuesContainer, onSave)
    {
        var values = [];
        // Last child is the input so don't include it
        valuesContainer.children().not(":last-child").each(function()
        {
            values.push($(this).text());
        });

        if (values.length === 0) return false;

        Types.primitives.enumeration.insertTypeIntoDOM(containerEl, values);
        onSave(Types.primitives.enumeration.name);

        return true;
    }

})();
<commit_msg>Fixed persisting enumeration values after type change<commit_after>/* ©Copyright Utrecht University (Department of Information and Computing Sciences) */

var Enumeration;

(function()
{
    "use strict";

    Enumeration =
    {
        addDefinition: addDefinition,
        removeDefinition: removeDefinition
    };

    function addDefinition(containerEl, openDialogImmediately, onSave)
    {
        // If this was an enumeration already, use the old button
        if (containerEl.find(".enumeration-dialog-button").length === 0)
        {
            var enumerationScreenButton = $('<button>', { class: "enumeration-dialog-button" });
            enumerationScreenButton.attr('title', i18next.t('enumeration:button_alt'));
            var buttonIcon = $('<img>', { src: editor_url + "png/others/list.png" });
            enumerationScreenButton.on('mouseover', function()
            {
                buttonIcon.attr('src', editor_url + "png/others/list_hover.png");
            });
            enumerationScreenButton.on('mouseout', function()
            {
                buttonIcon.attr('src', editor_url + "png/others/list.png");
            });
            buttonIcon.attr('alt', i18next.t('enumeration:button_alt'));
            enumerationScreenButton.append(buttonIcon);
            enumerationScreenButton.on('click', function()
            {
                dialog(containerEl, onSave);
            });
            containerEl.append(enumerationScreenButton);
        }

        if (openDialogImmediately)
        {
            dialog(containerEl, onSave);
        }
    }

    function removeDefinition(containerEl)
    {
        containerEl.find(".enumeration-values").remove();
        containerEl.find(".enumeration-dialog-button").remove();
    }

    function dialog(containerEl, onSave)
    {
        var enumerationDialog = $('<div>').append($('<div>', { text: i18next.t('enumeration:values') }));

        var valuesContainer = $('<ul>', { class: "enumeration-values-container" }).appendTo(enumerationDialog);
        var valueInput = $('<input>', { autofocus: true, type: 'text' });
        var valueAddButton = $('<button>', { type: 'button' })
            .append($('<img>', { src: editor_url + "png/others/plus.png", title: i18next.t('common:add') }));
        valueAddButton.on('click', function()
        {
            appendValue(valuesContainer, valueInput, valueInput.val());
        });
        valueInput.on('keydown', function(e)
        {
            if (e.which === 13) // ENTER
            {
                appendValue(valuesContainer, valueInput, valueInput.val());
            }
        });
        valuesContainer.append($('<li>').append(valueInput).append(valueAddButton));

        Types.primitives.enumeration.loadTypeFromDOM(containerEl, $()).options.sequence.forEach(function(option)
        {
            appendValue(valuesContainer, valueInput, option.text);
        });

        var alertNoEnumValuesDefined = function() { alert(i18next.t('enumeration:no_values_defined')); };

        enumerationDialog.dialog(
        {
            title: i18next.t('enumeration:title'),
            height: Constants.heightEnumerationScreen,
            width: Constants.widthEnumerationScreen,
            modal: true,
            buttons: [
            {
                text: i18next.t('common:confirm'),
                click: function()
                {
                    var success = save(containerEl, valuesContainer, onSave);
                    if (success) $(this).dialog('close');
                    else         alertNoEnumValuesDefined();
                }
            },
            {
                text: i18next.t('common:cancel'),
                click: function()
                {
                    $(this).dialog('close');
                }
            }],
            beforeClose: function()
            {
                if (valuesContainer.children().not(":last-child").length === 0)
                {
                    alertNoEnumValuesDefined();
                    return false;
                }
            },
            close: function()
            {
                valuesContainer.children().not(":last-child").each(function() { $(this).remove(); });
                valueInput.val("");
            }
        });
    }

    function appendValue(valuesContainer, valueInput, value)
    {
        // The value of an enumeration can not be the empty string
        if (value)
        {
            var deleteParentButton = $(Parts.getDeleteParentButtonHTML());
            deleteParentButton.on('click', function()
            {
                $(this).parent().remove();
                valueInput.focus();
            });

            var valueItem = $('<li>').append($('<span>', { text: value }));
            valueItem.append(deleteParentButton);
            valueItem.insertBefore(valuesContainer.children().last());

            valueInput.val("").focus();
        }
    }

    function save(containerEl, valuesContainer, onSave)
    {
        var values = [];
        // Last child is the input so don't include it
        valuesContainer.children().not(":last-child").each(function()
        {
            values.push($(this).text());
        });

        if (values.length === 0) return false;

        Types.primitives.enumeration.insertTypeIntoDOM(containerEl, values);
        onSave(Types.primitives.enumeration.name);

        return true;
    }

})();
<|endoftext|>


<commit_before>[
{"id":"layer_new","title":"Nueva capa"},
{"id":"layer_delete","title":"Suprimir capa"},
{"id":"layer_rename","title":"Renombrar capa"},
{"id":"layer_up","title":"Mover la capa hacia arriba"},
{"id":"layer_down","title":"Mover la capa hacia abajo"},
{"id":"tool_clear","title":"Nueva imagen"},
{"id":"tool_open","title":"Abrir imagen"},
{"id":"tool_save","title":"Guardar imagen"},
{"id":"tool_docprops","title":"Propiedades del documento"},
{"id":"tool_source","title":"Editar cdigo fuente"},
{"id":"tool_undo","title":"Deshacer"},
{"id":"tool_redo","title":"Rehacer"},
{"id":"tool_clone","title":"Clonar objeto"},
{"id":"tool_delete","title":"Suprimir objeto"},
{"id":"tool_move_top","title":"Mover arriba"},
{"id":"tool_move_bottom","title":"Mover abajo"},
{"id":"group_opacity","title":"Cambiar la opacidad del objeto seleccionado"},
{"id":"angle","title":"Cambiar el ngulo de rotacin"},
{"id":"tool_clone_multi","title":" Clonar objetos"},
{"id":"tool_delete_multi","title":"Suprimir los objetos seleccionados"},
{"id":"tool_alignleft","title":"Alinear lado izquierdo"},
{"id":"tool_aligncenter","title":"Centrar verticalmente"},
{"id":"tool_alignright","title":"Alinear lado derecho"},
{"id":"tool_aligntop","title":"Alinear parte superior"},
{"id":"tool_alignmiddle","title":"Centrar horizontalmente"},
{"id":"tool_alignbottom","title":"Alinear parte inferior"},
{"id":"align_relative_to","title":"Alinear con respecto a ..."},
{"id":"tool_group","title":"Agrupar objetos"},
{"id":"tool_ungroup","title":"Desagrupar objetos"},
{"id":"rect_width","title":"Cambiar el ancho rectngulo"},
{"id":"rect_height","title":"Cambiar la altura del rectgulo"},
{"id":"rect_rx","title":"Cambiar el radio de las esquinas del rectngulo"},
{"id":"image_width","title":"Cambiar el ancho de la imagen"},
{"id":"image_height","title":"Cambiar la altura de la imagen"},
{"id":"image_url","title":"Modificar URL"},
{"id":"circle_cx","title":"Cambiar la posicin horizonral CX del crculo"},
{"id":"circle_cy","title":"Cambiar la posicin vertical CY del crculo"},
{"id":"circle_r","title":"Cambiar el radio del crculo"},
{"id":"ellipse_cx","title":"Cambiar la posicin horizontal CX de la elipse"},
{"id":"ellipse_cy","title":"Cambiar la posicin vertical CY de la elipse"},
{"id":"ellipse_rx","title":"Cambiar el radio horizontal X de la elipse"},
{"id":"ellipse_ry","title":"Cambiar el radio vertical Y de la elipse"},
{"id":"line_x1","title":"Cambiar la posicin horizontal X del comienzo de la lnea"},
{"id":"line_y1","title":"Cambiar la posicin vertical Y del comienzo de la lnea"},
{"id":"line_x2","title":"Cambiar la posicin horizontal X del final de la lnea"},
{"id":"line_y2","title":"Cambiar la poicin vertical Y del final de la lnea"},
{"id":"tool_bold","title":"Texto en negrita"},
{"id":"tool_italic","title":"Texto en cursiva"},
{"id":"font_family","title":"Tipo de fuente"},
{"id":"font_size","title":"Tamao de la fuente"},
{"id":"text","title":"Modificar el texto"},
{"id":"tool_select","title":"Herramienta de seleccin"},
{"id":"tool_fhpath","title":"Herramienta de lpiz"},
{"id":"tool_line","title":"Trazado de lneas"},
{"id":"tools_rect_show","title":"Cuadrado / Rectngulo"},
{"id":"tools_ellipse_show","title":"Crculo / Elipse"},
{"id":"tool_text","title":"Insertar texto"},
{"id":"tool_path","title":"Herramienta de trazado"},
{"id":"tool_image","title":"Insertar imagen"},
{"id":"tool_zoom","title":"Zoom"},
{"id":"zoom","title":"Cambiar el nivel de zoom"},
{"id":"fill_color","title":"Cambiar el color de relleno"},
{"id":"stroke_color","title":"Cambiar el color del contorno"},
{"id":"stroke_width","title":"Cambiar el grosor del contorno"},
{"id":"stroke_style","title":"Cambiar el estilo del trazo del contorno"},
{"id":"palette","title":"Haga clic para cambiar el color de relleno. Pulse Mays y haga clic para cambiar el color del contorno."},
{"id":"tool_square","title":"Cuadrado"},
{"id":"tool_rect","title":"Rectngulo"},
{"id":"tool_fhrect","title":"Rectngulo a mano alzada"},
{"id":"tool_circle","title":"Crculo"},
{"id":"tool_ellipse","title":"Elipse"},
{"id":"tool_fhellipse","title":"Elipse a mano alzada"},
{"id":"bkgnd_color","title":"Cambiar color de fondo / opacidad"},
{"id":"rwidthLabel","textContent":"Ancho:"},
{"id":"rheightLabel","textContent":"Alto:"},
{"id":"cornerRadiusLabel","textContent":"Radio de la esquina:"},
{"id":"iwidthLabel","textContent":"ancho:"},
{"id":"iheightLabel","textContent":"alto:"},
{"id":"svginfo_width","textContent":"Ancho:"},
{"id":"svginfo_height","textContent":"Alto:"},
{"id":"angleLabel","textContent":"ngulo:"},
{"id":"relativeToLabel","textContent":"en relacin con:"},
{"id":"zoomLabel","textContent":"Zoom:"},
{"id":"layersLabel","textContent":"Capas:"},
{"id":"selectedPredefined","textContent":"Seleccionar predefinido:"},
{"id":"fitToContent","textContent":"Ajustar al contenido"},
{"id":"tool_source_save","textContent":"Aplicar cambios"},
{"id":"tool_docprops_save","textContent":"OK"},
{"id":"tool_docprops_cancel","textContent":"Cancelar"},
{"id":"tool_source_cancel","textContent":"Cancelar"},
{"id":"fit_to_all","textContent":"Ajustar a todo el contenido"},
{"id":"fit_to_layer_content","textContent":"Ajustar al contenido de la capa"},
{"id":"fit_to_sel","textContent":"Ajustar a la seleccin"},
{"id":"fit_to_canvas","textContent":"Ajustar al lienzo"},
{"id":"selected_objects","textContent":"Objetos seleccionados"},
{"id":"largest_object","textContent":"El objeto ms grande"},
{"id":"smallest_object","textContent":"El objeto ms pequeo"},
{"id":"page","textContent":"Pgina"},
{"id":"fill_tool_bottom","textContent":"Relleno:"},
{"id":"stroke_tool_bottom","textContent":"Contorno:"},
{"id":"svninfo_dim","textContent":"Dimensiones del lienzo"}
{"id":"path_node_x","title":"Cambiar la posicin horizontal X del nodo"},
{"id":"path_node_y","title":"Cambiar la posicin vertical Y del nodo"},
{"id":"seg_type","title":"Cambiar el tipo de segmento"},
{"id":"straight_segments","textContent":"Recta"},
{"id":"curve_segments","textContent":"Curva"},
{"id":"tool_node_clone","title":"Clonar nodo"},
{"id":"tool_node_delete","title":"Suprimir nodo"},
{"id":"selLayerLabel","textContent":"Desplazar objetos a:"},
{"id":"selLayerNames","title":"Mover los objetos seleccionados a otra capa"},
{"id":"sidepanel_handle","title":"Arrastrar hacia la izquierda/derecha para modificar el tamao del panel lateral","textContent":"C a p a s"},
{"id":"tool_wireframe","title":"Modo marco de alambre"},
{"id":"svginfo_image_props","textContent":"Propiedades de la Imagen"},
{"id":"svginfo_title","textContent":"Ttulo"},
{"id":"svginfo_dim","textContent":"Tamao del lienzo"},
{"id":"includedImages","textContent":"Imgenes integradas"},
{"id":"image_opt_embed","textContent":"Integrar imgenes en forma de datos (archivos locales)"},
{"id":"image_opt_ref","textContent":"Usar la referencia del archivo"},
{"id":"svginfo_editor_prefs","textContent":"Preferencias del Editor"},
{"id":"svginfo_lang","textContent":"Idioma"},
{"id":"svginfo_change_background","textContent":"Fondo del editor"},
{"id":"svginfo_bg_note","textContent":"Nota: El fondo no se guardar junto con la imagen."},
{"id":"svginfo_icons","textContent":"Tamao de los iconos"},
{"id":"icon_small","textContent":"Pequeo"},
{"id":"icon_medium","textContent":"Mediano"},
{"id":"icon_large","textContent":"Grande"},
{"id":"icon_xlarge","textContent":"Muy grande"},
{"id":"selected_x","title":"Cambiar la posicin horizontal X"},
{"id":"selected_y","title":"Cambiar la posicin vertical Y"},
{"id":"tool_topath","title":"Convertir a trazado"},
{"id":"tool_reorient","title":"Reorientar el trazado"},
{"id":"tool_node_link","title":"Enlazar puntos de control"},
{"js_strings": {
	"invalidAttrValGiven":"Valor no vlido",
	"noContentToFitTo":"No existe un contenido al que ajustarse.",
	'layer':"Capa",
	"dupeLayerName":"Ya existe una capa con este nombre!",
	"enterUniqueLayerName":"Introduzca otro nombre distinto para la capa.",
	"enterNewLayerName":"Introduzca el nuevo nombre de la capa.",
	"layerHasThatName":"El nombre introducido es el nombre actual de la capa.",
	"QmoveElemsToLayer":"Desplazar los elementos seleccionados a la capa '%s'?",
	"QwantToClear":"Desea borrar el dibujo?\nEl historial de acciones tambin se borrar!",
	"QerrorsRevertToSource":"Existen errores sintcticos en su cdigo fuente SVG.\nDesea volver al cdigo fuente SVG original?",
	"QignoreSourceChanges":"Desea ignorar los cambios realizados sobre el cdigo fuente SVG?",
	"featNotSupported":"Funcin no compatible.",
	"enterNewImgURL":"Introduzca la nueva URL de la imagen.",
	"Aceptar":"OK",
	"cancel":"Cancelar",
	"pathNodeTooltip":"Arrastre el nodo para desplazarlo. Haga doble clic sobre el nodo para cambiar el tipo de segmento.",
	"pathCtrlPtTooltip":"Arrastre el punto de control para ajustar las propiedades de la curva.",
	"key_up":"arriba",
	"key_down":"abajo",
	"key_backspace":"retroceso",
	"key_del":"suprimir"
	}
}
]<commit_msg>Missed single-quote fix for lang.es.js, but still reported as invalid JSON<commit_after>[
{"id":"layer_new","title":"Nueva capa"},
{"id":"layer_delete","title":"Suprimir capa"},
{"id":"layer_rename","title":"Renombrar capa"},
{"id":"layer_up","title":"Mover la capa hacia arriba"},
{"id":"layer_down","title":"Mover la capa hacia abajo"},
{"id":"tool_clear","title":"Nueva imagen"},
{"id":"tool_open","title":"Abrir imagen"},
{"id":"tool_save","title":"Guardar imagen"},
{"id":"tool_docprops","title":"Propiedades del documento"},
{"id":"tool_source","title":"Editar cdigo fuente"},
{"id":"tool_undo","title":"Deshacer"},
{"id":"tool_redo","title":"Rehacer"},
{"id":"tool_clone","title":"Clonar objeto"},
{"id":"tool_delete","title":"Suprimir objeto"},
{"id":"tool_move_top","title":"Mover arriba"},
{"id":"tool_move_bottom","title":"Mover abajo"},
{"id":"group_opacity","title":"Cambiar la opacidad del objeto seleccionado"},
{"id":"angle","title":"Cambiar el ngulo de rotacin"},
{"id":"tool_clone_multi","title":" Clonar objetos"},
{"id":"tool_delete_multi","title":"Suprimir los objetos seleccionados"},
{"id":"tool_alignleft","title":"Alinear lado izquierdo"},
{"id":"tool_aligncenter","title":"Centrar verticalmente"},
{"id":"tool_alignright","title":"Alinear lado derecho"},
{"id":"tool_aligntop","title":"Alinear parte superior"},
{"id":"tool_alignmiddle","title":"Centrar horizontalmente"},
{"id":"tool_alignbottom","title":"Alinear parte inferior"},
{"id":"align_relative_to","title":"Alinear con respecto a ..."},
{"id":"tool_group","title":"Agrupar objetos"},
{"id":"tool_ungroup","title":"Desagrupar objetos"},
{"id":"rect_width","title":"Cambiar el ancho rectngulo"},
{"id":"rect_height","title":"Cambiar la altura del rectgulo"},
{"id":"rect_rx","title":"Cambiar el radio de las esquinas del rectngulo"},
{"id":"image_width","title":"Cambiar el ancho de la imagen"},
{"id":"image_height","title":"Cambiar la altura de la imagen"},
{"id":"image_url","title":"Modificar URL"},
{"id":"circle_cx","title":"Cambiar la posicin horizonral CX del crculo"},
{"id":"circle_cy","title":"Cambiar la posicin vertical CY del crculo"},
{"id":"circle_r","title":"Cambiar el radio del crculo"},
{"id":"ellipse_cx","title":"Cambiar la posicin horizontal CX de la elipse"},
{"id":"ellipse_cy","title":"Cambiar la posicin vertical CY de la elipse"},
{"id":"ellipse_rx","title":"Cambiar el radio horizontal X de la elipse"},
{"id":"ellipse_ry","title":"Cambiar el radio vertical Y de la elipse"},
{"id":"line_x1","title":"Cambiar la posicin horizontal X del comienzo de la lnea"},
{"id":"line_y1","title":"Cambiar la posicin vertical Y del comienzo de la lnea"},
{"id":"line_x2","title":"Cambiar la posicin horizontal X del final de la lnea"},
{"id":"line_y2","title":"Cambiar la poicin vertical Y del final de la lnea"},
{"id":"tool_bold","title":"Texto en negrita"},
{"id":"tool_italic","title":"Texto en cursiva"},
{"id":"font_family","title":"Tipo de fuente"},
{"id":"font_size","title":"Tamao de la fuente"},
{"id":"text","title":"Modificar el texto"},
{"id":"tool_select","title":"Herramienta de seleccin"},
{"id":"tool_fhpath","title":"Herramienta de lpiz"},
{"id":"tool_line","title":"Trazado de lneas"},
{"id":"tools_rect_show","title":"Cuadrado / Rectngulo"},
{"id":"tools_ellipse_show","title":"Crculo / Elipse"},
{"id":"tool_text","title":"Insertar texto"},
{"id":"tool_path","title":"Herramienta de trazado"},
{"id":"tool_image","title":"Insertar imagen"},
{"id":"tool_zoom","title":"Zoom"},
{"id":"zoom","title":"Cambiar el nivel de zoom"},
{"id":"fill_color","title":"Cambiar el color de relleno"},
{"id":"stroke_color","title":"Cambiar el color del contorno"},
{"id":"stroke_width","title":"Cambiar el grosor del contorno"},
{"id":"stroke_style","title":"Cambiar el estilo del trazo del contorno"},
{"id":"palette","title":"Haga clic para cambiar el color de relleno. Pulse Mays y haga clic para cambiar el color del contorno."},
{"id":"tool_square","title":"Cuadrado"},
{"id":"tool_rect","title":"Rectngulo"},
{"id":"tool_fhrect","title":"Rectngulo a mano alzada"},
{"id":"tool_circle","title":"Crculo"},
{"id":"tool_ellipse","title":"Elipse"},
{"id":"tool_fhellipse","title":"Elipse a mano alzada"},
{"id":"bkgnd_color","title":"Cambiar color de fondo / opacidad"},
{"id":"rwidthLabel","textContent":"Ancho:"},
{"id":"rheightLabel","textContent":"Alto:"},
{"id":"cornerRadiusLabel","textContent":"Radio de la esquina:"},
{"id":"iwidthLabel","textContent":"ancho:"},
{"id":"iheightLabel","textContent":"alto:"},
{"id":"svginfo_width","textContent":"Ancho:"},
{"id":"svginfo_height","textContent":"Alto:"},
{"id":"angleLabel","textContent":"ngulo:"},
{"id":"relativeToLabel","textContent":"en relacin con:"},
{"id":"zoomLabel","textContent":"Zoom:"},
{"id":"layersLabel","textContent":"Capas:"},
{"id":"selectedPredefined","textContent":"Seleccionar predefinido:"},
{"id":"fitToContent","textContent":"Ajustar al contenido"},
{"id":"tool_source_save","textContent":"Aplicar cambios"},
{"id":"tool_docprops_save","textContent":"OK"},
{"id":"tool_docprops_cancel","textContent":"Cancelar"},
{"id":"tool_source_cancel","textContent":"Cancelar"},
{"id":"fit_to_all","textContent":"Ajustar a todo el contenido"},
{"id":"fit_to_layer_content","textContent":"Ajustar al contenido de la capa"},
{"id":"fit_to_sel","textContent":"Ajustar a la seleccin"},
{"id":"fit_to_canvas","textContent":"Ajustar al lienzo"},
{"id":"selected_objects","textContent":"Objetos seleccionados"},
{"id":"largest_object","textContent":"El objeto ms grande"},
{"id":"smallest_object","textContent":"El objeto ms pequeo"},
{"id":"page","textContent":"Pgina"},
{"id":"fill_tool_bottom","textContent":"Relleno:"},
{"id":"stroke_tool_bottom","textContent":"Contorno:"},
{"id":"svninfo_dim","textContent":"Dimensiones del lienzo"}
{"id":"path_node_x","title":"Cambiar la posicin horizontal X del nodo"},
{"id":"path_node_y","title":"Cambiar la posicin vertical Y del nodo"},
{"id":"seg_type","title":"Cambiar el tipo de segmento"},
{"id":"straight_segments","textContent":"Recta"},
{"id":"curve_segments","textContent":"Curva"},
{"id":"tool_node_clone","title":"Clonar nodo"},
{"id":"tool_node_delete","title":"Suprimir nodo"},
{"id":"selLayerLabel","textContent":"Desplazar objetos a:"},
{"id":"selLayerNames","title":"Mover los objetos seleccionados a otra capa"},
{"id":"sidepanel_handle","title":"Arrastrar hacia la izquierda/derecha para modificar el tamao del panel lateral","textContent":"C a p a s"},
{"id":"tool_wireframe","title":"Modo marco de alambre"},
{"id":"svginfo_image_props","textContent":"Propiedades de la Imagen"},
{"id":"svginfo_title","textContent":"Ttulo"},
{"id":"svginfo_dim","textContent":"Tamao del lienzo"},
{"id":"includedImages","textContent":"Imgenes integradas"},
{"id":"image_opt_embed","textContent":"Integrar imgenes en forma de datos (archivos locales)"},
{"id":"image_opt_ref","textContent":"Usar la referencia del archivo"},
{"id":"svginfo_editor_prefs","textContent":"Preferencias del Editor"},
{"id":"svginfo_lang","textContent":"Idioma"},
{"id":"svginfo_change_background","textContent":"Fondo del editor"},
{"id":"svginfo_bg_note","textContent":"Nota: El fondo no se guardar junto con la imagen."},
{"id":"svginfo_icons","textContent":"Tamao de los iconos"},
{"id":"icon_small","textContent":"Pequeo"},
{"id":"icon_medium","textContent":"Mediano"},
{"id":"icon_large","textContent":"Grande"},
{"id":"icon_xlarge","textContent":"Muy grande"},
{"id":"selected_x","title":"Cambiar la posicin horizontal X"},
{"id":"selected_y","title":"Cambiar la posicin vertical Y"},
{"id":"tool_topath","title":"Convertir a trazado"},
{"id":"tool_reorient","title":"Reorientar el trazado"},
{"id":"tool_node_link","title":"Enlazar puntos de control"},
{"js_strings": {
	"invalidAttrValGiven":"Valor no vlido",
	"noContentToFitTo":"No existe un contenido al que ajustarse.",
	"layer":"Capa",
	"dupeLayerName":"Ya existe una capa con este nombre!",
	"enterUniqueLayerName":"Introduzca otro nombre distinto para la capa.",
	"enterNewLayerName":"Introduzca el nuevo nombre de la capa.",
	"layerHasThatName":"El nombre introducido es el nombre actual de la capa.",
	"QmoveElemsToLayer":"Desplazar los elementos seleccionados a la capa '%s'?",
	"QwantToClear":"Desea borrar el dibujo?\nEl historial de acciones tambin se borrar!",
	"QerrorsRevertToSource":"Existen errores sintcticos en su cdigo fuente SVG.\nDesea volver al cdigo fuente SVG original?",
	"QignoreSourceChanges":"Desea ignorar los cambios realizados sobre el cdigo fuente SVG?",
	"featNotSupported":"Funcin no compatible.",
	"enterNewImgURL":"Introduzca la nueva URL de la imagen.",
	"Aceptar":"OK",
	"cancel":"Cancelar",
	"pathNodeTooltip":"Arrastre el nodo para desplazarlo. Haga doble clic sobre el nodo para cambiar el tipo de segmento.",
	"pathCtrlPtTooltip":"Arrastre el punto de control para ajustar las propiedades de la curva.",
	"key_up":"arriba",
	"key_down":"abajo",
	"key_backspace":"retroceso",
	"key_del":"suprimir"
	}
}
]<|endoftext|>