@nebula.js/sn-waterfall 0.35.0 → 0.36.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../chart-modules/common/picasso/plugins/event-area.js","../../../../chart-modules/common/picasso/disclaimer/disclaimer-component.jsx","../../../../chart-modules/common/nebula/snapshot.js","../../src/object-properties.js","../../src/waterfallchart-data-definition.js","../../../../node_modules/qlik-object-conversion/dist/conversion.js","../../src/waterfallchart-import-export.js","../../src/waterfallchart-qae.js","../../../../node_modules/qlik-chart-modules/dist/qlik-chart-modules.esm.js","../../../../chart-modules/common/extra/chart-style-component.js","../../src/waterfallchart-utils.js","../../src/styling-panel-property-definiton.js","../../src/waterfallchart-properties.js","../../src/ext.js","../../../../chart-modules/common/extra/class.js","../../../../chart-modules/common/extra/generate-id.js","../../../../chart-modules/common/picasso/scroll/scroll-actions.js","../../../../chart-modules/common/picasso/chart-builder/components/util/axis-dock-util.js","../../../../chart-modules/common/extra/rtl-util.js","../../../../chart-modules/common/picasso/chart-builder/components/util/ref-line-util.js","../../../../chart-modules/common/picasso/chart-builder/presets/dimension-measure-chart/constants.js","../../../../chart-modules/common/picasso/chart-builder/presets/dimension-measure-chart/layout-settings.js","../../../../chart-modules/common/picasso/chart-builder/presets/dimension-measure-chart/dimension-measure-chart.js","../../../../chart-modules/common/picasso/chart-builder/scale.js","../../../../chart-modules/common/picasso/chart-builder/components/axis.js","../../../../chart-modules/common/picasso/chart-builder/components/text.js","../../../../chart-modules/common/picasso/chart-builder/components/util/range-util.js","../../../../chart-modules/common/picasso/chart-builder/layout-modes.js","../../../../chart-modules/common/picasso/chart-builder/components/labels.js","../../../../chart-modules/common/picasso/chart-builder/components/categorical-legend.js","../../../../chart-modules/common/picasso/chart-builder/chart-builder.js","../../../../chart-modules/common/picasso/chart-builder/components/box-marker.js","../../../../chart-modules/common/picasso/chart-builder/components/point-marker.js","../../../../chart-modules/common/picasso/chart-builder/components/scrollbar.js","../../../../chart-modules/common/picasso/chart-builder/components/lasso.js","../../../../chart-modules/common/picasso/chart-builder/components/range.js","../../../../chart-modules/common/picasso/chart-builder/components/range-area.js","../../../../chart-modules/common/picasso/chart-builder/components/sequential-legend.js","../../../../chart-modules/common/picasso/chart-builder/components/grid-line.js","../../../../chart-modules/common/picasso/chart-builder/components/interaction.js","../../../../chart-modules/common/picasso/chart-builder/components/ref-line.js","../../../../chart-modules/common/picasso/chart-builder/components/event-area.js","../../../../chart-modules/common/picasso/chart-builder/chart-presets.js","../../../../chart-modules/common/picasso/disclaimer/disclaimers-config.js","../../../../chart-modules/common/picasso/disclaimer/disclaimer-attributes-util.js","../../../../chart-modules/common/picasso/disclaimer/disclaimer-component-helper.js","../../../../chart-modules/common/picasso/disclaimer/disclaimer.js","../../../../chart-modules/common/picasso/chart-view.js","../../../../chart-modules/common/extra/css-colors.js","../../../../chart-modules/common/extra/color.js","../../../../chart-modules/common/extra/chart-style-utils.js","../../../../chart-modules/common/picasso/scroll/scroll-handler.js","../../../../chart-modules/common/picasso/selections/gestures/on-component-checker.js","../../../../chart-modules/common/picasso/selections/gestures/lasso-gesture.js","../../../../chart-modules/common/picasso/selections/gestures/measure-range-gesture.js","../../../../chart-modules/common/picasso/selections/gestures/area-range-gesture.js","../../../../chart-modules/common/picasso/selections/gestures/dimension-range-gesture.js","../../../../chart-modules/common/picasso/selections/gestures/drag-gesture.js","../../../../chart-modules/common/picasso/selections/gestures/navigational-button-gesture.js","../../../../chart-modules/common/picasso/selections/dependent-interactions.js","../../../../chart-modules/common/picasso/tooltip/tooltip-actions.js","../../../../chart-modules/common/picasso/formatting.js","../../../../chart-modules/common/picasso/tooltip/tooltip-content.js","../../../../chart-modules/common/picasso/tooltip/tooltips-component.js","../../../../chart-modules/common/picasso/tooltip/tooltip-renderer.jsx","../../../../chart-modules/common/picasso/tooltip/tooltips-handler.js","../../../../chart-modules/common/extra/string-util.js","../../src/waterfallchart-cube-generator-by-measures.js","../../../../node_modules/d3-array/src/ascending.js","../../../../node_modules/d3-array/src/descending.js","../../../../node_modules/d3-array/src/bisector.js","../../../../node_modules/d3-array/src/bisect.js","../../../../node_modules/d3-array/src/number.js","../../../../node_modules/d3-array/src/ticks.js","../../../../node_modules/d3-scale/src/init.js","../../../../node_modules/d3-color/src/define.js","../../../../node_modules/d3-color/src/color.js","../../../../node_modules/d3-interpolate/src/constant.js","../../../../node_modules/d3-interpolate/src/color.js","../../../../node_modules/d3-interpolate/src/rgb.js","../../../../node_modules/d3-interpolate/src/numberArray.js","../../../../node_modules/d3-interpolate/src/array.js","../../../../node_modules/d3-interpolate/src/date.js","../../../../node_modules/d3-interpolate/src/number.js","../../../../node_modules/d3-interpolate/src/object.js","../../../../node_modules/d3-interpolate/src/string.js","../../../../node_modules/d3-interpolate/src/value.js","../../../../node_modules/d3-interpolate/src/round.js","../../../../node_modules/d3-scale/src/number.js","../../../../node_modules/d3-scale/src/continuous.js","../../../../node_modules/d3-scale/src/constant.js","../../../../node_modules/d3-format/src/formatDecimal.js","../../../../node_modules/d3-format/src/exponent.js","../../../../node_modules/d3-format/src/formatSpecifier.js","../../../../node_modules/d3-format/src/formatPrefixAuto.js","../../../../node_modules/d3-format/src/formatRounded.js","../../../../node_modules/d3-format/src/formatTypes.js","../../../../node_modules/d3-format/src/identity.js","../../../../node_modules/d3-format/src/locale.js","../../../../node_modules/d3-format/src/defaultLocale.js","../../../../node_modules/d3-format/src/formatGroup.js","../../../../node_modules/d3-format/src/formatNumerals.js","../../../../node_modules/d3-format/src/formatTrim.js","../../../../node_modules/d3-scale/src/tickFormat.js","../../../../node_modules/d3-format/src/precisionPrefix.js","../../../../node_modules/d3-format/src/precisionRound.js","../../../../node_modules/d3-format/src/precisionFixed.js","../../../../node_modules/d3-scale/src/linear.js","../../src/waterfallchart-tick-generator.js","../../src/waterfallchart-view.js","../../src/index.js","../../../../chart-modules/common/locale/index.js","../../../../chart-modules/common/picasso/picasso-setup.js","../../../../chart-modules/common/nebula/use-environment.js","../../../../chart-modules/common/nebula/resize.js"],"sourcesContent":["export default function init(Picasso) {\n // Transparent component, placed on top of the data area and used to register event on\n Picasso.component('event-area', {\n mounted(element) {\n element.classList.add('event-area');\n element.style.pointerEvents = 'auto';\n element.style.zIndex = 1;\n },\n render() {\n const nodes = [];\n return nodes;\n },\n });\n}\n","/** @jsx h */\n\nfunction getStyle(dock, rect) {\n const style = {\n pointerEvents: 'auto',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: '#7b7a78',\n fontStyle: 'italic',\n fontSize: '13px',\n };\n\n switch (dock) {\n case 'left':\n style.width = `${rect.height}px`;\n style.transform = `rotate(-90deg) translate(-${rect.height}px, 0)`;\n style.transformOrigin = 'top left';\n break;\n\n case 'right':\n style.width = `${rect.height}px`;\n style.transform = `rotate(90deg) translate(0, -${rect.width}px)`;\n style.transformOrigin = 'top left';\n break;\n\n case 'center':\n style.width = `${rect.width}px`;\n style.height = `${rect.height}px`;\n style.color = '#595959';\n style.fontStyle = 'normal';\n style.fontSize = '1.2em';\n style.textAlign = 'center';\n break;\n\n default:\n case 'top':\n case 'bottom':\n style.justifyContent = 'flex-start';\n style.alignItems = 'flex-start';\n break;\n }\n return style;\n}\n\nexport default {\n renderer: 'dom',\n disableTriggers: true,\n preferredSize: function preferredSize() {\n return 22;\n },\n render(h) {\n const {\n settings: { label, rtl },\n layout: { dock },\n } = this.settings;\n const dir = (dock === 'top' || dock === 'bottom') && rtl ? 'rtl' : 'ltr';\n const style = getStyle(dock, this.rect);\n\n const modifiedLabel = dock === 'center' ? label : `* ${label}`;\n\n const spanStyle = dock !== 'center' ? { overflow: 'hidden', whiteSpace: 'nowrap', textOverflow: 'ellipsis' } : {};\n\n return (\n <div style={style} dir={dir}>\n <span ref={this.alignToRef} style={spanStyle} title={modifiedLabel}>\n {modifiedLabel}\n </span>\n </div>\n );\n },\n};\n","import { onTakeSnapshot, useImperativeHandle } from '@nebula.js/stardust';\n\nconst setupSnapshot = (chartInstance) => {\n onTakeSnapshot((layout) => {\n if (!chartInstance) {\n return undefined;\n }\n\n return chartInstance.setSnapshotData(layout);\n });\n\n useImperativeHandle(\n () => ({\n getViewState() {\n if (!chartInstance) {\n return undefined;\n }\n return chartInstance.getViewState();\n },\n }),\n [chartInstance]\n );\n};\n\nexport default setupSnapshot;\n","/**\n * Settings for subtotal\n * @typedef {object} subtotalProperties\n * @property {boolean} enable=false Option to add a subtotal after a measure.\n * @property {string} label='Subtotal' Label of the subtotal added after a measure.\n */\n\n/**\n * Extends `NxInlineMeasureDef`, see Engine API: `NxInlineMeasureDef`.\n * @typedef {object} InlineMeasureDef\n * @extends NxInlineMeasureDef\n * @property {subtotalProperties} subtotal subtotal settings.\n * @property {'NORMAL'|'INVERSE'|'SUBTOTAL'} valueType='NORMAL' Measure operation.\n */\n\n/**\n * Extends `NxMeasure`, see Engine API: `NxMeasure`.\n * @typedef {object} MeasureProperties\n * @extends NxMeasure\n * @property {InlineMeasureDef} qDef\n */\n\n/**\n * Field attributes structure.\n * @typedef {object} FieldAttributes\n * @property {string} dec - Defines the decimal separator.\n * @property {string} Fmt - Defines the format pattern that applies to qText.\n * @property {number} nDec - Number of decimals.\n * @property {string} Thou - Defines the thousand separator (if any).\n * @property {string} Type - Type of the field.\n * @property {number} UseThou - Defines whether or not a thousands separator must be used.\n */\n\n/**\n * Color information structure. Holds the actual color and index in palette.\n * @typedef {object} paletteColor\n * @property {string} color - Color as hex string (mandatory if index: -1)\n * @property {number} index - Index in palette\n */\n\n/**\n * Styling settings for reference line\n * @typedef {object} refLineStyle\n * @property {number} [lineThickness=2] Set the thickness for this reference line.\n * @property {string} [lineType=''] Set the dash type for this reference line.\n */\n\n/**\n * @typedef {object} refLine\n * @property {boolean|ValueExpression} show=true Set to true to display this reference line.\n * @property {string} label Reference line label.\n * @property {boolean} [showLabel=true] Set to true to show the label of this reference line.\n * @property {boolean} [showValue=true] Set to true to show the value of this reference line.\n * @property {paletteColor} paletteColor\n * @property {refLineStyle} [style] - Styling settings for reference line\n * @property {boolean} [coloredBackground=false] Set to true to fill the label and/or value of this reference line with this color\n */\n\n/**\n * @namespace properties\n * @entry\n */\n\nconst properties = {\n /**\n * Current version of this generic object definition.\n * @type {string}\n * @default\n */\n version: process.env.PACKAGE_VERSION,\n\n /**\n * Extends `HyperCubeDef`, see Engine API: `HyperCubeDef`.\n * @extends {HyperCubeDef}\n */\n qHyperCubeDef: {\n qDimensions: [],\n /** @type {MeasureProperties[]} */\n qMeasures: [],\n qMode: 'S',\n qInitialDataFetch: [{ qWidth: 200, qHeight: 10 }],\n qSuppressMissing: true,\n },\n /**\n * Color settings.\n * Most color options for visualizations are set in the color object in the options. You activate custom coloring by setting `\"auto\": false` which turns off auto-coloring.\n * If `\"auto\": true`, no other properties need to be defined in the color object.\n * Note: Some of the color properties are depending on which theme is currently being used.\n * @type {object}\n */\n color: {\n /**\n * Set to use automatic coloring.\n * When `\"auto\": true`, color settings are based on the visualization used and the number of dimensions\n * and measures, that is, the settings are not fixed, but are dependent on the data input.\n * @type {boolean}\n * @default\n */\n auto: true,\n /**\n * Positive value color.\n * @type {object}\n */\n positiveValue: {\n /**\n * paletteColor\n * @type {paletteColor}\n * @default { index: 6, color: null }\n */\n paletteColor: {\n index: 6,\n color: null,\n },\n },\n /**\n * Negative value color.\n * @type {object}\n */\n negativeValue: {\n /**\n * paletteColor\n * @type {paletteColor}\n * @default { index: -1, color: '#cc6677' }\n */\n paletteColor: {\n index: -1,\n color: '#cc6677',\n },\n },\n /**\n * Subtotal value color.\n * @type {object}\n */\n subtotal: {\n /**\n * paletteColor\n * @type {paletteColor}\n * @default { index: -1, color: '#c3c3c3' }\n */\n paletteColor: {\n index: -1,\n color: '#c3c3c3',\n },\n },\n },\n /**\n * Data point.\n * @type {object}\n */\n dataPoint: {\n /**\n * Show labels.\n * @type {boolean}\n * @default\n */\n showLabels: true,\n },\n /**\n * Dimension axis settings.\n * @type {object}\n */\n dimensionAxis: {\n /**\n * Axis docking position\n * @type {'near'|'far'}\n * @default \"near\"\n */\n dock: 'near',\n /**\n * Label orientation\n * @type {'auto'|'horizontal'|'tilted'}\n */\n label: 'auto',\n /**\n * Labels and title\n * @type {'labels'|'none'}\n * @default\n */\n show: 'labels',\n },\n /**\n * Grid lines settings.\n * @type {object}\n */\n gridlines: {\n /**\n * Automatic grid line spacing.\n * @type {boolean}\n * @default\n */\n auto: true,\n /**\n * Grid line spacing. Used only when auto is set to false.\n * @type {0|2|3}\n * @default\n */\n spacing: 2,\n },\n /**\n * Legend settings.\n * @type {object}\n */\n legend: {\n /**\n * Sets the legend position.\n * @type {'auto'|'right'|'left'|'bottom'|'top'}\n * @default 'auto'\n */\n dock: 'auto',\n /**\n * Set to show the legend.\n * @type {boolean}\n * @default\n */\n show: true,\n },\n /**\n * Measure axis settings.\n * @type {object}\n */\n measureAxis: {\n /**\n * Automatic max/min\n * @type {boolean}\n * @default\n */\n autoMinMax: true,\n /**\n * Axis docking position\n * @type {'near'|'far'}\n * @default \"near\"\n */\n dock: 'near',\n /**\n * Axis max value. `\"autoMinMax\"` must be set to false and `\"minMax\"`\n * must be set to `\"max\"` or `\"minMax\"` to use this property\n * @type {number|ValueExpression}\n * @default\n */\n max: 10,\n /**\n * Axis min value. `\"autoMinMax\"` must be set to false and `\"minMax\"`\n * must be set to `\"min\"` or `\"minMax\"` to use this property\n * @type {number|ValueExpression}\n * @default\n */\n min: 0,\n /**\n * Set custom max/min\n * @type {'min'|'max'|'minMax'}\n * @default \"min\"\n */\n minMax: 'min',\n /**\n * Labels and title\n * @type {'labels'|'none'}\n * @default \"labels\"\n */\n show: 'labels',\n /**\n * Axis scale\n * @type {number}\n * @default\n */\n spacing: 1,\n },\n qDef: {\n /**\n * see Engine API: `FieldAttributes`.\n * @type {FieldAttributes=}\n */\n qNumFormat: {},\n /**\n * When enabled, the number format to use can be selected from multiple predefined formats based on the desired type (number, date).\n * @type {boolean}\n * @default\n */\n numFormatFromTemplate: true,\n /**\n * If true, the client formatting will be toggled off.\n * @type {boolean}\n * @default\n */\n isCustomFormatted: false,\n },\n /**\n * Reference lines settings\n * @type {object}\n */\n refLine: {\n /**\n * Array of measure based reference line definitions\n * @type {refLine[]}\n */\n refLines: [],\n },\n /**\n * Show title for the visualization.\n * @type {boolean=}\n * @default\n */\n showTitles: true,\n /**\n * Visualization subtitle.\n * @type {(string|StringExpression)=}\n * @default\n */\n subtitle: '',\n /**\n * Visualization title.\n * @type {(string|StringExpression)=}\n * @default\n */\n title: '',\n /**\n * Visualization footnote.\n * @type {(string|StringExpression)=}\n * @default\n */\n footnote: '',\n};\n\nexport default properties;\n","export default function data(env) {\n const { translator } = env;\n\n const dimensions = {\n min: 0,\n max: 0,\n };\n const measures = {\n min: 1,\n max: 50,\n description() {\n return translator.get('Visualizations.Descriptions.Bars');\n },\n };\n return {\n path: '/qHyperCubeDef',\n dimensions,\n measures,\n };\n}\n","!function(e,r){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=r():\"function\"==typeof define&&define.amd?define([],r):\"object\"==typeof exports?exports.conversion=r():e.conversion=r()}(window,(function(){return function(e){var r={};function n(t){if(r[t])return r[t].exports;var o=r[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=r,n.d=function(e,r,t){n.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,r){if(1&r&&(e=n(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(n.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var o in e)n.d(t,o,function(r){return e[r]}.bind(null,o));return t},n.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(r,\"a\",r),r},n.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},n.p=\"/conversion/\",n(n.s=2)}([function(e,r,n){\"use strict\";var t=Object.prototype.hasOwnProperty,o=Object.prototype.toString,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,s=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===o.call(e)},u=function(e){if(!e||\"[object Object]\"!==o.call(e))return!1;var r,n=t.call(e,\"constructor\"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!i)return!1;for(r in e);return void 0===r||t.call(e,r)},l=function(e,r){i&&\"__proto__\"===r.name?i(e,r.name,{enumerable:!0,configurable:!0,value:r.newValue,writable:!0}):e[r.name]=r.newValue},c=function(e,r){if(\"__proto__\"===r){if(!t.call(e,r))return;if(a)return a(e,r).value}return e[r]};e.exports=function e(){var r,n,t,o,i,a,p=arguments[0],f=1,m=arguments.length,d=!1;for(\"boolean\"==typeof p&&(d=p,p=arguments[1]||{},f=2),(null==p||\"object\"!=typeof p&&\"function\"!=typeof p)&&(p={});f<m;++f)if(null!=(r=arguments[f]))for(n in r)t=c(p,n),p!==(o=c(r,n))&&(d&&o&&(u(o)||(i=s(o)))?(i?(i=!1,a=t&&s(t)?t:[]):a=t&&u(t)?t:{},l(p,{name:n,newValue:e(d,a,o)})):void 0!==o&&l(p,{name:n,newValue:o}));return p}},function(e,r,n){window,e.exports=function(e){var r={};function n(t){if(r[t])return r[t].exports;var o=r[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=r,n.d=function(e,r,t){n.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,r){if(1&r&&(e=n(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(n.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var o in e)n.d(t,o,function(r){return e[r]}.bind(null,o));return t},n.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(r,\"a\",r),r},n.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},n.p=\"/qlik-modifiers/\",n(n.s=1)}([function(e,r,n){\"use strict\";var t=Object.prototype.hasOwnProperty,o=Object.prototype.toString,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,s=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===o.call(e)},u=function(e){if(!e||\"[object Object]\"!==o.call(e))return!1;var r,n=t.call(e,\"constructor\"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!i)return!1;for(r in e);return void 0===r||t.call(e,r)},l=function(e,r){i&&\"__proto__\"===r.name?i(e,r.name,{enumerable:!0,configurable:!0,value:r.newValue,writable:!0}):e[r.name]=r.newValue},c=function(e,r){if(\"__proto__\"===r){if(!t.call(e,r))return;if(a)return a(e,r).value}return e[r]};e.exports=function e(){var r,n,t,o,i,a,p=arguments[0],f=1,m=arguments.length,d=!1;for(\"boolean\"==typeof p&&(d=p,p=arguments[1]||{},f=2),(null==p||\"object\"!=typeof p&&\"function\"!=typeof p)&&(p={});f<m;++f)if(null!=(r=arguments[f]))for(n in r)t=c(p,n),p!==(o=c(r,n))&&(d&&o&&(u(o)||(i=s(o)))?(i?(i=!1,a=t&&s(t)?t:[]):a=t&&u(t)?t:{},l(p,{name:n,newValue:e(d,a,o)})):void 0!==o&&l(p,{name:n,newValue:o}));return p}},function(e,r,n){\"use strict\";n.r(r);var t=n(0),o=n.n(t),i=function(e,r,n){if(!r)return!1;var t,o=r.split(\".\"),i=o[o.length-1],a=e;for(t=0;t<o.length-1;++t)void 0===a[o[t]]&&(a[o[t]]=Number.isNaN(+o[t+1])?{}:[]),a=a[o[t]];if(void 0!==n){var s=a[i];return a[i]=n,{updated:n,previous:s}}return delete a[i],!1},a=function(e,r,n){var t,o=r.split(\".\"),i=e;if(void 0===i)return n;for(t=0;t<o.length;++t){if(void 0===i[o[t]])return n;i=i[o[t]]}return i},s=\"\".concat(\" \",\"(\").concat(\" \"),u=\"\".concat(\" \",\")\").concat(\" \");function l(e){return s+e+u}function c(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(e.qLibraryId){var n=function(e,r){if(!r)return null;var n,t;for(n=0;n<r.length;n++)if((t=r[n]).qInfo.qId===e)return t;return null}(e.qLibraryId,r.dimensionList);return n&&n.qData.info[0].qTags.indexOf(\"$numeric\")>-1}var t=function(e,r){if(!r)return null;var n,t,o=function(e){var r=e.trim();\"=\"===r.charAt(0)&&(r=(r=r.substring(1)).trim());var n=r.length-1;return\"[\"===r.charAt(0)&&\"]\"===r.charAt(n)&&(r=(r=r.substring(1,n)).trim()),r}(e);for(n=0;n<r.length;n++){if((t=r[n]).qName===o)return t;if(t.qDerivedFieldData)for(var i=0;i<t.qDerivedFieldData.qDerivedFieldLists.length;++i)for(var a=t.qDerivedFieldData.qDerivedFieldLists[i],s=0;s<a.qFieldDefs.length;++s){var u=a.qFieldDefs[s];if(u.qName===o)return u}}return null}(e.qDef.qFieldDefs[0],r.fieldList);return t&&t.qTags.indexOf(\"$numeric\")>-1}function p(e){return!(!e.fullAccumulation&&!e.fullRange)}function f(e,r){var n=e.crossAllDimensions;return 2===r&&n?\"RowNo(Total)\":\"RowNo()\"}function m(e){var r=function(e){return e?(e=function(e){return e.replace(/\\/\\*[^]*?\\*\\//g,\"\")}(e=function(e){return e.replace(/\\/\\/(.*)$/gm,\"\")}(e))).trim():\"\"}(e).trim();return\"=\"===r.substring(0,1)?r.substring(1).trim():r}function d(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return\"[$(=Replace(GetObjectField(\".concat(e,\"),']',']]'))]\")}function y(e,r){var n=e.crossAllDimensions;return 2===r&&n?\"Above(Total \":\"Above(\"}function q(e){return void 0===e?\")\":\", 0, \".concat(e,\")\")}function b(e,r){return e?\"\".concat(r,'={\">=$(=Min(').concat(r,\"))<=$(=Max(\").concat(r,'))\"}'):\"\".concat(r,'={\"=Only({1}').concat(r,\")>='$(=MinString(\").concat(r,\"))' and Only({1}\").concat(r,\")<='$(=MaxString(\").concat(r,\"))'\\\"}\")}function D(e){var r=e.modifier,n=void 0===r?{}:r,t=e.dimensions,o=e.dimensionAndFieldList,i=e.funcComp,a=void 0===i?\"Sum\":i,s=e.valueComp,u=void 0===s?\"0\":s;if(!n.showExcludedValues)return\"\";if(t&&1===t.length){var l=b(c(t[0],o),d(0));return\"\".concat(a,\"({1<\").concat(l,\">}\").concat(u,\")\")}if(t&&2===t.length){var p=c(t[0],o),f=c(t[1],o),m=d(0),y=d(1),q=b(p,m),D=b(f,y);return\"\".concat(a,\"({1<\").concat(q,\",\").concat(D,\">}\").concat(u,\")\")}return\"\".concat(a,\"({1}\").concat(u,\")\")}function v(e){return\"\".concat(e,\"(\")}function g(e){var r=e.properties,n=e.layout;return a(r,\"qHyperCubeDef.qDimensions\",a(n,\"qHyperCube.qDimensionInfo\",[])).length}var h={isFullRange:p,getNumDimensions:g,getExpressionWithExcludedComp:function(e){var r=e.expression,n=e.modifier,t=e.dimensions,o=e.dimensionAndFieldList,i=e.treatMissingAsNull,a=l(m(r));if(!n.showExcludedValues)return a;var s=D({modifier:n,dimensions:t,dimensionAndFieldList:o}),u=i?\"\":\", 0\";if(t&&1===t.length){var c=d(0);return\"If(Count(\".concat(c,\") > 0, \").concat(a,\" + \").concat(s).concat(u,\")\")}if(t&&2===t.length){var p=d(0),f=d(1);return\"If(Count(\".concat(p,\") * Count(\").concat(f,\") > 0, \").concat(a,\" + \").concat(s).concat(u,\")\")}return a},getRowNoComp:f,getNumStepComp:function(e,r){if(!p(e)){var n=e.steps;return\"number\"!=typeof n||Number.isNaN(n)?6:n}return f(e,r)},getAboveCompPrefix:y,getAboveCompSuffix:q,getAboveComp:function(e,r,n,t){return y(e,r)+n+q(t)},getFunctionPrefix:v,getFunctionSuffix:function(){return\")\"},getRangeComp:function(e,r){return v(e)+r+\")\"},getAggrComp:function(e,r,n){return\"Aggr(\".concat(e,\", \").concat(r,\", \").concat(n,\")\")},getExcludedComp:D,needDimension:function(e){var r=e.modifier,n=e.properties,t=e.layout;return 0===function(e){return void 0===e.primaryDimension?e.accumulationDimension:e.primaryDimension}(r)&&2===g({properties:n,layout:t})},getDimComp:function(e,r){var n=function(e){return e[arguments.length>1&&void 0!==arguments[1]?arguments[1]:0].qDef.qSortCriterias[0]}(e,r),t=d(r);if(!n.qSortByExpression&&!n.qSortByNumeric&&!n.qSortByAscii)return t;var o=[\"Descending\",\"Ascending\"],i=n.qSortByNumeric?\"(Numeric, \".concat(o[(n.qSortByNumeric+1)/2],\")\"):\"\",a=n.qSortByAscii?\"(Text, \".concat(o[(n.qSortByAscii+1)/2],\")\"):\"\";return n.qSortByNumeric&&n.qSortByAscii?\"(\".concat(t,\", \").concat(i,\", \").concat(a,\")\"):n.qSortByNumeric?\"(\".concat(t,\", \").concat(i,\")\"):n.qSortByAscii?\"(\".concat(t,\", \").concat(a,\")\"):t},simplifyExpression:m,extractInputExpression:function(e){var r=e.outputExpression;if(e.modifier){var n=r.indexOf(s);if(-1!==n){var t=r.indexOf(u);if(-1!==t)return r.substring(n+s.length,t)}}},initModifier:function(e,r){Object.keys(r).forEach((function(n){void 0===e[n]&&(e[n]=r[n])}))},isNumeric:c,isApplicable:function(e){var r=e.properties,n=e.layout,t=e.minDimensions,o=void 0===t?1:t,i=e.maxDimensions,a=void 0===i?2:i;if(!r&&!n)return!0;var s=g({properties:r,layout:n});return s>=o&&s<=a},getExpressionWithMarkers:l,canExtract:function(e){var r=e.indexOf(s),n=e.indexOf(u);return r>-1&&n>-1&&r<n},getDimDefWithWrapper:d,getFieldWithWrapper:function(e){var r=e?e.replace(/]/g,\"]]\"):e;return\"[\".concat(r,\"]\")}};function x(e){return(x=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}var E=o.a.bind(null,!0),A={},C=Array.isArray;function I(e){return null!=e&&!Array.isArray(e)&&\"object\"===x(e)}function M(e){return void 0===e}function S(e,r){return\"function\"==typeof e[r]||\"$$\"===r.substring(0,2)||\"_\"===r.substring(0,1)}function L(e,r){var n,t=r.substring(1).split(\"/\").slice(0,-1);return t.forEach((function(r,o){if(o!==t.length){n=+r;var i=Number.isNaN(n)?{}:[];e[n||r]=M(e[n||r])?i:e[r],e=e[n||r]}})),e}function O(e,r){var n=!0;if(I(e)&&I(r))return Object.keys(e).length===Object.keys(r).length&&(Object.keys(e).forEach((function(t){O(e[t],r[t])||(n=!1)})),n);if(C(e)&&C(r)){if(e.length!==r.length)return!1;for(var t=0,o=e.length;t<o;t+=1)if(!O(e[t],r[t]))return!1;return!0}return e===r}A.generate=function(e,r,n){n=n||\"\";var t=[];return Object.keys(r).forEach((function(o){var i=function(e){return e?E({},{val:e}).val:e}(r[o]),a=e[o],s=\"\".concat(n,\"/\").concat(o);O(i,a)||S(r,o)||(M(a)?t.push({op:\"add\",path:s,value:i}):I(i)&&I(a)?t=t.concat(A.generate(a,i,s)):C(i)&&C(a)?t=t.concat(function(e,r,n){var t=[],o=e.slice(),i=-1;function a(e,r,n){if(e[n]&&M(e[n].qInfo))return null;if(e[n]&&e[n].qInfo.qId===r)return n;for(var t=0,o=e.length;t<o;t+=1)if(e[t]&&e[t].qInfo.qId===r)return t;return-1}if(O(r,o))return t;if(!M(r[0])&&M(r[0].qInfo))return t.push({op:\"replace\",path:n,value:r}),t;for(var s=o.length-1;s>=0;s-=1)-1===(i=a(r,o[s].qInfo&&o[s].qInfo.qId,s))?(t.push({op:\"remove\",path:\"\".concat(n,\"/\").concat(s)}),o.splice(s,1)):t=t.concat(A.generate(o[s],r[i],\"\".concat(n,\"/\").concat(s)));for(var u=0,l=r.length;u<l;u+=1)-1===(i=a(o,r[u].qInfo&&r[u].qInfo.qId))?(t.push({op:\"add\",path:\"\".concat(n,\"/\").concat(u),value:r[u]}),o.splice(u,0,r[u])):i!==u&&(t.push({op:\"move\",path:\"\".concat(n,\"/\").concat(u),from:\"\".concat(n,\"/\").concat(i)}),o.splice(u,0,o.splice(i,1)[0]));return t}(a,i,s)):t.push({op:\"replace\",path:\"\".concat(n,\"/\").concat(o),value:i}))})),Object.keys(e).forEach((function(o){M(r[o])&&!S(e,o)&&t.push({op:\"remove\",path:\"\".concat(n,\"/\").concat(o)})})),t},A.apply=function(e,r){r.forEach((function(r){var n,t=L(e,r.path),o=r.path.split(\"/\").splice(-1)[0],i=o&&Number.isNaN(+o)?t[o]:t[+o]||t,a=r.from?r.from.split(\"/\").splice(-1)[0]:null;if(\"/\"===r.path&&(t=null,i=e),\"add\"===r.op||\"replace\"===r.op)if(C(t))\"-\"===o&&(o=t.length),t.splice(+o,\"add\"===r.op?0:1,r.value);else if(C(i)&&C(r.value)){var s,u=r.value.slice();i.length=0,(s=i).push.apply(s,function(e){return function(e){if(Array.isArray(e)){for(var r=0,n=new Array(e.length);r<e.length;r++)n[r]=e[r];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}()}(u))}else if(I(i)&&I(r.value))n=i,Object.keys(n).forEach((function(e){Object.getOwnPropertyDescriptor(n,e).configurable&&!S(n,e)&&delete n[e]})),E(i,r.value);else{if(!t)throw new Error(\"Patchee is not an object we can patch\");t[o]=r.value}else if(\"move\"===r.op){var l=L(e,r.from);C(t)?t.splice(+o,0,l.splice(+a,1)[0]):(t[o]=l[a],delete l[a])}else\"remove\"===r.op&&(C(t)?t.splice(+o,1):delete t[o])}))},A.clone=function(e){return E({},e)},A.createPatch=function(e,r,n){var t={op:e.toLowerCase(),path:n};return\"move\"===t.op?t.from=r:void 0!==r&&(t.value=r),t},A.updateObject=function(e,r){Object.keys(e).length?A.apply(e,A.generate(e,r)):E(e,r)};var P=A,F=function(e,r,n){if(!e)return Promise.resolve();var t=P.generate(r,n);return o()(!0,r,n),t&&t.length?(t=t.map((function(e){return{qOp:e.op,qValue:JSON.stringify(e.value),qPath:e.path}})),e.applyPatches(t,!0)):Promise.resolve()},N=\"accumulation\";function V(e,r){var n=a(e,r);if(n)for(var t=0;t<n.length;t++)if(n[t].type===N)return n[t]}function w(e,r){var n=function(e,r){var n=a(e,r);if(!n)return-1;for(var t=0;t<n.length;t++)if(n[t].type===N)return t;return-1}(e,r);return n>-1?\"\".concat(r,\".\").concat(n):r}var H={type:\"accumulation\",disabled:!1,accumulationDimension:0,crossAllDimensions:!1,showExcludedValues:!0,fullAccumulation:!1,steps:6,outputExpression:\"\"},T={translationKey:\"properties.modifier.accumulation\",needDimension:h.needDimension,isApplicable:function(e){var r=e.properties,n=e.layout;return h.isApplicable({properties:r,layout:n,minDimensions:1,maxDimensions:2})},generateExpression:function(e){var r=e.expression,n=e.modifier,t=e.properties,o=e.layout,i=e.numDimensions,s=e.dimensionAndFieldList;if(!n)return r;var u=i;void 0===u&&(u=h.getNumDimensions({properties:t,layout:o}));var l=a(t,\"qHyperCubeDef.qDimensions\",[]),c=h.getExpressionWithExcludedComp({expression:r,modifier:n,dimensions:l,dimensionAndFieldList:s}),p=h.getNumStepComp(n,u),f=h.getAboveComp(n,u,c,p),m=h.getRangeComp(\"RangeSum\",f);if(h.needDimension({modifier:n,properties:t,layout:o})){var d=h.getDimComp(l,1),y=h.getDimComp(l,0),q=h.getAggrComp(m,d,y);m=n.showExcludedValues?h.getExcludedComp({modifier:n,dimensions:l,dimensionAndFieldList:s,valueComp:q}):q}return m},extractInputExpression:h.extractInputExpression,initModifier:function(e){h.initModifier(e,H)},enableTotalsFunction:function(){return!1},propertyPanelDef:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={type:\"items\",items:{disclaimer:{component:\"text\",translation:r.disclaimer||\"properties.modifier.accumulation.disclaimer\",show:function(e,r){return!h.isApplicable({properties:r.properties})}},settings:{type:\"items\",items:{primaryDimension:{refFn:function(r){return\"\".concat(w(r,e),\".accumulationDimension\")},type:\"integer\",translation:r.primaryDimension||\"properties.modifier.primaryDimension\",title:{translation:r.primaryDimensionTooltip||\"properties.modifier.accumulation.primaryDimension.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:1,options:function(e,r){return r.layout.qHyperCube.qDimensionInfo.map((function(e,r){return{value:r,label:e.qGroupFallbackTitles[0]}}))},show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},crossAllDimensions:{refFn:function(r){return\"\".concat(w(r,e),\".crossAllDimensions\")},type:\"boolean\",translation:r.crossAllDimensions||\"properties.modifier.crossAllDimensions\",title:{translation:r.crossAllDimensionsTooltip||\"properties.modifier.accumulation.crossAllDimensions.tooltip\"},schemaIgnore:!0,defaultValue:!1,show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},fullRange:{refFn:function(r){return\"\".concat(w(r,e),\".fullAccumulation\")},type:\"boolean\",translation:r.range||\"properties.modifier.range\",component:\"dropdown\",schemaIgnore:!0,defaultValue:!1,options:[{value:!0,translation:r.rangeFull||\"properties.modifier.range.full\"},{value:!1,translation:r.rangeCustom||\"properties.modifier.range.custom\"}]},steps:{refFn:function(r){return\"\".concat(w(r,e),\".steps\")},type:\"integer\",translation:r.rangeSteps||\"properties.modifier.range.steps\",schemaIgnore:!0,defaultValue:6,change:function(r){var n=V(r,e);if(n){var t=n.steps;n.steps=\"number\"!=typeof t||Number.isNaN(t)?6:Math.abs(t)}},show:function(r){var n=V(r,e);return n&&!n.fullAccumulation}},showExcludedValues:{refFn:function(r){return\"\".concat(w(r,e),\".showExcludedValues\")},type:\"boolean\",translation:r.showExcludedValues||\"properties.modifier.showExcludedValues\",schemaIgnore:!0,defaultValue:!0}},show:function(e,r){return h.isApplicable({properties:r.properties})}}},show:function(r,n,t){var o=t.ext.support.modifiers;if(!Array.isArray(o)||-1===o.indexOf(N))return!1;var i=V(r,e);return i&&!i.disabled}};return n}},j=\"movingAverage\";function _(e,r){var n=a(e,r);if(n)for(var t=0;t<n.length;t++)if(n[t].type===j)return n[t]}function R(e,r){var n=function(e,r){var n=a(e,r);if(!n)return-1;for(var t=0;t<n.length;t++)if(n[t].type===j)return t;return-1}(e,r);return n>-1?\"\".concat(r,\".\").concat(n):r}var B={type:\"movingAverage\",disabled:!1,primaryDimension:0,crossAllDimensions:!1,showExcludedValues:!0,fullRange:!1,steps:6,outputExpression:\"\",nullSuppression:!1},k={translationKey:\"properties.modifier.movingAverage\",needDimension:h.needDimension,isApplicable:function(e){var r=e.properties,n=e.layout;return h.isApplicable({properties:r,layout:n,minDimensions:1,maxDimensions:2})},generateExpression:function(e){var r,n=e.expression,t=e.modifier,o=e.properties,i=e.layout,s=e.numDimensions,u=e.dimensionAndFieldList;if(!t)return n;var l=s;void 0===l&&(l=h.getNumDimensions({properties:o,layout:i}));var c=a(o,\"qHyperCubeDef.qDimensions\",[]),p=t.showExcludedValues&&t.nullSuppression,f=h.getExpressionWithExcludedComp({expression:n,modifier:t,dimensions:c,dimensionAndFieldList:u,treatMissingAsNull:p}),m=h.getNumStepComp(t,l),d=h.getAboveComp(t,l,f,m);if(t.nullSuppression)r=h.getRangeComp(\"RangeAvg\",d);else{var y=h.getRangeComp(\"RangeSum\",d),q=function(e,r){var n=h.getRowNoComp(e,r);if(!h.isFullRange(e)){var t=e.steps,o=\"number\"!=typeof t||Number.isNaN(t)?6:t;return\"RangeMin(\".concat(o,\", \").concat(n,\")\")}return n}(t,l);r=\"\".concat(y,\" / \").concat(q)}var b=r;if(h.needDimension({modifier:t,properties:o,layout:i})){var D=h.getDimComp(c,1),v=h.getDimComp(c,0),g=h.getAggrComp(b,D,v);b=t.showExcludedValues?h.getExcludedComp({modifier:t,dimensions:c,dimensionAndFieldList:u,funcComp:\"Only\",valueComp:g}):g}return b},extractInputExpression:h.extractInputExpression,initModifier:function(e){h.initModifier(e,B)},enableTotalsFunction:function(){return!1},propertyPanelDef:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={type:\"items\",items:{disclaimer:{component:\"text\",translation:r.disclaimer||\"properties.modifier.movingAverage.disclaimer\",show:function(e,r){return!h.isApplicable({properties:r.properties})}},settings:{type:\"items\",items:{primaryDimension:{refFn:function(r){return\"\".concat(R(r,e),\".primaryDimension\")},type:\"integer\",translation:r.primaryDimension||\"properties.modifier.primaryDimension\",title:{translation:r.primaryDimensionTooltip||\"properties.modifier.movingAverage.primaryDimension.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:1,options:function(e,r){return r.layout.qHyperCube.qDimensionInfo.map((function(e,r){return{value:r,label:e.qGroupFallbackTitles[0]}}))},show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},crossAllDimensions:{refFn:function(r){return\"\".concat(R(r,e),\".crossAllDimensions\")},type:\"boolean\",translation:r.crossAllDimensions||\"properties.modifier.crossAllDimensions\",title:{translation:r.crossAllDimensionsTooltip||\"properties.modifier.movingAverage.crossAllDimensions.tooltip\"},schemaIgnore:!0,defaultValue:!1,show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},fullRange:{refFn:function(r){return\"\".concat(R(r,e),\".fullRange\")},type:\"boolean\",translation:r.range||\"properties.modifier.range\",component:\"dropdown\",schemaIgnore:!0,defaultValue:!1,options:[{value:!0,translation:r.rangeFull||\"properties.modifier.range.full\"},{value:!1,translation:r.rangeCustom||\"properties.modifier.range.custom\"}]},steps:{refFn:function(r){return\"\".concat(R(r,e),\".steps\")},type:\"integer\",translation:r.rangeSteps||\"properties.modifier.range.steps\",schemaIgnore:!0,defaultValue:6,change:function(r){var n=_(r,e);if(n){var t=n.steps;n.steps=\"number\"!=typeof t||Number.isNaN(t)?6:Math.abs(t)}},show:function(r){var n=_(r,e);return n&&!n.fullRange}},showExcludedValues:{refFn:function(r){return\"\".concat(R(r,e),\".showExcludedValues\")},type:\"boolean\",translation:r.showExcludedValues||\"properties.modifier.showExcludedValues\",schemaIgnore:!0,defaultValue:!0},nullSuppression:{refFn:function(r){return\"\".concat(R(r,e),\".nullSuppression\")},type:\"boolean\",translation:r.showNull||\"properties.dimensions.showNull\",schemaIgnore:!0,defaultValue:!1,inverted:!0}},show:function(e,r){return h.isApplicable({properties:r.properties})}}},show:function(r,n,t){var o=t.ext.support.modifiers;if(!Array.isArray(o)||-1===o.indexOf(j))return!1;var i=_(r,e);return i&&!i.disabled}};return n}},U=\"difference\";function G(e,r){var n=a(e,r);if(n)for(var t=0;t<n.length;t++)if(n[t].type===U)return n[t]}function W(e,r){var n=function(e,r){var n=a(e,r);if(!n)return-1;for(var t=0;t<n.length;t++)if(n[t].type===U)return t;return-1}(e,r);return n>-1?\"\".concat(r,\".\").concat(n):r}var $={type:\"difference\",disabled:!1,primaryDimension:0,crossAllDimensions:!1,showExcludedValues:!0,outputExpression:\"\"},z={translationKey:\"properties.modifier.difference\",needDimension:h.needDimension,isApplicable:function(e){var r=e.properties,n=e.layout;return h.isApplicable({properties:r,layout:n,minDimensions:1,maxDimensions:2})},extractInputExpression:h.extractInputExpression,generateExpression:function(e){var r=e.expression,n=e.modifier,t=e.properties,o=e.layout,i=e.numDimensions,s=e.dimensionAndFieldList;if(!n)return r;var u=i;void 0===u&&(u=h.getNumDimensions({properties:t,layout:o}));var l=a(t,\"qHyperCubeDef.qDimensions\",[]),c=h.getExpressionWithExcludedComp({expression:r,modifier:n,dimensions:l,dimensionAndFieldList:s}),p=h.getAboveComp(n,u,c),f=\"\".concat(c,\" - \").concat(p);if(h.needDimension({modifier:n,properties:t,layout:o})){var m=h.getDimComp(l,1),d=h.getDimComp(l,0),y=h.getAggrComp(f,m,d);f=n.showExcludedValues?h.getExcludedComp({modifier:n,dimensions:l,dimensionAndFieldList:s,funcComp:\"Only\",valueComp:y}):y}return f},initModifier:function(e){Object.keys($).forEach((function(r){void 0===e[r]&&(e[r]=$[r])}))},enableTotalsFunction:function(){return!1},propertyPanelDef:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={type:\"items\",items:{disclaimer:{component:\"text\",translation:r.disclaimer||\"properties.modifier.difference.disclaimer\",show:function(e,r){return!h.isApplicable({properties:r.properties})}},settings:{type:\"items\",items:{primaryDimension:{refFn:function(r){return\"\".concat(W(r,e),\".primaryDimension\")},type:\"integer\",translation:r.primaryDimension||\"properties.modifier.primaryDimension\",title:{translation:r.primaryDimensionTooltip||\"properties.modifier.difference.primaryDimension.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:1,options:function(e,r){return r.layout.qHyperCube.qDimensionInfo.map((function(e,r){return{value:r,label:e.qGroupFallbackTitles[0]}}))},show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},crossAllDimensions:{refFn:function(r){return\"\".concat(W(r,e),\".crossAllDimensions\")},type:\"boolean\",translation:r.crossAllDimensions||\"properties.modifier.crossAllDimensions\",title:{translation:r.crossAllDimensionsTooltip||\"properties.modifier.difference.crossAllDimensions.tooltip\"},schemaIgnore:!0,defaultValue:!1,show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},showExcludedValues:{refFn:function(r){return\"\".concat(W(r,e),\".showExcludedValues\")},type:\"boolean\",translation:r.showExcludedValues||\"properties.modifier.showExcludedValues\",schemaIgnore:!0,defaultValue:!0}},show:function(e,r){return h.isApplicable({properties:r.properties})}}},show:function(r,n,t){var o=t.ext.support.modifiers;if(!Array.isArray(o)||-1===o.indexOf(U))return!1;var i=G(r,e);return i&&!i.disabled}};return n}},Y={CURRENT_SELECTION:0,SELECT_FIELD_VALUE:1,DISREGARD_SELECTION:2},J={ONE_DIMENSION:0,ALL_DIMENSIOANS:1,DISREGARD_ALL_DIMENSIONS:2},K=\"normalization\";function X(e,r){var n=a(e,r);if(n)for(var t=0;t<n.length;t++)if(n[t].type===K)return n[t]}function Q(e,r){var n=function(e,r){var n=a(e,r);if(!n)return-1;for(var t=0;t<n.length;t++)if(n[t].type===K)return t;return-1}(e,r);return n>-1?\"\".concat(r,\".\").concat(n):r}function Z(e,r){for(var n=0;n<e.length;n++)if(e[n].value===r)return n;return-1}function ee(e,r,n,t){var o=r.layout.qHyperCube.qDimensionInfo.length,i=[{value:J.ONE_DIMENSION,translation:n.dimensionalScopeOneDimension||\"properties.modifier.dimensionalScope.respectOneDimension\",tooltipTranslation:n.dimensionalScopeOneDimensionTooltip||\"properties.modifier.dimensionalScope.respectOneDimension.tooltip\"},{value:J.ALL_DIMENSIOANS,translation:n.dimensionalScopeAllDimensions||\"properties.modifier.dimensionalScope.\".concat(2===o?\"respectAllDimensions\":\"respectDimension\"),tooltipTranslation:n.dimensionalScopeAllDimensionsTooltip||\"properties.modifier.dimensionalScope.\".concat(2===o?\"respectAllDimensions\":\"respectDimension\",\".tooltip\")},{value:J.DISREGARD_ALL_DIMENSIONS,translation:n.dimensionalScopeDisregardAllDimensions||\"properties.modifier.dimensionalScope.\".concat(2===o?\"disregardAllDimensions\":\"disregardDimension\"),tooltipTranslation:n.dimensionalScopeDisregardAllDimensionsTooltip||\"properties.modifier.dimensionalScope.\".concat(2===o?\"disregardAllDimensions\":\"disregardDimension\",\".tooltip\")}];return i=function(e,r,n){if(e<2){var t=Z(r,0);r.splice(t,1)}return r}(o,i),function(e,r,n){if(0===e){var t=Z(r,1);r.splice(t,1)}return r}(X(e,t).selectionScope,i)}function re(e,r,n){var t=[{value:Y.CURRENT_SELECTION,translation:r.selectionScopeCurrentSelection||\"properties.modifier.selectionScope.currentSelection\"},{value:Y.SELECT_FIELD_VALUE,translation:r.selectionScopeSpecificValue||\"properties.modifier.selectionScope.selectAField\"},{value:Y.DISREGARD_SELECTION,translation:r.selectionScopeTotal||\"properties.modifier.selectionScope.total\"}];return function(e,r,n){if(1===e){var t=Z(r,0);r.splice(t,1)}return r}(X(e,n).dimensionalScope,t)}var ne={type:\"normalization\",disabled:!1,primaryDimension:0,outputExpression:\"\",dimensionalScope:J.DISREGARD_ALL_DIMENSIONS,selectionScope:Y.DISREGARD_SELECTION};function te(e){return 2===e?\"{1}\":\"\"}function oe(e,r,n){return 1===e?\"{$<\".concat(h.getFieldWithWrapper(r),\"={'\").concat(n,\"'}>}\"):\"\"}function ie(e,r){return 0===e&&r>1||2===e?\"Total\":\"\"}function ae(e,r,n){return 0===e&&r>1?\"<\".concat(h.getDimDefWithWrapper(n),\">\"):\"\"}var se={translationKey:\"properties.modifier.normalization\",needDimension:function(){return!0},isApplicable:function(e){var r=e.properties,n=e.layout;return h.isApplicable({properties:r,layout:n,minDimensions:1,maxDimensions:2})},extractInputExpression:h.extractInputExpression,generateExpression:function(e){var r=e.expression,n=e.modifier,t=e.properties,o=e.layout,i=e.numDimensions,s=e.dimensionAndFieldList;if(!n)return r;var u=i;void 0===u&&(u=h.getNumDimensions({properties:t,layout:o}));var l=a(t,\"qHyperCubeDef.qDimensions\",[]),c=h.getExpressionWithExcludedComp({expression:r,modifier:n,dimensions:l,dimensionAndFieldList:s}),p=n.selectionScope,f=n.dimensionalScope;return function(e,r,n,t,o,i,a){var s=te(r),u=oe(r,n,t),l=\"\"===s&&\"\"===u?\"\":s||u,c=ie(o,i),p=ae(o,i,a),f=function(e){for(var r=[],n=0;n<e;n++)r[n]=h.getDimDefWithWrapper(n);return r.join(\", \")}(i);return\"\".concat(e,\"/ Sum(\").concat(l,\" \").concat(c).concat(p,\" Aggr(\").concat(l,\" \").concat(e,\", \").concat(f,\"))\")}(c,p,n.field,n.value,f,u,n.primaryDimension)},initModifier:function(e){Object.keys(ne).forEach((function(r){void 0===e[r]&&(e[r]=ne[r])}))},updateModifier:function(e,r){1===(r.qDimensions?r.qDimensions.length:0)&&0===e.dimensionalScope&&(e.dimensionalScope=2)},enableTotalsFunction:function(){return!0},propertyPanelDef:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={type:\"items\",items:{disclaimer:{component:\"text\",translation:r.disclaimer||\"properties.modifier.normalization.disclaimer\",show:function(e,r){return!h.isApplicable({properties:r.properties})}},settings:{type:\"items\",items:{selectionScope:{refFn:function(r){return\"\".concat(Q(r,e),\".selectionScope\")},type:\"string\",translation:r.modifierSelectionScope||\"properties.modifier.selectionScope\",title:{translation:r.modifierSelectionScopeTooltip||\"properties.modifier.selectionScope.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:Y.DISREGARD_SELECTION,options:function(n){return re(n,r,e)}},field:{refFn:function(r){return\"\".concat(Q(r,e),\".field\")},type:\"string\",component:\"expression-with-dropdown\",translation:\"Common.Field\",defaultValue:\"\",dropdownOnly:!0,options:function(e,r,n){return n.app.getFieldList().then((function(e){return e.map((function(e){return{label:e.qName,value:e.qName}}))}))},show:function(r){return X(r,e).selectionScope===Y.SELECT_FIELD_VALUE}},value:{refFn:function(r){return\"\".concat(Q(r,e),\".value\")},type:\"string\",ref:\"value\",component:\"string\",translation:\"properties.value\",expression:\"optional\",show:function(r){return X(r,e).selectionScope===Y.SELECT_FIELD_VALUE}},dimensionalScope:{refFn:function(r){return\"\".concat(Q(r,e),\".dimensionalScope\")},type:\"string\",translation:r.modifierDimensionalScope||\"properties.modifier.dimensionalScope\",title:{translation:r.modifierDimensionalScopeTooltip||\"properties.modifier.dimensionalScope.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:J.DISREGARD_ALL_DIMENSIONS,supportTooltip:!0,options:function(n,t){return ee(n,t,r,e)}},primaryDimension:{refFn:function(r){return\"\".concat(Q(r,e),\".primaryDimension\")},type:\"integer\",translation:r.primaryDimension||\"properties.modifier.primaryDimension\",title:{translation:r.primaryDimensionTooltip||\"properties.modifier.normalization.primaryDimension.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:1,options:function(e,r){return r.layout.qHyperCube.qDimensionInfo.map((function(e,r){return{value:r,label:e.qGroupFallbackTitles[0]}}))},show:function(r,n){return(X(r,e).dimensionalScope||0)===J.ONE_DIMENSION&&n.layout.qHyperCube.qDimensionInfo.length>1}}},show:function(e,r){return h.isApplicable({properties:r.properties})}}},show:function(r,n,t){var o=t.ext.support.modifiers;if(!Array.isArray(o)||-1===o.indexOf(K))return!1;var i=X(r,e);return i&&!i.disabled}};return n},getDisregardSelectionComp:te,getFieldSelectionComp:oe,getTotalComp:ie,getSelectedDimComp:ae},ue={getExpression:function(e){return a(e,\"qDef.base.qDef\")||a(e,\"qDef.qDef\")},getExpressionRef:function(e){return a(e,\"qDef.base.qDef\")?\"qDef.base.qDef\":\"qDef.qDef\"},getLibraryIdRef:function(e){return a(e,\"qDef.base.qLibraryId\")?\"qDef.base.qLibraryId\":\"qLibraryId\"},getLibraryId:function(e){return a(e,\"qDef.base.qLibraryId\")||a(e,\"qLibraryId\")},getLabelRef:function(e){return a(e,\"qDef.base\")?\"qDef.base.qLabel\":\"qDef.qLabel\"},getLabelExpressionRef:function(e){return a(e,\"qDef.base\")?\"qDef.base.qLabelExpression\":\"qDef.qLabelExpression\"}},le={initBase:function(e,r){(r||le.isValid(e))&&(i(e,\"qDef.base.qDef\",a(e,\"qDef.qDef\")),i(e,\"qDef.base.qLibraryId\",a(e,\"qLibraryId\")),i(e,\"qDef.base.qLabel\",a(e,\"qDef.qLabel\")),i(e,\"qDef.base.qLabelExpression\",a(e,\"qDef.qLabelExpression\")))},restoreBase:function(e){le.isValid(e)&&(i(e,\"qDef.qDef\",a(e,\"qDef.base.qDef\")),i(e,\"qLibraryId\",a(e,\"qDef.base.qLibraryId\")),i(e,\"qDef.qLabel\",a(e,\"qDef.base.qLabel\")),i(e,\"qDef.qLabelExpression\",a(e,\"qDef.base.qLabelExpression\")),a(e,\"qDef.qAggrFunc\")&&a(e,\"qDef.base.qAggrFunc\")&&i(e,\"qDef.qAggrFunc\",a(e,\"qDef.base.qAggrFunc\")),delete e.qDef.base)},isValid:function(e){var r=a(e,\"qDef.base.qDef\"),n=a(e,\"qDef.base.qLibraryId\");return void 0!==r||void 0!==n}},ce=le;function pe(e){return(pe=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}var fe={accumulation:T,movingAverage:k,difference:z,normalization:se},me=(r.default={modifiers:fe,apply:de,applyModifiers:ye,cleanUpMeasure:qe,destroy:function(e){e&&me[e.id]&&me[e.id].masterItemSubscriber&&(me[e.id].masterItemSubscriber&&me[e.id].masterItemSubscriber.unsubscribe(),delete me[e.id])},hasActiveModifiers:be,getActiveModifier:De,initBase:ce.initBase,isSupportedModifiers:function(e){return Array.isArray(e)&&e.some((function(e){return fe[e]}))},isApplicableSupportedModifiers:function(e){var r=e.modifierTypes,n=e.properties,t=e.layout;return Array.isArray(r)&&r.some((function(e){return fe[e]&&fe[e].isApplicable({properties:n,layout:t})}))},measureBase:ue,limitedSorting:function(e){var r=e.measures,n=e.properties,t=e.layout,o=!1,i=!1;return r.forEach((function(e){var r=he(e);Se({modifiers:r,properties:n,layout:t})&&(o=!0,i=i||Ne({modifiers:r,properties:n,layout:t}))})),o&&!i},ifEnableTotalsFunction:ve},{});function de(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.model,n=e.properties,t=e.isSnapshot,i=void 0!==t&&t,s=e.masterItem;me[r.id]=me[r.id]||{isFirstTime:!0};var u=me[r.id].isFirstTime;if(me[r.id].isFirstTime=!1,n&&\"object\"===pe(n))return ye({model:r,properties:n});var l=r?r.layout:void 0,c=a(l,\"qSelectionInfo.qInSelections\");if(i||c)return Promise.resolve(!1);var p=a(l,\"qHyperCube.qMeasureInfo\"),f=me[r.id].lastReloadTime;if(me[r.id].lastReloadTime=a(r,\"app.layout.qLastReloadTime\"),be({measures:p,layout:l})){var m=function(e){var r=e.measures,n=e.layout,t=e.lastReloadTime;return a(e.model,\"app.layout.qLastReloadTime\")!==t&&function(e){var r=e.measures,n=e.properties,t=e.layout;return!!Array.isArray(r)&&r.some((function(e){return Me({measure:e,properties:n,layout:t})}))}({measures:r,layout:n})}({measures:p,layout:l,model:r,lastReloadTime:f});return m||function(e){var r=e.measures,n=e.layout,t=e.masterItem,o=e.isFirstTime;return!!Array.isArray(r)&&(o||t||r.some((function(e){return function(e){var r=e.measure,n=e.layout;return Se({modifiers:he(r),layout:n})?!r.base:!!r.base}({measure:e,layout:n})})))}({measures:p,layout:l,masterItem:s,isFirstTime:u})?r.getEffectiveProperties().then((function(e){var n=o()(!0,{},e);Ee(n);var t=Ve(n);return Le({model:r}).then((function(o){return Oe({libraryIds:t,model:r}).then((function(t){return m&&function(e){var r=e.properties;ge(r).forEach((function(e){return function(e){var r=e.measure;if(Me({measure:r,properties:e.properties})){var n=0,t=r.qDef.modifiers;Array.isArray(t)&&t.forEach((function(e){if(\"object\"===pe(e)&&!e.disabled){if(n++,\"object\"!==pe(fe[e.type]))throw new Error('Modifier \"'.concat(e.type,'\" is not available'));if(n>1)throw new Error(\"More than 1 modifier on a measure! (not yet supported)\");var t=fe[e.type].extractInputExpression({outputExpression:r.qDef.qDef,modifier:e});void 0!==t&&Ce(r)&&h.simplifyExpression(r.qDef.base.qDef)!==h.simplifyExpression(t)&&(r.qDef.base.qDef=t)}}))}}({measure:e,properties:r})}))}({properties:n}),ye({model:r,oldProperties:e,properties:n,runUpdateIfChange:!0,masterItem:s,libraryItemsProps:t,dimensionAndFieldList:o})}))}))})):Promise.resolve(!1)}return function(e){return!!Array.isArray(e)&&e.some((function(e){return\"object\"===pe(e.base)}))}(p)?r.getEffectiveProperties().then((function(e){return function(e){var r=e.model,n=e.properties,t=Ve(n);return we({model:r,libraryIds:t}).then((function(){var e=o()(!0,{},n);return ge(n).forEach((function(e){return qe(e)})),Fe({oldProperties:e,newProperties:n,model:r})}))}({model:r,properties:e})})):Promise.resolve(!1)}function ye(e){var r=e.model,n=e.oldProperties,t=e.properties,i=e.measures,s=e.runUpdateIfChange,u=void 0!==s&&s,l=e.masterItem,c=e.libraryItemsProps,p=e.dimensionAndFieldList;void 0===n&&(n=u?o()(!0,{},t):t),Ee(t);var f=Ve(t);return we({model:r,libraryIds:f,masterItem:l}).then((function(){return function(e){var r=e.measures,n=e.properties,t=e.model,i=e.libraryItemsProps,s=e.dimensionAndFieldList;if(r||(r=ge(n)),!r.length)return Promise.resolve();if(!be({measures:r,properties:n}))return r.forEach((function(e){return qe(e)})),Promise.resolve();var u=i?void 0:Ve(n);return Le({model:t,dimensionAndFieldList:s}).then((function(e){return Oe({libraryIds:u,model:t,libraryItemsProps:i}).then((function(t){r.forEach((function(r){Se({modifiers:r.qDef.modifiers,properties:n})?(function(e){var r=e.measure,n=e.properties,t=e.libraryItemsProps,i=e.dimensionAndFieldList,s=0;ce.isValid(r)||ce.initBase(r,!0);var u=r.qDef,l=u.modifiers,c=u.base;Array.isArray(l)&&l.forEach((function(e){if(\"object\"===pe(e)&&!e.disabled){if(s++,\"object\"!==pe(fe[e.type]))throw new Error('Modifier \"'.concat(e.type,'\" is not available'));if(s>1)throw new Error(\"More than 1 modifier on a measure! (not yet supported)\");fe[e.type].initModifier(e);var u=r.qLibraryId||c&&c.qLibraryId;u?function(e){var r=e.measure,n=e.modifier,t=e.properties,i=e.dimensionAndFieldList,a=e.libraryItemsProps[e.libraryId],s=a.qMeasure.qDef,u=fe[n.type].generateExpression({expression:s,modifier:n,properties:t,dimensionAndFieldList:i});n.outputExpression=u,r.qDef.qDef=n.outputExpression,(r.qDef.qLabel||a.qMeasure.qLabel)&&(r.qDef.qLabel=a.qMeasure.qLabel),(r.qDef.qLabelExpression||a.qMeasure.qLabelExpression)&&(r.qDef.qLabelExpression=a.qMeasure.qLabelExpression),r.qDef.quarantine&&r.qDef.quarantine.qNumFormat&&a.qMeasure.qNumFormat&&(r.qDef.qNumFormat=a.qMeasure.qNumFormat,r.qDef.isCustomFormatted=a.qMeasure.isCustomFormatted),delete r.qLibraryId,r.qDef.coloring=a.qMeasure.coloring,n.base=o()(!0,{},r.qDef.base)}({measure:r,modifier:e,libraryId:u,properties:n,libraryItemsProps:t,dimensionAndFieldList:i}):function(e){var r=e.measure,n=e.modifier,t=e.properties,i=e.dimensionAndFieldList;\"function\"==typeof fe[n.type].updateModifier&&fe[n.type].updateModifier(n,t.qHyperCubeDef);var a=ue.getExpression(r),s=fe[n.type].generateExpression({expression:a,modifier:n,properties:t,dimensionAndFieldList:i});n.outputExpression=s,r.qDef.qDef=n.outputExpression,r.qDef.base.qLabelExpression?r.qDef.qLabelExpression=r.qDef.base.qLabelExpression:r.qDef.qLabel=r.qDef.base.qLabel||a,n.base=o()(!0,{},r.qDef.base)}({measure:r,modifier:e,properties:n,dimensionAndFieldList:i}),function(e){var r=a(e,\"qDef.qAggrFunc\");\"Expr\"!==r||ve(e)?\"None\"!==r?delete e.qDef.base.qAggrFunc:\"None\"===r&&ve(e)&&\"Expr\"===e.qDef.base.qAggrFunc&&(e.qDef.qAggrFunc=\"Expr\",delete e.qDef.base.qAggrFunc):(e.qDef.qAggrFunc=\"None\",e.qDef.base.qAggrFunc=\"Expr\")}(r)}}))}({measure:r,properties:n,libraryItemsProps:t,dimensionAndFieldList:e}),Ae(r)):qe(r)}))}))}))}({measures:i,properties:t,model:r,libraryItemsProps:c,dimensionAndFieldList:p}).then((function(){return u?Fe({oldProperties:n,newProperties:t,model:r}):Promise.resolve(!1)}))}))}function qe(e){!function(e){var r=he(e);return Array.isArray(r)&&r.some((function(e){return\"object\"===pe(e)&&!e.disabled&&!fe[e.type]}))}(e)?ce.restoreBase(e):delete e.qDef.base,e.qDef.coloring&&delete e.qDef.coloring,Ae(e)}function be(e){var r=e.measures,n=e.properties,t=e.layout;return!!Array.isArray(r)&&r.some((function(e){return Se({modifiers:he(e),properties:n,layout:t})}))}function De(e){var r=he(e);if(Array.isArray(r))for(var n=0;n<r.length;n++){var t=r[n];if(fe[t.type]&&!t.disabled)return t}}function ve(e){var r=De(e);return!r||fe[r.type].enableTotalsFunction(e)}function ge(e){return a(e,\"qHyperCubeDef.qMeasures\",[]).concat(a(e,\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\",[]))}function he(e){return e.modifiers||e.qDef&&e.qDef.modifiers}function xe(e){return a(e,\"outputExpression.qValueExpression.qExpr\")||a(e,\"outputExpression\")}function Ee(e){ge(e).forEach((function(e){return function(e){var r=De(e);r&&(void 0!==r.outputExpression&&xe(r)!==e.qDef.qDef?delete e.qDef.base:!ce.isValid(e)&&r.base&&(e.qDef.base=o()(!0,{},r.base)))}(e)}))}function Ae(e){var r=he(e);Array.isArray(r)&&r.forEach((function(r){\"object\"===pe(r)&&(r.disabled||!fe[r.type]&&xe(r)!==e.qDef.qDef)&&(r.disabled=!0,delete r.base)}))}function Ce(e){return e.base||e.qDef&&e.qDef.base}function Ie(e){var r=Ce(e);return e.qLibraryId||r&&r.qLibraryId}function Me(e){var r=e.measure,n=e.properties,t=e.layout;return!Ie(r)&&Se({modifiers:he(r),properties:n,layout:t})}function Se(e){var r=e.modifiers,n=e.properties,t=e.layout,o={};return Array.isArray(r)&&r.some((function(e){return!(\"object\"!==pe(e)||e.disabled||!fe[e.type])&&(void 0===o[e.type]&&(o[e.type]=fe[e.type].isApplicable({properties:n,layout:t})),o[e.type])}))}function Le(e){var r=e.model,n=e.dimensionAndFieldList;if(n)return Promise.resolve(n);var t=[],o={},i=r.app.getDimensionList().then((function(e){o.dimensionList=e}));t.push(i);var a=r.app.getFieldList().then((function(e){o.fieldList=e}));return t.push(a),Promise.all(t).then((function(){return o}))}function Oe(e){var r=e.libraryIds,n=e.model,t=e.libraryItemsProps;if(t)return Promise.resolve(t);var o=r.measureLibraryIds,i=r.dimensionLibraryIds,a={},s=[];return o.forEach((function(e){var r=n.app.getMeasure(e).then((function(r){return r.getProperties().then((function(r){a[e]=r}))}));s.push(r)})),i.forEach((function(e){var r=n.app.getDimension(e).then((function(r){return r.getProperties().then((function(r){a[e]=r}))}));s.push(r)})),Promise.all(s).then((function(){return a}))}function Pe(e,r){if(\"\"!==r||-1===[\"qFmt\",\"qDec\",\"qThou\"].indexOf(e))return r}function Fe(e){var r=e.oldProperties,n=e.newProperties,t=e.model,o=JSON.stringify(a(r,\"qHyperCubeDef.qMeasures\"),Pe)!==JSON.stringify(a(n,\"qHyperCubeDef.qMeasures\"),Pe)||JSON.stringify(a(r,\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\"),Pe)!==JSON.stringify(a(n,\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\"),Pe);return o?function(e){var r=e.model,n=e.oldProperties,t=e.newProperties,o=r.layout;return o&&!o.qHasSoftPatches&&!o.qExtendsId&&a(o,\"qMeta.privileges\",[]).indexOf(\"update\")>-1?r.setProperties(t):F(r,n,t)}({model:t,oldProperties:r,newProperties:n}).then((function(){return o})):Promise.resolve(o)}function Ne(e){var r=e.modifiers,n=e.properties,t=e.layout;return Array.isArray(r)&&r.some((function(e){return\"object\"===pe(e)&&!e.disabled&&fe[e.type]&&fe[e.type].needDimension({modifier:e,properties:n,layout:t})}))}function Ve(e){var r=ge(e),n=[],t=[],o=!1;return r.forEach((function(r){var t=he(r);if(Se({modifiers:t,properties:e})){var i=Ie(r);i&&n.push(i),o=o||Ne({modifiers:t,properties:e})}})),a(e,\"qHyperCubeDef.qDimensions\",[]).forEach((function(e){var r=e.qLibraryId;r&&t.push(r)})),{measureLibraryIds:n,dimensionLibraryIds:t}}function we(e){var r=e.model,n=e.libraryIds;return!e.masterItem&&n&&(n.measureLibraryIds.length||n.dimensionLibraryIds.length)?(me[r.id].masterItemSubscriber=me[r.id].masterItemSubscriber||function(e){var r=e.model,n=e.callback,t={},o={},i={},s={dimension:[\"qDim.qFieldDefs\"],measure:[\"qMeasure.qDef\",\"qMeasure.qLabel\",\"qMeasure.qLabelExpression\",\"qMeasure.coloring\",\"qMeasure.qNumFormat\",\"qMeasure.isCustomFormatted\"]};function u(e){var r={},n=a(e,\"qInfo.qType\");return n&&s[n]&&s[n].forEach((function(n){r[n]=a(e,n)})),JSON.stringify(r)}function l(e){var r=e.qInfo.qId;if(t[r]){var o=u(e);t[r].properties!==o&&(t[r].properties=o,\"function\"==typeof n&&t[r].enabled&&n(e)),t[r].enabled=!0}}function c(e,n){return r.app[n](e).then((function(r){t[e]={listener:r.layoutSubscribe(l),enabled:!1,properties:u(r.layout)}}))}return{subscribe:function(e){var n=e.measureLibraryIds,a=e.dimensionLibraryIds,s=[];return function(e){var r=e.dimensionLibraryIds;o={},e.measureLibraryIds.forEach((function(e){o[e]=!0})),i={},r.forEach((function(e){i[e]=!0}))}({measureLibraryIds:n,dimensionLibraryIds:a}),Object.keys(t).forEach((function(e){o[e]||i[e]||(t[e].listener.dispose(),delete t[e])})),r.app&&(Object.keys(o).forEach((function(e){o[e]&&!t[e]&&s.push(c(e,\"getMeasure\"))})),Object.keys(i).forEach((function(e){i[e]&&!t[e]&&s.push(c(e,\"getDimension\"))}))),Promise.all(s)},unsubscribe:function(){Object.keys(t).forEach((function(e){t[e].listener.dispose()})),t={}}}}({model:r,callback:function(e){return de({model:r,masterItem:e}).then((function(){return r.app.clearUndoBuffer()}))}}),me[r.id].masterItemSubscriber.subscribe(n)):Promise.resolve()}}])},function(e,r,n){\"use strict\";function t(e){var r=function e(r){var n,t=r;return t>9?(n=65+t-10)>90&&(n+=6):t=\"\".concat(t).charCodeAt(0),[48,111,79,105,73,108].indexOf(n)>-1?e(t+1):String.fromCharCode(n)}(e%62),n=Math.floor(e/62);return n>0?t(n)+r:r}function o(e){return(o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}n.r(r);var i={getValue:function(e,r,n){if(null==e||null==r)return n;for(var t=r.split(\".\"),o=e,i=0;i<t.length;++i){var a=t[i];if(\"\"!==a){if(void 0===o[a]||null===o[a])return n;o=o[a]}}return o},setValue:function(e,r,n){if(null!=e&&null!=r){for(var t=r.split(\".\"),o=t[t.length-1],i=e,a=0;a<t.length-1;++a){var s=t[a];void 0!==i[s]&&null!==i[s]||(i[s]=Number.isNaN(+t[a+1])?{}:[]),i=i[s]}void 0!==n?i[o]=n:delete i[o]}},isEmpty:function(e){return 0===Object.keys(e).length&&e.constructor===Object},isAtomicValue:function(e){return/boolean|number|string/.test(o(e))},generateId:function(){return t(Math.round(99e11*Math.random()+1e11)).replace(/\\W/g,\"\")}};function a(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return s(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function s(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function u(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return l(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function l(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function c(e,r,n){if(e){for(var t=0;t<e.length;t++)if(e[t][r]===n)return t;return-1}return-1}var p={isOrderedSubset:function(e,r){if(!(e&&r&&e.length&&r.length))return!1;var n=e.indexOf(r[0]);if(-1!==n){for(var t=0;t<r.length;t++){var o=e.indexOf(r[t]);if(n>o)return!1;n=o}return!0}return!1},indexAdded:function(e,r){var n;for(n=0;n<e.length;++n)e[n]>=0&&e[n]>=r&&++e[n];e.push(r)},indexRemoved:function(e,r){var n,t=0;for(n=0;n<e.length;++n)e[n]>r?--e[n]:e[n]===r&&(t=n);return e.splice(t,1),t},findItemByPropertyValue:function(e,r,n){if(e){for(var t=0;t<e.length;t++)if(e[t][r]===n)return e[t];return null}return null},findIndexByPropertyValue:c};var f=n(1),m=n.n(f);var d={addDimensions:function(e){var r,n=e.exportFormat,t=e.qHyperCubeDef,o=n.data[0];(r=o.dimensions).push.apply(r,a(t.qDimensions));var s,u=i.getValue(t,\"qLayoutExclude.qHyperCubeDef.qDimensions\");u&&(s=o.excludedDimensions).push.apply(s,a(u))},addMeasures:function(e){var r,n=e.exportFormat,t=e.qHyperCubeDef,o=n.data[0];(r=o.measures).push.apply(r,u(t.qMeasures));var a,s=i.getValue(t,\"qLayoutExclude.qHyperCubeDef.qMeasures\");s&&(a=o.excludedMeasures).push.apply(a,u(s))},setInterColumnSortOrder:function(e){var r=e.exportFormat,n=e.qHyperCubeDef,t=r.data[0];n.qInterColumnSortOrder||(n.qInterColumnSortOrder=[]),t.interColumnSortOrder=n.qInterColumnSortOrder.concat();var o=i.getValue(n,\"qLayoutExclude.qHyperCubeDef.qInterColumnSortOrder\");o&&p.isOrderedSubset(o,t.interColumnSortOrder)&&(t.interColumnSortOrder=o.concat())},copyProperties:function(e){var r=e.exportFormat,n=e.properties;Object.keys(n).forEach((function(e){r.properties[e]=n[e]}))},updateLayoutExclude:function(e){var r=e.exportFormat,n=e.properties;n.qLayoutExclude||(n.qLayoutExclude={}),n.qLayoutExclude.disabled&&(Object.keys(n.qLayoutExclude.disabled).forEach((function(e){r.properties.hasOwnProperty(e)||(r.properties[e]=n.qLayoutExclude.disabled[e])})),delete n.qLayoutExclude.disabled),n.qLayoutExclude.changed&&(!function(e){Object.keys(e.qLayoutExclude.changed).forEach((function(r){e.qLayoutExclude.changed[r].to===i.getValue(e,r)&&i.setValue(e,r,e.qLayoutExclude.changed[r].from)}))}(n),delete n.qLayoutExclude.changed),n.qLayoutExclude.quarantine&&!i.isEmpty(n.qLayoutExclude.quarantine)||delete n.qLayoutExclude},storeMeasuresModifiers:function(e){e.forEach((function(e){m.a.cleanUpMeasure(e),e.qDef.modifiers&&(e.store={modifiers:e.qDef.modifiers},delete e.qDef.modifiers)}))}};function y(e,r,n){var t,o,a=i.getValue(e,r);if(!i.isAtomicValue(a))try{if((o=(o=(t=JSON.stringify(a)).match(/:\\{/g))?o.length:0)>2)return;a=JSON.parse(t)}catch(e){return}i.getValue(e,\"qLayoutExclude.quarantine\")||i.setValue(e,\"qLayoutExclude.quarantine\",{});var s=i.getValue(e,\"qLayoutExclude.quarantine\");s[n]||(s[n]={}),s[n][r]=a}var q=n(0),b=n.n(q);function D(e,r){var n=b()(!0,{},r,e);return i.getValue(n,\"qOtherTotalSpec.qOtherCounted\")||i.setValue(n,\"qOtherTotalSpec.qOtherCounted\",{qv:\"10\"}),i.getValue(n,\"qOtherTotalSpec.qOtherLimit\")||i.setValue(n,\"qOtherTotalSpec.qOtherLimit\",{qv:\"0\"}),n.hasOwnProperty(\"othersLabel\")||(n.othersLabel=\"Others\"),n}function v(e,r){return b()(!0,{},r,e)}function g(e,r,n){return\"function\"==typeof e?e(r):Number.isNaN(+e)?n:e}var h=Math.pow(2,53)-1;function x(e){return function(e){if(Array.isArray(e))return E(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return E(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return E(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function E(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function A(e){return function(e){if(Array.isArray(e))return C(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return C(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return C(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function C(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}var I={importCommonProperties:function(e,r,n){var t=\"masterobject\"===i.getValue(r,\"properties.qInfo.qType\")?\"masterobject\":i.getValue(n,\"qInfo.qType\");i.setValue(e,\"qInfo.qType\",t),e.visualization=n.visualization},copyPropertyIfExist:function(e,r,n){r.hasOwnProperty(e)&&(n[e]=r[e])},copyPropertyOrSetDefault:function(e,r,n,t){r.hasOwnProperty(e)?n[e]=r[e]:n[e]=t},getDefaultDimension:function(){return{qDef:{autoSort:!0,cId:\"\",othersLabel:\"Others\"},qLibraryId:\"\",qNullSuppression:!1,qOtherLabel:\"Others\",qOtherTotalSpec:{qOtherLimitMode:\"OTHER_GE_LIMIT\",qOtherMode:\"OTHER_OFF\",qOtherSortMode:\"OTHER_SORT_DESCENDING\",qSuppressOther:!1}}},getDefaultMeasure:function(){return{qDef:{autoSort:!0,cId:\"\",numFormatFromTemplate:!0},qLibraryId:\"\",qTrendLines:[]}},addDimensions:function(e){var r,n=e.exportFormat,t=e.maxDimensions,o=e.minDimensions,i=e.newHyperCubeDef,a=e.defaultDimension,s=n.data[0];for(r=0;r<s.dimensions.length;++r){var u=D(s.dimensions[r],a);i.qDimensions.length<t?i.qDimensions.push(u):i.qLayoutExclude.qHyperCubeDef.qDimensions.push(u)}for(r=0;r<s.excludedDimensions.length;++r){var l=D(s.excludedDimensions[r],a);i.qDimensions.length<o?i.qDimensions.push(l):i.qLayoutExclude.qHyperCubeDef.qDimensions.push(l)}},addMeasures:function(e){var r,n=e.exportFormat,t=e.maxMeasures,o=e.minMeasures,i=e.newHyperCubeDef,a=e.defaultMeasure,s=n.data[0];for(r=0;r<s.measures.length;++r){var u=v(s.measures[r],a);i.qMeasures.length<t?i.qMeasures.push(u):i.qLayoutExclude.qHyperCubeDef.qMeasures.push(u)}for(r=0;r<s.excludedMeasures.length;++r){var l=v(s.excludedMeasures[r],a);i.qMeasures.length<o?i.qMeasures.push(l):i.qLayoutExclude.qHyperCubeDef.qMeasures.push(l)}},getMaxMinDimensionMeasure:function(e){var r=e.exportFormat,n=e.dataDefinition,t=void 0===n?{}:n,o=r.data[0],i=t.dimensions||{max:0},a=t.measures||{max:0},s=g(a.max,o.dimensions.length,h),u=g(a.min,o.dimensions.length,0);return{maxDimensions:g(i.max,s,h),minDimensions:g(i.min,u,0),maxMeasures:s,minMeasures:u}},setInterColumnSortOrder:function(e){var r=e.exportFormat,n=e.newHyperCubeDef,t=r.data[0],o=n.qDimensions.length+n.qMeasures.length;n.qInterColumnSortOrder=t.interColumnSortOrder.concat();var i=n.qInterColumnSortOrder.length;if(i!==o)for(n.qLayoutExclude&&(n.qLayoutExclude.qHyperCubeDef.qInterColumnSortOrder=t.interColumnSortOrder.concat());i!==o;)i<o?(p.indexAdded(n.qInterColumnSortOrder,i),++i):(--i,p.indexRemoved(n.qInterColumnSortOrder,i))},createNewProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=e.hypercubePath,o={qLayoutExclude:{disabled:{},quarantine:{}}};return Object.keys(r.properties).forEach((function(e){\"qLayoutExclude\"===e?r.properties[e].quarantine&&(o.qLayoutExclude.quarantine=b()(!0,{},r.properties[e].quarantine)):\"qHyperCubeDef\"===e&&t?i.setValue(o,\"\".concat(t,\".qHyperCubeDef\"),r.properties.qHyperCubeDef):n.hasOwnProperty(e)||-1!==[\"qMetaDef\",\"descriptionExpression\",\"labelExpression\"].indexOf(e)||function(e,r){return\"components\"===r&&Array.isArray(e[r])&&e[r].some((function(e){return\"general\"===e.key}))}(r.properties,e)?o[e]=r.properties[e]:o.qLayoutExclude.disabled[e]=r.properties[e]})),null===(o=b()(!0,{},n,o)).components&&(o.components=[]),o},shouldInitLayoutExclude:function(e){var r=e.exportFormat,n=e.maxDimensions,t=e.minDimensions,o=e.maxMeasures,i=e.minMeasures,a=r.data[0];return a.dimensions.length>n&&n>0||a.measures.length>o&&o>0||a.excludedDimensions.length>0&&a.dimensions.length+a.excludedDimensions.length>t||a.excludedMeasures.length>0&&a.measures.length+a.excludedMeasures.length>i||!o&&a.measures.length>0||!n&&a.dimensions.length>0},initLayoutExclude:function(e){var r=e.exportFormat,n=e.maxDimensions,t=e.minDimensions,o=e.maxMeasures,i=e.minMeasures,a=e.newHyperCubeDef,s=r.data[0];a.qLayoutExclude||(a.qLayoutExclude={}),a.qLayoutExclude.qHyperCubeDef||(a.qLayoutExclude.qHyperCubeDef={}),(s.dimensions.length>n&&n>0||s.excludedDimensions&&s.excludedDimensions.length&&s.dimensions.length+s.excludedDimensions.length>t)&&(a.qLayoutExclude.qHyperCubeDef.qDimensions||(a.qLayoutExclude.qHyperCubeDef.qDimensions=[])),(s.measures.length>o&&o>0||s.excludedMeasures&&s.excludedMeasures.length&&s.measures.length+s.excludedMeasures.length>i)&&(a.qLayoutExclude.qHyperCubeDef.qMeasures||(a.qLayoutExclude.qHyperCubeDef.qMeasures=[])),!o&&s.measures.length&&(a.qLayoutExclude.qHyperCubeDef.qMeasures||(a.qLayoutExclude.qHyperCubeDef.qMeasures=[])),!n&&s.dimensions.length&&(a.qLayoutExclude.qHyperCubeDef.qDimensions||(a.qLayoutExclude.qHyperCubeDef.qDimensions=[]))},updateDimensionsOnAdded:function(e){var r=e.newProperties,n=e.dataDefinition,t=e.hypercubePath;if(n.dimensions&&\"function\"==typeof n.dimensions.added){var o=i.getValue(r,t||\"\").qHyperCubeDef,a=x(o.qDimensions);o.qDimensions=[],a.forEach((function(e){o.qDimensions.push(e),n.dimensions.added(e,r)}))}},updateMeasuresOnAdded:function(e){var r=e.newProperties,n=e.dataDefinition,t=e.hypercubePath;if(n.measures&&\"function\"==typeof n.measures.added){var o=i.getValue(r,t||\"\").qHyperCubeDef,a=A(o.qMeasures);o.qMeasures=[],a.forEach((function(e){o.qMeasures.push(e),n.measures.added(e,r)}))}},restoreMeasuresModifiers:function(e){var r=e.measures,n=e.modifierTypes;r&&n&&m.a.isSupportedModifiers(n)&&r.forEach((function(e){e.store&&e.store.modifiers&&(e.qDef.modifiers=e.store.modifiers),delete e.store}))}};function M(e,r){var n=i.getValue(e,\"qLayoutExclude.quarantine\",{})[r];return!!n&&(Object.keys(n).forEach((function(r){i.setValue(e,r,n[r])})),delete e.qLayoutExclude.quarantine[r],!0)}var S={exportProperties:function(e){var r=e.propertyTree,n=e.hypercubePath,t=e.viewDataMode,o=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,r={data:[],properties:{}},n=0;n<e;++n)r.data.push({dimensions:[],measures:[],excludedDimensions:[],excludedMeasures:[],interColumnSortOrder:[]});return r}(),a=r.qProperty,s=i.getValue(a,n||\"\"),u=s.qHyperCubeDef;return u.qInterColumnSortOrder||(u.qInterColumnSortOrder=[]),d.addDimensions({exportFormat:o,qHyperCubeDef:u}),d.addMeasures({exportFormat:o,qHyperCubeDef:u}),d.setInterColumnSortOrder({exportFormat:o,qHyperCubeDef:u}),delete u.qLayoutExclude,d.copyProperties({exportFormat:o,properties:a}),n&&(o.properties.qHyperCubeDef=u,delete s.qHyperCubeDef),d.updateLayoutExclude({exportFormat:o,properties:a}),t||d.storeMeasuresModifiers(o.properties.qHyperCubeDef.qMeasures),Array.isArray(o.properties.filters)&&(y(o.properties,\"filters\",\"storedFilters\"),delete o.properties.filters),o.properties.qHyperCubeDef.qContextSetExpression&&(y(o.properties,\"qHyperCubeDef.qContextSetExpression\",\"storedFilters\"),o.properties.qHyperCubeDef.qContextSetExpression=\"\"),o.properties.qHyperCubeDef.qDynamicScript&&o.properties.qHyperCubeDef.qDynamicScript.length&&(y(o.properties,\"qHyperCubeDef.qDynamicScript\",\"dynamicScript\"),o.properties.qHyperCubeDef.qDynamicScript=[]),o},importProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=void 0===n?{}:n,o=e.dataDefinition,a=void 0===o?{}:o,s=e.defaultPropertyValues,u=void 0===s?{}:s,l=e.hypercubePath,c=e.extension,p=e.supportedFilters,f=void 0===p||p,m=e.isHCModifierSupported,d=void 0===m||m,y={qChildren:[]},q=I.createNewProperties({exportFormat:r,initialProperties:t,hypercubePath:l}),b=i.getValue(t,l||\"\").qHyperCubeDef,D=i.getValue(q,l||\"\").qHyperCubeDef,v=I.getMaxMinDimensionMeasure({exportFormat:r,dataDefinition:a}),g=v.maxDimensions,h=v.minDimensions,x=v.maxMeasures,E=v.minMeasures,A=u.defaultDimension,C=void 0===A?I.getDefaultDimension():A,S=u.defaultMeasure,L=void 0===S?I.getDefaultMeasure():S;D.qDimensions.length=0,D.qMeasures.length=0,I.shouldInitLayoutExclude({exportFormat:r,maxDimensions:g,minDimensions:h,maxMeasures:x,minMeasures:E})&&I.initLayoutExclude({exportFormat:r,maxDimensions:g,minDimensions:h,maxMeasures:x,minMeasures:E,newHyperCubeDef:D}),I.addDimensions({exportFormat:r,maxDimensions:g,minDimensions:h,newHyperCubeDef:D,defaultDimension:C}),I.addMeasures({exportFormat:r,maxMeasures:x,minMeasures:E,newHyperCubeDef:D,defaultMeasure:L}),I.updateDimensionsOnAdded({newProperties:q,dataDefinition:a,hypercubePath:l}),I.updateMeasuresOnAdded({newProperties:q,dataDefinition:a,hypercubePath:l}),I.setInterColumnSortOrder({exportFormat:r,newHyperCubeDef:D}),I.copyPropertyIfExist(\"qMaxStackedCells\",b,D),I.copyPropertyIfExist(\"qNoOfLeftDims\",b,D),I.copyPropertyOrSetDefault(\"qInitialDataFetch\",b,D,[{qTop:0,qLeft:0,qWidth:0,qHeight:0}]),I.copyPropertyOrSetDefault(\"qMode\",b,D,\"S\"),I.copyPropertyOrSetDefault(\"qReductionMode\",b,D,\"N\"),I.copyPropertyOrSetDefault(\"qSortbyYValue\",b,D),I.copyPropertyOrSetDefault(\"qIndentMode\",b,D),I.copyPropertyOrSetDefault(\"qShowTotalsAbove\",b,D),I.importCommonProperties(q,r,t),y.qProperty=q;var O=i.getValue(c||{},\"support.modifiers\");return I.restoreMeasuresModifiers({measures:D.qMeasures,modifierTypes:O}),f&&M(y.qProperty,\"storedFilters\"),\"S\"===D.qMode&&d&&M(y.qProperty,\"dynamicScript\"),y}},L={cellBackgroundColor:!0,cellForegroundColor:!0,colorByAlternative:!0,colorByExpression:!0,tooltip:!0,urlLabel:!0,url:!0};function O(e,r,n,t){r=r||[];var o=c(e,t,n),i=c(r,t,n);if(-1!==o&&-1===i){var a=e.splice(o,1);r.push(a[0])}return r}function P(e,r){return e.length!==r}var F={create:function(e,r){if(!e||!L[e])throw new Error(\"Attribute Expressions Util: ID required\");var n={};return r&&Object.keys(r).forEach((function(e){n[e]=r[e]})),n.id=e,n.qAttribute=!0,n},moveByIdFromGroup:function(e,r,n,t,o){n=n||\"qAttributeExpressions\",o=o||\"id\";for(var i=0;i<e.length;i++){var a=e[i][n],s=r.length;if(O(a,r,t,o),P(r,s))return r}return r},IDMAP:{CELL_BACKGROUND_COLOR:\"cellBackgroundColor\",CELL_FOREGROUND_COLOR:\"cellForegroundColor\",COLOR_BY_ALTERNATIVE:\"colorByAlternative\",COLOR_BY_EXPRESSION:\"colorByExpression\",TOOLTIP:\"tooltip\",CELL_LINK_LABEL:\"urlLabel\",CELL_LINK_URL:\"url\"}};var N={getNumDimensions:function(e){return i.getValue(e,\"qHyperCubeDef.qDimensions.length\",0)},getNumMeasures:function(e){return i.getValue(e,\"qHyperCubeDef.qMeasures.length\",0)},wrapFieldName:function(e){return e.split(\" \").length>1&&\"=\"!==e[0]&&\"[\"!==e[0]?\"[\".concat(e,\"]\"):e},getItemLabel:function(e){return e.label||e.name}},V={colorModeOptions:{primary:function(){return!0},dimension:function(e){return N.getNumDimensions(e)>0&&N.getNumMeasures(e)<=1},multiColor:function(e){return N.getNumMeasures(e)>1},measure:function(e){return N.getNumDimensions(e)>0},expression:function(e){return N.getNumMeasures(e)>=1}}},w={colorModeOptions:{primary:function(){return!0},dimension:function(){return!0},multiColor:function(){return!1},measure:function(){return!0},expression:function(e){return N.getNumMeasures(e)>=1}}},H={scatterplot:w,\"sn-scatter-plot\":w,piechart:{colorModeOptions:{primary:function(){return!0},dimension:function(){return!0},multiColor:function(){return!1},measure:function(){return!0},expression:function(e){return N.getNumMeasures(e)>=1}}},linechart:{colorModeOptions:{primary:function(){return!0},dimension:function(e){return N.getNumDimensions(e)>1},multiColor:function(e){return N.getNumMeasures(e)>1},measure:function(e){return N.getNumDimensions(e)<=1},expression:function(e){return N.getNumMeasures(e)>=1}}},map:{colorModeOptions:{primary:function(){return!0},dimension:function(e){return N.getNumDimensions(e)>=1},multiColor:function(e){return N.getNumMeasures(e)>1},measure:function(e){return N.getNumDimensions(e)>=1},expression:function(e){return N.getNumDimensions(e)>=1}}},distributionplot:{colorModeOptions:{primary:function(){return!0},dimension:function(){return!0},multiColor:function(){return!1},measure:function(){return!0},expression:function(e){return N.getNumDimensions(e)>=1}}}};function T(e,r,n){if(Array.isArray(e[r])){var t=p.findIndexByPropertyValue(e[r],\"id\",n);t>=0&&e[r].splice(t,1)}else e[r]=[]}function j(e,r){var n=F.IDMAP.COLOR_BY_ALTERNATIVE;e.forEach((function(e){T(e,\"qAttributeDimensions\",n),T(e,\"qAttributeExpressions\",n)})),r.forEach((function(e){T(e,\"qAttributeDimensions\",n),T(e,\"qAttributeExpressions\",n)}))}function _(e,r){if(r){var n=\"=\"===r.charAt(0);e.color.altLabel=n?{qStringExpression:{qExpr:r.substr(1)}}:r}}function R(e){var r=e.properties,n=e.isDimension,t=e.dimensions,o=e.excludedDimensions,a=e.measures,s=e.label;j(t,o);var u=t[t.length-1];if(u){var l=n?i.getValue(r,\"color.byDimDef\"):i.getValue(r,\"color.byMeasureDef\"),c=i.getValue(r,\"color.formatting.qNumFormat\"),f=i.getValue(r,\"color.formatting.isCustomFormatted\");if(l){var m=F.create(F.IDMAP.COLOR_BY_ALTERNATIVE);switch(l.type){case\"expression\":!function(e){var r=e.attributeExpression,n=e.label,t=e.item,o=e.isDimension,i=e.qNumFormat,a=e.isCustomFormatted;r.label=n||t.label,o?r.qDef=t.key:(r.qExpression=t.key,i&&(r.qNumFormat=i,r.isCustomFormatted=a)),r.matchMeasure=t.activeMeasureIndex,r.label&&\"=\"===r.label.charAt(0)&&(r.labelExpRef=\"color.altLabel\")}({attributeExpression:m,label:s,item:l,isDimension:n,qNumFormat:c,isCustomFormatted:f});break;case\"libraryItem\":!function(e){var r=e.attributeExpression,n=e.measures,t=e.item,o=e.isDimension,i=e.qNumFormat,a=e.isCustomFormatted;o||(r.matchMeasure=p.findIndexByPropertyValue(n,\"qLibraryId\",t.key),i&&(r.qNumFormat=i,r.isCustomFormatted=a)),void 0!==t.expression?r.qExpression=t.expression:r.qLibraryId=t.key,r.colorMapRef=t.key}({attributeExpression:m,measures:a,item:l,isDimension:n,qNumFormat:c,isCustomFormatted:f})}n?(m.qSortBy={qSortByAscii:1},u.qAttributeDimensions.push(m)):u.qAttributeExpressions.push(m)}}}function B(e,r,n,t){var o,i,a,s={};switch(e){case\"dimension\":n.qLibraryId?(s.type=\"dimension\",s.name=n.qLibraryId,s.id=n.qLibraryId):(s.type=\"field\",r?(s.name=n.label||n.qDef,s.id=n.qDef):(s.name=n.qDef.qFieldDefs[0],s.label=(a=n.qDef).qLabelExpression?a.qLabelExpression:a.qFieldLabels&&a.qFieldLabels[0]?a.qFieldLabels[0]:a.qFieldDefs[0]));break;case\"measure\":(o=function(e,r){return r?e.qLibraryId:m.a.measureBase.getLibraryId(e)}(n,r))?(s.type=\"measure\",s.name=o,s.id=o,(i=function(e,r){return m.a.hasActiveModifiers({measures:[e]})&&r?e.qDef.qDef:void 0}(n,t))&&(s.expression=i)):(s.type=\"expression\",r?(s.name=n.label||n.qExpression,s.id=n.qExpression):(s.name=n.qDef.qDef,s.label=function(e){var r=e.qDef;return r.qLabelExpression?r.qLabelExpression:r.qLabel?r.qLabel:r.qDef}(n)));break;default:throw new Error('columnType should be \"dimension\" or \"measure\"')}return s}var k={useMasterNumberFormat:function(e){e.quarantine={qNumFormat:e.qNumFormat||{},isCustomFormatted:e.isCustomFormatted||!1},e.qNumFormat=null,e.isCustomFormatted=void 0}};function U(e,r,n,t){var o=n?\"expression\":r.type,i=e.color,a=i.mode,s=N.getItemLabel(r);switch(_(e,s||\"\"),o){case\"field\":a=\"byDimension\",i.byDimDef={label:r.label||N.wrapFieldName(r.name),key:N.wrapFieldName(r.name),type:\"expression\",activeDimensionIndex:r.activeDimensionIndex};break;case\"expression\":a=\"byMeasure\",i.byMeasureDef={label:n||s,key:n||r.name,type:\"expression\",activeMeasureIndex:r.activeMeasureIndex};break;case\"dimension\":a=\"byDimension\",i.byDimDef={label:r.name,key:r.id,type:\"libraryItem\",activeDimensionIndex:r.activeDimensionIndex};break;case\"measure\":a=\"byMeasure\",i.byMeasureDef={label:r.name,key:r.id,expression:r.expression,type:\"libraryItem\",activeMeasureIndex:r.activeMeasureIndex},i.formatting&&k.useMasterNumberFormat(i.formatting)}t||(i.auto=!1,i.mode=a)}function G(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=n[function(e,r,n){var t=i.getValue(r,\"visualization\"),o=n.split(\".\"),a=Number(o[1]),s=i.getValue(r,\"layers.\".concat(a,\".type\"));return 2===e.length&&\"map\"===t&&\"point\"===s}(n,e,r)?0:n.length-1],o=F.IDMAP.COLOR_BY_ALTERNATIVE,a=p.findItemByPropertyValue(t.qAttributeDimensions,\"id\",o);return U(e,B(\"dimension\",!!a,a||t)),!!a}function W(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),o=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]),a=i.getValue(e,\"color.byDimDef\");if(a&&_(e,a.label),function(e){return!!(e&&e.activeDimensionIndex>-1)}(a))!function(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"color.byDimDef\");t.activeDimensionIndex=Math.min(t.activeDimensionIndex,n.length-1);var o=B(\"dimension\",!1,n[t.activeDimensionIndex]);o.activeDimensionIndex=t.activeDimensionIndex,U(e,o)}(e,r);else if(function(e){return!e||!e.key}(a)&&G(e,r))return;R({properties:e,isDimension:!0,dimensions:n,excludedDimensions:o,measures:t,label:i.getValue(e,\"color.byDimDef.label\")})}function $(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),o=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]),a=i.getValue(e,\"color.byMeasureDef\");if(a&&_(e,a.label),function(e){return!!(e&&e.activeMeasureIndex>-1)}(a))!function(e,r){var n=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),t=i.getValue(e,\"color.byMeasureDef\");if(t.activeMeasureIndex=Math.min(t.activeMeasureIndex,n.length-1),t.activeMeasureIndex>-1){var o=B(\"measure\",!1,n[t.activeMeasureIndex],!0);o.activeMeasureIndex=t.activeMeasureIndex,U(e,o)}}(e,r);else if(function(e,r){return(!e||!e.key)&&r.length>0}(a,t)&&function(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),o=n[n.length-1],a=F.IDMAP.COLOR_BY_ALTERNATIVE,s=p.findItemByPropertyValue(o.qAttributeExpressions,\"id\",a);return U(e,B(\"measure\",!!s,s||t[0])),!!s}(e,r))return;R({properties:e,isDimension:!1,dimensions:n,excludedDimensions:o,measures:t,label:i.getValue(e,\"color.byMeasureDef.label\")})}var z={changeProperty:function(e,r,n){i.setValue(e,r,n),i.isAtomicValue(n)&&function(e,r,n){var t=e.qLayoutExclude;t&&(t.changed||(t.changed={}),t.changed[r]={from:i.getValue(e,r),to:n})}(e,r,n)},getCanColorBy:function(e,r){var n={primary:!0};if(e){var t=(H[r]||V).colorModeOptions||V.colorModeOptions;n.byDimension=t.dimension(e),n.byMeasure=t.measure(e),n.byMultiple=t.multiColor(e),n.byExpression=t.expression(e)}return n},shouldUpdateColorBy:function(e){var r=e.canColorBy,n=e.autoColor,t=e.colorMode,o=e.dimensions;return!(r[t]&&!n&&(\"byDimension\"!==t&&\"byMeasure\"!==t||!o.length))},updateColorBy:function(e,r){var n=i.getValue(e,\"color.mode\"),t=i.getValue(e,\"color.auto\"),o=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),a=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),s=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]);t?j(o,s):function(e){var r=e.auto,n=e.colorMode,t=e.dimensions;return!r&&\"byDimension\"===n&&t.length>0}({auto:t,colorMode:n,dimensions:o})?W(e,r):function(e){var r=e.auto,n=e.colorMode,t=e.dimensions,o=e.measures,a=e.properties,s=i.getValue(a,\"visualization\");return!(r||\"byMeasure\"!==n||!t.length||\"map\"!==s&&!o.length)}({auto:t,colorMode:n,dimensions:o,measures:a,properties:e})?$(e,r):function(e,r){var n=i.getValue(e,\"color.mode\"),t=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),o=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),a=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]);\"byMultiple\"===n&&o.length<2&&i.setValue(e,\"color.mode\",\"primary\"),j(t,a)}(e,r)},deleteTotalMode:function(e){e.forEach((function(e){e.qOtherTotalSpec&&\"qTotalMode\"in e.qOtherTotalSpec&&delete e.qOtherTotalSpec.qTotalMode}))},shouldAddColorByExpression:function(e){var r=e.shouldUpdateColorBy,n=e.properties,t=i.getValue(n,\"qHyperCubeDef.qMeasures\",[]),o=i.getValue(n,\"color.mode\",\"\");return!r&&\"byExpression\"===o&&t.length>0},addColorByExpression:function(e){var r=i.getValue(e,\"qHyperCubeDef.qMeasures.0.qAttributeExpressions\",[]),n=i.getValue(e,\"color.colorExpression\",\"\");r.splice(0,0,{qExpression:n,id:\"colorByExpression\"}),i.setValue(e,\"qHyperCubeDef.qMeasures.0.qAttributeExpressions\",r)},switchToAutoColor:function(e){i.setValue(e,\"color.mode\",\"primary\"),i.setValue(e,\"color.auto\",!0)},shouldSwitchToColorPersistent:function(e){var r=i.getValue(e,\"qHyperCubeDef.qDimensions\",[]),n=i.getValue(e,\"color.persistent\",!1);return r.length>1&&!n}};var Y={exportProperties:function(e){var r=e.propertyTree,n=e.hypercubePath,t=e.viewDataMode,o=S.exportProperties({propertyTree:r,hypercubePath:n,viewDataMode:t}),i=o.data[0],a=i.dimensions.concat(i.excludedDimensions),s=i.measures.concat(i.excludedMeasures),u=F.IDMAP,l=u.COLOR_BY_ALTERNATIVE,c=u.COLOR_BY_EXPRESSION;return F.moveByIdFromGroup(a,[],\"qAttributeDimensions\",l),F.moveByIdFromGroup(a,[],\"qAttributeExpressions\",l),F.moveByIdFromGroup(s,[],\"qAttributeExpressions\",c),o},importProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=e.dataDefinition,o=e.defaultPropertyValues,a=e.hypercubePath,s=e.extension,u=e.supportedFilters,l=e.isHCModifierSupported,c=S.importProperties({exportFormat:r,initialProperties:n,dataDefinition:t,defaultPropertyValues:o,hypercubePath:a,extension:s,supportedFilters:u,isHCModifierSupported:l}),p=c.qProperty,f=i.getValue(p,\"visualization\"),m=i.getValue(p,\"qHyperCubeDef.qDimensions\",[]),d=i.getValue(p,\"color.mode\",\"\"),y=i.getValue(p,\"color.auto\",\"\"),q=z.getCanColorBy(p,f),b=z.shouldUpdateColorBy({canColorBy:q,autoColor:y,colorMode:d,dimensions:m});return q[d]?z.shouldAddColorByExpression({shouldUpdateColorBy:b,properties:p})&&z.addColorByExpression(p):z.switchToAutoColor(p),b&&z.updateColorBy(p,\"qHyperCubeDef.\"),z.shouldSwitchToColorPersistent(p)&&z.changeProperty(p,\"color.persistent\",!0),z.deleteTotalMode(m),c}};var J=[\"bar\",\"marker\",\"line\"];var K={handleAutoMinMax:function(e){var r=e.initialProperties,n=e.properties;r.measureAxis&&void 0===r.measureAxis.autoMinMax?M(n,\"unsupportedAutoMinMax\")||b()(n.measureAxis,r.measureAxis):M(n,\"supportedAutoMinMax\")||b()(n.measureAxis,r.measureAxis)},handleMeasuresAxis:function(e){var r,n=e.exportFormat,t=e.initialProperties,o=e.properties,i=e.measureType,a=o.qHyperCubeDef,s=o.measureAxis;if(function(e){var r=e.exportFormat,n=e.initialProperties;return!(!r.properties.measureAxes||n.measureAxes||!n.measureAxis||void 0===n.measureAxis.autoMinMax)}({exportFormat:n,initialProperties:t})){var u=function(e){var r=[];return e.qMeasures.length>0&&e.qMeasures.forEach((function(e){if(e.qDef.series){var n=e.qDef.series,t=n.type,o=n.axis;r[o]||(r[o]={axis:o,type:{line:0,marker:0,bar:0,total:0}}),J.includes(t)&&r[o].type[t]++,r[o].type.total++}})),r}(a);u.length?(i&&(r=u.filter((function(e){return e.type[i]>0})).sort((function(e,r){return r.type[i]-e.type[i]}))),r&&r.length||(r=u.sort((function(e,r){return r.type.total-e.type.total}))),r&&r[0]&&b()(s,n.properties.measureAxes[r[0].axis])):b()(s,n.properties.measureAxes[0])}},setInterColumnSortOrder:function(e){if(e.qDimensions.length>1){var r=e.qInterColumnSortOrder.indexOf(0);if(0!==r){var n=e.qInterColumnSortOrder[0];e.qInterColumnSortOrder[0]=0,e.qInterColumnSortOrder[r]=n}}}};var X={exportProperties:function(e){var r=e.propertyTree,n=e.hypercubePath,t=e.viewDataMode,o=e.supportedAutoMinMax,i=void 0===o||o,a=Y.exportProperties({propertyTree:r,hypercubePath:n,viewDataMode:t}),s=a.properties;return i?(y(s,\"measureAxis.min\",\"supportedAutoMinMax\"),y(s,\"measureAxis.max\",\"supportedAutoMinMax\")):(y(s,\"measureAxis.min\",\"unsupportedAutoMinMax\"),y(s,\"measureAxis.max\",\"unsupportedAutoMinMax\")),a},importProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=e.dataDefinition,o=e.defaultPropertyValues,i=e.hypercubePath,a=e.measureType,s=e.extension,u=e.supportedFilters,l=e.isHCModifierSupported,c=Y.importProperties({exportFormat:r,initialProperties:n,dataDefinition:t,defaultPropertyValues:o,hypercubePath:i,extension:s,supportedFilters:u,isHCModifierSupported:l}),p=c.qProperty;return K.handleAutoMinMax({initialProperties:n,properties:p}),K.handleMeasuresAxis({exportFormat:r,initialProperties:n,properties:p,measureType:a}),K.setInterColumnSortOrder(p.qHyperCubeDef),p.qHyperCubeDef.qColumnOrder=[],p.qHyperCubeDef.columnOrder=[],c}};function Q(e,r,n){return\"qLayoutExclude.quarantine.\".concat(e,\".\").concat(r,\".\").concat(n)}function Z(e){var r=e.properties,n=e.arrayPath,t=e.quarantineName,o=e.arrayName,a=e.itemPath;i.getValue(r,n,[]).forEach((function(e){return function(e){var r=e.properties,n=e.quarantineName,t=e.arrayName,o=e.item,a=e.itemPath,s=i.getValue(o,a);if(void 0!==s){var u=i.getValue(o,\"qDef.cId\");u||(u=i.generateId(),i.setValue(o,\"qDef.cId\",u));var l=Q(n,t,u);i.setValue(r,l,s),i.setValue(o,a,void 0)}}({properties:r,quarantineName:t,arrayName:o,item:e,itemPath:a})}))}function ee(e){var r=e.properties,n=e.arrayPath,t=e.quarantineName,o=e.arrayName,a=e.itemPath;i.getValue(r,n,[]).forEach((function(e){return function(e){var r=e.properties,n=e.quarantineName,t=e.arrayName,o=e.item,a=e.itemPath,s=i.getValue(o,\"qDef.cId\");if(s){var u=Q(n,t,s),l=i.getValue(r,u);void 0!==l&&(i.setValue(o,a,l),i.setValue(r,u,void 0))}}({properties:r,quarantineName:t,arrayName:o,item:e,itemPath:a})}))}var re={quarantine:function(e){Z({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",quarantineName:\"conditionalColoring\",arrayName:\"measures\",itemPath:\"qDef.conditionalColoring\"})},unquarantine:function(e){ee({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",itemPath:\"qDef.conditionalColoring\",arrayName:\"measures\",quarantineName:\"conditionalColoring\"})}};var ne={quarantine:function(e){Z({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",quarantineName:\"conditionalShowHide\",arrayName:\"measures\",itemPath:\"qCalcCondition\"}),Z({properties:e,arrayPath:\"qHyperCubeDef.qDimensions\",quarantineName:\"conditionalShowHide\",arrayName:\"dimensions\",itemPath:\"qCalcCondition\"})},unquarantine:function(e){ee({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",quarantineName:\"conditionalShowHide\",arrayName:\"measures\",itemPath:\"qCalcCondition\"}),ee({properties:e,arrayPath:\"qHyperCubeDef.qDimensions\",quarantineName:\"conditionalShowHide\",arrayName:\"dimensions\",itemPath:\"qCalcCondition\"})},quarantineAlternative:function(e){Z({properties:e,arrayPath:\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\",quarantineName:\"conditionalShowHide\",arrayName:\"alternativeMeasures\",itemPath:\"qCalcCondition\"}),Z({properties:e,arrayPath:\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qDimensions\",quarantineName:\"conditionalShowHide\",arrayName:\"alternativeDimensions\",itemPath:\"qCalcCondition\"})},unquarantineAlternative:function(e){ee({properties:e,arrayPath:\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\",quarantineName:\"conditionalShowHide\",arrayName:\"alternativeMeasures\",itemPath:\"qCalcCondition\"}),ee({properties:e,arrayPath:\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qDimensions\",quarantineName:\"conditionalShowHide\",arrayName:\"alternativeDimensions\",itemPath:\"qCalcCondition\"})}};r.default={hypercube:S,colorChart:Y,axisChart:X,quarantineProperty:y,unquarantineProperty:M,quarantineArrayProp:Z,unquarantineArrayProp:ee,conditionalColoring:re,conditionalShow:ne}}])}));","import extend from 'extend';\nimport conversion from 'qlik-object-conversion';\n\nexport function importProperties({ dataDefinition, defaultPropertyValues, exportFormat, initialProperties }) {\n const propTree = conversion.hypercube.importProperties({\n exportFormat,\n initialProperties,\n dataDefinition,\n defaultPropertyValues,\n });\n\n const props = propTree.qProperty;\n if (props.dimensionAxis.show === 'all') {\n props.dimensionAxis.show = 'labels';\n } else if (props.dimensionAxis.show === 'title') {\n props.dimensionAxis.show = 'none';\n }\n if (props.measureAxis.show === 'all') {\n props.measureAxis.show = 'labels';\n } else if (props.measureAxis.show === 'title') {\n props.measureAxis.show = 'none';\n }\n\n if (props.qHyperCubeDef.qMeasures.length > 0) {\n props.qDef.numFormatFromTemplate = props.qHyperCubeDef.qMeasures[0].qDef.numFormatFromTemplate;\n props.qDef.qNumFormat = props.qHyperCubeDef.qMeasures[0].qDef.qNumFormat;\n props.qHyperCubeDef.qMeasures.forEach((measure) => {\n measure.qDef.numFormatFromTemplate = props.qDef.numFormatFromTemplate;\n measure.qDef.qNumFormat = extend(true, {}, props.qDef.qNumFormat);\n });\n }\n\n props.qHyperCubeDef.qSuppressZero = false;\n\n return propTree;\n}\n\nexport function exportProperties({ propertyTree, viewDataMode }) {\n const exportFormat = conversion.hypercube.exportProperties({\n propertyTree,\n viewDataMode,\n });\n\n return exportFormat;\n}\n","import properties from './object-properties';\nimport data from './waterfallchart-data-definition';\nimport { importProperties, exportProperties } from './waterfallchart-import-export';\n\nexport default (env) => {\n const dataDefinition = data(env);\n return {\n properties,\n data: {\n targets: [dataDefinition],\n },\n importProperties({ exportFormat, initialProperties }) {\n return importProperties({ dataDefinition, exportFormat, initialProperties });\n },\n exportProperties,\n };\n};\n","/*\n* qlik-chart-modules v0.56.0\n* Copyright (c) 2023 QlikTech International AB\n* Released under the MIT license.\n*/\n\nfunction e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?e(Object(r),!0).forEach((function(e){a(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):e(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function n(){n=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},i=\"function\"==typeof Symbol?Symbol:{},a=i.iterator||\"@@iterator\",l=i.asyncIterator||\"@@asyncIterator\",u=i.toStringTag||\"@@toStringTag\";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},\"\")}catch(e){c=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var i=t&&t.prototype instanceof p?t:p,a=Object.create(i.prototype),l=new C(r||[]);return o(a,\"_invoke\",{value:w(e,n,l)}),a}function f(e,t,n){try{return{type:\"normal\",arg:e.call(t,n)}}catch(e){return{type:\"throw\",arg:e}}}e.wrap=s;var d={};function p(){}function h(){}function m(){}var v={};c(v,a,(function(){return this}));var y=Object.getPrototypeOf,g=y&&y(y(D([])));g&&g!==t&&r.call(g,a)&&(v=g);var b=m.prototype=p.prototype=Object.create(v);function x(e){[\"next\",\"throw\",\"return\"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function q(e,t){function n(o,i,a,l){var u=f(e[o],e,i);if(\"throw\"!==u.type){var c=u.arg,s=c.value;return s&&\"object\"==typeof s&&r.call(s,\"__await\")?t.resolve(s.__await).then((function(e){n(\"next\",e,a,l)}),(function(e){n(\"throw\",e,a,l)})):t.resolve(s).then((function(e){c.value=e,a(c)}),(function(e){return n(\"throw\",e,a,l)}))}l(u.arg)}var i;o(this,\"_invoke\",{value:function(e,r){function o(){return new t((function(t,o){n(e,r,t,o)}))}return i=i?i.then(o,o):o()}})}function w(e,t,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return I()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var l=M(a,n);if(l){if(l===d)continue;return l}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var u=f(e,t,n);if(\"normal\"===u.type){if(r=n.done?\"completed\":\"suspendedYield\",u.arg===d)continue;return{value:u.arg,done:n.done}}\"throw\"===u.type&&(r=\"completed\",n.method=\"throw\",n.arg=u.arg)}}}function M(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,\"throw\"===n&&e.iterator.return&&(t.method=\"return\",t.arg=void 0,M(e,t),\"throw\"===t.method)||\"return\"!==n&&(t.method=\"throw\",t.arg=new TypeError(\"The iterator does not provide a '\"+n+\"' method\")),d;var o=f(r,e.iterator,t.arg);if(\"throw\"===o.type)return t.method=\"throw\",t.arg=o.arg,t.delegate=null,d;var i=o.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,\"return\"!==t.method&&(t.method=\"next\",t.arg=void 0),t.delegate=null,d):i:(t.method=\"throw\",t.arg=new TypeError(\"iterator result is not an object\"),t.delegate=null,d)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type=\"normal\",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:\"root\"}],e.forEach(k,this),this.reset(!0)}function D(e){if(e){var t=e[a];if(t)return t.call(e);if(\"function\"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:I}}function I(){return{value:void 0,done:!0}}return h.prototype=m,o(b,\"constructor\",{value:m,configurable:!0}),o(m,\"constructor\",{value:h,configurable:!0}),h.displayName=c(m,u,\"GeneratorFunction\"),e.isGeneratorFunction=function(e){var t=\"function\"==typeof e&&e.constructor;return!!t&&(t===h||\"GeneratorFunction\"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,c(e,u,\"GeneratorFunction\")),e.prototype=Object.create(b),e},e.awrap=function(e){return{__await:e}},x(q.prototype),c(q.prototype,l,(function(){return this})),e.AsyncIterator=q,e.async=function(t,n,r,o,i){void 0===i&&(i=Promise);var a=new q(s(t,n,r,o),i);return e.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},x(b),c(b,u,\"Generator\"),c(b,a,(function(){return this})),c(b,\"toString\",(function(){return\"[object Generator]\"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=D,C.prototype={constructor:C,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(S),!e)for(var t in this)\"t\"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if(\"throw\"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(n,r){return a.type=\"throw\",a.arg=e,t.next=n,r&&(t.method=\"next\",t.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return n(\"end\");if(i.tryLoc<=this.prev){var l=r.call(i,\"catchLoc\"),u=r.call(i,\"finallyLoc\");if(l&&u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===e||\"continue\"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method=\"next\",this.next=i.finallyLoc,d):this.complete(a)},complete:function(e,t){if(\"throw\"===e.type)throw e.arg;return\"break\"===e.type||\"continue\"===e.type?this.next=e.arg:\"return\"===e.type?(this.rval=this.arg=e.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===e.type&&t&&(this.next=t),d},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),S(n),d}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;S(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(e,t,n){return this.delegate={iterator:D(e),resultName:t,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),d}},e}function r(e){return r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},r(e)}function o(e,t,n,r,o,i,a){try{var l=e[i](a),u=l.value}catch(e){return void n(e)}l.done?t(u):Promise.resolve(u).then(r,o)}function i(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function l(e){o(a,r,i,l,u,\"next\",e)}function u(e){o(a,r,i,l,u,\"throw\",e)}l(void 0)}))}}function a(e,t,n){return(t=function(e){var t=function(e,t){if(\"object\"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||\"default\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,a,l=[],u=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(e){c=!0,o=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(e,t)||s(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function c(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||s(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function s(e,t){if(e){if(\"string\"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function d(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var p=Object.prototype.hasOwnProperty,h=Object.prototype.toString,m=Object.defineProperty,v=Object.getOwnPropertyDescriptor,y=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===h.call(e)},g=function(e){if(!e||\"[object Object]\"!==h.call(e))return!1;var t,n=p.call(e,\"constructor\"),r=e.constructor&&e.constructor.prototype&&p.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!r)return!1;for(t in e);return void 0===t||p.call(e,t)},b=function(e,t){m&&\"__proto__\"===t.name?m(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},x=function(e,t){if(\"__proto__\"===t){if(!p.call(e,t))return;if(v)return v(e,t).value}return e[t]},q=function e(){var t,n,r,o,i,a,l=arguments[0],u=1,c=arguments.length,s=!1;for(\"boolean\"==typeof l&&(s=l,l=arguments[1]||{},u=2),(null==l||\"object\"!=typeof l&&\"function\"!=typeof l)&&(l={});u<c;++u)if(null!=(t=arguments[u]))for(n in t)r=x(l,n),l!==(o=x(t,n))&&(s&&o&&(g(o)||(i=y(o)))?(i?(i=!1,a=r&&y(r)?r:[]):a=r&&g(r)?r:{},b(l,{name:n,newValue:e(s,a,o)})):void 0!==o&&b(l,{name:n,newValue:o}));return l},w=d(q);function M(e,t){return{range:function(e){var n=e.resources,r=e.data,o=n.theme.palette(\"categorical\",0===t?r.items.length:t);return r.items.map((function(e){return o[e.value%o.length]}))},valueAccessor:e.value}}function k(e,t){return{range:function(e){var n=e.resources,r=e.data,o=n.theme.palette(\"categorical\",0===t?r.items.length:t);return r.items.map((function(e){return o[e.row.value%o.length]}))},valueAccessor:e.value}}function S(e,t,n,r,o){var i,a,l=o.byRow,u=o.byElemNo;if(r&&(t.input.persistent||e.hc.qDimensionInfo.length>1||void 0===n.activeDimensionIndex&&e.hc.qSize.qcy>(i=e.hc,(null===(a=i.qDataPages[0]||i.qStackedDataPages[0])||void 0===a?void 0:a.qArea.qHeight)||0)))return u(r,r.raw().qCardinal);if(r){var c=t.pic.extract({field:r.key(),trackBy:r.value}).length;return l(r,c)}return{}}function C(e,t){var n=e.hc.qDimensionInfo,r=t.input.byDimDef||{activeDimensionIndex:n.length-1};if(r.activeDimensionIndex>=0){var o=n[r.activeDimensionIndex];r=o.coloring&&o.coloring.colorMapRef?{type:\"libraryItem\",key:o.coloring.colorMapRef,activeDimensionIndex:r.activeDimensionIndex}:{activeDimensionIndex:r.activeDimensionIndex}}return r}function D(e,t){var n;return t.activeDimensionIndex>=0?n=e.pic.fields().filter((function(e){return\"dimension\"===e.type()}))[t.activeDimensionIndex]:\"libraryItem\"===t.type?!1===(n=t.key?e.pic.field((function(e){return e.raw().colorMapRef===t.key})):void 0)&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))):\"expression\"===t.type&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))),n}function I(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function O(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function E(){}var A=1/.7,N=\"\\\\s*([+-]?\\\\d+)\\\\s*\",L=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",T=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",P=/^#([0-9a-f]{3,8})$/,j=new RegExp(`^rgb\\\\(${N},${N},${N}\\\\)$`),F=new RegExp(`^rgb\\\\(${T},${T},${T}\\\\)$`),H=new RegExp(`^rgba\\\\(${N},${N},${N},${L}\\\\)$`),R=new RegExp(`^rgba\\\\(${T},${T},${T},${L}\\\\)$`),z=new RegExp(`^hsl\\\\(${L},${T},${T}\\\\)$`),V=new RegExp(`^hsla\\\\(${L},${T},${T},${L}\\\\)$`),_={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function B(){return this.rgb().formatHex()}function Y(){return this.rgb().formatRgb()}function $(e){var t,n;return e=(e+\"\").trim().toLowerCase(),(t=P.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?U(t):3===n?new X(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?K(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?K(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=j.exec(e))?new X(t[1],t[2],t[3],1):(t=F.exec(e))?new X(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=H.exec(e))?K(t[1],t[2],t[3],t[4]):(t=R.exec(e))?K(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=z.exec(e))?ne(t[1],t[2]/100,t[3]/100,1):(t=V.exec(e))?ne(t[1],t[2]/100,t[3]/100,t[4]):_.hasOwnProperty(e)?U(_[e]):\"transparent\"===e?new X(NaN,NaN,NaN,0):null}function U(e){return new X(e>>16&255,e>>8&255,255&e,1)}function K(e,t,n,r){return r<=0&&(e=t=n=NaN),new X(e,t,n,r)}function G(e){return e instanceof E||(e=$(e)),e?new X((e=e.rgb()).r,e.g,e.b,e.opacity):new X}function W(e,t,n,r){return 1===arguments.length?G(e):new X(e,t,n,null==r?1:r)}function X(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function Z(){return`#${te(this.r)}${te(this.g)}${te(this.b)}`}function J(){const e=Q(this.opacity);return`${1===e?\"rgb(\":\"rgba(\"}${ee(this.r)}, ${ee(this.g)}, ${ee(this.b)}${1===e?\")\":`, ${e})`}`}function Q(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ee(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function te(e){return((e=ee(e))<16?\"0\":\"\")+e.toString(16)}function ne(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new oe(e,t,n,r)}function re(e){if(e instanceof oe)return new oe(e.h,e.s,e.l,e.opacity);if(e instanceof E||(e=$(e)),!e)return new oe;if(e instanceof oe)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),a=NaN,l=i-o,u=(i+o)/2;return l?(a=t===i?(n-r)/l+6*(n<r):n===i?(r-t)/l+2:(t-n)/l+4,l/=u<.5?i+o:2-i-o,a*=60):l=u>0&&u<1?0:a,new oe(a,l,u,e.opacity)}function oe(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function ie(e){return(e=(e||0)%360)<0?e+360:e}function ae(e){return Math.max(0,Math.min(1,e||0))}function le(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}I(E,$,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:B,formatHex:B,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return re(this).formatHsl()},formatRgb:Y,toString:Y}),I(X,W,O(E,{brighter(e){return e=null==e?A:Math.pow(A,e),new X(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new X(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new X(ee(this.r),ee(this.g),ee(this.b),Q(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Z,formatHex:Z,formatHex8:function(){return`#${te(this.r)}${te(this.g)}${te(this.b)}${te(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:J,toString:J})),I(oe,(function(e,t,n,r){return 1===arguments.length?re(e):new oe(e,t,n,null==r?1:r)}),O(E,{brighter(e){return e=null==e?A:Math.pow(A,e),new oe(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new oe(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new X(le(e>=240?e-240:e+120,o,r),le(e,o,r),le(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new oe(ie(this.h),ae(this.s),ae(this.l),Q(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Q(this.opacity);return`${1===e?\"hsl(\":\"hsla(\"}${ie(this.h)}, ${100*ae(this.s)}%, ${100*ae(this.l)}%${1===e?\")\":`, ${e})`}`}}));const ue=Math.PI/180,ce=180/Math.PI,se=4/29,fe=6/29,de=3*fe*fe;function pe(e){if(e instanceof he)return new he(e.l,e.a,e.b,e.opacity);if(e instanceof qe)return we(e);e instanceof X||(e=G(e));var t,n,r=ge(e.r),o=ge(e.g),i=ge(e.b),a=me((.2225045*r+.7168786*o+.0606169*i)/1);return r===o&&o===i?t=n=a:(t=me((.4360747*r+.3850649*o+.1430804*i)/.96422),n=me((.0139322*r+.0971045*o+.7141733*i)/.82521)),new he(116*a-16,500*(t-a),200*(a-n),e.opacity)}function he(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}function me(e){return e>.008856451679035631?Math.pow(e,1/3):e/de+se}function ve(e){return e>fe?e*e*e:de*(e-se)}function ye(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function ge(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function be(e){if(e instanceof qe)return new qe(e.h,e.c,e.l,e.opacity);if(e instanceof he||(e=pe(e)),0===e.a&&0===e.b)return new qe(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*ce;return new qe(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function xe(e,t,n,r){return 1===arguments.length?be(e):new qe(e,t,n,null==r?1:r)}function qe(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function we(e){if(isNaN(e.h))return new he(e.l,0,0,e.opacity);var t=e.h*ue;return new he(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}I(he,(function(e,t,n,r){return 1===arguments.length?pe(e):new he(e,t,n,null==r?1:r)}),O(E,{brighter(e){return new he(this.l+18*(null==e?1:e),this.a,this.b,this.opacity)},darker(e){return new he(this.l-18*(null==e?1:e),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return new X(ye(3.1338561*(t=.96422*ve(t))-1.6168667*(e=1*ve(e))-.4906146*(n=.82521*ve(n))),ye(-.9787684*t+1.9161415*e+.033454*n),ye(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}})),I(qe,xe,O(E,{brighter(e){return new qe(this.h,this.c,this.l+18*(null==e?1:e),this.opacity)},darker(e){return new qe(this.h,this.c,this.l-18*(null==e?1:e),this.opacity)},rgb(){return we(this).rgb()}}));var Me=e=>()=>e;function ke(e){return 1==(e=+e)?Se:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):Me(isNaN(t)?n:t)}}function Se(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):Me(isNaN(e)?t:e)}var Ce=function e(t){var n=ke(t);function r(e,t){var r=n((e=W(e)).r,(t=W(t)).r),o=n(e.g,t.g),i=n(e.b,t.b),a=Se(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=o(t),e.b=i(t),e.opacity=a(t),e+\"\"}}return r.gamma=e,r}(1),De=/^class(-pyramid)?/,Ie=function(e,t,n,r){var o=void 0!==n.min?n.min:r.min(),i=void 0!==n.max?n.max:r.max(),a=o,l=i,u=t.limits,s={},f=\"percent\"===t.limitType?u.map((function(e){return o+(i-o)*e})):u,d=t.colors.map((function(t){return e.resolveUIColor(t)}));if(o=Math.min.apply(Math,[o].concat(c(f))),i=Math.max.apply(Math,[i].concat(c(f))),s.min=o,s.max=i,t.breakTypes&&-1===t.breakTypes.indexOf(!0))s.type=\"categorical\",Object.assign(s,function(e){var t=e.min,n=e.max,r=e.limits,o=e.range,i=[],a=[];if(r.length)if(r[r.length-1]<t)a.push(t,n),i.push(o[o.length-1],o[o.length-1],o[o.length-1]);else if(r[0]>n)a.push(t,n),i.push(o[0],o[0],o[0]);else{if(r[0]>t)a.push(t),i.push(o[0]);else{a.push(t);for(var l=0;l<r.length;l++)if(t<r[l]){i.push(o[l]);break}}for(var u=0;u<r.length;u++)t<r[u]&&r[u]<n&&(a.push(r[u]),i.push(o[u]));if(r[r.length-1]<n)a.push(n),i.push(o[r.length]),i.push(o[r.length]);else{a.push(n);for(var c=0;c<r.length;c++)if(r[c]>n){i.push(o[c]),i.push(o[c]);break}}}else i.push(o[0]);return{min:t,max:n,range:i,domain:a}}({min:\"percent\"===t.limitType?o:a,max:\"percent\"===t.limitType?i:l,range:d,limits:\"percent\"===t.limitType?f:u}));else if(t.breakTypes){var p=t.breakTypes;s.type=\"continuous\",s.domain=[o],s.range=[d[0]];for(var h=0;h<f.length;h+=1)if(p[h]){var m=d[h],v=d[h+1],y=Ce(m,v)(.5);s.range.push(y),s.domain.push(f[h]),h<f.length-1&&p[h+1]&&(s.range.push(d[h+1]),s.domain.push((f[h]+f[h+1])/2))}else s.range.push(d[h]),s.range.push(d[h+1]),s.domain.push(f[h]),s.domain.push(f[h]+Math.min(1e-6,(i-o)/1e6));s.range.push(d[d.length-1]),s.domain.push(i)}else s.domain=f,s.range=d;return s};function Oe(e,t,n,r,o){var i,a,l,u=0,c=[],s=(e-t)/(r+1);if(0===s)return 1;for(i=0;i<n.length;i+=1)a=.99*(n[i]-t),l=n[i]>e?Math.floor(e/s):n[i]<t?0:Math.floor(a/s),Number.isNaN(l)||(c[l]?c[l]+=1:c[l]=1);for(i=0;i<c.length;i+=1)c[i]&&(u+=1);return u<=r||u>=o?Math.max(u,r):Oe(e,t,n,r+1,o)}var Ee=function(e,t,n,r){var o,i,a=t.theme,l=t.hc,u=r.f,s={mode:\"field\",fieldType:\"measure\",field:u?u.key():void 0,reverse:n.input.reverseScheme||!1,type:\"continuous\",range:function(e){return e.resources.theme.palette(\"quant\")}},f=[],d=!0;if(u){if(Number.isNaN(+u.min())||Number.isNaN(+u.max()))return{invalid:!0};(d=!(\"S\"===(o=n.pic.raw()).qMode&&(o.qDataPages[0]&&o.qSize.qcy>o.qDataPages[0].qArea.qHeight||!o.qDataPages.length&&o.qSize.qcy>0)||\"K\"===o.qMode&&o.qStackedDataPages[0]&&o.qSize.qcy>o.qStackedDataPages[0].qArea.qHeight||\"T\"===o.qMode&&o.qSize.qcy>o.qTreeDataPages[0].qGroupSize))&&(f=n.pic.extract({field:0,props:{num:{field:u.key()},exclude:{fields:l.qDimensionInfo.map((function(e,t){return{field:\"qDimensionInfo/\".concat(t)}})),value:function(e){return Math.min.apply(Math,c(e))<0}}}}).filter((function(e){return e.value>=0&&!e.exclude.value})).map((function(e){return e.num.value})).filter((function(e){return\"number\"==typeof e})))}if(!1===n.input.autoMinMax){if(s.min=n.input.measureMin,s.max=n.input.measureMax,s.max<s.min)return{invalid:!0}}else if(u&&!d)s.min=u.min(),s.max=u.max();else if(u){if(!f.length)return{invalid:!0};s.min=Math.min.apply(Math,c(f)),s.max=Math.max.apply(Math,c(f))}if(n.input.measureScheme&&(s.palettes={quant:n.input.measureScheme}),a){var p=a.getDataColorScales().filter((function(e){return e.key===n.input.measureScheme}))[0];s.type=p&&De.test(p.type)?\"categorical\":\"continuous\",\"categorical\"===s.type&&(i=p.colors.some((function(e){return Array.isArray(e)}))?Math.max.apply(Math,c(p.colors.map((function(e){return e?e.length:0})))):p.colors.length)}if(\"categorical\"===s.type){for(var h=d?Oe(s.max,s.min,f,1,i):i,m=(s.max-s.min)/h,v=[],y=0;y<h+1;y+=1)v.push(s.min+m*y);s.domain=v,s.range=function(e){for(var t=e.resources.theme.palette(\"quant\",h),n=Math.max(1,Math.floor(t.length/h)),r=[],o=0;o<h;o+=1)r.push(t[o*n]);return[r[0]].concat(r,[r[r.length-1]])}}return s};function Ae(e,t){var n;return t.activeMeasureIndex>=0?n=e.pic.fields().filter((function(e){return\"measure\"===e.type()}))[t.activeMeasureIndex]:\"libraryItem\"===t.type?n=e.pic.field((function(e){return e.raw().colorMapRef===t.key&&void 0!==t.key})):\"expression\"===t.type&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))),n||(n=e.pic.field((function(e){return void 0!==e.raw().matchMeasure})))&&(n=e.pic.fields().filter((function(e){return\"measure\"===e.type()}))[n.raw().matchMeasure]),n}function Ne(e){var n,r=e.cm,o=e.defaults,i=e.index,a=e.input,l=e.pic;if(!a||!a.on)return null;var u=null!==(n=a.mode)&&void 0!==n?n:\"primary\";return\"primary\"===u?function(e,n,r){var o=r.primary;return void 0!==n.paletteColor&&n.paletteColor&&(o=e.resolveUIColor(n.paletteColor)),t(t({},r),{},{mode:\"constant\",type:\"constant\",primary:o})}(r,a,o):\"byExpression\"===u?function(e,n,r){var o=\"qMeasureInfo/\".concat(e,\"/\"),i=n.field((function(e){return e.id().startsWith(o)&&\"colorByMeasureExpression\"===e.raw().id})),a=i;return t(t({},r),{},a?{mode:\"field\",fieldType:\"expression\",field:i?i.key():void 0,type:\"color\"}:{mode:\"constant\",type:\"constant\",primary:r.nil})}(i,l,o):null}function Le(e){e.measureOverrides.every((function(e){return!e}))&&(e.measureOverrides=null)}function Te(e,t){for(var n=(null==t?void 0:t.domain)||[],r=(null==t?void 0:t.range)||[],o=[],i=0;i<e.length;++i){var a=e[i];if(\"constant\"===(null==a?void 0:a.mode)){var l=n.indexOf(i);-1===l?(n.push(i),r.push(a.primary)):r[l]=a.primary,e[i]=null}else if(a){o.push(i);var u=n.indexOf(i);-1!==u&&(n.splice(u,1),r.splice(u,1))}}return{domain:n,range:r,exclude:o}}function Pe(e,t,n,r){if(t.input&&!t.input.auto){if(\"byMeasure\"===t.input.mode)return function(e,t,n){var r=t.theme,o=t.hc,i=(arguments.length>3&&void 0!==arguments[3]?arguments[3]:{}).getCField,a=void 0===i?Ae:i,l=n.input.byMeasureDef||{activeMeasureIndex:0},u=a(n,l),c=Ee(0,{theme:r,hc:o},n,{f:u});if(c.invalid)return c;\"expression\"===l.type&&(l.activeMeasureIndex<0||void 0===l.activeMeasureIndex)&&(c.label=l.label,u&&\"color.altLabel\"===u.raw().labelExpRef&&(c.label=n.input.altLabel)),!c.label&&u&&(c.label=u.title());var s=l.activeMeasureIndex>=0?u:null;if(!s&&u&&void 0!==u.raw().matchMeasure&&u.raw().matchMeasure>-1&&(s=n.pic.fields().filter((function(e){return\"measure\"===e.type()}))[u.raw().matchMeasure]),n.input.useMeasureGradient&&\"libraryItem\"===l.type)if(s){var f=s.raw().coloring;f&&f.gradient&&w(c,Ie(e,f.gradient,c,s))}else c.auxiliary=l;return c}(e,n,t);if(\"byDimension\"===t.input.mode)return function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=r.getCDef,i=void 0===o?C:o,a=r.getCByField,l=void 0===a?D:a,u=r.getPersistence,c=void 0===u?S:u,s=i(t,n),f=l(n,s),d=f?f.raw():{},p=n&&n.pic?n.pic.raw():{};if(d.qError||d.qSize&&0===d.qSize.qcy&&!p.qHasOtherValues)return{invalid:!0};var h={mode:\"field\",fieldType:\"dimension\",type:\"categorical\",field:f?f.key():void 0,isFieldLocked:d.qLocked};return(\"expression\"===s.type||s.activeDimensionIndex<0)&&(h.label=s.label,\"color.altLabel\"===d.labelExpRef&&(h.label=n.input.altLabel)),!h.label&&f&&(h.label=f.title()),n.input.dimensionScheme&&(h.palettes={categorical:n.input.dimensionScheme}),n.input.useDimColVal&&\"libraryItem\"===s.type&&(h.auxiliary=s),w(h,c(t,n,s,f,{byRow:k,byElemNo:M})),h}(e,n,t);if(\"byExpression\"===t.input.mode)return function(e,t,n,r){var o=t.hc,i=t.theme,a=t.translator,l=n.pic.field((function(e){return\"colorByExpression\"===e.raw().id}));if(!l||!l.raw().qFallbackTitle&&!n.input.colorExpression||!(Number.isFinite(l.raw().qMin)&&Number.isFinite(l.raw().qMax)||n.input.expressionIsColor))return{mode:\"constant\",type:\"constant\",primary:r.nil};if(n.input.expressionIsColor)return{mode:\"field\",fieldType:\"expression\",field:l?l.key():void 0,type:\"color\"};var u=Ee(0,{hc:o,theme:i},n,{f:l});return u.invalid||(u.label=n.input.expressionLabel||a.get(\"Object.ChartTooltip.ColorExpression\")),u}(0,n,t,r);if(\"byMultiple\"===t.input.mode||\"primary\"===t.input.mode)return function(e,t,n,r){var o=t.hc,i=t.theme,a=t.translator,l=n.input.useBaseColors;if((\"byMultiple\"===n.input.mode||\"primary\"===n.input.mode&&\"measure\"===n.input.useBaseColors)&&o.qMeasureInfo.length>1&&(l=\"measure\"),\"measure\"===l){var u=[],c=[];\"measure\"===n.input.useBaseColors&&o.qMeasureInfo.forEach((function(t,n){if(t.baseColor||t.coloring&&t.coloring.baseColor){u.push(n);var o=e.resolveUIColor(t.baseColor||t.coloring.baseColor);\"none\"===o?c.push(r.primary):c.push(o)}}));var s=n.input.dimensionScheme?{categorical:n.input.dimensionScheme}:void 0,f=i?i.getDataColorPalettes()[0]:void 0;return\"measure\"===n.input.useBaseColors&&f&&(s={categorical:f.key}),{mode:\"measure\",type:\"categorical\",palettes:s,label:a?a.get(\"Common.Measures\"):void 0,explicit:u.length?{domain:u,range:c}:void 0}}if(\"dimension\"===l){var d=[],p=[];return o.qDimensionInfo.forEach((function(t,n){if(t.baseColor||t.coloring&&t.coloring.baseColor){d.push(n);var o=e.resolveUIColor(t.baseColor||t.coloring.baseColor);\"none\"===o?p.push(r.primary):p.push(o)}})),{mode:\"dimension\",type:\"categorical\",field:d.length?d[0]:void 0,explicit:d.length?{domain:d,range:p}:void 0}}var h=r.primary;if(void 0!==n.input.paletteColor)n.input.paletteColor&&(h=e.resolveUIColor(n.input.paletteColor));else{var m=n.input.singleColor;\"number\"!=typeof m||Number.isNaN(m)||(h=[\"#b0afae\",\"#7b7a78\",\"#545352\",\"#4477aa\",\"#7db8da\",\"#b6d7ea\",\"#46c646\",\"#f93f17\",\"#ffcf02\",\"#276e27\",\"#ffffff\",\"#000000\"][m])}return{mode:\"constant\",type:\"constant\",primary:h}}(e,n,t,r)}return{}}function je(e,t,n,r){var o,i=Pe(e,t,n,r);return null!==(o=t.input)&&void 0!==o&&o.measureOverrides?(i.measureOverrides=t.input.measureOverrides.map((function(n,o){return Ne({cm:e,input:n,defaults:r,index:o,pic:t.pic})})),function(e,t){var n,r,o,i=t.translator;if(Le(e),1===(null===(n=e.measureOverrides)||void 0===n?void 0:n.length))return e.measureOverrides[0];if(\"measure\"===e.mode&&e.measureOverrides&&(e.explicit=Te(e.measureOverrides,e.explicit),Le(e)),null!==(r=e.measureOverrides)&&void 0!==r&&r.every((function(e){return\"constant\"===(null==e?void 0:e.mode)}))){var a={mode:\"measure\",type:\"categorical\",label:null==i?void 0:i.get(\"Common.Measures\")};return a.explicit=Te(e.measureOverrides),a}return null!==(o=e.measureOverrides)&&void 0!==o&&o.every((function(e){return e}))?{invalid:!0,measureOverrides:e.measureOverrides}:e}(i,n)):i}function Fe(e){var n=t({hc:null,colorProps:null,layout:null,theme:null},e),r={},o={auto:function(){return{mode:\"primary\"}},getDimensionColorMap:function(){return Promise.reject()},getMeasure:function(){return Promise.reject()},getAttributeDimension:function(){return Promise.reject()}},i={auto:function(e){return e?(o.auto=e,i):o.auto},getDimensionColorMap:function(e){return e?(o.getDimensionColorMap=e,i):o.getDimensionColorMap},getAttributeDimension:function(e){return e?(o.getAttributeDimension=e,i):o.getAttributeDimension},getMeasure:function(e){return e?(o.getMeasure=e,i):o.getMeasure},set:function(e){var t;if(!e.colorProps)throw new Error('Missing \"colorProps\"');if(w(n,e),(r={pic:n.picasso.data(\"q\")({data:n.hc,config:{localeInfo:n.localeInfo}}),input:n.colorProps}).input.auto){var i=o.auto(e.layout);r.input=w(!0,{},r.input,i,{auto:!1});var a=n.theme?n.theme.getDataColorPalettes():[];a[0]&&(r.input.dimensionScheme=a[0].key);var l=0;r.input.byDimDef&&+r.input.byDimDef.activeDimensionIndex>=0&&(l=+r.input.byDimDef.activeDimensionIndex),n.hc&&n.hc.qDimensionInfo[l]&&n.hc.qDimensionInfo[l].coloring&&n.hc.qDimensionInfo[l].coloring.colorMapRef&&r.input.byDimDef&&(r.input.byDimDef.type=\"libraryItem\",r.input.byDimDef.key=n.hc.qDimensionInfo[l].coloring.colorMapRef)}null!==(t=r.input.measureOverrides)&&void 0!==t&&t.every((function(e){return!e||!e.on}))&&(r.input=w(!1,{},r.input,{measureOverrides:null}))},palettes:function(){if(!r.palettes){var e=n.theme,t=[];(e&&e.getDataColorPickerPalettes()||[]).forEach((function(e){t.push({key:\"ui\",colors:e.colors})})),r.palettes=t}return r.palettes},getAuxiliaryData:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"/qHyperCubeDef\";if(!e.auxiliary&&!/qAttrDimInfo/.test(e.field))return Promise.resolve();var r=e.auxiliary||{},i=r.key;if(\"measure\"===e.fieldType)return o.getMeasure(i,n).catch((function(){}));if(\"dimension\"===e.fieldType){var a=\"\".concat(t,\"/\").concat(e.field).replace(\"qDimensionInfo\",\"qDimensions\").replace(\"qAttrDimInfo\",\"qAttributeDimensions\");return Promise.all([/qAttrDimInfo/.test(e.field)?o.getAttributeDimension(a,n).catch((function(){})):Promise.resolve(),i?o.getDimensionColorMap(i,n).catch((function(){})):Promise.resolve()])}return Promise.resolve()},getAuxiliarySettings:function(e,o){var i=this;return e.auxiliary||/qAttrDimInfo/.test(e.field)?(this.palettes(),this.getAuxiliaryData(e,o).then((function(o){if(!o)return{};if(\"measure\"===e.fieldType){if(o.coloring&&o.coloring.gradient){var a=r.pic.field(e.field);return Ie(i,o.coloring.gradient,e,a)}return{}}if(\"dimension\"===e.fieldType){var l={nil:e.nil,others:e.others},u=o[0],c=o[1]?o[1].colorMap:null;if(u){var s=n.picasso.data(\"q\")({data:{qDimensionInfo:[r.pic.field(e.field).raw(),r.pic.field(e.field).raw()],qMeasureInfo:[],qDataPages:u,qInterColumnSortOrder:[0,1],qMode:\"S\"}});l.legendDataset=s}return c?function(e,n,r,o){var i=o.external,a=o.field,l=t({},e);w(l,M(a,a.raw().qCardinal));var u=i.theme?i.theme.getDataColorPalettes()[0]:null;return n.nul&&(l.nil=r.resolveUIColor(n.nul)),n.oth&&(l.others=r.resolveUIColor(n.oth)),n.usePal?(l.palettes={categorical:n.pal},u&&!n.pal&&(l.palettes.categorical=u.key,w(l,M(a)))):!1===n.autoFill&&n.single?l.range=[r.resolveUIColor(n.single)]:n.autoFill&&(u&&(l.palettes={categorical:u.key}),w(l,M(a))),n.colors&&n.colors.length&&(l.explicit=function(e,t,n){for(var r={},o=0;o<e.length;o+=1)r[e[o].value]=e[o].baseColor;var i=[];return{domain:function(e){var o=e.data,a=[];i=[];for(var l=0;l<o.items.length;l++){var u=o.items[l],c=(u.text||u).label;r[c]&&-1===a.indexOf(u.value)&&(a.push(u.value),i.push(t.resolveUIColor(r[c])))}return a.push(-3,-2),i.push(n.others),i.push(n.nil),a},range:function(){return i}}}(n.colors,r,l)),l}(l,c,i,{external:n,field:r.pic.field(e.field)}):l}return{}}))):Promise.resolve()},resolveUIColor:function(e){if(e.index<0||void 0===e.index)return e.color;if(void 0===r.uiPalette&&(r.uiPalette=this.palettes().filter((function(e){return\"ui\"===e.key}))[0]||!1),!r.uiPalette)return e.color;var t=\"none\"===r.uiPalette.colors[0]?e.index:e.index-1;return void 0===r.uiPalette.colors[t]?e.color:r.uiPalette.colors[t]},settings:function(){if(this.palettes(),!r.settings){var e={primary:\"steelblue\",others:\"#aaa\",nil:\"#ddd\"},o=n.theme;o&&(e=t(t({},e),o.getDataColorSpecials())),r.settings=w(e,je(this,r,n,e))}return r.settings}};return i}var He=function(e,t){var n=e.fieldType,r={};if(t)if(\"measure\"===n){var o=t.coloring;o&&(r.measureGradient=o.gradient)}else if(\"dimension\"===n){var i=t[0],a=t[1];i&&(r.legendDataPage=i),a&&(r.dimValsData=a.colorMap)}return r},Re=function(e){throw e.isHandled=!0,e},ze=function(e,t){var n=t.layout,r=t.app;return n&&n.snapshotData?n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.dimValsData?Promise.resolve({colorMap:n.snapshotData.content.chartData.dimValsData}):Promise.reject():r&&r.getObject?r.getObject(\"ColorMapModel_\".concat(e)).then((function(e){return e.getLayout()})):Promise.reject()},Ve=function(e,t){var n=t.layout,r=t.app;return n&&n.snapshotData?n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.measureGradient?Promise.resolve({coloring:{gradient:n.snapshotData.content.chartData.measureGradient}}):Promise.reject():r&&r.getMeasure?r.getMeasure(e).then((function(e){return e.getMeasure()})):Promise.reject()},_e=function(e,t){var n=t.layout,r=t.model,o=t.app;if(n&&n.snapshotData)return n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.legendDataPage?Promise.resolve(n.snapshotData.content.chartData.legendDataPage):Promise.reject();if(r&&r.session&&o){return r.getHyperCubeData(e,[{qHeight:100,qLeft:0,qTop:0,qWidth:2}]).catch(Re)}return Promise.reject()};function Be(e){var t=e.hc,n=e.source,r=e.coloring,o={data:{extract:[{source:\"dummy\",field:0,filter:function(){return o.expando=t.qDataPages[0]?t.qDataPages[0].qArea.qTop:0,!1}},{source:n,field:r.field,trackBy:r.valueAccessor,reduce:\"first\",props:{row:{reduce:function(){return o.expando++}},text:{value:function(e){return e.qText},reduce:\"first\"}}}]},expando:0};return o}function Ye(e){return function(t){return\"object\"===r(t.datum[e])?t.datum[e].value:void 0}}function $e(e){return\"object\"===r(e.datum.isNull)?e.datum.isNull.value:-2===e.datum.value}function Ue(e){return-3===e.datum.value}var Ke={TITLE:{COLOR:void 0,FONT_SIZE:\"16px\",FONT_FAMILY:\"'Source Sans Pro', 'Arial', 'sans-serif'\"},LABEL:{COLOR:void 0,FONT_SIZE:void 0,FONT_FAMILY:\"'Source Sans Pro', 'Arial', 'sans-serif'\"}};function Ge(e){var t=e.theme,n=e.key,r=e.styleOverrides,o={title:{color:Ke.TITLE.COLOR,fontSize:Ke.TITLE.FONT_SIZE,fontFamily:Ke.TITLE.FONT_FAMILY},label:{color:Ke.LABEL.COLOR,fontSize:Ke.LABEL.FONT_SIZE,fontFamily:Ke.LABEL.FONT_FAMILY}};if(!t&&!r)return o;var i=r||{},a=i.title,l=i.label,u=function(e){var t=e.theme,n=e.key;return function(e,r,o,i){return void 0!==e?e:t?t.getStyle(n,r,o):i}}({theme:t,key:n});return o.title.color=u(null==a?void 0:a.color,\"legend.title\",\"color\",Ke.TITLE.COLOR),o.title.fontSize=u(null==a?void 0:a.fontSize,\"legend.title\",\"fontSize\",Ke.TITLE.FONT_SIZE),o.title.fontFamily=u(null==a?void 0:a.fontFamily,\"legend.title\",\"fontFamily\",Ke.TITLE.FONT_FAMILY),o.label.color=u(null==l?void 0:l.color,\"legend.label\",\"color\",Ke.LABEL.COLOR),o.label.fontSize=u(null==l?void 0:l.fontSize,\"legend.label\",\"fontSize\",Ke.LABEL.FONT_SIZE),o.label.fontFamily=u(null==l?void 0:l.fontFamily,\"legend.label\",\"fontFamily\",Ke.LABEL.FONT_FAMILY),o}var We=function(e,t,n){var r=e&&e.dock||void 0;if(\"auto\"!==r)return r||\"right\";if(t){var o=t.element.getBoundingClientRect();if(o.height>o.width)return\"bottom\"}return n?\"left\":\"right\"},Xe=function(e,t,n){return!(n.invalid||\"color\"===n.type||\"measure\"===n.mode&&t.qMeasureInfo.length<=1||\"dimension\"===n.mode)&&(\"function\"==typeof e.show?e.show():!1!==e.show)};function Ze(e,t){var n=e.styleReference,r=e.styleOverrides,o=e.chart,i=e.rtl,a=t.legendProps,l=t.coloring,u=t.theme,c=t.hc,s=Ge({theme:u,key:n,styleOverrides:r});return{layout:{minimumLayoutMode:\"MEDIUM\",dock:We(a,o,i)},show:\"function\"==typeof a.show?function(){return Xe(a,c,l)}:Xe(a,c,l),renderer:\"svg\",mounted:function(e){e.childNodes[0].style.pointerEvents=\"none\",e.style.overflow=\"hidden\"},settings:{title:{show:!1!==a.showTitle,wordBreak:\"break-word\",maxLines:2,lineHeight:1.2,text:l.label||\"\",fill:s.title.color,fontSize:s.title.fontSize,fontFamily:s.title.fontFamily}}}}function Je(e,n,r){return\"categorical\"===n.coloring.type?function(e,n,r){var o=Ze(e,n);if(!o.show)return!1;var i,a=e.key,l=e.styleReference,u=e.styleOverrides,c=e.viewState,s=e.rtl,f=e.settings,d=e.style,p=n.scaleKey,h=n.theme,m=n.scales,v=Ge({theme:h,key:l,styleOverrides:u}),y=o.layout.dock,g=\"left\"===y||\"right\"===y?{maxLines:2,wordBreak:\"break-word\"}:{},b={up:\"M13.6,11 L2.4,11 C2.28954305,11 2.2,10.9104569 2.2,10.8 C2.2,10.756726 2.21403557,10.7146192 2.24,10.68 L7.84,3.21333333 C7.90627417,3.12496777 8.03163444,3.10705916 8.12,3.17333333 C8.13516113,3.18470418 8.14862915,3.1981722 8.16,3.21333333 L13.76,10.68 C13.8262742,10.7683656 13.8083656,10.8937258 13.72,10.96 C13.6853808,10.9859644 13.643274,11 13.6,11 Z\",down:\"M2.4,4 L13.6,4 C13.7104569,4 13.8,4.08954305 13.8,4.2 C13.8,4.24327404 13.7859644,4.28538077 13.76,4.32 L8.16,11.7866667 C8.09372583,11.8750322 7.96836556,11.8929408 7.88,11.8266667 C7.86483887,11.8152958 7.85137085,11.8018278 7.84,11.7866667 L2.24,4.32 C2.17372583,4.23163444 2.19163444,4.10627417 2.28,4.04 C2.31461923,4.01403557 2.35672596,4 2.4,4 Z\",left:\"M11,2.4 L11,13.6 C11,13.7104569 10.9104569,13.8 10.8,13.8 C10.756726,13.8 10.7146192,13.7859644 10.68,13.76 L3.21333333,8.16 C3.12496777,8.09372583 3.10705916,7.96836556 3.17333333,7.88 C3.18470418,7.86483887 3.1981722,7.85137085 3.21333333,7.84 L10.68,2.24 C10.7683656,2.17372583 10.8937258,2.19163444 10.96,2.28 C10.9859644,2.31461923 11,2.35672596 11,2.4 Z\",right:\"M4,13.6 L4,2.4 C4,2.28954305 4.08954305,2.2 4.2,2.2 C4.24327404,2.2 4.28538077,2.21403557 4.32,2.24 L11.7866667,7.84 C11.8750322,7.90627417 11.8929408,8.03163444 11.8266667,8.12 C11.8152958,8.13516113 11.8018278,8.14862915 11.7866667,8.16 L4.32,13.76 C4.23163444,13.8262742 4.10627417,13.8083656 4.04,13.72 C4.01403557,13.6853808 4,13.643274 4,13.6 Z\"};\"dimension\"===n.coloring.fieldType&&(i=function(e){return e.datum.value>=0||-3===e.datum.value});var x=\"\".concat(p,\"Legend\");return w(!0,o,{type:\"legend-cat\",key:\"\".concat(a,\"-cat\"),scale:x in m?x:p,settings:{layout:{scrollOffset:function(){return c?c.get(\"legendScrollOffset\"):void 0},size:-1!==[\"top\",\"bottom\"].indexOf(o.layout.dock)?2:1,direction:s?\"rtl\":\"ltr\",horizontal:20},item:{show:i,label:t({fill:v.label.color,fontSize:v.label.fontSize,fontFamily:v.label.fontFamily},g)},navigation:{disabled:r,button:{content:function(e,t){var n=t.direction;return e(\"i\",{style:{\"pointer-events\":\"none\",fontSize:\"12px\",display:\"inline-block\",fontStyle:\"normal\",lineHeight:\"0\",textAlign:\"center\",textTransform:\"none\",verticalAlign:\"-0.125em\",textRendering:\"optimizelegibility\",margin:\"0px\"}},[e(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"1em\",height:\"1em\",viewBox:\"0 0 16 16\",fill:\"currentColor\"},[e(\"path\",{d:b[n]})])])}}}},brush:{consume:[{context:\"selection\",data:[\"\",a],style:{inactive:{opacity:.3}}}]}},{settings:f,style:d})}(e,n,r):\"continuous\"===n.coloring.type&&function(e,t){var n,r=e.key,o=e.styleReference,i=e.styleOverrides,a=e.rtl,l=e.settings,u=e.style,c=t.scaleKey,s=t.theme,f=\"\".concat(c,\"Range\"),d=Ze(e,t);if(!d.show)return!1;var p=Ge({theme:s,key:o,styleOverrides:i}),h=d.layout.dock,m=\"right\"===h||\"left\"===h,v=null===(n=t.scales)||void 0===n?void 0:n[f];return m&&v&&(v.invert=!0),w(!0,d,{type:\"legend-seq\",key:\"\".concat(r,\"-seq\"),settings:{fill:c,major:f,length:1,tick:{fill:p.label.color,fontSize:p.label.fontSize,fontFamily:p.label.fontFamily},title:{anchor:!a||\"top\"!==d.layout.dock&&\"bottom\"!==d.layout.dock?void 0:\"right\",padding:parseFloat(d.settings.title.fontSize)||16}}},{settings:l,style:u})}(e,n)}function Qe(e,t,n){var r=[],o=[],i=Je(e,t,n&&n.navigationDisabled);return r.push(i),i&&\"legend-cat\"===i.type&&(o.push(function(e){var t=e.key,n=e.requireFailure,r=e.recognizeWith,o=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).actions;return{key:\"event:tap-\".concat(t),type:\"Tap\",requireFailure:n,recognizeWith:r,options:{event:\"legendtap\",interval:10,pointers:1,enable:function(e,n){var r;if(!n)return!0;if(null!=o&&null!==(r=o.interact)&&void 0!==r&&r.enabled&&!o.interact.enabled())return!1;if(!this.chart.componentsFromPoint({x:n.center.x,y:n.center.y}).some((function(e){return e.key===\"\".concat(t,\"-cat\")})))return!1;var i=n.srcEvent.target;return!!(i&&i.hasAttribute(\"data-action\")&&i.hasAttribute(\"data-component-key\"))||!(!i||!i.childNodes[0]||\"BUTTON\"!==i.childNodes[0].nodeName)}},events:{legendtap:function(e){e.preventDefault();var t=e.srcEvent.target;t&&t.hasAttribute(\"data-action\")&&t.hasAttribute(\"data-component-key\")&&this.chart.component(t.getAttribute(\"data-component-key\")).emit(t.getAttribute(\"data-action\"))}}}}(e,n)),o.push(function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.eventName,r=t.key,o=t.requireFailure,i=t.recognizeWith,l=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).actions;return{key:\"event:pan-\".concat(r),type:\"Pan\",requireFailure:o,recognizeWith:i,options:{event:n,pointers:1,threshold:10,enable:function(e,t){var o;return this.started===n||!t||!(null!=l&&null!==(o=l.interact)&&void 0!==o&&o.enabled&&!l.interact.enabled())&&this.chart.componentsFromPoint({x:t.center.x,y:t.center.y}).some((function(e){return e.key===\"\".concat(r,\"-cat\")}))}},events:(e={},a(e,\"\".concat(n,\"start\"),(function(e){e.preventDefault(),this.started!==n&&(this.started=n,this.chart.component(\"\".concat(r,\"-cat\")).emit(\"panstart\",e))})),a(e,\"\".concat(n,\"move\"),(function(e){e.preventDefault(),this.chart.component(\"\".concat(r,\"-cat\")).emit(\"panmove\",e)})),a(e,\"\".concat(n,\"end\"),(function(e){e.preventDefault(),this.chart.component(\"\".concat(r,\"-cat\")).emit(\"panend\",e),this.started=!1})),e)}}(e,n))),{interactions:o,components:r}}var et=function(e){return\"rgba(\".concat([(16711680&e)>>16,(65280&e)>>8,255&e,((4278190080&e)>>>24)/255].join(\",\"),\")\")};function tt(e){var n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.auto,n=Fe(e.resources).auto(t||function(){return{mode:\"byDimension\",persistent:!1,useDimColVal:!0,byDimDef:{activeDimensionIndex:0,type:\"expression\",label:\"\"}}}).getDimensionColorMap((function(e,t){var n=t.layout,r=t.app;return ze(e,{layout:n,app:r})})).getMeasure((function(e,t){var n=t.layout,r=t.app;return Ve(e,{layout:n,app:r})})).getAttributeDimension((function(e,t){var n=t.layout,r=t.model,o=t.app;return _e(e,{layout:n,model:r,app:o})}));return n.getSnapshotData=He,n}({resources:e}),r={},o={},i=function(e){return o.settings||(e||console.warn(\"settings() called before auxiliarySettings()\"),o.settings=n.settings()),o.settings},l={config:function(i){if(r=t({},i),o={},!r.key)throw new Error(\"Missing key\");n.set(t(t({},e),r))},auto:function(e){return e?(n.auto(e),l):n.auto()},getAuxiliarySettings:function(e){return o.auxiliarySettings?Promise.resolve(o.auxiliarySettings):n.getAuxiliarySettings(i(!0),e).then((function(e){return o.auxiliarySettings=e||{},o.settings=t(t({},o.settings),o.auxiliarySettings),o.scales=void 0,o.color=void 0,o.auxiliarySettings}))},getAuxiliaryData:function(){return n.getAuxiliaryData(i())},getSnapshotData:function(e){var t=i();return n.getAuxiliaryData(t,e).then((function(e){return n.getSnapshotData(t,e)}))},resolveUIColor:function(e){return n.resolveUIColor(e)},settings:function(){var e=i();return{mode:e.mode,type:e.type,label:e.label,field:e.field,fieldType:e.fieldType,nil:e.nil,others:e.others,primary:e.primary}},settingsForMeasure:function(e){var t,n=null===(t=i().measureOverrides)||void 0===t?void 0:t[e];return n||this.settings()},isSelectionLocked:function(e){var t=e.isMeasureSelectionLocked;return function(e,t){var n=t.isMeasureSelectionLocked;return\"field\"!==e.mode||(\"dimension\"===e.fieldType?e.isFieldLocked:\"measure\"!==e.fieldType||n)}(i(),{isMeasureSelectionLocked:t})},palettes:function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.colorProps,n=e.coloring,r=e.theme,o=[];if(n&&n.palettes&&r){var i=n.palettes.categorical||t.dimensionScheme,a=r.getDataColorPalettes().filter((function(e){return e.key===i}))[0]||r.getDataColorPalettes()[0];i&&a&&o.push({key:\"categorical\",colors:a.colors});var l=n.palettes.metric||t.measureScheme,u=r.getDataColorScales().filter((function(e){return e.key===l}))[0];if(u){var s=u.colors[0]?u.colors:[[]].concat(c(u.colors.slice(1)));s=Array.isArray(s[0])?s.map((function(e){return e.slice().reverse()})):s.slice().reverse(),o.push({key:\"quant\",colors:s})}}return o}({coloring:i(),colorProps:r.colorProps,theme:r.theme})},scales:function(){return o.scales=o.scales||function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.hc,r=e.coloring,o=e.rtl,i=e.key,a=e.source,l=e.picasso,u={},s=i;if(r){var f={override:!0,domain:r.explicit&&\"function\"==typeof r.explicit.domain?r.explicit.domain:[].concat(c((r.explicit||{}).domain||[]),[-3,-2]),range:r.explicit&&\"function\"==typeof r.explicit.range?r.explicit.range:[].concat(c((r.explicit||{}).range||[]),[r.others,r.nil])};if(\"field\"===r.mode){if(\"dimension\"===r.fieldType){var d,p=Be({hc:n,source:a,coloring:r}).data;if(r.legendDataset){var h=0,m={};l.data(\"q\")({data:n}).extract({field:r.field,trackBy:r.valueAccessor,reduce:function(e){var t=e[0];return m[t]=h++,e[0]}}),d={source:\"attrDim\",extract:{field:\"qDimensionInfo/0\",filter:function(e){return e.qElemNumber>=0},props:{row:{value:function(e){return m[e.qElemNumber]}}}}}}var v={data:p,range:r.range,domain:r.domain,explicit:f,type:\"categorical-color\",label:function(e){return e.datum.text&&e.datum.text.value?e.datum.text.value:e.datum.label}};u[s]=v,d&&(u[\"\".concat(s,\"Legend\")]=t(t({},v),{},{data:d})),n&&n.qHasOtherValues&&d&&((d||v.data).amend=[{label:n.qDimensionInfo[0].othersLabel,source:{key:\"qHyperCube\",field:\"qDimensionInfo/0\"},row:{value:-3},value:-3}])}else if(\"measure\"===r.fieldType){var y={data:{field:r.field},min:r.min,max:r.max};u[s]=w({},y,{type:\"categorical\"===r.type?\"threshold-color\":\"sequential-color\",range:r.range,domain:r.domain,invert:r.reverse}),\"sequential-color\"===u[s].type&&(u[\"\".concat(s,\"Range\")]=w({},y,{invert:!!o}))}else if(\"color\"!==r.type)throw new Error(\"UNUSED FIELD\")}else if(\"dimension\"===r.mode){var g={data:n.qDimensionInfo.map((function(e,t){return t})),label:function(e){return n.qDimensionInfo[e.datum.value].qFallbackTitle},explicit:f,type:\"categorical-color\"};u[s]=g}else if(\"measure\"===r.mode){var b={data:n.qMeasureInfo.map((function(e,t){return t})).filter((function(e){var t,n;return!(null!==(t=r.explicit)&&void 0!==t&&null!==(n=t.exclude)&&void 0!==n&&n.includes(e))})),label:function(e){return n.qMeasureInfo[e.datum.value].qFallbackTitle},explicit:f,type:\"categorical-color\"};u[s]=b}}return u}({hc:r.hc,coloring:i(),key:r.key,source:r.source,picasso:e.picasso}),o.scales},color:function(){return o.color=o.color||function(e){var t=e.coloring,n=e.scales,r=e.key,o=Ye(r),i=Ye(\"\".concat(r,\"IsAnOther\")),a=function(e,t){var r=e.fieldType,a=e.invalid,l=e.mode,u=e.nil,c=e.others,s=e.primary,f=e.type;return a?function(e){return Ue(e)||i(e)?c:u}:n[t]?function(e){return Ue(e)?c:$e(e)||-2===o(e)&&\"dimension\"===r||\"NaN\"===o(e)?u:i(e)?c:e.resources.scale(t)(o(e))||c}:\"constant\"===l?function(e){return Ue(e)||i(e)?c:$e(e)?u:s}:\"color\"===f?function(e){return Ue(e)||i(e)?c:$e(e)?u:o(e)||c}:null},l=a(t,r);if(t.measureOverrides){var u=Ye(\"\".concat(r,\"MeasureIdx\")),c=t.measureOverrides.map((function(e){return e&&a(e)}));return function(e){var t=u(e);return c[t]?c[t](e):l(e)}}return l}({coloring:i(),scales:this.scales(),key:r.key}),o.color},datumProps:function(e){return function(e){var t,n,r=e.hc,o=e.coloring,i=e.scales,l=e.key,u=e.addMeasureIx,c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,s=l,f=o.nil;\"field\"===o.mode&&o.field?t=o.field:i[l]&&\"field\"===o.mode&&(t=i[l].data.field||o.field),t?(n={field:t,reduce:\"first\"},\"color\"===o.type&&(n.value=function(e){return\"NaN\"!==e.qNum?et(e.qNum):e.qText&&$(e.qText)?e.qText:f})):\"dimension\"===o.mode?n=void 0!==o.field?o.field:r.qDimensionInfo.length-1:\"measure\"===o.mode&&(n=c);var d=a({},s,n);return r.qDimensionInfo.length>1&&(d[\"\".concat(s,\"IsAnOther\")]={fields:r.qDimensionInfo.map((function(e,t){return{field:\"qDimensionInfo/\".concat(t)}})),value:function(e){return-1!==e.indexOf(-3)}}),u&&(d[\"\".concat(s,\"MeasureIdx\")]=c),d}({coloring:this.settingsForMeasure(e),scales:this.scales(),key:r.key,hc:r.hc,addMeasureIx:i().measureOverrides},e)},data:function(){var e=i(),t={key:\"dummy\",data:[[\"field\"],[\"a\"]]};return e.legendDataset?[t,{type:\"q\",key:\"attrDim\",data:e.legendDataset.raw(),config:{localeInfo:r.localeInfo}}]:[t]},legend:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.eventName,n=e.key,o=e.viewState,a=e.chart,l=e.rtl,u=e.styleReference,c=void 0===u?\"object.legend\":u,s=e.styleOverrides,f=e.settings,d=void 0===f?{}:f,p=e.style,h=void 0===p?{}:p,m=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Qe({eventName:t,key:n,rtl:l,viewState:o,chart:a,styleReference:c,styleOverrides:s,settings:d,style:h},{legendProps:r.legendProps,scaleKey:r.key,coloring:i(),theme:r.theme,hc:r.hc,scales:this.scales()},m)}};return l}var nt=function(e){return e.baseColor||e.coloring&&e.coloring.baseColor};function rt(e){var t=e.qHyperCube,n=t.qDimensionInfo,r=t.qMeasureInfo,o=n.some(nt),i=r.some(nt),a=e.color.useBaseColors;return\"measure\"===a&&!i||\"dimension\"===a&&!o?\"off\":a}function ot(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t(t(t({},e),n),{},{colorProps:t(t({},e.colorProps),n.colorProps||{})});return r}var it=function(e){return e.baseColor||e.coloring&&e.coloring.baseColor};function at(e){var t,n=e.qHyperCube.qDimensionInfo.some(it),r=e.qHyperCube.qMeasureInfo.some(it),o=n?\"dimension\":void 0;return{mode:\"primary\",useBaseColors:null!==(t=null!=o?o:r?\"measure\":void 0)&&void 0!==t?t:\"off\",paletteColor:null}}var lt=function(){};function ut(e){var n,r,o,i,a=e.picasso,l=e.model,u=e.app,c=e.translator,s=e.layoutService,f=void 0===s?void 0:s,d=e.createConfig,p=void 0===d?lt:d,h=e.config,m=void 0===h?{}:h,v=e.custom,y=void 0===v?{}:v,g=m.localeInfo,b=m.key,x=m.theme,q=void 0===x?void 0:x,w=m.auto,M=void 0===w?void 0:w,k=m.definitionPath,S=null==f||null===(n=f.getLayout)||void 0===n?void 0:n.call(f),C={theme:q,key:b,localeInfo:g,layout:S,hc:null==f||null===(r=f.getHyperCube)||void 0===r?void 0:r.call(f),legendProps:null==f||null===(o=f.getLayoutValue)||void 0===o?void 0:o.call(f,\"legend\"),colorProps:t(t({},null==f||null===(i=f.getLayoutValue)||void 0===i?void 0:i.call(f,\"color\")),{},{useBaseColors:S?rt(S):void 0})},D=tt({picasso:a,model:l,app:u,translator:c,auto:M});!1!==M&&D.auto((function(e){return M?M({layout:e,defaultAuto:at}):at(e)}));var I=!1,O={getColor:function(){return D.color()},getPaletteColor:function(e){var t=e.index,n=e.color;return D.resolveUIColor({index:t,color:n})},getData:function(){return D.data()},getDatumProps:function(e){return D.datumProps(e)},getSnapshotData:function(){return D.getSnapshotData(k)},getSettingsForMeasure:function(e){return D.settingsForMeasure(e)},getSettings:function(){return D.settings()},getLegend:function(e,t){return D.legend(e,t)},getScales:function(){return D.scales()},getPalettes:function(){return D.palettes()},isSelectionLocked:function(e){var t=e.isMeasureSelectionLocked;return D.isSelectionLocked({isMeasureSelectionLocked:t})},isInitialized:function(){return I},custom:t({},y),initialize:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.createConfig,n=void 0===t?p:t,r=n({getUseBaseColors:rt}),o=ot(C,r);D.config(o);var i=D.getAuxiliarySettings(k).then((function(){I=!0}));return i}};return O}function ct(e){var t=e.chart,n=e.logicalSize;if(n)return n;var r=t?t.element.getBoundingClientRect():{};return{width:r.width,height:r.height}}var st=[{key:\"FULL\",size:{width:550,height:450}},{key:\"MEDIUM\",size:{width:400,height:220}},{key:\"SMALL\",size:{width:300,height:150}},{key:\"XSMALL\",size:{width:150,height:75}}];function ft(e){var t=e.width,n=e.height,r=st.filter((function(e){return t>=e.size.width&&n>=e.size.height})).shift();return r?r.key:\"SPARK\"}var dt={left:\"right\",right:\"left\",top:\"bottom\",bottom:\"top\",near:\"far\",far:\"near\"};function pt(e){var t=e.orientation,n=e.dock,r=e.btt,o=e.rtl,i=\"horizontal\"===t?function(e){return\"bottom\"===e||\"near\"===e?\"bottom\":\"top\"}(n):function(e,t){var n=\"left\"===e||\"near\"===e?\"left\":\"right\";return t?dt[n]:n}(n,o),a=function(e,t,n){return\"vertical\"===e?t?\"bottom\":\"top\":n?\"right\":\"left\"}(t,r,o);return{current:i,opposite:dt[i],start:a,end:dt[a]}}function ht(e){var n=e.chart,r=e.layoutService,o=e.config,i=void 0===o?{}:o,a=i.logicalSize,l=void 0!==a&&a,u=i.rtl,c=void 0!==u&&u,s={chart:{size:void 0,mode:void 0},x:{dock:void 0,opposite:void 0,size:void 0},y:{dock:void 0,opposite:void 0,size:void 0}},f={type:\"x-y\",config:t({},i),meta:s,update:function(e){s.chart.size={width:e.width,height:e.height},s.chart.mode=ft(e);var t=pt({orientation:\"horizontal\",dock:r.getLayoutValue(\"xAxis.dock\"),btt:!1,rtl:c}),n=t.current,o=t.opposite;s.x.dock=n,s.x.opposite=o,s.x.size=e.width;var i=pt({orientation:\"vertical\",dock:r.getLayoutValue(\"yAxis.dock\"),btt:!0,rtl:c}),a=i.current,l=i.opposite;s.y.dock=a,s.y.opposite=l,s.y.size=e.height}};return f.update(ct({chart:n,logicalSize:l})),f}var mt=\"vertical\",vt=\"horizontal\";function yt(e){var n=e.chart,r=e.layoutService,o=e.config,i=void 0===o?{}:o,a=e.typeConfig,l=void 0===a?{}:a,u=i.logicalSize,c=void 0!==u&&u,s=i.rtl,f=void 0!==s&&s,d=l.fallback===mt?mt:vt,p=!!l.invert,h=l.measureAxes||[{ref:\"measureAxis\",name:\"minor\"}],m={chart:{orientation:void 0,size:void 0,mode:void 0},major:{orientation:void 0,dock:void 0,opposite:void 0,size:void 0}},v={type:\"major-minor\",config:t({},i),meta:m,update:function(e){m.chart.orientation=r.getLayoutValue(\"orientation\",d),m.chart.size={width:e.width,height:e.height},m.chart.mode=ft(e),m.major.orientation=function(e){var t=e.layoutService,n=e.chartOrientation,r=e.invert;return t.meta.isContinuous?vt:r?n===mt?vt:mt:n}({layoutService:r,chartOrientation:m.chart.orientation,invert:p});var t=pt({orientation:m.major.orientation,dock:r.getLayoutValue(\"dimensionAxis.dock\"),btt:!1,rtl:f}),n=t.current,o=t.opposite;m.major.dock=n,m.major.opposite=o,m.major.size=m.major.orientation===mt?e.height:e.width,h.forEach((function(t){var n={};n.orientation=m.major.orientation===mt?vt:mt;var o=pt({orientation:n.orientation,dock:r.getLayoutValue(\"\".concat(t.ref,\".dock\")),btt:!0,rtl:f}),i=o.current,a=o.opposite,l=o.start,u=o.end;n.dock=i,n.opposite=a,n.start=l,n.end=u,n.size=n.orientation===mt?e.height:e.width,m[t.name]=n}))}};return v.update(ct({chart:n,logicalSize:c})),v}function gt(e){var t=e.chart,n=e.layoutService,r=e.config,o=void 0===r?{}:r,i=e.typeConfig,a=void 0===i?{}:i;return(\"x-y\"===a.type?ht:yt)({chart:t,layoutService:n,config:o,typeConfig:a})}function bt(e,t,n){if(void 0===e||void 0===t)return n;for(var r=t.split(\".\"),o=e,i=0;i<r.length;++i){var a=r[i];if(void 0===o[a])return n;o=o[a]}return o}var xt=[\"__proto__\",\"constructor\"];function qt(e,t,n){if(void 0!==e&&void 0!==t){var r=t.split(\".\"),o=r[r.length-1];if(!xt.some((function(e){return r.includes(e)}))){for(var i=e,a=0;a<r.length-1;++a){var l=r[a];void 0===i[l]&&(i[l]=Number.isNaN(+r[a+1])?{}:[]),i=i[l]}void 0!==n?i[o]=n:delete i[o]}}}function wt(){var e={};return{get:function(t){return e[t]},set:function(t,n){return e[t]=n,n},has:function(t){return t in e},remove:function(t){delete e[t]},empty:function(){e={}}}}function Mt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){return e},n=wt();return function(r){var o=t(r);return n.has(o)?n.get(o):n.set(o,e(r))}}function kt(e){var n=t({},e),r={},o={},i=!1,a={get:function(e){return n[e]},set:function(e,t){var a=n[e];!i&&r[e]?n[e]=r[e](t,a):n[e]=t,!i&&o[e]&&o[e](n[e],a)},preventSet:function(e,t){i=!0,a.set(e,t),i=!1},intercept:function(e,t){r[e]=t},onChanged:function(e,t){o[e]=t}};return a}function St(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50;return function(){for(var r=this,o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];var l=function(){return e.apply(r,i)};clearTimeout(t),t=setTimeout(l,n)}}function Ct(e){var t,n,r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,i=0;return function(){t=this;for(var a=arguments.length,l=new Array(a),u=0;u<a;u++)l[u]=arguments[u];n=l;var c=Date.now()-i,s=function(){i=Date.now(),r=0,e.apply(t,n)};r||(c>=o?s():r=setTimeout(s,o-c))}}var Dt={ERROR_CODES:[7005],DIMENSION:\"qDimensionInfo\",MEASURE:\"qMeasureInfo\"},It=function(e,t){return e[t].reduce((function(e,t,n){var r;return(r=t,Dt.ERROR_CODES.some((function(e){var t;return e===(null===(t=r.qError)||void 0===t?void 0:t.qErrorCode)})))?e.filtered.push(n):e.reduced.push(t),e}),{reduced:[],filtered:[]})};function Ot(e){var t;return((null==e||null===(t=e.qHyperCube)||void 0===t?void 0:t.qDimensionInfo)||[]).map((function(e){var t,n=null===(t=e.qCardinalities)||void 0===t?void 0:t.qHypercubeCardinal;if(n)return n;var r=e.qStateCounts||{},o=r.qLocked,i=void 0===o?0:o,a=r.qOption,l=void 0===a?0:a,u=r.qSelected;return i+l+(void 0===u?0:u)}))}function Et(e){switch(e.qHyperCube.qMode){case\"S\":return function(e){var t=e.qHyperCube.qSize;return{refs:{dataPages:\"qHyperCube.qDataPages\"},size:{x:t.qcx,y:t.qcy,dimensions:Ot(e)}}}(e);case\"K\":return function(e){var t=Ot(e);return{refs:{dataPages:\"qHyperCube.qStackedDataPages\"},size:{x:e.qHyperCube.qSize.qcx,y:t[0],dimensions:t}}}(e);case\"T\":return function(e){var t=Ot(e);return{refs:{dataPages:\"qHyperCube.qTreeDataPages\"},size:{x:e.qHyperCube.qSize.qcx,y:t[0],dimensions:t}}}(e);default:throw new Error(\"Mode not supported\")}}function At(e){var n=e.source,r=e.metaAdditionsFn,o=e.experimental,i=void 0===o?{filter:!1}:o,a=w(!0,{},n),l=i.filter?function(e){var t=e.qHyperCube,n=It(t,Dt.DIMENSION),r=n.reduced,o=n.filtered;t[Dt.DIMENSION]=r;var i=It(t,Dt.MEASURE),a=i.reduced,l=i.filtered;return t[Dt.MEASURE]=a,{dimensions:o,measures:l}}(a):{dimensions:[],measures:[]},u=Et(a),c=function(){var e=function(e){var n=e.layout,r=e.additionsFn,o=void 0===r?function(){return{}}:r,i=e.additionsProps,a=void 0===i?{}:i,l=n.qHyperCube,u=l.qDimensionInfo,c=l.qMeasureInfo,s=l.qMode,f=u.length,d=c.length,p=t({mode:{S:\"S\"===s,P:\"P\"===s,K:\"K\"===s,T:\"T\"===s},dimensionCount:f,measureCount:d,hasMultipleDimensions:f>1,hasMultipleMeasures:d>1,isOneDimensional:1===f,isTwoDimensional:2===f},a);return t(t({},p),o({layout:n,meta:p}))}({layout:a,additionsFn:r,additionsProps:{size:u.size}});return e.filteredFields=l,e},s={refs:t({},u.refs),meta:c(),getLayout:function(){return a},getLayoutValue:function(e,t){return bt(a,e,t)},setLayoutValue:function(e,t){qt(a,e,t),u=Et(a),s.meta=c()},getHyperCube:function(){return a.qHyperCube},getHyperCubeValue:function(e,t){return bt(a.qHyperCube,e,t)},setHyperCubeValue:function(e,t){qt(a.qHyperCube,e,t),u=Et(a),s.meta=c()},getDataPages:function(){return bt(a,u.refs.dataPages)},setDataPages:function(e){qt(a,u.refs.dataPages,e),s.meta=c()}};return s}function Nt(e){var t=e.originalArray,n=e.newArray,r=e.matchKey;return Array.isArray(t)&&t.length?(n.forEach((function(e){var n=-1;t.some((function(t,o){return t[r]&&t[r]===e[r]&&(n=o),n})),n>-1?t[n]=e:t.push(e)})),t):n}function Lt(e){var o=e.picassoInstance,a=e.plugins,l=e.pluginArgs,s=void 0===l?{}:l,f={initialized:!1,definitions:[]};return{initialize:function(){return i(n().mark((function e(){var l,u,d,p;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!f.initialized){e.next=2;break}return e.abrupt(\"return\");case 2:return u=Promise.all(a.filter((function(e){return\"custom-component\"===e.info.type})).map(function(){var e=i(n().mark((function e(i){var a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i.info.componentName){e.next=2;break}throw new Error(\"plugin-service: Custom component is missing componentName\");case 2:return e.next=4,i.fn(t({},s));case 4:if(\"object\"===r(a=e.sent)){e.next=7;break}throw new Error(\"plugin-service: Custom component needs to be an object\");case 7:o.component(i.info.componentName,a);case 8:case\"end\":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())),d=Promise.all(a.filter((function(e){return\"component-definition\"===e.info.type})).map((function(e){return e.fn(t({},s))}))),e.next=6,Promise.all([u,d]);case 6:p=e.sent,f.initialized=!0,(l=f.definitions).push.apply(l,c(p[1]));case 9:case\"end\":return e.stop()}}),e)})))()},extendComponents:function(e){return f.initialized?(f.definitions.filter(Boolean).forEach((function(t){var n=u(e.filter((function(e){return e.key&&e.key===t.key})),1)[0];if(n){var o=w(!0,{},n.brush);w(!0,n,t),t.brush&&(n.brush=function(e,t){return\"object\"===r(e)&&Object.keys(e).length?(Array.isArray(t.consume)&&(e.consume=Nt({originalArray:e.consume,newArray:t.consume,matchKey:\"context\"})),Array.isArray(t.trigger)&&(e.trigger=Nt({originalArray:e.trigger,newArray:t.trigger,matchKey:\"on\"})),e):t}(o,t.brush))}else e.push(t)})),e):e}}}function Tt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Pt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Tt(Object(n),!0).forEach((function(t){jt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Tt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function jt(e,t,n){return(t=function(e){var t=function(e,t){if(\"object\"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||\"default\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ft=Object.prototype.hasOwnProperty,Ht=Object.prototype.toString,Rt=Object.defineProperty,zt=Object.getOwnPropertyDescriptor,Vt=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===Ht.call(e)},_t=function(e){if(!e||\"[object Object]\"!==Ht.call(e))return!1;var t,n=Ft.call(e,\"constructor\"),r=e.constructor&&e.constructor.prototype&&Ft.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!r)return!1;for(t in e);return void 0===t||Ft.call(e,t)},Bt=function(e,t){Rt&&\"__proto__\"===t.name?Rt(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},Yt=function(e,t){if(\"__proto__\"===t){if(!Ft.call(e,t))return;if(zt)return zt(e,t).value}return e[t]},$t=function e(){var t,n,r,o,i,a,l=arguments[0],u=1,c=arguments.length,s=!1;for(\"boolean\"==typeof l&&(s=l,l=arguments[1]||{},u=2),(null==l||\"object\"!=typeof l&&\"function\"!=typeof l)&&(l={});u<c;++u)if(null!=(t=arguments[u]))for(n in t)r=Yt(l,n),l!==(o=Yt(t,n))&&(s&&o&&(_t(o)||(i=Vt(o)))?(i?(i=!1,a=r&&Vt(r)?r:[]):a=r&&_t(r)?r:{},Bt(l,{name:n,newValue:e(s,a,o)})):void 0!==o&&Bt(l,{name:n,newValue:o}));return l};function Ut(e,t,n,r){if(!e)return-1;const o=n.cache,i=e.origin?e.origin():null;i&&(e=i);let a=o.fields.indexOf(e),l=-1,u=-1;if(-1===a)for(let t=0;t<o.wrappedFields.length;t++)if(u=o.wrappedFields[t].attrDims.map((e=>e.instance)).indexOf(e),l=o.wrappedFields[t].attrExps.map((e=>e.instance)).indexOf(e),-1!==u||-1!==l){a=t;break}if(Array.isArray(r)&&r.some(((e,t)=>e!==t))){const e=r.indexOf(a);-1!==e&&(a=e)}return a-=t.qArea.qLeft,a<0||a>=t.qArea.qWidth?-1:u>=0?e=>e[a].qAttrDims.qValues[u]:l>=0?e=>e[a].qAttrExps.qValues[l]:e=>e[a]}function Kt(e,t,n){let{key:r}=n;const o={value:\"function\"==typeof e.value?e.value(t):void 0!==e.value?e.value:t};return o.label=\"function\"==typeof e.label?e.label(t):void 0!==e.label?String(e.label):String(o.value),e.field&&(o.source={key:r,field:e.field.key()}),o}function Gt(e){let{cache:t,f:n,mainCell:r,p:o,prop:i,page:a,rowIdx:l,row:u,sourceKey:c,target:s,targetProp:f,columnOrder:d}=e,p=r;if(o.field&&o.field!==n){const e=Ut(o.field,a,{cache:t},d);if(-1===e)return;p=$t({qRow:l},e(u))}s[f]=Kt(o,p,{key:c})}function Wt(e,t,n,r){const o=Array.isArray(e)?e:[e];let i=[];for(let e=0;e<o.length;e++)if(void 0!==o[e].field){const a=t.raw(),l=t.key(),u=\"object\"==typeof o[e].field?o[e].field:t.field(o[e].field),{props:c,main:s}=r.normalizeConfig(o[e],t),f=Object.keys(c),d=!!o[e].trackBy,p=typeof o[e].trackBy,h={},m=[],v=[];for(let t=0;t<a.qDataPages.length;t++){const i=Ut(u,a.qDataPages[t],{cache:n},a.qColumnOrder);if(-1!==i)for(let y=0;y<a.qDataPages[t].qMatrix.length;y++){const g=a.qDataPages[t].qArea.qTop+y,b=$t({qRow:g},i(a.qDataPages[t].qMatrix[y])),x=Kt(s,b,{key:l});if(!(s.filter&&!s.filter(b))){for(let e=0;e<f.length;e++){const r=c[f[e]];let o=r.fields||[r];r.fields&&(x[f[e]]=[]);for(let i=0;i<o.length;i++)Gt({cache:n,f:u,mainCell:b,p:o[i],prop:f[e],props:c,page:a.qDataPages[t],rowIdx:g,row:a.qDataPages[t].qMatrix[y],sourceKey:l,target:r.fields?x[f[e]]:x,targetProp:r.fields?i:f[e],columnOrder:a.qColumnOrder});if(r.fields){const t=x[f[e]].map((e=>e.value)),n=x[f[e]].map((e=>e.label));x[f[e]]={value:\"function\"==typeof r.value?r.value(t):void 0!==r.value?r.value:t,label:\"function\"==typeof r.label?r.label(n):void 0!==r.label?String(r.label):String(x[f[e]].value)}}}d&&r.track({cfg:o[e],itemData:b,obj:x,target:m,tracker:h,trackType:p}),v.push(x)}}}const y=d?r.collect(m,{main:s,propsArr:f,props:c}):v;i=[...i,...y]}return i}function Xt(e){var t=0,n=e.children,r=n&&n.length;if(r)for(;--r>=0;)t+=n[r].value;else t=1;e.value=t}function Zt(e,t){e instanceof Map?(e=[void 0,e],void 0===t&&(t=Qt)):void 0===t&&(t=Jt);for(var n,r,o,i,a,l=new nn(e),u=[l];n=u.pop();)if((o=t(n.data))&&(a=(o=Array.from(o)).length))for(n.children=o,i=a-1;i>=0;--i)u.push(r=o[i]=new nn(o[i])),r.parent=n,r.depth=n.depth+1;return l.eachBefore(tn)}function Jt(e){return e.children}function Qt(e){return Array.isArray(e)?e[1]:null}function en(e){void 0!==e.data.value&&(e.value=e.data.value),e.data=e.data.data}function tn(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function nn(e){this.data=e,this.depth=this.height=0,this.parent=null}function rn(e){return null==e?null:function(e){if(\"function\"!=typeof e)throw new Error;return e}(e)}nn.prototype=Zt.prototype={constructor:nn,count:function(){return this.eachAfter(Xt)},each:function(e,t){let n=-1;for(const r of this)e.call(t,r,++n,this);return this},eachAfter:function(e,t){for(var n,r,o,i=this,a=[i],l=[],u=-1;i=a.pop();)if(l.push(i),n=i.children)for(r=0,o=n.length;r<o;++r)a.push(n[r]);for(;i=l.pop();)e.call(t,i,++u,this);return this},eachBefore:function(e,t){for(var n,r,o=this,i=[o],a=-1;o=i.pop();)if(e.call(t,o,++a,this),n=o.children)for(r=n.length-1;r>=0;--r)i.push(n[r]);return this},find:function(e,t){let n=-1;for(const r of this)if(e.call(t,r,++n,this))return r},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,r=t.children,o=r&&r.length;--o>=0;)n+=r[o].value;t.value=n}))},sort:function(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))},path:function(e){for(var t=this,n=function(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),o=null;e=n.pop(),t=r.pop();for(;e===t;)o=e,e=n.pop(),t=r.pop();return o}(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var o=r.length;e!==n;)r.splice(o,0,e),e=e.parent;return r},ancestors:function(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t},descendants:function(){return Array.from(this)},leaves:function(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e},links:function(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t},copy:function(){return Zt(this).eachBefore(en)},[Symbol.iterator]:function*(){var e,t,n,r,o=this,i=[o];do{for(e=i.reverse(),i=[];o=e.pop();)if(yield o,t=o.children)for(n=0,r=t.length;n<r;++n)i.push(t[n])}while(i.length)}};var on={depth:-1},an={},ln={};function un(e){return e.id}function cn(e){return e.parentId}function sn(){var e,t=un,n=cn;function r(r){var o,i,a,l,u,c,s,f,d=Array.from(r),p=t,h=n,m=new Map;if(null!=e){const t=d.map(((t,n)=>function(e){let t=(e=`${e}`).length;dn(e,t-1)&&!dn(e,t-2)&&(e=e.slice(0,-1));return\"/\"===e[0]?e:`/${e}`}(e(t,n,r)))),n=t.map(fn),o=new Set(t).add(\"\");for(const e of n)o.has(e)||(o.add(e),t.push(e),n.push(fn(e)),d.push(ln));p=(e,n)=>t[n],h=(e,t)=>n[t]}for(a=0,o=d.length;a<o;++a)i=d[a],c=d[a]=new nn(i),null!=(s=p(i,a,r))&&(s+=\"\")&&(f=c.id=s,m.set(f,m.has(f)?an:c)),null!=(s=h(i,a,r))&&(s+=\"\")&&(c.parent=s);for(a=0;a<o;++a)if(s=(c=d[a]).parent){if(!(u=m.get(s)))throw new Error(\"missing: \"+s);if(u===an)throw new Error(\"ambiguous: \"+s);u.children?u.children.push(c):u.children=[c],c.parent=u}else{if(l)throw new Error(\"multiple roots\");l=c}if(!l)throw new Error(\"no root\");if(null!=e){for(;l.data===ln&&1===l.children.length;)l=l.children[0],--o;for(let e=d.length-1;e>=0&&(c=d[e],c.data===ln);--e)c.data=null}if(l.parent=on,l.eachBefore((function(e){e.depth=e.parent.depth+1,--o})).eachBefore(tn),l.parent=null,o>0)throw new Error(\"cycle\");return l}return r.id=function(e){return arguments.length?(t=rn(e),r):t},r.parentId=function(e){return arguments.length?(n=rn(e),r):n},r.path=function(t){return arguments.length?(e=rn(t),r):e},r}function fn(e){let t=e.length;if(t<2)return\"\";for(;--t>1&&!dn(e,t););return e.slice(0,t)}function dn(e,t){if(\"/\"===e[t]){let n=0;for(;t>0&&\"\\\\\"===e[--t];)++n;if(0==(1&n))return!0}return!1}function pn(e,t){\"/\"===e.charAt(0)&&(e=e.substring(1));const n=e.split(\"/\");let r,o=t;for(let e=0;e<n.length;e++){if(\"*\"===n[e]&&Array.isArray(o)){const t=[];r=n.slice(e+1).join(\"/\");for(let e=0;e<o.length;e++){let n=pn(r,o[e]);Array.isArray(n)?t.push(...n):t.push(n)}return t}if(!n[e]&&Array.isArray(o)){const t=new Array(o.length);r=n.slice(e+1).join(\"/\");for(let e=0;e<o.length;e++)t[e]=pn(r,o[e]);return t}n[e]in o&&(o=o[n[e]])}return o}function hn(e,t,n){let r=[];if(!e||!e.length)return r;if(t<=0){const t=n>=0?[e[n]]:e;r=[...r,...t]}else for(let o=0;o<e.length;o++)e[o].children&&e[o].children.length&&(r=[...r,...hn(e[o].children,t-1,n)]);return r}function mn(e,t,n){if(e===t)return e=>e;if(e>t){const n=Math.max(0,Math.min(100,e-t));return e=>{let t=e;for(let e=0;e<n;++e)t=t.parent;return t}}if(t>e){const r=Math.max(0,Math.min(100,t-e));return e=>hn(e.children,r-1,n)}return!1}function vn(e,t){let{cache:n}=t;if(\"number\"==typeof e)return n.fields[e];const r=n.allFields;if(\"function\"==typeof e){for(let t=0;t<r.length;t++)if(e(r[t]))return r[t];return!1}if(\"string\"==typeof e){for(let t=0;t<r.length;t++)if(r[t].key()===e||r[t].title()===e)return r[t]}else if(e&&-1!==r.indexOf(e))return e;throw Error(\"Field not found: \".concat(e))}const yn=/^qDimensionInfo(?:\\/(\\d+))?/,gn=/^\\/?qMeasureInfo\\/(\\d+)/,bn=/\\/qAttrExprInfo\\/(\\d+)/,xn=/\\/qAttrDimInfo\\/(\\d+)/;function qn(e){return(e.qColumnOrder&&e.qColumnOrder.length?e.qColumnOrder:e.qDimensionInfo.map(((e,t)=>t))).filter((t=>t<e.qDimensionInfo.length))}function wn(e,t){let{cube:n}=t;if(!e)return-1;let r=e.origin&&e.origin()?e.origin().key():e.key(),o=!1,i=-1,a=-1,l=-1,u=-1,c=-1,s=-1,f=r;const d=n.qEffectiveInterColumnSortOrder,p=qn(n);return yn.test(f)&&(o=!0,i=+yn.exec(f)[1],f=r.replace(yn,\"\")),gn.test(f)&&(\"K\"===n.qMode?c=+gn.exec(f)[1]:d&&-1!==d.indexOf(-1)?(c=+gn.exec(f)[1],s=0):s=+gn.exec(f)[1],f=f.replace(gn,\"\")),f&&(xn.exec(f)?l=+xn.exec(f)[1]:bn.exec(f)&&(a=+bn.exec(f)[1])),u=o?\"S\"===n.qMode?p[i]:d?d.indexOf(i):i:d&&-1!==d.indexOf(-1)?d.indexOf(-1):n.qDimensionInfo.length-(\"K\"===n.qMode?0:1),{fieldDepth:u+1,pseudoMeasureIndex:c,measureIdx:s,attrDimIdx:l,attrIdx:a}}function Mn(e,t){let n,r,o=mn(e.fieldDepth,t.fieldDepth,t.pseudoMeasureIndex);return n=t.measureIdx>=0?e=>e.data.qValues[t.measureIdx]:e=>e.data,t.attrDimIdx>=0?r=e=>{var n;return null==e||null===(n=e.qAttrDims)||void 0===n?void 0:n.qValues[t.attrDimIdx]}:t.attrIdx>=0&&(r=e=>{var n;return null==e||null===(n=e.qAttrExps)||void 0===n?void 0:n.qValues[t.attrIdx]}),{nodeFn:o,attrFn:r,valueFn:n}}function kn(e,t,n){let{key:r}=n;const o={value:\"function\"==typeof e.value?e.value(t):void 0!==e.value?e.value:t};return o.label=\"function\"==typeof e.label?e.label(t):void 0!==e.label?String(e.label):String(o.value),e.field&&(o.source={key:r,field:e.field.key()}),o}function Sn(e){let{propsArr:t,props:n,item:r,itemData:o,ret:i,sourceKey:a}=e;for(let e=0;e<t.length;e++){const l=n[t[e]],u=l.fields||[l];let c,s;l.fields&&(c=[],s=[]);for(let n=0;n<u.length;n++){const f=u[n];let d,p,h,m,v,y;if(\"primitive\"===f.type?(h=f.value,y=String(f.value)):(\"function\"==typeof f.value&&(d=e=>f.value(e,r)),\"function\"==typeof f.label&&(p=e=>f.label(e,r)),f.accessor?(m=f.accessor(r),Array.isArray(m)?(v=m.map(f.valueAccessor),f.attrAccessor&&(v=v.map(f.attrAccessor)),d&&(h=v.map(d),d=null),p&&(y=v.map(p),p=null),h=f.reduce?f.reduce(h):h,y=f.reduceLabel?f.reduceLabel(y,h):String(h)):(h=f.attrAccessor?f.attrAccessor(f.valueAccessor(m)):f.valueAccessor(m),y=h)):(h=o,y=o)),l.fields){const e=d?d(h):h;c.push(e),s.push(p&&null!=y?p(y):null!=y?y:String(e))}else{const n=d?d(h):h;i[t[e]]={value:n,label:p?p(y):null!=y?y:String(n)},f.field&&(i[t[e]].source={field:f.field.key(),key:a})}}c&&(i[t[e]]={value:\"function\"==typeof l.value?l.value(c,r):c,label:\"function\"==typeof l.label?l.label(s,r):s})}}const Cn=(e,t,n)=>{const r=\"K\"===e.qMode?\"/qStackedDataPages/*/qData\":\"/qTreeDataPages/*\",o=\"K\"===e.qMode?\"qSubNodes\":\"qNodes\",i=pn(r,e);return i&&i[0]?(t.tree=Zt(i[0],n.children||(e=>e[o])),t.tree):null};function Dn(e){const t=e.raw().qDataPages.length?e.raw().qDataPages[0].qMatrix:[],n=function(e){const t=e.raw().qColumnOrder,n=e.fields();return t&&t.length===n.length?t:n.map(((e,t)=>t))}(e),r=e.fields(),o=e.fields().filter((e=>\"dimension\"===e.type())).map((e=>n.indexOf(r.indexOf(e)))),i=e.fields().filter((e=>\"measure\"===e.type())).map((e=>n.indexOf(r.indexOf(e)))),a={__root:{__id:\"__root\",qValues:[]}};for(let e=0;e<t.length;e++){const n=t[e];let r=\"__root\",u=!1;for(let e=0;e<o.length;e++){var l;const t=n[o[e]],i=\"\".concat(r,\"__\").concat(null!==(l=t.qElemNumber)&&void 0!==l?l:t.qElemNo);a[i]||(a[i]=Pt({__id:i,__parent:r,qValues:[]},t),u=!0),r=i}if(u)for(let e=0;e<i.length;e++){const t=n[i[e]];a[r].qValues.push(t)}}const u=Object.keys(a).map((e=>a[e]));return sn().id((e=>e.__id)).parentId((e=>e.__parent))(u)}const In=e=>{let{propsArr:t,props:n,cube:r,cache:o,itemDepthObject:i,f:a}=e;for(let e=0;e<t.length;e++){const l=n[t[e]],u=l.fields?l.fields:[l];for(let e=0;e<u.length;e++){const t=u[e];if(t.field!==a){const e=Mn(i,wn(t.field,{cube:r,cache:o}));t.accessor=e.nodeFn,t.valueAccessor=e.valueFn,t.attrAccessor=e.attrFn}}}};function On(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;const o=t.raw(),i=t.key(),a=\"S\"===o.qMode?Dn(t):Cn(o,n,e);if(!a)return null;const l=a.height,u=[];for(let i=0;i<=l;i++){let a=null;if(i>0)if(\"S\"===o.qMode){let e=qn(o)[i-1];a=n.fields[e]}else{let e=o.qEffectiveInterColumnSortOrder[i-1];i>o.qEffectiveInterColumnSortOrder.length&&(e=o.qDimensionInfo.length),a=n.fields[e]}const{props:l,main:c}=r.normalizeConfig(Pt(Pt({},e),{},{field:a?a.key():void 0}),t),s=Object.keys(l);u[i]={propsArr:s,props:l,main:c};const f=a?wn(a,{cube:o,cache:n}):{fieldDepth:0};In({propsArr:s,props:l,cube:o,cache:n,itemDepthObject:f,f:a})}const c=a.copy(),s=c.descendants(),f=a.descendants();for(let e=0;e<f.length;e++){const t=u[f[e].depth].propsArr,n=u[f[e].depth].props,r=u[f[e].depth].main,o=s[e],a=o.data,l=kn(r,a,{key:i});Sn({propsArr:t,props:n,item:o,itemData:a,ret:l,sourceKey:i,isTree:!0}),f[e].data=l}return a}function En(e,t,n,r){const o=Array.isArray(e)?e:[e];let i=[];for(let a=0;a<o.length;a++)if(void 0!==o[a].field){const l=t.raw(),u=t.key();if(!Cn(l,n,e))continue;const c=\"object\"==typeof o[a].field?o[a].field:t.field(o[a].field),{props:s,main:f}=r.normalizeConfig(o[a],t),d=Object.keys(s),p=wn(c,{cube:l,cache:n}),{nodeFn:h,attrFn:m,valueFn:v}=Mn({fieldDepth:0},p);In({propsArr:d,props:s,cube:l,cache:n,itemDepthObject:p,f:c});const y=!!o[a].trackBy,g=typeof o[a].trackBy,b={},x=[],q=h(n.tree),w=[];for(let e=0;e<q.length;e++){const t=q[e],n=m?m(v(t)):v(t);if(f.filter&&!f.filter(n))continue;const i=kn(f,n,{key:u});Sn({propsArr:d,props:s,item:t,itemData:n,ret:i,sourceKey:u}),y&&r.track({cfg:o[a],itemData:n,obj:i,target:x,tracker:b,trackType:g}),w.push(i)}const M=y?r.collect(x,{main:f,propsArr:d,props:s}):w;i=[...i,...M]}return i}\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;var An,Nn,Ln=(An=function(e){\n/*! javascript-number-formatter - v1.1.11 - http://mottie.github.com/javascript-number-formatter/ * © ecava */\ne.exports=function(e,t){if(!e||isNaN(+t))return t;var n,r,o,i,a,l,u,c,s,f,d=e.length,p=e.search(/[0-9\\-\\+#]/),h=p>0?e.substring(0,p):\"\",m=e.split(\"\").reverse().join(\"\"),v=m.search(/[0-9\\-\\+#]/),y=d-v,g=e.substring(y,y+1),b=y+(\".\"===g||\",\"===g?1:0),x=v>0?e.substring(b,d):\"\";if(n=(t=\"-\"===(e=e.substring(p,b)).charAt(0)?-t:+t)<0?t=-t:0,o=(r=e.match(/[^\\d\\-\\+#]/g))&&r[r.length-1]||\".\",i=r&&r[1]&&r[0]||\",\",e=e.split(o),t=+(t=t.toFixed(e[1]&&e[1].length))+\"\",l=e[1]&&e[1].lastIndexOf(\"0\"),(!(c=t.split(\".\"))[1]||c[1]&&c[1].length<=l)&&(t=(+t).toFixed(l+1)),s=e[0].split(i),e[0]=s.join(\"\"),(a=e[0]&&e[0].indexOf(\"0\"))>-1)for(;c[0].length<e[0].length-a;)c[0]=\"0\"+c[0];else 0==+c[0]&&(c[0]=\"\");if((t=t.split(\".\"))[0]=c[0],u=s[1]&&s[s.length-1].length){for(m=\"\",y=(f=t[0]).length%u,d=f.length,b=0;b<d;b++)m+=f.charAt(b),!((b-y+1)%u)&&b<d-u&&(m+=i);t[0]=m}return t[1]=e[1]&&t[1]?o+t[1]:\"\",\"0\"!==(r=t.join(\"\"))&&\"\"!==r||(n=!1),h+(n?\"-\":\"\")+r+x}},An(Nn={exports:{}},Nn.exports),Nn.exports);function Tn(e){return e.replace(/[-[\\]/{}()*+?.\\\\^$|]/g,\"\\\\$&\")}const Pn={3:\"k\",6:\"M\",9:\"G\",12:\"T\",15:\"P\",18:\"E\",21:\"Z\",24:\"Y\",\"-3\":\"m\",\"-6\":\"μ\",\"-9\":\"n\",\"-12\":\"p\",\"-15\":\"f\",\"-18\":\"a\",\"-21\":\"z\",\"-24\":\"y\"},jn=/%\\)?$/,Fn=/^\\(r(0[2-9]|[12]\\d|3[0-6])\\)/i,Hn=/^\\(oct\\)/i,Rn=/^\\(dec\\)/i,zn=/^\\(hex\\)/i,Vn=/^\\(bin\\)/i,_n=/^\\(rom\\)/i,Bn=/^(\\(rom\\)|\\(bin\\)|\\(hex\\)|\\(dec\\)|\\(oct\\)|\\(r(0[2-9]|[12]\\d|3[0-6])\\))/i,Yn=/#|0/g;function $n(e,t,n,r){return e=e.toString(t),n[1]===n[1].toUpperCase()&&(e=e.toUpperCase()),e.length-e.indexOf(\".\")>10&&(e=e.slice(0,e.indexOf(\".\")+11)),e.replace(\".\",r||\".\")}function Un(e,t,n){let r;return Fn.test(t)?e=$n(e,Number(/\\d{2}/.exec(t)[0]),t,n):Hn.test(t)?e=$n(e,8,t,n):Rn.test(t)?e=$n(e,10,t,n):zn.test(t)?e=$n(e,16,t,n):Vn.test(t)?e=$n(e,2,t,n):_n.test(t)&&(r=\"\",e<0&&(r=\"-\",e=-e),0===(e=Math.floor(e))?e=\"0\":e<=5e5?(e=function(e,t){let n,r=\"\",o=Number(String(e).slice(-3)),i=(e-o)/1e3,a=[0,1,4,5,9,10,40,50,90,100,400,500,900].reverse(),l=[\"0\",\"I\",\"IV\",\"V\",\"IX\",\"X\",\"XL\",\"L\",\"XC\",\"C\",\"CD\",\"D\",\"CM\"].reverse();for(;o>0;)for(n=0;n<a.length;n++)if(a[n]<=o){r+=l[n],o-=a[n];break}for(n=0;n<i;n++)r=\"M\".concat(r);return t[1]!==t[1].toUpperCase()&&(r=r.toLowerCase()),r}(e,t),e=r+e):e=t+r+e.toExponential(0)),e}function Kn(e,t,n){const r=Tn(e);return n?r:new RegExp(r||\"\",t)}function Gn(e,t,n,r){let o,i,a,l,u,c,s,f,d,p=e.pattern;var h,m;r&&(e.abbreviate=!0),h=t,(m=n)&&(m=Tn(m)),h&&(h=Tn(h)),d=new RegExp(\"(?:[#0]+\".concat(h,\")?[#0]+(?:\").concat(m,\"[#0]+)?\")),a=p.match(d),a=a?a[0]:\"\",l=a?p.substr(0,p.indexOf(a)):p,u=a?p.substring(p.indexOf(a)+a.length):\"\",a||(a=p?\"#\":\"##########\"),t&&t===n&&(o=a.split(n),i=o.pop(),a=o.join(\"\")+n+i,t=\"\"),c=t,t=/,/.test(n)?\"¤\":\",\",c&&(a=a.replace(Kn(c,\"g\"),t)),s=n,n=\".\",s&&(a=a.replace(Kn(s,\"g\"),n)),f=a.match(/#/g),f=f?f.length:0;const v=p.split(s);let y;v[1]&&(y=v[1].match(Yn)),e.prefix=l||\"\",e.postfix=u||\"\",e.pattern=p,e.maxPrecision=y?y.length:2,e.percentage=jn.test(p),e.numericPattern=a||\"\",e.numericRegex=new RegExp(\"\".concat(Kn(t,null,!0),\"|\").concat(Kn(n,null,!0)),\"g\"),e.groupTemp=c,e.decTemp=s,e.t=t,e.d=n,e.temp=f}class Wn{constructor(e,t,n,r,o){this.localeInfo=e,this.pattern=t,this.thousandDelimiter=n||\",\",this.decimalDelimiter=r||\".\",this.type=o||\"numeric\",this.patternSeparator=\";\",this.abbreviations=function(e,t){if(!e||!e.qNumericalAbbreviation)return Pn;const n={};return e.qNumericalAbbreviation.split(t).forEach((e=>{let t=e.split(\":\");2===t.length&&(n[t[0]]=t[1])})),n}(e,this.patternSeparator),this.prepare()}clone(){const e=new Wn(this.localeInfo,this.pattern,this.thousandDelimiter,this.decimalDelimiter,this.type);return e.subtype=this.subtype,e}format(e,t,n,r){return this.prepare(t,n,r),this.formatValue(e)}prepare(e,t,n){let r;if(void 0===e&&(e=this.pattern),void 0===t&&(t=this.thousandDelimiter),void 0===n&&(n=this.decimalDelimiter),!e)return void(this._prepared={pattern:!1});this._prepared={positive:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"},negative:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"},zero:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"}},r=this._prepared,e=e.split(this.patternSeparator),r.positive.pattern=e[0],r.negative.pattern=e[1],r.zero.pattern=e[2],Bn.test(e[0])&&(r.positive.isFunctional=!0),e[1]?Bn.test(e[1])&&(r.negative.isFunctional=!0):r.negative=!1,e[2]?Bn.test(e[2])&&(r.zero.isFunctional=!0):r.zero=!1;const o=\"U\"===this.type;r.positive.isFunctional||Gn(r.positive,t,n,o),r.negative&&!r.negative.isFunctional&&Gn(r.negative,t,n,o),r.zero&&!r.zero.isFunctional&&Gn(r.zero,t,n,o)}formatValue(e){let t,n,r,o,i,a,l,u,c,s=this._prepared,f=\"\",d=\"\",p=e;if(isNaN(e))return\"\".concat(p);if(e=+e,!1===s.pattern)return e.toString();if(0===e&&s.zero)return s=s.zero,s.pattern;if(e<0&&s.negative?(s=s.negative,e=-e):s=s.positive,i=s.d,a=s.t,s.isFunctional)e=Un(e,s.pattern,i);else{if(s.percentage&&(e*=100),s.abbreviate){const t=Object.keys(this.abbreviations).map((e=>parseInt(e,10))).sort(((e,t)=>e-t));let r,o,i=t[0];for(l=0,n=Number(Number(e).toExponential().split(\"e\")[1]);i<=n&&l<t.length;)l++,i=t[l];l>0&&(r=t[l-1]),r&&n>0&&r>0?o=r:(n<0&&r<0||!r)&&(i<0&&i-n<=s.maxPrecision?o=i:r<=n&&!(i>0&&-n<=s.maxPrecision)&&(o=r)),o&&(f=this.abbreviations[o],e/=10**o)}if(r=Math.abs(e),t=s.temp,u=s.numericPattern,c=u.split(i)[1],\"I\"===this.type&&(e=Math.round(e)),o=e,c||\"#\"!==u.slice(-1)[0])if(r>=1e15||r>0&&r<=1e-14)e=r?r.toExponential(15).replace(/\\.?0+(?=e)/,\"\"):\"0\";else{const t=Number(e.toFixed(Math.min(20,c?c.length:0)).split(\".\")[0]);let n=u.split(i)[0];if(n+=i,e=Ln(n,t)||\"0\",c){const t=Math.max(0,Math.min(14,c.length)),n=c.replace(/#+$/,\"\").length;let o=(\"I\"===this.type?0:r%1).toFixed(t).slice(2).replace(/0+$/,\"\");for(l=o.length;l<n;l++)o+=\"0\";o&&(e+=i+o)}else 0===t&&(o=0)}else if(r>=10**t||r<1||r<1e-4)0===e?e=\"0\":r<1e-4||r>=1e20?(e=(e=o.toExponential(Math.max(1,Math.min(14,t))-1)).replace(/\\.?0+(?=e)/,\"\"),d=\"\"):(e=e.toPrecision(Math.max(1,Math.min(14,t)))).indexOf(\".\")>=0&&(e=(e=e.replace(e.indexOf(\"e\")<0?/0+$/:/\\.?0+(?=e)/,\"\")).replace(\".\",i));else{for(u+=i,t=Math.max(0,Math.min(20,t-Math.ceil(Math.log(r)/Math.log(10)))),l=0;l<t;l++)u+=\"#\";e=Ln(u,e)}e=e.replace(s.numericRegex,(e=>e===a?s.groupTemp:e===i?s.decTemp:\"\")),o<0&&!/^-/.test(e)&&(e=\"-\".concat(e))}return s.prefix+e+d+f+s.postfix}static getStaticFormatter(){return{prepare(){},formatValue:e=>\"\".concat(e)}}}function Xn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{size:n=5e3,multipleArguments:r=!1,toKey:o=(e=>e)}=t;let i,a,l=Object.create(null),u=Object.create(null),c=0,s=0;return i=r?function(){return a=o(...arguments),i.has(a)?i.get(a):i.set(a,e(...arguments))}:t=>(a=o(t),i.has(a)?i.get(a):i.set(a,e(t))),i.set=(e,t)=>(c>=n&&(delete l[u[s]],delete u[s],c--,s++),l[e]=t,u[c]=e,c++,t),i.get=e=>l[e],i.has=e=>e in l,i.clear=()=>{l=Object.create(null),u=Object.create(null),c=0,s=0},i.size=()=>c,i}function Zn(e,t,n,r,o){const i=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return new Wn(...t)}(o,e,t,n,r),a=Xn(i.formatValue.bind(i),{toKey:e=>isNaN(e)?e:+e});function l(e){return a(e)}return l.format=function(e,t,n,r){return a.clear(),i.format(t,e,n,r)},l.pattern=function(e){return e&&(a.clear(),i.pattern=e,i.prepare()),i.pattern},l}const Jn=\"D\",Qn=\"T\",er=\"TS\",tr=\"IV\",nr=[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",\"Sunday\"],rr=[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sun\"],or=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],ir=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];function ar(e,t){for(let n=e.length;n<t;n++)e=\"0\".concat(e);return e}function lr(e){let t=e.toString().split(\".\");return t[1]?(t=Number(\"0.\".concat(t[1])),t):0}function ur(e,t){let n,r=function(e){const t=e,n=24*lr(t),r=60*lr(n),o=60*lr(r),i=1e3*lr(o);return{d:Math.floor(t),h:Math.floor(n),m:Math.floor(r),s:Math.floor(o),f:Math.round(i)}}(e),o=r.d,i=r.h,a=r.m,l=r.s,u=r.f,c=0;/w+|t+/gi.test(t)&&(n=new Date(Date.UTC(1899,11,30+Math.floor(e),0,0,Math.round(86400*(e-Math.floor(e))))),isNaN(n.getTime())&&(n=null)),/D+/gi.test(t)||(i+=24*o),/h+/gi.test(t)||(a+=60*i),/m+/gi.test(t)||(l+=60*a),/w+/gi.test(t)&&(c=n?n.getDay()-1:0,c<0&&(c=6));let s=\"\";return n&&(s=n.getUTCHours()>=12?\"pm\":\"am\"),{year:0,month:0,day:c,date:o,h:i,m:a,s:l,f:u,t:s}}class cr{constructor(e,t,n){const r=e||{};if(r.qCalendarStrings||(r.qCalendarStrings={qLongDayNames:nr,qDayNames:rr,qLongMonthNames:or,qMonthNames:ir}),this.localeInfo=r,this.locale_days=r.qCalendarStrings.qLongDayNames.slice(),this.locale_days_abbr=r.qCalendarStrings.qDayNames.slice(),this.locale_months=r.qCalendarStrings.qLongMonthNames.slice(),this.locale_months_abbr=r.qCalendarStrings.qMonthNames.slice(),!t){t={[Qn]:r.qTimeFmt||\"hh:mm:ss\",[Jn]:r.qDateFmt||\"YYYY-MM-DD\",[er]:r.qTimestampFmt||\"YYYY-MM-DD hh:mm:ss\"}[n]}this.pattern=t}clone(){const e=new cr(this.localeInfo,this.pattern);return e.subtype=this.subtype,e}format(e,t){t||(t=this.pattern?this.pattern:\"YYYY-MM-DD hh:mm:ss\"),t=t.replace(/\\[.+]|\\[|]/g,\"\");const n=/t+/gi.test(t);let r;e instanceof Date?r=function(e,t){let n=e.getUTCHours(),r=e.getUTCDay()-1;return t&&(n%=12,n||(n=12)),r<0&&(r=6),{year:e.getUTCFullYear(),month:e.getUTCMonth(),day:r,date:e.getUTCDate(),h:n,m:e.getUTCMinutes(),s:e.getUTCSeconds(),f:e.getUTCMilliseconds(),t:e.getUTCHours()>=12?\"pm\":\"am\"}}(e,n):(e<0&&(e=-e,t=\"-\".concat(t)),r=ur(e,t));const o=(i=this,a=r,{\"Y+|y+\":{Y:\"\".concat(Number(\"\".concat(a.year).slice(-2))),YY:ar(\"\".concat(a.year).slice(-2),2),YYY:ar(\"\".concat(a.year).slice(-3),3),def:e=>ar(\"\".concat(a.year),e.length)},\"M+\":{M:a.month+1,MM:ar(\"\".concat(a.month+1),2),MMM:i.locale_months_abbr[a.month],def:i.locale_months[a.month]},\"W+|w+\":{W:a.day,WW:ar(\"\".concat(a.day),2),WWW:i.locale_days_abbr[a.day],def:i.locale_days[a.day]},\"D+|d+\":{D:a.date,def:e=>ar(\"\".concat(a.date),e.length)},\"h+|H+\":{h:a.h,def:e=>ar(\"\".concat(a.h),e.length)},\"m+\":{m:a.m,def:e=>ar(\"\".concat(a.m),e.length)},\"s+|S+\":{s:a.s,def:e=>ar(\"\".concat(a.s),e.length)},\"f+|F+\":{def(e){let t=\"\".concat(a.f),n=e.length-t.length;if(n>0)for(let e=0;e<n;e++)t+=\"0\";else n<0&&(t=t.slice(0,e.length));return t}},\"t{1,2}|T{1,2}\":{def(e){let t=a.t;return e[0].toUpperCase()===e[0]&&(t=t.toUpperCase()),t=t.slice(0,e.length),t}}});var i,a;const l=[];for(const e in o)Object.prototype.hasOwnProperty.call(o,e)&&l.push(e);const u=new RegExp(l.join(\"|\"),\"g\");return t.replace(u,(e=>{let t,n,r;for(n in o)if(Object.prototype.hasOwnProperty.call(o,n)&&(t=new RegExp(n),t.test(e)))break;if(!t)return\"\";for(const t in o[n])if(t===e||t.toLowerCase()===e){r=o[n][t],void 0===r&&(r=o[n][t.toLowerCase()]);break}return void 0===r&&(r=o[n].def),\"function\"==typeof r&&(r=r(e)),r}))}}function sr(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return new cr(...t)}function fr(e){return new Date(Date.UTC(1899,11,30+Math.floor(e),0,0,0,Math.round(864e5*(e-Math.floor(e)))))}function dr(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"TS\",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=sr(n,e,t),o=Xn(r.format.bind(r),{toKey:e=>\"object\"==typeof e&&\"function\"==typeof e.getTime?e.getTime():e});function i(e){return t!==tr?fr(e):e}function a(e){return e=i(e),o(e)}return a.format=function(e,t){return o.clear(),t=i(t),r.format(t,e)},a.locale=function(n){return r=sr(n,e,t),o=Xn(r.format.bind(r),{toKey:e=>\"object\"==typeof e?e.getTime():e}),this},a.qtype=function(e){return void 0!==e&&(t=e,o.clear()),t},a}function pr(e,t){if(e&&e.qNumFormat&&-1!==[\"D\",\"T\",\"TS\",\"IV\"].indexOf(e.qNumFormat.qType))return dr(e.qNumFormat.qFmt,e.qNumFormat.qType,t);let n=\"#\",r=t&&void 0!==t.qThousandSep?t.qThousandSep:\",\",o=t&&void 0!==t.qDecimalSep?t.qDecimalSep:\".\",i=\"U\",a=e&&!!e.qIsAutoFormat;return e&&e.qNumFormat?(n=e.qNumFormat.qFmt||n,r=e.qNumFormat.qThou||r,o=e.qNumFormat.qDec||o,i=e.qNumFormat.qType||i,a=a&&-1===[\"M\"].indexOf(e.qNumFormat.qType)):a=!0,(a||\"U\"===i)&&(n=\"#\".concat(o,\"##\"),i=\"U\"),Zn(n,r,o,i,t)}function hr(){let e,{meta:t,id:n,key:r,localeInfo:o,fieldExtractor:i,value:a,type:l,sourceField:u}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const c=a||(\"dimension\"===l?e=>null==e?void 0:e.qElemNo:e=>null==e?void 0:e.qValue),s=e=>(null==e?void 0:e.qText)||\"\",f=\"dimension\"===l?\"first\":\"avg\",d=pr(t,o),p=\"dimension\"===l?\"first\":(e,t)=>d(t),h={id:()=>n,key:()=>r,raw:()=>t,title:()=>t.qFallbackTitle||t.label,type:()=>l,origin:()=>u,items:()=>(e||(e=i(h)),e),min:()=>t.qMin,max:()=>t.qMax,value:c,label:s,reduce:f,reduceLabel:p,formatter:()=>d,tags:()=>t.qTags};return h}function mr(e,t,n,r,o){return(t[e]||[]).map(((t,i)=>{const a=\"\".concat(r?\"\".concat(r,\"/\"):\"\").concat(e,\"/\").concat(i),l={instance:hr($t({id:\"\".concat(n?\"\".concat(n,\"/\"):\"\").concat(a),key:a,meta:t},o))};return l.attrDims=mr(\"qAttrDimInfo\",t,n,a,$t({},o,{value:e=>null==e?void 0:e.qElemNo,type:\"dimension\"})),l.attrExps=mr(\"qAttrExprInfo\",t,n,a,$t({},o,{value:e=>null==e?void 0:e.qNum,type:\"measure\"})),l.measures=mr(\"qMeasureInfo\",t,n,a,$t({},o,{value:e=>null==e?void 0:e.qValue,type:\"measure\"})),l}))}function vr(){let{key:e,data:t,config:n={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const r={fields:[],wrappedFields:[],allFields:[],virtualFields:[]},o=t;if(!o)throw new Error('Missing \"data\" input');if(!o.qDimensionInfo)throw new Error('The \"data\" input is not recognized as a hypercube');const i=vr.util,a={cache:r,cube:o,localeInfo:n.localeInfo,fieldExtractor:null,pages:null,hierarchy:()=>null,virtualFields:n.virtualFields},l={key:()=>e,raw:()=>o,field:e=>vn(e,a),fields:()=>r.fields.slice(),extract:e=>a.extractor(e,l,r,i),hierarchy:e=>a.hierarchy(e,l,r,i),_cache:()=>r};\"K\"===o.qMode||\"T\"===o.qMode||!o.qMode&&o.qNodesOnDim?(a.extractor=En,a.hierarchy=On,a.pages=\"K\"===o.qMode?o.qStackedDataPages:o.qTreeDataPages):\"S\"===o.qMode?(a.extractor=Wt,a.pages=o.qDataPages,a.hierarchy=On):a.extractor=()=>[],a.fieldExtractor=e=>a.extractor({field:e},l,r,i);const u=\"S\"===o.qMode?e=>e.qElemNumber:void 0,c=\"S\"===o.qMode?e=>e.qNum:void 0;r.wrappedFields.push(...mr(\"qDimensionInfo\",o,e,\"\",$t({},a,{value:u,type:\"dimension\"}))),r.wrappedFields.push(...mr(\"qMeasureInfo\",o,e,\"\",$t({},a,{value:c,type:\"measure\"}))),r.fields=r.wrappedFields.map((e=>e.instance));const s=e=>{e.forEach((e=>{r.allFields.push(e.instance),s(e.measures),s(e.attrDims),s(e.attrExps)}))};return s(r.wrappedFields),(n.virtualFields||[]).forEach((t=>{const n=l.field(t.from),o=hr(Pt({meta:n.raw(),id:\"\".concat(e,\"/\").concat(t.key),sourceField:n,fieldExtractor:e=>a.extractor({field:e},l,r,i),key:t.key,type:n.type(),localeInfo:a.localeInfo,value:n.value},t.override||{}));r.virtualFields.push(o)})),r.allFields.push(...r.virtualFields),l}const yr=[[\"qHyperCube\",\"qHyperCubeDef\"],[\"qTreeData\",\"qTreeDataDef\"],[\"qDimensionInfo\",\"qDimensions\"],[\"qMeasureInfo\",\"qMeasures\"],[\"qAttrDimInfo\",\"qAttributeDimensions\"],[\"qAttrExprInfo\",\"qAttributeExpressions\"]],gr=/\\/qDimensionInfo(?:\\/(\\d+))?/,br=/\\/qMeasureInfo\\/(\\d+)/,xr=/\\/qAttrDimInfo\\/(\\d+)(?:\\/(\\d+))?/,qr=/\\/qAttrExprInfo\\/(\\d+)/,wr=/\\/?qHyperCube/,Mr=/\\/?qTreeData/,kr=e=>\"\".concat(e.substr(0,e.indexOf(\"/qHyperCubeDef\")+14)),Sr=e=>\"\".concat(e.substr(0,e.indexOf(\"/qTreeDataDef\")+13));function Cr(e,t){let n=e,r=-1,o=-1,i=\"\",a=e=>e;wr.test(e)?(i=\"\".concat(n.substr(0,n.indexOf(\"qHyperCube\")+10)),a=kr):Mr.test(e)&&(i=\"\".concat(n.substr(0,n.indexOf(\"qTreeData\")+9)),a=Sr);let l=!0;if(gr.test(e)&&(r=+gr.exec(e)[1]),br.test(e)&&(o=+br.exec(e)[1]),xr.test(e)){o=-1,r=0;const e=+xr.exec(n)[2];isNaN(e)||(r=e,n=n.replace(/\\/\\d+$/,\"\")),l=!1}if(qr.test(e)){const e=o;if(t){o=0;const a=pn(i,t);o+=(a.qMeasureInfo||[]).length,r>-1?(o=a.qDimensionInfo.slice(0,r).reduce(((e,t)=>e+t.qAttrExprInfo.length),o),r=-1):(o=a.qDimensionInfo.reduce(((e,t)=>e+t.qAttrExprInfo.length),o),o=a.qMeasureInfo.slice(0,e).reduce(((e,t)=>e+t.qAttrExprInfo.length),o)),o+=+qr.exec(n)[1]}else r>-1?(r=-1,o=+qr.exec(n)[1]):o+=+qr.exec(n)[1]+1}return yr.forEach((e=>{let[t,r]=e;n=n.replace(t,r)})),l&&(n=a(n)),n&&\"/\"!==n[0]&&(n=\"/\".concat(n)),{measureIdx:o,dimensionIdx:r,path:n}}function Dr(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;const r=t.byCells,o=t.primarySource,i=[],a={},l=e.isActive();let u=!1;if(e.brushes().forEach((e=>{const t=Cr(e.id,n);if(\"range\"===e.type&&t.measureIdx>-1&&t.dimensionIdx>-1){const n=e.brush.ranges();n.length&&(u=!0,a.multiRangeSelectTreeDataValues||(a.multiRangeSelectTreeDataValues={path:t.path,ranges:[]}),n.forEach((e=>a.multiRangeSelectTreeDataValues.ranges.push({qMeasureIx:t.measureIdx,qDimensionIx:t.dimensionIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!0}}))))}else{if(\"range\"===e.type&&t.measureIdx>-1){const n=e.brush.ranges();n.length&&(u=!0,a.rangeSelectHyperCubeValues||(a.rangeSelectHyperCubeValues={path:t.path,ranges:[]}),n.forEach((e=>a.rangeSelectHyperCubeValues.ranges.push({qMeasureIx:t.measureIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!0}}))))}if(\"range\"===e.type&&t.dimensionIdx>-1){const n=e.brush.ranges();n.length&&(u=!0,a.selectHyperCubeContinuousRange||(a.selectHyperCubeContinuousRange={path:t.path,ranges:[]}),n.forEach((e=>a.selectHyperCubeContinuousRange.ranges.push({qDimIx:t.dimensionIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!1}}))))}if(\"value\"===e.type&&t.dimensionIdx>-1)if(r)if(n&&n.qHyperCube&&(\"P\"===n.qHyperCube.qMode||\"T\"===n.qHyperCube.qMode||\"K\"===n.qHyperCube.qMode)){const r=n.qHyperCube,i=r.qNoOfLeftDims,l=r.qEffectiveInterColumnSortOrder.indexOf(t.dimensionIdx);if(a.selectPivotCells||(a.selectPivotCells={path:t.path,cells:[]}),e.id===o||!o){const n=e.brush.values().map((e=>+e)).filter((e=>!isNaN(e)));(0===i||l>=i)&&i>-1?n.forEach((e=>{a.selectPivotCells.cells.push({qType:\"T\",qCol:e,qRow:l-i})})):n.forEach((e=>{a.selectPivotCells.cells.push({qType:\"L\",qCol:t.dimensionIdx,qRow:e})})),u=!!a.selectPivotCells.cells.length}}else a.selectHyperCubeCells||(a.selectHyperCubeCells={path:t.path,cols:[]}),a.selectHyperCubeCells.cols.push(t.dimensionIdx),e.id!==o&&(o||a.selectHyperCubeCells.values)||(a.selectHyperCubeCells.values=e.brush.values().map((e=>+e)).filter((e=>!isNaN(e))),u=!!a.selectHyperCubeCells.values.length);else{const n=e.brush.values().map((e=>+e)).filter((e=>!isNaN(e)));u=!!n.length,i.push({params:[t.path,t.dimensionIdx,n,!1],method:\"selectHyperCubeValues\"})}}})),!u&&l)return[{method:\"resetMadeSelections\",params:[]}];var c;a.rangeSelectHyperCubeValues&&i.push({method:\"rangeSelectHyperCubeValues\",params:[a.rangeSelectHyperCubeValues.path,a.rangeSelectHyperCubeValues.ranges,[],null===(c=t.orMode)||void 0===c||c]});return a.selectHyperCubeContinuousRange&&i.push({method:\"selectHyperCubeContinuousRange\",params:[a.selectHyperCubeContinuousRange.path,a.selectHyperCubeContinuousRange.ranges]}),a.selectHyperCubeCells&&i.push({method:\"selectHyperCubeCells\",params:[a.selectHyperCubeCells.path,a.selectHyperCubeCells.values,a.selectHyperCubeCells.cols]}),a.selectPivotCells&&i.push({method:\"selectPivotCells\",params:[a.selectPivotCells.path,a.selectPivotCells.cells]}),a.multiRangeSelectTreeDataValues&&i.push({method:\"multiRangeSelectTreeDataValues\",params:[a.multiRangeSelectTreeDataValues.path,a.multiRangeSelectTreeDataValues.ranges]}),i}function Ir(e){vr.util=e.data(\"matrix\").util,e.data(\"q\",vr),e.formatter(\"q-number\",Zn),e.formatter(\"q-time\",dr)}function Or(e){var t=bt(e.layout||{},e.path.split(\"/\").join(\".\"));if(!t)return!1;var n=t.qIsOneAndOnlyOne;return void 0!==n&&n}function Er(e){var t,n,r,o=e.selections,i=e.picassoSelections,a=e.layout,l={lockedDimensions:[],singleSelectDimensions:[]};null!=o&&null!==(t=o.isModal)&&void 0!==t&&t.call(o)&&o.confirm(),i.layout(a);var u=(null!==(n=null==a?void 0:a.qHyperCube)&&void 0!==n?n:{}).qDimensionInfo,c=void 0===u?[]:u;return l.lockedDimensions=c.map((function(e){return!!e.qLocked})),l.singleSelectDimensions=c.map((function(e,t){return Or({layout:a,path:\"qHyperCube/qDimensionInfo/\".concat(t)})})),l.singleSelectIndex=function(e){var t,n=((null==e?void 0:e.qHyperCube)||{}).qDimensionInfo,r=void 0===n?[]:n;return null!==(t=r.map((function(e,t){var n;return!(e.qLocked||(null===(n=e.qCardinalities)||void 0===n?void 0:n.qHypercubeCardinal)<=1)&&t})).filter((function(e){return\"number\"==typeof e}))[0])&&void 0!==t?t:Math.max(r.length-1,0)}(a),l.canSelect=0===c.length||c.some((function(e){return!e.qLocked})),l.dimensionLocked=!(null===(r=c[0])||void 0===r||!r.qLocked),l}function Ar(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(null==e||!e.length)return!1;var t=e.filter((function(e){return\"object\"===r(e.data)&&Array.isArray(e.data.fields)})).every((function(e){return e.data.fields.every((function(e){var t=e.raw();return!(!t.qLocked&&t.qCardinal)}))}));return t}function Nr(e){var t=e.brush,n=e.colorField,r=e.legendAlias,o=e.useLegendCube,i=void 0!==o&&o;!n||/qAttrDimInfo/.test(n)?(t.removeKeyAlias(\"attrDim/qDimensionInfo/0\"),r&&t.removeKeyAlias(r),t.addKeyAlias(\"attrDim/qDimensionInfo/0\",\"qHyperCube/\".concat(n))):i&&t.addKeyAlias(r,\"qHyperCube/\".concat(n))}Ir.qBrushHelper=Dr,Ir.selections=Dr;var Lr=\"Enter\",Tr=\"Escape\",Pr=\"Esc\",jr=\"Shift\";function Fr(e){var t=e.brush,n=e.getConfig;return{interceptor:function(e){var r=t.brushes(),o=n(),i=o.allowSimultaneous,a=o.layout,l=void 0===a?{}:a;r.forEach((function(n){var r,o,a;(\"range\"===n.type||null!==(r=e[0])&&void 0!==r&&r.key&&(null===(o=e[0])||void 0===o?void 0:o.key)!==n.id&&0!==i.indexOf(null===(a=e[0])||void 0===a?void 0:a.key))&&t.clear([])}));var u=e.filter((function(e){return-2!==e.value}));if(u.length>1){var s=function(e){var t=e.layout,n=void 0===t?{}:t,r=e.values,o=void 0===r?[]:r;if(null==o||!o.length)return[];var i=Array.from(new Set(o.map((function(e){return e.key})))),a=[];return i.forEach((function(e){var t=Or({layout:n,path:e}),r=o.filter((function(t){return t.key===e})),i=t?[r.pop()]:r;a.push.apply(a,c(i))})),a.filter(Boolean)}({layout:l,values:u});return s}return u},rangeInterceptor:function(e){var r=t.brushes(),o=n().allowSimultaneous;return r.filter((function(e){return\"value\"===e.type})).length?(t.clear([]),e):(r.forEach((function(n){var r=n.id===e[0].key||o.includes(n.id)&&o.includes(e[0].key);\"range\"!==n.type||r||t.clear([])})),e)}}}var Hr=function e(t,n){return n[t]?e(t+1,n):t},Rr=function(e,t){var n=t.reduce((function(e,t){return e[t]=!0,e}),{});return e.reduce((function(e,t,r){var o=Hr(r,n);return n[o]=!0,e[r]=o,e}),{})};function zr(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.layout,n=e.filtered,r=void 0===n?{}:n,o=(null==t?void 0:t.qHyperCube)||{},i=o.qDimensionInfo,a=void 0===i?[]:i,l=o.qMeasureInfo,u=void 0===l?[]:l;return{dimensions:Rr(a,r.dimensions||[]),measures:Rr(u,r.measures||[])}}var Vr=\"selectHyperCubeValues\",_r=\"selectHyperCubeContinuousRange\";function Br(e){var t=e.selection,n=e.fieldMap,r=t.method,o=t.params;if(r===Vr){var i=n.dimensions[o[1]];void 0!==i&&(o[1]=i)}r===_r&&o[1].forEach((function(e){var t=n.dimensions[e.qDimIx];void 0!==t&&(e.qDimIx=t)}));return t}var Yr=[],$r=0,Ur=function(e){var t=Yr.filter((function(e){var t;return null===(t=e.selections)||void 0===t?void 0:t.isActive()}));t.length&&(e.key===Lr?t.forEach((function(e){return e.selections.confirm()})):e.key!==Tr&&e.key!==Pr||t.forEach((function(e){return e.selections.cancel()})))},Kr=function(){document.addEventListener(\"keyup\",Ur)},Gr=function(){document.removeEventListener(\"keyup\",Ur)},Wr=function(e,t){Object.keys(t).forEach((function(n){e.on(n,t[n])}))},Xr=function(e,t){Object.keys(t).forEach((function(n){e.removeListener(n,t[n])}))};function Zr(e,t,n){if(t&&void 0!==n&&\"selectHyperCubeContinuousRange\"===e.method){var r=e.params;if(r&&r[1]&&r[1][0]){var o=r[1][0],i=o.qDimIx,a=o.qRange;\"undefined\"!==i&&a&&!1===a.qMaxInclEq&&a.qMax>=n&&(a.qMaxInclEq=!0)}}}function Jr(e){var t=e.chart,n=e.document,r=e.selectionInfo,o=e.eventName,i=e.componentName,a=e.brushName,l=void 0===a?\"selection\":a,u=e.emit,c=void 0===u?\"rangeClear\":u,s=r.event===o,f=n.querySelector(\"[data-key='\".concat(i,\"-edge-0']\"));if(s||!f)return!1;var d=t.component(i);return!!d&&(d.emit(c),\"string\"==typeof l&&t.brush(l).clear(),d)}function Qr(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.eventName,i=void 0===o?\"discreteRange\":o,a=e.componentName,l=void 0===a?\"discrete-range-brush\":a,u=e.cleared;return Jr({selectionInfo:t,chart:n,document:r,eventName:void 0!==u&&u?void 0:i,componentName:l,emit:\"areaClear\",brushName:e.brushName})}function eo(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.eventName,i=void 0===o?\"continuousRange\":o,a=e.componentName,l=void 0===a?\"continuous-range-brush\":a,u=e.cleared;return Jr({selectionInfo:t,chart:n,document:r,eventName:void 0!==u&&u?void 0:i,componentName:l,brushName:e.brushName})}function to(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.componentName,i=void 0===o?\"minor-range-brush\":o,a=e.eventName,l=void 0===a?\"minorRange\":a,u=e.cleared,c=void 0!==u&&u,s=e.brushName,f=Jr({selectionInfo:t,chart:n,document:r,eventName:c?void 0:l,componentName:i,brushName:void 0!==s&&s});if(f){var d=f.settings.settings,p=d.scale,h=d.brush,m=n.scale(p).data().fields.map((function(e){return e.id()})),v=n.brush(h),y=v.brushes().filter((function(e){return\"range\"===e.type&&m.some((function(t){return t===e.id}))}));v&&y.length&&y.forEach((function(e){v.removeRanges(e.brush.ranges().map((function(t){return{key:e.id,range:t}})))}))}}function no(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.selections,i=e.eventName,a=void 0===i?\"xAxis\":i,l=e.cleared;Jr({selectionInfo:t,chart:n,document:r,eventName:void 0!==l&&l?void 0:a,componentName:\"\".concat(a,\"-range-brush\"),emit:\"areaClear\",brushName:!1})&&o.clear()}function ro(e){var t=e.chart,n=e.selectionInfo,r=e.selections,o=e.events,i=void 0===o?[\"tap\"]:o,a=e.brushNames,l=void 0===a?[]:a;if(n&&i.includes(n.event)){var u=n.currentComponent;n.previousComponent!==u&&(r.clear(),l.forEach((function(e){return t.brush(e).end()})))}}function oo(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.selections,i=e.eventName,a=void 0===i?\"legendRange\":i,l=e.componentName,u=void 0===l?\"legend-range-brush\":l,c=e.cleared,s=void 0!==c&&c,f=e.brushName;Jr({selectionInfo:t,chart:n,document:r,eventName:s?void 0:a,componentName:u,brushName:void 0!==f&&f})&&o.clear()}var io=[\"chart\",\"document\",\"selections\",\"selectionInfo\"],ao=function(e){e.chart,e.document,e.selections,e.selectionInfo;var t=l(e,io);t.clearDiscrete(),t.clearContinuous(),t.clearMinor(),t.clearRange(),t.clearTap(),t.clearLegend()};function lo(e){var n=e.selectionEvents,r=e.selections,o=e.selectionInfo,i=e.clear,a=e.chart,l=e.document,u=n.start,c={selections:r,selectionInfo:o,chart:a,document:l},s=function(e){return Object.assign(o,e||{})},f=function(e){var n=e.event,r=e.components;return function(){return function(e){var n=e.selectionInfo,r=void 0===n?{}:n,o=e.setSelectionInfo,i=e.clear,a=e.event,l=e.components,u=void 0===l?[]:l;o(t(t({},r),{},{event:a,components:u.map((function(e){return e.key})).filter(Boolean)})),i()}({event:n,components:r,clear:i,chart:a,selectionInfo:o,setSelectionInfo:s})}};return\"function\"==typeof u?function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];u(t(t({defaultFunc:f({event:e,components:n}),setSelectionInfo:s,clear:i},c),{},{event:e,components:n}))}:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];f({event:e,components:t})()}}function uo(e){var t,n=e.lasso;null!=n&&null!==(t=n.active)&&void 0!==t&&t.call(n)&&(null==n||n.action(!1))}function co(e){var n,r=e.chart,o=e.selectionInfo,i=e.selectionActions,a=e.actions,l=void 0===a?{}:a,c=e.selections,s=e.selectionEvents;if(!1===i||!1===s)return function(){};var f=i.reset,d=void 0===f?uo:f,p=i.clear,h=!1!==p&&function(e){var n=e.clear,r=void 0===n?ao:n,o=e.selections,i=e.selectionInfo,a=e.chart;return function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).cleared,n={selections:o,selectionInfo:i,chart:a,document:document,cleared:e};return r(t({clearDiscrete:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Qr(t(t({},n),e))},clearContinuous:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return eo(t(t({},n),e))},clearMinor:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return to(t(t({},n),e))},clearRange:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return no(t(t({},n),e))},clearTap:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ro(t(t({},n),e))},clearLegend:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return oo(t(t({},n),e))}},n))}}({clear:p,selections:c,selectionInfo:o,chart:r}),m=function(e){var t=e.chart,n=e.actions,r=e.reset,o=e.clear,i=!1,a={deactivated:function(e){var t=(n||{}).lasso;r({e:e,lasso:void 0!==t&&t})},canceled:function(e){var i=(n||{}).lasso;r({e:e,lasso:void 0!==i&&i}),o({e:e,chart:t,document:document})},cleared:function(e){i||(i=!0,o({e:e,chart:t,document:document,cleared:!0}),i=!1)}};return!1===r&&delete a.deactivated,!1===o&&delete a.cleared,!1===r&&!1===o&&delete a.canceled,a}({chart:r,clear:h,reset:d,actions:l}),v={};Object.entries(m).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];v[n]=function(e,t){return t?function(n){return t({event:n,defaultFunc:e})}:e}(r,s[n])}));var y=lo({selectionEvents:s,selections:c,selectionInfo:o,clear:h,chart:r,document:document});return null==l||null===(n=l.select)||void 0===n||n.on(\"start\",y),Object.entries(v).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];null==c||c.on(n,r)})),function(){var e;null==l||null===(e=l.select)||void 0===e||e.removeListener(\"start\",y),Object.entries(v).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];null==c||c.removeListener(n,r)}))}}function so(e){var t=e.chart,n=e.selectionActions,r=e.brush,o=e.actions,i=e.selectionInfo,a=e.selections,l=e.selectionEvents,c=function(e){var t=e.brush,n=e.chart,r=e.selectionInfo,o=e.brushEvents,i=void 0===o?{}:o,a=Object.entries(i).map((function(e){var o=u(e,2),i=o[0],a=o[1],l=function(){return a({chart:n,selectionInfo:r})};return t.on(i,l),[i,l]}));return function(){a.forEach((function(e){var n=u(e,2),r=n[0],o=n[1];t.removeListener(r,o)}))}}({brush:r,chart:t,selectionInfo:i,brushEvents:e.brushEvents}),s=co({chart:t,selectionInfo:i,selectionActions:n,actions:o,selections:a,selectionEvents:l}),f=function(e){var t=e.actions;if(null==t||!t.lasso)return function(){};var n=!1,r=function(e){n||e.key!==jr||(t.lasso.action(!0),n=!0)},o=function(e){e.key===jr&&(t.lasso.action(!1),n=!1)};return document.addEventListener(\"keydown\",r),document.addEventListener(\"keyup\",o),function(){document.removeEventListener(\"keydown\",r),document.removeEventListener(\"keyup\",o)}}({actions:o});return function(){c(),s(),f()}}var fo=[{key:\"qHyperCube/qDimensionInfo/0:numeric\",includeMax:!1}];function po(e){var t=e.chart,n=e.actions,r=e.selections,o=e.picassoQ,i=e.config,a=i.allowSimultaneous,l=void 0!==a&&a,s=i.majorScale,f=void 0===s?void 0:s,d=i.selectionActions,p=void 0===d?{}:d,h=p.clear,m=p.reset,v=i.selectionEvents,y=void 0===v?{deactivated:void 0,canceled:void 0,cleared:void 0,start:void 0}:v,g=i.brushEvents,b=void 0===g?{}:g,x=i.brushName,q=void 0===x?\"selection\":x,w=i.brushMaxListeners,M=void 0===w?20:w,k=i.brushRanges,S=void 0!==k&&k,C=i.interceptors,D=void 0===C?{}:C,I=i.selectionsFn,O=void 0===I?o.selections:I,E=t.brush(q);if(\"number\"==typeof M&&E.setMaxListeners(M),S){var A=!0===S?fo:S;E.configure({ranges:A})}var N={canSelect:!0,getIsSelectionLocked:!1,isInnerDimensionLocked:!1,lockedDimensions:[],singleSelectIndex:0,selectionInfo:{colorField:void 0,components:[],event:void 0,currentComponent:void 0,previousComponent:void 0}},L=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.selections,r=t.brush,o=t.majorScale,i=t.actions,a=t.selectionsFn,l=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).path,u=void 0===l?\"/qHyperCubeDef\":l;if(!n)return{layout:function(){},filteredFields:function(){},allowSimultaneous:function(){},release:function(){}};var c=++$r,s=null,f={dimensions:[],measures:[]},d=[],p={};n.on=n.on.bind(n),n.isActive=n.isActive.bind(n),n.addListener=n.addListener.bind(n),n.removeListener=n.removeListener.bind(n);var h=Fr({brush:r,getConfig:function(){return{layout:s,allowSimultaneous:d}}}),m=h.rangeInterceptor,v=h.interceptor;r.intercept(\"set-ranges\",m),r.intercept(\"toggle-ranges\",m),r.intercept(\"toggle-values\",v),r.intercept(\"set-values\",v),r.intercept(\"add-values\",v),r.on(\"start\",(function(){return n.begin(u)}));var y={activate:function(){},deactivated:function(){return r.end()},cleared:function(){return r.clear()},canceled:function(){return r.end()}};Wr(n,y);var g=null==o||null===(e=o.max)||void 0===e?void 0:e.call(o);return null!=i&&i.select?(i.select.on(\"start\",(function(){var e;r.start(),\"function\"==typeof i.select.getBrushOptions&&(p=(e=i.select).getBrushOptions.apply(e,arguments))})),i.select.on(\"end\",(function(){var e=a(r,p,s),t=zr({layout:s,filtered:f});e.forEach((function(e){var r=Br({selection:e,fieldMap:t});Zr(r,i.select.brushSelectionIncludeMax,g),n.select(r)}))}))):r.on(\"update\",(function(){var e=a(r,p,s),t=zr({layout:s,filtered:f});e.forEach((function(e){n.select(Br({selection:e,fieldMap:t}))}))})),0===Yr.length&&Kr(),Yr.push({key:c,selections:n}),{layout:function(e){s=e},filteredFields:function(e){f=e},allowSimultaneous:function(e){d=e},release:function(){s=null;var e=Yr.indexOf(Yr.filter((function(e){return e.key===c}))[0]);-1!==e&&Yr.splice(e,1),Yr.length||Gr(),Xr(n,y)}}}({brush:E,majorScale:f,actions:n,selections:r,picassoQ:o,selectionsFn:O});!function(e){var t=e.brush,n=e.interceptors,r=void 0===n?{}:n;Object.entries(r).forEach((function(e){var n=u(e,2),r=n[0],o=n[1];(Array.isArray(o)?o:[o]).forEach((function(e){t.intercept(r,e)}))}))}({brush:E,interceptors:D});var T=so({chart:t,brush:E,actions:n,selections:r,selectionInfo:N.selectionInfo,selectionActions:{clear:h,reset:m},selectionEvents:y,brushEvents:b});if(l){var P=!0===l?c(Array(15)).map((function(e,t){return\"qHyperCube/qMeasureInfo/\".concat(t)})):l;L.allowSimultaneous(P)}return{unbindEvents:T,state:N,picassoSelections:L,brush:E}}var ho=[\"colorField\",\"useLegendCube\"];function mo(e){var n=e.chart,r=e.selections,o=e.actions,i=void 0!==o&&o,a=e.config,u=void 0===a?{}:a,c=po({chart:n,actions:i,selections:r,picassoQ:Ir,config:u}),s=c.unbindEvents,f=c.state,d=c.picassoSelections,p=c.brush,h=u.custom,m=void 0===h?{}:h,v=u.legendAlias,y=void 0===v?void 0:v,g=u.setBrushAliases,b=void 0===g?Nr:g;return{getIsDimensionLocked:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return f.lockedDimensions[e]},getIsSelectionLocked:function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return null!==(e=null==r||null===(t=r.isLocked)||void 0===t?void 0:t.call(r))&&void 0!==e?e:Ar(n)},getIsSingleSelect:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f.singleSelectIndex;return f.singleSelectDimensions[e]},getCanSelect:function(){return f.canSelect},getSelectionInfo:function(){return f.selectionInfo},setLayout:function(e){var t=Er({selections:r,picassoSelections:d,layout:e});Object.assign(f,t)},setFilteredFields:function(e){d.filteredFields(e)},setBrushAliases:function(e){var n=e.colorField,r=e.useLegendCube,o=void 0!==r&&r,i=l(e,ho),a=t({useLegendCube:o,colorField:n,brush:p,legendAlias:y},i);b(t(t({},a),{},{defaultFunc:function(){return Nr(a)}}))},destroy:function(){s(),d.release()},custom:t({},m)}}var vo=\"'Source Sans Pro', 'Arial', 'sans-serif'\",yo=\"#333333\",go=\"#595959\",bo=\"#737373\",xo=\"#cccccc\",qo=\"#e6e6e6\";function wo(e){var t={};return[].concat(c(e),c([[\"\",\"\",\"color\"],[\"object\",\"\",\"fontFamily\"],[\"object\",\"axis.label.name\",\"color\",go],[\"object\",\"axis.label.name\",\"fontFamily\",vo],[\"object\",\"axis.label.name\",\"fontSize\",\"12px\"],[\"object\",\"axis.line.major\",\"color\",xo],[\"object\",\"axis.line.minor\",\"color\",qo],[\"object\",\"axis.title\",\"color\"],[\"object\",\"axis.title\",\"fontFamily\",vo],[\"object\",\"axis.title\",\"fontSize\",\"13px\"],[\"object\",\"grid.line.highContrast\",\"color\",qo],[\"object\",\"grid.line.major\",\"color\",xo],[\"object\",\"grid.line.minor\",\"color\",qo],[\"object\",\"label.value\",\"color\",go],[\"object\",\"label.value\",\"fontFamily\",vo],[\"object\",\"label.value\",\"fontSize\",\"12px\"],[!1,\"label.value\",\"darkColor\",go],[!1,\"label.value\",\"lightColor\",qo],[\"object\",\"outOfRange\",\"color\",\"#999\"],[\"object\",\"legend.title\",\"color\",yo],[\"object\",\"legend.title\",\"fontFamily\",vo],[\"object\",\"legend.title\",\"fontSize\",\"15px\"],[\"object\",\"legend.label\",\"color\",go],[\"object\",\"legend.label\",\"fontFamily\",vo],[\"object\",\"legend.label\",\"fontSize\",\"13px\"],[\"object\",\"referenceLine.label.name\",\"color\",yo],[\"object\",\"referenceLine.label.name\",\"fontFamily\",vo],[\"object\",\"referenceLine.label.name\",\"fontSize\",\"12px\"],[\"object\",\"referenceLine.outOfBounds\",\"color\",qo],[\"object\",\"referenceLine.outOfBounds\",\"fontFamily\",vo],[\"object\",\"referenceLine.outOfBounds\",\"fontSize\",\"12px\"],[\"object\",\"referenceLine.outOfBounds\",\"backgroundColor\",bo,function(e){return\"transparent\"===e?bo:e}]])).reduce((function(e,n){var r=\"\".concat(n[0],\"-\").concat(n[1],\"-\").concat(n[2],\"}\");return t[r]||(t[r]=!0,e.push(n)),e}),[]).sort((function(e,t){return(e[0].split?e[0].split(\".\").length:0)-(t[0].split?t[0].split(\".\").length:0)}))}var Mo=function(e){return e};function ko(e){var t=e.theme,n=e.id,r=e.transform,o=e.extend,i=e.matrix,a={},l=r.reduce((function(e,t){var n=u(t,2),r=n[0],o=n[1];return e[r]=o,e}),{});return i.forEach((function(e){var r=u(e,5),o=r[0],i=r[1],c=r[2],s=r[3],f=r[4],d=void 0===f?function(e){return e}:f,p=function(e){var t=e.theme,n=e.base,r=e.path,o=e.attribute,i=e.defaultValue,a=void 0===i?void 0:i;if(!t||!1===n)return a;var l=t.getStyle(n,r,o);return void 0===l?a:l}({theme:t,base:\"object\"===o&&n?\"\".concat(\"object\",\".\").concat(n):o,path:i,attribute:c,defaultValue:s}),h=(l[\"\".concat(i,\".\").concat(c)]||Mo)(d(p));qt(a,[i,c].filter(Boolean).join(\".\"),h)})),o.forEach((function(e){var t=u(e,2),n=t[0],r=t[1];qt(a,n,r)})),a}function So(e){var t=e.theme,n=e.config,r=void 0===n?{}:n,o=r.id,i=r.resolve,a=void 0===i?[]:i,l=r.transform,u=void 0===l?[]:l,c=r.extend,s=void 0===c?[]:c,f={theme:t,matrix:wo(a),styles:void 0};return f.styles=ko({theme:t,id:o,transform:u,extend:s,matrix:f.matrix}),{getStyles:function(){return f.styles},getTheme:function(){return f.theme},setTheme:function(e){f.theme=e,f.styles=ko({theme:e,id:o,transform:u,extend:s,matrix:f.matrix})}}}var Co={NOOP:function(){},FALSE:function(){return!1},ARRAY:function(){return[]},OBJECT:function(){return{}}};var Do=\"chart-modules-tooltip\",Io=\"#\".concat(Do);function Oo(){if(!document.querySelector(Io)){var e=document.createElement(\"div\");e.id=Do,e.style.overflow=\"hidden\",e.style.position=\"fixed\",e.style.pointerEvents=\"none\",e.style.left=\"0px\",e.style.top=\"0px\",e.style.width=\"100%\",e.style.height=\"100%\",e.style.zIndex=1020,document.body.appendChild(e)}}function Eo(e){return{show:!0,key:e.key,type:\"tooltip\",layout:{displayOrder:3},beforeMount:function(){Oo()},beforeUpdate:function(){Oo()},destroyed:function(){var e;null!=(e=document.querySelector(Io))&&e.parentElement&&e.childElementCount<1&&e.parentElement.removeChild(e)},settings:{appendTo:function(){return document.querySelector(Io)},direction:e.rtl?\"rtl\":\"ltr\",duration:e.duration},style:{arrow:{color:\"#404040\"},content:{display:\"table\",\"border-spacing\":\"4px\",background:\"rgba(64, 64, 64, 0.9)\",opacity:\"1\",fontSize:\"13px\",fontFamily:\"'Source Sans Pro', 'Arial', 'sans-serif'\",\"empty-cells\":\"show\"},cell:{\"max-width\":\"180px\",\"word-break\":\"break-word\",\"word-wrap\":\"break-word\",\"overflow-wrap\":\"break-word\",hyphens:\"auto\"}}}}var Ao=\"position\";var No={bar:\"rect\",diamond:\"path\",point:\"circle\",square:\"rect\",triangle:\"path\",\"n-polygon\":\"path\",slice:\"path\"},Lo=function(e){return e.data.value},To=function(e){var t,n=e.data;return null==n||null===(t=n.major)||void 0===t?void 0:t.value};function Po(e){var t=e.chart,n=e.expando,r=e.nodes,o=e.collectConfig,i=e.collectibles,a=e.meta,l=o.from,s={chart:t,expando:n,nodes:r,collectConfig:o,collectibles:i,meta:a};switch(\"function\"==typeof l?\"custom\":l){case\"single\":return function(e){var t=u(e.nodes,1)[0];return[\"container\"===t.type&&t.children[0]||t]}(s);case\"position\":return function(e){var t=e.chart,n=e.collectibles,r=e.meta;return t.shapesAt(r.position.absolute,{components:n.map((function(e){return{key:e.key}}))})}(s);case\"dimension\":return function(e){var t=e.chart,n=e.nodes,r=e.collectConfig,o=e.collectibles,i=u(n,1)[0],a=r.filter,l=\"function\"==typeof a?a:function(){return!0},s=r.by,f=void 0===s?Lo:s;return o.reduce((function(e,n){var r=n.major,o=void 0===r?To:r,a=No[n.type]||n.type;return e.push.apply(e,c(t.findShapes(a).filter((function(e){return e.key===n.key&&e.data&&o({data:e.data})===f({data:i.data})})))),e}),[]).filter(l)}(s);case\"radius\":return function(e){var t=e.chart,n=e.nodes,r=e.collectConfig,o=e.collectibles,i=e.meta,a=u(n,1)[0].localBounds,l=r.distance,c=r.filter,s=\"function\"==typeof c?c:function(){return!0},f=o.map((function(e){return e.key}));return t.shapesAt({cx:i.position.absolute.x,cy:i.position.absolute.y,r:l||Math.max(a.width,a.height)},{components:f.map((function(e){return{key:e}}))}).filter(s)}(s);case\"custom\":return function(e){var t=e.chart,n=e.expando,r=e.nodes,o=e.collectConfig,i=e.meta;return o.from({chart:t,expando:n,nodes:r,meta:i})}(s);default:return[]}}var jo=Number.MAX_VALUE;function Fo(e){var t=e.nodes.reduce((function(e,t){var n=t.bounds;return e.xMin=Math.min(e.xMin,n.x,n.x+n.width),e.yMin=Math.min(e.yMin,n.y,n.y+n.height),e.xMax=Math.max(e.xMax,n.x,n.x+n.width),e.yMax=Math.max(e.yMax,n.y,n.y+n.height),e}),{xMin:jo,xMax:-jo,yMin:jo,yMax:-jo}),n=t.xMin,r=t.xMax,o=t.yMin;return{x:n,y:o,width:r-n,height:t.yMax-o}}function Ho(e){var t=e.chart,n=e.config,r=e.expando,o=e.placementConfig,i=e.hovered,a=e.collected,l=e.meta,s=function(e){for(var t=e.chart,n=e.config,r=e.expando,o=e.placementConfig,i=e.hovered,a=e.collected,l=e.meta,s=u(i,1)[0],f=Array.isArray(o)?o:[o],d={bounds:s.bounds,key:s.key},p=Fo({nodes:a}),h=0;h<f.length;h++){var m=f[h];if(\"function\"==typeof m){var v=m({chart:t,expando:r,hovered:i,collected:c(a),meta:l,collectedBounds:p,combineBounds:Fo});if(v)return v}if(\"trigger\"===m)return d;if(\"collectible\"===m){var y=n.main.placements.collectible;return{bounds:\"function\"==typeof y?y({collected:c(a)}):p,key:a[0].key}}}return d}({chart:t,config:n,expando:r,placementConfig:o,hovered:i,collected:a,meta:l}),f=s.bounds,d=s.key,p=u(a,1)[0].desc;return[{bounds:f,nodes:a,data:a.map((function(e){return e.data})),key:d,meta:l,desc:p}]}function Ro(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.nodes;if(!i.length)return[];var a=u(i,1)[0].key,l=n.main.collectibles;if(!l.length)return[];var c=n.main.triggers.find((function(e){return-1!==e.keys.indexOf(a)}))||{},s=c.collect,f=c.placement;if(!s||!s.from||!f)return[];var d={triggerer:a,position:o.get(Ao)},p=(Po({chart:t,expando:r,nodes:i,collectConfig:s,collectibles:l,meta:d})||[]).map((function(e){return e.children.length?e.children[0]:e}));return p.length?Ho({chart:t,config:n,expando:r,placementConfig:f,hovered:i,collected:p,meta:d}):[]}var zo=\"[־׀׃׆א-״߀-ߪߴ-ߵߺ-ࠕࠚࠤࠨ࠰-ࡘ࡞‏יִײַ-ﬨשׁ-ﭏ]\",Vo=\"[؈؋؍؛-ي٭-ٯٱ-ەۥ-ۦۮ-ۯۺ-܍ܐܒ-ܯݍ-ޥޱﭐ-ﴽﵐ-﷼ﹰ-ﻼ]\",_o=new RegExp(\"[A-Za-zªµºÀ-ÖØ-öø-ʸʻ-ˁː-ˑˠ-ˤˮͰ-ͳͶ-ͽΆΈ-ϵϷ-҂Ҋ-։ः-हऻऽ-ीॉ-ौॎ-ॐक़-ॡ।-ॿং-হঽ-ীে-ৌৎ-ৡ০-ৱ৴-৺ਃ-ਹਾ-ੀਖ਼-੯ੲ-ੴઃ-હઽ-ીૉ-ૌૐ-ૡ૦-૯ଂ-ହଽ-ାୀେ-ୌୗ-ୡ୦-୷ஃ-ிு-ௌௐ-௲ఁ-ఽు-ౄౘ-ౡ౦-౯౿-ಹಽ-ೋೕ-ೡ೦-ീെ-ൌൎ-ൡ൦-ෆා-ෑෘ-ะา-ำเ-ๆ๏-ະາ-ຳຽ-ໆ໐-༗༚-༴༶༸༾-ཬཿ྅ྈ-ྌ྾-࿅࿇-ာေးျ-ြဿ-ၗၚ-ၝၡ-ၰၵ-ႁႃ-ႄႇ-ႌႎ-ႜ႞-ፚ፠-ᎏᎠ-Ᏼᐁ-ᙿᚁ-ᚚᚠ-ᜑᜠ-ᜱ᜵-ᝑᝠ-ᝰក-ាើ-ៅះ-ៈ។-៚ៜ០-៩᠐-ᢨᢪ-ᤜᤣ-ᤦᤩ-ᤱᤳ-ᤸ᥆-᧚ᨀ-ᨖᨙ-ᩕᩗᩡᩣ-ᩤᩭ-ᩲ᪀-᪭ᬄ-ᬳᬵᬻᬽ-ᭁᭃ-᭪᭴-᭼ᮂ-ᮡᮦ-ᮧ᮪-ᯥᯧᯪ-ᯬᯮ᯲-ᰫᰴ-ᰵ᰻-᱿᳓᳡ᳩ-ᳬᳮ-ᶿḀ-ᾼιῂ-ῌῐ-Ίῠ-Ῥῲ-ῼ‎ⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎ-⅏Ⅰ-ↈ⌶-⍺⎕⒜-ⓩ⚬⠀-⣿Ⰰ-ⳤⳫ-ⳮⴀ-⵰ⶀ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ㆺㇰ-㈜㈠-㉏㉠-㉻㉿-㊰㋀-㋋㋐-㍶㍻-㏝㏠-㏾㐀-䶵一-ꒌꓐ-ꘌꘐ-ꙮꚀ-ꛯ꛲-꛷Ꜣ-ꞇ꞉-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠤꠧ꠰-꠷ꡀ-ꡳꢀ-ꣃ꣎-꣙ꣲ-ꤥ꤮-ꥆꥒ-ꥼꦃ-ꦲꦴ-ꦵꦺ-ꦻꦽ-ꨨꨯ-ꨰꨳ-ꨴꩀ-ꩂꩄ-ꩋꩍ-ꪯꪱꪵ-ꪶꪹ-ꪽꫀꫂ-ꯤꯦ-ꯧꯩ-꯬꯰-ﬗA-Za-zヲ-ᅵ]\"),Bo=new RegExp(zo),Yo=new RegExp(Vo),$o=function(e){return _o.test(e)},Uo=function(e){return Bo.test(e)||Yo.test(e)};function Ko(e){for(var t=e?e.length:0,n=0;n<t;n++){var r=e[n];if($o(r))return\"ltr\";if(Uo(r))return\"rtl\"}return\"ltr\"}function Go(e){var n=e.visibility;return{type:\"divider\",content:[{content:\"\",style:{\"background-image\":\"linear-gradient(transparent 8px, rgba(255, 255, 255, 0.4) 8px, rgba(255, 255, 255, 0.4) 9.2px, transparent 9.2px)\",height:\"17px\"},colspan:2}],visibility:t(t({},{count:!1}),n)}}function Wo(e){var n=e.config,r=e.h,o=e.context,i=e.nodes,a=e.property,l=e.filter,c=e.visibility,s=e.fillColor,f=n.rtl,d={type:\"color\",label:void 0,value:void 0,content:[],filter:l,visibility:t(t({},{count:!0}),c)},p=n.getColorSettings();if(\"color\"===p.type||!p.fieldType)return d;var h=u(i,1)[0];if(d.value=function(e){var t=e.config,n=e.context,r=e.property,o=e.node,i=o.data[r];if(i){if(-3===o.data.value)return o.data.label;var a=n.resources.dataset(i.source.key).field(i.source.field).formatter(),l=i.value,u=i.label,c=t.getColorSettings();if(a&&\"measure\"===c.fieldType)return Number.isNaN(+l)?\"-\":a(i.value);var s=u||l;return void 0===s||Number.isNaN(s)||\"NaN\"===s?\"-\":s}}({config:n,context:o,property:a,node:h}),void 0===d.value)return d;d.label=function(e){var t=e.config,n=e.context,r=e.property,o=e.node,i=t.getColorSettings();if(i.label)return i.label;var a=o.data[r];if(a&&\"color\"!==i.type){var l=n.resources.dataset,u=a.source,c=u.key,s=u.field;return l(c).field(s).title()}}({config:n,context:o,property:a,node:h});var m=null!=s?s:function(e){var t=e.node.attrs;return(null==t?void 0:t.fill)||\"#ddd\"}({node:h}),v=r(\"div\",{style:{display:\"inline-block\",width:10,height:10,\"background-color\":m,margin:\"0 8px\"}});return d.content.push({content:f?[\":\",d.label]:[d.label,\":\"],style:{\"text-align\":f?\"right\":\"left\",direction:Ko(d.label)}},{content:f?[d.value,v]:[v,d.value],style:{\"text-align\":f?\"left\":\"right\",\"vertical-align\":\"middle\",direction:Ko(d.value)}}),d}function Xo(e){var n=e.config,r=e.h,o=e.context,i={section:function(e){return function(e){return{type:\"section\",content:e.content}}({content:e.content})},text:function(e){var r=e.value,o=e.style,i=e.visibility;return function(e){var n=e.config,r=e.value,o=e.style,i=void 0===o?{}:o,a=i.bold,l=void 0!==a&&a,u=i.italic,c=void 0!==u&&u,s=e.visibility;return{type:\"text\",content:[{content:r,style:{\"font-weight\":l?\"bold\":\"normal\",\"font-style\":c?\"italic\":\"normal\",\"text-align\":n.rtl?\"right\":\"left\",direction:Ko(r)},colspan:2}],visibility:t(t({},{count:!0}),s)}}({config:n,value:r,style:o,visibility:i})},measure:function(e){var o=e.label,i=e.value,a=e.color,l=e.style,u=e.survive,c=e.visibility;return function(e){var n,r,o,i,a=e.config,l=e.h,u=e.label,c=e.value,s=e.color,f=e.style,d=e.survive,p=e.visibility,h=a.rtl,m=l(\"div\",{style:{display:\"inline-block\",width:10,height:10,\"background-color\":s,margin:\"0 8px\"}});return{type:\"measure\",label:u,value:c,content:[{content:h?[\":\",u]:[u,\":\"],style:{\"text-align\":h?\"right\":\"left\",\"font-weight\":null!=f&&null!==(n=f.label)&&void 0!==n&&n.bold?\"bold\":\"normal\",\"font-style\":null!=f&&null!==(r=f.label)&&void 0!==r&&r.italic?\"italic\":\"normal\",direction:Ko(u)}},{content:s?h?[c,m]:[m,c]:c,style:{\"text-align\":h?\"left\":\"right\",\"vertical-align\":\"middle\",\"font-weight\":null!=f&&null!==(o=f.value)&&void 0!==o&&o.bold?\"bold\":\"normal\",\"font-style\":null!=f&&null!==(i=f.value)&&void 0!==i&&i.italic?\"italic\":\"normal\",direction:Ko(c)}}],survive:t(t({},{color:!1,duplicate:!1}),d),visibility:t(t({},{count:!0}),p)}}({config:n,h:r,label:o,value:i,color:a,style:l,survive:u,visibility:c})},divider:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.visibility;return Go({visibility:t})},row:function(e){return function(e){var n=e.content,r=e.style,o=e.colspan,i=e.visibility;return{type:\"row\",content:[{content:n,style:r,colspan:o}],visibility:t(t({},{count:!0}),i)}}({content:e.content,style:e.style,colspan:e.colspan,visibility:e.visibility})},raw:function(e){return function(e){var n=e.value,r=e.visibility;return{type:\"raw\",content:n,visibility:t(t({},{count:!0}),r)}}({value:e.value,visibility:e.visibility})},color:function(e){var t=e.nodes,i=e.property,a=e.filter,l=void 0===a||a,u=e.visibility,c=e.fillColor;return Wo({config:n,h:r,context:o,nodes:t,property:i,filter:l,visibility:u,fillColor:c})}};return i}function Zo(e){var t=e.translator,n=e.config,r=e.context,o=e.templates,i=n.main.layout,a=i.rows,l=i.grouping,u=i.single,c=function(e){var t=e.limit,n=e.grouping,r=e.single,o={count:0,overflow:0,index:{started:void 0,group:void 0}};return{process:function(e){var i=e.visibility,a=e.index;if(r&&0!==a)return n?(o.index.started!==a&&o.index.group!==a&&(o.overflow++,o.index.group=a),!1):(o.overflow++,!1);if(o.count>=t){if(!n)return o.overflow++,!1;if(o.index.started!==a)return o.index.group!==a&&(o.overflow++,o.index.group=a),!1}return i.count&&o.count++,n&&(o.index.started=a),!0},overflow:function(){return o.overflow}}}({limit:a,grouping:l,single:\"function\"==typeof u?u({meta:r.node.meta,sections:o}):u}),s=o.reduce((function(e,t,n){var r=t.type,i=t.content;\"section\"===r&&(void 0===i?[]:i).forEach((function(t){c.process({visibility:t.visibility,index:n})&&e.push(t.content)}));var a=n===o.length-1;return\"divider\"!==r||a||c.process({visibility:t.visibility,index:n})&&e.push(t.content),e}),[]).filter((function(e){return e.length})),f=c.overflow();return f&&s.push(function(e){var t=e.translator,n=e.config,r=e.count,o=t?t.get(\"Object.ChartTooltip.NMore\",r):\"+\".concat(r,\" more\"),i=Ko(o);return[{content:o,style:{\"font-weight\":\"bold\",\"text-align\":n.rtl?\"right\":\"left\",direction:i},colspan:2}]}({translator:t,config:n,count:f})),s}function Jo(e){var n=e.chart,r=e.translator,o=e.config,i=e.expando,a=e.h,l=e.data,s=e.style,f=u(l,1)[0],d=function(e){var t=e.config,n=e.nodes.reduce((function(e,n){var r=t.main.getGroupByValue({data:n.data});return e[r]||(e[r]={sorting:Object.keys(e).length,items:[]}),e[r].items.push(n),e}),{});return Object.keys(n).map((function(e){return n[e]})).sort((function(e,t){return e.sorting-t.sorting})).map((function(e){return e.items}))}({config:o,nodes:f.node.nodes}),p=function(e){var t=e.chart,n=e.config,r=e.expando,o=e.h,i=e.context,a=e.groups,l=i.node.meta,u=i.resources,s=u.dataset,f=u.formatter,d=Xo({config:n,h:o,context:i}),p=function(e){var t=e.dataset;return{dataset:{title:function(e,n){return t(e).field(n).title()}}}}({dataset:s}),h=a.map((function(e){var t=d.section({content:c((n.main.section({expando:r,h:o,nodes:e,dataset:s,formatter:f,meta:l,create:d,util:p})||[]).filter((function(e){var t;return null===(t=e.content)||void 0===t?void 0:t.length}))).filter(Boolean)});return t.content=function(e){var t=e.config,n=e.content,r=n.find((function(e){return\"color\"===e.type&&e.filter})),o=r?n.filter((function(e){return\"measure\"!==e.type||e.survive.color||e.label!==r.label||e.value!==r.value})):n;return t.main.showDuplicateMeasures?o:o.reduce((function(e,t){var n=t.type,r=t.survive;if(\"measure\"!==n||r.duplicate)return e.filtered.push(t),e;var o=\"\".concat(t.label,\"-\").concat(t.value);return e.memory[o]||(e.memory[o]=!0,e.filtered.push(t)),e}),{memory:{},filtered:[]}).filtered}({config:n,content:t.content}),t}));return n.main.sections({chart:t,expando:r,h:o,nodes:i.node.nodes,dataset:s,formatter:f,meta:l,create:d,util:p,sections:h}),h.filter(Boolean)}({chart:n,config:o,expando:i,h:a,context:f,groups:d}),h=Zo({translator:r,config:o,h:a,context:f,templates:p});return h.length?function(e){var n=e.h,r=e.style;return e.rows.map((function(e){return n(\"tr\",{},e.map((function(e){var o={style:t(t({},r.cell||{}),e.style||{}),class:e.class};return e.colspan&&(o.colspan=e.colspan),n(\"td\",o,e.content)})))}))}({h:a,style:s,rows:h}):function(e){var t=e.h;return t(\"tr\",{},t(\"td\",{style:{fontStyle:\"italic\",opacity:.75}},\"Empty\"))}({h:a})}function Qo(e){var t=e.chart,n=e.translator,r=e.config,o=e.expando,i=e.internal;if(!r.main.key)return!1;var a=wt(),l=Eo({key:r.main.key,rtl:r.rtl,duration:r.duration}),u=r.main.events.tooltip,c=u.afterShow,s=u.afterHide,f=function(){var e=a.get(\"collected\");return{expando:o,nodes:e.nodes,meta:e.meta}};return w(!0,l,{settings:{filter:function(e){return Ro({chart:t,config:r,expando:o,internal:i,nodes:e})},extract:function(e){return a.set(\"collected\",e.node),e},content:function(e){var i=e.h,a=e.data,l=e.style;return Jo({chart:t,translator:n,config:r,expando:o,h:i,data:a,style:l})},placement:function(e){var t=e.nodes;return r.main.placement({meta:t[0].meta})},afterShow:function(){return c(f())},afterHide:function(){return s(f())}},style:{arrow:{color:r.style.background},content:r.style}})}function ei(e){var n=e.config,r=n.legend.keys;if(!r.tooltip||!r.component)return!1;if(\"categorical\"!==n.getColorSettings().type)return!1;var o=Eo({key:r.tooltip,rtl:n.rtl,duration:n.duration});return w(!0,o,{settings:{filter:function(e){return e.filter((function(e){return e.data&&e.key===r.component}))},extract:function(e){return e},content:function(e){var n=e.h,r=e.data;return[n(\"tr\",{},[n(\"td\",{style:t(t({},e.style.cell||{}),{\"font-weight\":\"bold\",\"text-align\":\"left\"}),colspan:2},r[0].node.data.label)])]},placement:\"pointer\"},style:{arrow:{color:n.style.background},content:n.style}})}function ti(e){var t=e.config.main.triggers.reduce((function(e,t){return t.keys.forEach((function(n){var r=t.distance||0;e.distance[n]=r,e.distances.includes(r)||e.distances.push(r),e.key[n]=!0,e.keys[r]||(e.keys[r]=[]),e.keys[r].push(n)})),e}),{distance:{},distances:[],key:{},keys:{}});return function(e){return e.components.filter((function(e){return t.key[e.key]})).reduce((function(e,n){e.any=!0,e.components.push(n.key);var r=t.distance[n.key];return 0===r?e.position.push(n.key):(e.distances.includes(r)||(e.distances.push(r),e.distanceKeys[r]=[]),e.distanceKeys[r].push(n.key)),e}),{any:!1,components:[],position:[],distances:[],distanceKeys:{}})}}var ni=function(){return!0};function ri(e){var t=e.config.main.triggers.reduce((function(e,t){var n=t.filter;return t.keys.forEach((function(t){e[t]=\"function\"==typeof n?n:ni})),e}),{});return function(e){var n=t[e.key];return!n||n(e)}}function oi(e){var t=e.chart,n=e.event,r=e.component,o={absolute:{x:0,y:0},relative:{x:0,y:0}},i=t.element.getBoundingClientRect(),a=i.left,l=i.top;o.absolute.x=(void 0===n.clientX?Math.floor(n.srcEvent.clientX):n.clientX)-a,o.absolute.y=(void 0===n.clientY?Math.floor(n.srcEvent.clientY):n.clientY)-l;var u=t.component(r);if(u){var c=u.rect.computedInner;o.relative.x=o.absolute.x-c.x,o.relative.y=o.absolute.y-c.y}return o}function ii(e){var t=e.chart,n=e.filter,r=e.hits,o=e.position,i=[];if(r.position.length&&i.push.apply(i,c(t.shapesAt(o.absolute,{components:r.position.map((function(e){return{key:e}}))}).filter(n))),!i.length&&r.distances.length){var a=[];r.distances.forEach((function(e){a.push.apply(a,c(t.shapesAt({cx:o.absolute.x,cy:o.absolute.y,r:e},{components:r.distanceKeys[e].map((function(e){return{key:e}}))}).filter(n)))})),a.length&&i.push(function(e){var t=e.nodes,n=e.origin,r=t.find((function(e){return\"path\"===e.type}));if(r)return r;var o=function(e){var t=Math.abs(n.x-(e.localBounds.x+e.localBounds.width/2)),r=Math.abs(n.y-(e.localBounds.y+e.localBounds.height/2));return Math.sqrt(t*t+r*r)};return t.slice(1).reduce((function(e,t){var n=o(t);return n<e.distance&&(e.distance=n,e.node=t),e}),{node:t[0],distance:o(t[0])}).node}({nodes:a,origin:o.relative}))}return i}function ai(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.facade,l=n.delay.tap,s=ti({config:n}),f=ri({config:n}),d=n.main.triggers.reduce((function(e,t){return e.push.apply(e,c(t.keys)),e}),[]);return{key:\"event:\".concat(\"tooltipTap\"),type:\"Tap\",options:{event:\"tooltipTap\",enable:function(e,r){return!r||!!n.enable({event:r})&&t.componentsFromPoint({x:r.center.x,y:r.center.y}).filter((function(e){return-1!==d.indexOf(e.key)})).length>0}},recognizeWith:\"tap\",events:a({},\"tooltipTap\",(function(e){if(e.preventDefault(),\"mouse\"!==e.pointerType&&!n.main.suppress({event:e})){var a=t.component(n.main.key);if(a&&a.show){var c=t.componentsFromPoint({x:e.center.x,y:e.center.y}),d=s({components:c});if(d.any){var p=u(d.components,1)[0],h=oi({chart:t,event:e,component:p});o.set(Ao,h);var m=ii({chart:t,filter:f,hits:d,position:h});if(m.length){var v=m[0].key;n.main.events.tooltip.beforeShow({expando:r,event:e,collectNodes:function(){return i.collectNodes({nodes:m})},meta:{triggerer:v,position:h}}).then((function(){a.emit(\"show\",e,{nodes:m,delay:l})})).catch((function(){}))}else a.emit(\"hide\")}else a.emit(\"hide\")}}}))}}function li(e){var t=e.config,n=e.expando,r=e.internal,o=e.facade,i=t.main.events.tooltip.beforeShow,a=t.delay.hover,l={ongoing:{},latest:void 0};return function(e){var t=e.event,u=e.tooltip,c=e.nodes,s=function(e){var t=e.nodes;return JSON.stringify(t.map((function(e){var t;return{key:e.key,bounds:e.bounds,value:null===(t=e.data)||void 0===t?void 0:t.value}})))}({nodes:c});if(!l.ongoing[s]){l.ongoing[s]=!0,l.latest=s;var f=c[0].key;i({expando:n,event:t,collectNodes:function(){return o.collectNodes({nodes:c})},meta:{triggerer:f,position:r.get(Ao)}}).then((function(){s===l.latest&&u.emit(\"show\",t,{nodes:c,delay:a})})).catch((function(){u.emit(\"show\")})).finally((function(){delete l.ongoing[s],s===l.latest&&(l.latest=void 0)}))}}}function ui(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.facade,a=ti({config:n}),l=ri({config:n}),c=li({config:n,expando:r,internal:o,facade:i}),s=[n.main.key,n.legend.keys.tooltip].filter(Boolean),f=function(){s.forEach((function(e){var n=t.component(e);null!=n&&n.show&&n.emit(\"hide\")}))};return{type:\"native\",events:{mousemove:function(e){if(n.enable({event:e})&&!n.main.suppress({event:e})){var r=t.componentsFromPoint({x:e.clientX,y:e.clientY}),i=t.component(n.main.key);if(i&&i.show){var s=a({components:r});if(s.any){var f=u(s.components,1)[0],d=oi({chart:t,event:e,component:f});o.set(Ao,d);var p=ii({chart:t,filter:l,hits:s,position:d});if(!p.length)return void i.emit(\"hide\");c({event:e,tooltip:i,nodes:p})}else i.emit(\"hide\")}var h=n.legend;if(h.keys.tooltip&&h.keys.component){var m=t.component(h.keys.tooltip);m&&m.show&&(r.some((function(e){return e.key===h.keys.component}))?m.emit(\"show\",e):m.emit(\"hide\"))}}},mouseup:function(e){2===e.button&&f()},mouseleave:function(){n.main.events.interaction.mouseleave({expando:r}),f()},wheel:function(){f()}}}}function ci(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=function(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal;return{collectNodes:function(e){var i=e.nodes,a=u(Ro({chart:t,config:n,expando:r,internal:o,nodes:i}),1)[0];return(void 0===a?{nodes:[]}:a).nodes}}}({chart:t,config:n,expando:r,internal:o});return{gestures:[ai({chart:t,config:n,expando:r,internal:o,facade:i})],native:ui({chart:t,config:n,expando:r,internal:o,facade:i})}}function si(e){var t=e.chart,n=e.translator,r=function(e){var t=e.config;return w(!0,{},{rtl:!1,enable:Co.FALSE,getColorSettings:Co.OBJECT,style:{fontSize:void 0,fontFamily:void 0,color:void 0,background:void 0},delay:{hover:500,tap:0},duration:8e3,main:{key:void 0,suppress:Co.FALSE,getGroupByValue:Co.NOOP,collectibles:[],triggers:[],placement:function(){return{type:\"bounds\"}},placements:{collectible:\"combine\"},showDuplicateMeasures:!1,layout:{rows:7,grouping:!1,single:!1},section:Co.ARRAY,sections:Co.NOOP,events:{tooltip:{beforeShow:function(){return Promise.resolve()},afterShow:Co.NOOP,afterHide:Co.NOOP},interaction:{mouseleave:Co.NOOP}}},legend:{keys:{tooltip:void 0,component:void 0}}},void 0===t?{}:t)}({config:e.config}),o=wt(),i=wt(),a={components:void 0,interactions:void 0};return{getComponents:function(){return a.components||(a.components=function(e){var t=e.chart,n=e.translator,r=e.config;return[Qo({chart:t,translator:n,config:r,expando:e.expando,internal:e.internal}),ei({config:r})].filter(Boolean)}({chart:t,translator:n,config:r,expando:o,internal:i})),a.components},getInteractions:function(){return a.interactions||(a.interactions=ci({chart:t,config:r,expando:o,internal:i})),a.interactions},expando:o}}var fi=\"AVERAGE\",di=\"LINEAR\",pi=\"POLYNOMIAL2\",hi=\"POLYNOMIAL3\",mi=\"POLYNOMIAL4\",vi=\"EXPONENTIAL\",yi=\"LOG\",gi=\"POWER\";function bi(e){var t=e.dimValue,n=e.value,r=e.qTrendLine,o=r.qType,i=r.qCoeff,a={x:t,y:i[2]*Math.pow(n,2)+i[1]*n+i[0]};switch(o){case pi:return a;case hi:return a.y+=i[3]*Math.pow(n,3),a;case mi:return a.y+=i[4]*Math.pow(n,4)+i[3]*Math.pow(n,3),a;default:return a}}var xi={average:function(e){return{x:e.dimValue,y:e.qTrendLine.qCoeff[0]}},linear:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:r.qCoeff[1]*n+r.qCoeff[0]}},polynomial2:bi,polynomial3:bi,polynomial4:bi,exponential:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:Math.exp(r.qCoeff[0]+n*r.qCoeff[1])}},log:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:r.qCoeff[1]+r.qCoeff[0]*Math.log(n)}},power:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:Math.pow(10,r.qCoeff[0]+r.qCoeff[1]*Math.log(n)*Math.LOG10E)}}};function qi(e,t){for(var n=xi[t.qType.toLowerCase()],r=Math.max(1,e/500),o=1/0,i=-1/0,a=0;a<e;a+=r){var l=n({dimValue:null,value:a+1,qTrendLine:t}).y;o=Math.min(l,o),i=Math.max(l,i)}return{min:o,max:i}}function wi(e){return xi[e.qType.toLowerCase()]}function Mi(e,t){return e.meta.isContinuous?function(e,t){return{generate:function(e,n,r){var o=[],i=wi(e),a=t({qTrendLine:e,measureIndex:r}),l=a.min,u=a.max,c=(u-l)/100;if(c>0){for(var s=function(t){var a=i({dimValue:t,value:t,qTrendLine:e});if(a.layerId=n,a.measureIndex=r,a.dimValue=t,e.flipXY){var l=a.x;a.x=a.y,a.y=l,a.dimValue=a.x}o.push(a)},f=l,d=l;d<=u;d+=c)s(d),f=d;f!==u&&s(u)}return o},calculate:function(e,t){return wi(e)({dimValue:t,value:t,qTrendLine:e})},findMinMax:function(e,t){var n=this.generate(t).map((function(e){return e.y}));return{min:Math.min.apply(Math,c(n)),max:Math.max.apply(Math,c(n))}}}}(0,t):e.meta.mode.K?function(e){return{generate:function(t,n,r){for(var o=[],i=e.getDataPages()[0],a=i.qData[0].qSubNodes,l=i.qArea.qTop,u=xi[t.qType.toLowerCase()],c=0;c<a.length;c++){var s=a[c],f=u({dimValue:s.qElemNo,value:c+l+1,qTrendLine:t});f.layerId=n,f.measureIndex=r,f.dimValue=s.qText,o.push(f)}return o},findMinMax:qi}}(e):function(e){return{generate:function(t,n,r){for(var o=[],i=e.getDataPages()[0],a=i.qMatrix,l=i.qArea.qTop,u=xi[t.qType.toLowerCase()],c=0;c<a.length;c++){var s=a[c][0],f=c+l+1,d=u({dimValue:s.qElemNumber,value:f,qTrendLine:t});d.layerId=n,d.measureIndex=r,d.dimValue=s.qText,o.push(d)}return o},calculate:function(e,t,n){return(0,xi[e.qType.toLowerCase()])({dimValue:n,value:t,qTrendLine:e})},findMinMax:qi}}(e)}var ki={TYPES:{AVERAGE:\"properties.trendlines.types.average\",LINEAR:\"properties.trendlines.types.linear\",POLYNOMIAL2:\"properties.trendlines.types.polynomial2\",POLYNOMIAL3:\"properties.trendlines.types.polynomial3\",POLYNOMIAL4:\"properties.trendlines.types.polynomial4\",EXPONENTIAL:\"properties.trendlines.types.exponential\",LOG:\"properties.trendlines.types.logarithmic\",POWER:\"properties.trendlines.types.power\"},STYLE:{DASHED:\"properties.trendlines.style.dashed\"},TYPE:\"properties.trendlines.type\",HEADER:\"properties.trendlines\",ADD_BUTTON:\"properties.trendlines.button.add\"},Si={color:\"#f93f17\",index:9},Ci={x:NaN,y:NaN,dimValue:NaN,layerId:NaN,measureIndex:NaN},Di=function(e){var t=e.layoutService,n=e.getMinMax,r=e.colorModel,o=e.chart,i=e.translator,a=e.keys.colorScale,l=e.isEnabled,u=void 0===l?function(){return!0}:l,s=[Ci],f=[],d=[],p=Mi(t,n);t.getLayoutValue(\"qHyperCube.qMeasureInfo\",[]).forEach((function(e,t){Array.isArray(e.qTrendLines)&&(f.push.apply(f,c(e.qTrendLines)),d.push.apply(d,c(e.qTrendLines.map((function(){return t})))))}));var h=Mt((function(e){var t=(f[e]||{}).style,n=r.settings();if(t.autoColor){if(\"measure\"===n.mode){var i=d[e],l=o.scale(a)(i);return function(e){return xe(e).l<70}(l)?function(e){var t=xe(e);return t.l<30?t.l+=15:t.l<50?t.l+=10:t.l+=5,t.toString()}(l):function(e){var t=xe(e);return t.l-=5,t.toString()}(l)}return r.resolveUIColor(Si)}return t.paletteColor?r.resolveUIColor(t.paletteColor):\"none\"}));return{query:{hasTrendLines:function(){return!!f.length&&u()},getData:function(){return s},getStroke:h,getLineDash:function(e){return(f[e]||{}).style.lineDash},getLabel:function(e){return(f[e]||{}).label},getExpression:function(e){var t=(f[e]||{}).qExpression;return f[e].flipXY&&(t=t.replace(/[xy]/g,(function(e){return\"x\"===e?\"y\":\"x\"}))),t},isFlipped:function(e){return f[e].flipXY},getType:function(e){var t=(f[e]||{}).qType;return i.get(ki.TYPES[t])},getMinMax:function(){var e=1/0,n=-1/0;return f.forEach((function(r){var o=p.findMinMax(t.meta.size.y,r);e=Math.min(o.min,e),n=Math.max(o.max,n)})),{min:e,max:n}},getCalculatedValue:function(e,t,n){var r=f[e];return p.calculate(r,t,n)}},command:{update:function(){s.length=0,f.forEach((function(e,t){var n=p.generate(e,t,d[t]);s.push.apply(s,c(n))}))}}}},Ii={source:\"trend\",extract:{field:\"x\",props:{minor:{field:\"y\"},layer:{field:\"layerId\"},measureIndex:{field:\"measureIndex\"},dimValue:{field:\"dimValue\"}}}},Oi=function(e){var t=e.meta;return t.isContinuous?function(e){return(0,e.scale)(e.datum.value)}:t.isGroupedByMeasure?function(e){var t=e.scale,n=e.datum;return t([n.value,n.measureIndex.value])+t.bandwidth()/2}:function(e){var t=e.scale;return t(e.datum.value)+t.bandwidth()/2}},Ei=function(e,t){var n=t.animations,r=t.layoutService,o=t.trendLineModel,i=t.orientation;if(!o.query.hasTrendLines())return[];var a=function(e,t){var n=e.trendlines,r=e.majorScale,o=e.minorScale,i=t.animations,a=t.trendLineModel,l=t.layoutService,u=t.orientation,c=Oi(l);return{key:n,type:\"line\",layout:{dock:\"center\"},data:Ii,animations:i,settings:{connect:!0,orientation:u,coordinates:{major:{scale:r,fn:c},minor:{scale:o},layerId:{ref:\"layer\"}},layers:{curve:\"monotone\",line:{strokeWidth:2,stroke:function(e){var t=e.datum;return a.query.getStroke(t.layer.value)},strokeDasharray:function(e){var t=e.datum;return a.query.getLineDash(t.layer.value)}}}}}}(e,{animations:n,trendLineModel:o,layoutService:r,orientation:i}),l=[a];if(e.tooltipOverlay){var u=function(e,t){var n=e.majorScale,r=e.minorScale,o=e.tooltipOverlay,i=t.layoutService,a=\"horizontal\"===t.orientation,l={scale:n,fn:Oi(i)},u={scale:r,ref:\"minor\"};return{key:o,type:\"point\",layout:{dock:\"center\"},data:Ii,settings:{x:a?l:u,y:a?u:l,opacity:0,size:1,sizeLimits:{maxPx:8,minPx:8}}}}(e,{layoutService:r,orientation:i});l.push(u)}return l},Ai=function(e){e.style.dashed?e.style.lineDash=\"8, 4\":e.style.lineDash=\"\"},Ni=function(e){Ai(e),e.qMultiDimMode=\"Sum\",e.qXColIx=0};function Li(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Ti(e){return Math.pow(e.x,2)+Math.pow(e.y,2)}function Pi(e,t,n){var r=Li(n,e),o=Li(t,e),i=Ti(o);if(0===i)return e;var a,l,u,c,s=(l=o,((a=r).x*l.x+a.y*l.y)/i);return s<=0?e:s>=1?t:function(e,t){return{x:e.x+t.x,y:e.y+t.y}}(e,(c=s,{x:(u=o).x*c,y:u.y*c}))}function ji(e){var t,n,r=e.keys,o=e.model,i=e.chart,a=e.pos,l=e.lineNode,u=o,c=i.component(r.trendlines),s=i.scale(r.majorScale),f=i.scale(r.minorScale),d=l.data.layer.value,p=function(e,t){var n=1/0,r=null;if(1===e.length)return e[0];for(var o=0;o<e.length-1;++o){var i=Pi(e[o],e[o+1],t),a=Ti(Li(i,t));a<n&&(n=a,r=i)}return r}(l.data.points.map((function(e){return{x:s(e.dimValue.value)*c.rect.computed.width,y:f(e.minor.value)*c.rect.computed.height}})),a);return u.query.isFlipped(d)?(n=f.invert(p.y/c.rect.computed.height),t=u.query.getCalculatedValue(d,n).y,p.x=s(t)*c.rect.computed.width):(t=s.invert(p.x/c.rect.computed.width),n=u.query.getCalculatedValue(d,t).y,p.y=f(n)*c.rect.computed.height),{key:l.key,children:[],data:{layer:d,x:t,y:n},bounds:{x:p.x,y:p.y,width:0,height:0}}}function Fi(e){var t=e.animations,n=e.chart,r=e.colorService,o=e.isEnabled,i=e.keys,a=void 0===i?{}:i,l=e.layoutService,u=e.orientation,c=e.translator,s=e.getMinMax;a.trendlines||(a.trendlines=\"trend-lines\");var f=Di({layoutService:l,getMinMax:s,colorModel:{settings:function(){return r.getSettings()},resolveUIColor:function(e){return r.getPaletteColor(e)}},chart:n,translator:c,keys:a,isEnabled:o});return{getComponents:function(){return Ei(a,{animations:t,layoutService:l,trendLineModel:f,orientation:u})},getData:function(){return f.query.hasTrendLines()?[{key:\"trend\",data:f.query.getData()}]:[]},collectNodes:function(e){var t=e.nodes,r=e.meta;return function(e){var t=e.keys,n=e.model,r=e.chart,o=e.nodes,i=e.meta;return o.length?[ji({keys:t,model:n,chart:r,pos:i.position.relative,lineNode:o[0]})]:[]}({keys:a,model:f,chart:n,nodes:t,meta:r})},getModel:function(){return f},update:function(){return f.command.update()}}}Fi.propertyPanelProperties=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.translator,n=function(e){var n=r(e.label);return\"string\"===n&&e.label?e.label:\"object\"===n?e.label.qStringExpression?e.label.qStringExpression.qExpr:e.label.qValueExpression.qExpr:t.get(ki.TYPES[e.qType])};return{type:\"array\",ref:\"qTrendLines\",titleTranslation:ki.HEADER,itemTitleRef:n,max:8,allowAdd:!0,allowRemove:!0,allowMove:!1,addTranslation:ki.ADD_BUTTON,add:Ni,items:{label:{ref:\"label\",type:\"string\",expression:\"optional\",translation:\"Common.Label\",defaultValue:\"\"},type:{ref:\"qType\",type:\"string\",component:\"dropdown\",translation:ki.TYPE,options:[{value:fi,translation:ki.TYPES.AVERAGE},{value:di,translation:ki.TYPES.LINEAR},{value:pi,translation:ki.TYPES.POLYNOMIAL2},{value:hi,translation:ki.TYPES.POLYNOMIAL3},{value:mi,translation:ki.TYPES.POLYNOMIAL4},{value:vi,translation:ki.TYPES.EXPONENTIAL},{value:yi,translation:ki.TYPES.LOG},{value:gi,translation:ki.TYPES.POWER}],defaultValue:fi},autoColor:{ref:\"style.autoColor\",type:\"boolean\",translation:\"properties.colors\",component:\"switch\",defaultValue:!0,options:[{value:!0,translation:\"Common.Auto\"},{value:!1,translation:\"Common.Custom\"}]},paletteColor:{ref:\"style.paletteColor\",translation:\"properties.color\",type:\"object\",component:\"color-picker\",dualOutput:!0,defaultValue:Si,show:function(e){return!e.style.autoColor}},dashed:{ref:\"style.dashed\",translation:ki.STYLE.DASHED,type:\"boolean\",defaultValue:!0,change:Ai}}}};var Hi=[\"American Typewriter, serif\",\"Andalé Mono, monospace\",\"Arial Black, sans-serif\",\"Arial, sans-serif\",\"Bradley Hand, cursive\",\"Brush Script MT, cursive\",\"Comic Sans MS, cursive\",\"Courier, monospace\",\"Didot, serif\",\"Georgia, serif\",\"Impact, sans-serif\",\"Lucida Console, monospace\",\"Luminari, fantasy\",\"Monaco, monospace\",\"QlikView Sans, sans-serif\",\"Source Sans Pro, sans-serif\",\"Tahoma, sans-serif\",\"Times New Roman, serif\",\"Trebuchet MS, sans-serif\",\"Verdana, sans-serif\"],Ri=[\"Abril Fatface, serif\",\"Bangers, fantasy\",\"EB Garamond, serif\",\"Fredoka One, fantasy\",\"Graduate, fantasy\",\"Gravitas One, serif\",\"Nixie One, sans-serif\",\"Noto Sans, sans-serif\",\"PT Serif, serif\",\"Permanent Marker, fantasy\",\"Rammetto One, fantasy\",\"Roboto, sans-serif\",\"QlikView Sans, sans-serif\",\"Source Sans Pro, sans-serif\",\"Titan One, fantasy\",\"Open Sans, sans-serif\",\"Montserrat, sans-serif\",\"Raleway, sans-serif\",\"Bebas Neue, sans serif\",\"Lobster, fantasy\",\"Pacifico, cursive\",\"Inter, sans-serif\",\"Indie Flower, fantasy\",\"Yanone Kaffeesatz, sans-serif\"];var zi=function(e){return{value:e,label:e.charAt(0).toUpperCase()+e.slice(1),groupHeader:!1,disabled:!1}};function Vi(e){var t=e.theme,n=e.translator,r=e.defaultValue,o=e.flags,i=[],a=t.getStyle(\"\",\"\",\"fontFamilies\");return Array.isArray(a)&&a.length?i.push.apply(i,c(new Set([r].concat(c(a.map((function(e){return e.split(\",\").map((function(e){return e.trim()})).map((function(e){return e.replace(/\\s+/g,\" \").trim()})).filter(Boolean).join(\", \")}))))))):i.push(r),[{value:\"ThemeHeader\",label:n.get(\"properties.themeFonts\"),metaText:n.get(\"properties.theme\"),groupHeader:!0}].concat(c(i.map((function(e){return zi(e)}))),[{value:\"DefaultHeader\",label:n.get(\"properties.allFonts\"),metaText:n.get(\"properties.default\"),groupHeader:!0}],c(function(e){return null!=e&&e.isEnabled(\"PS_20852_WYSIWYG_FONT_SUPPORT\")?Ri:Hi}(o).map((function(e){return zi(e)}))))}function _i(e){var t=e.theme,n=e.translator,r=e.id,o=e.path,i=e.flags,a=function(){return t.getStyle(r,o,\"fontFamily\")};return{getDefaultValue:function(){return a()},getOptions:function(){return Vi({theme:t,translator:n,defaultValue:a(),flags:i})}}}var Bi=[\"10px\",\"11px\",\"12px\",\"13px\",\"14px\",\"15px\",\"16px\",\"17px\",\"18px\",\"19px\",\"20px\",\"21px\",\"22px\",\"23px\",\"24px\"],Yi=function(e){return{value:e,label:e,groupHeader:!1,disabled:!1}};function $i(e){var t=e.theme,n=e.translator,r=e.id,o=e.path,i=function(){return t.getStyle(r,o,\"fontSize\")};return{getDefaultValue:function(){return i()},getOptions:function(){return function(e){var t=e.theme,n=e.translator,r=e.defaultValue,o=[],i=t.getStyle(\"\",\"\",\"fontSizes\");return Array.isArray(i)&&i.length?o.push.apply(o,c(new Set([r].concat(c(i))))):o.push(r),[{value:\"ThemeHeader\",label:n.get(\"properties.themeFontSizes\"),metaText:n.get(\"properties.theme\"),groupHeader:!0}].concat(c(o.map((function(e){return Yi(e)}))),[{value:\"DefaultHeader\",label:n.get(\"properties.allFontSizes\"),metaText:n.get(\"properties.default\"),groupHeader:!0}],c(Bi.map((function(e){return Yi(e)}))))}({theme:t,translator:n,defaultValue:i()})}}}function Ui(e){var t=e.theme,n=e.translator,r=e.id,o=e.path;return{fontFamily:_i({theme:t,translator:n,id:r,path:o,flags:e.flags}),fontSize:$i({theme:t,translator:n,id:r,path:o})}}function Ki(e){var t=e.theme,n=e.translator,r=e.config,o=void 0===r?{}:r,i=e.flags,a=function(e){var t=e.config,n=void 0===t?{}:t,r=n.id,o=n.paths;return{id:void 0===r?\"object\":\"\".concat(\"object\",\".\").concat(r),paths:Array.isArray(o)?o:[]}}({config:o}),l=a.id,u=a.paths,c={};u.forEach((function(e){for(var r=e.split(\".\"),o=c,a=0;a<r.length;a++){var u=r[a];a===r.length-1?o[u]=Ui({theme:t,translator:n,id:l,path:e,flags:i}):void 0===o[u]&&(o[u]={}),o=o[u]}}));var s=function(e){for(var t=e.split(\".\"),n=c,r=0;r<t.length;r++){var o=t[r];if(void 0===n[o])throw new Error(\"font-resolver: Path '\".concat(e,\"' could not be resolved.\"));n=n[o]}return n};return c.getDefaultValue=function(e){return s(e).getDefaultValue()},c.getOptions=function(e){return s(e).getOptions()},c}export{wt as cache,ut as colorService,St as debouncer,gt as dockService,Ki as fontResolver,bt as getValue,At as layoutService,Mt as memoize,Lt as pluginService,mo as selectionService,qt as setValue,kt as storage,So as themeService,Ct as throttler,si as tooltipService,Fi as trendlinesService};\n","const ChartStyleComponent = (fontResolver, theme, chartId) => {\n const propertyDefs = {};\n propertyDefs.getOptions = (key, ref) => {\n const getFontFamilyComponent = () => ({\n ref: `${ref}.fontFamily`,\n component: 'dropdown',\n options: () => fontResolver.getOptions(`${ref}.fontFamily`),\n defaultValue: () => fontResolver.getDefaultValue(`${ref}.fontFamily`),\n });\n\n const getFontSizeComponent = () => ({\n ref: `${ref}.fontSize`,\n component: 'dropdown',\n width: true,\n options: () => fontResolver.getOptions(`${ref}.fontSize`),\n defaultValue: () => fontResolver.getDefaultValue(`${ref}.fontSize`),\n });\n\n const getColorComponent = (theme, chartId) => ({\n ref: `${ref}.fontColor`,\n component: 'color-picker',\n width: false,\n defaultValue: () => {\n const color = theme.getStyle(chartId, `${ref}.color`, 'color');\n const palette = theme.getDataColorPickerPalettes()[0].colors;\n const index = palette.indexOf(color);\n return { color, index };\n },\n });\n\n const getFontWrapperComponent = (theme, chartId) => ({\n fontWrapper: {\n component: 'inline-wrapper',\n items: {\n fontSize: {\n ...getFontSizeComponent(),\n },\n fontColor: {\n ...getColorComponent(theme, chartId),\n },\n },\n },\n });\n return {\n labelSection: {\n component: 'items',\n ref: 'components',\n key,\n items: {\n fontFamily: {\n ...getFontFamilyComponent(),\n },\n ...getFontWrapperComponent(theme, chartId),\n },\n },\n };\n };\n return propertyDefs;\n};\n\nexport const getChartFontResolver = (theme, translator, chartId, createFontResolver) =>\n createFontResolver({\n theme,\n translator,\n config: {\n id: chartId,\n paths: ['axis.title', 'axis.label.name', 'label.value', 'legend.title', 'legend.label'],\n },\n });\n\nconst overrides = (key, layout) => (layout.components || []).find((c) => c.key === key);\n\nexport const getAxisTitleStyle = (chartId, theme, layout, flags) => {\n const axis = flags.isEnabled('CLIENT_IM_3364') ? overrides('axis', layout)?.axis : {};\n return {\n text: {\n fontFamily: axis?.title?.fontFamily || theme.getStyle(chartId, 'axis.title', 'fontFamily'),\n fontSize: axis?.title?.fontSize || theme.getStyle(chartId, 'axis.title', 'fontSize'),\n fill: axis?.title?.fontColor?.color || theme.getStyle(chartId, 'axis.title', 'color'),\n },\n };\n};\nexport const getAxisLabelStyle = (chartId, theme, layout, flags) => {\n const axis = flags.isEnabled('CLIENT_IM_3364') ? overrides('axis', layout)?.axis : {};\n return {\n labels: {\n fontFamily: axis?.label?.name?.fontFamily || theme.getStyle(chartId, 'axis.label.name', 'fontFamily'),\n fontSize: axis?.label?.name?.fontSize || theme.getStyle(chartId, 'axis.label.name', 'fontSize'),\n fill: axis?.label?.name?.fontColor?.color || theme.getStyle(chartId, 'axis.label.name', 'color'),\n },\n };\n};\n\nexport const getValueLabelStyle = (chartId, theme, layout, flags) => {\n const value = flags.isEnabled('CLIENT_IM_3364') ? overrides('value', layout)?.label : {};\n const fontFamily = value?.value?.fontFamily || theme.getStyle(chartId, 'label.value.name', 'fontFamily');\n let fontSize = value?.value?.fontSize || theme.getStyle(chartId, 'label.value.size', 'fontSize');\n fontSize = parseFloat(fontSize);\n const fill = value?.value?.fontColor?.color || theme.getStyle(chartId, 'label.value.color', 'color');\n return {\n fontFamily,\n fontSize,\n fill,\n };\n};\n\nexport const getLegendTitleStyle = (chartId, theme, layout, flags) => {\n const legend = flags.isEnabled('CLIENT_IM_3051') ? overrides('legend', layout)?.legend : {};\n return {\n fontFamily: legend?.title?.fontFamily || theme.getStyle(chartId, 'legend.title', 'fontFamily'),\n fontSize: legend?.title?.fontSize || theme.getStyle(chartId, 'legend.title', 'fontSize'),\n color: legend?.title?.fontColor?.color || theme.getStyle(chartId, 'legend.title', 'color'),\n };\n};\n\nexport const getLegendLabelStyle = (chartId, theme, layout, flags) => {\n const legend = flags.isEnabled('CLIENT_IM_3051') ? overrides('legend', layout)?.legend : {};\n return {\n fontFamily: legend?.label?.fontFamily || theme.getStyle(chartId, 'legend.label', 'fontFamily'),\n fontSize: legend?.label?.fontSize || theme.getStyle(chartId, 'legend.label', 'fontSize'),\n color: legend?.label?.fontColor?.color || theme.getStyle(chartId, 'legend.label', 'color'),\n };\n};\n\nexport default ChartStyleComponent;\n","const CHART_ID = 'object.waterfallChart';\n\nfunction getShapeColor(layout, theme, name, defaultColor, defaultIndex) {\n const layoutColor = layout.color || layout.qDef.color;\n if (!layoutColor || layoutColor.auto || !layoutColor[name]) {\n const color = theme.getStyle(CHART_ID, `shape.${name}`, 'fill') || defaultColor;\n const index = defaultIndex; // chartStyleUtils.Theme.currentPalette.indexOf(color);\n return { index, color };\n }\n\n return layoutColor[name].paletteColor;\n}\n\nfunction getColorForPositiveValue(layout, theme) {\n return theme.getColorPickerColor(getShapeColor(layout, theme, 'positiveValue', null, 6));\n}\n\nfunction getColorForNegativeValue(layout, theme) {\n return theme.getColorPickerColor(getShapeColor(layout, theme, 'negativeValue', '#cc6677', -1));\n}\n\nfunction getColorForSubtotal(layout, theme) {\n return theme.getColorPickerColor(getShapeColor(layout, theme, 'subtotal', '#c3c3c3', -1));\n}\n\nconst waterfallUtils = {\n valueTypes: {\n NORMAL: 'NORMAL',\n INVERSE: 'INVERSE',\n SUBTOTAL: 'SUBTOTAL',\n },\n chartID: CHART_ID,\n getColorForPositiveValue,\n getColorForNegativeValue,\n getColorForSubtotal,\n};\n\nObject.freeze(waterfallUtils.valueTypes);\nObject.freeze(waterfallUtils);\n\nexport default waterfallUtils;\n","/**\n * Gets definition of items that should be in the styling panel for the chart.\n * @param {*} flags\n * @param {*} styleOptions\n * @returns definition or undefined if nothing is toggled on by feature flags\n */\nconst getStylingItems = (flags, styleOptions) => {\n const items = {};\n\n if (flags?.isEnabled('CLIENT_IM_3364')) {\n items.axisLabelSection = {\n translation: 'properties.axis.label',\n component: 'panel-section',\n items: styleOptions.getOptions('axis', 'axis.label.name'),\n };\n items.valueLabelSection = {\n translation: 'properties.value.label',\n component: 'panel-section',\n items: styleOptions.getOptions('value', 'label.value'),\n };\n }\n\n if (flags?.isEnabled('CLIENT_IM_3051')) {\n items.legendLabelSection = {\n translation: 'properties.legend.label',\n component: 'panel-section',\n items: styleOptions.getOptions('legend', 'legend.label'),\n };\n }\n\n return Object.keys(items).length > 0 ? items : undefined;\n};\n\nconst getStylingPanelDefinition = (bkgOptionsEnabled, styleOptions, flags) => ({\n component: 'styling-panel',\n chartTitle: 'Object.WaterfallChart',\n translation: 'LayerStyleEditor.component.styling',\n subtitle: 'LayerStyleEditor.component.styling',\n ref: 'components',\n useGeneral: true,\n useBackground: bkgOptionsEnabled,\n items: getStylingItems(flags, styleOptions),\n});\n\nexport default getStylingPanelDefinition;\n","import extend from 'extend';\nimport { fontResolver as createFontResolver, getValue } from 'qlik-chart-modules';\n// import defaultProperties from '../../../assets/client/property-panel/default-properties';\nimport ChartStyleComponent, { getChartFontResolver } from '@qlik/common/extra/chart-style-component';\nimport waterfallUtils from './waterfallchart-utils';\nimport getStylingPanelDefinition from './styling-panel-property-definiton';\n\nfunction colorIsNotAuto(data) {\n return !data.color.auto;\n}\n\nexport default function propertyDefinition(env) {\n const { flags, translator } = env;\n // feature flags\n const stylingPanelEnabled = env.flags.isEnabled('SENSECLIENT_IM_2020_STYLINGPANEL_WATERFALLCHART');\n const bkgOptionsEnabled = env.flags.isEnabled('SENSECLIENT_IM_2020_WATERFALLCHART_BG');\n const data = {\n uses: 'data',\n addTranslation: 'Properties.AddData',\n items: {\n measures: {\n disabledRef: '',\n items: {\n numberFormatting: {\n show: false,\n },\n valueType: {\n type: 'string',\n component: 'dropdown',\n ref: 'qDef.valueType',\n translation: 'properties.waterfall.measureOperation',\n options: [\n {\n value: waterfallUtils.valueTypes.NORMAL,\n translation: 'properties.waterfall.measureOperation.add',\n },\n {\n value: waterfallUtils.valueTypes.INVERSE,\n translation: 'properties.waterfall.measureOperation.subtract',\n },\n {\n value: waterfallUtils.valueTypes.SUBTOTAL,\n translation: 'properties.waterfall.measureOperation.subtotal',\n },\n ],\n defaultValue: waterfallUtils.valueTypes.NORMAL,\n },\n subTotal: {\n ref: 'qDef.subtotal.enable',\n type: 'boolean',\n defaultValue: false,\n translation: 'properties.waterfall.measureOperation.subtotal',\n show(data) {\n return data.qDef.valueType !== waterfallUtils.valueTypes.SUBTOTAL;\n },\n },\n subTotalLabel: {\n translation: 'properties.waterfall.subtotalLabel',\n component: 'string',\n expression: 'optional',\n ref: 'qDef.subtotal.label',\n defaultValue() {\n return translator.get('properties.waterfall.measureOperation.subtotal');\n },\n show(data) {\n return (\n data.qDef.valueType !== waterfallUtils.valueTypes.SUBTOTAL &&\n data.qDef.subtotal &&\n data.qDef.subtotal.enable\n );\n },\n },\n },\n },\n },\n };\n\n const theme = env.anything.sense.theme;\n const fontResolver = getChartFontResolver(theme, translator, waterfallUtils.chartID, createFontResolver);\n const styleOptions = ChartStyleComponent(fontResolver, theme, waterfallUtils.chartID);\n const presentation = {\n type: 'items',\n translation: 'properties.presentation',\n grouped: true,\n items: {\n styleEditor: stylingPanelEnabled && getStylingPanelDefinition(bkgOptionsEnabled, styleOptions, flags),\n gridLines: {\n type: 'items',\n snapshot: {\n tid: 'property-gridLines',\n },\n items: {\n showGridLines: {\n ref: 'gridlines.auto',\n type: 'boolean',\n translation: 'properties.gridLine.spacing',\n component: 'switch',\n defaultValue: true,\n options: [\n {\n value: true,\n translation: 'Common.Auto',\n },\n {\n value: false,\n translation: 'Common.Custom',\n },\n ],\n },\n gridSpacing: {\n ref: 'gridlines.spacing',\n type: 'number',\n component: 'dropdown',\n defaultValue: 2,\n options: [\n {\n value: 0,\n translation: 'properties.gridLine.noLines',\n },\n {\n value: 2,\n translation: 'properties.gridLine.medium',\n },\n {\n value: 3,\n translation: 'properties.gridLine.narrow',\n },\n ],\n show(data) {\n return data.gridlines && !data.gridlines.auto;\n },\n },\n },\n },\n showLabels: {\n ref: 'dataPoint.showLabels',\n type: 'boolean',\n translation: 'properties.dataPoints.labelmode',\n component: 'switch',\n defaultValue: true,\n options: [\n {\n value: true,\n translation: 'Common.Auto',\n },\n {\n value: false,\n translation: 'properties.off',\n },\n ],\n snapshot: {\n tid: 'property-dataPoints',\n },\n },\n },\n };\n\n const autoColor = {\n ref: 'color.auto',\n type: 'boolean',\n component: 'switch',\n defaultValue: true,\n options: [\n {\n value: true,\n translation: 'Common.Auto',\n },\n {\n value: false,\n translation: 'Common.Custom',\n },\n ],\n };\n const positiveValueColor = {\n ref: 'color.positiveValue.paletteColor',\n translation: 'properties.waterfall.color.positiveValueColor',\n type: 'object',\n component: 'color-picker',\n dualOutput: true,\n defaultValue: { index: 6, color: null },\n show: colorIsNotAuto,\n };\n const negativeValueColor = {\n ref: 'color.negativeValue.paletteColor',\n translation: 'properties.waterfall.color.negativeValueColor',\n type: 'object',\n component: 'color-picker',\n dualOutput: true,\n defaultValue: { index: -1, color: '#cc6677' },\n show: colorIsNotAuto,\n };\n const subtotalColor = {\n ref: 'color.subtotal.paletteColor',\n translation: 'properties.waterfall.color.subtotalColor',\n type: 'object',\n component: 'color-picker',\n dualOutput: true,\n defaultValue: { index: -1, color: '#c3c3c3' },\n show: colorIsNotAuto,\n };\n\n const simpleColors = {\n classification: {\n section: 'color',\n tags: ['simple'],\n exclusive: true,\n },\n type: 'items',\n items: {\n simpleItems: {\n items: {\n autoColor: {\n ...autoColor,\n label: (data) => translator.get(data.color?.auto ? 'Common.Auto' : 'Common.Custom'),\n },\n positiveValueColor,\n negativeValueColor,\n subtotalColor,\n },\n },\n },\n };\n\n const colors = {\n translation: 'properties.colorsAndLegend',\n type: 'items',\n grouped: true,\n items: {\n colors: {\n type: 'items',\n items: {\n autoColor: {\n ...autoColor,\n translation: 'properties.colors',\n },\n positiveValueColor,\n negativeValueColor,\n subtotalColor,\n },\n },\n simpleColors,\n legend: {\n type: 'items',\n items: {\n show: {\n ref: 'legend.show',\n type: 'boolean',\n translation: 'properties.legend.show',\n component: 'switch',\n defaultValue: true,\n options: [\n {\n value: true,\n translation: 'Common.Auto',\n },\n {\n value: false,\n translation: 'properties.off',\n },\n ],\n },\n dock: {\n type: 'string',\n component: 'dropdown',\n ref: 'legend.dock',\n translation: 'properties.legend.position',\n options: [\n {\n value: 'auto',\n translation: 'Common.Auto',\n },\n {\n value: 'right',\n translation: 'properties.dock.right',\n },\n {\n value: 'bottom',\n translation: 'Common.Bottom',\n },\n {\n value: 'left',\n translation: 'properties.dock.left',\n },\n {\n value: 'top',\n translation: 'Common.Top',\n },\n ],\n defaultValue: 'auto',\n show(data) {\n return getValue(data, 'legend.show', true);\n },\n },\n },\n },\n },\n };\n\n const measureAxis = {\n uses: 'axis.picasso.measureAxis',\n label: translator.get('properties.yAxis'),\n items: {\n axis: {\n items: {\n measureAxisTitle: {\n component: 'header',\n type: 'string',\n label: translator.get('properties.yAxis'),\n classification: {\n section: 'axis',\n tags: ['simple'],\n exclusive: true,\n },\n },\n show: {\n translation: 'properties.labels',\n defaultValue: 'labels',\n options: [\n {\n value: 'labels',\n translation: 'properties.labels',\n },\n {\n value: 'none',\n translation: 'Common.None',\n },\n null,\n null,\n ],\n },\n },\n },\n },\n };\n\n const dimensionAxis = {\n uses: 'axis.picasso.dimensionAxis',\n items: {\n othersGroup: {\n items: {\n show: {\n translation: 'properties.labels',\n defaultValue: 'labels',\n options: [\n {\n value: 'labels',\n translation: 'properties.labels',\n },\n {\n value: 'none',\n translation: 'Common.None',\n },\n null,\n null,\n ],\n },\n label: {\n options: flags.isEnabled('SENSECLIENT_LAYERED_LABELS')\n ? [\n {\n value: 'auto',\n translation: 'Common.Auto',\n },\n {\n value: 'horizontal',\n translation: 'Common.Horizontal',\n },\n {\n value: 'tilted',\n translation: 'properties.labels.tilted',\n },\n {\n value: 'layered',\n translation: 'properties.labels.layered',\n },\n ]\n : undefined,\n },\n },\n },\n },\n };\n\n const simpleLabels = {\n items: {\n labels: {\n items: {\n header: {\n show(props) {\n return props.qHyperCubeDef.qMeasures?.length;\n },\n },\n pointLabels: {\n component: 'checkbox',\n ref: 'dataPoint.showLabels',\n type: 'boolean',\n defaultValue: true,\n translation: 'Simple.Label.Value',\n show(props) {\n return props.qHyperCubeDef.qMeasures?.length;\n },\n },\n },\n },\n },\n };\n\n const settings = {\n uses: 'settings',\n items: {\n simpleLabels,\n presentation,\n colors,\n measureAxis,\n dimensionAxis,\n },\n };\n\n const addons = {\n type: 'items',\n component: 'expandable-items',\n translation: 'properties.addons',\n items: {\n dataHandling: {\n uses: 'dataHandling',\n items: {\n suppressZero: null,\n calcCond: {\n uses: 'calcCond',\n },\n },\n },\n refLines: {\n uses: 'reflines',\n items: {\n colorBackground: {\n show: false,\n },\n },\n },\n },\n };\n const numberFormatting = {\n translation: 'properties.numberFormatting',\n type: 'items',\n globalChange(data) {\n data.qHyperCubeDef.qMeasures.forEach((measure) => {\n measure.qDef.numFormatFromTemplate = data.qDef.numFormatFromTemplate;\n measure.qDef.qNumFormat = extend(true, {}, data.qDef.qNumFormat);\n });\n },\n items: {\n numberFormatting: {\n uses: 'measures.items.numberFormatting',\n items: { numberFormattingType: undefined },\n },\n },\n };\n\n return {\n type: 'items',\n component: 'accordion',\n items: {\n data,\n numberFormatting,\n addons,\n settings,\n },\n };\n}\n","import pp from './waterfallchart-properties';\nimport dataDefinition from './waterfallchart-data-definition';\nimport { importProperties, exportProperties } from './waterfallchart-import-export';\n\nexport default function ext(env) {\n if (!env.anything?.sense) {\n return undefined;\n }\n\n return {\n definition: pp(env),\n support: {\n cssScaling: false,\n snapshot: true,\n export: true,\n exportData: true,\n sharing: true,\n viewData: true,\n },\n importProperties(exportFormat, initialProperties, extension) {\n extension.mapProperties();\n\n const defaultPropertyValues = {\n defaultDimension: extension.getDefaultDimensionProperties(),\n defaultMeasure: extension.getDefaultMeasureProperties(),\n };\n return importProperties({\n dataDefinition: dataDefinition(env),\n defaultPropertyValues,\n exportFormat,\n initialProperties,\n });\n },\n exportProperties(propertyTree, hyperCubePath, viewDataMode) {\n return exportProperties({ propertyTree, viewDataMode });\n },\n };\n}\n","/* eslint-disable prefer-rest-params */\n/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\n\n/* Simple JavaScript Inheritance\n * By John Resig http://ejohn.org/\n * MIT Licensed.\n * Modified by Qliktech\n */\n// Inspired by base2 and Prototype\n\n/* eslint no-new-func:0,no-unused-vars:0 */\n\nconst fnTest = /xyz/.test(() => {\n let xyz;\n})\n ? /\\b_super\\b/\n : /.*/;\n\n/**\n * Helper module for creating subclasses (or rather prototypal inheritance) of superclasses.\n *\n * @class\n *\n * @example\n * var Animal = Class.extend( \"Animal\", {\n * init: function ( name ) {\n * this.name = name || \"Unnamed\";\n * },\n * say: function ( sound ) {\n * console.log( this.name + \" says \" + sound );\n * }\n * } );\n *\n * var Cat = Animal.extend( \"Cat\", {\n * say: function () {\n * this._super( \"Meouw\" );\n * }\n * } );\n *\n * var cat = new Cat( \"Gustaf\" );\n * cat.say(); => \"Gustaf says Meouw\"\n *\n * @example\n * var MyClass = Class.extend();\n *\n * var a = new MyClass();\n * console.log( a instanceof MyClass ) // => true\n * console.log( a.constructor.name ) // => Class\n *\n * @example\n * var MyClass = Class.extend( \"MyClass\" );\n *\n * var a = new MyClass();\n * console.log( a instanceof MyClass ) // => true\n * console.log( a.constructor.name ) // => MyClass\n *\n */\nconst Class = function () {};\n\n/**\n * This method is available inside each function defined on the prototype when using {@link module:assets/core/utils/class~Class.extend}.\n *\n * It will invoke the super class' method with the same name, but it's up to programmer to invoke it with the arguments needed.\n * @method module:assets/core/utils/class~Class#_super\n */\n\n/**\n * Create a new Class that inherits from this class\n * @param {String} [className=\"Class\"] The name of the new class constructor.\n * @param {Object} proto The prototype for the new class.\n */\nClass.extend = function extend(className, proto) {\n const _super = this.prototype;\n\n if (typeof className !== 'string') {\n proto = className;\n className = 'Class';\n }\n\n // Instantiate a base class (but only create the instance,\n // don't run the init constructor)\n const prototype = Object.create(this.prototype);\n\n // Copy the properties over onto the new prototype\n for (const name in proto) {\n // Check if we're overwriting an existing function\n prototype[name] =\n typeof proto[name] === 'function' && typeof _super[name] === 'function' && fnTest.test(proto[name])\n ? (function (name, fn) {\n return function () {\n const tmp = this._super;\n\n // Add a new ._super() method that is the same method\n // but on the super-class\n this._super = _super[name];\n\n // The method only need to be bound temporarily, so we\n // remove it when we're done executing\n const ret = fn.apply(this, arguments);\n this._super = tmp;\n\n return ret;\n };\n })(name, proto[name])\n : proto[name];\n }\n\n if (!/^[_a-z][_a-z\\d]*$/i.test(className)) {\n throw new Error('Invalid subclass name. Alphanumericals only.');\n }\n\n // The dummy class constructor\n const ctor = new Function(\n `return (function ${className}(){ typeof this.init === 'function' && this.init.apply(this, [].slice.call(arguments)) });`\n )();\n\n // Populate our constructed prototype object\n ctor.prototype = prototype;\n\n // Enforce the constructor to be what we expect\n ctor.prototype.constructor = ctor;\n\n // And make this class extendable\n ctor.extend = extend;\n\n return ctor;\n};\n\nexport default Class;\n","// private\nconst idGen = {\n getChar(value) {\n // 0 o O i I l\n const banned = [48, 111, 79, 105, 73, 108];\n let val = value;\n\n let charCode;\n if (val > 9) {\n charCode = 65 + val - 10;\n if (charCode > 90) {\n charCode += 6;\n }\n } else {\n val = `${val}`.charCodeAt(0);\n }\n return banned.indexOf(charCode) > -1 ? this.getChar(val + 1) : String.fromCharCode(charCode);\n },\n base62(value) {\n const chr = this.getChar(value % 62);\n const y = Math.floor(value / 62);\n return y > 0 ? this.base62(y) + chr : chr;\n },\n id() {\n const s = this.base62(Math.round(Math.random() * (1e13 - 1e11) + 1e11));\n return s.replace(/\\W/g, '');\n },\n};\n\nexport default function generateId() {\n return idGen.id();\n}\n","const SCROLLBAR_KEY = 'scrollbar';\n\nfunction getActions(isEnabledFn) {\n function targetIsScrollbar(manager, e) {\n if (!e || !isEnabledFn()) {\n return false;\n }\n const startPoint = {\n x: e.center.x - e.deltaX,\n y: e.center.y - e.deltaY,\n };\n const components = this.chart.componentsFromPoint(startPoint);\n return components.some((c) => c.settings.key === SCROLLBAR_KEY);\n }\n\n const tap = {\n // single tap\n type: 'Tap',\n options: {\n enable: targetIsScrollbar,\n },\n events: {\n tap(e) {\n this.chart.component(SCROLLBAR_KEY).emit('tap', e);\n },\n },\n };\n\n const pan = {\n type: 'Pan',\n options: {\n enable: targetIsScrollbar,\n },\n events: {\n panstart(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panStart', e);\n },\n pan(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panMove', e);\n },\n panend(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panEnd', e);\n },\n pancancel(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panCancel', e);\n },\n },\n };\n\n const actions = [tap, pan];\n return actions;\n}\n\nexport default getActions;\n","function getAxisDock(direction, dock, isRtl) {\n return direction === 'y' ? getYAxisDock(dock, isRtl) : getXAxisDock(dock);\n}\n\nfunction getOppositeAxisDock(direction, dock, isRtl) {\n const oppositeDock = dock === 'far' ? 'near' : 'far';\n return getAxisDock(direction, oppositeDock, isRtl);\n}\n\nfunction getYAxisDock(dock, isRtl) {\n const yDockNearFar = dock || 'near';\n return (isRtl && yDockNearFar === 'near') || (!isRtl && yDockNearFar === 'far') ? 'right' : 'left';\n}\n\nfunction getXAxisDock(dock) {\n return dock === 'far' ? 'top' : 'bottom';\n}\n\nexport default {\n getAxisDock,\n getOppositeAxisDock,\n getYAxisDock,\n};\n","// Source: https://en.wikipedia.org/wiki/Bi-directional_text and http://www.unicode.org/Public/6.0.0/ucd/UnicodeData.txt\n// 3 types of strong direction characters: L (strong left-to-right), R(strong right-to-left, Hebrew) and AL(strong right-to-left, Arabic language)\nconst rangesOfLChars =\n '[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u02BB-\\u02C1\\u02D0-\\u02D1\\u02E0-\\u02E4\\u02EE\\u0370-\\u0373\\u0376-\\u037D\\u0386\\u0388-\\u03F5\\u03F7-\\u0482\\u048A-\\u0589\\u0903-\\u0939\\u093B\\u093D-\\u0940\\u0949-\\u094C\\u094E-\\u0950\\u0958-\\u0961\\u0964-\\u097F\\u0982-\\u09B9\\u09BD-\\u09C0\\u09C7-\\u09CC\\u09CE-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09FA\\u0A03-\\u0A39\\u0A3E-\\u0A40\\u0A59-\\u0A6F\\u0A72-\\u0A74\\u0A83-\\u0AB9\\u0ABD-\\u0AC0\\u0AC9-\\u0ACC\\u0AD0-\\u0AE1\\u0AE6-\\u0AEF\\u0B02-\\u0B39\\u0B3D-\\u0B3E\\u0B40\\u0B47-\\u0B4C\\u0B57-\\u0B61\\u0B66-\\u0B77\\u0B83-\\u0BBF\\u0BC1-\\u0BCC\\u0BD0-\\u0BF2\\u0C01-\\u0C3D\\u0C41-\\u0C44\\u0C58-\\u0C61\\u0C66-\\u0C6F\\u0C7F-\\u0CB9\\u0CBD-\\u0CCB\\u0CD5-\\u0CE1\\u0CE6-\\u0D40\\u0D46-\\u0D4C\\u0D4E-\\u0D61\\u0D66-\\u0DC6\\u0DCF-\\u0DD1\\u0DD8-\\u0E30\\u0E32-\\u0E33\\u0E40-\\u0E46\\u0E4F-\\u0EB0\\u0EB2-\\u0EB3\\u0EBD-\\u0EC6\\u0ED0-\\u0F17\\u0F1A-\\u0F34\\u0F36\\u0F38\\u0F3E-\\u0F6C\\u0F7F\\u0F85\\u0F88-\\u0F8C\\u0FBE-\\u0FC5\\u0FC7-\\u102C\\u1031\\u1038\\u103B-\\u103C\\u103F-\\u1057\\u105A-\\u105D\\u1061-\\u1070\\u1075-\\u1081\\u1083-\\u1084\\u1087-\\u108C\\u108E-\\u109C\\u109E-\\u135A\\u1360-\\u138F\\u13A0-\\u13F4\\u1401-\\u167F\\u1681-\\u169A\\u16A0-\\u1711\\u1720-\\u1731\\u1735-\\u1751\\u1760-\\u1770\\u1780-\\u17B6\\u17BE-\\u17C5\\u17C7-\\u17C8\\u17D4-\\u17DA\\u17DC\\u17E0-\\u17E9\\u1810-\\u18A8\\u18AA-\\u191C\\u1923-\\u1926\\u1929-\\u1931\\u1933-\\u1938\\u1946-\\u19DA\\u1A00-\\u1A16\\u1A19-\\u1A55\\u1A57\\u1A61\\u1A63-\\u1A64\\u1A6D-\\u1A72\\u1A80-\\u1AAD\\u1B04-\\u1B33\\u1B35\\u1B3B\\u1B3D-\\u1B41\\u1B43-\\u1B6A\\u1B74-\\u1B7C\\u1B82-\\u1BA1\\u1BA6-\\u1BA7\\u1BAA-\\u1BE5\\u1BE7\\u1BEA-\\u1BEC\\u1BEE\\u1BF2-\\u1C2B\\u1C34-\\u1C35\\u1C3B-\\u1C7F\\u1CD3\\u1CE1\\u1CE9-\\u1CEC\\u1CEE-\\u1DBF\\u1E00-\\u1FBC\\u1FBE\\u1FC2-\\u1FCC\\u1FD0-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FFC\\u200E\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E-\\u214F\\u2160-\\u2188\\u2336-\\u237A\\u2395\\u249C-\\u24E9\\u26AC\\u2800-\\u28FF\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2D00-\\u2D70\\u2D80-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u31BA\\u31F0-\\u321C\\u3220-\\u324F\\u3260-\\u327B\\u327F-\\u32B0\\u32C0-\\u32CB\\u32D0-\\u3376\\u337B-\\u33DD\\u33E0-\\u33FE\\u3400-\\u4DB5\\u4E00-\\uA48C\\uA4D0-\\uA60C\\uA610-\\uA66E\\uA680-\\uA6EF\\uA6F2-\\uA6F7\\uA722-\\uA787\\uA789-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA824\\uA827\\uA830-\\uA837\\uA840-\\uA873\\uA880-\\uA8C3\\uA8CE-\\uA8D9\\uA8F2-\\uA925\\uA92E-\\uA946\\uA952-\\uA97C\\uA983-\\uA9B2\\uA9B4-\\uA9B5\\uA9BA-\\uA9BB\\uA9BD-\\uAA28\\uAA2F-\\uAA30\\uAA33-\\uAA34\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA4D-\\uAAAF\\uAAB1\\uAAB5-\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2-\\uABE4\\uABE6-\\uABE7\\uABE9-\\uABEC\\uABF0-\\uFB17\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFDC]';\nconst rangesOfRChars =\n '[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05F4\\u07C0-\\u07EA\\u07F4-\\u07F5\\u07FA-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u0858\\u085E\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB4F]';\nconst rangesOfALChars =\n '[\\u0608\\u060B\\u060D\\u061B-\\u064A\\u066D-\\u066F\\u0671-\\u06D5\\u06E5-\\u06E6\\u06EE-\\u06EF\\u06FA-\\u070D\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\uFB50-\\uFD3D\\uFD50-\\uFDFC\\uFE70-\\uFEFC]';\n// eslint-disable-next-line no-misleading-character-class\nconst rangesOfLRgExp = new RegExp(rangesOfLChars);\nconst rangesOfRRgExp = new RegExp(rangesOfRChars);\nconst rangesOfALRgExp = new RegExp(rangesOfALChars);\n\nconst // left-to-right marker\n lrm = String.fromCharCode(8206); // right-to-left marker\n\nconst rlm = String.fromCharCode(8207);\n\nfunction isLtrChar(c) {\n return rangesOfLRgExp.test(c);\n}\n\nfunction isRtlChar(c) {\n return rangesOfRRgExp.test(c) || rangesOfALRgExp.test(c);\n}\n\nfunction detectTextDirection(s) {\n const n = s ? s.length : 0;\n let i;\n let c;\n for (i = 0; i < n; i++) {\n c = s[i];\n if (isLtrChar(c)) {\n return 'ltr';\n }\n if (isRtlChar(c)) {\n return 'rtl';\n }\n }\n return 'ltr';\n}\n\nexport default {\n lrm,\n rlm,\n detectTextDirection,\n};\n","import extend from 'extend';\nimport RtlUtil from '../../../../extra/rtl-util';\n\n/**\n * Get Picasso settings for an individual ref-line.\n *\n * @param {*} settings Default settings for the ref-line\n * @param {*} lineColorIndex Chart builder options + paletteColor option\n */\nfunction lineSettings(settings, options) {\n const lineStroke =\n typeof options.paletteColor !== 'undefined'\n ? options.theme.getColorPickerColor(options.paletteColor)\n : 'transparent';\n const defaultSettings = {\n value: 0,\n line: {\n stroke: lineStroke,\n strokeDasharray: options?.style?.lineType,\n },\n };\n return extend(true, defaultSettings, settings || {});\n}\n\n/**\n * Get Picasso settings for an individual ref-line used to display label and OOB.\n *\n * @param {*} settings Default settings for the ref-line label\n * @param {*} options Chart builder options + paletteColor option\n */\nfunction lineLabelSettings(settings, options) {\n const chartID = options && options.chartID; // Should we validate if the parameter exists?\n let labelColor = options.theme.getStyle(chartID, 'referenceLine.label.name', 'color');\n const labelFontSize = options.theme.getStyle(chartID, 'referenceLine.label.name', 'fontSize');\n const labelFontFamily = options.theme.getStyle(chartID, 'referenceLine.label.name', 'fontFamily');\n\n if (options.paletteColor) {\n labelColor = options.theme.getColorPickerColor(options.paletteColor);\n } else if (!labelColor) {\n labelColor = 'transparent';\n }\n\n const defaultSettings = {\n value: 0,\n line: {\n stroke: 'transparent',\n },\n label: {\n align: 'center',\n vAlign: 'middle',\n text: '',\n fill: labelColor,\n fontFamily: labelFontFamily,\n fontSize: labelFontSize,\n maxWidthPx: 135,\n },\n };\n return extend(true, defaultSettings, settings || {});\n}\n\nconst isVisible = (refLine) =>\n refLine && refLine.show !== false && refLine.show !== 0 && refLine.show !== '0' && refLine.refLineExpr !== undefined;\n\nfunction getRefLineTitle({ refLine, label, valueString }) {\n if (refLine.showValue !== false) {\n if (refLine.showLabel !== false) {\n return `${label} ${RtlUtil.lrm}(${valueString})${RtlUtil.lrm}`;\n }\n return `${RtlUtil.lrm}(${valueString})${RtlUtil.lrm}`;\n }\n if (refLine.showLabel !== false) {\n return label;\n }\n return '';\n}\n\nexport default {\n lineSettings,\n lineLabelSettings,\n isVisible,\n getRefLineTitle,\n};\n","import DimensionMeasureChartLayoutSettings from './layout-settings';\n\nconst constants = {\n SHOW_AXIS_LABELS_OPTIONS: ['all', 'labels'], // show dim/measure axis labels when it matches one of this values\n SHOW_TITLE_OPTIONS: ['all', 'title'], // show the dimension/measure title when the show option matches one of these values\n HORIZONTAL: 'horizontal',\n VERTICAL: 'vertical',\n LAYOUTSETTINGS: DimensionMeasureChartLayoutSettings,\n};\n\nconstants.DEFAULT_CHART_ORIENTATION = constants.HORIZONTAL;\n\nexport default constants;\n","export default {\n lasso: {\n displayOrder: 10000,\n },\n rangeDim: {\n displayOrder: 10000,\n },\n rangeMeasure: {\n displayOrder: 10000,\n },\n rangeMinor: {\n displayOrder: 10000,\n },\n\n // SPARK\n scrollBar: {\n minimumLayoutMode: 'SPARK',\n prioOrder: -1,\n displayOrder: 100,\n },\n\n refLines: {\n layout: {\n minimumLayoutMode: 'SPARK',\n prioOrder: 60,\n displayOrder: 1110,\n },\n },\n\n // XMALL\n measureAxisTitle: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 30,\n displayOrder: 90,\n },\n dimensionAxisTitle: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 30,\n displayOrder: 90,\n },\n\n measureAxis: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 10,\n displayOrder: 80,\n },\n dimensionAxis: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 10,\n displayOrder: 80,\n },\n\n gridLines: {\n minimumLayoutMode: 'XSMALL',\n displayOrder: -100,\n },\n\n // SMALL\n refLinesLabels: {\n minimumLayoutMode: 'SMALL',\n prioOrder: 60,\n displayOrder: 0,\n },\n};\n","import extend from 'extend';\nimport generateId from '../../../../extra/generate-id';\nimport getScrollActions from '../../../scroll/scroll-actions';\nimport axisDockUtil from '../../components/util/axis-dock-util';\nimport refLineUtil from '../../components/util/ref-line-util';\nimport CONSTANTS from './constants';\n\nconst SENSE_PICASSO_SPACING_COEFFICIENT = 100;\n\nfunction DimensionMeasureChart(chartBuilder, opts) {\n const options = opts || {};\n\n const measureAxisProperties = options.measureAxisProperties || {};\n const dimensionAxisProperties = options.dimensionAxisProperties || {};\n const chartOrientation = options.orientation || CONSTANTS.DEFAULT_CHART_ORIENTATION;\n const isChartHorizontal = chartOrientation === CONSTANTS.HORIZONTAL;\n const measureDirection = isChartHorizontal ? 'x' : 'y';\n const dimensionDirection = isChartHorizontal ? 'y' : 'x';\n const SHOW_AXIS_LABELS_OPTIONS = CONSTANTS.SHOW_AXIS_LABELS_OPTIONS;\n const SHOW_TITLE_OPTIONS = CONSTANTS.SHOW_TITLE_OPTIONS;\n const includeMeasureAxisComponent = SHOW_AXIS_LABELS_OPTIONS.includes(measureAxisProperties.show);\n const includeMeasureAxisTitleComponent =\n !!options.measureTitleText && SHOW_TITLE_OPTIONS.includes(measureAxisProperties.show);\n const includeDimensionAxisComponent =\n options.includeDimensionAxis && SHOW_AXIS_LABELS_OPTIONS.includes(dimensionAxisProperties.show);\n const includeDimensionAxisTitleComponent =\n options.includeDimensionAxis &&\n !!options.dimensionTitleText &&\n SHOW_TITLE_OPTIONS.includes(dimensionAxisProperties.show);\n const includeGridlines = options.gridlines && !(!options.gridlines.auto && options.gridlines.spacing === 0);\n\n const includeRefLines = options.refLines && options.refLines.some((refLine) => refLine.show);\n\n const interactionActions = [];\n\n if (includeMeasureAxisComponent) {\n addMeasureAxisComponent(chartBuilder, options, measureDirection, measureAxisProperties);\n }\n\n if (includeMeasureAxisTitleComponent) {\n addMeasureAxisTitleComponent(chartBuilder, options, measureDirection);\n }\n\n addMeasureScale(chartBuilder, options, chartOrientation, measureAxisProperties);\n\n if (includeDimensionAxisComponent) {\n addDimensionAxisComponent(chartBuilder, options, dimensionDirection);\n }\n\n if (includeDimensionAxisTitleComponent) {\n addDimensionAxisTitleComponent(chartBuilder, options, dimensionDirection);\n }\n\n if (options.includeDimensionAxis) {\n addDimensionScale(chartBuilder, options, chartOrientation);\n }\n\n if (includeGridlines) {\n addGridlinesComponent(chartBuilder, options.gridlines, measureDirection);\n }\n\n if (options.hasNavigation) {\n addScrollbarComponent(chartBuilder, interactionActions, options, isChartHorizontal);\n }\n\n if (includeRefLines) {\n addRefLineComponent(chartBuilder, options, measureDirection, measureAxisProperties);\n }\n\n if (options.enableLasso && options.selectionsEnabled) {\n const lassoOptions = options.lasso || {};\n addLassoComponent(chartBuilder, lassoOptions);\n }\n\n if (options.enableDimRange && options.includeDimensionAxis && options.selectionsEnabled) {\n const rangeDimOptions = options.dimRange || {};\n const dimensionAxisOptions = getDimensionAxisOptions(options, dimensionDirection);\n addRangeDimComponent(chartBuilder, rangeDimOptions, isChartHorizontal, dimensionAxisOptions.dock, options.isRtl);\n }\n\n if (options.enableMeasureRange && options.selectionsEnabled) {\n const rangeMeasureOptions = options.measureRange || {};\n const measureAxisOptions = getMeasureAxisOptions(options, measureDirection);\n addRangeMeasureComponent(\n chartBuilder,\n rangeMeasureOptions,\n isChartHorizontal,\n measureAxisOptions.dock,\n options.isRtl\n );\n }\n\n if (options.enableAreaRange && options.selectionsEnabled) {\n const areaDimOptions = options.areaRange || {};\n const dimAreaAxisOptions = getDimensionAxisOptions(options, dimensionDirection);\n addRangeAreaComponent(chartBuilder, areaDimOptions, isChartHorizontal, dimAreaAxisOptions.dock, options.isRtl);\n }\n\n if (options.brushActions) {\n addInteractionActions(interactionActions, options.brushActions);\n }\n\n if (interactionActions.length) {\n addInteractionComponent(chartBuilder, interactionActions);\n }\n}\n\nexport default DimensionMeasureChart;\n\nfunction addInteractionComponent(chartBuilder, interactionActions) {\n return chartBuilder.addInteraction({}, { gestures: interactionActions });\n}\n\nfunction addInteractionActions(interactionActions, actions) {\n actions.forEach((a) => {\n interactionActions.push(a);\n });\n}\n\nfunction addMeasureScale(chartBuilder, options, chartOrientation, measureAxisProperties) {\n let measureScaleSettings = options.measureScaleSettings;\n\n const measureScaleOptions = {\n isRtl: options.isRtl,\n source: options.measureSource,\n orientation: chartOrientation,\n measureAxisProperties,\n };\n\n if (measureAxisProperties && measureAxisProperties.spacing > 0) {\n measureScaleSettings = extend(true, measureScaleSettings || {}, {\n component: {\n ticks: {\n distance: measureAxisProperties.spacing * SENSE_PICASSO_SPACING_COEFFICIENT,\n },\n },\n });\n }\n\n chartBuilder.addScale('measure-scale', measureScaleSettings, measureScaleOptions);\n}\n\nfunction addMeasureAxisComponent(chartBuilder, options, measureDirection, measureAxisProperties) {\n let measureAxisSettings = {\n scale: 'measure',\n settings: options.axisLabelStyle || {},\n forceBounds: measureAxisProperties && !measureAxisProperties.autoMinMax && measureAxisProperties.showBounds,\n };\n measureAxisSettings = extend(measureAxisSettings, CONSTANTS.LAYOUTSETTINGS.measureAxis);\n\n const measureAxisOptions = getMeasureAxisOptions(options, measureDirection);\n\n chartBuilder.addComponent(`${measureDirection}-axis`, measureAxisSettings, measureAxisOptions);\n}\n\nfunction addMeasureAxisTitleComponent(chartBuilder, options, measureDirection) {\n let measureTitleSettings = {\n text: options.measureTitleText,\n style: options.axisTitleStyle || {},\n };\n measureTitleSettings = extend(measureTitleSettings, CONSTANTS.LAYOUTSETTINGS.measureAxisTitle);\n\n const measureAxisOptions = getMeasureAxisTitleOptions(options, measureDirection);\n\n chartBuilder.addComponent(`${measureDirection}-axis-title`, measureTitleSettings, measureAxisOptions);\n}\n\nfunction addDimensionScale(chartBuilder, options, chartOrientation) {\n const dimensionScaleOptions = {\n isRtl: options.isRtl,\n source: options.dimensionSource,\n orientation: chartOrientation === CONSTANTS.HORIZONTAL ? CONSTANTS.VERTICAL : CONSTANTS.HORIZONTAL,\n };\n\n chartBuilder.addScale('dimension-scale', options.dimensionScaleSettings, dimensionScaleOptions);\n}\n\nfunction addDimensionAxisComponent(chartBuilder, options, dimensionDirection) {\n let dimensionAxisSettings = {\n scale: 'dimension',\n settings: options.axisLabelStyle || {},\n };\n dimensionAxisSettings = extend(dimensionAxisSettings, CONSTANTS.LAYOUTSETTINGS.dimensionAxis);\n\n const dimensionAxisOptions = getDimensionAxisOptions(options, dimensionDirection);\n\n extend(true, dimensionAxisSettings, options.dimensionAxisSettings || {});\n\n chartBuilder.addComponent(`${dimensionDirection}-axis`, dimensionAxisSettings, dimensionAxisOptions);\n}\n\nfunction addDimensionAxisTitleComponent(chartBuilder, options, dimensionDirection) {\n let dimensionAxisTitleSettings = {\n text: options.dimensionTitleText,\n style: options.axisTitleStyle || {},\n };\n dimensionAxisTitleSettings = extend(dimensionAxisTitleSettings, CONSTANTS.LAYOUTSETTINGS.dimensionAxisTitle);\n\n const dimensionAxisTitleOptions = getDimensionAxisTitleOptions(options, dimensionDirection);\n\n chartBuilder.addComponent(`${dimensionDirection}-axis-title`, dimensionAxisTitleSettings, dimensionAxisTitleOptions);\n}\n\nfunction addGridlinesComponent(chartBuilder, gridlinesOptions, measureDirection) {\n let gridlinesSettings = {\n ticks: {\n show: true,\n },\n minorTicks: {\n show: !gridlinesOptions.auto && !gridlinesOptions.auto && gridlinesOptions.spacing === 3,\n },\n };\n gridlinesSettings = extend(gridlinesSettings, CONSTANTS.LAYOUTSETTINGS.gridLines);\n\n gridlinesSettings[measureDirection] = { scale: 'measure' };\n\n chartBuilder.addComponent('grid-line', gridlinesSettings);\n}\n\nfunction addScrollbarComponent(chartBuilder, interactionActions, options, isChartHorizontal) {\n const settings = chartBuilder.getSettings();\n\n settings.scroll = {\n dimension: {\n viewSize: (options.scrollSettings && options.scrollSettings.viewSize) || 0,\n max: (options.scrollSettings && options.scrollSettings.max) || 0,\n },\n };\n\n const scrollbarOptions = {\n isRtl: options.isRtl,\n chartID: options.chartID,\n isHorizontal: !isChartHorizontal,\n };\n\n const scrollBarSettings = extend({}, CONSTANTS.LAYOUTSETTINGS.scrollBar);\n\n chartBuilder.addComponent('scrollbar', scrollBarSettings, scrollbarOptions);\n\n addInteractionActions(interactionActions, getScrollActions(options.isNavigationEnabledFn));\n}\n\n/*\n * Add \"ref-line\" component(s). Currently two \"ref-line\" components are used to reserve space for labels and\n * OOB markers outside of the data area. First component: shows the line(s) within the data area. Second component:\n * shows the label(s) and OOB marker(s).\n */\nfunction addRefLineComponent(chartBuilder, options, measureDirection, measureAxisProperties) {\n const axisDock = axisDockUtil.getAxisDock(measureDirection, measureAxisProperties.dock, options.isRtl);\n let refLinesSettings = {\n // First component\n key: 'ref-line',\n style: {\n oob: {\n show: false,\n },\n },\n lines: {\n x: [],\n y: [],\n },\n };\n refLinesSettings = extend(refLinesSettings, CONSTANTS.LAYOUTSETTINGS.refLines);\n\n let refLinesLabelsSettings = {\n // Second component\n // Use a unique key to force re-render of this component in Picasso.\n // This must be done because Picasso does not allow re-binding of functions (and shouldn't either).\n key: `ref-line-labels-${generateId()}`,\n require: ['renderer', 'chart'],\n dock: axisDockUtil.getOppositeAxisDock(measureDirection, measureAxisProperties.dock, options.isRtl),\n preferredSize() {\n if (measureDirection === 'x') {\n // Use constant component size if horizontal\n return 26;\n }\n\n // Adapt component size to the longest label if vertical\n const measureText = this.renderer.measureText;\n const formatter = this.chart.formatter({ data: chartBuilder.settings.scales.measure.data });\n const labelWidths = refLinesLabelsSettings.lines.y.map((line) => {\n const formattedValue = line.label.showValue !== false ? `(${formatter(line.value)})` : '';\n const text = `${line.label.text} ${formattedValue}`;\n const minimumText = line.label.text && formattedValue ? ` ${formattedValue}` : formattedValue;\n return {\n wanted: measureText({\n text,\n fontSize: line.fontSize,\n fontFamily: line.fontFamily,\n }).width,\n required: measureText({\n text: minimumText,\n fontSize: line.fontSize,\n fontFamily: line.fontFamily,\n }).width,\n };\n });\n\n const maxLabelWidth = labelWidths[0];\n for (let i = 1; i < labelWidths.length; i++) {\n if (labelWidths[i].wanted > maxLabelWidth.wanted) {\n maxLabelWidth.wanted = labelWidths[i].wanted;\n }\n if (labelWidths[i].required > maxLabelWidth.required) {\n maxLabelWidth.required = labelWidths[i].required;\n }\n }\n const labelPadding = 12;\n if (maxLabelWidth.required + labelPadding > 100) {\n return maxLabelWidth.required + labelPadding; // Always have space for the value\n }\n return Math.min(maxLabelWidth.wanted + labelPadding, 100); // Limit to 100 px width\n },\n lines: {\n x: [],\n y: [],\n },\n };\n refLinesLabelsSettings = extend(refLinesLabelsSettings, CONSTANTS.LAYOUTSETTINGS.refLinesLabels);\n\n options.refLines.forEach((refLine) => {\n if (!refLine.show) {\n return;\n }\n\n const expressionValue = refLine.refLineExpr && refLine.refLineExpr.value;\n const lineOptions = extend(true, {}, options, {\n paletteColor: refLine.paletteColor,\n style: refLine.style,\n chartID: chartBuilder.options.chartID,\n });\n\n // Add a line for each visible ref line\n const lineSettings = refLineUtil.lineSettings(\n {\n scale: 'measure',\n dir: measureDirection,\n value: expressionValue,\n },\n lineOptions\n );\n\n refLinesSettings.lines[measureDirection].push(lineSettings);\n\n // Add a label and an OOB marker for each visible ref line (using the second component)\n const lineLabelSettings = refLineUtil.lineLabelSettings(\n {\n scale: 'measure',\n value: expressionValue,\n label: {\n text: refLine.showLabel !== false ? refLine.label : '',\n showValue: refLine.showValue !== false,\n },\n },\n lineOptions\n );\n\n if (measureDirection === 'x') {\n lineLabelSettings.label.vAlign = axisDock === 'near' ? 1 : 0;\n } else {\n // y\n lineLabelSettings.label.align = axisDock === 'near' ? 0 : 1;\n }\n\n refLinesLabelsSettings.lines[measureDirection].push(lineLabelSettings);\n });\n\n chartBuilder.addComponent('ref-line', refLinesSettings, {});\n chartBuilder.addComponent('ref-line', refLinesLabelsSettings, {});\n}\n\n/**\n * Adds a lasso component to the chart builder\n * @param {ChartBuilder} chartBuilder\n * @param {object} options - lasso options\n * @param {string} options.brushKey - key used as context for lasso selection triggers\n * @param {string} options.brushComponent - target component key\n */\nfunction addLassoComponent(chartBuilder, options) {\n const lassoOptions = {\n brushKey: options.brushKey,\n brushComponents: options.brushComponents,\n brushData: options.brushData,\n };\n\n chartBuilder.addComponent('lasso', CONSTANTS.LAYOUTSETTINGS.lasso, lassoOptions);\n}\n/**\n * Adds a dimension range component to the chart builder\n * @param {any} chartBuilder\n * @param {object} options - range dim options\n * @param {string} options.brushKey - key used as context for range selection triggers\n * @param {string} options.brushAxis - target axis to perform range select on\n * @param {string} options.brushScale - Scale to use\n * @param {boolean} isChartHorizontal - Whether the chart is horizontal or not\n */\nfunction addRangeDimComponent(chartBuilder, options, isChartHorizontal, dock, isRtl) {\n let rangeDimSettings = {\n key: 'rangeDim',\n };\n\n rangeDimSettings = extend(rangeDimSettings, CONSTANTS.LAYOUTSETTINGS.rangeDim);\n\n const rangeDimOptions = {\n brushKey: options.brushKey,\n brushAxis: options.brushAxis,\n brushArea: options.brushArea,\n brushScale: options.brushScale,\n isHorizontal: !isChartHorizontal,\n dock,\n isRtl,\n };\n\n chartBuilder.addComponent('range', rangeDimSettings, rangeDimOptions);\n}\n\nfunction addRangeMeasureComponent(chartBuilder, options, isChartHorizontal, dock, isRtl) {\n let rangeMeasureSettings = {\n key: 'rangeMeasure',\n };\n\n rangeMeasureSettings = extend(rangeMeasureSettings, CONSTANTS.LAYOUTSETTINGS.rangeMeasure);\n\n const rangeMeasureOptions = {\n brushKey: options.brushKey,\n brushAxis: options.brushAxis,\n brushArea: options.brushArea,\n brushScale: options.brushScale,\n multiple: options.multiple,\n isHorizontal: isChartHorizontal,\n dock,\n isRtl,\n };\n\n chartBuilder.addComponent('range', rangeMeasureSettings, rangeMeasureOptions);\n}\n\nfunction addRangeAreaComponent(chartBuilder, options, isChartHorizontal, dock, isRtl) {\n let rangeMinorSettings = {\n key: 'rangeMinor',\n };\n\n rangeMinorSettings = extend(rangeMinorSettings, CONSTANTS.LAYOUTSETTINGS.rangeMinor);\n\n const rangeMeasureOptions = {\n brushKey: options.brushKey,\n brushAxis: options.brushAxis,\n brushData: options.brushData,\n brushArea: options.brushArea,\n brushComponents: options.brushComponents,\n brushScale: options.brushScale,\n multiple: options.multiple,\n isHorizontal: options.brushScale === 'measure' ? isChartHorizontal : !isChartHorizontal,\n dock,\n isRtl,\n chartInstance: options.chartInstance,\n };\n\n chartBuilder.addComponent('range-area', rangeMinorSettings, rangeMeasureOptions);\n}\n\nfunction getMeasureAxisOptions(options, measureDirection) {\n return {\n dock: options.measureAxisProperties && options.measureAxisProperties.dock,\n direction: measureDirection,\n isRtl: options.isRtl,\n };\n}\n\nfunction getMeasureAxisTitleOptions(options, measureDirection) {\n return getMeasureAxisOptions(options, measureDirection);\n}\n\nfunction getDimensionAxisOptions(options, dimensionDirection) {\n return {\n dock: options.dimensionAxisProperties && options.dimensionAxisProperties.dock,\n direction: dimensionDirection,\n isRtl: options.isRtl,\n };\n}\n\nfunction getDimensionAxisTitleOptions(options, dimensionDirection) {\n return getDimensionAxisOptions(options, dimensionDirection);\n}\n","import extend from 'extend';\n\nfunction scale(settings, opts) {\n const options = opts || {};\n const isHorizontal = !options.orientation || options.orientation === 'horizontal';\n const isRtl = !!options.isRtl;\n\n const defaultSettings = {\n name: options.name || 'scale',\n component: {\n invert: isHorizontal && isRtl,\n minorTicks: {\n count: 1,\n },\n range: options.range || undefined,\n domain: options.domain || undefined,\n trackBy: options.trackBy || 'id',\n },\n };\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nfunction measureScale(settings, opts) {\n const options = opts || {};\n let fields = options.source || [];\n if (typeof fields === 'string') {\n fields = [fields];\n }\n\n const defaultSettings = {\n name: 'measure',\n component: {\n expand: 0.1,\n data: {\n fields: fields.map((f) => ({\n field: f,\n })),\n },\n },\n };\n\n const measureAxisProperties = opts && opts.measureAxisProperties;\n\n if (measureAxisProperties && !measureAxisProperties.autoMinMax) {\n // explicit min max measure scale range\n if (['min', 'minMax'].includes(measureAxisProperties.minMax)) {\n defaultSettings.component.min = measureAxisProperties.min;\n }\n if (['max', 'minMax'].includes(measureAxisProperties.minMax)) {\n defaultSettings.component.max = measureAxisProperties.max;\n }\n }\n\n const measureSettings = extend(true, defaultSettings, settings || {});\n const scaleSettings = scale(measureSettings, opts);\n const hasInvertSettings = settings && settings.component && typeof settings.component.invert !== 'undefined';\n\n if (!hasInvertSettings && opts && opts.orientation === 'vertical') {\n scaleSettings.component.invert = !scaleSettings.component.invert;\n }\n\n return scaleSettings;\n}\n\nfunction dimensionScale(settings, opts) {\n const defaultSettings = {\n name: 'dimension',\n component: {\n trackBy: 'id',\n type: 'band',\n data: {\n extract: {\n field: (opts && opts.source) || '',\n props: {\n label(v) {\n return v.qText || '';\n }, // Map qText to handle both qElemNo and qElemNumber\n },\n },\n },\n label(v) {\n return v.datum.label.value;\n }, // Set qText as value from the mapping on r.92\n },\n };\n\n const dimensionSettings = extend(true, defaultSettings, settings || {});\n\n return scale(dimensionSettings, opts);\n}\n\nscale.measureScale = measureScale;\nscale.dimensionScale = dimensionScale;\n\nexport default scale;\n","import extend from 'extend';\nimport axisDockUtil from './util/axis-dock-util';\n\nfunction axis(settings, options) {\n const chartID = options && options.chartID; // Should we validate if the parameter exists?\n const dock = options && options.dock;\n const direction = options && options.direction;\n const isRtl = options && options.isRtl;\n\n const axisLineStroke = options.theme.getStyle(chartID, 'axis.line.major', 'color');\n const titleFontSize = options.theme.getStyle(chartID, 'axis.title', 'fontSize');\n const titleFill = options.theme.getStyle(chartID, 'axis.title', 'color');\n const labelsFill = options.theme.getStyle(chartID, 'axis.label.name', 'color');\n const labelsFontSize = options.theme.getStyle(chartID, 'axis.label.name', 'fontSize');\n const titleFontFamily = options.theme.getStyle(chartID, 'axis.title', 'fontFamily');\n const labelsFontFamily = options.theme.getStyle(chartID, 'axis.label.name', 'fontFamily');\n\n const defaultSettings = {\n key: 'axis',\n type: 'axis',\n dock: axisDockUtil.getAxisDock(direction, dock, isRtl),\n brush: { trigger: [], consume: [] },\n settings: {\n title: {\n fontSize: titleFontSize,\n fontFamily: titleFontFamily,\n fill: titleFill,\n },\n line: {\n show: true,\n strokeWidth: 1,\n stroke: axisLineStroke,\n },\n labels: {\n fill: labelsFill,\n fontSize: labelsFontSize,\n fontFamily: labelsFontFamily,\n tiltAngle: isRtl ? -40 : 40,\n maxEdgeBleed: 75,\n maxSize: 150,\n mode: 'auto',\n },\n ticks: {\n stroke: axisLineStroke,\n },\n minorTicks: {\n stroke: axisLineStroke,\n },\n },\n };\n const axisSettings = extend(true, {}, defaultSettings, settings || {});\n axisSettings.brush.consume.forEach((consume) => {\n consume.style.active.strokeWidth = 0;\n });\n return axisSettings;\n}\n\nfunction xAxis(settings, options) {\n const defaultSettings = {\n key: 'x-axis',\n scale: 'x',\n };\n const xAxisSettings = extend(true, defaultSettings, settings || {});\n return axis(xAxisSettings, options);\n}\n\nfunction yAxis(settings, options) {\n const dock = options && options.dock;\n const isRtl = options && options.isRtl;\n const defaultSettings = {\n key: 'y-axis',\n scale: 'y',\n dock: axisDockUtil.getYAxisDock(dock, isRtl),\n };\n const yAxisSettings = extend(true, defaultSettings, settings || {});\n return axis(yAxisSettings, options);\n}\n\naxis.xAxis = xAxis;\naxis.yAxis = yAxis;\n\nexport default axis;\n","import extend from 'extend';\nimport axisDockUtil from './util/axis-dock-util';\n\nfunction text(settings, options) {\n const chartID = options && options.chartID;\n const dock = options && options.dock;\n const direction = options && options.direction;\n const isRtl = options && options.isRtl;\n const titleFontSize = options.theme.getStyle(chartID, 'axis.title', 'fontSize');\n const titleFill = options.theme.getStyle(chartID, 'axis.title', 'color');\n const titleFontFamily = options.theme.getStyle(chartID, 'axis.title', 'fontFamily');\n\n const defaultSettings = {\n key: 'text',\n type: 'text',\n dock: axisDockUtil.getAxisDock(direction, dock, isRtl) || 'bottom',\n displayOrder: 0, // TODO: This can be removed when picasso set displayOrder for text component to 0. Currently picasso set it to 99.\n style: {\n text: {\n fontSize: titleFontSize,\n fontFamily: titleFontFamily,\n fill: titleFill,\n },\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nfunction xAxisTitle(settings, options) {\n const defaultSettings = {\n key: 'x-axis-title',\n };\n const xAxisTitleSettings = extend(true, defaultSettings, settings || {});\n return text(xAxisTitleSettings, options);\n}\n\nfunction yAxisTitle(settings, options) {\n const dock = options && options.dock;\n const isRtl = options && options.isRtl;\n const defaultSettings = {\n key: 'y-axis-title',\n dock: axisDockUtil.getYAxisDock(dock, isRtl) || 'left',\n };\n const yAxisTitleSettings = extend(true, defaultSettings, settings || {});\n return text(yAxisTitleSettings, options);\n}\n\ntext.xAxisTitle = xAxisTitle;\ntext.yAxisTitle = yAxisTitle;\n\nexport default text;\n","function getBublesAlign(isHorizontal, dock, isRtl) {\n let isAlignStart = (isHorizontal && dock !== 'far') || (!isHorizontal && dock === 'far');\n if (!isHorizontal && isRtl) {\n isAlignStart = !isAlignStart;\n }\n return isAlignStart ? 'start' : 'end';\n}\n\nfunction getDock(brushAxis, brushArea) {\n const dockTargets = [];\n let dockT;\n if (brushAxis) {\n dockTargets.push(`@${brushAxis}`);\n }\n if (brushArea) {\n dockTargets.push(`@${brushArea}`);\n }\n if (dockTargets.length) {\n dockT = dockTargets.join(',');\n }\n return dockT;\n}\n\nexport default {\n getBublesAlign,\n getDock,\n};\n","/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\nconst layoutModes = {\n SPARK: { width: 0, height: 0 },\n XSMALL: { width: 150, height: 75 },\n SMALL: { width: 300, height: 150 },\n MEDIUM: { width: 400, height: 220 },\n FULL: { width: 550, height: 450 },\n};\n\nfunction LayoutModes() {\n return layoutModes;\n}\n\nLayoutModes.getLayoutModeKeys = function () {\n const layoutModeKeys = [];\n let modeKey;\n\n for (modeKey in layoutModes) {\n layoutModeKeys.push(modeKey);\n }\n return layoutModeKeys;\n};\n\nexport default LayoutModes;\n","import extend from 'extend';\n\nfunction getLabel(context) {\n const end = context.data.end;\n const formatter = context.dataset(end.source.key).field(end.source.field).formatter();\n return formatter(end.value);\n}\n\nfunction labels(settings, options) {\n const chartID = options && options.chartID;\n const labelsFill = options.theme.getStyle(chartID, 'label.value', 'color');\n const labelsFontSize = options.theme.getStyle(chartID, 'label.value', 'fontSize');\n const labelsFontFamily = options.theme.getStyle(chartID, 'label.value', 'fontFamily');\n\n const defaultSettings = {\n key: 'labels',\n type: 'labels',\n displayOrder: 1,\n settings: {\n sources: [\n {\n component: 'box-marker', // Connects with the matching \"key:\" attribute in the visualizations\n selector: 'rect',\n strategy: {\n type: 'bar',\n settings: {\n direction: 'up',\n fontFamily: labelsFontFamily,\n fontSize: parseFloat(labelsFontSize),\n align: 0.5,\n labels: [\n {\n placements: [\n {\n position: 'outside',\n fill: labelsFill,\n justify: 0,\n },\n {\n position: 'inside',\n fill: settings && settings.settings.sources[0].strategy.settings.labels[0].placements[1].fill,\n justify: 1,\n },\n ],\n label: getLabel,\n },\n ],\n },\n },\n },\n ],\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default labels;\n","import extend from 'extend';\n\nconst directions = {\n left: 'left',\n right: 'right',\n up: 'top',\n down: 'bottom',\n};\n\nfunction legend(settings, options) {\n const chartID = options && options.chartID;\n const isRtl = options && options.isRtl;\n let dock = (options && options.dock) || 'auto';\n const show = options && options.show;\n\n if (dock === 'auto') {\n dock = options.chartHeight / options.chartWidth < 1 ? (isRtl ? 'left' : 'right') : 'bottom';\n }\n\n const titleFill = options.theme.getStyle(chartID, 'legend.title', 'color');\n const titleFontSize = options.theme.getStyle(chartID, 'legend.title', 'fontSize');\n const itemFill = options.theme.getStyle(chartID, 'legend.label', 'color');\n const itemFontSize = options.theme.getStyle(chartID, 'legend.label', 'fontSize');\n const titleFontFamily = options.theme.getStyle(chartID, 'legend.title', 'fontFamily');\n const itemFontFamily = options.theme.getStyle(chartID, 'legend.label', 'fontFamily');\n\n const defaultSettings = {\n key: 'legend',\n type: 'legend-cat',\n dock,\n show,\n\n scale: {\n type: 'color',\n },\n settings: {\n title: {\n anchor: 'middle',\n },\n layout: {\n direction: isRtl ? 'rtl' : 'ltr',\n size: dock === 'top' || dock === 'bottom' ? 2 : 1,\n vertical: dock === 'top' || dock === 'bottom' ? 16 : 8,\n },\n navigation: {\n button: {\n class: {\n 'lui-fade-button': true,\n },\n content(h, state) {\n const c = ['lui-button__icon', 'lui-icon', `lui-icon--triangle-${directions[state.direction]}`];\n return h('span', {\n style: {\n pointerEvents: 'none',\n },\n class: c.join(' '),\n });\n },\n },\n },\n },\n style: {\n item: {\n label: {\n fontSize: itemFontSize,\n fontFamily: itemFontFamily,\n fill: itemFill,\n lineHeight: 1,\n wordBreak: 'break-word',\n },\n margin: {\n top: 5,\n left: 10,\n right: 10,\n bottom: 10,\n },\n shape: {\n type: options.type ? options.type : 'square',\n size: (parseInt(itemFontSize, 10) * 3) / 4, // To make it consistent with non-picasso charts\n },\n },\n title: {\n show: options.showTitle,\n fontSize: titleFontSize,\n fontFamily: titleFontFamily,\n fill: titleFill,\n },\n },\n };\n return extend(true, {}, defaultSettings, settings);\n}\n\nexport default legend;\n","import extend from 'extend';\nimport ChartPresets from './chart-presets';\nimport scale from './scale';\nimport axis from './components/axis';\nimport boxMarker from './components/box-marker';\nimport eventArea from './components/event-area';\nimport gridLine from './components/grid-line';\nimport interaction from './components/interaction';\nimport pointMarker from './components/point-marker';\nimport scrollbar from './components/scrollbar';\nimport text from './components/text';\nimport lasso from './components/lasso';\nimport range from './components/range';\nimport refLine from './components/ref-line';\nimport layoutModes from './layout-modes';\nimport labels from './components/labels';\nimport categoricalLegend from './components/categorical-legend';\nimport sequentialLegend from './components/sequential-legend';\nimport rangeArea from './components/range-area';\n\nfunction createComponent(type, settings, options) {\n switch (type) {\n // Picasso components\n case 'scale':\n return scale(settings, options);\n case 'measure-scale':\n return scale.measureScale(settings, options);\n case 'dimension-scale':\n return scale.dimensionScale(settings, options);\n case 'axis':\n return axis(settings, options);\n case 'box-marker':\n return boxMarker(settings, options);\n case 'point-marker':\n return pointMarker(settings, options);\n case 'scrollbar':\n return scrollbar(settings, options);\n case 'text':\n return text(settings, options);\n case 'lasso':\n return lasso(settings, options);\n case 'range':\n return range(settings, options);\n case 'range-area':\n return rangeArea(settings, options);\n case 'categorical-legend':\n return categoricalLegend(settings, options);\n case 'sequential-legend':\n return sequentialLegend(settings, options);\n // Wrapepd picasso components\n case 'x-axis':\n return axis.xAxis(settings, options);\n case 'y-axis':\n return axis.yAxis(settings, options);\n case 'x-axis-title':\n return text.xAxisTitle(settings, options);\n case 'y-axis-title':\n return text.yAxisTitle(settings, options);\n case 'grid-line':\n return gridLine(settings, options);\n case 'interaction':\n return interaction(settings, options);\n case 'ref-line':\n return refLine(settings, options);\n // Custom components\n case 'event-area':\n return eventArea(settings, options);\n case 'labels':\n return labels(settings, options);\n default:\n return undefined;\n }\n}\n\nfunction ChartBuilder(options) {\n this.options = options || {};\n\n this.settings = {\n dockLayout: {\n layoutModes: layoutModes(),\n },\n components: [],\n scales: {},\n };\n}\n\nChartBuilder.prototype.addComponent = function addComponent(type, settings, options) {\n const extendedOptions = extend(true, {}, this.options, options || {});\n const component = createComponent(type, settings, extendedOptions);\n this.settings.components.push(component);\n return component;\n};\n\nChartBuilder.prototype.addInteraction = function addInteraction(settings, options) {\n const extendedOptions = extend(true, {}, this.options, options || {});\n const component = createComponent('interaction', settings, extendedOptions);\n if (!this.settings.interactions) {\n this.settings.interactions = [];\n }\n this.settings.interactions.push(component);\n return component;\n};\n\nChartBuilder.prototype.addScale = function addScale(type, settings, options) {\n const extendedOptions = extend(true, {}, this.options, options || {});\n const scale = createComponent(type, settings, extendedOptions);\n this.settings.scales[scale.name] = scale.component;\n};\n\nChartBuilder.prototype.getSettings = function getSettings() {\n return this.settings;\n};\n\nChartBuilder.prototype.getComponent = function getComponent(key) {\n return this.settings.components.filter((component) => component.key === key)[0];\n};\n\nChartBuilder.prototype.addPreset = function addPreset(type, options) {\n ChartPresets(type, this, options);\n};\n\nChartBuilder.validateComponentKeys = function validateComponentKeys(components) {\n const keys = {};\n return components\n .map((component) => {\n const key = component.key;\n if (!key) {\n return `Missing key for component ${component.type}`;\n }\n if (keys[key]) {\n return `Duplicate key for component ${component.type}`;\n }\n keys[key] = true;\n return null;\n })\n .filter((msg) => !!msg);\n};\n\n/*\n * Factory function\n */\nChartBuilder.create = function (options) {\n return new ChartBuilder(options);\n};\n\nChartBuilder.createComponent = createComponent;\n\nexport default ChartBuilder;\n","import extend from 'extend';\n\nfunction boxMarker(settings) {\n const defaultSettings = {\n key: 'box-marker',\n type: 'box-marker',\n settings: {\n minor: { scale: 'x' },\n orientation: 'horizontal',\n },\n brush: { trigger: [], consume: [] },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default boxMarker;\n","import extend from 'extend';\n\nfunction pointMarker(settings) {\n const defaultSettings = {\n key: 'point-marker',\n type: 'point-marker',\n settings: {},\n brush: { trigger: [], consume: [] },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default pointMarker;\n","import extend from 'extend';\n\nfunction scrollbar(settings, options) {\n const isRtl = options && options.isRtl;\n const chartID = options && options.chartID;\n const isHorizontal = options && options.isHorizontal;\n const defaultSettings = {\n key: 'scrollbar',\n type: 'scrollbar',\n scroll: 'dimension',\n dock: isHorizontal ? 'bottom' : isRtl ? 'left' : 'right',\n settings: {\n backgroundColor: options.theme.getStyle(chartID, '', 'backgroundColor'),\n invert: isRtl && isHorizontal,\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default scrollbar;\n","import extend from 'extend';\n\nfunction lasso(settings, options) {\n const brushKey = options && options.brushKey;\n const brushComponents = options && options.brushComponents ? options.brushComponents : [];\n const brushData = options && options.brushData ? options.brushData : ['elemNo'];\n\n const defaultSettings = {\n type: 'brush-lasso',\n key: 'lasso',\n displayOrder: 99,\n settings: {\n brush: {\n components: [],\n },\n lasso: {\n fill: 'rgba(0, 0, 0, 0)',\n stroke: 'rgba(102,102,102,1)',\n strokeWidth: 2,\n opacity: 1,\n strokeDasharray: null, // '10, 4',\n },\n startPoint: {\n r: 10,\n fill: 'rgba(0, 152, 69, 1)',\n strokeWidth: 0,\n opacity: 1,\n },\n },\n };\n\n brushComponents.forEach((comp) => {\n defaultSettings.settings.brush.components.push({\n contexts: brushKey ? [brushKey] : undefined,\n key: comp,\n data: brushData,\n });\n });\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default lasso;\n","import extend from 'extend';\nimport rangeUtil from './util/range-util';\n\nfunction range(settings, options) {\n const brushKey = options && options.brushKey;\n const brushAxis = options && options.brushAxis;\n const brushArea = options && options.brushArea;\n const brushScale = options && options.brushScale;\n const isHorizontal = options && options.isHorizontal;\n const dock = options && options.dock;\n const isRtl = options && options.isRtl;\n\n const defaultSettings = {\n type: 'brush-range',\n key: 'range',\n displayOrder: 99,\n dock: rangeUtil.getDock(brushAxis, brushArea),\n settings: {\n brush: brushKey,\n fill: 'rgba(0, 0, 0, 0)',\n scale: brushScale,\n multiple: options && options.multiple === false ? options.multiple : true,\n direction: isHorizontal ? 'horizontal' : 'vertical',\n target: {\n component: brushAxis,\n fill: 'rgba( 82, 204, 82, 0.2 )',\n fillActive: 'rgba(82, 204, 82, 0.4)',\n },\n bubbles: {\n align: rangeUtil.getBublesAlign(isHorizontal, dock, isRtl),\n },\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default range;\n","import extend from 'extend';\nimport rangeUtil from './util/range-util';\n\nfunction rangeArea(settings, options) {\n const brushKey = options && options.brushKey;\n const brushAxis = options && options.brushAxis;\n const brushComponents = options && options.brushComponents ? options.brushComponents : [];\n const brushData = options && options.brushData ? options.brushData : ['elemNo'];\n const brushArea = options && options.brushArea;\n const isHorizontal = options && options.isHorizontal;\n const dock = options && options.dock;\n const isRtl = options && options.isRtl;\n const chartInstance = options && options.chartInstance;\n let isStartBorder = true;\n\n const defaultSettings = {\n type: 'brush-area-dir',\n key: 'area',\n displayOrder: 99,\n dock: rangeUtil.getDock(brushAxis, brushArea),\n settings: {\n brush: {\n components: [],\n },\n direction: isHorizontal ? 'horizontal' : 'vertical',\n target: {\n component: brushAxis,\n fill: 'rgba( 82, 204, 82, 0.2 )',\n fillActive: 'rgba(82, 204, 82, 0.4)',\n },\n bubbles: {\n align: rangeUtil.getBublesAlign(isHorizontal, dock, isRtl),\n label(data) {\n if (isStartBorder) {\n isStartBorder = false;\n const formattedStartValue = chartInstance\n .dataset(data.binStart.source.key)\n .field(data.binStart.source.field)\n .formatter()(data.binStart.value);\n return formattedStartValue;\n }\n isStartBorder = true;\n const formattedEndValue = chartInstance\n .dataset(data.binEnd.source.key)\n .field(data.binEnd.source.field)\n .formatter()(data.binEnd.value);\n return formattedEndValue;\n },\n },\n multiple: options && options.multiple === false ? options.multiple : true,\n },\n };\n\n brushComponents.forEach((comp) => {\n defaultSettings.settings.brush.components.push({\n contexts: brushKey ? [brushKey] : undefined,\n key: comp,\n data: brushData,\n action: 'add',\n });\n });\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default rangeArea;\n","import extend from 'extend';\n\nfunction sequentialLegend(settings, options) {\n const chartID = options && options.chartID;\n const isRtl = options && options.isRtl;\n let dock = options.dock || 'auto';\n\n if (dock === 'auto') {\n dock = options.chartHeight < options.chartWidth ? (isRtl ? 'left' : 'right') : 'bottom';\n }\n\n const titleFill = options.theme.getStyle(chartID, 'legend.title', 'color');\n const titleFontSize = options.theme.getStyle(chartID, 'legend.title', 'fontSize');\n const titleFontFamily = options.theme.getStyle(chartID, 'legend.title', 'fontFamily');\n const tickFill = options.theme.getStyle(chartID, 'legend.label', 'color');\n const tickFontSize = options.theme.getStyle(chartID, 'legend.label', 'fontSize');\n const tickFontFamily = options.theme.getStyle(chartID, 'legend.label', 'fontFamily');\n\n function getAlignValue(word) {\n switch (word) {\n case 'left':\n return 0;\n case 'right':\n return 1;\n case 'middle':\n default:\n return 0.5;\n }\n }\n\n const defaultSettings = {\n key: 'seqlegend',\n type: 'legend-seq',\n dock,\n\n // Settings to position the legend outside of the axis\n displayOrder: 200,\n minimumLayoutMode: 'MEDIUM',\n prioOrder: 0,\n\n settings: {\n align: isRtl ? getAlignValue('right') : getAlignValue('left'),\n major: {\n invert: dock === 'left' || dock === 'right' || isRtl,\n },\n title: {\n show: options.showTitle,\n fontSize: titleFontSize,\n fontFamily: titleFontFamily,\n fill: titleFill,\n },\n tick: {\n fill: tickFill,\n fontSize: tickFontSize,\n fontFamily: tickFontFamily,\n },\n },\n };\n const finalSettings = extend(true, {}, defaultSettings, settings);\n return finalSettings;\n}\n\nexport default sequentialLegend;\n","import extend from 'extend';\n\nfunction gridLine(settings, options) {\n const chartID = options && options.chartID;\n\n const axisLineStroke = options.theme.getStyle(chartID, 'grid.line.major', 'color');\n\n const defaultSettings = {\n displayOrder: -1,\n key: 'grid-line',\n type: 'grid-line',\n x: null,\n y: null,\n ticks: {\n stroke: axisLineStroke,\n },\n minorTicks: {\n stroke: axisLineStroke,\n },\n };\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default gridLine;\n","import extend from 'extend';\n\nfunction interaction(settings, options) {\n const gestures = (options && options.gestures) || [];\n const defaultSettings = {\n type: 'hammer',\n key: 'hammered',\n gestures,\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default interaction;\n","import extend from 'extend';\n\nfunction refLine(settings, options) {\n const chartID = options && options.chartID; // Should we validate if the parameter exists?\n const oobColor = options.theme.getStyle(chartID, 'referenceLine.outOfBounds', 'color');\n const oobBackgroundColor = options.theme.getStyle(chartID, 'referenceLine.outOfBounds', 'backgroundColor');\n\n const defaultSettings = {\n key: 'ref-line',\n type: 'ref-line',\n dock: 'center',\n prioOrder: -1,\n lines: {\n x: [],\n y: [],\n },\n style: {\n oob: {\n width: 7,\n fill: oobBackgroundColor,\n text: {\n fill: oobColor,\n },\n padding: {\n x: 7,\n y: 5,\n },\n },\n },\n };\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default refLine;\n","import extend from 'extend';\n\nfunction eventArea(settings) {\n const defaultSettings = {\n type: 'event-area',\n key: 'event-area',\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default eventArea;\n","import DimensionMeasureChart from './presets/dimension-measure-chart/dimension-measure-chart';\n\nfunction ChartPresets(type, chartBuilder, options) {\n switch (type) {\n case 'dimension-measure-chart':\n DimensionMeasureChart(chartBuilder, options);\n break;\n default:\n throw Error('There is no chart preset with that type');\n }\n}\n\nexport default ChartPresets;\n","/**\n * Configuration for disclaimers\n *\n */\n\n/**\n * Placement on chart\n */\nconst ALIGNMENT = {\n CENTER: 0,\n BOTTOM: 1,\n};\n\n/**\n * Configuration of all disclaimers\n *\n * label - key for translation\n * alignment - Placement on chart\n * default - Supported by default. If 'false' the disclaimer needs to be set to 'true' in supportedDisclaimers to be valid\n */\nconst DISCLAIMERS = [\n {\n label: 'NoDataExist',\n alignment: ALIGNMENT.CENTER,\n default: true,\n },\n {\n label: 'RequireNumericDimension',\n alignment: ALIGNMENT.CENTER,\n default: false,\n },\n {\n label: 'OnlyNanData',\n alignment: ALIGNMENT.CENTER,\n default: true,\n },\n {\n label: 'OnlyNegativeOrZeroValues',\n alignment: ALIGNMENT.CENTER,\n default: false,\n },\n {\n label: 'LimitedData',\n alignment: ALIGNMENT.BOTTOM,\n default: false,\n },\n {\n label: 'OnlyNanColor',\n alignment: ALIGNMENT.BOTTOM,\n default: false,\n },\n {\n label: 'NegativeOrZeroValues',\n alignment: ALIGNMENT.BOTTOM,\n default: false,\n },\n {\n label: 'DataRangeIncludingZero',\n alignment: ALIGNMENT.BOTTOM,\n default: false,\n },\n];\n\nexport default {\n DISCLAIMERS,\n ALIGNMENT,\n};\n","/**\n * Disclaimer utility for setting attributes needed for the disclaimer component\n *\n * @exports objects.picasso/disclaimer/disclaimer-attributes-utils\n */\nimport DisclaimersConfig from './disclaimers-config';\n\n/**\n * Checks if the data range in measures and axis spans over the value 0\n * @ignore\n * @param measureAxis\n * @param measureInfo\n * @returns {boolean} True if the data range in any measure or the given axis spans over 0\n */\nfunction hasDataRangeIncludingZero(measureAxis, measureInfo) {\n const len = measureInfo.length;\n let i;\n let explicitMinOn;\n let explicitMaxOn;\n let min;\n let max;\n if (measureAxis) {\n explicitMinOn =\n !measureAxis.autoMinMax &&\n (measureAxis.minMax === 'min' || measureAxis.minMax === 'minMax') &&\n measureAxis.min !== null &&\n !Number.isNaN(+measureAxis.min);\n explicitMaxOn =\n !measureAxis.autoMinMax &&\n (measureAxis.minMax === 'max' || measureAxis.minMax === 'minMax') &&\n measureAxis.max !== null &&\n !Number.isNaN(+measureAxis.max);\n }\n min = Number.MAX_VALUE;\n max = -Number.MAX_VALUE;\n\n // return true if data contains zero\n for (i = 0; i < len; i++) {\n min = Math.min(min, measureInfo[i].qMin);\n max = Math.max(max, measureInfo[i].qMax);\n if (min <= 0 && max >= 0) {\n return true;\n }\n }\n\n // return true if axis explicits contains zero\n min = explicitMinOn ? measureAxis.min : min;\n max = explicitMaxOn ? measureAxis.max : max;\n return min <= 0 && max >= 0;\n}\n\nfunction hasSubNodes(stackedDataPages) {\n return (\n stackedDataPages && stackedDataPages[0] && stackedDataPages[0].qData[0] && stackedDataPages[0].qData[0].qSubNodes\n );\n}\n\nconst util = {\n getNoDataExistAttribute(qHyperCube) {\n return qHyperCube.qSize.qcy * qHyperCube.qSize.qcx === 0;\n },\n\n getLimitedDataAttribute(qHyperCube, opts) {\n let result = false;\n let maxNbrOfDimensions;\n if (!qHyperCube) {\n result = opts.explicitLimitedData === true;\n } else if (opts.explicitLimitedData !== undefined) {\n result = opts.explicitLimitedData === true;\n } else if (qHyperCube.qDataPages && qHyperCube.qDataPages[0]) {\n result = !opts.paging && qHyperCube.qSize.qcy > qHyperCube.qDataPages[0].qMatrix.length;\n } else if (hasSubNodes(qHyperCube.qStackedDataPages)) {\n maxNbrOfDimensions = opts.maxNbrOfDimensions ? opts.maxNbrOfDimensions : 2;\n if (qHyperCube.qDimensionInfo.length >= maxNbrOfDimensions) {\n result = qHyperCube.qStackedDataPages[0].qData[0].qSubNodes.some((node) => node.qDown > 0);\n } else {\n result =\n qHyperCube.qStackedDataPages[0].qData[0].qSubNodes.length < qHyperCube.qStackedDataPages[0].qArea.qHeight;\n }\n }\n return result;\n },\n\n getNegativeOrZeroValuesAttribute(qHyperCube, opts) {\n return !opts.supportNegative && qHyperCube.qMeasureInfo.some((measure) => measure.qMin <= 0);\n },\n\n getOnlyNegativeOrZeroValuesAttribute(qHyperCube, opts) {\n return (\n (!opts.supportNegative &&\n qHyperCube.qMeasureInfo.every((measure) => measure.qMax <= 0 && measure.qMax >= measure.qMin)) ||\n qHyperCube.qSize.qcy === 0\n );\n },\n\n getOnlyNanDataAttribute(qHyperCube, opts) {\n if (opts.explicitOnlyNanData !== undefined) {\n return opts.explicitOnlyNanData;\n }\n\n return qHyperCube.qMeasureInfo.every((measure) => measure.qMax < measure.qMin || measure.qMax === 'NaN');\n },\n\n getDataRangeIncludingZeroAttribute(data, opts) {\n return !opts.supportRangeOverZero && hasDataRangeIncludingZero(data.measureAxis, data.qHyperCube.qMeasureInfo);\n },\n\n /**\n * Apply attributes that configures disclaimers for a charts\n * @param {Object} options - Options\n * @param {Object} data - Layout data\n * @returns {Object}\n */\n applyAttributes(options, data) {\n const opts = options || {};\n const dataAttributes = {};\n\n opts.supportNegative = opts.supportNegative === undefined ? true : opts.supportNegative;\n opts.supportRangeOverZero = opts.supportRangeOverZero === undefined ? true : opts.supportRangeOverZero;\n\n DisclaimersConfig.DISCLAIMERS.forEach((config) => {\n dataAttributes[config.label] = false;\n });\n if (!data || !data.qHyperCube) {\n return dataAttributes;\n }\n dataAttributes.NoDataExist = this.getNoDataExistAttribute(data.qHyperCube);\n if (dataAttributes.NoDataExist) {\n return dataAttributes;\n }\n dataAttributes.RequireNumericDimension = opts.explicitRequireNumericDimension;\n if (dataAttributes.RequireNumericDimension) {\n return dataAttributes;\n }\n dataAttributes.LimitedData = this.getLimitedDataAttribute(data.qHyperCube, opts);\n dataAttributes.NegativeOrZeroValues = this.getNegativeOrZeroValuesAttribute(data.qHyperCube, opts);\n dataAttributes.OnlyNegativeOrZeroValues = this.getOnlyNegativeOrZeroValuesAttribute(data.qHyperCube, opts);\n dataAttributes.OnlyNanData = this.getOnlyNanDataAttribute(data.qHyperCube, opts);\n dataAttributes.DataRangeIncludingZero = this.getDataRangeIncludingZeroAttribute(data, opts);\n\n return dataAttributes;\n },\n};\nexport default util;\n","/**\n * Helper for disclaimer component\n *\n */\n\n/**\n * Create new Helper for disclaimer\n * @param disclaimersConfig {Array} List of disclaimer config objects\n * @param dataAttributes {Object} Config for which disclaimers that are valid to show\n * @param supportedDisclaimers {Object} Config for which disclaimers that are supported\n * @constructor\n */\nfunction Helper(disclaimersConfig, dataAttributes, supportedDisclaimers) {\n this.disclaimersConfig = disclaimersConfig;\n this.dataAttributes = dataAttributes;\n this.supportedDisclaimers = supportedDisclaimers;\n}\n\nfunction isValid(label, list) {\n return label && list && list[label];\n}\n\n/**\n * Returns true if disclaimer config is valid, supported and has an alignment\n * @param disclaimer {Object} Configuration for a disclaimer\n * @param alignment {Integer} Alignment value in disclaimers config\n * @returns {Boolean}\n */\nHelper.prototype.isValidAndSupported = function (disclaimer, alignment) {\n return (\n isValid(disclaimer.label, this.dataAttributes) &&\n (disclaimer.default || isValid(disclaimer.label, this.supportedDisclaimers)) &&\n alignment !== undefined &&\n disclaimer.alignment === alignment\n );\n};\n\n/**\n * Returns true if there are any valid disclaimers for an alignment\n * @param alignment {Integer} Alignment value in disclaimers config\n * @returns {Boolean}\n */\nHelper.prototype.isAnyValidDisclaimer = function (alignment) {\n let result = false;\n const self = this;\n this.disclaimersConfig.forEach((config) => {\n if (self.isValidAndSupported(config, alignment)) {\n result = true;\n }\n });\n return result;\n};\n\n/**\n * Gets all translated disclaimer messages for an alignment\n * @param alignment {Integer} Alignment value in disclaimers config\n * @param translator {Object} Translator component\n * @returns {string}\n */\nHelper.prototype.getMessage = function (alignment, translator) {\n let str = '';\n const self = this;\n if (translator) {\n this.disclaimersConfig.forEach((config) => {\n if (self.isValidAndSupported(config, alignment)) {\n str += `${translator.get(`Object.Disclaimer.${config.label}`)} `;\n }\n });\n }\n return str;\n};\n\nexport default Helper;\n","/**\n * Disclaimer component for Picasso base charts\n *\n * @exports objects.picasso/disclaimer/disclaimer\n */\n\nimport extend from 'extend';\nimport DisclaimersConfig from './disclaimers-config';\nimport AttributesUtil from './disclaimer-attributes-util';\nimport DisclaimerComponentHelper from './disclaimer-component-helper';\n\nDisclaimer.ERRORS = {\n SET: 'Calling Disclaimer.set() without attributes',\n DISPLAY: 'Calling Disclaimer.display() before attributes are applied',\n};\n\n/**\n * Create new disclaimer component\n * @param {Object} options - A reference to chart options\n * @constructor\n */\nfunction Disclaimer(environment) {\n this.environment = environment;\n this.clear();\n}\n\nDisclaimer._applyDefaultSupport = function (supportedDisclaimers, disclaimersConfig) {\n let supported = supportedDisclaimers;\n if (!supported) {\n supported = {};\n }\n disclaimersConfig.forEach((config) => {\n if (supported[config.label] === undefined) {\n supported[config.label] = config.default;\n }\n });\n return supported;\n};\n\nDisclaimer.prototype.getComponentSettings = function () {\n const { translator } = this.environment;\n const supportedDisclaimers = extend(true, {}, this.vizAttributes.supportedDisclaimers);\n const helper = new DisclaimerComponentHelper(\n DisclaimersConfig.DISCLAIMERS,\n this.dataAttributes,\n supportedDisclaimers\n );\n\n let message;\n let dock;\n if (helper.isAnyValidDisclaimer(DisclaimersConfig.ALIGNMENT.CENTER)) {\n message = helper.getMessage(DisclaimersConfig.ALIGNMENT.CENTER, translator);\n dock = 'center';\n } else if (helper.isAnyValidDisclaimer(DisclaimersConfig.ALIGNMENT.BOTTOM)) {\n message = helper.getMessage(DisclaimersConfig.ALIGNMENT.BOTTOM, translator);\n dock = 'bottom';\n } else {\n return undefined;\n }\n\n return {\n key: 'disclaimer',\n type: 'disclaimer',\n layout: {\n displayOrder: 1000,\n dock,\n },\n settings: {\n label: message,\n rtl: this.environment?.options?.direction === 'rtl',\n },\n };\n};\n\n/**\n * Set attributes that configures disclaimers for a charts\n * @param {Object} attributes - Disclaimer settings for a chart\n */\nDisclaimer.prototype.set = function (attributes) {\n this.clear();\n if (attributes) {\n this.vizAttributes = attributes;\n this.dataAttributes = AttributesUtil.applyAttributes(this.vizAttributes.options, this.vizAttributes.data);\n } else {\n throw new Error(Disclaimer.ERRORS.SET);\n }\n};\n\n/**\n * Clears disclaimer settings\n */\nDisclaimer.prototype.clear = function () {\n this.vizAttributes = null;\n this.dataAttributes = null;\n};\n\nexport default Disclaimer;\n","import extend from 'extend';\nimport { getValue } from 'qlik-chart-modules';\n\nimport Class from '../extra/class';\nimport ChartBuilder from './chart-builder/chart-builder';\nimport Disclaimer from './disclaimer/disclaimer';\n\nfunction getData(backendApi, hyperCube, rect) {\n let page = {\n qTop: 0,\n qLeft: 0,\n qWidth: hyperCube.qSize.qcx,\n qHeight: 10000 / hyperCube.qSize.qcx,\n };\n let dataPagesPath;\n\n if (rect) {\n const width = rect.width || hyperCube.qSize.qcx;\n const maxHeight = Math.floor(10000 / width);\n page = {\n qTop: rect.top || 0,\n qLeft: rect.left || 0,\n qWidth: width,\n qHeight: rect.height ? Math.min(rect.height, maxHeight) : maxHeight,\n };\n } else {\n page = {\n qTop: 0,\n qLeft: 0,\n qWidth: hyperCube.qSize.qcx,\n qHeight: 10000 / hyperCube.qSize.qcx,\n };\n }\n\n switch (hyperCube.qMode) {\n case 'K': // Stacked mode\n dataPagesPath = 'qStackedDataPages';\n break;\n case 'S': // Straight table mode\n default:\n dataPagesPath = 'qDataPages';\n break;\n }\n\n return backendApi.getData([page], null, hyperCube).then((pages) => {\n hyperCube[dataPagesPath] = pages;\n });\n}\n\nconst ChartView = Class.extend({\n init(picasso, $element, environment, backendApi, selectionsApi) {\n this.$element = $element;\n this.environment = environment;\n this.backendApi = backendApi;\n\n this._selectionsApi = selectionsApi;\n this._on = false;\n this._disclaimer = new Disclaimer(environment);\n this._dataPaths = ['qHyperCube'];\n\n const self = this;\n\n // Set properties that should be available in subclasses\n\n this.picassoElement = $element[0];\n this.picassoElement.className += ' picasso-chart';\n\n // Paint a visually empty Picasso chart containing an event-area component\n this.chartInstance = picasso.chart({\n element: this.picassoElement,\n settings: {\n components: [\n ChartBuilder.createComponent('event-area', {\n mounted(element) {\n // Mounted is run synchronously so this.dataAreaElem will be available in subclass constructors\n self.dataAreaElem = element;\n },\n }),\n ],\n },\n });\n },\n\n updateEnvironment(environment) {\n this.environment = environment;\n },\n\n isRtl() {\n return this.environment.options?.direction === 'rtl';\n },\n\n setDataPaths(dataPaths) {\n this._dataPaths = dataPaths;\n },\n\n getData(backendApi, hyperCube, rect) {\n return getData(backendApi, hyperCube, rect);\n },\n\n hasValidData() {\n return true;\n },\n\n paint() {\n // Use this.layout\n if (this.hasValidData()) {\n this._disclaimer.set(this.getDisclaimerAttributes(this.layout));\n const disclaimerComponent = this._disclaimer.getComponentSettings();\n const isSuppressingDisc = disclaimerComponent?.layout?.dock === 'center';\n\n const chartSettings = this.createChartSettings(this.layout);\n if (isSuppressingDisc) {\n chartSettings.components = [disclaimerComponent];\n } else if (disclaimerComponent) {\n chartSettings.components.push(disclaimerComponent);\n }\n ChartBuilder.validateComponentKeys(chartSettings.components).forEach((errorMsg) => {\n console.error(errorMsg);\n });\n\n this.updateChart(this.layout, chartSettings);\n this._painted = true;\n }\n return Promise.resolve();\n },\n\n resize() {\n // Use this.layout\n if (!this.layout) {\n // There are cases where resize is run before updateData, therefore layout is undefined\n return undefined;\n }\n return this.paint();\n },\n\n createChartSettings() {\n throw new Error('Subclass must implement \"createChartSettings\" function');\n },\n\n addSnapshotChartSettings(settings, layout) {\n const { freeResize } = this.environment.options;\n if (!freeResize && layout.snapshotData) {\n settings.dockLayout.logicalSize = {\n width: layout.snapshotData.content.size.w,\n height: layout.snapshotData.content.size.h,\n preserveAspectRatio: true,\n };\n }\n },\n\n updateData(layout) {\n // clone the layout so that updates ignored by suppressOnPaint does not affect it.\n if (this._destroyed) {\n return Promise.reject();\n }\n\n this.layout = extend(true, {}, layout);\n this.layout.permissions = layout.permissions;\n return Promise.resolve();\n },\n\n updateChart(layout, settings, isPartialData) {\n const localeInfo = this.environment.appLayout?.qLocaleInfo ?? {};\n const data = this._dataPaths.map((path) => ({\n type: 'q',\n key: path,\n config: {\n localeInfo,\n },\n data: getValue(layout, path.replace(/\\//g, '.')),\n }));\n if (this.colorService) {\n data.push(...this.colorService.getData());\n }\n\n this.chartInstance.update({\n data,\n settings,\n partialData: isPartialData,\n });\n\n const STATE_DATA_UPDATED = 2;\n this.picassoElement.setAttribute('data-state', STATE_DATA_UPDATED); // For integration test\n },\n\n destroy() {\n this._destroyed = true;\n this.off();\n this.chartInstance.destroy();\n },\n\n getViewState() {\n return {};\n },\n\n isLassoDisabled() {\n return true;\n },\n\n setSnapshotData(snapshotLayout) {\n if (!snapshotLayout.snapshotData) {\n snapshotLayout.snapshotData = {};\n }\n snapshotLayout.snapshotData.content = {\n // eslint-disable-line no-param-reassign\n chartData: {},\n size: {\n w: this.$element.width(),\n h: this.$element.height(),\n },\n };\n },\n\n getDisclaimerAttributes(layout) {\n return {\n data: layout,\n };\n },\n});\n\nexport default ChartView;\n","const colorStruct = {\n aliceblue: { r: 240, g: 248, b: 255 },\n antiquewhite: { r: 250, g: 235, b: 215 },\n aqua: { r: 0, g: 255, b: 255 },\n aquamarine: { r: 127, g: 255, b: 212 },\n azure: { r: 240, g: 255, b: 255 },\n beige: { r: 245, g: 245, b: 220 },\n bisque: { r: 255, g: 228, b: 196 },\n black: { r: 0, g: 0, b: 0 },\n blanchedalmond: { r: 255, g: 235, b: 205 },\n blue: { r: 0, g: 0, b: 255 },\n blueviolet: { r: 138, g: 43, b: 226 },\n brown: { r: 165, g: 42, b: 42 },\n burlywood: { r: 222, g: 184, b: 135 },\n cadetblue: { r: 95, g: 158, b: 160 },\n chartreuse: { r: 127, g: 255, b: 0 },\n chocolate: { r: 210, g: 105, b: 30 },\n coral: { r: 255, g: 127, b: 80 },\n cornflowerblue: { r: 100, g: 149, b: 237 },\n cornsilk: { r: 255, g: 248, b: 220 },\n crimson: { r: 220, g: 20, b: 60 },\n cyan: { r: 0, g: 255, b: 255 },\n darkblue: { r: 0, g: 0, b: 139 },\n darkcyan: { r: 0, g: 139, b: 139 },\n darkgoldenrod: { r: 184, g: 134, b: 11 },\n darkgray: { r: 169, g: 169, b: 169 },\n darkgreen: { r: 0, g: 100, b: 0 },\n darkgrey: { r: 169, g: 169, b: 169 },\n darkkhaki: { r: 189, g: 183, b: 107 },\n darkmagenta: { r: 139, g: 0, b: 139 },\n darkolivegreen: { r: 85, g: 107, b: 47 },\n darkorange: { r: 255, g: 140, b: 0 },\n darkorchid: { r: 153, g: 50, b: 204 },\n darkred: { r: 139, g: 0, b: 0 },\n darksalmon: { r: 233, g: 150, b: 122 },\n darkseagreen: { r: 143, g: 188, b: 143 },\n darkslateblue: { r: 72, g: 61, b: 139 },\n darkslategray: { r: 47, g: 79, b: 79 },\n darkslategrey: { r: 47, g: 79, b: 79 },\n darkturquoise: { r: 0, g: 206, b: 209 },\n darkviolet: { r: 148, g: 0, b: 211 },\n deeppink: { r: 255, g: 20, b: 147 },\n deepskyblue: { r: 0, g: 191, b: 255 },\n dimgray: { r: 105, g: 105, b: 105 },\n dimgrey: { r: 105, g: 105, b: 105 },\n dodgerblue: { r: 30, g: 144, b: 255 },\n firebrick: { r: 178, g: 34, b: 34 },\n floralwhite: { r: 255, g: 250, b: 240 },\n forestgreen: { r: 34, g: 139, b: 34 },\n fuchsia: { r: 255, g: 0, b: 255 },\n gainsboro: { r: 220, g: 220, b: 220 },\n ghostwhite: { r: 248, g: 248, b: 255 },\n gold: { r: 255, g: 215, b: 0 },\n goldenrod: { r: 218, g: 165, b: 32 },\n gray: { r: 128, g: 128, b: 128 },\n green: { r: 0, g: 128, b: 0 },\n greenyellow: { r: 173, g: 255, b: 47 },\n grey: { r: 128, g: 128, b: 128 },\n honeydew: { r: 240, g: 255, b: 240 },\n hotpink: { r: 255, g: 105, b: 180 },\n indianred: { r: 205, g: 92, b: 92 },\n indigo: { r: 75, g: 0, b: 130 },\n ivory: { r: 255, g: 255, b: 240 },\n khaki: { r: 240, g: 230, b: 140 },\n lavender: { r: 230, g: 230, b: 250 },\n lavenderblush: { r: 255, g: 240, b: 245 },\n lawngreen: { r: 124, g: 252, b: 0 },\n lemonchiffon: { r: 255, g: 250, b: 205 },\n lightblue: { r: 173, g: 216, b: 230 },\n lightcoral: { r: 240, g: 128, b: 128 },\n lightcyan: { r: 224, g: 255, b: 255 },\n lightgoldenrodyellow: { r: 250, g: 250, b: 210 },\n lightgray: { r: 211, g: 211, b: 211 },\n lightgreen: { r: 144, g: 238, b: 144 },\n lightgrey: { r: 211, g: 211, b: 211 },\n lightpink: { r: 255, g: 182, b: 193 },\n lightsalmon: { r: 255, g: 160, b: 122 },\n lightseagreen: { r: 32, g: 178, b: 170 },\n lightskyblue: { r: 135, g: 206, b: 250 },\n lightslategray: { r: 119, g: 136, b: 153 },\n lightslategrey: { r: 119, g: 136, b: 153 },\n lightsteelblue: { r: 176, g: 196, b: 222 },\n lightyellow: { r: 255, g: 255, b: 224 },\n lime: { r: 0, g: 255, b: 0 },\n limegreen: { r: 50, g: 205, b: 50 },\n linen: { r: 250, g: 240, b: 230 },\n magenta: { r: 255, g: 0, b: 255 },\n maroon: { r: 128, g: 0, b: 0 },\n mediumaquamarine: { r: 102, g: 205, b: 170 },\n mediumblue: { r: 0, g: 0, b: 205 },\n mediumorchid: { r: 186, g: 85, b: 211 },\n mediumpurple: { r: 147, g: 112, b: 219 },\n mediumseagreen: { r: 60, g: 179, b: 113 },\n mediumslateblue: { r: 123, g: 104, b: 238 },\n mediumspringgreen: { r: 0, g: 250, b: 154 },\n mediumturquoise: { r: 72, g: 209, b: 204 },\n mediumvioletred: { r: 199, g: 21, b: 133 },\n midnightblue: { r: 25, g: 25, b: 112 },\n mintcream: { r: 245, g: 255, b: 250 },\n mistyrose: { r: 255, g: 228, b: 225 },\n moccasin: { r: 255, g: 228, b: 181 },\n navajowhite: { r: 255, g: 222, b: 173 },\n navy: { r: 0, g: 0, b: 128 },\n oldlace: { r: 253, g: 245, b: 230 },\n olive: { r: 128, g: 128, b: 0 },\n olivedrab: { r: 107, g: 142, b: 35 },\n orange: { r: 255, g: 165, b: 0 },\n orangered: { r: 255, g: 69, b: 0 },\n orchid: { r: 218, g: 112, b: 214 },\n palegoldenrod: { r: 238, g: 232, b: 170 },\n palegreen: { r: 152, g: 251, b: 152 },\n paleturquoise: { r: 175, g: 238, b: 238 },\n palevioletred: { r: 219, g: 112, b: 147 },\n papayawhip: { r: 255, g: 239, b: 213 },\n peachpuff: { r: 255, g: 218, b: 185 },\n peru: { r: 205, g: 133, b: 63 },\n pink: { r: 255, g: 192, b: 203 },\n plum: { r: 221, g: 160, b: 221 },\n powderblue: { r: 176, g: 224, b: 230 },\n purple: { r: 128, g: 0, b: 128 },\n red: { r: 255, g: 0, b: 0 },\n rosybrown: { r: 188, g: 143, b: 143 },\n royalblue: { r: 65, g: 105, b: 225 },\n saddlebrown: { r: 139, g: 69, b: 19 },\n salmon: { r: 250, g: 128, b: 114 },\n sandybrown: { r: 244, g: 164, b: 96 },\n seagreen: { r: 46, g: 139, b: 87 },\n seashell: { r: 255, g: 245, b: 238 },\n sienna: { r: 160, g: 82, b: 45 },\n silver: { r: 192, g: 192, b: 192 },\n skyblue: { r: 135, g: 206, b: 235 },\n slateblue: { r: 106, g: 90, b: 205 },\n slategray: { r: 112, g: 128, b: 144 },\n slategrey: { r: 112, g: 128, b: 144 },\n snow: { r: 255, g: 250, b: 250 },\n springgreen: { r: 0, g: 255, b: 127 },\n steelblue: { r: 70, g: 130, b: 180 },\n tan: { r: 210, g: 180, b: 140 },\n teal: { r: 0, g: 128, b: 128 },\n thistle: { r: 216, g: 191, b: 216 },\n tomato: { r: 255, g: 99, b: 71 },\n transparent: {\n r: 255,\n g: 255,\n b: 255,\n a: 0,\n },\n turquoise: { r: 64, g: 224, b: 208 },\n violet: { r: 238, g: 130, b: 238 },\n wheat: { r: 245, g: 222, b: 179 },\n white: { r: 255, g: 255, b: 255 },\n whitesmoke: { r: 245, g: 245, b: 245 },\n yellow: { r: 255, g: 255, b: 0 },\n yellowgreen: { r: 154, g: 205, b: 50 },\n};\n\nexport default colorStruct;\n","/* eslint-disable camelcase */\n/* eslint-disable no-bitwise */\n/* eslint-disable no-nested-ternary */\n/* eslint-disable no-cond-assign */\n/* eslint-disable prefer-rest-params */\n\n/**\n * Module which defines a color object\n * @exports objects.views/charts/representation/color\n * @expose module:objects.views/charts/representation/color~Color\n */\nimport Class from './class';\nimport CSSColors from './css-colors';\n\n// color formats\nconst rgb = /^rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)$/i;\n\nconst rgba = /^rgba\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3}),(\\d(\\.\\d+)?)\\)$/i;\nconst hex = /^#([A-f0-9]{2})([A-f0-9]{2})([A-f0-9]{2})$/i;\nconst hexShort = /^#([A-f0-9])([A-f0-9])([A-f0-9])$/i;\nconst hsl = /^hsl\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*\\)$/i;\nconst hsla = /^hsla\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,(\\d(\\.\\d+)?)\\)$/i;\nconst floor = Math.floor;\nconst round = Math.round;\n\n/**\n * @class\n * @classdesc Class which provides color transformation functionality\n * @description This is a constructor.\n * @param {object} - Parameters to create a color from different notations\n * @example\n * // a few ways of instantiating a red color\n * var red;\n * red = new Color(255, 0, 0, 1); // rgba as parameters\n * red = new Color('#ff0000'); // hex\n * red = new Color('rgb(255,0,0)');//rgb as string\n * red = new Color('hsl(0, 100, 50)');// hsl as string\n * red = new Color(16711680);// uint\n */\nconst Color = Class.extend(\n /** @lends module:objects.views/charts/representation/color~Color# */ {\n init() {\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 1;\n let h;\n let s;\n let lcs;\n let l;\n let v;\n let c;\n let h_;\n let x;\n let rgb_;\n let m;\n let matches;\n let colorString;\n\n this._invalid = false;\n\n if (arguments[0] instanceof Color) {\n r = arguments[0]._r;\n g = arguments[0]._g;\n b = arguments[0]._b;\n a = arguments[0]._a;\n this._invalid = arguments[0]._invalid;\n } else if (arguments.length < 3) {\n if (typeof arguments[0] === 'string') {\n colorString = arguments[0];\n\n if ((matches = /^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/i.exec(colorString))) {\n r = parseInt(matches[1], 10);\n g = parseInt(matches[2], 10);\n b = parseInt(matches[3], 10);\n } else if (\n (matches = /^rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d(\\.\\d+)?)\\s*\\)$/i.exec(\n colorString\n ))\n ) {\n // rgba(1, 2, 3, 0.4)\n r = parseInt(matches[1], 10);\n g = parseInt(matches[2], 10);\n b = parseInt(matches[3], 10);\n a = parseFloat(matches[4]);\n } else if ((matches = /^#([A-f0-9]{2})([A-f0-9]{2})([A-f0-9]{2})$/i.exec(colorString))) {\n // #aBc123\n r = parseInt(matches[1], 16);\n g = parseInt(matches[2], 16);\n b = parseInt(matches[3], 16);\n a = 1;\n } else if ((matches = /^#([A-f0-9])([A-f0-9])([A-f0-9])$/i.exec(colorString))) {\n // #a5F\n r = parseInt(matches[1] + matches[1], 16);\n g = parseInt(matches[2] + matches[2], 16);\n b = parseInt(matches[3] + matches[3], 16);\n a = 1;\n } else if (\n (matches = /^hsl\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*\\)$/i.exec(colorString))\n ) {\n // hsl(1, 2, 3)\n h = parseFloat(matches[1]);\n s = parseFloat(matches[3]);\n l = parseFloat(matches[5]);\n\n h %= 360;\n s /= 100;\n l /= 100;\n\n h = h < 0 ? 0 : h > 360 ? 360 : h;\n s = s < 0 ? 0 : s > 1 ? 1 : s;\n l = l < 0 ? 0 : l > 1 ? 1 : l;\n\n c = l <= 0.5 ? 2 * l * s : (2 - 2 * l) * s;\n h_ = h / 60;\n x = c * (1 - Math.abs((h_ % 2) - 1));\n\n rgb_ = [];\n\n h_ = Math.floor(h_);\n switch (h_) {\n case 0:\n rgb_ = [c, x, 0];\n break;\n case 1:\n rgb_ = [x, c, 0];\n break;\n case 2:\n rgb_ = [0, c, x];\n break;\n case 3:\n rgb_ = [0, x, c];\n break;\n case 4:\n rgb_ = [x, 0, c];\n break;\n case 5:\n rgb_ = [c, 0, x];\n break;\n default:\n rgb_ = [0, 0, 0];\n }\n\n m = l - 0.5 * c;\n\n r = rgb_[0] + m;\n g = rgb_[1] + m;\n b = rgb_[2] + m;\n\n r = round(255 * r);\n g = round(255 * g);\n b = round(255 * b);\n a = 1.0;\n } else if (\n (matches = /^hsla\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,(\\d(\\.\\d+)?)\\)$/i.exec(\n colorString\n ))\n ) {\n // hsla(1,2,3,0.4)\n h = parseFloat(matches[1]);\n s = parseFloat(matches[3]);\n l = parseFloat(matches[5]);\n a = parseFloat(matches[7]);\n\n h %= 360;\n s /= 100;\n l /= 100;\n\n h = h < 0 ? 0 : h > 360 ? 360 : h;\n s = s < 0 ? 0 : s > 1 ? 1 : s;\n l = l < 0 ? 0 : l > 1 ? 1 : l;\n\n c = l <= 0.5 ? 2 * l * s : (2 - 2 * l) * s;\n h_ = h / 60;\n x = c * (1 - Math.abs((h_ % 2) - 1));\n\n rgb_ = [];\n\n h_ = Math.floor(h_);\n switch (h_) {\n case 0:\n rgb_ = [c, x, 0];\n break;\n case 1:\n rgb_ = [x, c, 0];\n break;\n case 2:\n rgb_ = [0, c, x];\n break;\n case 3:\n rgb_ = [0, x, c];\n break;\n case 4:\n rgb_ = [x, 0, c];\n break;\n case 5:\n rgb_ = [c, 0, x];\n break;\n default:\n rgb_ = [0, 0, 0];\n }\n\n m = l - 0.5 * c;\n\n r = rgb_[0] + m;\n g = rgb_[1] + m;\n b = rgb_[2] + m;\n\n r = round(255 * r);\n g = round(255 * g);\n b = round(255 * b);\n } else if (\n (matches = /^hsv\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*\\)$/i.exec(colorString))\n ) {\n // hsv(1, 2, 3) {\n h = parseFloat(matches[1]);\n s = parseFloat(matches[3]);\n v = parseFloat(matches[5]);\n\n h %= 360;\n s /= 100;\n v /= 100;\n\n h = h < 0 ? 0 : h > 360 ? 360 : h;\n s = s < 0 ? 0 : s > 1 ? 1 : s;\n v = v < 0 ? 0 : v > 1 ? 1 : v;\n\n c = v * s;\n h_ = h / 60;\n x = c * (1 - Math.abs((h_ % 2) - 1));\n\n rgb_ = [];\n\n h_ = Math.floor(h_);\n switch (h_) {\n case 0:\n rgb_ = [c, x, 0];\n break;\n case 1:\n rgb_ = [x, c, 0];\n break;\n case 2:\n rgb_ = [0, c, x];\n break;\n case 3:\n rgb_ = [0, x, c];\n break;\n case 4:\n rgb_ = [x, 0, c];\n break;\n case 5:\n rgb_ = [c, 0, x];\n break;\n default:\n rgb_ = [0, 0, 0];\n }\n\n m = v - c;\n\n r = rgb_[0] + m;\n g = rgb_[1] + m;\n b = rgb_[2] + m;\n\n r = round(255 * r);\n g = round(255 * g);\n b = round(255 * b);\n a = 1.0;\n } else if (CSSColors[colorString.toLowerCase()]) {\n lcs = colorString.toLowerCase();\n r = CSSColors[lcs].r;\n g = CSSColors[lcs].g;\n b = CSSColors[lcs].b;\n a = typeof CSSColors[lcs].a === 'number' ? CSSColors[lcs].a : 1.0;\n } else {\n this._invalid = true;\n }\n } else if (typeof arguments[0] === 'number' && arguments[0] >= 0 && arguments[1] === 'argb') {\n a = (0xff000000 & arguments[0]) >>> 24;\n a /= 255;\n r = (0xff0000 & arguments[0]) >> 16;\n g = (0x00ff00 & arguments[0]) >> 8;\n b = 0x0000ff & arguments[0];\n } else if (typeof arguments[0] === 'number' && arguments[0] >= 0) {\n r = (0xff0000 & arguments[0]) >> 16;\n g = (0x00ff00 & arguments[0]) >> 8;\n b = 0x0000ff & arguments[0];\n } else {\n this._invalid = true;\n }\n } else if (arguments.length >= 3) {\n r = arguments[0];\n g = arguments[1];\n b = arguments[2];\n a = arguments.length >= 4 ? arguments[3] : 1;\n } else {\n this._invalid = true;\n }\n\n if (Number.isNaN(+r + g + b + a)) {\n this._invalid = true;\n }\n\n this._r = floor(r);\n this._g = floor(g);\n this._b = floor(b);\n this._a = a;\n\n // object to cache string representations in various color spaces\n this._spaces = {};\n },\n isInvalid() {\n return this._invalid;\n },\n /**\n * Sets alpha value of color\n * @param {number} a - Alpha value of the color\n */\n setAlpha(a) {\n this._a = a;\n this._spaces = {};\n },\n /**\n * Gets the alpha value of this color\n * @returns {number}\n */\n getAlpha() {\n return this._a;\n },\n /**\n * Returns an rgb string representation of this color.\n * @return {string} An rgb string representation of this color\n */\n toRGB: function toRGB() {\n if (!this._spaces.rgb) {\n this._spaces.rgb = Color.toRGB(this);\n }\n return this._spaces.rgb;\n },\n /**\n * Returns an rgba string representation of this color.\n * @return {string} An rgba string representation of this color.\n */\n toRGBA: function toRGBA() {\n if (!this._spaces.rgba) {\n this._spaces.rgba = Color.toRGBA(this);\n }\n return this._spaces.rgba;\n },\n toString() {\n if (!this._spaces.rgb) {\n this._spaces.rgb = Color.toRGB(this);\n }\n return this._spaces.rgb;\n },\n /**\n * Returns a hex string representation of this color.\n * @return {string}\n */\n toHex: function toHex() {\n if (!this._spaces.hex) {\n this._spaces.hex = Color.toHex(this);\n }\n return this._spaces.hex;\n },\n /**\n * Returns a hsl string representation of this color using \"bi-hexcone\" model for lightness\n * @param {boolean} luma - Whether to use luma calculation\n * @return {string} In format hsl(0,0,0)\n */\n toHSL: function toHSL(luma) {\n if (!this._spaces.hsl) {\n this._spaces.hsl = Color.toHSL(this, luma);\n }\n return this._spaces.hsl;\n },\n /**\n * Returns a hsla string representation of this color using \"bi-hexcone\" model for lightness\n * @param {boolean} luma - Whether to use luma calculation\n * @return {string} In format hsla(0,0,0,0)\n */\n toHSLA: function toHSLA(luma) {\n if (!this._spaces.hsla) {\n this._spaces.hsla = Color.toHSLA(this, luma);\n }\n return this._spaces.hsla;\n },\n /**\n * Return the color components in hsv space using \"hexcone\" model for value (lightness)\n * @param {Color|string} c\n * @returns {object} The color components in hsv space {h:0-360, s:0-100, v:0-100}\n */\n toHSV() {\n const hsvComp = this.toHSVComponents();\n return `hsv(${hsvComp.h},${hsvComp.s},${hsvComp.v})`;\n },\n /**\n * Return the color components in hsv space using \"hexcone\" model for value (lightness)\n * @param {Color|string} c\n * @returns {object} The color components in hsv space {h:0-360, s:0-100, v:0-100}\n */\n toHSVComponents: function toHSVComponents() {\n if (!this._spaces.hsvComp) {\n this._spaces.hsvComp = Color.toHSVComponents(this);\n }\n return this._spaces.hsvComp;\n },\n /**\n * Returns a uint representation of this color\n * @return {number}\n */\n toNumber: function toNumber() {\n if (!this._spaces.num) {\n this._spaces.num = Color.toNumber(this);\n }\n return this._spaces.num;\n },\n /**\n * Checks if this color is perceived as dark.\n * @return {string} True if the luminance is below 160, false otherwise.\n */\n isDark() {\n return this.isInvalid() || this.getLuminance() < 125; // luminace calc option #2\n // return this.getLuminance() < 160; //luminace calc option #3\n },\n /**\n * Calculates the perceived luminance of the color.\n * @return {number} A value in the range 0-255 where a low value is considered dark and vice versa.\n */\n getLuminance() {\n // alpha channel is not considered\n if (typeof this._lumi === 'undefined') {\n // calculate luminance\n // this._lumi = 0.2126 * this._r + 0.7152 * this._g + 0.0722 * this._b; // option 1\n this._lumi = 0.299 * this._r + 0.587 * this._g + 0.114 * this._b; // option 2\n // this._lumi = Math.sqrt( 0.241 * this._r * this._r + 0.691 * this._g * this._g + 0.068 * this._b * this._b ); // option 3\n }\n\n return this._lumi;\n },\n /**\n * Shifts the color towards a lighter or darker shade\n * @param {number} value - A value in the range -100-100 to shift the color with along the HSL lightness.\n * @return {string} The shifted color as hsla string.\n */\n shiftLuminance(value) {\n const chsla = this.toHSLA();\n const matches = /^hsla\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,(\\d(\\.\\d+)?)\\)$/i.exec(\n chsla\n );\n\n const h = parseFloat(matches[1]);\n const s = parseFloat(matches[3]);\n let l = parseFloat(matches[5]);\n const a = parseFloat(matches[7]);\n // l *= 1 + value / 100;\n // l = Math.max( 0, l % 100 );\n l += value;\n l = Math.max(0, Math.min(l, 100));\n\n // if( value > 0 ){\n // s = s*0.2; //removing saturation to avoid the border from being too light\n // }\n\n return `hsla(${h},${s},${l},${a})`;\n },\n /**\n * Compares two colors.\n * @param {Color} c The color to compare with.\n * @return {boolean} True if the rgb channels are the same, false otherwise\n */\n isEqual(c) {\n if (c instanceof Color) {\n return this._r === c._r && this._g === c._g && this._b === c._b;\n }\n\n c = new Color(c);\n return this._r === c._r && this._g === c._g && this._b === c._b;\n },\n /**\n * Linearly interpolates each channel of two colors.\n * @param {Color} c2 The other color.\n * @param {number} t The interpolation value in the range (0-1).\n * @return {string} The blend as an rgb string.\n */\n blend(c2, t) {\n const r = floor(this._r + (c2._r - this._r) * t);\n const g = floor(this._g + (c2._g - this._g) * t);\n const b = floor(this._b + (c2._b - this._b) * t);\n const a = floor(this._a + (c2._a - this._a) * t);\n\n return `rgba(${[r, g, b, a].join(',')})`;\n },\n\n createShiftedColor(v) {\n if (v === undefined || Number.isNaN(+v)) {\n v = 1;\n }\n const lumi = this.getLuminance();\n const greenMultiplier = this._g < 126 ? 1 : 1 + this._g / 512;\n const hsla_string = this.shiftLuminance(\n (lumi * greenMultiplier < 220 ? 0.8 + 4 * (1 / (lumi + 1)) : -(0.8 + 1 * (lumi / 255))) * 20 * v\n );\n\n return new Color(hsla_string);\n },\n }\n);\n\n/**\n * Returns an rgb string representation of this color\n * @param {Color|string} c\n * @returns {string} An rgb string with channel values within range 0-255.\n */\nColor.toRGB = function toRGB(c) {\n if (c instanceof Color) {\n return `rgb(${[c._r, c._g, c._b].join(',')})`;\n }\n\n if (typeof c === 'string') {\n c = Color.toNumber(c);\n }\n\n const r = (c & 0xff0000) >> 16;\n const g = (c & 0x00ff00) >> 8;\n const b = c & 0x0000ff;\n\n return `rgb(${r},${g},${b})`;\n};\n/**\n *\n * @param c\n * @param a\n * @returns {string} The color rgb format.\n */\nColor.toRGBA = function toRGB(c, a) {\n if (c instanceof Color) {\n return `rgba(${[c._r, c._g, c._b, typeof a !== 'undefined' ? a : c._a].join(',')})`;\n }\n\n if (typeof c === 'string') {\n c = Color.toNumber(c);\n }\n\n const r = (c & 0xff0000) >> 16;\n const g = (c & 0x00ff00) >> 8;\n const b = c & 0x0000ff;\n\n return `rgba(${r},${g},${b},${typeof a !== 'undefined' ? a : c._a})`;\n};\n/**\n *\n * @param {Color|string} c\n * @returns {string} The color in hexadecimal space.\n */\nColor.toHex = function toHex(c) {\n let r;\n let g;\n let b;\n if (c instanceof Color) {\n r = c._r.toString(16);\n g = c._g.toString(16);\n b = c._b.toString(16);\n if (r.length === 1) {\n r = `0${r}`;\n }\n if (g.length === 1) {\n g = `0${g}`;\n }\n if (b.length === 1) {\n b = `0${b}`;\n }\n return `#${[r, g, b].join('')}`;\n }\n\n if (typeof c === 'string') {\n c = Color.toNumber(c);\n }\n\n r = ((c & 0xff0000) >> 16).toString(16);\n g = ((c & 0x00ff00) >> 8).toString(16);\n b = (c & 0x0000ff).toString(16);\n\n if (r.length === 1) {\n r = `0${r}`;\n }\n if (g.length === 1) {\n g = `0${g}`;\n }\n if (b.length === 1) {\n b = `0${b}`;\n }\n\n return `#${r}${g}${b}`;\n};\n/**\n * Return the color in hsl space using \"bi-hexcone\" model for lightness\n * @param {Color|string} c\n * @param {boolean} luma - Whether to use luma calculation\n * @returns {string} The color in hsl space.\n */\nColor.toHSL = function (c, luma) {\n let h = 0;\n let s;\n let l;\n let ch;\n if (typeof c === 'string') {\n c = new Color(c);\n }\n\n // red, green, blue, hue, saturation, lightness/luma, max, min, chroma\n const r = c._r / 255;\n const g = c._g / 255;\n const b = c._b / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n if (luma) {\n // Y'709 http://en.wikipedia.org/wiki/Rec._709\n // Y′709 = 0.21R + 0.72G + 0.07B\n l = 0.21 * r + 0.72 * g + 0.07 * b;\n } else {\n l = (max + min) / 2;\n }\n\n if (max === min) {\n // greyscale\n s = 0;\n h = 0;\n } else {\n ch = max - min;\n s = l > 0.5 ? ch / (2 - max - min) : ch / (max + min);\n switch (max) {\n case r:\n h = (g - b) / ch + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / ch + 2;\n break;\n case b:\n h = (r - g) / ch + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n\n return `hsl(${h * 360},${s * 100},${l * 100})`;\n};\n/**\n * Return the color in hsla space using \"bi-hexcone\" model for lightness\n * @param {Color|string} c\n * @param {boolean} luma - Whether to use luma calculation\n * @returns {string} The color in hsla space.\n */\nColor.toHSLA = function (c, luma) {\n let h = 0;\n let s;\n let l;\n let ch;\n if (typeof c === 'string') {\n c = new Color(c);\n }\n\n // red, green, blue, hue, saturation, lightness/luma, max, min, chroma\n const r = c._r / 255;\n const g = c._g / 255;\n const b = c._b / 255;\n const a = c._a;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n if (luma) {\n // Y'709 http://en.wikipedia.org/wiki/Rec._709\n // Y′709 = 0.21R + 0.72G + 0.07B\n l = 0.21 * r + 0.72 * g + 0.07 * b;\n } else {\n l = (max + min) / 2;\n }\n\n if (max === min) {\n // greyscale\n s = 0;\n h = 0;\n } else {\n ch = max - min;\n s = l > 0.5 ? ch / (2 - max - min) : ch / (max + min);\n switch (max) {\n case r:\n h = (g - b) / ch + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / ch + 2;\n break;\n case b:\n h = (r - g) / ch + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n\n return `hsla(${h * 360},${s * 100},${l * 100},${a})`;\n};\n/**\n * Return the color components in hsv space using \"hexcone\" model for value (lightness)\n * @param {Color|string} c\n * @returns {object} The color components in hsv space {h:0-360, s:0-100, v:0-100}\n */\nColor.toHSVComponents = function (c) {\n let h = 0;\n let s;\n let ch;\n if (typeof c === 'string') {\n c = new Color(c);\n }\n\n // red, green, blue, hue, saturation, value/luma, max, min, chroma\n const r = c._r / 255;\n const g = c._g / 255;\n const b = c._b / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n\n const v = max;\n\n if (max === min) {\n // greyscale\n s = 0;\n h = 0;\n } else {\n ch = max - min;\n s = ch === 0 ? 0 : ch / v;\n switch (max) {\n case r:\n h = (g - b) / ch + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / ch + 2;\n break;\n case b:\n h = (r - g) / ch + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n\n return { h: (h * 360) % 360, s: s * 100, v: v * 100 };\n};\n/**\n * Returns an number representation of the color\n * @param {Color|string} c\n * @returns {Number} Unsigned integer in the range 0-16 777 216\n */\nColor.toNumber = function toNumber() {\n if (arguments.length === 1 && arguments[0] instanceof Color) {\n return (arguments[0]._r << 16) + (arguments[0]._g << 8) + arguments[0]._b;\n }\n\n let r = 0;\n let g = 0;\n let b = 0;\n let matches;\n let colorString;\n\n if (arguments.length === 1) {\n if (typeof arguments[0] === 'string') {\n colorString = arguments[0];\n\n if ((matches = /^rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)$/i.exec(colorString))) {\n r = parseInt(matches[1], 10);\n g = parseInt(matches[2], 10);\n b = parseInt(matches[3], 10);\n } else if ((matches = /^#([A-f0-9]{2})([A-f0-9]{2})([A-f0-9]{2})$/i.exec(colorString))) {\n r = parseInt(matches[1], 16);\n g = parseInt(matches[2], 16);\n b = parseInt(matches[3], 16);\n } else if ((matches = /^#([A-f0-9])([A-f0-9])([A-f0-9])$/i.exec(colorString))) {\n r = parseInt(matches[1] + matches[1], 16);\n g = parseInt(matches[2] + matches[2], 16);\n b = parseInt(matches[3] + matches[3], 16);\n }\n }\n }\n return (r << 16) + (g << 8) + b;\n};\nColor.blend = function blend(c1, c2, t) {\n c1 = Color.toNumber(c1);\n c2 = Color.toNumber(c2);\n\n const r1 = (c1 & 0xff0000) >> 16;\n const g1 = (c1 & 0x00ff00) >> 8;\n const b1 = c1 & 0x0000ff;\n const r2 = (c2 & 0xff0000) >> 16;\n const g2 = (c2 & 0x00ff00) >> 8;\n const b2 = c2 & 0x0000ff;\n const r = r1 + (r2 - r1) * t;\n const g = g1 + (g2 - g1) * t;\n const b = b1 + (b2 - b1) * t;\n\n return (r << 16) + (g << 8) + b;\n};\nColor.getBlend = function getBlend(c1, c2, t) {\n const r = c1._r + (c2._r - c1._r) * t;\n const g = c1._g + (c2._g - c1._g) * t;\n const b = c1._b + (c2._b - c1._b) * t;\n const a = c1._a + (c2._a - c1._a) * t;\n\n return new Color(r, g, b, a);\n};\nColor.isCSSColor = function (color) {\n if (arguments.length > 1 || typeof color !== 'string') {\n return false;\n }\n return (\n rgb.test(color) ||\n rgba.test(color) ||\n hex.test(color) ||\n hexShort.test(color) ||\n hsl.test(color) ||\n hsla.test(color) ||\n CSSColors[color.toLowerCase()]\n );\n};\n\nColor.getBestContrast = function (color, cl, cd) {\n const lum = color.getLuminance();\n return Math.abs(lum - cl.getLuminance()) > Math.abs(lum - cd.getLuminance()) ? cl : cd;\n};\n\nColor.getContrast = function (color1, color2) {\n if (!color1 || !color2) {\n return undefined;\n }\n\n const l1 = color1.getLuminance() / 100;\n const l2 = color2.getLuminance() / 100;\n\n if (l1 > l2) {\n return (l1 + 0.05) / (l2 + 0.05);\n }\n\n return (l2 + 0.05) / (l1 + 0.05);\n};\n\nColor.isDark = function () {\n const o = {\n getLuminance: Color.prototype.getLuminance,\n isInvalid: Color.prototype.isInvalid,\n };\n Color.prototype.init.apply(o, [].slice.call(arguments));\n return Color.prototype.isDark.call(o);\n};\n\nColor.useDarkLabel = function (areaColor, bgIsDark) {\n return areaColor._a > 0.5 ? !areaColor.isDark() : !bgIsDark;\n};\n\nexport default Color;\n","import Color from './color';\n\nconst chartUtils = {\n TRANSPARENT_BLACK: 'rgba( 0,0,0,0.2 )',\n TRANSPARENT_WHITE: 'rgba( 255,255,255,0.7 )',\n LIGHT_GREY: '#ccc',\n DARK_GREY: '#666',\n BLACK: '#000',\n WHITE: '#fff',\n\n getInverse(color) {\n const colorObj = new Color(color);\n const alpha = colorObj.getAlpha();\n\n if (alpha === 0) {\n return this.BLACK;\n }\n return colorObj.isDark() ? this.WHITE : this.BLACK;\n },\n\n getContrastingGrey(color) {\n const colorObj = new Color(color);\n const alpha = colorObj.getAlpha();\n\n if (alpha === 0) {\n return this.DARK_GREY;\n }\n return Color.getBestContrast(colorObj, new Color(chartUtils.LIGHT_GREY), new Color(chartUtils.DARK_GREY));\n },\n\n getBestContrast(color, color1, color2) {\n return Color.getBestContrast(new Color(color), new Color(color1), new Color(color2));\n },\n\n getContrastingTransparent(color) {\n const colorObj = new Color(color);\n const alpha = colorObj.getAlpha();\n\n if (alpha === 0 || color === 'none') {\n return this.TRANSPARENT_BLACK;\n }\n return colorObj.isDark() ? this.TRANSPARENT_WHITE : this.TRANSPARENT_BLACK;\n },\n};\n\nexport default chartUtils;\n","const namespace = '.scrollHandler';\n\nScrollHandler.prototype.getScrollApi = getScrollApi;\nScrollHandler.prototype.setDisabled = setDisabled;\nScrollHandler.prototype.getDisabled = getDisabled;\nScrollHandler.prototype.setItemSize = setItemSize;\nScrollHandler.prototype.getItemSize = getItemSize;\nScrollHandler.prototype.getScrollViewSizeInItem = getScrollViewSizeInItem;\nScrollHandler.prototype.on = on;\nScrollHandler.prototype.isOn = isOn;\nScrollHandler.prototype.off = off;\nScrollHandler.prototype.updateViewState = updateViewState;\nScrollHandler.prototype.onResize = onResize;\nScrollHandler.prototype.isDataSizeChanged = isDataSizeChanged;\nScrollHandler.prototype.resetScroll = resetScroll;\nScrollHandler.prototype.getViewData = getViewData;\nScrollHandler.prototype.setOptions = setOptions;\nScrollHandler.prototype.getScrollState = getScrollState;\nScrollHandler.prototype.setScrollState = setScrollState;\n\nexport default ScrollHandler;\n\n/**\n * Implementation details\n */\n\nfunction ScrollHandler(chartInstance, $chartElement, getSlicedDataFn, onScrollCallback, legendKey) {\n if (!chartInstance || !$chartElement || !getSlicedDataFn) {\n throw Error('Scroll-handler: Missing input');\n }\n this._chartInstance = chartInstance;\n this._$chartElement = $chartElement;\n this._getSlicedDataFn = getSlicedDataFn;\n this._on = false;\n this._itemSize = 30;\n this.options = {\n direction: 'vertical',\n };\n this._onScrollCallback = onScrollCallback;\n this._legendKey = legendKey;\n}\n\nfunction getScrollApi() {\n if (!this._scrollApi) {\n this._scrollApi = this._chartInstance.scroll('dimension');\n }\n return this._scrollApi;\n}\n\nfunction setDisabled(b) {\n this._disabled = b;\n}\n\nfunction getDisabled() {\n return this._disabled;\n}\n\nfunction setItemSize(s) {\n if (this._itemSize !== s) {\n this._itemSize = s;\n calculateScrollViewSizeInItem.call(this);\n }\n}\n\nfunction getItemSize() {\n return this._itemSize;\n}\n\nfunction getScrollViewSizeInItem() {\n if (!this._scrollViewSizeInItem) {\n calculateScrollViewSizeInItem.call(this);\n }\n return this._scrollViewSizeInItem;\n}\n\nfunction on() {\n if (this._on) {\n return;\n }\n if (this.getScrollApi()) {\n this._scrollApi.removeAllListeners();\n this._scrollApi.on('update', onScroll.bind(this));\n }\n this._$chartElement.on(`mousewheel${namespace} DOMMouseScroll${namespace}`, onMouseWheel.bind(this));\n // TODO: Picasso does not support pointer events therefore we need to remove preventDefault on pointer down to make it work for IE.\n // However, this will make paning on touch device to pan the object, so we need to prevent it.\n // This fix should be removed when Picasso support pointer events.\n this._$chartElement.on(`touchstart${namespace}`, (event) => {\n event.preventDefault();\n });\n this._on = true;\n}\nfunction isOn() {\n return this._on;\n}\nfunction off() {\n if (!this._on) {\n return;\n }\n if (this.getScrollApi()) {\n this._scrollApi.removeAllListeners();\n }\n this._$chartElement.off(namespace);\n this._on = false;\n}\n\nfunction updateViewState(max) {\n calculateScrollViewSizeInItem.call(this);\n if (this.getScrollApi()) {\n this._scrollApi.update({ viewSize: this._scrollViewSizeInItem, max });\n }\n}\n\nfunction onResize() {\n this._sizeChanged = true;\n calculateScrollViewSizeInItem.call(this);\n if (this.getScrollApi()) {\n this._scrollApi.update({ viewSize: this._scrollViewSizeInItem });\n }\n}\n\nfunction isDataSizeChanged(pageNumberOfRows, datasetNumberOfRows) {\n return Math.min(this.getScrollViewSizeInItem(), datasetNumberOfRows) !== pageNumberOfRows;\n}\n\nfunction resetScroll() {\n if (this.getScrollApi()) {\n this._scrollApi.moveTo(0);\n }\n}\n\nfunction getViewData() {\n let top = 0;\n let height = 0;\n if (this.getScrollApi()) {\n const state = this._scrollApi.getState();\n top = Math.round(state.start);\n height = state.viewSize;\n }\n return this._getSlicedDataFn(top, height);\n}\n\nfunction getScrollState() {\n return this.getScrollApi().getState().start;\n}\nfunction setScrollState(state) {\n this.getScrollApi().moveTo(state);\n}\n\nfunction setOptions(options) {\n if (this.options.direction !== options.direction) {\n this._scrollViewSizeInItem = undefined;\n }\n this.options = options;\n}\n\nfunction calculateScrollViewSizeInItem() {\n const scrollSize =\n (this.options.direction === 'horizontal' ? this._$chartElement.width() : this._$chartElement.height()) || 0;\n const n = Math.floor(scrollSize / this.getItemSize());\n this._scrollViewSizeInItem = Math.max(n, 1); // Number of visible items should be at least 1\n}\n\nfunction getMouseWheelData(orgEvent) {\n let delta = 0;\n let deltaX = 0;\n let deltaY = 0;\n const divider = 60;\n\n // Old school scrollwheel delta\n if (orgEvent.wheelDelta) {\n delta = orgEvent.wheelDelta / divider;\n }\n if (orgEvent.detail) {\n delta = -orgEvent.detail / 3;\n }\n\n // New school multidimensional scroll (touchpads) deltas\n deltaY = delta;\n\n // Gecko\n if (orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS) {\n deltaY = 0;\n deltaX = -1 * delta;\n }\n\n // Webkit\n if (orgEvent.wheelDeltaY !== undefined) {\n deltaY = orgEvent.wheelDeltaY / divider;\n }\n if (orgEvent.wheelDeltaX !== undefined) {\n deltaX = (-1 * orgEvent.wheelDeltaX) / divider;\n }\n\n return {\n delta,\n deltaX,\n deltaY,\n x: orgEvent.pageX,\n y: orgEvent.pageY,\n };\n}\n\nfunction onLegendMouseWheel(e, event, chart, legendKey) {\n if (!!legendKey && chart.componentsFromPoint(event).some((c) => c.settings.key === legendKey)) {\n const legend = chart.component(legendKey);\n legend.emit(event.delta > 0 ? 'prev' : 'next');\n e.preventDefault();\n return true;\n }\n return false;\n}\n\nfunction onMouseWheel(e) {\n const event = getMouseWheelData(e.originalEvent);\n if (onLegendMouseWheel(e, event, this._chartInstance, this._legendKey) || this._disabled || !this.getScrollApi()) {\n return;\n }\n e.preventDefault();\n if (!event.delta) {\n return;\n }\n const scrollSpeed = 3;\n const value = event.delta < 0 ? scrollSpeed : -scrollSpeed;\n this._scrollApi.move(value);\n}\n\nfunction onScroll() {\n if (this._disabled || this._sizeChanged) {\n this._sizeChanged = false;\n return;\n }\n const self = this;\n this.getViewData()\n .then((layout) => {\n if (self._on && !self._disabled && self._onScrollCallback) {\n // Chart is updated with partial data\n self._onScrollCallback(layout, undefined, true);\n }\n })\n .catch((err) => {\n if (process.env.NODE_ENV === 'development') {\n if (typeof err !== 'undefined') {\n console.error(err);\n }\n }\n });\n}\n","/**\n * Checks whether a collision has occurred for range selection\n * @param e - event, in this case a mouse event\n * @param targets - the target points that the selections are hitting\n * @param selectionGesture - The type of selection gesture, for example area range select\n * @returns {boolean} - True, if a collision has occurred, otherwise false\n */\nfunction isOnComponentForRange(e, targets, selectionGesture) {\n return (\n !!e &&\n !!selectionGesture.chart\n .componentsFromPoint({\n x: e.center.x,\n y: e.center.y,\n })\n .filter((c) => targets.indexOf(c.settings.key) !== -1)[0]\n );\n}\n\n/**\n * Checks whether a collision has occurred for lasso selection\n * @param e - event, in this case a mouse event\n * @param gesturesParams - parameters for lasso selection\n * @param lassoGesture - the lasso gesture instance\n * @returns {boolean} - True, if a collision has occurred, otherwise false\n */\nfunction isOnComponentForLasso(e, gesturesParams, lassoGesture) {\n return (\n e &&\n lassoGesture.chart\n .componentsFromPoint({\n x: e.center.x,\n y: e.center.y,\n })\n .filter((c) => c.settings.key === gesturesParams.keys.componentKey)[0]\n );\n}\n\nfunction isOnComponentForNavBtn(e, legendBrushKey, navBtnGesture) {\n const components = navBtnGesture.chart.componentsFromPoint(e.center);\n return components.some((c) => c.settings.key === legendBrushKey);\n}\n\nexport default {\n isOnComponentForRange,\n isOnComponentForLasso,\n isOnComponentForNavBtn,\n};\n","import Hammer from 'hammerjs';\nimport onComponentChecker from './on-component-checker';\n\nfunction getLassoState(handlers) {\n return handlers.selectionHandler.lassoState() && !handlers.selectionHandler.allFieldsLocked();\n}\n\n/**\n * Handles lasso events for picasso charts using HammerJS. When activating lasso selection enable function is\n * triggered first. lassoStart is triggered on all areas specified by options.direction key. Lasso is the gesture\n * that will be active by default.\n */\nfunction callLassoGesture(state, gesturesFns, gesturesParams) {\n return {\n type: 'Pan',\n options: {\n direction: Hammer.DIRECTION_ALL,\n threshold: 1,\n enable(manager, e) {\n if (state.lassoing) {\n return gesturesFns.isSelectionEnabled();\n }\n const hitComp = onComponentChecker.isOnComponentForLasso(e, gesturesParams, this);\n return (\n gesturesFns.isSelectionEnabled() && e && (getLassoState(gesturesParams.handlers) || state.lassoing) && hitComp\n );\n },\n event: 'lasso',\n },\n recognizeWith: gesturesParams.handlers.scrollHandler ? 'drag' : null,\n events: {\n lassostart(e) {\n const hitComp = onComponentChecker.isOnComponentForLasso(e, gesturesParams, this);\n if (!hitComp) {\n return;\n }\n gesturesFns.switchTo('lasso', this.chart, e);\n state.lassoing = true;\n gesturesParams.handlers.selectionHandler.pauseEngineCalls(gesturesParams.keys.lassoBrushKey);\n e.clientX = e.pointers[0].clientX;\n e.clientY = e.pointers[0].clientY;\n gesturesFns.doEmit(this.chart, 'lasso', 'lassoStart', e);\n },\n lassomove(e) {\n if (!state.lassoing) {\n return;\n }\n e.clientX = e.pointers[0].clientX;\n e.clientY = e.pointers[0].clientY;\n gesturesFns.doEmit(this.chart, 'lasso', 'lassoMove', e);\n },\n lassoend(e) {\n if (!state.lassoing) {\n return;\n }\n\n e.clientX = e.pointers[0].clientX;\n e.clientY = e.pointers[0].clientY;\n gesturesFns.doEmit(this.chart, 'lasso', 'lassoEnd', e);\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.lassoBrushKey, true);\n state.lassoing = false;\n },\n lassocancel(e) {\n state.lassoing = false;\n gesturesFns.doEmit(this.chart, 'lasso', 'lassoCancel', e);\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.lassoBrushKey, false);\n },\n },\n };\n}\n\nexport default {\n callLassoGesture,\n};\n","import Hammer from 'hammerjs';\nimport onComponentChecker from './on-component-checker';\n\n/**\n * Handles measure range selection events for picasso charts using HammerJS. When activating measure range selection enable function is\n * triggered first. measurerangestart is triggered on all areas specified by options.direction key. Only after measurerangestart\n * is triggered, then the other events might be triggered as well. The different event\n * names must be appended as suffixes for options.event. In this case options.event is called measurerange, then our\n * events must be named measurerangestart, measurerangemove, measurerangeend, measurerangecancel.\n */\nfunction callMeasureRangeGesture(state, gesturesFns, gesturesParams, measureAxis) {\n const activeRangeBrush = gesturesParams.keys.dimRangeBrushKey ? 'majorrange' : 'arearange';\n\n return {\n type: 'Pan',\n options: {\n direction: gesturesParams.isHorizontal ? Hammer.DIRECTION_HORIZONTAL : Hammer.DIRECTION_VERTICAL,\n event: 'measurerange',\n enable(manager, e) {\n if (!gesturesParams.rangeSelStatus.isOpenMea) {\n return false;\n }\n\n if (state.measureSelecting) {\n return gesturesFns.isSelectionEnabled();\n }\n const targets =\n gesturesParams.active.gesture === 'measurerange'\n ? [measureAxis, gesturesParams.keys.componentKey]\n : [measureAxis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n\n state.measureSelecting = gesturesFns.isSelectionEnabled() && !!e && !!hitComp;\n return state.measureSelecting && !!gesturesParams.keys.measureRangeBrushKey;\n },\n },\n requireFailure: `lasso ${activeRangeBrush}`,\n recognizeWith: gesturesParams.handlers.scrollHandler ? 'drag' : null,\n events: {\n measurerangestart(e) {\n const targets =\n gesturesParams.active.gesture === 'measurerange'\n ? [measureAxis, gesturesParams.keys.componentKey]\n : [measureAxis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n if (!hitComp) {\n return;\n }\n\n state.measureSelecting = true;\n gesturesFns.switchTo('measurerange', this.chart, e);\n gesturesFns.doEmit(this.chart, 'rangeMeasure', 'rangeStart', e);\n gesturesParams.handlers.selectionHandler.pauseEngineCalls(gesturesParams.keys.measureRangeBrushKey);\n },\n measurerangemove(e) {\n if (!state.measureSelecting) {\n return;\n }\n gesturesFns.doEmit(this.chart, 'rangeMeasure', 'rangeMove', e);\n },\n measurerangeend(e) {\n if (!state.measureSelecting) {\n return;\n }\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.measureRangeBrushKey, true);\n gesturesFns.doEmit(this.chart, 'rangeMeasure', 'rangeEnd', e);\n state.measureSelecting = false;\n },\n measurerangecancel() {\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.measureRangeBrushKey, false);\n state.measureSelecting = false;\n },\n },\n };\n}\n\nexport default {\n callMeasureRangeGesture,\n};\n","import Hammer from 'hammerjs';\nimport onComponentChecker from './on-component-checker';\n\nfunction getAxisOrientation(axis, orientation) {\n let dir;\n if (axis === 'x-axis') {\n dir = orientation === 'horizontal' ? Hammer.DIRECTION_VERTICAL : Hammer.DIRECTION_HORIZONTAL;\n } else {\n dir = orientation === 'horizontal' ? Hammer.DIRECTION_HORIZONTAL : Hammer.DIRECTION_VERTICAL;\n }\n return dir;\n}\n\n/**\n * Handles area range selection events for picasso charts using HammerJS. When activating area range selection enable function is\n * triggered first. arearangestart is triggered on all areas specified by options.direction key. Only after arearangestart\n * is triggered, then the other events might be triggered as well. The different event\n * names must be appended as suffixes for options.event. In this case options.event is called arearange, then our\n * events must be named arearangestart, arearangemove, arearangeend, arearangecancel.\n */\nfunction callAreaRangeGesture(state, gesturesFns, gesturesParams, axis) {\n const activeRangeBrush = gesturesParams.keys.dimRangeBrushKey ? 'majorrange' : 'measurerange';\n\n return {\n // Area range select gesture\n type: 'Pan',\n options: {\n direction: getAxisOrientation(axis, gesturesParams.isHorizontal),\n event: 'arearange',\n enable(manager, e) {\n if (!gesturesParams.rangeSelStatus.isOpenDim) {\n return false;\n }\n\n if (state.minoring) {\n return gesturesFns.isSelectionEnabled();\n }\n const targets =\n gesturesParams.active.gesture === 'arearange' ? [axis, gesturesParams.keys.componentKey] : [axis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n\n state.minoring = gesturesFns.isSelectionEnabled() && !!e && !!hitComp;\n return state.minoring;\n },\n },\n requireFailure: `lasso ${activeRangeBrush}`,\n recognizeWith: gesturesParams.handlers.scrollHandler ? 'drag' : null,\n events: {\n arearangestart(e) {\n const targets =\n gesturesParams.active.gesture === 'arearange' ? [axis, gesturesParams.keys.componentKey] : [axis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n if (!hitComp) {\n return;\n }\n\n state.minoring = true;\n gesturesFns.switchTo('arearange', this.chart, e);\n gesturesFns.doEmit(this.chart, 'rangeMinor', 'areaStart', e);\n gesturesParams.handlers.selectionHandler.pauseEngineCalls(gesturesParams.keys.areaBrushKey);\n },\n arearangemove(e) {\n if (!state.minoring) {\n return;\n }\n // Behaves likes lasso, which adds all data points as soon as we hit the points, we only want to highlight the values within the range\n this.chart.brush(gesturesParams.keys.areaBrushKey).clear();\n gesturesFns.doEmit(this.chart, 'rangeMinor', 'areaMove', e);\n },\n arearangeend(e) {\n if (!state.minoring) {\n return;\n }\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.areaBrushKey, true);\n gesturesFns.doEmit(this.chart, 'rangeMinor', 'areaEnd', e);\n state.minoring = false;\n },\n arearangecancel() {\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.areaBrushKey, false);\n state.minoring = false;\n },\n },\n };\n}\n\nexport default {\n callAreaRangeGesture,\n};\n","import Hammer from 'hammerjs';\nimport onComponentChecker from './on-component-checker';\n\n/**\n * Handles dimension range selection events for picasso charts using HammerJS. When activating dimension range selection enable function is\n * triggered first. majorrangestart is triggered on all areas specified by options.direction key. Only after majorrangestart\n * is triggered, then the other events might be triggered as well. The different event\n * names must be appended as suffixes for options.event. In this case options.event is called majorrange, then our\n * events must be named majorrangestart, majorrangemove, majorrangeend, majorrangecancel.\n */\nfunction callDimensionRangeGesture(state, gesturesFns, gesturesParams, dimAxis) {\n const activeRangeBrush = gesturesParams.keys.measureRangeBrushKey ? 'measurerange' : 'arearange';\n return {\n type: 'Pan',\n options: {\n direction: gesturesParams.isHorizontal ? Hammer.DIRECTION_VERTICAL : Hammer.DIRECTION_HORIZONTAL,\n event: 'majorrange',\n enable(manager, e) {\n if (!gesturesParams.rangeSelStatus.isOpenDim) {\n return false;\n }\n if (state.majoring) {\n return gesturesFns.isSelectionEnabled();\n }\n const targets =\n gesturesParams.active.gesture === 'majorrange' ? [dimAxis, gesturesParams.keys.componentKey] : [dimAxis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n\n state.majoring = gesturesFns.isSelectionEnabled() && !!e && !!hitComp;\n return state.majoring && !!gesturesParams.keys.dimRangeBrushKey;\n },\n },\n requireFailure: `lasso ${activeRangeBrush}`,\n recognizeWith: gesturesParams.handlers.scrollHandler ? 'drag' : null,\n events: {\n majorrangestart(e) {\n const targets =\n gesturesParams.active.gesture === 'majorrange' ? [dimAxis, gesturesParams.keys.componentKey] : [dimAxis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n if (!hitComp) {\n return;\n }\n\n state.majoring = true;\n gesturesFns.switchTo('majorrange', this.chart, e);\n gesturesFns.doEmit(this.chart, 'rangeDim', 'rangeStart', e);\n gesturesParams.handlers.selectionHandler.pauseEngineCalls(gesturesParams.keys.dimRangeBrushKey);\n },\n majorrangemove(e) {\n if (!state.majoring) {\n return;\n }\n gesturesFns.doEmit(this.chart, 'rangeDim', 'rangeMove', e);\n },\n majorrangeend(e) {\n if (!state.majoring) {\n return;\n }\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.dimRangeBrushKey, true);\n gesturesFns.doEmit(this.chart, 'rangeDim', 'rangeEnd', e);\n state.majoring = false;\n },\n majorrangecancel() {\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.dimRangeBrushKey, false);\n state.majoring = false;\n },\n },\n };\n}\n\nexport default {\n callDimensionRangeGesture,\n};\n","import Hammer from 'hammerjs';\n\n/**\n * Handles dragging for picasso charts using HammerJS. When activating dragging the enable function is\n * triggered first. dragstart is triggered on all areas specified by options.direction key. The different event\n * names must be appended as suffixes for options.event. In this case options.event is called drag, then our\n * events must be named dragstart, dragmove, dragend, dragcancel.\n */\nfunction callDragGesture(state, gesturesFns, gesturesParams, hasSelections, isRtl) {\n let dragPoint = {};\n return {\n type: 'Pan',\n options: {\n direction: gesturesParams.isHorizontal ? Hammer.DIRECTION_VERTICAL : Hammer.DIRECTION_HORIZONTAL,\n event: 'drag',\n enable(manager, e) {\n if (state.dragging) {\n return gesturesFns.isNavigationEnabled();\n }\n\n state.dragging =\n gesturesFns.isNavigationEnabled() &&\n !!e &&\n !!this.chart\n .componentsFromPoint({ x: e.center.x, y: e.center.y })\n .filter((c) => c.settings.key === gesturesParams.keys.componentKey)[0];\n return state.dragging;\n },\n },\n requireFailure: hasSelections ? `lasso ${gesturesFns.getBrushConfig()}` : '',\n events: {\n dragstart(e) {\n dragPoint = { x: e.deltaX, y: e.deltaY };\n let change =\n -(gesturesParams.isHorizontal ? e.deltaY : e.deltaX) / gesturesParams.handlers.scrollHandler.getItemSize();\n if (!gesturesParams.isHorizontal && isRtl) {\n change = -change;\n }\n gesturesParams.handlers.scrollHandler.getScrollApi().move(change);\n },\n dragmove(e) {\n if (!state.dragging) {\n return;\n }\n let change =\n -(gesturesParams.isHorizontal ? e.deltaY - dragPoint.y : e.deltaX - dragPoint.x) /\n gesturesParams.handlers.scrollHandler.getItemSize();\n if (!gesturesParams.isHorizontal && isRtl) {\n change = -change;\n }\n gesturesParams.handlers.scrollHandler.getScrollApi().move(change);\n dragPoint = { x: e.deltaX, y: e.deltaY };\n },\n dragend() {\n if (!state.dragging) {\n return;\n }\n state.dragging = false;\n },\n dragcancel() {\n state.dragging = false;\n },\n },\n };\n}\n\nexport default {\n callDragGesture,\n};\n","import onComponentChecker from './on-component-checker';\n\n/**\n * Handles navigational button events for picasso charts using HammerJS. When pressing on a navigational button,\n * the enable function is triggered to check if the navigational button should be enabled or not.\n * For example, in edit mode it should be disabled.\n * @param isEnabledFn - Function that returns a boolean. In this case return false if in edit mode, true otherwise\n * @param legendBrushKey - String defining the legend brush key\n * @returns An object for reacting to tap events according to HammerJS API\n */\nfunction callNavBtnGesture(isEnabledFn, legendBrushKey) {\n return {\n type: 'Tap',\n options: {\n event: 'navBtnTap',\n enable(manager, e) {\n if (!e || !isEnabledFn()) {\n return false;\n }\n\n return onComponentChecker.isOnComponentForNavBtn(e, legendBrushKey, this);\n },\n },\n events: {\n navBtnTap(e) {\n // Invokes paging interaction on legend\n this.chart.componentsFromPoint(e.center).forEach((c) => {\n const btn = e.target;\n const attr = btn ? btn.getAttribute('data-action') : '';\n if (attr) {\n return c.emit(attr);\n }\n return undefined;\n });\n },\n },\n };\n}\n\nexport default {\n callNavBtnGesture,\n};\n","import lassoGesture from './gestures/lasso-gesture';\nimport measureRangeGesture from './gestures/measure-range-gesture';\nimport areaRangeGesture from './gestures/area-range-gesture';\nimport dimensionRangeGesture from './gestures/dimension-range-gesture';\nimport dragGesture from './gestures/drag-gesture';\nimport navBtnGesture from './gestures/navigational-button-gesture';\n\n/**\n * Creates Picasso components for interaction component that are dependent on eatchother\n */\n\nfunction DependentInteractions(handlers, orientation, isRtl, keys, rangeSelStatus) {\n const ret = {};\n\n orientation = orientation || 'vertical';\n\n const lassoBrushKey = keys.lassoBrushKey || 'select';\n const dimRangeBrushKey = keys.dimRangeBrushKey || null;\n const measureRangeBrushKey = keys.measureRangeBrushKey || null;\n const areaBrushKey = keys.areaBrushKey || null;\n const legendBrushKey = keys.legendBrushKey || null;\n\n const hasSelections = !!handlers.selectionHandler && handlers.selectionHandler.isOn();\n\n const state = {\n dragging: false,\n lassoing: false,\n majoring: false,\n minoring: false,\n measureSelecting: false,\n };\n\n const active = {\n gesture: '',\n type: '',\n };\n\n const isHorizontal = orientation === 'horizontal';\n\n const dimAxis = isHorizontal ? 'y-axis' : 'x-axis';\n const measureAxis = isHorizontal ? 'x-axis' : 'y-axis';\n\n function switchTo(gesture, chart, e) {\n if (active.gesture === gesture) {\n return;\n }\n let clearKey = lassoBrushKey;\n const activeChart = chart || active.chart;\n\n switch (active.gesture) {\n case 'majorrange':\n doEmit(activeChart, 'rangeDim', 'rangeClear', e);\n clearKey = dimRangeBrushKey;\n break;\n case 'measurerange':\n doEmit(activeChart, 'rangeMeasure', 'rangeClear', e);\n clearKey = measureRangeBrushKey;\n break;\n case 'arearange':\n doEmit(activeChart, 'rangeMinor', 'areaClear', e);\n clearKey = areaBrushKey;\n break;\n default:\n break;\n }\n\n active.gesture = gesture;\n const newType = gesture === 'range' ? 'range' : 'item';\n\n if (active.type && active.type !== newType) {\n activeChart.brush(clearKey).clear();\n }\n\n active.chart = chart;\n active.type = newType;\n }\n\n // Just added here to allow easy disabling of things while developing\n function doEmit(chart, comp, cont, e) {\n if (chart) {\n const inst = chart.component(comp);\n if (inst) {\n inst.emit(cont, e);\n }\n }\n }\n\n function getBrushConfig() {\n if (!dimRangeBrushKey) {\n return 'measurerange arearange';\n }\n if (!measureRangeBrushKey) {\n return 'majorrange arearange';\n }\n return 'majorrange measurerange';\n }\n\n let gestures = [];\n\n const gesturesFns = {\n isSelectionEnabled: () => handlers.selectionHandler && handlers.selectionHandler.isOn(),\n isNavigationEnabled: () => handlers.scrollHandler && handlers.scrollHandler.isOn(),\n doEmit,\n switchTo,\n getBrushConfig,\n };\n\n const gesturesParams = {\n handlers,\n keys,\n isHorizontal,\n active,\n rangeSelStatus,\n };\n\n if (hasSelections) {\n gestures = [\n {\n type: 'Tap',\n options: {\n event: 'rangeClearTap',\n },\n events: {\n rangeClearTap(e) {\n switchTo('none', this.chart, e);\n\n state.majoring = false;\n state.measureSelecting = false;\n state.minoring = false;\n },\n },\n },\n ];\n\n // Ordering matters here because the tap event, because the above gesture does not return anything\n // and we want don't want to call the navigational button enable function for all tap events\n gestures.unshift(navBtnGesture.callNavBtnGesture(gesturesFns.isNavigationEnabled, legendBrushKey));\n\n gestures.push(lassoGesture.callLassoGesture(state, gesturesFns, gesturesParams));\n\n // Only two of the axis range selection can exist at the same time\n if (!dimRangeBrushKey) {\n gestures.push(measureRangeGesture.callMeasureRangeGesture(state, gesturesFns, gesturesParams, measureAxis));\n // Register component to selections handler so it is cleared properly\n handlers.selectionHandler.addComponent(measureRangeBrushKey, { id: 'rangeMeasure', clear: 'rangeClear' });\n\n gestures.push(areaRangeGesture.callAreaRangeGesture(state, gesturesFns, gesturesParams, dimAxis));\n handlers.selectionHandler.addComponent(areaBrushKey, { id: 'rangeMinor', clear: 'areaClear' });\n } else if (!measureRangeBrushKey) {\n gestures.push(dimensionRangeGesture.callDimensionRangeGesture(state, gesturesFns, gesturesParams, dimAxis));\n handlers.selectionHandler.addComponent(dimRangeBrushKey, { id: 'rangeDim', clear: 'rangeClear' });\n\n gestures.push(areaRangeGesture.callAreaRangeGesture(state, gesturesFns, gesturesParams, measureAxis));\n handlers.selectionHandler.addComponent(areaBrushKey, { id: 'rangeMinor', clear: 'areaClear' });\n } else {\n gestures.push(dimensionRangeGesture.callDimensionRangeGesture(state, gesturesFns, gesturesParams, dimAxis));\n handlers.selectionHandler.addComponent(dimRangeBrushKey, { id: 'rangeDim', clear: 'rangeClear' });\n\n gestures.push(measureRangeGesture.callMeasureRangeGesture(state, gesturesFns, gesturesParams, measureAxis));\n handlers.selectionHandler.addComponent(measureRangeBrushKey, { id: 'rangeMeasure', clear: 'rangeClear' });\n }\n }\n\n if (handlers.scrollHandler) {\n gestures.push(dragGesture.callDragGesture(state, gesturesFns, gesturesParams, hasSelections, isRtl));\n\n // On scroll we need to switch of the major ranging, so that pan will work\n handlers.scrollHandler.getScrollApi().on('update', onScrollUpdate);\n }\n\n function onScrollUpdate() {\n switchTo('none');\n state.majoring = false;\n state.measureSelecting = false;\n state.minoring = false;\n }\n\n ret.gestures = gestures;\n ret.destroy = function () {\n if (handlers.scrollHandler) {\n handlers.scrollHandler.getScrollApi().removeListener('update', onScrollUpdate);\n }\n };\n\n return ret;\n}\n\nexport default {\n create: DependentInteractions,\n};\n","/**\n * Create a new tooltip action context\n *\n * @param {Object} chartInstance Picasso chart instance\n * @returns {Object} The tooltip actions handler instance\n */\nfunction TooltipActions(chartInstance, componentKey, data, context, tooltipKey) {\n let hasOpen = false;\n\n context = context || 'tooltip';\n data = data || ['self'];\n\n const brush = chartInstance.brush(context);\n\n const fn = {};\n\n // Exposed here for test stub purposes\n fn.isOpen = function () {\n return hasOpen;\n };\n\n function closeTooltip() {\n if (hasOpen) {\n const tooltip = chartInstance.component(tooltipKey);\n tooltip.emit('hide');\n }\n hasOpen = false;\n }\n\n function openTooltip(shapes) {\n hasOpen = true;\n const tooltip = chartInstance.component(tooltipKey);\n const e = {};\n const data = { nodes: shapes };\n tooltip.emit('show', e, data);\n }\n\n fn.closeTooltip = closeTooltip;\n\n /**\n * Updates the contents in tooltip. Requires an array of tooltipInfo.labelData and\n * an array of tooltipInfo.measureRows for the tooltip to display content, otherwise\n * it will show nothing. These key value mappings should be sent in from the charts.\n */\n function update() {\n const brushes = brush.brushes();\n\n // Fetches only the shapes that we are hovering over\n const shapes = chartInstance.getAffectedShapes(context, 'and', data, componentKey);\n\n if (brushes.length >= 1) {\n hasOpen = true;\n openTooltip(shapes);\n } else {\n closeTooltip();\n }\n }\n\n function toggleInterceptor(items) {\n // Remove duplicates if we have multiple dimensions to aoivd a toggle\n // ex: set(2006 ) ->2006 is on, followed by set(2006 ) ->2006 is off\n if (data.length > 1) {\n const check = {};\n const ret = [];\n items.forEach((item) => {\n if (!check[item.key]) {\n check[item.key] = {};\n }\n if (!check[item.key][item.value]) {\n check[item.key][item.value] = true;\n ret.push(item);\n }\n });\n return ret;\n }\n return items;\n }\n\n fn.update = update;\n fn.toggleInterceptor = toggleInterceptor;\n return fn;\n}\n\nexport default {\n create(...args) {\n return TooltipActions(...args);\n },\n};\n","export default {\n formatMeasureValue,\n};\n\nfunction formatMeasureValue(field, measureContent) {\n if (field.raw().isCustomFormatted) {\n return field.formatter()(measureContent.value.qText);\n }\n const value = measureContent.value.qNum !== undefined ? measureContent.value.qNum : measureContent.value.qValue;\n return field.formatter()(value);\n}\n","const MAX_VISIBLE_ITEMS = 5;\nconst OTHERS_ELEMNO = -3;\nconst NULL_ELEMNO = -2;\n\n// TODO: The function getAffectedShapes returns duplicate shapes.\n// Remove when this is fixed on picasso\nfunction filterDuplicateShapes(shapes) {\n const uniques = [];\n\n shapes.forEach((shape) => {\n if (uniques.indexOf(shape) === -1 && shape.type !== 'container') {\n uniques.push(shape);\n }\n });\n\n return uniques;\n}\n\nexport const createFilter = (filterShapes) => (shapes) =>\n filterShapes ? filterShapes(shapes) : filterDuplicateShapes(shapes);\n\nexport const createContent =\n (context) =>\n ({ h, data, style }) => {\n const content = extractContent(context, data);\n const renderSettings = {\n h,\n style,\n rtl: context.direction === 'rtl',\n translator: context.translator,\n };\n return context.renderer(renderSettings, content);\n };\n\nfunction extractContent(tooltipInfo, uniqueShapes) {\n const dataset = tooltipInfo.chartInstance.dataset(tooltipInfo.dataPath);\n\n // Create content + header\n const content = [];\n\n const numberInExcess = uniqueShapes.length - MAX_VISIBLE_ITEMS;\n const numItems = Math.min(MAX_VISIBLE_ITEMS, uniqueShapes.length);\n for (let j = 0; j < numItems; j++) {\n const shape = uniqueShapes[j];\n const localContent = {\n rows: [],\n };\n\n if (tooltipInfo.labelData) {\n const labels = [];\n const refPaths = tooltipInfo.labelData;\n let isNullValue = false;\n for (let i = 0; i < refPaths.length; i++) {\n const currentNode = shape.data[refPaths[i]].value;\n if (currentNode.qElemNo === NULL_ELEMNO || currentNode.qElemNumber === NULL_ELEMNO) {\n // The node is null\n isNullValue = true;\n break;\n }\n labels.push(shape.data[refPaths[i]].value.qText);\n }\n\n if (isNullValue) {\n return undefined;\n }\n\n localContent.header = tooltipInfo.headerResolver(labels);\n localContent.rows = tooltipInfo.measureRows\n .map((measureRow) => {\n const rowData = shape.data;\n return tooltipInfo.rowResolver(dataset.field(rowData[measureRow].source.field), rowData[measureRow], rowData);\n })\n .filter((row) => !!row);\n\n const colorByData = getColorByDimData(tooltipInfo, shape);\n if (colorByData) {\n localContent.rows.unshift(colorByData);\n }\n content.push(localContent);\n }\n }\n if (numberInExcess > 0) {\n content.numberInExcess = numberInExcess;\n }\n\n content.rowCount = content[0] ? content.length * content[0].rows.length : 0;\n return content;\n}\n\nfunction getOthersIndex(values) {\n let index = -1;\n for (let i = 0; i < values.length; i++) {\n if (values[i] === OTHERS_ELEMNO) {\n index = i;\n }\n }\n return index;\n}\n\n/**\n * Get the information of how the color by row should look like.\n * The data for color by is fetched directly from the shape and it's key value mapping called\n * colorByDim, which contains the label and the elemNo\n * @param tooltipInfo - an object containing the chart view\n * @param shape - an object representing the shape currently hovered upon\n * @returns {{label: string - legendTitle, value: (*|String) - color by value, template: string - html template}}\n */\nfunction getColorByDimData(tooltipInfo, shape) {\n const colorData = shape.data.color;\n const colorSettings = tooltipInfo.colorService?.getSettings?.();\n\n if (!colorSettings || colorSettings.type === 'color' || !colorData || !colorSettings.fieldType) {\n return undefined;\n }\n\n const ids = [];\n tooltipInfo.data.forEach((mapping) => {\n const elemNoObj = shape.data[mapping];\n if (elemNoObj) {\n ids.push(elemNoObj.value);\n }\n });\n const othersIndex = getOthersIndex(ids);\n\n const { translator } = tooltipInfo;\n const label = colorSettings.label;\n const color = shape.attrs?.fill;\n const value = othersIndex !== -1 ? translator.get('properties.dimensionLimits.others') : colorData.label;\n return { color, label, value };\n}\n","/* eslint no-underscore-dangle: 0 */\nconst TOOLTIP_CONTAINER_ID = 'dist-flow-tooltip';\nconst TOOLTIP_CONTAINER_SELECTOR = `#${TOOLTIP_CONTAINER_ID}`;\n\nfunction appendTooltipContainer() {\n if (!document.querySelector(TOOLTIP_CONTAINER_SELECTOR)) {\n const container = document.createElement('div');\n container.id = TOOLTIP_CONTAINER_ID;\n container.style.overflow = 'hidden';\n container.style.position = 'fixed';\n container.style.pointerEvents = 'none';\n container.style.left = '0px';\n container.style.top = '0px';\n container.style.width = '100%';\n container.style.height = '100%';\n container.style.zIndex = 1020;\n document.body.appendChild(container);\n }\n}\n\nfunction destroyTooltipContainer() {\n const elm = document.querySelector(TOOLTIP_CONTAINER_SELECTOR);\n if (elm && elm.parentElement && elm.childElementCount < 1) {\n elm.parentElement.removeChild(elm);\n }\n}\n\n/**\n * Base tooltip definition\n */\nexport default function tooltip({ key = 'tooltip', rtl, fontFamily, filter, content }) {\n return {\n show: true,\n key,\n type: 'tooltip',\n layout: {\n displayOrder: 3,\n },\n beforeMount() {\n appendTooltipContainer();\n },\n beforeUpdate() {\n appendTooltipContainer();\n },\n destroyed() {\n destroyTooltipContainer();\n },\n settings: {\n appendTo: () => document.querySelector(TOOLTIP_CONTAINER_SELECTOR),\n content,\n filter,\n extract: (context) => context.node,\n direction: rtl ? 'rtl' : 'ltr',\n placement: 'bounds',\n },\n style: {\n arrow: {\n color: '#404040',\n },\n content: {\n display: 'table',\n 'border-spacing': '4px',\n background: 'rgba(64, 64, 64, 0.9)',\n opacity: '1',\n fontSize: '13px',\n fontFamily,\n 'empty-cells': 'show',\n },\n cell: {\n 'max-width': '180px',\n 'word-break': 'break-word',\n 'word-wrap': 'break-word',\n 'overflow-wrap': 'break-word',\n hyphens: 'auto',\n },\n },\n };\n}\n","/** @jsx h */\nimport rtlUtils from '../../extra/rtl-util';\n\nconst { detectTextDirection: getDirection } = rtlUtils;\n\nexport default function render(settings, content) {\n const { h, style, translator, rtl } = settings;\n const result = [];\n const labelTextAlign = rtl ? 'right' : 'left';\n content.forEach((item) => {\n if (item.header) {\n const headerStyle = {\n ...style.cell,\n textAlign: labelTextAlign,\n fontWeight: 'bold',\n direction: getDirection(item.header),\n };\n result.push(\n <tr>\n <td style={headerStyle} colSpan={2}>\n {item.header}\n </td>\n </tr>\n );\n }\n item.rows.forEach((row) => {\n let valueContent = row.value;\n if (row.color) {\n const symbolStyle = {\n display: 'inline-block',\n width: 10,\n height: 10,\n 'background-color': row.color,\n margin: '0 8px',\n };\n const symbol = <div style={symbolStyle} />;\n valueContent = rtl ? [row.value, symbol] : [symbol, row.value];\n }\n const label = rtl ? [':', row.label] : [row.label, ':'];\n const labelStyle = { ...style.cell, textAlign: labelTextAlign, direction: getDirection(row.label) };\n const valueStyle = { ...style.cell, textAlign: rtl ? 'left' : 'right', direction: getDirection(row.value) };\n result.push(\n <tr>\n <td style={labelStyle}>{label}</td>\n <td style={valueStyle}>{valueContent}</td>\n </tr>\n );\n });\n });\n if (content.numberInExcess) {\n const moreText = translator.get('Object.ChartTooltip.NMore', content.numberInExcess);\n const moreStyle = { ...style.cell, textAlign: labelTextAlign, direction: getDirection(moreText) };\n result.push(\n <tr>\n <td style={moreStyle} colSpan={2}>\n {moreText}\n </td>\n </tr>\n );\n }\n return result;\n}\n","import extend from 'extend';\nimport TooltipAction from './tooltip-actions';\nimport formatting from '../formatting';\nimport { createFilter, createContent } from './tooltip-content';\nimport createTooltip from './tooltips-component';\nimport defaultTooltipRenderer from './tooltip-renderer';\n\nconst DEFAULT_OPTIONS = {\n tooltipKey: 'tooltip',\n data: [''],\n contexts: ['tooltip'],\n headerResolver(values) {\n return values.join(', ');\n },\n rowResolver(field, measureContent) {\n return {\n value: formatting.formatMeasureValue(field, measureContent),\n label: field.title(),\n };\n },\n direction: 'ltr',\n renderer: defaultTooltipRenderer,\n};\n\n/**\n * Create a new Tooltips handler\n *\n * @param {Object} model The backend model for the chart\n * @param {Object} chartInstance Picasso chart instance\n * @returns {Object} The selections handler instance\n */\nfunction Tooltips(chartInstance, $element, chartType) {\n if (!chartInstance) {\n throw Error('Tooltips-handler: Missing input');\n }\n\n let tooltipContexts = {};\n let on = false;\n\n // Not need for a function, so turned it into an object\n const fn = {};\n\n /**\n * Setup a tooltips context\n * @param {Object} options Tooltip context options\n * @returns {Object} The selections handler instance\n */\n fn.setUp = function (options) {\n const opts = extend(true, {}, DEFAULT_OPTIONS, options);\n\n if (!opts.componentKey) {\n throw Error('Tooltips-handler.setUp: Missing required input');\n }\n\n if (tooltipContexts[opts.contexts[0]] && on) {\n deRegContext(tooltipContexts[opts.contexts[0]]);\n }\n\n const context = createContext(opts, chartInstance);\n tooltipContexts[opts.contexts[0]] = context;\n\n if (on) {\n registerContext(context);\n }\n\n const component = createTooltip({\n key: opts.tooltipKey,\n rtl: context.direction === 'rtl',\n fontFamily: context.theme.getStyle(chartType, 'tooltip', 'fontFamily'),\n filter: createFilter(context.filterShapes),\n content: createContent(context, opts.dataPath),\n });\n\n const settings = opts.chartBuilder.getSettings();\n settings.components.push(component);\n\n return {\n trigger: {\n on: context.treatAsDesktop ? 'over' : 'tap',\n action: 'set',\n contexts: opts.contexts,\n data: opts.data,\n globalPropagation: 'stop',\n },\n consume: opts.contexts.map((c) => ({ context: c })),\n component,\n };\n };\n\n fn.tearDown = function () {\n if (on) {\n deregister();\n }\n tooltipContexts = [];\n };\n\n function register() {\n Object.keys(tooltipContexts).forEach((key) => {\n registerContext(tooltipContexts[key]);\n });\n }\n\n function registerContext(context) {\n context.listeners.update = function (added, removed) {\n context.action.update(added, removed, context);\n };\n context.listeners.end = function () {\n context.action.closeTooltip();\n };\n\n context.brush.on(context.treatAsDesktop ? 'update' : 'set-values', context.listeners.update);\n context.brush.on('end', context.listeners.end);\n // Intecept the set-values call to avoid a toggle in the second dimension.\n context.brush.intercept('set-values', context.action.toggleInterceptor);\n }\n\n function deregister() {\n Object.keys(tooltipContexts).forEach((key) => {\n deRegContext(tooltipContexts[key]);\n });\n }\n\n function deRegContext(context) {\n context.brush.removeListener(context.treatAsDesktop ? 'update' : 'set-values', context.listeners.update);\n context.brush.removeListener('end', context.listeners.end);\n context.brush.removeInterceptor('set-values', context.action.toggleInterceptor);\n }\n\n function closeTooltip() {\n Object.keys(tooltipContexts).forEach((key) => {\n tooltipContexts[key].action.closeTooltip();\n });\n }\n\n function mouseLeave() {\n closeTooltip();\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (const prop in tooltipContexts) {\n tooltipContexts[prop].brush.clear();\n }\n }\n\n fn.closeTooltip = closeTooltip;\n\n fn.isOn = () => on;\n fn.on = function () {\n if (on) {\n return;\n }\n on = true;\n\n register();\n\n if ($element) {\n $element.on('mouseleave', mouseLeave);\n }\n };\n\n fn.off = function () {\n if (!on) {\n return;\n }\n on = false;\n deregister();\n\n if ($element) {\n $element.off('mouseleave', mouseLeave);\n }\n closeTooltip();\n };\n\n return fn;\n}\n\nexport default {\n create(chartInstance, $element, chartType) {\n return Tooltips(chartInstance, $element, chartType);\n },\n};\n\nfunction createContext(options, chartInstance) {\n return {\n brush: chartInstance.brush(options.contexts[0]),\n action: TooltipAction.create(\n chartInstance,\n options.componentKey,\n options.data,\n options.contexts[0],\n options.tooltipKey\n ),\n listeners: {},\n chartInstance,\n dataPath: options.dataPath,\n renderer: options.renderer,\n data: options.data,\n headerResolver: options.headerResolver,\n rowResolver: options.rowResolver,\n colorService: options.colorService,\n attrDimPath: options.attrDimPath,\n measureRows: options.measureRows,\n labelData: options.labelData,\n filterShapes: options.filterShapes,\n\n direction: options.environment.options.direction,\n theme: options.environment.theme,\n translator: options.environment.translator,\n treatAsDesktop: options.environment.deviceType !== 'touch',\n };\n}\n","/**\n * String validation util.\n *\n */\n\nconst CHARACTER_AVERAGE_WIDTH = 166 / 26;\nconst CHARACTER_MAX_WIDTH = 12;\nconst M_WIDTH = 11;\nconst CJK_AVERAGE_WIDTH = 12;\nconst CJK_OVER_LATIN_WIDTH_RATIO = CJK_AVERAGE_WIDTH / M_WIDTH;\n\nfunction startsWith(string, prefix) {\n return string.indexOf(prefix) === 0;\n}\n\nfunction endsWith(string, suffix) {\n return string.indexOf(suffix, string.length - suffix.length) !== -1;\n}\n\nfunction contains(haystack, needle) {\n if (!haystack) {\n throw new Error('Haystack is undefined.');\n }\n\n if (!needle) {\n throw new Error('Needle is undefined.');\n }\n\n return haystack.indexOf(needle) !== -1;\n}\n\nfunction stringWidthOverMWidth(len) {\n const n = 3; // For short strings with wide letters or numbers\n return (Math.min(len, n) * CHARACTER_MAX_WIDTH + Math.max(len - n, 0) * CHARACTER_AVERAGE_WIDTH) / M_WIDTH;\n}\n\nfunction getCharacterRatios(s) {\n if (!s) {\n return {\n latin: 0,\n cjk: 0,\n };\n }\n let CJK = s.match(/[\\u4E00-\\u9FFF]/g);\n let hiragana = s.match(/[\\u3040-\\u309F]/g);\n let katakana = s.match(/[\\u30A0-\\u30FF]/g);\n CJK = CJK ? CJK.length : 0;\n hiragana = hiragana ? hiragana.length : 0;\n katakana = katakana ? katakana.length : 0;\n const t = CJK + hiragana + katakana;\n return {\n latin: s.length - t,\n cjk: t,\n };\n}\n\nfunction getTotalCharacterRatios(qMatrix, columnIndex) {\n const total = { latin: 0, cjk: 0 };\n if (columnIndex === undefined) {\n qMatrix.forEach((row) => {\n const res = getCharacterRatios(row.qText);\n total.latin += res.latin;\n total.cjk += res.cjk;\n });\n } else {\n qMatrix.forEach((row) => {\n const res = getCharacterRatios(row[columnIndex].qText);\n total.latin += res.latin;\n total.cjk += res.cjk;\n });\n }\n const t = Math.max(1, total.latin + total.cjk);\n total.latinRatio = total.latin / t;\n total.cjkRatio = total.cjk / t;\n return total;\n}\n\nfunction getAdjustedMaxGlyphCount(maxGlyphCount, qMatrix, columnIndex) {\n const totalCharacterRatios = getTotalCharacterRatios(qMatrix, columnIndex);\n const latinGlyphCount = totalCharacterRatios.latinRatio * maxGlyphCount;\n const cjkGlyphCount = totalCharacterRatios.cjkRatio * maxGlyphCount;\n const adjustedMaxGlyphCount = Math.ceil(\n stringWidthOverMWidth(latinGlyphCount) + cjkGlyphCount * CJK_OVER_LATIN_WIDTH_RATIO\n );\n return adjustedMaxGlyphCount;\n}\n\n// TODO: Need to improve to make sure longer strings should have bigger width than shorter strings\nfunction estimateLatinLabelWidth(numLatins, maxLatinWidth, averageLatinWidth) {\n const latinWidth = numLatins <= 24 ? maxLatinWidth : averageLatinWidth;\n return numLatins * latinWidth;\n}\n\nfunction estimateLabelWidth(numCjks, numLatins, cjkWidth, maxLatinWidth, averageLatinWidth) {\n return numCjks * cjkWidth + estimateLatinLabelWidth(numLatins, maxLatinWidth, averageLatinWidth);\n}\n\nexport default {\n endsWith,\n startsWith,\n contains,\n stringWidthOverMWidth,\n getCharacterRatios,\n getTotalCharacterRatios,\n getAdjustedMaxGlyphCount,\n estimateLatinLabelWidth,\n estimateLabelWidth,\n};\n","import waterfallUtils from './waterfallchart-utils';\n// import NumberFormatter from '../../../assets/objects/utils/number-formatter';\n\n/**\n * Implementation details\n */\n\n// This will generate a hypercube from n measures\n\nfunction getGeneratedDimensionPath(dimIndex) {\n return `qDimensionInfo/${dimIndex}`;\n}\n\nfunction getGeneratedMeasurePath(mesIndex) {\n return `qMeasureInfo/${mesIndex}`;\n}\n\nfunction getMeasureFormat(layout) {\n return layout.qHyperCube.qMeasureInfo[0].qNumFormat;\n}\n\nfunction generateHyperCube(layout, theme) {\n const qMeasureInfo = layout.qHyperCube.qMeasureInfo;\n const qMatrix = layout.qHyperCube.qDataPages[0].qMatrix;\n const numMeasures = qMeasureInfo.length;\n if (!numMeasures) {\n return;\n }\n\n const positveColor = waterfallUtils.getColorForPositiveValue(layout, theme);\n const negativeColor = waterfallUtils.getColorForNegativeValue(layout, theme);\n\n const subtotalColor = waterfallUtils.getColorForSubtotal(layout, theme);\n // const _numberFormatter = new NumberFormatter(); // TODO: number formatter from picasso-plugin-q ??\n const _numberFormatter = { prepare: () => {}, formatValue: (x) => `${x}` };\n _numberFormatter.prepare('#.#A'); // Used by client generated subtotals when format by Measure expression selected.\n\n const generatedMatrix = [];\n let start = 0;\n let end = 0;\n let startMax = -Number.MAX_VALUE;\n let startMin = Number.MAX_VALUE;\n let endMax = -Number.MAX_VALUE;\n let endMin = Number.MAX_VALUE;\n let numItems = 0;\n let color;\n let qNum;\n for (let i = 0; i < numMeasures; i++) {\n qNum = Number.isNaN(+qMatrix[0][i].qNum) ? 0 : qMatrix[0][i].qNum;\n if (qMeasureInfo[i].valueType !== waterfallUtils.valueTypes.SUBTOTAL) {\n start = end;\n end += qNum * (qMeasureInfo[i].valueType === waterfallUtils.valueTypes.INVERSE ? -1 : 1);\n color = start < end ? positveColor : negativeColor;\n generatedMatrix.push([\n { qText: qMeasureInfo[i].qFallbackTitle, qElemNumber: numItems++ },\n { qText: color },\n { qNum: start },\n { qNum: end },\n { qNum: end - start, qText: qMatrix[0][i].qText },\n ]);\n if (qMeasureInfo[i].subtotal && qMeasureInfo[i].subtotal.enable) {\n generatedMatrix.push([\n { qText: qMeasureInfo[i].subtotal.label || '', qElemNumber: numItems++ },\n { qText: subtotalColor },\n { qNum: 0 },\n { qNum: end },\n { qNum: end, qText: _numberFormatter.formatValue(end) },\n ]);\n }\n } else {\n start = 0;\n end = qNum;\n generatedMatrix.push([\n { qText: qMeasureInfo[i].qFallbackTitle, qElemNumber: numItems++ },\n { qText: subtotalColor },\n { qNum: start },\n { qNum: end },\n { qNum: end - start, qText: qMatrix[0][i].qText },\n ]);\n }\n startMax = Math.max(startMax, start);\n startMin = Math.min(startMin, start);\n endMax = Math.max(endMax, end);\n endMin = Math.min(endMin, end);\n }\n const numFormat = getMeasureFormat(layout);\n const isAutoFormat = layout.qHyperCube.qMeasureInfo[0].qIsAutoFormat;\n const isCustomFormatted = layout.qDef.isCustomFormatted;\n const generated = {\n qHyperCube: {\n qMode: 'S',\n qDataPages: [\n {\n qArea: {\n qTop: 0,\n qLeft: 0,\n qWidth: 5,\n qHeight: generatedMatrix.length,\n },\n qMatrix: generatedMatrix,\n },\n ],\n qDimensionInfo: [\n {\n qStateCounts: {},\n },\n {\n qStateCounts: {},\n },\n ],\n qMeasureInfo: [\n {\n qMin: startMin,\n qMax: startMax,\n qNumFormat: numFormat,\n qIsAutoFormat: isAutoFormat,\n isCustomFormatted,\n },\n {\n qMin: endMin,\n qMax: endMax,\n qNumFormat: numFormat,\n qIsAutoFormat: isAutoFormat,\n isCustomFormatted,\n },\n {\n qMin: endMin,\n qMax: endMax,\n qNumFormat: numFormat,\n qIsAutoFormat: isAutoFormat,\n isCustomFormatted,\n },\n ],\n },\n };\n layout.generatedMatrix = generatedMatrix;\n layout.generated = generated;\n}\n\nfunction generateSlicedHyperCube(layout, top, height) {\n layout.generated.qHyperCube.qDataPages = [\n {\n qArea: {\n qTop: top,\n qLeft: 0,\n qWidth: 5,\n qHeight: height,\n },\n qMatrix: layout.generatedMatrix.slice(top, top + height),\n },\n ];\n}\n\nexport default {\n generateHyperCube,\n generateSlicedHyperCube,\n getGeneratedDimensionPath,\n getGeneratedMeasurePath,\n};\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import { scaleLinear } from 'd3-scale';\n\nconst SENSE_PICASSO_SPACING_COEFFICIENT = 100;\n\nconst tickGenerator = {\n getMinorTicks({ majorTicks, minorTickCount }) {\n const minor = [];\n for (let i = 0; i < majorTicks.length - 1; i++) {\n const start = majorTicks[i];\n const end = majorTicks[i + 1];\n const step = (end - start) / (minorTickCount + 1);\n\n for (let c = 1; c <= minorTickCount; c++) {\n minor.push(start + step * c);\n }\n }\n\n return minor;\n },\n\n // Adjust ticks: a) add minor ticks at two ends, if neccessary,\n // b) add set min and/or set max\n // For simplicity, only consider minorTickCount == 1\n adjustTicks({ ticks, majorTicks, minorTicks, autoMinMax, minMax, min, max }) {\n // a) add minor ticks at two ends, if neccessary,\n const d = minorTicks[0] - majorTicks[0];\n const deltaMin = majorTicks[0] - min;\n if (deltaMin > d) ticks.unshift({ value: majorTicks[0] - d, isMinor: true });\n const deltaMax = max - majorTicks[majorTicks.length - 1];\n if (deltaMax > d) ticks.push({ value: majorTicks[majorTicks.length - 1] + d, isMinor: true });\n if (autoMinMax) return ticks;\n\n // b) add set min and/or set max\n if ((minMax === 'min' || minMax === 'minMax') && deltaMin > 0) {\n ticks.unshift({ value: min, isMinor: false });\n }\n if ((minMax === 'max' || minMax === 'minMax') && deltaMax > 0) {\n ticks.push({ value: max, isMinor: false });\n }\n return ticks;\n },\n\n getTicks({ layout, height }) {\n const { autoMinMax, minMax, spacing } = layout.measureAxis;\n let min = Math.min(...layout.generated.qHyperCube.qMeasureInfo.map((measure) => measure.qMin));\n let max = Math.max(...layout.generated.qHyperCube.qMeasureInfo.map((measure) => measure.qMax));\n if (!autoMinMax) {\n switch (minMax) {\n case 'min':\n min = layout.measureAxis.min;\n break;\n case 'max':\n max = layout.measureAxis.max;\n break;\n case 'minMax':\n ({ min, max } = layout.measureAxis);\n break;\n default:\n break;\n }\n }\n const distance = SENSE_PICASSO_SPACING_COEFFICIENT * spacing;\n const count = Math.max(1, Math.round(height / distance));\n\n const scale = scaleLinear().domain([min, max]);\n const majorTicks = scale.ticks(count);\n const minorTicks = tickGenerator.getMinorTicks({ majorTicks, minorTickCount: 1 });\n\n // Generate an array of tick objects following the format defined by picasso\n const ticks = [\n ...majorTicks.map((value) => ({ value, isMinor: false })),\n ...minorTicks.map((value) => ({ value, isMinor: true })),\n ].sort((a, b) => a.value - b.value);\n return tickGenerator.adjustTicks({ ticks, majorTicks, minorTicks, autoMinMax, minMax, min, max });\n },\n};\n\nexport default tickGenerator;\n","import ChartView from '@qlik/common/picasso/chart-view';\nimport ChartBuilder from '@qlik/common/picasso/chart-builder/chart-builder';\nimport chartStyleUtils from '@qlik/common/extra/chart-style-utils';\nimport ScrollHandler from '@qlik/common/picasso/scroll/scroll-handler';\nimport DependentInteractions from '@qlik/common/picasso/selections/dependent-interactions';\nimport TooltipHandler from '@qlik/common/picasso/tooltip/tooltips-handler';\nimport formatting from '@qlik/common/picasso/formatting';\nimport stringUtil from '@qlik/common/extra/string-util';\nimport { getAxisLabelStyle, getValueLabelStyle, getLegendLabelStyle } from '@qlik/common/extra/chart-style-component';\nimport CubeGenerator from './waterfallchart-cube-generator-by-measures';\nimport waterfallUtils from './waterfallchart-utils';\nimport tickGenerator from './waterfallchart-tick-generator';\n\nconst chartID = waterfallUtils.chartID;\nconst MAX_GLYPH_COUNT = 20;\nconst BAR_WIDTH_RATIO = 0.7;\n\n//\n// Implementation details\n//\n\nfunction init({ picasso, environment, $element, flags }) {\n const backendApi = null;\n const selectionsApi = null;\n this._super(picasso, $element, environment, backendApi, selectionsApi);\n this._tooltipHandler = TooltipHandler.create(this.chartInstance, $element, chartID);\n this._scrollHandler = new ScrollHandler(\n this.chartInstance,\n $element,\n this.getSlicedData.bind(this),\n this.updateChart.bind(this)\n );\n this._scrollHandler.setOptions({ direction: 'horizontal' });\n this.setDataPaths(['generated/qHyperCube']);\n this.flags = flags;\n}\n\nfunction getSlicedData(top, height) {\n CubeGenerator.generateSlicedHyperCube(this.layout, top, height);\n return Promise.resolve(this.layout);\n}\n\nfunction setSnapshotData(snapshotLayout) {\n this._super(snapshotLayout);\n snapshotLayout.generated = this.layout.generated; // eslint-disable-line no-param-reassign\n snapshotLayout.generatedMatrix = this.layout.generatedMatrix; // eslint-disable-line no-param-reassign\n}\nfunction getViewState() {\n return {\n scroll: this._scrollHandler.getScrollState(),\n };\n}\n\nfunction updateScrollHandlerState(b) {\n this._scrollHandler.setDisabled(!!b);\n}\n\nfunction updateConstraints(constraints) {\n const navigation = !constraints.active;\n const tooltip = !constraints.passive;\n\n this._scrollHandler[navigation ? 'on' : 'off']();\n this._tooltipHandler[tooltip ? 'on' : 'off']();\n}\nfunction off() {\n this._scrollHandler.off();\n this._tooltipHandler.off();\n}\n\nfunction getMaxGlyphCountForDimAxis(layout) {\n let glyphCount = -Number.MAX_VALUE;\n layout.qHyperCube.qMeasureInfo.forEach((measureInfo) => {\n glyphCount = Math.max(glyphCount, measureInfo.qFallbackTitle.length);\n if (\n measureInfo.valueType !== waterfallUtils.valueTypes.SUBTOTAL &&\n measureInfo.subtotal &&\n measureInfo.subtotal.enable\n ) {\n glyphCount = Math.max(glyphCount, measureInfo.subtotal.label ? measureInfo.subtotal.label.length : 0);\n }\n });\n return Math.min(MAX_GLYPH_COUNT, Math.max(0, glyphCount));\n}\n\nfunction getDimAxisSettings(layout) {\n return {\n settings: {\n labels: {\n mode: layout.dimensionAxis.label,\n maxGlyphCount: Math.ceil(stringUtil.stringWidthOverMWidth(getMaxGlyphCountForDimAxis(layout))), // To mitigate SUI-1445\n maxLengthPx: this.picassoElement.getBoundingClientRect().height / 4, // Picasso version 0.5.3 does not support function here\n },\n },\n };\n}\n\nfunction getBarSettings(tooltipSettings, layout) {\n const brushTrigger = tooltipSettings ? [tooltipSettings.box.trigger] : [];\n const brushConsume = tooltipSettings ? tooltipSettings.box.consume : [];\n return {\n data: {\n extract: {\n key: 'qHyperCube',\n field: CubeGenerator.getGeneratedDimensionPath(0),\n props: {\n start: { field: CubeGenerator.getGeneratedMeasurePath(0) },\n end: { field: CubeGenerator.getGeneratedMeasurePath(1) },\n measure: {\n field: CubeGenerator.getGeneratedMeasurePath(2),\n reduce: 'first',\n value(v) {\n return v;\n },\n },\n boxColor: {\n field: CubeGenerator.getGeneratedDimensionPath(1),\n value(v) {\n return v.qText;\n },\n },\n isCustomFormatted: !!layout.qDef.isCustomFormatted,\n tooltip: {\n value(v) {\n return v;\n },\n },\n },\n },\n },\n settings: {\n major: { scale: 'dimension' },\n minor: { scale: 'measure' },\n orientation: '', // There is a bug in Picasso where it uses height instead of width when the orientation is vertical.\n box: {\n width: BAR_WIDTH_RATIO,\n maxWidthPx: 4000,\n fill(d) {\n return d.datum.boxColor.value;\n },\n strokeWidth: 0,\n },\n },\n brush: {\n trigger: brushTrigger,\n consume: brushConsume,\n },\n };\n}\n\nfunction getInsideValueColor(boxColor, darkColor, lightColor) {\n return chartStyleUtils.getBestContrast(boxColor, darkColor, lightColor);\n}\n\nfunction getLabel(context) {\n const measure = context.data.measure;\n const field = context.dataset(measure.source.key).field(measure.source.field);\n return formatting.formatMeasureValue(field, measure);\n}\n\nfunction getBarLabelSettings(theme, layout, flags) {\n const valueLabelSettings = getValueLabelStyle(chartID, theme, layout, flags);\n const outsideValueColor = valueLabelSettings?.fill || theme.getStyle(chartID, 'value.color', 'default');\n const darkColor = theme.getStyle(chartID, 'value.color', 'dark');\n const lightColor = theme.getStyle(chartID, 'value.color', 'light');\n return {\n settings: {\n sources: [\n {\n strategy: {\n settings: {\n ...valueLabelSettings,\n direction(context) {\n return context.data && context.data.end.value > context.data.start.value ? 'up' : 'down';\n },\n labels: [\n {\n placements: [\n { fill: outsideValueColor },\n {\n fill(s) {\n return flags.isEnabled('CLIENT_IM_3364')\n ? outsideValueColor\n : getInsideValueColor(s.data.boxColor.value, darkColor, lightColor);\n },\n },\n {\n position: 'opposite',\n fill: outsideValueColor,\n justify: 0,\n },\n ],\n label: getLabel,\n },\n ],\n },\n },\n },\n ],\n },\n };\n}\n\nfunction getPicassoScrollSettings(layout, viewSize) {\n return {\n viewSize,\n max: layout.generatedMatrix.length,\n };\n}\n\nfunction getBridgeSettings(isRtl, theme) {\n const bridgeColor = theme.getStyle(chartID, 'shape.bridge', 'stroke');\n return {\n data: {\n extract: {\n key: 'qHyperCube',\n field: CubeGenerator.getGeneratedDimensionPath(0),\n props: {\n x: {},\n y: {\n field: CubeGenerator.getGeneratedMeasurePath(1),\n },\n },\n },\n },\n settings: {\n x: {\n scale: 'dimension',\n ref: 'x',\n fn(d) {\n return isRtl ? d.scale(d.datum.value) : d.scale(d.datum.value) + d.scale.bandwidth(); // place the point between two bars\n },\n },\n y: { scale: 'measure' },\n sizeLimits: {\n maxPx: 20000,\n maxRelExtent: 10000,\n minRelDiscrete: 0,\n maxRelDiscrete: 1,\n },\n shape: 'line',\n stroke: bridgeColor,\n size: 1 - BAR_WIDTH_RATIO,\n strokeDasharray: '4 4',\n fill: 'none',\n strokeWidth(d, i) {\n return i === d.data.items.length - 1 ? 0 : 2;\n },\n },\n };\n}\n\nfunction getLegendSettings(environment, layout, flags) {\n const { theme, translator } = environment;\n const positveColor = waterfallUtils.getColorForPositiveValue(layout, theme);\n const negativeColor = waterfallUtils.getColorForNegativeValue(layout, theme);\n const subtotalColor = waterfallUtils.getColorForSubtotal(layout, theme);\n const positiveText = translator.get('waterfall.legend.positiveValue.label');\n const negativeText = translator.get('waterfall.legend.negativeValue.label');\n const subtotalText = translator.get('waterfall.legend.subtotal.label');\n const labelStyleSettings = getLegendLabelStyle(chartID, theme, layout, flags);\n\n return {\n displayOrder: 200,\n minimumLayoutMode: 'MEDIUM',\n prioOrder: 0,\n scale: {\n type: 'categorical-color',\n data: [positiveText, negativeText, subtotalText],\n range: [positveColor, negativeColor, subtotalColor],\n },\n style: {\n item: {\n label: {\n fontSize: labelStyleSettings.fontSize,\n fontFamily: labelStyleSettings.fontFamily,\n fill: labelStyleSettings.color,\n },\n },\n title: {\n show: false,\n },\n },\n };\n}\n\nfunction createChartSettings(layout) {\n // Create components\n const isRtl = this.isRtl();\n const { theme } = this.environment;\n const isSnapshot = !!layout.snapshotData;\n const chartBuilder = ChartBuilder.create({\n chartID,\n theme,\n isRtl,\n });\n const width = this.picassoElement.clientWidth;\n const height = this.picassoElement.clientHeight;\n const tooltipSettings = {};\n tooltipSettings.box = this._tooltipHandler.setUp({\n chartBuilder,\n environment: this.environment,\n data: [''],\n contexts: ['boxTip'],\n componentKey: 'box-marker',\n headerResolver() {\n return undefined; // Waterfall does not have dimension\n },\n rowResolver(field, measureContent, shapeData) {\n const color = shapeData.boxColor.value;\n const value = formatting.formatMeasureValue(field, measureContent);\n return {\n value,\n label: shapeData.tooltip.value.qText,\n color,\n };\n },\n labelData: ['tooltip'], // Should be a mapped path under extract, mandatory to display tooltip\n measureRows: ['measure'], // Should be a mapped path under extract, mandatory to display tooltip\n });\n\n const handlers = {\n scrollHandler: this._scrollHandler,\n selectionHandler: null,\n };\n\n const keys = {\n componentKey: 'box-marker',\n };\n\n if (this._dependentActions) {\n this._dependentActions.destroy();\n }\n this._dependentActions = DependentInteractions.create(handlers, 'vertical', isRtl, keys);\n\n chartBuilder.addPreset('dimension-measure-chart', {\n // common\n isRtl,\n orientation: 'vertical',\n theme,\n\n // grid lines\n gridlines: layout.gridlines,\n\n // dimension axis and title\n includeDimensionAxis: true,\n dimensionAxisProperties: layout.dimensionAxis,\n dimensionAxisSettings: getDimAxisSettings.call(this, layout),\n dimensionSource: CubeGenerator.getGeneratedDimensionPath(0),\n dimensionScaleSettings: {\n component: {\n maxPxStep() {\n return height / 4;\n },\n },\n },\n\n // measure axis and title\n includeMeasureAxis: true,\n measureAxisProperties: layout.measureAxis,\n // measureTitleText: \"\",\n measureSource: [CubeGenerator.getGeneratedMeasurePath(0), CubeGenerator.getGeneratedMeasurePath(1)],\n measureScaleSettings: {\n component: {\n expand: 0,\n include: [0], // Make sure that the measure axis starts from 0.\n ticks: {\n values: () => tickGenerator.getTicks({ layout, height }),\n },\n },\n },\n\n // scroll\n hasNavigation: !isSnapshot,\n isNavigationEnabledFn: () => this._scrollHandler.isOn(),\n scrollSettings: getPicassoScrollSettings(layout, this._scrollHandler.getScrollViewSizeInItem()),\n\n // ref-lines\n refLines: layout.refLine && layout.refLine.refLines,\n\n brushActions: this._dependentActions.gestures,\n axisLabelStyle: getAxisLabelStyle(chartID, theme, layout, this.flags),\n });\n\n chartBuilder.addComponent('box-marker', getBarSettings(tooltipSettings, layout));\n chartBuilder.addComponent('point-marker', getBridgeSettings(isRtl, theme));\n\n if (!layout.legend || layout.legend.show) {\n chartBuilder.addComponent('categorical-legend', getLegendSettings(this.environment, layout, this.flags), {\n dock: layout.legend ? layout.legend.dock : 'auto',\n isRtl,\n chartWidth: width,\n chartHeight: height,\n });\n }\n\n if (layout.dataPoint.showLabels) {\n chartBuilder.addComponent('labels', getBarLabelSettings(theme, layout, this.flags));\n }\n\n // Add snapshot settings\n const settings = chartBuilder.getSettings();\n this.addSnapshotChartSettings(settings, layout);\n\n return settings;\n}\n\nfunction updateData(layout) {\n const { theme, options } = this.environment;\n const self = this;\n\n return this._super(layout).then(() => {\n if (self._destroyed) {\n return Promise.reject();\n }\n\n let top;\n let height;\n\n const isSnapshot = !!layout.snapshotData;\n if (isSnapshot) {\n const area = self.layout.generated.qHyperCube.qDataPages[0].qArea; // To fix SUI-4307\n top = area.qTop;\n height = area.qHeight;\n CubeGenerator.generateHyperCube(self.layout, theme);\n } else {\n CubeGenerator.generateHyperCube(self.layout, theme);\n updateScrollHandlerState.call(self, true); // No need to run it in snapshot mode\n const { viewState } = options;\n if (viewState) {\n self._scrollHandler.updateViewState(self.layout.generatedMatrix.length);\n self._scrollHandler.setScrollState(viewState.scroll);\n top = viewState.scroll;\n } else {\n self._scrollHandler.resetScroll();\n top = 0;\n }\n height = self._scrollHandler.getScrollViewSizeInItem();\n }\n CubeGenerator.generateSlicedHyperCube(self.layout, top, height);\n return undefined;\n });\n}\n\nfunction updateOnScrollViewChanged(chart) {\n chart._scrollHandler.onResize();\n}\n\nfunction resize() {\n updateOnScrollViewChanged(this);\n this._super();\n}\n\nfunction paint() {\n const isSnapshot = !!this.layout.snapshotData;\n if (!isSnapshot && !this.environment.options.viewState) {\n updateScrollHandlerState.call(this, false);\n }\n this._tooltipHandler.closeTooltip();\n\n const pageNumberOfRows = this.layout.generated.qHyperCube.qDataPages[0].qMatrix.length;\n const datasetNumberOfRows = this.layout.generatedMatrix.length;\n if (!isSnapshot && this._scrollHandler.isDataSizeChanged(pageNumberOfRows, datasetNumberOfRows)) {\n const _super = this._super;\n const self = this;\n return this._scrollHandler.getViewData().finally(() => _super.call(self));\n }\n return this._super();\n}\n\nconst waterfallChartView = ChartView.extend('WaterfallChart', {\n namespace: '.waterfallchart',\n chartID,\n init,\n updateConstraints,\n off,\n createChartSettings,\n updateData,\n resize,\n paint,\n getSlicedData,\n setSnapshotData,\n getViewState,\n});\n\nexport default waterfallChartView;\n","import { useConstraints, useEffect, useElement, usePromise, useState, useStaleLayout } from '@nebula.js/stardust';\nimport $ from 'jquery';\nimport locale from '@qlik/common/locale';\nimport picassoSetup from '@qlik/common/picasso/picasso-setup';\nimport useResize from '@qlik/common/nebula/resize';\nimport useEnvironment from '@qlik/common/nebula/use-environment';\nimport setupSnapshot from '@qlik/common/nebula/snapshot';\n\nimport qae from './waterfallchart-qae';\nimport ext from './ext';\nimport ChartView from './waterfallchart-view';\n\nfunction usePromiseNoError(...args) {\n const [, error] = usePromise(...args);\n if (error) {\n throw error;\n }\n}\n\nexport default function supernova(env) {\n locale(env.translator);\n const picasso = picassoSetup();\n\n return {\n qae: qae(env),\n ext: ext(env),\n component() {\n const element = useElement();\n const environment = useEnvironment();\n const layout = useStaleLayout();\n const constraints = useConstraints();\n\n const [instance, setInstance] = useState();\n\n useEffect(() => {\n const $element = $(element);\n const view = new ChartView({ picasso, environment, $element, flags: env.flags });\n\n setInstance(view);\n\n return () => {\n view.destroy();\n };\n }, []);\n\n usePromiseNoError(async () => {\n if (!instance) {\n return;\n }\n instance.updateEnvironment(environment);\n instance.updateConstraints(constraints);\n\n await instance.updateData(layout);\n await instance.paint();\n }, [layout, instance, environment]);\n\n useResize(instance);\n setupSnapshot(instance);\n },\n };\n}\n","import all from './all.json';\n\nexport default function autoRegister(translator) {\n if (translator && translator.get && translator.add) {\n const t = 'Object.Disclaimer.LimitedData';\n const g = translator.get(t);\n // if translated string is different from its id\n // assume translations already exists for current locale\n if (g !== t) {\n return;\n }\n\n Object.keys(all).forEach((key) => {\n translator.add(all[key]);\n });\n }\n}\n","import picassojs from 'picasso.js';\nimport PicassoQ from 'picasso-plugin-q';\nimport PicassoHammer from 'picasso-plugin-hammer';\nimport Hammer from 'hammerjs';\nimport eventArea from './plugins/event-area';\nimport disclaimer from './disclaimer/disclaimer-component.jsx';\n\nexport default function setup() {\n const picasso = picassojs();\n // default to use canvas renderer\n picasso.renderer.prio(['canvas']);\n\n // TODO: investigate picasso warnings\n // if (DebugFlags.DEVELOPER) {\n // picasso.logger.level(picassojs.logger.LOG_LEVEL.WARN);\n // }\n\n picasso.use(PicassoQ);\n picasso.use(PicassoHammer(Hammer));\n picasso.use(eventArea);\n picasso.component('disclaimer', disclaimer);\n return picasso;\n}\n","import { useApp, useAppLayout, useTranslator, useOptions, useMemo, useTheme, useDeviceType } from '@nebula.js/stardust';\n\nexport default function useEnvironment() {\n const app = useApp();\n const appLayout = useAppLayout();\n const deviceType = useDeviceType();\n const options = useOptions();\n const theme = useTheme();\n const translator = useTranslator();\n\n const environment = useMemo(\n () => ({\n app,\n appLayout,\n deviceType,\n options,\n theme,\n translator,\n }),\n [app, appLayout, options.direction, options.freeResize, translator.language(), theme.name(), deviceType]\n );\n\n return environment;\n}\n","import { useConstraints, useOptions, usePromise, useRect } from '@nebula.js/stardust';\n\nexport default function useResize(chartInstance) {\n const rect = useRect();\n const options = useOptions();\n const constraints = useConstraints();\n\n const [, error] = usePromise(async () => {\n if (!chartInstance) {\n return;\n }\n chartInstance.updateConstraints(constraints);\n chartInstance.options = options;\n await chartInstance.resize();\n }, [rect.width, rect.height]);\n\n if (error) {\n throw error;\n }\n}\n"],"names":["init","Picasso","component","mounted","element","classList","add","style","pointerEvents","zIndex","render","disclaimer","renderer","disableTriggers","preferredSize","h","settings","label","rtl","layout","dock","this","dir","rect","display","justifyContent","alignItems","color","fontStyle","fontSize","width","height","transform","transformOrigin","textAlign","getStyle","modifiedLabel","spanStyle","overflow","whiteSpace","textOverflow","ref","alignToRef","title","properties","version","qHyperCubeDef","qDimensions","qMeasures","qMode","qInitialDataFetch","qWidth","qHeight","qSuppressMissing","auto","positiveValue","paletteColor","index","negativeValue","subtotal","dataPoint","showLabels","dimensionAxis","show","gridlines","spacing","legend","measureAxis","autoMinMax","max","min","minMax","qDef","qNumFormat","numFormatFromTemplate","isCustomFormatted","refLine","refLines","showTitles","subtitle","footnote","data","env","translator","path","dimensions","measures","description","get","window","exports","e","r","n","t","o","i","l","call","m","c","d","Object","defineProperty","enumerable","Symbol","toStringTag","value","__esModule","create","bind","default","prototype","hasOwnProperty","p","s","toString","a","getOwnPropertyDescriptor","Array","isArray","u","constructor","name","configurable","newValue","writable","arguments","f","length","split","Number","isNaN","updated","previous","concat","qLibraryId","qInfo","qId","dimensionList","qData","info","qTags","indexOf","trim","charAt","substring","qName","qDerivedFieldData","qDerivedFieldLists","qFieldDefs","fieldList","fullAccumulation","fullRange","crossAllDimensions","replace","y","q","b","D","modifier","dimensionAndFieldList","funcComp","valueComp","showExcludedValues","v","g","isFullRange","getNumDimensions","getExpressionWithExcludedComp","expression","treatMissingAsNull","getRowNoComp","getNumStepComp","steps","getAboveCompPrefix","getAboveCompSuffix","getAboveComp","getFunctionPrefix","getFunctionSuffix","getRangeComp","getAggrComp","getExcludedComp","needDimension","primaryDimension","accumulationDimension","getDimComp","qSortCriterias","qSortByExpression","qSortByNumeric","qSortByAscii","simplifyExpression","extractInputExpression","outputExpression","initModifier","keys","forEach","isNumeric","isApplicable","minDimensions","maxDimensions","getExpressionWithMarkers","canExtract","getDimDefWithWrapper","getFieldWithWrapper","x","iterator","E","A","C","I","M","S","L","slice","O","generate","val","push","op","splice","from","apply","TypeError","Error","clone","createPatch","toLowerCase","updateObject","P","F","Promise","resolve","map","qOp","qValue","JSON","stringify","qPath","applyPatches","N","V","type","w","H","disabled","T","translationKey","generateExpression","numDimensions","enableTotalsFunction","propertyPanelDef","items","translation","refFn","primaryDimensionTooltip","schemaIgnore","defaultValue","options","qHyperCube","qDimensionInfo","qGroupFallbackTitles","crossAllDimensionsTooltip","range","rangeFull","rangeCustom","rangeSteps","change","Math","abs","ext","support","modifiers","j","_","R","B","nullSuppression","k","showNull","inverted","U","G","W","$","z","Y","CURRENT_SELECTION","SELECT_FIELD_VALUE","DISREGARD_SELECTION","J","ONE_DIMENSION","ALL_DIMENSIOANS","DISREGARD_ALL_DIMENSIONS","K","X","Q","Z","ee","dimensionalScopeOneDimension","tooltipTranslation","dimensionalScopeOneDimensionTooltip","dimensionalScopeAllDimensions","dimensionalScopeAllDimensionsTooltip","dimensionalScopeDisregardAllDimensions","dimensionalScopeDisregardAllDimensionsTooltip","selectionScope","re","selectionScopeCurrentSelection","selectionScopeSpecificValue","selectionScopeTotal","dimensionalScope","ne","te","oe","ie","ae","se","join","field","updateModifier","modifierSelectionScope","modifierSelectionScopeTooltip","dropdownOnly","app","getFieldList","then","modifierDimensionalScope","modifierDimensionalScopeTooltip","supportTooltip","getDisregardSelectionComp","getFieldSelectionComp","getTotalComp","getSelectedDimComp","ue","getExpression","getExpressionRef","getLibraryIdRef","getLibraryId","getLabelRef","getLabelExpressionRef","le","initBase","isValid","restoreBase","base","ce","pe","fe","accumulation","movingAverage","difference","normalization","me","de","applyModifiers","ye","cleanUpMeasure","qe","destroy","id","masterItemSubscriber","unsubscribe","hasActiveModifiers","be","getActiveModifier","De","isSupportedModifiers","some","isApplicableSupportedModifiers","modifierTypes","measureBase","limitedSorting","he","Se","Ne","ifEnableTotalsFunction","ve","model","isSnapshot","masterItem","isFirstTime","lastReloadTime","Me","measure","getEffectiveProperties","Ee","Ve","Le","Oe","libraryIds","ge","Ce","oldProperties","runUpdateIfChange","libraryItemsProps","we","Fe","newProperties","libraryId","qMeasure","qLabel","qLabelExpression","quarantine","coloring","qAggrFunc","Ae","xe","Ie","getDimensionList","all","measureLibraryIds","dimensionLibraryIds","getMeasure","getProperties","getDimension","Pe","qHasSoftPatches","qExtendsId","setProperties","callback","dimension","enabled","listener","layoutSubscribe","subscribe","dispose","clearUndoBuffer","charCodeAt","String","fromCharCode","floor","getValue","setValue","isEmpty","isAtomicValue","test","generateId","round","random","isOrderedSubset","indexAdded","indexRemoved","findItemByPropertyValue","findIndexByPropertyValue","addDimensions","exportFormat","excludedDimensions","addMeasures","excludedMeasures","setInterColumnSortOrder","qInterColumnSortOrder","interColumnSortOrder","copyProperties","updateLayoutExclude","qLayoutExclude","changed","to","storeMeasuresModifiers","store","match","parse","qv","othersLabel","pow","importCommonProperties","visualization","copyPropertyIfExist","copyPropertyOrSetDefault","getDefaultDimension","autoSort","cId","qNullSuppression","qOtherLabel","qOtherTotalSpec","qOtherLimitMode","qOtherMode","qOtherSortMode","qSuppressOther","getDefaultMeasure","qTrendLines","newHyperCubeDef","defaultDimension","maxMeasures","minMeasures","defaultMeasure","getMaxMinDimensionMeasure","dataDefinition","createNewProperties","initialProperties","hypercubePath","key","components","shouldInitLayoutExclude","initLayoutExclude","updateDimensionsOnAdded","added","updateMeasuresOnAdded","restoreMeasuresModifiers","exportProperties","propertyTree","viewDataMode","qProperty","filters","qContextSetExpression","qDynamicScript","importProperties","defaultPropertyValues","extension","supportedFilters","isHCModifierSupported","qChildren","qTop","qLeft","cellBackgroundColor","cellForegroundColor","colorByAlternative","colorByExpression","tooltip","urlLabel","url","qAttribute","moveByIdFromGroup","IDMAP","CELL_BACKGROUND_COLOR","CELL_FOREGROUND_COLOR","COLOR_BY_ALTERNATIVE","COLOR_BY_EXPRESSION","TOOLTIP","CELL_LINK_LABEL","CELL_LINK_URL","getNumMeasures","wrapFieldName","getItemLabel","colorModeOptions","primary","multiColor","scatterplot","piechart","linechart","distributionplot","altLabel","qStringExpression","qExpr","substr","isDimension","attributeExpression","item","qExpression","matchMeasure","activeMeasureIndex","labelExpRef","colorMapRef","qSortBy","qAttributeDimensions","qAttributeExpressions","qFieldLabels","useMasterNumberFormat","mode","byDimDef","activeDimensionIndex","byMeasureDef","formatting","changeProperty","getCanColorBy","byDimension","byMeasure","byMultiple","byExpression","shouldUpdateColorBy","canColorBy","autoColor","colorMode","updateColorBy","deleteTotalMode","qTotalMode","shouldAddColorByExpression","addColorByExpression","switchToAutoColor","shouldSwitchToColorPersistent","handleAutoMinMax","handleMeasuresAxis","measureType","measureAxes","series","axis","line","marker","bar","total","includes","filter","sort","supportedAutoMinMax","qColumnOrder","columnOrder","arrayPath","quarantineName","arrayName","itemPath","unquarantine","quarantineAlternative","unquarantineAlternative","hypercube","colorChart","axisChart","quarantineProperty","unquarantineProperty","quarantineArrayProp","unquarantineArrayProp","conditionalColoring","conditionalShow","propTree","conversion","props","extend","qSuppressZero","qae","targets","RegExp","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","rgb","formatHex","formatRgb","exec","parseInt","NaN","opacity","copy","assign","displayable","hex","formatHex8","formatHsl","brighter","darker","clamp","PI","cos","sin","atan2","sqrt","An","bt","Xt","children","Zt","Map","Qt","Jt","nn","pop","parent","depth","eachBefore","tn","en","ke","gamma","count","eachAfter","each","find","sum","ancestors","descendants","leaves","links","source","target","reverse","search","toFixed","lastIndexOf","Hi","Ri","zi","toUpperCase","groupHeader","_i","theme","flags","getDefaultValue","getOptions","Set","Boolean","metaText","isEnabled","Vi","Bi","Yi","$i","Ui","fontFamily","Ki","config","paths","ChartStyleComponent","fontResolver","chartId","propertyDefs","getColorComponent","getDataColorPickerPalettes","colors","labelSection","getFontWrapperComponent","fontWrapper","fontColor","getChartFontResolver","createFontResolver","overrides","getAxisLabelStyle","_overrides2","_axis$label","_axis$label$name","_axis$label2","_axis$label2$name","_axis$label3","_axis$label3$name","_axis$label3$name$fon","labels","fill","getValueLabelStyle","_overrides3","_value$value","_value$value2","_value$value3","_value$value3$fontCol","parseFloat","getLegendLabelStyle","_overrides5","_legend$label","_legend$label2","_legend$label3","_legend$label3$fontCo","CHART_ID","getShapeColor","defaultColor","defaultIndex","layoutColor","waterfallUtils","valueTypes","NORMAL","INVERSE","SUBTOTAL","chartID","getColorForPositiveValue","getColorPickerColor","getColorForNegativeValue","getColorForSubtotal","freeze","getStylingItems","styleOptions","axisLabelSection","valueLabelSection","legendLabelSection","undefined","getStylingPanelDefinition","bkgOptionsEnabled","chartTitle","useGeneral","useBackground","colorIsNotAuto","propertyDefinition","stylingPanelEnabled","uses","addTranslation","disabledRef","numberFormatting","valueType","subTotal","subTotalLabel","enable","anything","sense","presentation","grouped","styleEditor","gridLines","snapshot","tid","showGridLines","gridSpacing","positiveValueColor","dualOutput","negativeValueColor","subtotalColor","simpleColors","classification","section","tags","exclusive","simpleItems","_data$color","globalChange","numberFormattingType","addons","dataHandling","suppressZero","calcCond","colorBackground","simpleLabels","header","_props$qHyperCubeDef$","pointLabels","_props$qHyperCubeDef$2","measureAxisTitle","othersGroup","_env$anything","definition","pp","cssScaling","export","exportData","sharing","viewData","mapProperties","getDefaultDimensionProperties","getDefaultMeasureProperties","hyperCubePath","fnTest","Class","className","proto","_super","fn","tmp","ret","ctor","Function","idGen","getChar","charCode","base62","chr","SCROLLBAR_KEY","getAxisDock","direction","isRtl","getYAxisDock","getXAxisDock","yDockNearFar","axisDockUtil","getOppositeAxisDock","rangesOfLRgExp","rangesOfRRgExp","rangesOfALRgExp","isLtrChar","isRtlChar","rtlUtils","lrm","rlm","detectTextDirection","refLineUtil","lineSettings","_options$style","defaultSettings","stroke","strokeDasharray","lineType","lineLabelSettings","labelColor","labelFontSize","labelFontFamily","align","vAlign","text","maxWidthPx","isVisible","refLineExpr","getRefLineTitle","valueString","showValue","showLabel","RtlUtil","constants","SHOW_AXIS_LABELS_OPTIONS","SHOW_TITLE_OPTIONS","HORIZONTAL","VERTICAL","LAYOUTSETTINGS","lasso","displayOrder","rangeDim","rangeMeasure","rangeMinor","scrollBar","minimumLayoutMode","prioOrder","dimensionAxisTitle","refLinesLabels","DEFAULT_CHART_ORIENTATION","SENSE_PICASSO_SPACING_COEFFICIENT","DimensionMeasureChart","chartBuilder","opts","measureAxisProperties","dimensionAxisProperties","chartOrientation","orientation","CONSTANTS","isChartHorizontal","measureDirection","dimensionDirection","includeMeasureAxisComponent","includeMeasureAxisTitleComponent","measureTitleText","includeDimensionAxisComponent","includeDimensionAxis","includeDimensionAxisTitleComponent","dimensionTitleText","includeGridlines","includeRefLines","interactionActions","measureAxisSettings","scale","axisLabelStyle","forceBounds","showBounds","measureAxisOptions","getMeasureAxisOptions","addComponent","addMeasureAxisComponent","measureTitleSettings","axisTitleStyle","getMeasureAxisTitleOptions","addMeasureAxisTitleComponent","measureScaleSettings","measureScaleOptions","measureSource","ticks","distance","addScale","addMeasureScale","dimensionAxisSettings","dimensionAxisOptions","getDimensionAxisOptions","addDimensionAxisComponent","dimensionAxisTitleSettings","dimensionAxisTitleOptions","getDimensionAxisTitleOptions","addDimensionAxisTitleComponent","dimensionScaleOptions","dimensionSource","dimensionScaleSettings","addDimensionScale","gridlinesOptions","gridlinesSettings","minorTicks","addGridlinesComponent","hasNavigation","getSettings","scroll","viewSize","scrollSettings","scrollbarOptions","isHorizontal","scrollBarSettings","addInteractionActions","isEnabledFn","targetIsScrollbar","manager","startPoint","center","deltaX","deltaY","chart","componentsFromPoint","tap","events","emit","pan","panstart","panend","pancancel","getScrollActions","isNavigationEnabledFn","addScrollbarComponent","axisDock","refLinesSettings","oob","lines","refLinesLabelsSettings","require","measureText","formatter","scales","labelWidths","formattedValue","minimumText","wanted","required","maxLabelWidth","labelPadding","expressionValue","lineOptions","addRefLineComponent","enableLasso","selectionsEnabled","lassoOptions","brushKey","brushComponents","brushData","addLassoComponent","enableDimRange","rangeDimSettings","rangeDimOptions","brushAxis","brushArea","brushScale","addRangeDimComponent","dimRange","enableMeasureRange","rangeMeasureSettings","rangeMeasureOptions","multiple","addRangeMeasureComponent","measureRange","enableAreaRange","rangeMinorSettings","chartInstance","addRangeAreaComponent","areaRange","brushActions","addInteraction","gestures","addInteractionComponent","actions","invert","domain","trackBy","axisLineStroke","titleFontSize","titleFill","labelsFill","labelsFontSize","titleFontFamily","labelsFontFamily","brush","trigger","consume","strokeWidth","tiltAngle","maxEdgeBleed","maxSize","axisSettings","active","measureScale","fields","expand","scaleSettings","dimensionScale","extract","qText","datum","xAxis","yAxis","xAxisTitle","yAxisTitle","rangeUtil","getBublesAlign","isAlignStart","getDock","dockTargets","dockT","layoutModes","SPARK","XSMALL","SMALL","MEDIUM","FULL","LayoutModes","getLabel","context","end","dataset","getLayoutModeKeys","layoutModeKeys","modeKey","directions","left","right","up","down","createComponent","minor","boxMarker","pointMarker","backgroundColor","scrollbar","comp","contexts","fillActive","bubbles","isStartBorder","binStart","binEnd","action","rangeArea","chartHeight","chartWidth","itemFill","itemFontSize","anchor","size","vertical","navigation","button","class","content","state","lineHeight","wordBreak","margin","top","bottom","shape","showTitle","categoricalLegend","tickFill","tickFontSize","tickFontFamily","getAlignValue","word","major","tick","sequentialLegend","gridLine","interaction","oobColor","oobBackgroundColor","padding","eventArea","sources","selector","strategy","placements","position","justify","ChartBuilder","dockLayout","interactions","getComponent","addPreset","ChartPresets","validateComponentKeys","msg","ALIGNMENT","CENTER","BOTTOM","DisclaimersConfig","DISCLAIMERS","alignment","util","getNoDataExistAttribute","qSize","qcy","qcx","getLimitedDataAttribute","maxNbrOfDimensions","result","stackedDataPages","explicitLimitedData","qDataPages","paging","qMatrix","qStackedDataPages","qSubNodes","node","qDown","qArea","getNegativeOrZeroValuesAttribute","supportNegative","qMeasureInfo","qMin","getOnlyNegativeOrZeroValuesAttribute","every","qMax","getOnlyNanDataAttribute","explicitOnlyNanData","getDataRangeIncludingZeroAttribute","supportRangeOverZero","measureInfo","len","explicitMinOn","explicitMaxOn","MAX_VALUE","hasDataRangeIncludingZero","applyAttributes","dataAttributes","NoDataExist","RequireNumericDimension","explicitRequireNumericDimension","LimitedData","NegativeOrZeroValues","OnlyNegativeOrZeroValues","OnlyNanData","DataRangeIncludingZero","Helper","disclaimersConfig","supportedDisclaimers","list","Disclaimer","environment","clear","isValidAndSupported","isAnyValidDisclaimer","self","getMessage","str","ERRORS","SET","DISPLAY","_applyDefaultSupport","supported","getComponentSettings","_this$environment","_this$environment$opt","vizAttributes","helper","DisclaimerComponentHelper","message","set","attributes","AttributesUtil","ChartView","picasso","$element","backendApi","selectionsApi","_selectionsApi","_on","_disclaimer","_dataPaths","picassoElement","dataAreaElem","updateEnvironment","setDataPaths","dataPaths","getData","hyperCube","dataPagesPath","page","maxHeight","pages","hasValidData","paint","_disclaimerComponent$","getDisclaimerAttributes","disclaimerComponent","isSuppressingDisc","chartSettings","createChartSettings","errorMsg","console","error","updateChart","_painted","resize","addSnapshotChartSettings","freeResize","snapshotData","logicalSize","preserveAspectRatio","updateData","_destroyed","reject","permissions","isPartialData","_this$environment$app","_this$environment$app2","localeInfo","appLayout","qLocaleInfo","colorService","update","partialData","setAttribute","off","getViewState","isLassoDisabled","setSnapshotData","snapshotLayout","chartData","colorStruct","transparent","rgba","hexShort","hsl","hsla","Color","lcs","h_","rgb_","matches","colorString","_invalid","_r","_g","_b","_a","CSSColors","_spaces","isInvalid","setAlpha","getAlpha","toRGB","toRGBA","toHex","toHSL","luma","toHSLA","toHSV","hsvComp","toHSVComponents","toNumber","num","isDark","getLuminance","_lumi","shiftLuminance","chsla","isEqual","blend","c2","createShiftedColor","lumi","greenMultiplier","hsla_string","ch","c1","r1","g1","b1","getBlend","isCSSColor","getBestContrast","cl","cd","lum","getContrast","color1","color2","l1","l2","useDarkLabel","areaColor","bgIsDark","chartUtils","TRANSPARENT_BLACK","TRANSPARENT_WHITE","LIGHT_GREY","DARK_GREY","BLACK","WHITE","getInverse","colorObj","getContrastingGrey","getContrastingTransparent","namespace","ScrollHandler","$chartElement","getSlicedDataFn","onScrollCallback","legendKey","_chartInstance","_$chartElement","_getSlicedDataFn","_itemSize","_onScrollCallback","_legendKey","calculateScrollViewSizeInItem","scrollSize","getItemSize","_scrollViewSizeInItem","onMouseWheel","event","orgEvent","delta","wheelDelta","detail","HORIZONTAL_AXIS","wheelDeltaY","wheelDeltaX","pageX","pageY","getMouseWheelData","originalEvent","preventDefault","onLegendMouseWheel","_disabled","getScrollApi","_scrollApi","move","onScroll","_sizeChanged","getViewData","catch","err","setDisabled","getDisabled","setItemSize","getScrollViewSizeInItem","on","removeAllListeners","isOn","updateViewState","onResize","isDataSizeChanged","pageNumberOfRows","datasetNumberOfRows","resetScroll","moveTo","getState","start","setOptions","getScrollState","setScrollState","onComponentChecker","isOnComponentForRange","selectionGesture","isOnComponentForLasso","gesturesParams","lassoGesture","componentKey","isOnComponentForNavBtn","legendBrushKey","navBtnGesture","callLassoGesture","gesturesFns","Hammer","DIRECTION_ALL","threshold","lassoing","isSelectionEnabled","hitComp","handlers","selectionHandler","lassoState","allFieldsLocked","recognizeWith","scrollHandler","lassostart","switchTo","pauseEngineCalls","lassoBrushKey","clientX","pointers","clientY","doEmit","lassomove","lassoend","resumeEngineCalls","lassocancel","measureRangeGesture","callMeasureRangeGesture","activeRangeBrush","dimRangeBrushKey","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","rangeSelStatus","isOpenMea","measureSelecting","gesture","measureRangeBrushKey","requireFailure","measurerangestart","measurerangemove","measurerangeend","measurerangecancel","getAxisOrientation","areaRangeGesture","callAreaRangeGesture","isOpenDim","minoring","arearangestart","areaBrushKey","arearangemove","arearangeend","arearangecancel","dimensionRangeGesture","callDimensionRangeGesture","dimAxis","majoring","majorrangestart","majorrangemove","majorrangeend","majorrangecancel","dragGesture","callDragGesture","hasSelections","dragPoint","dragging","isNavigationEnabled","getBrushConfig","dragstart","dragmove","dragend","dragcancel","callNavBtnGesture","navBtnTap","btn","attr","getAttribute","DependentInteractions$1","clearKey","activeChart","newType","cont","inst","onScrollUpdate","rangeClearTap","unshift","removeListener","TooltipActions","tooltipKey","hasOpen","closeTooltip","isOpen","brushes","shapes","getAffectedShapes","nodes","openTooltip","toggleInterceptor","check","TooltipAction","args","formatMeasureValue","measureContent","raw","qNum","OTHERS_ELEMNO","createContent","tooltipInfo","uniqueShapes","dataPath","numberInExcess","numItems","localContent","rows","labelData","refPaths","isNullValue","currentNode","qElemNo","qElemNumber","headerResolver","measureRows","measureRow","rowData","rowResolver","row","colorByData","getColorByDimData","rowCount","extractContent","renderSettings","_tooltipInfo$colorSer","_tooltipInfo$colorSer2","_shape$attrs","colorData","colorSettings","fieldType","ids","mapping","elemNoObj","othersIndex","values","getOthersIndex","attrs","TOOLTIP_CONTAINER_ID","TOOLTIP_CONTAINER_SELECTOR","appendTooltipContainer","document","querySelector","container","createElement","body","appendChild","beforeMount","beforeUpdate","destroyed","elm","parentElement","childElementCount","removeChild","destroyTooltipContainer","appendTo","placement","arrow","background","cell","hyphens","getDirection","DEFAULT_OPTIONS","labelTextAlign","headerStyle","fontWeight","colSpan","valueContent","symbolStyle","symbol","labelStyle","valueStyle","moreText","moreStyle","Tooltips","chartType","tooltipContexts","registerContext","listeners","removed","treatAsDesktop","intercept","deregister","deRegContext","removeInterceptor","mouseLeave","prop","setUp","attrDimPath","filterShapes","deviceType","createContext","createTooltip","uniques","filterDuplicateShapes","globalPropagation","tearDown","TooltipHandler","CHARACTER_AVERAGE_WIDTH","CHARACTER_MAX_WIDTH","M_WIDTH","CJK_OVER_LATIN_WIDTH_RATIO","stringWidthOverMWidth","getCharacterRatios","latin","cjk","CJK","hiragana","katakana","getTotalCharacterRatios","columnIndex","res","latinRatio","cjkRatio","estimateLatinLabelWidth","numLatins","maxLatinWidth","averageLatinWidth","stringUtil","endsWith","string","suffix","startsWith","prefix","contains","haystack","needle","getAdjustedMaxGlyphCount","maxGlyphCount","totalCharacterRatios","latinGlyphCount","cjkGlyphCount","ceil","estimateLabelWidth","numCjks","cjkWidth","CubeGenerator","generateHyperCube","numMeasures","positveColor","negativeColor","_numberFormatter","generatedMatrix","startMax","startMin","endMax","endMin","qFallbackTitle","numFormat","getMeasureFormat","isAutoFormat","qIsAutoFormat","generated","qStateCounts","generateSlicedHyperCube","getGeneratedDimensionPath","dimIndex","getGeneratedMeasurePath","mesIndex","ascending","descending","bisector","compare1","compare2","lo","hi","mid","zero","bisectRight","bisect","e10","e5","e2","tickSpec","stop","step","power","log10","factor","i1","i2","inc","tickIncrement","initRange","define","factory","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","color_formatHex","color_formatRgb","format","rgbn","Rgb","rgb_formatHex","rgb_formatRgb","clampa","clampi","Hsl","hslConvert","clamph","clampt","hsl2rgb","m1","m2","channels","constant","nogamma","exponential","linear","rgbGamma","colorRgb","numberArray","genericArray","nb","na","date","Date","setTime","interpolateNumber","object","reA","reB","am","bm","bs","bi","lastIndex","number","one","interpolate","ArrayBuffer","isView","DataView","isNumberArray","valueOf","interpolateRound","unit","identity","normalize","bimap","d0","d1","r0","polymap","transformer","untransform","unknown","piecewise","output","input","interpolateValue","rescale","clamper","rangeRound","formatDecimalParts","toExponential","coefficient","exponent","prefixExponent","formatSpecifier","specifier","FormatSpecifier","sign","comma","precision","formatRounded","formatTypes","%","toLocaleString","toPrecision","locale","formatPrefix","prefixes","formatLocale","grouping","thousands","group","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","percent","minus","nan","newFormat","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","i0","formatTrim","Infinity","tickFormat","tickStep","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","tickGenerator","getMinorTicks","majorTicks","minorTickCount","adjustTicks","deltaMin","isMinor","deltaMax","getTicks","scaleLinear","MAX_GLYPH_COUNT","BAR_WIDTH_RATIO","updateScrollHandlerState","_scrollHandler","getMaxGlyphCountForDimAxis","glyphCount","getDimAxisSettings","maxLengthPx","getBoundingClientRect","getBarLabelSettings","valueLabelSettings","outsideValueColor","darkColor","lightColor","boxColor","chartStyleUtils","getInsideValueColor","getPicassoScrollSettings","waterfallChartView","_tooltipHandler","getSlicedData","updateConstraints","constraints","passive","clientWidth","clientHeight","tooltipSettings","box","shapeData","_dependentActions","DependentInteractions","maxPxStep","includeMeasureAxis","include","brushTrigger","brushConsume","reduce","getBarSettings","bridgeColor","bandwidth","sizeLimits","maxPx","maxRelExtent","minRelDiscrete","maxRelDiscrete","getBridgeSettings","positiveText","negativeText","subtotalText","labelStyleSettings","getLegendSettings","area","viewState","finally","supernova","picassojs","prio","use","PicassoQ","PicassoHammer","picassoSetup","useElement","useApp","useAppLayout","useDeviceType","useOptions","useTheme","useTranslator","useMemo","language","useEnvironment","useStaleLayout","useConstraints","instance","setInstance","useState","useEffect","view","usePromise","usePromiseNoError","async","useRect","useResize","onTakeSnapshot","useImperativeHandle"],"mappings":"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","x_google_ignoreList":[5,8,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107]}
1
+ {"version":3,"file":"index.js","sources":["../../../../chart-modules/common/picasso/plugins/event-area.js","../../../../chart-modules/common/picasso/disclaimer/disclaimer-component.jsx","../../../../chart-modules/common/nebula/snapshot.js","../../src/object-properties.js","../../src/waterfallchart-data-definition.js","../../../../node_modules/qlik-object-conversion/dist/conversion.js","../../src/waterfallchart-import-export.js","../../src/waterfallchart-qae.js","../../../../node_modules/qlik-chart-modules/dist/qlik-chart-modules.esm.js","../../../../chart-modules/common/extra/chart-style-component.js","../../src/waterfallchart-utils.js","../../src/styling-panel-property-definiton.js","../../src/waterfallchart-properties.js","../../src/ext.js","../../../../chart-modules/common/extra/class.js","../../../../chart-modules/common/extra/generate-id.js","../../../../chart-modules/common/picasso/scroll/scroll-actions.js","../../../../chart-modules/common/picasso/chart-builder/components/util/axis-dock-util.js","../../../../chart-modules/common/extra/rtl-util.js","../../../../chart-modules/common/picasso/chart-builder/components/util/ref-line-util.js","../../../../chart-modules/common/picasso/chart-builder/presets/dimension-measure-chart/constants.js","../../../../chart-modules/common/picasso/chart-builder/presets/dimension-measure-chart/layout-settings.js","../../../../chart-modules/common/picasso/chart-builder/presets/dimension-measure-chart/dimension-measure-chart.js","../../../../chart-modules/common/picasso/chart-builder/scale.js","../../../../chart-modules/common/picasso/chart-builder/components/axis.js","../../../../chart-modules/common/picasso/chart-builder/components/text.js","../../../../chart-modules/common/picasso/chart-builder/components/util/range-util.js","../../../../chart-modules/common/picasso/chart-builder/layout-modes.js","../../../../chart-modules/common/picasso/chart-builder/components/labels.js","../../../../chart-modules/common/picasso/chart-builder/components/categorical-legend.js","../../../../chart-modules/common/picasso/chart-builder/chart-builder.js","../../../../chart-modules/common/picasso/chart-builder/components/box-marker.js","../../../../chart-modules/common/picasso/chart-builder/components/point-marker.js","../../../../chart-modules/common/picasso/chart-builder/components/scrollbar.js","../../../../chart-modules/common/picasso/chart-builder/components/lasso.js","../../../../chart-modules/common/picasso/chart-builder/components/range.js","../../../../chart-modules/common/picasso/chart-builder/components/range-area.js","../../../../chart-modules/common/picasso/chart-builder/components/sequential-legend.js","../../../../chart-modules/common/picasso/chart-builder/components/grid-line.js","../../../../chart-modules/common/picasso/chart-builder/components/interaction.js","../../../../chart-modules/common/picasso/chart-builder/components/ref-line.js","../../../../chart-modules/common/picasso/chart-builder/components/event-area.js","../../../../chart-modules/common/picasso/chart-builder/chart-presets.js","../../../../chart-modules/common/picasso/disclaimer/disclaimers-config.js","../../../../chart-modules/common/picasso/disclaimer/disclaimer-attributes-util.js","../../../../chart-modules/common/picasso/disclaimer/disclaimer-component-helper.js","../../../../chart-modules/common/picasso/disclaimer/disclaimer.js","../../../../chart-modules/common/picasso/chart-view.js","../../../../chart-modules/common/extra/css-colors.js","../../../../chart-modules/common/extra/color.js","../../../../chart-modules/common/picasso/scroll/scroll-handler.js","../../../../chart-modules/common/picasso/selections/gestures/on-component-checker.js","../../../../chart-modules/common/picasso/selections/gestures/lasso-gesture.js","../../../../chart-modules/common/picasso/selections/gestures/measure-range-gesture.js","../../../../chart-modules/common/picasso/selections/gestures/area-range-gesture.js","../../../../chart-modules/common/picasso/selections/gestures/dimension-range-gesture.js","../../../../chart-modules/common/picasso/selections/gestures/drag-gesture.js","../../../../chart-modules/common/picasso/selections/gestures/navigational-button-gesture.js","../../../../chart-modules/common/picasso/selections/dependent-interactions.js","../../../../chart-modules/common/picasso/tooltip/tooltip-actions.js","../../../../chart-modules/common/picasso/formatting.js","../../../../chart-modules/common/picasso/tooltip/tooltip-content.js","../../../../chart-modules/common/picasso/tooltip/tooltips-component.js","../../../../chart-modules/common/picasso/tooltip/tooltip-renderer.jsx","../../../../chart-modules/common/picasso/tooltip/tooltips-handler.js","../../../../chart-modules/common/extra/string-util.js","../../src/waterfallchart-cube-generator-by-measures.js","../../../../node_modules/d3-array/src/ascending.js","../../../../node_modules/d3-array/src/descending.js","../../../../node_modules/d3-array/src/bisector.js","../../../../node_modules/d3-array/src/bisect.js","../../../../node_modules/d3-array/src/number.js","../../../../node_modules/d3-array/src/ticks.js","../../../../node_modules/d3-scale/src/init.js","../../../../node_modules/d3-color/src/define.js","../../../../node_modules/d3-color/src/color.js","../../../../node_modules/d3-interpolate/src/constant.js","../../../../node_modules/d3-interpolate/src/color.js","../../../../node_modules/d3-interpolate/src/rgb.js","../../../../node_modules/d3-interpolate/src/numberArray.js","../../../../node_modules/d3-interpolate/src/array.js","../../../../node_modules/d3-interpolate/src/date.js","../../../../node_modules/d3-interpolate/src/number.js","../../../../node_modules/d3-interpolate/src/object.js","../../../../node_modules/d3-interpolate/src/string.js","../../../../node_modules/d3-interpolate/src/value.js","../../../../node_modules/d3-interpolate/src/round.js","../../../../node_modules/d3-scale/src/number.js","../../../../node_modules/d3-scale/src/continuous.js","../../../../node_modules/d3-scale/src/constant.js","../../../../node_modules/d3-format/src/formatDecimal.js","../../../../node_modules/d3-format/src/exponent.js","../../../../node_modules/d3-format/src/formatSpecifier.js","../../../../node_modules/d3-format/src/formatPrefixAuto.js","../../../../node_modules/d3-format/src/formatRounded.js","../../../../node_modules/d3-format/src/formatTypes.js","../../../../node_modules/d3-format/src/identity.js","../../../../node_modules/d3-format/src/locale.js","../../../../node_modules/d3-format/src/defaultLocale.js","../../../../node_modules/d3-format/src/formatGroup.js","../../../../node_modules/d3-format/src/formatNumerals.js","../../../../node_modules/d3-format/src/formatTrim.js","../../../../node_modules/d3-scale/src/tickFormat.js","../../../../node_modules/d3-format/src/precisionPrefix.js","../../../../node_modules/d3-format/src/precisionRound.js","../../../../node_modules/d3-format/src/precisionFixed.js","../../../../node_modules/d3-scale/src/linear.js","../../src/waterfallchart-tick-generator.js","../../src/waterfallchart-view.js","../../src/index.js","../../../../chart-modules/common/locale/index.js","../../../../chart-modules/common/nebula/use-environment.js","../../../../chart-modules/common/picasso/picasso-setup.js","../../../../chart-modules/common/nebula/resize.js"],"sourcesContent":["export default function init(Picasso) {\n // Transparent component, placed on top of the data area and used to register event on\n Picasso.component('event-area', {\n mounted(element) {\n element.classList.add('event-area');\n element.style.pointerEvents = 'auto';\n element.style.zIndex = 1;\n },\n render() {\n const nodes = [];\n return nodes;\n },\n });\n}\n","/** @jsx h */\n\nfunction getStyle(dock, rect) {\n const style = {\n pointerEvents: 'auto',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: '#7b7a78',\n fontStyle: 'italic',\n fontSize: '13px',\n };\n\n switch (dock) {\n case 'left':\n style.width = `${rect.height}px`;\n style.transform = `rotate(-90deg) translate(-${rect.height}px, 0)`;\n style.transformOrigin = 'top left';\n break;\n\n case 'right':\n style.width = `${rect.height}px`;\n style.transform = `rotate(90deg) translate(0, -${rect.width}px)`;\n style.transformOrigin = 'top left';\n break;\n\n case 'center':\n style.width = `${rect.width}px`;\n style.height = `${rect.height}px`;\n style.color = '#595959';\n style.fontStyle = 'normal';\n style.fontSize = '1.2em';\n style.textAlign = 'center';\n break;\n\n default:\n case 'top':\n case 'bottom':\n style.justifyContent = 'flex-start';\n style.alignItems = 'flex-start';\n break;\n }\n return style;\n}\n\nexport default {\n renderer: 'dom',\n disableTriggers: true,\n preferredSize: function preferredSize() {\n return 22;\n },\n render(h) {\n const {\n settings: { label, rtl },\n layout: { dock },\n } = this.settings;\n const dir = (dock === 'top' || dock === 'bottom') && rtl ? 'rtl' : 'ltr';\n const style = getStyle(dock, this.rect);\n\n const modifiedLabel = dock === 'center' ? label : `* ${label}`;\n\n const spanStyle = dock !== 'center' ? { overflow: 'hidden', whiteSpace: 'nowrap', textOverflow: 'ellipsis' } : {};\n\n return (\n <div style={style} dir={dir}>\n <span ref={this.alignToRef} style={spanStyle} title={modifiedLabel}>\n {modifiedLabel}\n </span>\n </div>\n );\n },\n};\n","import { onTakeSnapshot, useImperativeHandle } from '@nebula.js/stardust';\n\nconst setupSnapshot = (chartInstance) => {\n onTakeSnapshot((layout) => {\n if (!chartInstance) {\n return undefined;\n }\n\n return chartInstance.setSnapshotData(layout);\n });\n\n useImperativeHandle(\n () => ({\n getViewState() {\n if (!chartInstance) {\n return undefined;\n }\n return chartInstance.getViewState();\n },\n }),\n [chartInstance]\n );\n};\n\nexport default setupSnapshot;\n","/**\n * Settings for subtotal\n * @typedef {object} subtotalProperties\n * @property {boolean} enable=false Option to add a subtotal after a measure.\n * @property {string} label='Subtotal' Label of the subtotal added after a measure.\n */\n\n/**\n * Extends `NxInlineMeasureDef`, see Engine API: `NxInlineMeasureDef`.\n * @typedef {object} InlineMeasureDef\n * @extends NxInlineMeasureDef\n * @property {subtotalProperties} subtotal subtotal settings.\n * @property {'NORMAL'|'INVERSE'|'SUBTOTAL'} valueType='NORMAL' Measure operation.\n */\n\n/**\n * Extends `NxMeasure`, see Engine API: `NxMeasure`.\n * @typedef {object} MeasureProperties\n * @extends NxMeasure\n * @property {InlineMeasureDef} qDef\n */\n\n/**\n * Field attributes structure.\n * @typedef {object} FieldAttributes\n * @property {string} dec - Defines the decimal separator.\n * @property {string} Fmt - Defines the format pattern that applies to qText.\n * @property {number} nDec - Number of decimals.\n * @property {string} Thou - Defines the thousand separator (if any).\n * @property {string} Type - Type of the field.\n * @property {number} UseThou - Defines whether or not a thousands separator must be used.\n */\n\n/**\n * Color information structure. Holds the actual color and index in palette.\n * @typedef {object} paletteColor\n * @property {string} color - Color as hex string (mandatory if index: -1)\n * @property {number} index - Index in palette\n */\n\n/**\n * Styling settings for reference line\n * @typedef {object} refLineStyle\n * @property {number} [lineThickness=2] Set the thickness for this reference line.\n * @property {string} [lineType=''] Set the dash type for this reference line.\n */\n\n/**\n * @typedef {object} refLine\n * @property {boolean|ValueExpression} show=true Set to true to display this reference line.\n * @property {string} label Reference line label.\n * @property {boolean} [showLabel=true] Set to true to show the label of this reference line.\n * @property {boolean} [showValue=true] Set to true to show the value of this reference line.\n * @property {paletteColor} paletteColor\n * @property {refLineStyle} [style] - Styling settings for reference line\n * @property {boolean} [coloredBackground=false] Set to true to fill the label and/or value of this reference line with this color\n */\n\n/**\n * @namespace properties\n * @entry\n */\n\nconst properties = {\n /**\n * Current version of this generic object definition.\n * @type {string}\n * @default\n */\n version: process.env.PACKAGE_VERSION,\n\n /**\n * Extends `HyperCubeDef`, see Engine API: `HyperCubeDef`.\n * @extends {HyperCubeDef}\n */\n qHyperCubeDef: {\n qDimensions: [],\n /** @type {MeasureProperties[]} */\n qMeasures: [],\n qMode: 'S',\n qInitialDataFetch: [{ qWidth: 200, qHeight: 10 }],\n qSuppressMissing: true,\n },\n /**\n * Color settings.\n * Most color options for visualizations are set in the color object in the options. You activate custom coloring by setting `\"auto\": false` which turns off auto-coloring.\n * If `\"auto\": true`, no other properties need to be defined in the color object.\n * Note: Some of the color properties are depending on which theme is currently being used.\n * @type {object}\n */\n color: {\n /**\n * Set to use automatic coloring.\n * When `\"auto\": true`, color settings are based on the visualization used and the number of dimensions\n * and measures, that is, the settings are not fixed, but are dependent on the data input.\n * @type {boolean}\n * @default\n */\n auto: true,\n /**\n * Positive value color.\n * @type {object}\n */\n positiveValue: {\n /**\n * paletteColor\n * @type {paletteColor}\n * @default { index: 6, color: null }\n */\n paletteColor: {\n index: 6,\n color: null,\n },\n },\n /**\n * Negative value color.\n * @type {object}\n */\n negativeValue: {\n /**\n * paletteColor\n * @type {paletteColor}\n * @default { index: -1, color: '#cc6677' }\n */\n paletteColor: {\n index: -1,\n color: '#cc6677',\n },\n },\n /**\n * Subtotal value color.\n * @type {object}\n */\n subtotal: {\n /**\n * paletteColor\n * @type {paletteColor}\n * @default { index: -1, color: '#c3c3c3' }\n */\n paletteColor: {\n index: -1,\n color: '#c3c3c3',\n },\n },\n },\n /**\n * Data point.\n * @type {object}\n */\n dataPoint: {\n /**\n * Show labels.\n * @type {boolean}\n * @default\n */\n showLabels: true,\n },\n /**\n * Dimension axis settings.\n * @type {object}\n */\n dimensionAxis: {\n /**\n * Axis docking position\n * @type {'near'|'far'}\n * @default \"near\"\n */\n dock: 'near',\n /**\n * Label orientation\n * @type {'auto'|'horizontal'|'tilted'}\n */\n label: 'auto',\n /**\n * Labels and title\n * @type {'labels'|'none'}\n * @default\n */\n show: 'labels',\n },\n /**\n * Grid lines settings.\n * @type {object}\n */\n gridlines: {\n /**\n * Automatic grid line spacing.\n * @type {boolean}\n * @default\n */\n auto: true,\n /**\n * Grid line spacing. Used only when auto is set to false.\n * @type {0|2|3}\n * @default\n */\n spacing: 2,\n },\n /**\n * Legend settings.\n * @type {object}\n */\n legend: {\n /**\n * Sets the legend position.\n * @type {'auto'|'right'|'left'|'bottom'|'top'}\n * @default 'auto'\n */\n dock: 'auto',\n /**\n * Set to show the legend.\n * @type {boolean}\n * @default\n */\n show: true,\n },\n /**\n * Measure axis settings.\n * @type {object}\n */\n measureAxis: {\n /**\n * Automatic max/min\n * @type {boolean}\n * @default\n */\n autoMinMax: true,\n /**\n * Axis docking position\n * @type {'near'|'far'}\n * @default \"near\"\n */\n dock: 'near',\n /**\n * Axis max value. `\"autoMinMax\"` must be set to false and `\"minMax\"`\n * must be set to `\"max\"` or `\"minMax\"` to use this property\n * @type {number|ValueExpression}\n * @default\n */\n max: 10,\n /**\n * Axis min value. `\"autoMinMax\"` must be set to false and `\"minMax\"`\n * must be set to `\"min\"` or `\"minMax\"` to use this property\n * @type {number|ValueExpression}\n * @default\n */\n min: 0,\n /**\n * Set custom max/min\n * @type {'min'|'max'|'minMax'}\n * @default \"min\"\n */\n minMax: 'min',\n /**\n * Labels and title\n * @type {'labels'|'none'}\n * @default \"labels\"\n */\n show: 'labels',\n /**\n * Axis scale\n * @type {number}\n * @default\n */\n spacing: 1,\n },\n qDef: {\n /**\n * see Engine API: `FieldAttributes`.\n * @type {FieldAttributes=}\n */\n qNumFormat: {},\n /**\n * When enabled, the number format to use can be selected from multiple predefined formats based on the desired type (number, date).\n * @type {boolean}\n * @default\n */\n numFormatFromTemplate: true,\n /**\n * If true, the client formatting will be toggled off.\n * @type {boolean}\n * @default\n */\n isCustomFormatted: false,\n },\n /**\n * Reference lines settings\n * @type {object}\n */\n refLine: {\n /**\n * Array of measure based reference line definitions\n * @type {refLine[]}\n */\n refLines: [],\n },\n /**\n * Show title for the visualization.\n * @type {boolean=}\n * @default\n */\n showTitles: true,\n /**\n * Visualization subtitle.\n * @type {(string|StringExpression)=}\n * @default\n */\n subtitle: '',\n /**\n * Visualization title.\n * @type {(string|StringExpression)=}\n * @default\n */\n title: '',\n /**\n * Visualization footnote.\n * @type {(string|StringExpression)=}\n * @default\n */\n footnote: '',\n};\n\nexport default properties;\n","export default function data(env) {\n const { translator } = env;\n\n const dimensions = {\n min: 0,\n max: 0,\n };\n const measures = {\n min: 1,\n max: 50,\n description() {\n return translator.get('Visualizations.Descriptions.Bars');\n },\n };\n return {\n path: '/qHyperCubeDef',\n dimensions,\n measures,\n };\n}\n","!function(e,r){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=r():\"function\"==typeof define&&define.amd?define([],r):\"object\"==typeof exports?exports.conversion=r():e.conversion=r()}(window,(function(){return function(e){var r={};function n(t){if(r[t])return r[t].exports;var o=r[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=r,n.d=function(e,r,t){n.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,r){if(1&r&&(e=n(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(n.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var o in e)n.d(t,o,function(r){return e[r]}.bind(null,o));return t},n.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(r,\"a\",r),r},n.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},n.p=\"/conversion/\",n(n.s=2)}([function(e,r,n){\"use strict\";var t=Object.prototype.hasOwnProperty,o=Object.prototype.toString,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,s=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===o.call(e)},u=function(e){if(!e||\"[object Object]\"!==o.call(e))return!1;var r,n=t.call(e,\"constructor\"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!i)return!1;for(r in e);return void 0===r||t.call(e,r)},l=function(e,r){i&&\"__proto__\"===r.name?i(e,r.name,{enumerable:!0,configurable:!0,value:r.newValue,writable:!0}):e[r.name]=r.newValue},c=function(e,r){if(\"__proto__\"===r){if(!t.call(e,r))return;if(a)return a(e,r).value}return e[r]};e.exports=function e(){var r,n,t,o,i,a,p=arguments[0],f=1,m=arguments.length,d=!1;for(\"boolean\"==typeof p&&(d=p,p=arguments[1]||{},f=2),(null==p||\"object\"!=typeof p&&\"function\"!=typeof p)&&(p={});f<m;++f)if(null!=(r=arguments[f]))for(n in r)t=c(p,n),p!==(o=c(r,n))&&(d&&o&&(u(o)||(i=s(o)))?(i?(i=!1,a=t&&s(t)?t:[]):a=t&&u(t)?t:{},l(p,{name:n,newValue:e(d,a,o)})):void 0!==o&&l(p,{name:n,newValue:o}));return p}},function(e,r,n){window,e.exports=function(e){var r={};function n(t){if(r[t])return r[t].exports;var o=r[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=r,n.d=function(e,r,t){n.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,r){if(1&r&&(e=n(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(n.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var o in e)n.d(t,o,function(r){return e[r]}.bind(null,o));return t},n.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(r,\"a\",r),r},n.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},n.p=\"/qlik-modifiers/\",n(n.s=1)}([function(e,r,n){\"use strict\";var t=Object.prototype.hasOwnProperty,o=Object.prototype.toString,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,s=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===o.call(e)},u=function(e){if(!e||\"[object Object]\"!==o.call(e))return!1;var r,n=t.call(e,\"constructor\"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!i)return!1;for(r in e);return void 0===r||t.call(e,r)},l=function(e,r){i&&\"__proto__\"===r.name?i(e,r.name,{enumerable:!0,configurable:!0,value:r.newValue,writable:!0}):e[r.name]=r.newValue},c=function(e,r){if(\"__proto__\"===r){if(!t.call(e,r))return;if(a)return a(e,r).value}return e[r]};e.exports=function e(){var r,n,t,o,i,a,p=arguments[0],f=1,m=arguments.length,d=!1;for(\"boolean\"==typeof p&&(d=p,p=arguments[1]||{},f=2),(null==p||\"object\"!=typeof p&&\"function\"!=typeof p)&&(p={});f<m;++f)if(null!=(r=arguments[f]))for(n in r)t=c(p,n),p!==(o=c(r,n))&&(d&&o&&(u(o)||(i=s(o)))?(i?(i=!1,a=t&&s(t)?t:[]):a=t&&u(t)?t:{},l(p,{name:n,newValue:e(d,a,o)})):void 0!==o&&l(p,{name:n,newValue:o}));return p}},function(e,r,n){\"use strict\";n.r(r);var t=n(0),o=n.n(t),i=function(e,r,n){if(!r)return!1;var t,o=r.split(\".\"),i=o[o.length-1],a=e;for(t=0;t<o.length-1;++t)void 0===a[o[t]]&&(a[o[t]]=Number.isNaN(+o[t+1])?{}:[]),a=a[o[t]];if(void 0!==n){var s=a[i];return a[i]=n,{updated:n,previous:s}}return delete a[i],!1},a=function(e,r,n){var t,o=r.split(\".\"),i=e;if(void 0===i)return n;for(t=0;t<o.length;++t){if(void 0===i[o[t]])return n;i=i[o[t]]}return i},s=\"\".concat(\" \",\"(\").concat(\" \"),u=\"\".concat(\" \",\")\").concat(\" \");function l(e){return s+e+u}function c(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(e.qLibraryId){var n=function(e,r){if(!r)return null;var n,t;for(n=0;n<r.length;n++)if((t=r[n]).qInfo.qId===e)return t;return null}(e.qLibraryId,r.dimensionList);return n&&n.qData.info[0].qTags.indexOf(\"$numeric\")>-1}var t=function(e,r){if(!r)return null;var n,t,o=function(e){var r=e.trim();\"=\"===r.charAt(0)&&(r=(r=r.substring(1)).trim());var n=r.length-1;return\"[\"===r.charAt(0)&&\"]\"===r.charAt(n)&&(r=(r=r.substring(1,n)).trim()),r}(e);for(n=0;n<r.length;n++){if((t=r[n]).qName===o)return t;if(t.qDerivedFieldData)for(var i=0;i<t.qDerivedFieldData.qDerivedFieldLists.length;++i)for(var a=t.qDerivedFieldData.qDerivedFieldLists[i],s=0;s<a.qFieldDefs.length;++s){var u=a.qFieldDefs[s];if(u.qName===o)return u}}return null}(e.qDef.qFieldDefs[0],r.fieldList);return t&&t.qTags.indexOf(\"$numeric\")>-1}function p(e){return!(!e.fullAccumulation&&!e.fullRange)}function f(e,r){var n=e.crossAllDimensions;return 2===r&&n?\"RowNo(Total)\":\"RowNo()\"}function m(e){var r=function(e){return e?(e=function(e){return e.replace(/\\/\\*[^]*?\\*\\//g,\"\")}(e=function(e){return e.replace(/\\/\\/(.*)$/gm,\"\")}(e))).trim():\"\"}(e).trim();return\"=\"===r.substring(0,1)?r.substring(1).trim():r}function d(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return\"[$(=Replace(GetObjectField(\".concat(e,\"),']',']]'))]\")}function y(e,r){var n=e.crossAllDimensions;return 2===r&&n?\"Above(Total \":\"Above(\"}function q(e){return void 0===e?\")\":\", 0, \".concat(e,\")\")}function b(e,r){return e?\"\".concat(r,'={\">=$(=Min(').concat(r,\"))<=$(=Max(\").concat(r,'))\"}'):\"\".concat(r,'={\"=Only({1}').concat(r,\")>='$(=MinString(\").concat(r,\"))' and Only({1}\").concat(r,\")<='$(=MaxString(\").concat(r,\"))'\\\"}\")}function D(e){var r=e.modifier,n=void 0===r?{}:r,t=e.dimensions,o=e.dimensionAndFieldList,i=e.funcComp,a=void 0===i?\"Sum\":i,s=e.valueComp,u=void 0===s?\"0\":s;if(!n.showExcludedValues)return\"\";if(t&&1===t.length){var l=b(c(t[0],o),d(0));return\"\".concat(a,\"({1<\").concat(l,\">}\").concat(u,\")\")}if(t&&2===t.length){var p=c(t[0],o),f=c(t[1],o),m=d(0),y=d(1),q=b(p,m),D=b(f,y);return\"\".concat(a,\"({1<\").concat(q,\",\").concat(D,\">}\").concat(u,\")\")}return\"\".concat(a,\"({1}\").concat(u,\")\")}function v(e){return\"\".concat(e,\"(\")}function g(e){var r=e.properties,n=e.layout;return a(r,\"qHyperCubeDef.qDimensions\",a(n,\"qHyperCube.qDimensionInfo\",[])).length}var h={isFullRange:p,getNumDimensions:g,getExpressionWithExcludedComp:function(e){var r=e.expression,n=e.modifier,t=e.dimensions,o=e.dimensionAndFieldList,i=e.treatMissingAsNull,a=l(m(r));if(!n.showExcludedValues)return a;var s=D({modifier:n,dimensions:t,dimensionAndFieldList:o}),u=i?\"\":\", 0\";if(t&&1===t.length){var c=d(0);return\"If(Count(\".concat(c,\") > 0, \").concat(a,\" + \").concat(s).concat(u,\")\")}if(t&&2===t.length){var p=d(0),f=d(1);return\"If(Count(\".concat(p,\") * Count(\").concat(f,\") > 0, \").concat(a,\" + \").concat(s).concat(u,\")\")}return a},getRowNoComp:f,getNumStepComp:function(e,r){if(!p(e)){var n=e.steps;return\"number\"!=typeof n||Number.isNaN(n)?6:n}return f(e,r)},getAboveCompPrefix:y,getAboveCompSuffix:q,getAboveComp:function(e,r,n,t){return y(e,r)+n+q(t)},getFunctionPrefix:v,getFunctionSuffix:function(){return\")\"},getRangeComp:function(e,r){return v(e)+r+\")\"},getAggrComp:function(e,r,n){return\"Aggr(\".concat(e,\", \").concat(r,\", \").concat(n,\")\")},getExcludedComp:D,needDimension:function(e){var r=e.modifier,n=e.properties,t=e.layout;return 0===function(e){return void 0===e.primaryDimension?e.accumulationDimension:e.primaryDimension}(r)&&2===g({properties:n,layout:t})},getDimComp:function(e,r){var n=function(e){return e[arguments.length>1&&void 0!==arguments[1]?arguments[1]:0].qDef.qSortCriterias[0]}(e,r),t=d(r);if(!n.qSortByExpression&&!n.qSortByNumeric&&!n.qSortByAscii)return t;var o=[\"Descending\",\"Ascending\"],i=n.qSortByNumeric?\"(Numeric, \".concat(o[(n.qSortByNumeric+1)/2],\")\"):\"\",a=n.qSortByAscii?\"(Text, \".concat(o[(n.qSortByAscii+1)/2],\")\"):\"\";return n.qSortByNumeric&&n.qSortByAscii?\"(\".concat(t,\", \").concat(i,\", \").concat(a,\")\"):n.qSortByNumeric?\"(\".concat(t,\", \").concat(i,\")\"):n.qSortByAscii?\"(\".concat(t,\", \").concat(a,\")\"):t},simplifyExpression:m,extractInputExpression:function(e){var r=e.outputExpression;if(e.modifier){var n=r.indexOf(s);if(-1!==n){var t=r.indexOf(u);if(-1!==t)return r.substring(n+s.length,t)}}},initModifier:function(e,r){Object.keys(r).forEach((function(n){void 0===e[n]&&(e[n]=r[n])}))},isNumeric:c,isApplicable:function(e){var r=e.properties,n=e.layout,t=e.minDimensions,o=void 0===t?1:t,i=e.maxDimensions,a=void 0===i?2:i;if(!r&&!n)return!0;var s=g({properties:r,layout:n});return s>=o&&s<=a},getExpressionWithMarkers:l,canExtract:function(e){var r=e.indexOf(s),n=e.indexOf(u);return r>-1&&n>-1&&r<n},getDimDefWithWrapper:d,getFieldWithWrapper:function(e){var r=e?e.replace(/]/g,\"]]\"):e;return\"[\".concat(r,\"]\")}};function x(e){return(x=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}var E=o.a.bind(null,!0),A={},C=Array.isArray;function I(e){return null!=e&&!Array.isArray(e)&&\"object\"===x(e)}function M(e){return void 0===e}function S(e,r){return\"function\"==typeof e[r]||\"$$\"===r.substring(0,2)||\"_\"===r.substring(0,1)}function L(e,r){var n,t=r.substring(1).split(\"/\").slice(0,-1);return t.forEach((function(r,o){if(o!==t.length){n=+r;var i=Number.isNaN(n)?{}:[];e[n||r]=M(e[n||r])?i:e[r],e=e[n||r]}})),e}function O(e,r){var n=!0;if(I(e)&&I(r))return Object.keys(e).length===Object.keys(r).length&&(Object.keys(e).forEach((function(t){O(e[t],r[t])||(n=!1)})),n);if(C(e)&&C(r)){if(e.length!==r.length)return!1;for(var t=0,o=e.length;t<o;t+=1)if(!O(e[t],r[t]))return!1;return!0}return e===r}A.generate=function(e,r,n){n=n||\"\";var t=[];return Object.keys(r).forEach((function(o){var i=function(e){return e?E({},{val:e}).val:e}(r[o]),a=e[o],s=\"\".concat(n,\"/\").concat(o);O(i,a)||S(r,o)||(M(a)?t.push({op:\"add\",path:s,value:i}):I(i)&&I(a)?t=t.concat(A.generate(a,i,s)):C(i)&&C(a)?t=t.concat(function(e,r,n){var t=[],o=e.slice(),i=-1;function a(e,r,n){if(e[n]&&M(e[n].qInfo))return null;if(e[n]&&e[n].qInfo.qId===r)return n;for(var t=0,o=e.length;t<o;t+=1)if(e[t]&&e[t].qInfo.qId===r)return t;return-1}if(O(r,o))return t;if(!M(r[0])&&M(r[0].qInfo))return t.push({op:\"replace\",path:n,value:r}),t;for(var s=o.length-1;s>=0;s-=1)-1===(i=a(r,o[s].qInfo&&o[s].qInfo.qId,s))?(t.push({op:\"remove\",path:\"\".concat(n,\"/\").concat(s)}),o.splice(s,1)):t=t.concat(A.generate(o[s],r[i],\"\".concat(n,\"/\").concat(s)));for(var u=0,l=r.length;u<l;u+=1)-1===(i=a(o,r[u].qInfo&&r[u].qInfo.qId))?(t.push({op:\"add\",path:\"\".concat(n,\"/\").concat(u),value:r[u]}),o.splice(u,0,r[u])):i!==u&&(t.push({op:\"move\",path:\"\".concat(n,\"/\").concat(u),from:\"\".concat(n,\"/\").concat(i)}),o.splice(u,0,o.splice(i,1)[0]));return t}(a,i,s)):t.push({op:\"replace\",path:\"\".concat(n,\"/\").concat(o),value:i}))})),Object.keys(e).forEach((function(o){M(r[o])&&!S(e,o)&&t.push({op:\"remove\",path:\"\".concat(n,\"/\").concat(o)})})),t},A.apply=function(e,r){r.forEach((function(r){var n,t=L(e,r.path),o=r.path.split(\"/\").splice(-1)[0],i=o&&Number.isNaN(+o)?t[o]:t[+o]||t,a=r.from?r.from.split(\"/\").splice(-1)[0]:null;if(\"/\"===r.path&&(t=null,i=e),\"add\"===r.op||\"replace\"===r.op)if(C(t))\"-\"===o&&(o=t.length),t.splice(+o,\"add\"===r.op?0:1,r.value);else if(C(i)&&C(r.value)){var s,u=r.value.slice();i.length=0,(s=i).push.apply(s,function(e){return function(e){if(Array.isArray(e)){for(var r=0,n=new Array(e.length);r<e.length;r++)n[r]=e[r];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}()}(u))}else if(I(i)&&I(r.value))n=i,Object.keys(n).forEach((function(e){Object.getOwnPropertyDescriptor(n,e).configurable&&!S(n,e)&&delete n[e]})),E(i,r.value);else{if(!t)throw new Error(\"Patchee is not an object we can patch\");t[o]=r.value}else if(\"move\"===r.op){var l=L(e,r.from);C(t)?t.splice(+o,0,l.splice(+a,1)[0]):(t[o]=l[a],delete l[a])}else\"remove\"===r.op&&(C(t)?t.splice(+o,1):delete t[o])}))},A.clone=function(e){return E({},e)},A.createPatch=function(e,r,n){var t={op:e.toLowerCase(),path:n};return\"move\"===t.op?t.from=r:void 0!==r&&(t.value=r),t},A.updateObject=function(e,r){Object.keys(e).length?A.apply(e,A.generate(e,r)):E(e,r)};var P=A,F=function(e,r,n){if(!e)return Promise.resolve();var t=P.generate(r,n);return o()(!0,r,n),t&&t.length?(t=t.map((function(e){return{qOp:e.op,qValue:JSON.stringify(e.value),qPath:e.path}})),e.applyPatches(t,!0)):Promise.resolve()},N=\"accumulation\";function V(e,r){var n=a(e,r);if(n)for(var t=0;t<n.length;t++)if(n[t].type===N)return n[t]}function w(e,r){var n=function(e,r){var n=a(e,r);if(!n)return-1;for(var t=0;t<n.length;t++)if(n[t].type===N)return t;return-1}(e,r);return n>-1?\"\".concat(r,\".\").concat(n):r}var H={type:\"accumulation\",disabled:!1,accumulationDimension:0,crossAllDimensions:!1,showExcludedValues:!0,fullAccumulation:!1,steps:6,outputExpression:\"\"},T={translationKey:\"properties.modifier.accumulation\",needDimension:h.needDimension,isApplicable:function(e){var r=e.properties,n=e.layout;return h.isApplicable({properties:r,layout:n,minDimensions:1,maxDimensions:2})},generateExpression:function(e){var r=e.expression,n=e.modifier,t=e.properties,o=e.layout,i=e.numDimensions,s=e.dimensionAndFieldList;if(!n)return r;var u=i;void 0===u&&(u=h.getNumDimensions({properties:t,layout:o}));var l=a(t,\"qHyperCubeDef.qDimensions\",[]),c=h.getExpressionWithExcludedComp({expression:r,modifier:n,dimensions:l,dimensionAndFieldList:s}),p=h.getNumStepComp(n,u),f=h.getAboveComp(n,u,c,p),m=h.getRangeComp(\"RangeSum\",f);if(h.needDimension({modifier:n,properties:t,layout:o})){var d=h.getDimComp(l,1),y=h.getDimComp(l,0),q=h.getAggrComp(m,d,y);m=n.showExcludedValues?h.getExcludedComp({modifier:n,dimensions:l,dimensionAndFieldList:s,valueComp:q}):q}return m},extractInputExpression:h.extractInputExpression,initModifier:function(e){h.initModifier(e,H)},enableTotalsFunction:function(){return!1},propertyPanelDef:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={type:\"items\",items:{disclaimer:{component:\"text\",translation:r.disclaimer||\"properties.modifier.accumulation.disclaimer\",show:function(e,r){return!h.isApplicable({properties:r.properties})}},settings:{type:\"items\",items:{primaryDimension:{refFn:function(r){return\"\".concat(w(r,e),\".accumulationDimension\")},type:\"integer\",translation:r.primaryDimension||\"properties.modifier.primaryDimension\",title:{translation:r.primaryDimensionTooltip||\"properties.modifier.accumulation.primaryDimension.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:1,options:function(e,r){return r.layout.qHyperCube.qDimensionInfo.map((function(e,r){return{value:r,label:e.qGroupFallbackTitles[0]}}))},show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},crossAllDimensions:{refFn:function(r){return\"\".concat(w(r,e),\".crossAllDimensions\")},type:\"boolean\",translation:r.crossAllDimensions||\"properties.modifier.crossAllDimensions\",title:{translation:r.crossAllDimensionsTooltip||\"properties.modifier.accumulation.crossAllDimensions.tooltip\"},schemaIgnore:!0,defaultValue:!1,show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},fullRange:{refFn:function(r){return\"\".concat(w(r,e),\".fullAccumulation\")},type:\"boolean\",translation:r.range||\"properties.modifier.range\",component:\"dropdown\",schemaIgnore:!0,defaultValue:!1,options:[{value:!0,translation:r.rangeFull||\"properties.modifier.range.full\"},{value:!1,translation:r.rangeCustom||\"properties.modifier.range.custom\"}]},steps:{refFn:function(r){return\"\".concat(w(r,e),\".steps\")},type:\"integer\",translation:r.rangeSteps||\"properties.modifier.range.steps\",schemaIgnore:!0,defaultValue:6,change:function(r){var n=V(r,e);if(n){var t=n.steps;n.steps=\"number\"!=typeof t||Number.isNaN(t)?6:Math.abs(t)}},show:function(r){var n=V(r,e);return n&&!n.fullAccumulation}},showExcludedValues:{refFn:function(r){return\"\".concat(w(r,e),\".showExcludedValues\")},type:\"boolean\",translation:r.showExcludedValues||\"properties.modifier.showExcludedValues\",schemaIgnore:!0,defaultValue:!0}},show:function(e,r){return h.isApplicable({properties:r.properties})}}},show:function(r,n,t){var o=t.ext.support.modifiers;if(!Array.isArray(o)||-1===o.indexOf(N))return!1;var i=V(r,e);return i&&!i.disabled}};return n}},j=\"movingAverage\";function _(e,r){var n=a(e,r);if(n)for(var t=0;t<n.length;t++)if(n[t].type===j)return n[t]}function R(e,r){var n=function(e,r){var n=a(e,r);if(!n)return-1;for(var t=0;t<n.length;t++)if(n[t].type===j)return t;return-1}(e,r);return n>-1?\"\".concat(r,\".\").concat(n):r}var B={type:\"movingAverage\",disabled:!1,primaryDimension:0,crossAllDimensions:!1,showExcludedValues:!0,fullRange:!1,steps:6,outputExpression:\"\",nullSuppression:!1},k={translationKey:\"properties.modifier.movingAverage\",needDimension:h.needDimension,isApplicable:function(e){var r=e.properties,n=e.layout;return h.isApplicable({properties:r,layout:n,minDimensions:1,maxDimensions:2})},generateExpression:function(e){var r,n=e.expression,t=e.modifier,o=e.properties,i=e.layout,s=e.numDimensions,u=e.dimensionAndFieldList;if(!t)return n;var l=s;void 0===l&&(l=h.getNumDimensions({properties:o,layout:i}));var c=a(o,\"qHyperCubeDef.qDimensions\",[]),p=t.showExcludedValues&&t.nullSuppression,f=h.getExpressionWithExcludedComp({expression:n,modifier:t,dimensions:c,dimensionAndFieldList:u,treatMissingAsNull:p}),m=h.getNumStepComp(t,l),d=h.getAboveComp(t,l,f,m);if(t.nullSuppression)r=h.getRangeComp(\"RangeAvg\",d);else{var y=h.getRangeComp(\"RangeSum\",d),q=function(e,r){var n=h.getRowNoComp(e,r);if(!h.isFullRange(e)){var t=e.steps,o=\"number\"!=typeof t||Number.isNaN(t)?6:t;return\"RangeMin(\".concat(o,\", \").concat(n,\")\")}return n}(t,l);r=\"\".concat(y,\" / \").concat(q)}var b=r;if(h.needDimension({modifier:t,properties:o,layout:i})){var D=h.getDimComp(c,1),v=h.getDimComp(c,0),g=h.getAggrComp(b,D,v);b=t.showExcludedValues?h.getExcludedComp({modifier:t,dimensions:c,dimensionAndFieldList:u,funcComp:\"Only\",valueComp:g}):g}return b},extractInputExpression:h.extractInputExpression,initModifier:function(e){h.initModifier(e,B)},enableTotalsFunction:function(){return!1},propertyPanelDef:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={type:\"items\",items:{disclaimer:{component:\"text\",translation:r.disclaimer||\"properties.modifier.movingAverage.disclaimer\",show:function(e,r){return!h.isApplicable({properties:r.properties})}},settings:{type:\"items\",items:{primaryDimension:{refFn:function(r){return\"\".concat(R(r,e),\".primaryDimension\")},type:\"integer\",translation:r.primaryDimension||\"properties.modifier.primaryDimension\",title:{translation:r.primaryDimensionTooltip||\"properties.modifier.movingAverage.primaryDimension.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:1,options:function(e,r){return r.layout.qHyperCube.qDimensionInfo.map((function(e,r){return{value:r,label:e.qGroupFallbackTitles[0]}}))},show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},crossAllDimensions:{refFn:function(r){return\"\".concat(R(r,e),\".crossAllDimensions\")},type:\"boolean\",translation:r.crossAllDimensions||\"properties.modifier.crossAllDimensions\",title:{translation:r.crossAllDimensionsTooltip||\"properties.modifier.movingAverage.crossAllDimensions.tooltip\"},schemaIgnore:!0,defaultValue:!1,show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},fullRange:{refFn:function(r){return\"\".concat(R(r,e),\".fullRange\")},type:\"boolean\",translation:r.range||\"properties.modifier.range\",component:\"dropdown\",schemaIgnore:!0,defaultValue:!1,options:[{value:!0,translation:r.rangeFull||\"properties.modifier.range.full\"},{value:!1,translation:r.rangeCustom||\"properties.modifier.range.custom\"}]},steps:{refFn:function(r){return\"\".concat(R(r,e),\".steps\")},type:\"integer\",translation:r.rangeSteps||\"properties.modifier.range.steps\",schemaIgnore:!0,defaultValue:6,change:function(r){var n=_(r,e);if(n){var t=n.steps;n.steps=\"number\"!=typeof t||Number.isNaN(t)?6:Math.abs(t)}},show:function(r){var n=_(r,e);return n&&!n.fullRange}},showExcludedValues:{refFn:function(r){return\"\".concat(R(r,e),\".showExcludedValues\")},type:\"boolean\",translation:r.showExcludedValues||\"properties.modifier.showExcludedValues\",schemaIgnore:!0,defaultValue:!0},nullSuppression:{refFn:function(r){return\"\".concat(R(r,e),\".nullSuppression\")},type:\"boolean\",translation:r.showNull||\"properties.dimensions.showNull\",schemaIgnore:!0,defaultValue:!1,inverted:!0}},show:function(e,r){return h.isApplicable({properties:r.properties})}}},show:function(r,n,t){var o=t.ext.support.modifiers;if(!Array.isArray(o)||-1===o.indexOf(j))return!1;var i=_(r,e);return i&&!i.disabled}};return n}},U=\"difference\";function G(e,r){var n=a(e,r);if(n)for(var t=0;t<n.length;t++)if(n[t].type===U)return n[t]}function W(e,r){var n=function(e,r){var n=a(e,r);if(!n)return-1;for(var t=0;t<n.length;t++)if(n[t].type===U)return t;return-1}(e,r);return n>-1?\"\".concat(r,\".\").concat(n):r}var $={type:\"difference\",disabled:!1,primaryDimension:0,crossAllDimensions:!1,showExcludedValues:!0,outputExpression:\"\"},z={translationKey:\"properties.modifier.difference\",needDimension:h.needDimension,isApplicable:function(e){var r=e.properties,n=e.layout;return h.isApplicable({properties:r,layout:n,minDimensions:1,maxDimensions:2})},extractInputExpression:h.extractInputExpression,generateExpression:function(e){var r=e.expression,n=e.modifier,t=e.properties,o=e.layout,i=e.numDimensions,s=e.dimensionAndFieldList;if(!n)return r;var u=i;void 0===u&&(u=h.getNumDimensions({properties:t,layout:o}));var l=a(t,\"qHyperCubeDef.qDimensions\",[]),c=h.getExpressionWithExcludedComp({expression:r,modifier:n,dimensions:l,dimensionAndFieldList:s}),p=h.getAboveComp(n,u,c),f=\"\".concat(c,\" - \").concat(p);if(h.needDimension({modifier:n,properties:t,layout:o})){var m=h.getDimComp(l,1),d=h.getDimComp(l,0),y=h.getAggrComp(f,m,d);f=n.showExcludedValues?h.getExcludedComp({modifier:n,dimensions:l,dimensionAndFieldList:s,funcComp:\"Only\",valueComp:y}):y}return f},initModifier:function(e){Object.keys($).forEach((function(r){void 0===e[r]&&(e[r]=$[r])}))},enableTotalsFunction:function(){return!1},propertyPanelDef:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={type:\"items\",items:{disclaimer:{component:\"text\",translation:r.disclaimer||\"properties.modifier.difference.disclaimer\",show:function(e,r){return!h.isApplicable({properties:r.properties})}},settings:{type:\"items\",items:{primaryDimension:{refFn:function(r){return\"\".concat(W(r,e),\".primaryDimension\")},type:\"integer\",translation:r.primaryDimension||\"properties.modifier.primaryDimension\",title:{translation:r.primaryDimensionTooltip||\"properties.modifier.difference.primaryDimension.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:1,options:function(e,r){return r.layout.qHyperCube.qDimensionInfo.map((function(e,r){return{value:r,label:e.qGroupFallbackTitles[0]}}))},show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},crossAllDimensions:{refFn:function(r){return\"\".concat(W(r,e),\".crossAllDimensions\")},type:\"boolean\",translation:r.crossAllDimensions||\"properties.modifier.crossAllDimensions\",title:{translation:r.crossAllDimensionsTooltip||\"properties.modifier.difference.crossAllDimensions.tooltip\"},schemaIgnore:!0,defaultValue:!1,show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},showExcludedValues:{refFn:function(r){return\"\".concat(W(r,e),\".showExcludedValues\")},type:\"boolean\",translation:r.showExcludedValues||\"properties.modifier.showExcludedValues\",schemaIgnore:!0,defaultValue:!0}},show:function(e,r){return h.isApplicable({properties:r.properties})}}},show:function(r,n,t){var o=t.ext.support.modifiers;if(!Array.isArray(o)||-1===o.indexOf(U))return!1;var i=G(r,e);return i&&!i.disabled}};return n}},Y={CURRENT_SELECTION:0,SELECT_FIELD_VALUE:1,DISREGARD_SELECTION:2},J={ONE_DIMENSION:0,ALL_DIMENSIOANS:1,DISREGARD_ALL_DIMENSIONS:2},K=\"normalization\";function X(e,r){var n=a(e,r);if(n)for(var t=0;t<n.length;t++)if(n[t].type===K)return n[t]}function Q(e,r){var n=function(e,r){var n=a(e,r);if(!n)return-1;for(var t=0;t<n.length;t++)if(n[t].type===K)return t;return-1}(e,r);return n>-1?\"\".concat(r,\".\").concat(n):r}function Z(e,r){for(var n=0;n<e.length;n++)if(e[n].value===r)return n;return-1}function ee(e,r,n,t){var o=r.layout.qHyperCube.qDimensionInfo.length,i=[{value:J.ONE_DIMENSION,translation:n.dimensionalScopeOneDimension||\"properties.modifier.dimensionalScope.respectOneDimension\",tooltipTranslation:n.dimensionalScopeOneDimensionTooltip||\"properties.modifier.dimensionalScope.respectOneDimension.tooltip\"},{value:J.ALL_DIMENSIOANS,translation:n.dimensionalScopeAllDimensions||\"properties.modifier.dimensionalScope.\".concat(2===o?\"respectAllDimensions\":\"respectDimension\"),tooltipTranslation:n.dimensionalScopeAllDimensionsTooltip||\"properties.modifier.dimensionalScope.\".concat(2===o?\"respectAllDimensions\":\"respectDimension\",\".tooltip\")},{value:J.DISREGARD_ALL_DIMENSIONS,translation:n.dimensionalScopeDisregardAllDimensions||\"properties.modifier.dimensionalScope.\".concat(2===o?\"disregardAllDimensions\":\"disregardDimension\"),tooltipTranslation:n.dimensionalScopeDisregardAllDimensionsTooltip||\"properties.modifier.dimensionalScope.\".concat(2===o?\"disregardAllDimensions\":\"disregardDimension\",\".tooltip\")}];return i=function(e,r,n){if(e<2){var t=Z(r,0);r.splice(t,1)}return r}(o,i),function(e,r,n){if(0===e){var t=Z(r,1);r.splice(t,1)}return r}(X(e,t).selectionScope,i)}function re(e,r,n){var t=[{value:Y.CURRENT_SELECTION,translation:r.selectionScopeCurrentSelection||\"properties.modifier.selectionScope.currentSelection\"},{value:Y.SELECT_FIELD_VALUE,translation:r.selectionScopeSpecificValue||\"properties.modifier.selectionScope.selectAField\"},{value:Y.DISREGARD_SELECTION,translation:r.selectionScopeTotal||\"properties.modifier.selectionScope.total\"}];return function(e,r,n){if(1===e){var t=Z(r,0);r.splice(t,1)}return r}(X(e,n).dimensionalScope,t)}var ne={type:\"normalization\",disabled:!1,primaryDimension:0,outputExpression:\"\",dimensionalScope:J.DISREGARD_ALL_DIMENSIONS,selectionScope:Y.DISREGARD_SELECTION};function te(e){return 2===e?\"{1}\":\"\"}function oe(e,r,n){return 1===e?\"{$<\".concat(h.getFieldWithWrapper(r),\"={'\").concat(n,\"'}>}\"):\"\"}function ie(e,r){return 0===e&&r>1||2===e?\"Total\":\"\"}function ae(e,r,n){return 0===e&&r>1?\"<\".concat(h.getDimDefWithWrapper(n),\">\"):\"\"}var se={translationKey:\"properties.modifier.normalization\",needDimension:function(){return!0},isApplicable:function(e){var r=e.properties,n=e.layout;return h.isApplicable({properties:r,layout:n,minDimensions:1,maxDimensions:2})},extractInputExpression:h.extractInputExpression,generateExpression:function(e){var r=e.expression,n=e.modifier,t=e.properties,o=e.layout,i=e.numDimensions,s=e.dimensionAndFieldList;if(!n)return r;var u=i;void 0===u&&(u=h.getNumDimensions({properties:t,layout:o}));var l=a(t,\"qHyperCubeDef.qDimensions\",[]),c=h.getExpressionWithExcludedComp({expression:r,modifier:n,dimensions:l,dimensionAndFieldList:s}),p=n.selectionScope,f=n.dimensionalScope;return function(e,r,n,t,o,i,a){var s=te(r),u=oe(r,n,t),l=\"\"===s&&\"\"===u?\"\":s||u,c=ie(o,i),p=ae(o,i,a),f=function(e){for(var r=[],n=0;n<e;n++)r[n]=h.getDimDefWithWrapper(n);return r.join(\", \")}(i);return\"\".concat(e,\"/ Sum(\").concat(l,\" \").concat(c).concat(p,\" Aggr(\").concat(l,\" \").concat(e,\", \").concat(f,\"))\")}(c,p,n.field,n.value,f,u,n.primaryDimension)},initModifier:function(e){Object.keys(ne).forEach((function(r){void 0===e[r]&&(e[r]=ne[r])}))},updateModifier:function(e,r){1===(r.qDimensions?r.qDimensions.length:0)&&0===e.dimensionalScope&&(e.dimensionalScope=2)},enableTotalsFunction:function(){return!0},propertyPanelDef:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={type:\"items\",items:{disclaimer:{component:\"text\",translation:r.disclaimer||\"properties.modifier.normalization.disclaimer\",show:function(e,r){return!h.isApplicable({properties:r.properties})}},settings:{type:\"items\",items:{selectionScope:{refFn:function(r){return\"\".concat(Q(r,e),\".selectionScope\")},type:\"string\",translation:r.modifierSelectionScope||\"properties.modifier.selectionScope\",title:{translation:r.modifierSelectionScopeTooltip||\"properties.modifier.selectionScope.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:Y.DISREGARD_SELECTION,options:function(n){return re(n,r,e)}},field:{refFn:function(r){return\"\".concat(Q(r,e),\".field\")},type:\"string\",component:\"expression-with-dropdown\",translation:\"Common.Field\",defaultValue:\"\",dropdownOnly:!0,options:function(e,r,n){return n.app.getFieldList().then((function(e){return e.map((function(e){return{label:e.qName,value:e.qName}}))}))},show:function(r){return X(r,e).selectionScope===Y.SELECT_FIELD_VALUE}},value:{refFn:function(r){return\"\".concat(Q(r,e),\".value\")},type:\"string\",ref:\"value\",component:\"string\",translation:\"properties.value\",expression:\"optional\",show:function(r){return X(r,e).selectionScope===Y.SELECT_FIELD_VALUE}},dimensionalScope:{refFn:function(r){return\"\".concat(Q(r,e),\".dimensionalScope\")},type:\"string\",translation:r.modifierDimensionalScope||\"properties.modifier.dimensionalScope\",title:{translation:r.modifierDimensionalScopeTooltip||\"properties.modifier.dimensionalScope.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:J.DISREGARD_ALL_DIMENSIONS,supportTooltip:!0,options:function(n,t){return ee(n,t,r,e)}},primaryDimension:{refFn:function(r){return\"\".concat(Q(r,e),\".primaryDimension\")},type:\"integer\",translation:r.primaryDimension||\"properties.modifier.primaryDimension\",title:{translation:r.primaryDimensionTooltip||\"properties.modifier.normalization.primaryDimension.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:1,options:function(e,r){return r.layout.qHyperCube.qDimensionInfo.map((function(e,r){return{value:r,label:e.qGroupFallbackTitles[0]}}))},show:function(r,n){return(X(r,e).dimensionalScope||0)===J.ONE_DIMENSION&&n.layout.qHyperCube.qDimensionInfo.length>1}}},show:function(e,r){return h.isApplicable({properties:r.properties})}}},show:function(r,n,t){var o=t.ext.support.modifiers;if(!Array.isArray(o)||-1===o.indexOf(K))return!1;var i=X(r,e);return i&&!i.disabled}};return n},getDisregardSelectionComp:te,getFieldSelectionComp:oe,getTotalComp:ie,getSelectedDimComp:ae},ue={getExpression:function(e){return a(e,\"qDef.base.qDef\")||a(e,\"qDef.qDef\")},getExpressionRef:function(e){return a(e,\"qDef.base.qDef\")?\"qDef.base.qDef\":\"qDef.qDef\"},getLibraryIdRef:function(e){return a(e,\"qDef.base.qLibraryId\")?\"qDef.base.qLibraryId\":\"qLibraryId\"},getLibraryId:function(e){return a(e,\"qDef.base.qLibraryId\")||a(e,\"qLibraryId\")},getLabelRef:function(e){return a(e,\"qDef.base\")?\"qDef.base.qLabel\":\"qDef.qLabel\"},getLabelExpressionRef:function(e){return a(e,\"qDef.base\")?\"qDef.base.qLabelExpression\":\"qDef.qLabelExpression\"}},le={initBase:function(e,r){(r||le.isValid(e))&&(i(e,\"qDef.base.qDef\",a(e,\"qDef.qDef\")),i(e,\"qDef.base.qLibraryId\",a(e,\"qLibraryId\")),i(e,\"qDef.base.qLabel\",a(e,\"qDef.qLabel\")),i(e,\"qDef.base.qLabelExpression\",a(e,\"qDef.qLabelExpression\")))},restoreBase:function(e){le.isValid(e)&&(i(e,\"qDef.qDef\",a(e,\"qDef.base.qDef\")),i(e,\"qLibraryId\",a(e,\"qDef.base.qLibraryId\")),i(e,\"qDef.qLabel\",a(e,\"qDef.base.qLabel\")),i(e,\"qDef.qLabelExpression\",a(e,\"qDef.base.qLabelExpression\")),a(e,\"qDef.qAggrFunc\")&&a(e,\"qDef.base.qAggrFunc\")&&i(e,\"qDef.qAggrFunc\",a(e,\"qDef.base.qAggrFunc\")),delete e.qDef.base)},isValid:function(e){var r=a(e,\"qDef.base.qDef\"),n=a(e,\"qDef.base.qLibraryId\");return void 0!==r||void 0!==n}},ce=le;function pe(e){return(pe=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}var fe={accumulation:T,movingAverage:k,difference:z,normalization:se},me=(r.default={modifiers:fe,apply:de,applyModifiers:ye,cleanUpMeasure:qe,destroy:function(e){e&&me[e.id]&&me[e.id].masterItemSubscriber&&(me[e.id].masterItemSubscriber&&me[e.id].masterItemSubscriber.unsubscribe(),delete me[e.id])},hasActiveModifiers:be,getActiveModifier:De,initBase:ce.initBase,isSupportedModifiers:function(e){return Array.isArray(e)&&e.some((function(e){return fe[e]}))},isApplicableSupportedModifiers:function(e){var r=e.modifierTypes,n=e.properties,t=e.layout;return Array.isArray(r)&&r.some((function(e){return fe[e]&&fe[e].isApplicable({properties:n,layout:t})}))},measureBase:ue,limitedSorting:function(e){var r=e.measures,n=e.properties,t=e.layout,o=!1,i=!1;return r.forEach((function(e){var r=he(e);Se({modifiers:r,properties:n,layout:t})&&(o=!0,i=i||Ne({modifiers:r,properties:n,layout:t}))})),o&&!i},ifEnableTotalsFunction:ve},{});function de(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.model,n=e.properties,t=e.isSnapshot,i=void 0!==t&&t,s=e.masterItem;me[r.id]=me[r.id]||{isFirstTime:!0};var u=me[r.id].isFirstTime;if(me[r.id].isFirstTime=!1,n&&\"object\"===pe(n))return ye({model:r,properties:n});var l=r?r.layout:void 0,c=a(l,\"qSelectionInfo.qInSelections\");if(i||c)return Promise.resolve(!1);var p=a(l,\"qHyperCube.qMeasureInfo\"),f=me[r.id].lastReloadTime;if(me[r.id].lastReloadTime=a(r,\"app.layout.qLastReloadTime\"),be({measures:p,layout:l})){var m=function(e){var r=e.measures,n=e.layout,t=e.lastReloadTime;return a(e.model,\"app.layout.qLastReloadTime\")!==t&&function(e){var r=e.measures,n=e.properties,t=e.layout;return!!Array.isArray(r)&&r.some((function(e){return Me({measure:e,properties:n,layout:t})}))}({measures:r,layout:n})}({measures:p,layout:l,model:r,lastReloadTime:f});return m||function(e){var r=e.measures,n=e.layout,t=e.masterItem,o=e.isFirstTime;return!!Array.isArray(r)&&(o||t||r.some((function(e){return function(e){var r=e.measure,n=e.layout;return Se({modifiers:he(r),layout:n})?!r.base:!!r.base}({measure:e,layout:n})})))}({measures:p,layout:l,masterItem:s,isFirstTime:u})?r.getEffectiveProperties().then((function(e){var n=o()(!0,{},e);Ee(n);var t=Ve(n);return Le({model:r}).then((function(o){return Oe({libraryIds:t,model:r}).then((function(t){return m&&function(e){var r=e.properties;ge(r).forEach((function(e){return function(e){var r=e.measure;if(Me({measure:r,properties:e.properties})){var n=0,t=r.qDef.modifiers;Array.isArray(t)&&t.forEach((function(e){if(\"object\"===pe(e)&&!e.disabled){if(n++,\"object\"!==pe(fe[e.type]))throw new Error('Modifier \"'.concat(e.type,'\" is not available'));if(n>1)throw new Error(\"More than 1 modifier on a measure! (not yet supported)\");var t=fe[e.type].extractInputExpression({outputExpression:r.qDef.qDef,modifier:e});void 0!==t&&Ce(r)&&h.simplifyExpression(r.qDef.base.qDef)!==h.simplifyExpression(t)&&(r.qDef.base.qDef=t)}}))}}({measure:e,properties:r})}))}({properties:n}),ye({model:r,oldProperties:e,properties:n,runUpdateIfChange:!0,masterItem:s,libraryItemsProps:t,dimensionAndFieldList:o})}))}))})):Promise.resolve(!1)}return function(e){return!!Array.isArray(e)&&e.some((function(e){return\"object\"===pe(e.base)}))}(p)?r.getEffectiveProperties().then((function(e){return function(e){var r=e.model,n=e.properties,t=Ve(n);return we({model:r,libraryIds:t}).then((function(){var e=o()(!0,{},n);return ge(n).forEach((function(e){return qe(e)})),Fe({oldProperties:e,newProperties:n,model:r})}))}({model:r,properties:e})})):Promise.resolve(!1)}function ye(e){var r=e.model,n=e.oldProperties,t=e.properties,i=e.measures,s=e.runUpdateIfChange,u=void 0!==s&&s,l=e.masterItem,c=e.libraryItemsProps,p=e.dimensionAndFieldList;void 0===n&&(n=u?o()(!0,{},t):t),Ee(t);var f=Ve(t);return we({model:r,libraryIds:f,masterItem:l}).then((function(){return function(e){var r=e.measures,n=e.properties,t=e.model,i=e.libraryItemsProps,s=e.dimensionAndFieldList;if(r||(r=ge(n)),!r.length)return Promise.resolve();if(!be({measures:r,properties:n}))return r.forEach((function(e){return qe(e)})),Promise.resolve();var u=i?void 0:Ve(n);return Le({model:t,dimensionAndFieldList:s}).then((function(e){return Oe({libraryIds:u,model:t,libraryItemsProps:i}).then((function(t){r.forEach((function(r){Se({modifiers:r.qDef.modifiers,properties:n})?(function(e){var r=e.measure,n=e.properties,t=e.libraryItemsProps,i=e.dimensionAndFieldList,s=0;ce.isValid(r)||ce.initBase(r,!0);var u=r.qDef,l=u.modifiers,c=u.base;Array.isArray(l)&&l.forEach((function(e){if(\"object\"===pe(e)&&!e.disabled){if(s++,\"object\"!==pe(fe[e.type]))throw new Error('Modifier \"'.concat(e.type,'\" is not available'));if(s>1)throw new Error(\"More than 1 modifier on a measure! (not yet supported)\");fe[e.type].initModifier(e);var u=r.qLibraryId||c&&c.qLibraryId;u?function(e){var r=e.measure,n=e.modifier,t=e.properties,i=e.dimensionAndFieldList,a=e.libraryItemsProps[e.libraryId],s=a.qMeasure.qDef,u=fe[n.type].generateExpression({expression:s,modifier:n,properties:t,dimensionAndFieldList:i});n.outputExpression=u,r.qDef.qDef=n.outputExpression,(r.qDef.qLabel||a.qMeasure.qLabel)&&(r.qDef.qLabel=a.qMeasure.qLabel),(r.qDef.qLabelExpression||a.qMeasure.qLabelExpression)&&(r.qDef.qLabelExpression=a.qMeasure.qLabelExpression),r.qDef.quarantine&&r.qDef.quarantine.qNumFormat&&a.qMeasure.qNumFormat&&(r.qDef.qNumFormat=a.qMeasure.qNumFormat,r.qDef.isCustomFormatted=a.qMeasure.isCustomFormatted),delete r.qLibraryId,r.qDef.coloring=a.qMeasure.coloring,n.base=o()(!0,{},r.qDef.base)}({measure:r,modifier:e,libraryId:u,properties:n,libraryItemsProps:t,dimensionAndFieldList:i}):function(e){var r=e.measure,n=e.modifier,t=e.properties,i=e.dimensionAndFieldList;\"function\"==typeof fe[n.type].updateModifier&&fe[n.type].updateModifier(n,t.qHyperCubeDef);var a=ue.getExpression(r),s=fe[n.type].generateExpression({expression:a,modifier:n,properties:t,dimensionAndFieldList:i});n.outputExpression=s,r.qDef.qDef=n.outputExpression,r.qDef.base.qLabelExpression?r.qDef.qLabelExpression=r.qDef.base.qLabelExpression:r.qDef.qLabel=r.qDef.base.qLabel||a,n.base=o()(!0,{},r.qDef.base)}({measure:r,modifier:e,properties:n,dimensionAndFieldList:i}),function(e){var r=a(e,\"qDef.qAggrFunc\");\"Expr\"!==r||ve(e)?\"None\"!==r?delete e.qDef.base.qAggrFunc:\"None\"===r&&ve(e)&&\"Expr\"===e.qDef.base.qAggrFunc&&(e.qDef.qAggrFunc=\"Expr\",delete e.qDef.base.qAggrFunc):(e.qDef.qAggrFunc=\"None\",e.qDef.base.qAggrFunc=\"Expr\")}(r)}}))}({measure:r,properties:n,libraryItemsProps:t,dimensionAndFieldList:e}),Ae(r)):qe(r)}))}))}))}({measures:i,properties:t,model:r,libraryItemsProps:c,dimensionAndFieldList:p}).then((function(){return u?Fe({oldProperties:n,newProperties:t,model:r}):Promise.resolve(!1)}))}))}function qe(e){!function(e){var r=he(e);return Array.isArray(r)&&r.some((function(e){return\"object\"===pe(e)&&!e.disabled&&!fe[e.type]}))}(e)?ce.restoreBase(e):delete e.qDef.base,e.qDef.coloring&&delete e.qDef.coloring,Ae(e)}function be(e){var r=e.measures,n=e.properties,t=e.layout;return!!Array.isArray(r)&&r.some((function(e){return Se({modifiers:he(e),properties:n,layout:t})}))}function De(e){var r=he(e);if(Array.isArray(r))for(var n=0;n<r.length;n++){var t=r[n];if(fe[t.type]&&!t.disabled)return t}}function ve(e){var r=De(e);return!r||fe[r.type].enableTotalsFunction(e)}function ge(e){return a(e,\"qHyperCubeDef.qMeasures\",[]).concat(a(e,\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\",[]))}function he(e){return e.modifiers||e.qDef&&e.qDef.modifiers}function xe(e){return a(e,\"outputExpression.qValueExpression.qExpr\")||a(e,\"outputExpression\")}function Ee(e){ge(e).forEach((function(e){return function(e){var r=De(e);r&&(void 0!==r.outputExpression&&xe(r)!==e.qDef.qDef?delete e.qDef.base:!ce.isValid(e)&&r.base&&(e.qDef.base=o()(!0,{},r.base)))}(e)}))}function Ae(e){var r=he(e);Array.isArray(r)&&r.forEach((function(r){\"object\"===pe(r)&&(r.disabled||!fe[r.type]&&xe(r)!==e.qDef.qDef)&&(r.disabled=!0,delete r.base)}))}function Ce(e){return e.base||e.qDef&&e.qDef.base}function Ie(e){var r=Ce(e);return e.qLibraryId||r&&r.qLibraryId}function Me(e){var r=e.measure,n=e.properties,t=e.layout;return!Ie(r)&&Se({modifiers:he(r),properties:n,layout:t})}function Se(e){var r=e.modifiers,n=e.properties,t=e.layout,o={};return Array.isArray(r)&&r.some((function(e){return!(\"object\"!==pe(e)||e.disabled||!fe[e.type])&&(void 0===o[e.type]&&(o[e.type]=fe[e.type].isApplicable({properties:n,layout:t})),o[e.type])}))}function Le(e){var r=e.model,n=e.dimensionAndFieldList;if(n)return Promise.resolve(n);var t=[],o={},i=r.app.getDimensionList().then((function(e){o.dimensionList=e}));t.push(i);var a=r.app.getFieldList().then((function(e){o.fieldList=e}));return t.push(a),Promise.all(t).then((function(){return o}))}function Oe(e){var r=e.libraryIds,n=e.model,t=e.libraryItemsProps;if(t)return Promise.resolve(t);var o=r.measureLibraryIds,i=r.dimensionLibraryIds,a={},s=[];return o.forEach((function(e){var r=n.app.getMeasure(e).then((function(r){return r.getProperties().then((function(r){a[e]=r}))}));s.push(r)})),i.forEach((function(e){var r=n.app.getDimension(e).then((function(r){return r.getProperties().then((function(r){a[e]=r}))}));s.push(r)})),Promise.all(s).then((function(){return a}))}function Pe(e,r){if(\"\"!==r||-1===[\"qFmt\",\"qDec\",\"qThou\"].indexOf(e))return r}function Fe(e){var r=e.oldProperties,n=e.newProperties,t=e.model,o=JSON.stringify(a(r,\"qHyperCubeDef.qMeasures\"),Pe)!==JSON.stringify(a(n,\"qHyperCubeDef.qMeasures\"),Pe)||JSON.stringify(a(r,\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\"),Pe)!==JSON.stringify(a(n,\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\"),Pe);return o?function(e){var r=e.model,n=e.oldProperties,t=e.newProperties,o=r.layout;return o&&!o.qHasSoftPatches&&!o.qExtendsId&&a(o,\"qMeta.privileges\",[]).indexOf(\"update\")>-1?r.setProperties(t):F(r,n,t)}({model:t,oldProperties:r,newProperties:n}).then((function(){return o})):Promise.resolve(o)}function Ne(e){var r=e.modifiers,n=e.properties,t=e.layout;return Array.isArray(r)&&r.some((function(e){return\"object\"===pe(e)&&!e.disabled&&fe[e.type]&&fe[e.type].needDimension({modifier:e,properties:n,layout:t})}))}function Ve(e){var r=ge(e),n=[],t=[],o=!1;return r.forEach((function(r){var t=he(r);if(Se({modifiers:t,properties:e})){var i=Ie(r);i&&n.push(i),o=o||Ne({modifiers:t,properties:e})}})),a(e,\"qHyperCubeDef.qDimensions\",[]).forEach((function(e){var r=e.qLibraryId;r&&t.push(r)})),{measureLibraryIds:n,dimensionLibraryIds:t}}function we(e){var r=e.model,n=e.libraryIds;return!e.masterItem&&n&&(n.measureLibraryIds.length||n.dimensionLibraryIds.length)?(me[r.id].masterItemSubscriber=me[r.id].masterItemSubscriber||function(e){var r=e.model,n=e.callback,t={},o={},i={},s={dimension:[\"qDim.qFieldDefs\"],measure:[\"qMeasure.qDef\",\"qMeasure.qLabel\",\"qMeasure.qLabelExpression\",\"qMeasure.coloring\",\"qMeasure.qNumFormat\",\"qMeasure.isCustomFormatted\"]};function u(e){var r={},n=a(e,\"qInfo.qType\");return n&&s[n]&&s[n].forEach((function(n){r[n]=a(e,n)})),JSON.stringify(r)}function l(e){var r=e.qInfo.qId;if(t[r]){var o=u(e);t[r].properties!==o&&(t[r].properties=o,\"function\"==typeof n&&t[r].enabled&&n(e)),t[r].enabled=!0}}function c(e,n){return r.app[n](e).then((function(r){t[e]={listener:r.layoutSubscribe(l),enabled:!1,properties:u(r.layout)}}))}return{subscribe:function(e){var n=e.measureLibraryIds,a=e.dimensionLibraryIds,s=[];return function(e){var r=e.dimensionLibraryIds;o={},e.measureLibraryIds.forEach((function(e){o[e]=!0})),i={},r.forEach((function(e){i[e]=!0}))}({measureLibraryIds:n,dimensionLibraryIds:a}),Object.keys(t).forEach((function(e){o[e]||i[e]||(t[e].listener.dispose(),delete t[e])})),r.app&&(Object.keys(o).forEach((function(e){o[e]&&!t[e]&&s.push(c(e,\"getMeasure\"))})),Object.keys(i).forEach((function(e){i[e]&&!t[e]&&s.push(c(e,\"getDimension\"))}))),Promise.all(s)},unsubscribe:function(){Object.keys(t).forEach((function(e){t[e].listener.dispose()})),t={}}}}({model:r,callback:function(e){return de({model:r,masterItem:e}).then((function(){return r.app.clearUndoBuffer()}))}}),me[r.id].masterItemSubscriber.subscribe(n)):Promise.resolve()}}])},function(e,r,n){\"use strict\";function t(e){var r=function e(r){var n,t=r;return t>9?(n=65+t-10)>90&&(n+=6):t=\"\".concat(t).charCodeAt(0),[48,111,79,105,73,108].indexOf(n)>-1?e(t+1):String.fromCharCode(n)}(e%62),n=Math.floor(e/62);return n>0?t(n)+r:r}function o(e){return(o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}n.r(r);var i={getValue:function(e,r,n){if(null==e||null==r)return n;for(var t=r.split(\".\"),o=e,i=0;i<t.length;++i){var a=t[i];if(\"\"!==a){if(void 0===o[a]||null===o[a])return n;o=o[a]}}return o},setValue:function(e,r,n){if(null!=e&&null!=r){for(var t=r.split(\".\"),o=t[t.length-1],i=e,a=0;a<t.length-1;++a){var s=t[a];void 0!==i[s]&&null!==i[s]||(i[s]=Number.isNaN(+t[a+1])?{}:[]),i=i[s]}void 0!==n?i[o]=n:delete i[o]}},isEmpty:function(e){return 0===Object.keys(e).length&&e.constructor===Object},isAtomicValue:function(e){return/boolean|number|string/.test(o(e))},generateId:function(){return t(Math.round(99e11*Math.random()+1e11)).replace(/\\W/g,\"\")}};function a(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return s(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function s(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function u(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return l(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function l(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function c(e,r,n){if(e){for(var t=0;t<e.length;t++)if(e[t][r]===n)return t;return-1}return-1}var p={isOrderedSubset:function(e,r){if(!(e&&r&&e.length&&r.length))return!1;var n=e.indexOf(r[0]);if(-1!==n){for(var t=0;t<r.length;t++){var o=e.indexOf(r[t]);if(n>o)return!1;n=o}return!0}return!1},indexAdded:function(e,r){var n;for(n=0;n<e.length;++n)e[n]>=0&&e[n]>=r&&++e[n];e.push(r)},indexRemoved:function(e,r){var n,t=0;for(n=0;n<e.length;++n)e[n]>r?--e[n]:e[n]===r&&(t=n);return e.splice(t,1),t},findItemByPropertyValue:function(e,r,n){if(e){for(var t=0;t<e.length;t++)if(e[t][r]===n)return e[t];return null}return null},findIndexByPropertyValue:c};var f=n(1),m=n.n(f);var d={addDimensions:function(e){var r,n=e.exportFormat,t=e.qHyperCubeDef,o=n.data[0];(r=o.dimensions).push.apply(r,a(t.qDimensions));var s,u=i.getValue(t,\"qLayoutExclude.qHyperCubeDef.qDimensions\");u&&(s=o.excludedDimensions).push.apply(s,a(u))},addMeasures:function(e){var r,n=e.exportFormat,t=e.qHyperCubeDef,o=n.data[0];(r=o.measures).push.apply(r,u(t.qMeasures));var a,s=i.getValue(t,\"qLayoutExclude.qHyperCubeDef.qMeasures\");s&&(a=o.excludedMeasures).push.apply(a,u(s))},setInterColumnSortOrder:function(e){var r=e.exportFormat,n=e.qHyperCubeDef,t=r.data[0];n.qInterColumnSortOrder||(n.qInterColumnSortOrder=[]),t.interColumnSortOrder=n.qInterColumnSortOrder.concat();var o=i.getValue(n,\"qLayoutExclude.qHyperCubeDef.qInterColumnSortOrder\");o&&p.isOrderedSubset(o,t.interColumnSortOrder)&&(t.interColumnSortOrder=o.concat())},copyProperties:function(e){var r=e.exportFormat,n=e.properties;Object.keys(n).forEach((function(e){r.properties[e]=n[e]}))},updateLayoutExclude:function(e){var r=e.exportFormat,n=e.properties;n.qLayoutExclude||(n.qLayoutExclude={}),n.qLayoutExclude.disabled&&(Object.keys(n.qLayoutExclude.disabled).forEach((function(e){r.properties.hasOwnProperty(e)||(r.properties[e]=n.qLayoutExclude.disabled[e])})),delete n.qLayoutExclude.disabled),n.qLayoutExclude.changed&&(!function(e){Object.keys(e.qLayoutExclude.changed).forEach((function(r){e.qLayoutExclude.changed[r].to===i.getValue(e,r)&&i.setValue(e,r,e.qLayoutExclude.changed[r].from)}))}(n),delete n.qLayoutExclude.changed),n.qLayoutExclude.quarantine&&!i.isEmpty(n.qLayoutExclude.quarantine)||delete n.qLayoutExclude},storeMeasuresModifiers:function(e){e.forEach((function(e){m.a.cleanUpMeasure(e),e.qDef.modifiers&&(e.store={modifiers:e.qDef.modifiers},delete e.qDef.modifiers)}))}};function y(e,r,n){var t,o,a=i.getValue(e,r);if(!i.isAtomicValue(a))try{if((o=(o=(t=JSON.stringify(a)).match(/:\\{/g))?o.length:0)>2)return;a=JSON.parse(t)}catch(e){return}i.getValue(e,\"qLayoutExclude.quarantine\")||i.setValue(e,\"qLayoutExclude.quarantine\",{});var s=i.getValue(e,\"qLayoutExclude.quarantine\");s[n]||(s[n]={}),s[n][r]=a}var q=n(0),b=n.n(q);function D(e,r){var n=b()(!0,{},r,e);return i.getValue(n,\"qOtherTotalSpec.qOtherCounted\")||i.setValue(n,\"qOtherTotalSpec.qOtherCounted\",{qv:\"10\"}),i.getValue(n,\"qOtherTotalSpec.qOtherLimit\")||i.setValue(n,\"qOtherTotalSpec.qOtherLimit\",{qv:\"0\"}),n.hasOwnProperty(\"othersLabel\")||(n.othersLabel=\"Others\"),n}function v(e,r){return b()(!0,{},r,e)}function g(e,r,n){return\"function\"==typeof e?e(r):Number.isNaN(+e)?n:e}var h=Math.pow(2,53)-1;function x(e){return function(e){if(Array.isArray(e))return E(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return E(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return E(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function E(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function A(e){return function(e){if(Array.isArray(e))return C(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return C(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return C(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function C(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}var I={importCommonProperties:function(e,r,n){var t=\"masterobject\"===i.getValue(r,\"properties.qInfo.qType\")?\"masterobject\":i.getValue(n,\"qInfo.qType\");i.setValue(e,\"qInfo.qType\",t),e.visualization=n.visualization},copyPropertyIfExist:function(e,r,n){r.hasOwnProperty(e)&&(n[e]=r[e])},copyPropertyOrSetDefault:function(e,r,n,t){r.hasOwnProperty(e)?n[e]=r[e]:n[e]=t},getDefaultDimension:function(){return{qDef:{autoSort:!0,cId:\"\",othersLabel:\"Others\"},qLibraryId:\"\",qNullSuppression:!1,qOtherLabel:\"Others\",qOtherTotalSpec:{qOtherLimitMode:\"OTHER_GE_LIMIT\",qOtherMode:\"OTHER_OFF\",qOtherSortMode:\"OTHER_SORT_DESCENDING\",qSuppressOther:!1}}},getDefaultMeasure:function(){return{qDef:{autoSort:!0,cId:\"\",numFormatFromTemplate:!0},qLibraryId:\"\",qTrendLines:[]}},addDimensions:function(e){var r,n=e.exportFormat,t=e.maxDimensions,o=e.minDimensions,i=e.newHyperCubeDef,a=e.defaultDimension,s=n.data[0];for(r=0;r<s.dimensions.length;++r){var u=D(s.dimensions[r],a);i.qDimensions.length<t?i.qDimensions.push(u):i.qLayoutExclude.qHyperCubeDef.qDimensions.push(u)}for(r=0;r<s.excludedDimensions.length;++r){var l=D(s.excludedDimensions[r],a);i.qDimensions.length<o?i.qDimensions.push(l):i.qLayoutExclude.qHyperCubeDef.qDimensions.push(l)}},addMeasures:function(e){var r,n=e.exportFormat,t=e.maxMeasures,o=e.minMeasures,i=e.newHyperCubeDef,a=e.defaultMeasure,s=n.data[0];for(r=0;r<s.measures.length;++r){var u=v(s.measures[r],a);i.qMeasures.length<t?i.qMeasures.push(u):i.qLayoutExclude.qHyperCubeDef.qMeasures.push(u)}for(r=0;r<s.excludedMeasures.length;++r){var l=v(s.excludedMeasures[r],a);i.qMeasures.length<o?i.qMeasures.push(l):i.qLayoutExclude.qHyperCubeDef.qMeasures.push(l)}},getMaxMinDimensionMeasure:function(e){var r=e.exportFormat,n=e.dataDefinition,t=void 0===n?{}:n,o=r.data[0],i=t.dimensions||{max:0},a=t.measures||{max:0},s=g(a.max,o.dimensions.length,h),u=g(a.min,o.dimensions.length,0);return{maxDimensions:g(i.max,s,h),minDimensions:g(i.min,u,0),maxMeasures:s,minMeasures:u}},setInterColumnSortOrder:function(e){var r=e.exportFormat,n=e.newHyperCubeDef,t=r.data[0],o=n.qDimensions.length+n.qMeasures.length;n.qInterColumnSortOrder=t.interColumnSortOrder.concat();var i=n.qInterColumnSortOrder.length;if(i!==o)for(n.qLayoutExclude&&(n.qLayoutExclude.qHyperCubeDef.qInterColumnSortOrder=t.interColumnSortOrder.concat());i!==o;)i<o?(p.indexAdded(n.qInterColumnSortOrder,i),++i):(--i,p.indexRemoved(n.qInterColumnSortOrder,i))},createNewProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=e.hypercubePath,o={qLayoutExclude:{disabled:{},quarantine:{}}};return Object.keys(r.properties).forEach((function(e){\"qLayoutExclude\"===e?r.properties[e].quarantine&&(o.qLayoutExclude.quarantine=b()(!0,{},r.properties[e].quarantine)):\"qHyperCubeDef\"===e&&t?i.setValue(o,\"\".concat(t,\".qHyperCubeDef\"),r.properties.qHyperCubeDef):n.hasOwnProperty(e)||-1!==[\"qMetaDef\",\"descriptionExpression\",\"labelExpression\"].indexOf(e)||function(e,r){return\"components\"===r&&Array.isArray(e[r])&&e[r].some((function(e){return\"general\"===e.key}))}(r.properties,e)?o[e]=r.properties[e]:o.qLayoutExclude.disabled[e]=r.properties[e]})),null===(o=b()(!0,{},n,o)).components&&(o.components=[]),o},shouldInitLayoutExclude:function(e){var r=e.exportFormat,n=e.maxDimensions,t=e.minDimensions,o=e.maxMeasures,i=e.minMeasures,a=r.data[0];return a.dimensions.length>n&&n>0||a.measures.length>o&&o>0||a.excludedDimensions.length>0&&a.dimensions.length+a.excludedDimensions.length>t||a.excludedMeasures.length>0&&a.measures.length+a.excludedMeasures.length>i||!o&&a.measures.length>0||!n&&a.dimensions.length>0},initLayoutExclude:function(e){var r=e.exportFormat,n=e.maxDimensions,t=e.minDimensions,o=e.maxMeasures,i=e.minMeasures,a=e.newHyperCubeDef,s=r.data[0];a.qLayoutExclude||(a.qLayoutExclude={}),a.qLayoutExclude.qHyperCubeDef||(a.qLayoutExclude.qHyperCubeDef={}),(s.dimensions.length>n&&n>0||s.excludedDimensions&&s.excludedDimensions.length&&s.dimensions.length+s.excludedDimensions.length>t)&&(a.qLayoutExclude.qHyperCubeDef.qDimensions||(a.qLayoutExclude.qHyperCubeDef.qDimensions=[])),(s.measures.length>o&&o>0||s.excludedMeasures&&s.excludedMeasures.length&&s.measures.length+s.excludedMeasures.length>i)&&(a.qLayoutExclude.qHyperCubeDef.qMeasures||(a.qLayoutExclude.qHyperCubeDef.qMeasures=[])),!o&&s.measures.length&&(a.qLayoutExclude.qHyperCubeDef.qMeasures||(a.qLayoutExclude.qHyperCubeDef.qMeasures=[])),!n&&s.dimensions.length&&(a.qLayoutExclude.qHyperCubeDef.qDimensions||(a.qLayoutExclude.qHyperCubeDef.qDimensions=[]))},updateDimensionsOnAdded:function(e){var r=e.newProperties,n=e.dataDefinition,t=e.hypercubePath;if(n.dimensions&&\"function\"==typeof n.dimensions.added){var o=i.getValue(r,t||\"\").qHyperCubeDef,a=x(o.qDimensions);o.qDimensions=[],a.forEach((function(e){o.qDimensions.push(e),n.dimensions.added(e,r)}))}},updateMeasuresOnAdded:function(e){var r=e.newProperties,n=e.dataDefinition,t=e.hypercubePath;if(n.measures&&\"function\"==typeof n.measures.added){var o=i.getValue(r,t||\"\").qHyperCubeDef,a=A(o.qMeasures);o.qMeasures=[],a.forEach((function(e){o.qMeasures.push(e),n.measures.added(e,r)}))}},restoreMeasuresModifiers:function(e){var r=e.measures,n=e.modifierTypes;r&&n&&m.a.isSupportedModifiers(n)&&r.forEach((function(e){e.store&&e.store.modifiers&&(e.qDef.modifiers=e.store.modifiers),delete e.store}))}};function M(e,r){var n=i.getValue(e,\"qLayoutExclude.quarantine\",{})[r];return!!n&&(Object.keys(n).forEach((function(r){i.setValue(e,r,n[r])})),delete e.qLayoutExclude.quarantine[r],!0)}var S={exportProperties:function(e){var r=e.propertyTree,n=e.hypercubePath,t=e.viewDataMode,o=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,r={data:[],properties:{}},n=0;n<e;++n)r.data.push({dimensions:[],measures:[],excludedDimensions:[],excludedMeasures:[],interColumnSortOrder:[]});return r}(),a=r.qProperty,s=i.getValue(a,n||\"\"),u=s.qHyperCubeDef;return u.qInterColumnSortOrder||(u.qInterColumnSortOrder=[]),d.addDimensions({exportFormat:o,qHyperCubeDef:u}),d.addMeasures({exportFormat:o,qHyperCubeDef:u}),d.setInterColumnSortOrder({exportFormat:o,qHyperCubeDef:u}),delete u.qLayoutExclude,d.copyProperties({exportFormat:o,properties:a}),n&&(o.properties.qHyperCubeDef=u,delete s.qHyperCubeDef),d.updateLayoutExclude({exportFormat:o,properties:a}),t||d.storeMeasuresModifiers(o.properties.qHyperCubeDef.qMeasures),Array.isArray(o.properties.filters)&&(y(o.properties,\"filters\",\"storedFilters\"),delete o.properties.filters),o.properties.qHyperCubeDef.qContextSetExpression&&(y(o.properties,\"qHyperCubeDef.qContextSetExpression\",\"storedFilters\"),o.properties.qHyperCubeDef.qContextSetExpression=\"\"),o.properties.qHyperCubeDef.qDynamicScript&&o.properties.qHyperCubeDef.qDynamicScript.length&&(y(o.properties,\"qHyperCubeDef.qDynamicScript\",\"dynamicScript\"),o.properties.qHyperCubeDef.qDynamicScript=[]),o},importProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=void 0===n?{}:n,o=e.dataDefinition,a=void 0===o?{}:o,s=e.defaultPropertyValues,u=void 0===s?{}:s,l=e.hypercubePath,c=e.extension,p=e.supportedFilters,f=void 0===p||p,m=e.isHCModifierSupported,d=void 0===m||m,y={qChildren:[]},q=I.createNewProperties({exportFormat:r,initialProperties:t,hypercubePath:l}),b=i.getValue(t,l||\"\").qHyperCubeDef,D=i.getValue(q,l||\"\").qHyperCubeDef,v=I.getMaxMinDimensionMeasure({exportFormat:r,dataDefinition:a}),g=v.maxDimensions,h=v.minDimensions,x=v.maxMeasures,E=v.minMeasures,A=u.defaultDimension,C=void 0===A?I.getDefaultDimension():A,S=u.defaultMeasure,L=void 0===S?I.getDefaultMeasure():S;D.qDimensions.length=0,D.qMeasures.length=0,I.shouldInitLayoutExclude({exportFormat:r,maxDimensions:g,minDimensions:h,maxMeasures:x,minMeasures:E})&&I.initLayoutExclude({exportFormat:r,maxDimensions:g,minDimensions:h,maxMeasures:x,minMeasures:E,newHyperCubeDef:D}),I.addDimensions({exportFormat:r,maxDimensions:g,minDimensions:h,newHyperCubeDef:D,defaultDimension:C}),I.addMeasures({exportFormat:r,maxMeasures:x,minMeasures:E,newHyperCubeDef:D,defaultMeasure:L}),I.updateDimensionsOnAdded({newProperties:q,dataDefinition:a,hypercubePath:l}),I.updateMeasuresOnAdded({newProperties:q,dataDefinition:a,hypercubePath:l}),I.setInterColumnSortOrder({exportFormat:r,newHyperCubeDef:D}),I.copyPropertyIfExist(\"qMaxStackedCells\",b,D),I.copyPropertyIfExist(\"qNoOfLeftDims\",b,D),I.copyPropertyOrSetDefault(\"qInitialDataFetch\",b,D,[{qTop:0,qLeft:0,qWidth:0,qHeight:0}]),I.copyPropertyOrSetDefault(\"qMode\",b,D,\"S\"),I.copyPropertyOrSetDefault(\"qReductionMode\",b,D,\"N\"),I.copyPropertyOrSetDefault(\"qSortbyYValue\",b,D),I.copyPropertyOrSetDefault(\"qIndentMode\",b,D),I.copyPropertyOrSetDefault(\"qShowTotalsAbove\",b,D),I.importCommonProperties(q,r,t),y.qProperty=q;var O=i.getValue(c||{},\"support.modifiers\");return I.restoreMeasuresModifiers({measures:D.qMeasures,modifierTypes:O}),f&&M(y.qProperty,\"storedFilters\"),\"S\"===D.qMode&&d&&M(y.qProperty,\"dynamicScript\"),y}},L={cellBackgroundColor:!0,cellForegroundColor:!0,colorByAlternative:!0,colorByExpression:!0,tooltip:!0,urlLabel:!0,url:!0};function O(e,r,n,t){r=r||[];var o=c(e,t,n),i=c(r,t,n);if(-1!==o&&-1===i){var a=e.splice(o,1);r.push(a[0])}return r}function P(e,r){return e.length!==r}var F={create:function(e,r){if(!e||!L[e])throw new Error(\"Attribute Expressions Util: ID required\");var n={};return r&&Object.keys(r).forEach((function(e){n[e]=r[e]})),n.id=e,n.qAttribute=!0,n},moveByIdFromGroup:function(e,r,n,t,o){n=n||\"qAttributeExpressions\",o=o||\"id\";for(var i=0;i<e.length;i++){var a=e[i][n],s=r.length;if(O(a,r,t,o),P(r,s))return r}return r},IDMAP:{CELL_BACKGROUND_COLOR:\"cellBackgroundColor\",CELL_FOREGROUND_COLOR:\"cellForegroundColor\",COLOR_BY_ALTERNATIVE:\"colorByAlternative\",COLOR_BY_EXPRESSION:\"colorByExpression\",TOOLTIP:\"tooltip\",CELL_LINK_LABEL:\"urlLabel\",CELL_LINK_URL:\"url\"}};var N={getNumDimensions:function(e){return i.getValue(e,\"qHyperCubeDef.qDimensions.length\",0)},getNumMeasures:function(e){return i.getValue(e,\"qHyperCubeDef.qMeasures.length\",0)},wrapFieldName:function(e){return e.split(\" \").length>1&&\"=\"!==e[0]&&\"[\"!==e[0]?\"[\".concat(e,\"]\"):e},getItemLabel:function(e){return e.label||e.name}},V={colorModeOptions:{primary:function(){return!0},dimension:function(e){return N.getNumDimensions(e)>0&&N.getNumMeasures(e)<=1},multiColor:function(e){return N.getNumMeasures(e)>1},measure:function(e){return N.getNumDimensions(e)>0},expression:function(e){return N.getNumMeasures(e)>=1}}},w={colorModeOptions:{primary:function(){return!0},dimension:function(){return!0},multiColor:function(){return!1},measure:function(){return!0},expression:function(e){return N.getNumMeasures(e)>=1}}},H={scatterplot:w,\"sn-scatter-plot\":w,piechart:{colorModeOptions:{primary:function(){return!0},dimension:function(){return!0},multiColor:function(){return!1},measure:function(){return!0},expression:function(e){return N.getNumMeasures(e)>=1}}},linechart:{colorModeOptions:{primary:function(){return!0},dimension:function(e){return N.getNumDimensions(e)>1},multiColor:function(e){return N.getNumMeasures(e)>1},measure:function(e){return N.getNumDimensions(e)<=1},expression:function(e){return N.getNumMeasures(e)>=1}}},map:{colorModeOptions:{primary:function(){return!0},dimension:function(e){return N.getNumDimensions(e)>=1},multiColor:function(e){return N.getNumMeasures(e)>1},measure:function(e){return N.getNumDimensions(e)>=1},expression:function(e){return N.getNumDimensions(e)>=1}}},distributionplot:{colorModeOptions:{primary:function(){return!0},dimension:function(){return!0},multiColor:function(){return!1},measure:function(){return!0},expression:function(e){return N.getNumDimensions(e)>=1}}}};function T(e,r,n){if(Array.isArray(e[r])){var t=p.findIndexByPropertyValue(e[r],\"id\",n);t>=0&&e[r].splice(t,1)}else e[r]=[]}function j(e,r){var n=F.IDMAP.COLOR_BY_ALTERNATIVE;e.forEach((function(e){T(e,\"qAttributeDimensions\",n),T(e,\"qAttributeExpressions\",n)})),r.forEach((function(e){T(e,\"qAttributeDimensions\",n),T(e,\"qAttributeExpressions\",n)}))}function _(e,r){if(r){var n=\"=\"===r.charAt(0);e.color.altLabel=n?{qStringExpression:{qExpr:r.substr(1)}}:r}}function R(e){var r=e.properties,n=e.isDimension,t=e.dimensions,o=e.excludedDimensions,a=e.measures,s=e.label;j(t,o);var u=t[t.length-1];if(u){var l=n?i.getValue(r,\"color.byDimDef\"):i.getValue(r,\"color.byMeasureDef\"),c=i.getValue(r,\"color.formatting.qNumFormat\"),f=i.getValue(r,\"color.formatting.isCustomFormatted\");if(l){var m=F.create(F.IDMAP.COLOR_BY_ALTERNATIVE);switch(l.type){case\"expression\":!function(e){var r=e.attributeExpression,n=e.label,t=e.item,o=e.isDimension,i=e.qNumFormat,a=e.isCustomFormatted;r.label=n||t.label,o?r.qDef=t.key:(r.qExpression=t.key,i&&(r.qNumFormat=i,r.isCustomFormatted=a)),r.matchMeasure=t.activeMeasureIndex,r.label&&\"=\"===r.label.charAt(0)&&(r.labelExpRef=\"color.altLabel\")}({attributeExpression:m,label:s,item:l,isDimension:n,qNumFormat:c,isCustomFormatted:f});break;case\"libraryItem\":!function(e){var r=e.attributeExpression,n=e.measures,t=e.item,o=e.isDimension,i=e.qNumFormat,a=e.isCustomFormatted;o||(r.matchMeasure=p.findIndexByPropertyValue(n,\"qLibraryId\",t.key),i&&(r.qNumFormat=i,r.isCustomFormatted=a)),void 0!==t.expression?r.qExpression=t.expression:r.qLibraryId=t.key,r.colorMapRef=t.key}({attributeExpression:m,measures:a,item:l,isDimension:n,qNumFormat:c,isCustomFormatted:f})}n?(m.qSortBy={qSortByAscii:1},u.qAttributeDimensions.push(m)):u.qAttributeExpressions.push(m)}}}function B(e,r,n,t){var o,i,a,s={};switch(e){case\"dimension\":n.qLibraryId?(s.type=\"dimension\",s.name=n.qLibraryId,s.id=n.qLibraryId):(s.type=\"field\",r?(s.name=n.label||n.qDef,s.id=n.qDef):(s.name=n.qDef.qFieldDefs[0],s.label=(a=n.qDef).qLabelExpression?a.qLabelExpression:a.qFieldLabels&&a.qFieldLabels[0]?a.qFieldLabels[0]:a.qFieldDefs[0]));break;case\"measure\":(o=function(e,r){return r?e.qLibraryId:m.a.measureBase.getLibraryId(e)}(n,r))?(s.type=\"measure\",s.name=o,s.id=o,(i=function(e,r){return m.a.hasActiveModifiers({measures:[e]})&&r?e.qDef.qDef:void 0}(n,t))&&(s.expression=i)):(s.type=\"expression\",r?(s.name=n.label||n.qExpression,s.id=n.qExpression):(s.name=n.qDef.qDef,s.label=function(e){var r=e.qDef;return r.qLabelExpression?r.qLabelExpression:r.qLabel?r.qLabel:r.qDef}(n)));break;default:throw new Error('columnType should be \"dimension\" or \"measure\"')}return s}var k={useMasterNumberFormat:function(e){e.quarantine={qNumFormat:e.qNumFormat||{},isCustomFormatted:e.isCustomFormatted||!1},e.qNumFormat=null,e.isCustomFormatted=void 0}};function U(e,r,n,t){var o=n?\"expression\":r.type,i=e.color,a=i.mode,s=N.getItemLabel(r);switch(_(e,s||\"\"),o){case\"field\":a=\"byDimension\",i.byDimDef={label:r.label||N.wrapFieldName(r.name),key:N.wrapFieldName(r.name),type:\"expression\",activeDimensionIndex:r.activeDimensionIndex};break;case\"expression\":a=\"byMeasure\",i.byMeasureDef={label:n||s,key:n||r.name,type:\"expression\",activeMeasureIndex:r.activeMeasureIndex};break;case\"dimension\":a=\"byDimension\",i.byDimDef={label:r.name,key:r.id,type:\"libraryItem\",activeDimensionIndex:r.activeDimensionIndex};break;case\"measure\":a=\"byMeasure\",i.byMeasureDef={label:r.name,key:r.id,expression:r.expression,type:\"libraryItem\",activeMeasureIndex:r.activeMeasureIndex},i.formatting&&k.useMasterNumberFormat(i.formatting)}t||(i.auto=!1,i.mode=a)}function G(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=n[function(e,r,n){var t=i.getValue(r,\"visualization\"),o=n.split(\".\"),a=Number(o[1]),s=i.getValue(r,\"layers.\".concat(a,\".type\"));return 2===e.length&&\"map\"===t&&\"point\"===s}(n,e,r)?0:n.length-1],o=F.IDMAP.COLOR_BY_ALTERNATIVE,a=p.findItemByPropertyValue(t.qAttributeDimensions,\"id\",o);return U(e,B(\"dimension\",!!a,a||t)),!!a}function W(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),o=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]),a=i.getValue(e,\"color.byDimDef\");if(a&&_(e,a.label),function(e){return!!(e&&e.activeDimensionIndex>-1)}(a))!function(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"color.byDimDef\");t.activeDimensionIndex=Math.min(t.activeDimensionIndex,n.length-1);var o=B(\"dimension\",!1,n[t.activeDimensionIndex]);o.activeDimensionIndex=t.activeDimensionIndex,U(e,o)}(e,r);else if(function(e){return!e||!e.key}(a)&&G(e,r))return;R({properties:e,isDimension:!0,dimensions:n,excludedDimensions:o,measures:t,label:i.getValue(e,\"color.byDimDef.label\")})}function $(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),o=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]),a=i.getValue(e,\"color.byMeasureDef\");if(a&&_(e,a.label),function(e){return!!(e&&e.activeMeasureIndex>-1)}(a))!function(e,r){var n=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),t=i.getValue(e,\"color.byMeasureDef\");if(t.activeMeasureIndex=Math.min(t.activeMeasureIndex,n.length-1),t.activeMeasureIndex>-1){var o=B(\"measure\",!1,n[t.activeMeasureIndex],!0);o.activeMeasureIndex=t.activeMeasureIndex,U(e,o)}}(e,r);else if(function(e,r){return(!e||!e.key)&&r.length>0}(a,t)&&function(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),o=n[n.length-1],a=F.IDMAP.COLOR_BY_ALTERNATIVE,s=p.findItemByPropertyValue(o.qAttributeExpressions,\"id\",a);return U(e,B(\"measure\",!!s,s||t[0])),!!s}(e,r))return;R({properties:e,isDimension:!1,dimensions:n,excludedDimensions:o,measures:t,label:i.getValue(e,\"color.byMeasureDef.label\")})}var z={changeProperty:function(e,r,n){i.setValue(e,r,n),i.isAtomicValue(n)&&function(e,r,n){var t=e.qLayoutExclude;t&&(t.changed||(t.changed={}),t.changed[r]={from:i.getValue(e,r),to:n})}(e,r,n)},getCanColorBy:function(e,r){var n={primary:!0};if(e){var t=(H[r]||V).colorModeOptions||V.colorModeOptions;n.byDimension=t.dimension(e),n.byMeasure=t.measure(e),n.byMultiple=t.multiColor(e),n.byExpression=t.expression(e)}return n},shouldUpdateColorBy:function(e){var r=e.canColorBy,n=e.autoColor,t=e.colorMode,o=e.dimensions;return!(r[t]&&!n&&(\"byDimension\"!==t&&\"byMeasure\"!==t||!o.length))},updateColorBy:function(e,r){var n=i.getValue(e,\"color.mode\"),t=i.getValue(e,\"color.auto\"),o=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),a=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),s=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]);t?j(o,s):function(e){var r=e.auto,n=e.colorMode,t=e.dimensions;return!r&&\"byDimension\"===n&&t.length>0}({auto:t,colorMode:n,dimensions:o})?W(e,r):function(e){var r=e.auto,n=e.colorMode,t=e.dimensions,o=e.measures,a=e.properties,s=i.getValue(a,\"visualization\");return!(r||\"byMeasure\"!==n||!t.length||\"map\"!==s&&!o.length)}({auto:t,colorMode:n,dimensions:o,measures:a,properties:e})?$(e,r):function(e,r){var n=i.getValue(e,\"color.mode\"),t=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),o=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),a=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]);\"byMultiple\"===n&&o.length<2&&i.setValue(e,\"color.mode\",\"primary\"),j(t,a)}(e,r)},deleteTotalMode:function(e){e.forEach((function(e){e.qOtherTotalSpec&&\"qTotalMode\"in e.qOtherTotalSpec&&delete e.qOtherTotalSpec.qTotalMode}))},shouldAddColorByExpression:function(e){var r=e.shouldUpdateColorBy,n=e.properties,t=i.getValue(n,\"qHyperCubeDef.qMeasures\",[]),o=i.getValue(n,\"color.mode\",\"\");return!r&&\"byExpression\"===o&&t.length>0},addColorByExpression:function(e){var r=i.getValue(e,\"qHyperCubeDef.qMeasures.0.qAttributeExpressions\",[]),n=i.getValue(e,\"color.colorExpression\",\"\");r.splice(0,0,{qExpression:n,id:\"colorByExpression\"}),i.setValue(e,\"qHyperCubeDef.qMeasures.0.qAttributeExpressions\",r)},switchToAutoColor:function(e){i.setValue(e,\"color.mode\",\"primary\"),i.setValue(e,\"color.auto\",!0)},shouldSwitchToColorPersistent:function(e){var r=i.getValue(e,\"qHyperCubeDef.qDimensions\",[]),n=i.getValue(e,\"color.persistent\",!1);return r.length>1&&!n}};var Y={exportProperties:function(e){var r=e.propertyTree,n=e.hypercubePath,t=e.viewDataMode,o=S.exportProperties({propertyTree:r,hypercubePath:n,viewDataMode:t}),i=o.data[0],a=i.dimensions.concat(i.excludedDimensions),s=i.measures.concat(i.excludedMeasures),u=F.IDMAP,l=u.COLOR_BY_ALTERNATIVE,c=u.COLOR_BY_EXPRESSION;return F.moveByIdFromGroup(a,[],\"qAttributeDimensions\",l),F.moveByIdFromGroup(a,[],\"qAttributeExpressions\",l),F.moveByIdFromGroup(s,[],\"qAttributeExpressions\",c),o},importProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=e.dataDefinition,o=e.defaultPropertyValues,a=e.hypercubePath,s=e.extension,u=e.supportedFilters,l=e.isHCModifierSupported,c=S.importProperties({exportFormat:r,initialProperties:n,dataDefinition:t,defaultPropertyValues:o,hypercubePath:a,extension:s,supportedFilters:u,isHCModifierSupported:l}),p=c.qProperty,f=i.getValue(p,\"visualization\"),m=i.getValue(p,\"qHyperCubeDef.qDimensions\",[]),d=i.getValue(p,\"color.mode\",\"\"),y=i.getValue(p,\"color.auto\",\"\"),q=z.getCanColorBy(p,f),b=z.shouldUpdateColorBy({canColorBy:q,autoColor:y,colorMode:d,dimensions:m});return q[d]?z.shouldAddColorByExpression({shouldUpdateColorBy:b,properties:p})&&z.addColorByExpression(p):z.switchToAutoColor(p),b&&z.updateColorBy(p,\"qHyperCubeDef.\"),z.shouldSwitchToColorPersistent(p)&&z.changeProperty(p,\"color.persistent\",!0),z.deleteTotalMode(m),c}};var J=[\"bar\",\"marker\",\"line\"];var K={handleAutoMinMax:function(e){var r=e.initialProperties,n=e.properties;r.measureAxis&&void 0===r.measureAxis.autoMinMax?M(n,\"unsupportedAutoMinMax\")||b()(n.measureAxis,r.measureAxis):M(n,\"supportedAutoMinMax\")||b()(n.measureAxis,r.measureAxis)},handleMeasuresAxis:function(e){var r,n=e.exportFormat,t=e.initialProperties,o=e.properties,i=e.measureType,a=o.qHyperCubeDef,s=o.measureAxis;if(function(e){var r=e.exportFormat,n=e.initialProperties;return!(!r.properties.measureAxes||n.measureAxes||!n.measureAxis||void 0===n.measureAxis.autoMinMax)}({exportFormat:n,initialProperties:t})){var u=function(e){var r=[];return e.qMeasures.length>0&&e.qMeasures.forEach((function(e){if(e.qDef.series){var n=e.qDef.series,t=n.type,o=n.axis;r[o]||(r[o]={axis:o,type:{line:0,marker:0,bar:0,total:0}}),J.includes(t)&&r[o].type[t]++,r[o].type.total++}})),r}(a);u.length?(i&&(r=u.filter((function(e){return e.type[i]>0})).sort((function(e,r){return r.type[i]-e.type[i]}))),r&&r.length||(r=u.sort((function(e,r){return r.type.total-e.type.total}))),r&&r[0]&&b()(s,n.properties.measureAxes[r[0].axis])):b()(s,n.properties.measureAxes[0])}},setInterColumnSortOrder:function(e){if(e.qDimensions.length>1){var r=e.qInterColumnSortOrder.indexOf(0);if(0!==r){var n=e.qInterColumnSortOrder[0];e.qInterColumnSortOrder[0]=0,e.qInterColumnSortOrder[r]=n}}}};var X={exportProperties:function(e){var r=e.propertyTree,n=e.hypercubePath,t=e.viewDataMode,o=e.supportedAutoMinMax,i=void 0===o||o,a=Y.exportProperties({propertyTree:r,hypercubePath:n,viewDataMode:t}),s=a.properties;return i?(y(s,\"measureAxis.min\",\"supportedAutoMinMax\"),y(s,\"measureAxis.max\",\"supportedAutoMinMax\")):(y(s,\"measureAxis.min\",\"unsupportedAutoMinMax\"),y(s,\"measureAxis.max\",\"unsupportedAutoMinMax\")),a},importProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=e.dataDefinition,o=e.defaultPropertyValues,i=e.hypercubePath,a=e.measureType,s=e.extension,u=e.supportedFilters,l=e.isHCModifierSupported,c=Y.importProperties({exportFormat:r,initialProperties:n,dataDefinition:t,defaultPropertyValues:o,hypercubePath:i,extension:s,supportedFilters:u,isHCModifierSupported:l}),p=c.qProperty;return K.handleAutoMinMax({initialProperties:n,properties:p}),K.handleMeasuresAxis({exportFormat:r,initialProperties:n,properties:p,measureType:a}),K.setInterColumnSortOrder(p.qHyperCubeDef),p.qHyperCubeDef.qColumnOrder=[],p.qHyperCubeDef.columnOrder=[],c}};function Q(e,r,n){return\"qLayoutExclude.quarantine.\".concat(e,\".\").concat(r,\".\").concat(n)}function Z(e){var r=e.properties,n=e.arrayPath,t=e.quarantineName,o=e.arrayName,a=e.itemPath;i.getValue(r,n,[]).forEach((function(e){return function(e){var r=e.properties,n=e.quarantineName,t=e.arrayName,o=e.item,a=e.itemPath,s=i.getValue(o,a);if(void 0!==s){var u=i.getValue(o,\"qDef.cId\");u||(u=i.generateId(),i.setValue(o,\"qDef.cId\",u));var l=Q(n,t,u);i.setValue(r,l,s),i.setValue(o,a,void 0)}}({properties:r,quarantineName:t,arrayName:o,item:e,itemPath:a})}))}function ee(e){var r=e.properties,n=e.arrayPath,t=e.quarantineName,o=e.arrayName,a=e.itemPath;i.getValue(r,n,[]).forEach((function(e){return function(e){var r=e.properties,n=e.quarantineName,t=e.arrayName,o=e.item,a=e.itemPath,s=i.getValue(o,\"qDef.cId\");if(s){var u=Q(n,t,s),l=i.getValue(r,u);void 0!==l&&(i.setValue(o,a,l),i.setValue(r,u,void 0))}}({properties:r,quarantineName:t,arrayName:o,item:e,itemPath:a})}))}var re={quarantine:function(e){Z({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",quarantineName:\"conditionalColoring\",arrayName:\"measures\",itemPath:\"qDef.conditionalColoring\"})},unquarantine:function(e){ee({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",itemPath:\"qDef.conditionalColoring\",arrayName:\"measures\",quarantineName:\"conditionalColoring\"})}};var ne={quarantine:function(e){Z({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",quarantineName:\"conditionalShowHide\",arrayName:\"measures\",itemPath:\"qCalcCondition\"}),Z({properties:e,arrayPath:\"qHyperCubeDef.qDimensions\",quarantineName:\"conditionalShowHide\",arrayName:\"dimensions\",itemPath:\"qCalcCondition\"})},unquarantine:function(e){ee({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",quarantineName:\"conditionalShowHide\",arrayName:\"measures\",itemPath:\"qCalcCondition\"}),ee({properties:e,arrayPath:\"qHyperCubeDef.qDimensions\",quarantineName:\"conditionalShowHide\",arrayName:\"dimensions\",itemPath:\"qCalcCondition\"})},quarantineAlternative:function(e){Z({properties:e,arrayPath:\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\",quarantineName:\"conditionalShowHide\",arrayName:\"alternativeMeasures\",itemPath:\"qCalcCondition\"}),Z({properties:e,arrayPath:\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qDimensions\",quarantineName:\"conditionalShowHide\",arrayName:\"alternativeDimensions\",itemPath:\"qCalcCondition\"})},unquarantineAlternative:function(e){ee({properties:e,arrayPath:\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\",quarantineName:\"conditionalShowHide\",arrayName:\"alternativeMeasures\",itemPath:\"qCalcCondition\"}),ee({properties:e,arrayPath:\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qDimensions\",quarantineName:\"conditionalShowHide\",arrayName:\"alternativeDimensions\",itemPath:\"qCalcCondition\"})}};r.default={hypercube:S,colorChart:Y,axisChart:X,quarantineProperty:y,unquarantineProperty:M,quarantineArrayProp:Z,unquarantineArrayProp:ee,conditionalColoring:re,conditionalShow:ne}}])}));","import extend from 'extend';\nimport conversion from 'qlik-object-conversion';\n\nexport function importProperties({ dataDefinition, defaultPropertyValues, exportFormat, initialProperties }) {\n const propTree = conversion.hypercube.importProperties({\n exportFormat,\n initialProperties,\n dataDefinition,\n defaultPropertyValues,\n });\n\n const props = propTree.qProperty;\n if (props.dimensionAxis.show === 'all') {\n props.dimensionAxis.show = 'labels';\n } else if (props.dimensionAxis.show === 'title') {\n props.dimensionAxis.show = 'none';\n }\n if (props.measureAxis.show === 'all') {\n props.measureAxis.show = 'labels';\n } else if (props.measureAxis.show === 'title') {\n props.measureAxis.show = 'none';\n }\n\n if (props.qHyperCubeDef.qMeasures.length > 0) {\n props.qDef.numFormatFromTemplate = props.qHyperCubeDef.qMeasures[0].qDef.numFormatFromTemplate;\n props.qDef.qNumFormat = props.qHyperCubeDef.qMeasures[0].qDef.qNumFormat;\n props.qHyperCubeDef.qMeasures.forEach((measure) => {\n measure.qDef.numFormatFromTemplate = props.qDef.numFormatFromTemplate;\n measure.qDef.qNumFormat = extend(true, {}, props.qDef.qNumFormat);\n });\n }\n\n props.qHyperCubeDef.qSuppressZero = false;\n\n return propTree;\n}\n\nexport function exportProperties({ propertyTree, viewDataMode }) {\n const exportFormat = conversion.hypercube.exportProperties({\n propertyTree,\n viewDataMode,\n });\n\n return exportFormat;\n}\n","import properties from './object-properties';\nimport data from './waterfallchart-data-definition';\nimport { importProperties, exportProperties } from './waterfallchart-import-export';\n\nexport default (env) => {\n const dataDefinition = data(env);\n return {\n properties,\n data: {\n targets: [dataDefinition],\n },\n importProperties({ exportFormat, initialProperties }) {\n return importProperties({ dataDefinition, exportFormat, initialProperties });\n },\n exportProperties,\n };\n};\n","/*\n* qlik-chart-modules v0.56.0\n* Copyright (c) 2023 QlikTech International AB\n* Released under the MIT license.\n*/\n\nfunction e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?e(Object(r),!0).forEach((function(e){a(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):e(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function n(){n=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},i=\"function\"==typeof Symbol?Symbol:{},a=i.iterator||\"@@iterator\",l=i.asyncIterator||\"@@asyncIterator\",u=i.toStringTag||\"@@toStringTag\";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},\"\")}catch(e){c=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var i=t&&t.prototype instanceof p?t:p,a=Object.create(i.prototype),l=new C(r||[]);return o(a,\"_invoke\",{value:w(e,n,l)}),a}function f(e,t,n){try{return{type:\"normal\",arg:e.call(t,n)}}catch(e){return{type:\"throw\",arg:e}}}e.wrap=s;var d={};function p(){}function h(){}function m(){}var v={};c(v,a,(function(){return this}));var y=Object.getPrototypeOf,g=y&&y(y(D([])));g&&g!==t&&r.call(g,a)&&(v=g);var b=m.prototype=p.prototype=Object.create(v);function x(e){[\"next\",\"throw\",\"return\"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function q(e,t){function n(o,i,a,l){var u=f(e[o],e,i);if(\"throw\"!==u.type){var c=u.arg,s=c.value;return s&&\"object\"==typeof s&&r.call(s,\"__await\")?t.resolve(s.__await).then((function(e){n(\"next\",e,a,l)}),(function(e){n(\"throw\",e,a,l)})):t.resolve(s).then((function(e){c.value=e,a(c)}),(function(e){return n(\"throw\",e,a,l)}))}l(u.arg)}var i;o(this,\"_invoke\",{value:function(e,r){function o(){return new t((function(t,o){n(e,r,t,o)}))}return i=i?i.then(o,o):o()}})}function w(e,t,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return I()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var l=M(a,n);if(l){if(l===d)continue;return l}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var u=f(e,t,n);if(\"normal\"===u.type){if(r=n.done?\"completed\":\"suspendedYield\",u.arg===d)continue;return{value:u.arg,done:n.done}}\"throw\"===u.type&&(r=\"completed\",n.method=\"throw\",n.arg=u.arg)}}}function M(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,\"throw\"===n&&e.iterator.return&&(t.method=\"return\",t.arg=void 0,M(e,t),\"throw\"===t.method)||\"return\"!==n&&(t.method=\"throw\",t.arg=new TypeError(\"The iterator does not provide a '\"+n+\"' method\")),d;var o=f(r,e.iterator,t.arg);if(\"throw\"===o.type)return t.method=\"throw\",t.arg=o.arg,t.delegate=null,d;var i=o.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,\"return\"!==t.method&&(t.method=\"next\",t.arg=void 0),t.delegate=null,d):i:(t.method=\"throw\",t.arg=new TypeError(\"iterator result is not an object\"),t.delegate=null,d)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type=\"normal\",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:\"root\"}],e.forEach(k,this),this.reset(!0)}function D(e){if(e){var t=e[a];if(t)return t.call(e);if(\"function\"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:I}}function I(){return{value:void 0,done:!0}}return h.prototype=m,o(b,\"constructor\",{value:m,configurable:!0}),o(m,\"constructor\",{value:h,configurable:!0}),h.displayName=c(m,u,\"GeneratorFunction\"),e.isGeneratorFunction=function(e){var t=\"function\"==typeof e&&e.constructor;return!!t&&(t===h||\"GeneratorFunction\"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,c(e,u,\"GeneratorFunction\")),e.prototype=Object.create(b),e},e.awrap=function(e){return{__await:e}},x(q.prototype),c(q.prototype,l,(function(){return this})),e.AsyncIterator=q,e.async=function(t,n,r,o,i){void 0===i&&(i=Promise);var a=new q(s(t,n,r,o),i);return e.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},x(b),c(b,u,\"Generator\"),c(b,a,(function(){return this})),c(b,\"toString\",(function(){return\"[object Generator]\"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=D,C.prototype={constructor:C,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(S),!e)for(var t in this)\"t\"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if(\"throw\"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(n,r){return a.type=\"throw\",a.arg=e,t.next=n,r&&(t.method=\"next\",t.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return n(\"end\");if(i.tryLoc<=this.prev){var l=r.call(i,\"catchLoc\"),u=r.call(i,\"finallyLoc\");if(l&&u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===e||\"continue\"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method=\"next\",this.next=i.finallyLoc,d):this.complete(a)},complete:function(e,t){if(\"throw\"===e.type)throw e.arg;return\"break\"===e.type||\"continue\"===e.type?this.next=e.arg:\"return\"===e.type?(this.rval=this.arg=e.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===e.type&&t&&(this.next=t),d},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),S(n),d}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;S(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(e,t,n){return this.delegate={iterator:D(e),resultName:t,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),d}},e}function r(e){return r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},r(e)}function o(e,t,n,r,o,i,a){try{var l=e[i](a),u=l.value}catch(e){return void n(e)}l.done?t(u):Promise.resolve(u).then(r,o)}function i(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function l(e){o(a,r,i,l,u,\"next\",e)}function u(e){o(a,r,i,l,u,\"throw\",e)}l(void 0)}))}}function a(e,t,n){return(t=function(e){var t=function(e,t){if(\"object\"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||\"default\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,a,l=[],u=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(e){c=!0,o=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(e,t)||s(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function c(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||s(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function s(e,t){if(e){if(\"string\"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function d(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var p=Object.prototype.hasOwnProperty,h=Object.prototype.toString,m=Object.defineProperty,v=Object.getOwnPropertyDescriptor,y=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===h.call(e)},g=function(e){if(!e||\"[object Object]\"!==h.call(e))return!1;var t,n=p.call(e,\"constructor\"),r=e.constructor&&e.constructor.prototype&&p.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!r)return!1;for(t in e);return void 0===t||p.call(e,t)},b=function(e,t){m&&\"__proto__\"===t.name?m(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},x=function(e,t){if(\"__proto__\"===t){if(!p.call(e,t))return;if(v)return v(e,t).value}return e[t]},q=function e(){var t,n,r,o,i,a,l=arguments[0],u=1,c=arguments.length,s=!1;for(\"boolean\"==typeof l&&(s=l,l=arguments[1]||{},u=2),(null==l||\"object\"!=typeof l&&\"function\"!=typeof l)&&(l={});u<c;++u)if(null!=(t=arguments[u]))for(n in t)r=x(l,n),l!==(o=x(t,n))&&(s&&o&&(g(o)||(i=y(o)))?(i?(i=!1,a=r&&y(r)?r:[]):a=r&&g(r)?r:{},b(l,{name:n,newValue:e(s,a,o)})):void 0!==o&&b(l,{name:n,newValue:o}));return l},w=d(q);function M(e,t){return{range:function(e){var n=e.resources,r=e.data,o=n.theme.palette(\"categorical\",0===t?r.items.length:t);return r.items.map((function(e){return o[e.value%o.length]}))},valueAccessor:e.value}}function k(e,t){return{range:function(e){var n=e.resources,r=e.data,o=n.theme.palette(\"categorical\",0===t?r.items.length:t);return r.items.map((function(e){return o[e.row.value%o.length]}))},valueAccessor:e.value}}function S(e,t,n,r,o){var i,a,l=o.byRow,u=o.byElemNo;if(r&&(t.input.persistent||e.hc.qDimensionInfo.length>1||void 0===n.activeDimensionIndex&&e.hc.qSize.qcy>(i=e.hc,(null===(a=i.qDataPages[0]||i.qStackedDataPages[0])||void 0===a?void 0:a.qArea.qHeight)||0)))return u(r,r.raw().qCardinal);if(r){var c=t.pic.extract({field:r.key(),trackBy:r.value}).length;return l(r,c)}return{}}function C(e,t){var n=e.hc.qDimensionInfo,r=t.input.byDimDef||{activeDimensionIndex:n.length-1};if(r.activeDimensionIndex>=0){var o=n[r.activeDimensionIndex];r=o.coloring&&o.coloring.colorMapRef?{type:\"libraryItem\",key:o.coloring.colorMapRef,activeDimensionIndex:r.activeDimensionIndex}:{activeDimensionIndex:r.activeDimensionIndex}}return r}function D(e,t){var n;return t.activeDimensionIndex>=0?n=e.pic.fields().filter((function(e){return\"dimension\"===e.type()}))[t.activeDimensionIndex]:\"libraryItem\"===t.type?!1===(n=t.key?e.pic.field((function(e){return e.raw().colorMapRef===t.key})):void 0)&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))):\"expression\"===t.type&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))),n}function I(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function O(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function E(){}var A=1/.7,N=\"\\\\s*([+-]?\\\\d+)\\\\s*\",L=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",T=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",P=/^#([0-9a-f]{3,8})$/,j=new RegExp(`^rgb\\\\(${N},${N},${N}\\\\)$`),F=new RegExp(`^rgb\\\\(${T},${T},${T}\\\\)$`),H=new RegExp(`^rgba\\\\(${N},${N},${N},${L}\\\\)$`),R=new RegExp(`^rgba\\\\(${T},${T},${T},${L}\\\\)$`),z=new RegExp(`^hsl\\\\(${L},${T},${T}\\\\)$`),V=new RegExp(`^hsla\\\\(${L},${T},${T},${L}\\\\)$`),_={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function B(){return this.rgb().formatHex()}function Y(){return this.rgb().formatRgb()}function $(e){var t,n;return e=(e+\"\").trim().toLowerCase(),(t=P.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?U(t):3===n?new X(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?K(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?K(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=j.exec(e))?new X(t[1],t[2],t[3],1):(t=F.exec(e))?new X(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=H.exec(e))?K(t[1],t[2],t[3],t[4]):(t=R.exec(e))?K(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=z.exec(e))?ne(t[1],t[2]/100,t[3]/100,1):(t=V.exec(e))?ne(t[1],t[2]/100,t[3]/100,t[4]):_.hasOwnProperty(e)?U(_[e]):\"transparent\"===e?new X(NaN,NaN,NaN,0):null}function U(e){return new X(e>>16&255,e>>8&255,255&e,1)}function K(e,t,n,r){return r<=0&&(e=t=n=NaN),new X(e,t,n,r)}function G(e){return e instanceof E||(e=$(e)),e?new X((e=e.rgb()).r,e.g,e.b,e.opacity):new X}function W(e,t,n,r){return 1===arguments.length?G(e):new X(e,t,n,null==r?1:r)}function X(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function Z(){return`#${te(this.r)}${te(this.g)}${te(this.b)}`}function J(){const e=Q(this.opacity);return`${1===e?\"rgb(\":\"rgba(\"}${ee(this.r)}, ${ee(this.g)}, ${ee(this.b)}${1===e?\")\":`, ${e})`}`}function Q(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ee(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function te(e){return((e=ee(e))<16?\"0\":\"\")+e.toString(16)}function ne(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new oe(e,t,n,r)}function re(e){if(e instanceof oe)return new oe(e.h,e.s,e.l,e.opacity);if(e instanceof E||(e=$(e)),!e)return new oe;if(e instanceof oe)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),a=NaN,l=i-o,u=(i+o)/2;return l?(a=t===i?(n-r)/l+6*(n<r):n===i?(r-t)/l+2:(t-n)/l+4,l/=u<.5?i+o:2-i-o,a*=60):l=u>0&&u<1?0:a,new oe(a,l,u,e.opacity)}function oe(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function ie(e){return(e=(e||0)%360)<0?e+360:e}function ae(e){return Math.max(0,Math.min(1,e||0))}function le(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}I(E,$,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:B,formatHex:B,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return re(this).formatHsl()},formatRgb:Y,toString:Y}),I(X,W,O(E,{brighter(e){return e=null==e?A:Math.pow(A,e),new X(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new X(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new X(ee(this.r),ee(this.g),ee(this.b),Q(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Z,formatHex:Z,formatHex8:function(){return`#${te(this.r)}${te(this.g)}${te(this.b)}${te(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:J,toString:J})),I(oe,(function(e,t,n,r){return 1===arguments.length?re(e):new oe(e,t,n,null==r?1:r)}),O(E,{brighter(e){return e=null==e?A:Math.pow(A,e),new oe(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new oe(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new X(le(e>=240?e-240:e+120,o,r),le(e,o,r),le(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new oe(ie(this.h),ae(this.s),ae(this.l),Q(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Q(this.opacity);return`${1===e?\"hsl(\":\"hsla(\"}${ie(this.h)}, ${100*ae(this.s)}%, ${100*ae(this.l)}%${1===e?\")\":`, ${e})`}`}}));const ue=Math.PI/180,ce=180/Math.PI,se=4/29,fe=6/29,de=3*fe*fe;function pe(e){if(e instanceof he)return new he(e.l,e.a,e.b,e.opacity);if(e instanceof qe)return we(e);e instanceof X||(e=G(e));var t,n,r=ge(e.r),o=ge(e.g),i=ge(e.b),a=me((.2225045*r+.7168786*o+.0606169*i)/1);return r===o&&o===i?t=n=a:(t=me((.4360747*r+.3850649*o+.1430804*i)/.96422),n=me((.0139322*r+.0971045*o+.7141733*i)/.82521)),new he(116*a-16,500*(t-a),200*(a-n),e.opacity)}function he(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}function me(e){return e>.008856451679035631?Math.pow(e,1/3):e/de+se}function ve(e){return e>fe?e*e*e:de*(e-se)}function ye(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function ge(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function be(e){if(e instanceof qe)return new qe(e.h,e.c,e.l,e.opacity);if(e instanceof he||(e=pe(e)),0===e.a&&0===e.b)return new qe(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*ce;return new qe(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function xe(e,t,n,r){return 1===arguments.length?be(e):new qe(e,t,n,null==r?1:r)}function qe(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function we(e){if(isNaN(e.h))return new he(e.l,0,0,e.opacity);var t=e.h*ue;return new he(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}I(he,(function(e,t,n,r){return 1===arguments.length?pe(e):new he(e,t,n,null==r?1:r)}),O(E,{brighter(e){return new he(this.l+18*(null==e?1:e),this.a,this.b,this.opacity)},darker(e){return new he(this.l-18*(null==e?1:e),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return new X(ye(3.1338561*(t=.96422*ve(t))-1.6168667*(e=1*ve(e))-.4906146*(n=.82521*ve(n))),ye(-.9787684*t+1.9161415*e+.033454*n),ye(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}})),I(qe,xe,O(E,{brighter(e){return new qe(this.h,this.c,this.l+18*(null==e?1:e),this.opacity)},darker(e){return new qe(this.h,this.c,this.l-18*(null==e?1:e),this.opacity)},rgb(){return we(this).rgb()}}));var Me=e=>()=>e;function ke(e){return 1==(e=+e)?Se:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):Me(isNaN(t)?n:t)}}function Se(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):Me(isNaN(e)?t:e)}var Ce=function e(t){var n=ke(t);function r(e,t){var r=n((e=W(e)).r,(t=W(t)).r),o=n(e.g,t.g),i=n(e.b,t.b),a=Se(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=o(t),e.b=i(t),e.opacity=a(t),e+\"\"}}return r.gamma=e,r}(1),De=/^class(-pyramid)?/,Ie=function(e,t,n,r){var o=void 0!==n.min?n.min:r.min(),i=void 0!==n.max?n.max:r.max(),a=o,l=i,u=t.limits,s={},f=\"percent\"===t.limitType?u.map((function(e){return o+(i-o)*e})):u,d=t.colors.map((function(t){return e.resolveUIColor(t)}));if(o=Math.min.apply(Math,[o].concat(c(f))),i=Math.max.apply(Math,[i].concat(c(f))),s.min=o,s.max=i,t.breakTypes&&-1===t.breakTypes.indexOf(!0))s.type=\"categorical\",Object.assign(s,function(e){var t=e.min,n=e.max,r=e.limits,o=e.range,i=[],a=[];if(r.length)if(r[r.length-1]<t)a.push(t,n),i.push(o[o.length-1],o[o.length-1],o[o.length-1]);else if(r[0]>n)a.push(t,n),i.push(o[0],o[0],o[0]);else{if(r[0]>t)a.push(t),i.push(o[0]);else{a.push(t);for(var l=0;l<r.length;l++)if(t<r[l]){i.push(o[l]);break}}for(var u=0;u<r.length;u++)t<r[u]&&r[u]<n&&(a.push(r[u]),i.push(o[u]));if(r[r.length-1]<n)a.push(n),i.push(o[r.length]),i.push(o[r.length]);else{a.push(n);for(var c=0;c<r.length;c++)if(r[c]>n){i.push(o[c]),i.push(o[c]);break}}}else i.push(o[0]);return{min:t,max:n,range:i,domain:a}}({min:\"percent\"===t.limitType?o:a,max:\"percent\"===t.limitType?i:l,range:d,limits:\"percent\"===t.limitType?f:u}));else if(t.breakTypes){var p=t.breakTypes;s.type=\"continuous\",s.domain=[o],s.range=[d[0]];for(var h=0;h<f.length;h+=1)if(p[h]){var m=d[h],v=d[h+1],y=Ce(m,v)(.5);s.range.push(y),s.domain.push(f[h]),h<f.length-1&&p[h+1]&&(s.range.push(d[h+1]),s.domain.push((f[h]+f[h+1])/2))}else s.range.push(d[h]),s.range.push(d[h+1]),s.domain.push(f[h]),s.domain.push(f[h]+Math.min(1e-6,(i-o)/1e6));s.range.push(d[d.length-1]),s.domain.push(i)}else s.domain=f,s.range=d;return s};function Oe(e,t,n,r,o){var i,a,l,u=0,c=[],s=(e-t)/(r+1);if(0===s)return 1;for(i=0;i<n.length;i+=1)a=.99*(n[i]-t),l=n[i]>e?Math.floor(e/s):n[i]<t?0:Math.floor(a/s),Number.isNaN(l)||(c[l]?c[l]+=1:c[l]=1);for(i=0;i<c.length;i+=1)c[i]&&(u+=1);return u<=r||u>=o?Math.max(u,r):Oe(e,t,n,r+1,o)}var Ee=function(e,t,n,r){var o,i,a=t.theme,l=t.hc,u=r.f,s={mode:\"field\",fieldType:\"measure\",field:u?u.key():void 0,reverse:n.input.reverseScheme||!1,type:\"continuous\",range:function(e){return e.resources.theme.palette(\"quant\")}},f=[],d=!0;if(u){if(Number.isNaN(+u.min())||Number.isNaN(+u.max()))return{invalid:!0};(d=!(\"S\"===(o=n.pic.raw()).qMode&&(o.qDataPages[0]&&o.qSize.qcy>o.qDataPages[0].qArea.qHeight||!o.qDataPages.length&&o.qSize.qcy>0)||\"K\"===o.qMode&&o.qStackedDataPages[0]&&o.qSize.qcy>o.qStackedDataPages[0].qArea.qHeight||\"T\"===o.qMode&&o.qSize.qcy>o.qTreeDataPages[0].qGroupSize))&&(f=n.pic.extract({field:0,props:{num:{field:u.key()},exclude:{fields:l.qDimensionInfo.map((function(e,t){return{field:\"qDimensionInfo/\".concat(t)}})),value:function(e){return Math.min.apply(Math,c(e))<0}}}}).filter((function(e){return e.value>=0&&!e.exclude.value})).map((function(e){return e.num.value})).filter((function(e){return\"number\"==typeof e})))}if(!1===n.input.autoMinMax){if(s.min=n.input.measureMin,s.max=n.input.measureMax,s.max<s.min)return{invalid:!0}}else if(u&&!d)s.min=u.min(),s.max=u.max();else if(u){if(!f.length)return{invalid:!0};s.min=Math.min.apply(Math,c(f)),s.max=Math.max.apply(Math,c(f))}if(n.input.measureScheme&&(s.palettes={quant:n.input.measureScheme}),a){var p=a.getDataColorScales().filter((function(e){return e.key===n.input.measureScheme}))[0];s.type=p&&De.test(p.type)?\"categorical\":\"continuous\",\"categorical\"===s.type&&(i=p.colors.some((function(e){return Array.isArray(e)}))?Math.max.apply(Math,c(p.colors.map((function(e){return e?e.length:0})))):p.colors.length)}if(\"categorical\"===s.type){for(var h=d?Oe(s.max,s.min,f,1,i):i,m=(s.max-s.min)/h,v=[],y=0;y<h+1;y+=1)v.push(s.min+m*y);s.domain=v,s.range=function(e){for(var t=e.resources.theme.palette(\"quant\",h),n=Math.max(1,Math.floor(t.length/h)),r=[],o=0;o<h;o+=1)r.push(t[o*n]);return[r[0]].concat(r,[r[r.length-1]])}}return s};function Ae(e,t){var n;return t.activeMeasureIndex>=0?n=e.pic.fields().filter((function(e){return\"measure\"===e.type()}))[t.activeMeasureIndex]:\"libraryItem\"===t.type?n=e.pic.field((function(e){return e.raw().colorMapRef===t.key&&void 0!==t.key})):\"expression\"===t.type&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))),n||(n=e.pic.field((function(e){return void 0!==e.raw().matchMeasure})))&&(n=e.pic.fields().filter((function(e){return\"measure\"===e.type()}))[n.raw().matchMeasure]),n}function Ne(e){var n,r=e.cm,o=e.defaults,i=e.index,a=e.input,l=e.pic;if(!a||!a.on)return null;var u=null!==(n=a.mode)&&void 0!==n?n:\"primary\";return\"primary\"===u?function(e,n,r){var o=r.primary;return void 0!==n.paletteColor&&n.paletteColor&&(o=e.resolveUIColor(n.paletteColor)),t(t({},r),{},{mode:\"constant\",type:\"constant\",primary:o})}(r,a,o):\"byExpression\"===u?function(e,n,r){var o=\"qMeasureInfo/\".concat(e,\"/\"),i=n.field((function(e){return e.id().startsWith(o)&&\"colorByMeasureExpression\"===e.raw().id})),a=i;return t(t({},r),{},a?{mode:\"field\",fieldType:\"expression\",field:i?i.key():void 0,type:\"color\"}:{mode:\"constant\",type:\"constant\",primary:r.nil})}(i,l,o):null}function Le(e){e.measureOverrides.every((function(e){return!e}))&&(e.measureOverrides=null)}function Te(e,t){for(var n=(null==t?void 0:t.domain)||[],r=(null==t?void 0:t.range)||[],o=[],i=0;i<e.length;++i){var a=e[i];if(\"constant\"===(null==a?void 0:a.mode)){var l=n.indexOf(i);-1===l?(n.push(i),r.push(a.primary)):r[l]=a.primary,e[i]=null}else if(a){o.push(i);var u=n.indexOf(i);-1!==u&&(n.splice(u,1),r.splice(u,1))}}return{domain:n,range:r,exclude:o}}function Pe(e,t,n,r){if(t.input&&!t.input.auto){if(\"byMeasure\"===t.input.mode)return function(e,t,n){var r=t.theme,o=t.hc,i=(arguments.length>3&&void 0!==arguments[3]?arguments[3]:{}).getCField,a=void 0===i?Ae:i,l=n.input.byMeasureDef||{activeMeasureIndex:0},u=a(n,l),c=Ee(0,{theme:r,hc:o},n,{f:u});if(c.invalid)return c;\"expression\"===l.type&&(l.activeMeasureIndex<0||void 0===l.activeMeasureIndex)&&(c.label=l.label,u&&\"color.altLabel\"===u.raw().labelExpRef&&(c.label=n.input.altLabel)),!c.label&&u&&(c.label=u.title());var s=l.activeMeasureIndex>=0?u:null;if(!s&&u&&void 0!==u.raw().matchMeasure&&u.raw().matchMeasure>-1&&(s=n.pic.fields().filter((function(e){return\"measure\"===e.type()}))[u.raw().matchMeasure]),n.input.useMeasureGradient&&\"libraryItem\"===l.type)if(s){var f=s.raw().coloring;f&&f.gradient&&w(c,Ie(e,f.gradient,c,s))}else c.auxiliary=l;return c}(e,n,t);if(\"byDimension\"===t.input.mode)return function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=r.getCDef,i=void 0===o?C:o,a=r.getCByField,l=void 0===a?D:a,u=r.getPersistence,c=void 0===u?S:u,s=i(t,n),f=l(n,s),d=f?f.raw():{},p=n&&n.pic?n.pic.raw():{};if(d.qError||d.qSize&&0===d.qSize.qcy&&!p.qHasOtherValues)return{invalid:!0};var h={mode:\"field\",fieldType:\"dimension\",type:\"categorical\",field:f?f.key():void 0,isFieldLocked:d.qLocked};return(\"expression\"===s.type||s.activeDimensionIndex<0)&&(h.label=s.label,\"color.altLabel\"===d.labelExpRef&&(h.label=n.input.altLabel)),!h.label&&f&&(h.label=f.title()),n.input.dimensionScheme&&(h.palettes={categorical:n.input.dimensionScheme}),n.input.useDimColVal&&\"libraryItem\"===s.type&&(h.auxiliary=s),w(h,c(t,n,s,f,{byRow:k,byElemNo:M})),h}(e,n,t);if(\"byExpression\"===t.input.mode)return function(e,t,n,r){var o=t.hc,i=t.theme,a=t.translator,l=n.pic.field((function(e){return\"colorByExpression\"===e.raw().id}));if(!l||!l.raw().qFallbackTitle&&!n.input.colorExpression||!(Number.isFinite(l.raw().qMin)&&Number.isFinite(l.raw().qMax)||n.input.expressionIsColor))return{mode:\"constant\",type:\"constant\",primary:r.nil};if(n.input.expressionIsColor)return{mode:\"field\",fieldType:\"expression\",field:l?l.key():void 0,type:\"color\"};var u=Ee(0,{hc:o,theme:i},n,{f:l});return u.invalid||(u.label=n.input.expressionLabel||a.get(\"Object.ChartTooltip.ColorExpression\")),u}(0,n,t,r);if(\"byMultiple\"===t.input.mode||\"primary\"===t.input.mode)return function(e,t,n,r){var o=t.hc,i=t.theme,a=t.translator,l=n.input.useBaseColors;if((\"byMultiple\"===n.input.mode||\"primary\"===n.input.mode&&\"measure\"===n.input.useBaseColors)&&o.qMeasureInfo.length>1&&(l=\"measure\"),\"measure\"===l){var u=[],c=[];\"measure\"===n.input.useBaseColors&&o.qMeasureInfo.forEach((function(t,n){if(t.baseColor||t.coloring&&t.coloring.baseColor){u.push(n);var o=e.resolveUIColor(t.baseColor||t.coloring.baseColor);\"none\"===o?c.push(r.primary):c.push(o)}}));var s=n.input.dimensionScheme?{categorical:n.input.dimensionScheme}:void 0,f=i?i.getDataColorPalettes()[0]:void 0;return\"measure\"===n.input.useBaseColors&&f&&(s={categorical:f.key}),{mode:\"measure\",type:\"categorical\",palettes:s,label:a?a.get(\"Common.Measures\"):void 0,explicit:u.length?{domain:u,range:c}:void 0}}if(\"dimension\"===l){var d=[],p=[];return o.qDimensionInfo.forEach((function(t,n){if(t.baseColor||t.coloring&&t.coloring.baseColor){d.push(n);var o=e.resolveUIColor(t.baseColor||t.coloring.baseColor);\"none\"===o?p.push(r.primary):p.push(o)}})),{mode:\"dimension\",type:\"categorical\",field:d.length?d[0]:void 0,explicit:d.length?{domain:d,range:p}:void 0}}var h=r.primary;if(void 0!==n.input.paletteColor)n.input.paletteColor&&(h=e.resolveUIColor(n.input.paletteColor));else{var m=n.input.singleColor;\"number\"!=typeof m||Number.isNaN(m)||(h=[\"#b0afae\",\"#7b7a78\",\"#545352\",\"#4477aa\",\"#7db8da\",\"#b6d7ea\",\"#46c646\",\"#f93f17\",\"#ffcf02\",\"#276e27\",\"#ffffff\",\"#000000\"][m])}return{mode:\"constant\",type:\"constant\",primary:h}}(e,n,t,r)}return{}}function je(e,t,n,r){var o,i=Pe(e,t,n,r);return null!==(o=t.input)&&void 0!==o&&o.measureOverrides?(i.measureOverrides=t.input.measureOverrides.map((function(n,o){return Ne({cm:e,input:n,defaults:r,index:o,pic:t.pic})})),function(e,t){var n,r,o,i=t.translator;if(Le(e),1===(null===(n=e.measureOverrides)||void 0===n?void 0:n.length))return e.measureOverrides[0];if(\"measure\"===e.mode&&e.measureOverrides&&(e.explicit=Te(e.measureOverrides,e.explicit),Le(e)),null!==(r=e.measureOverrides)&&void 0!==r&&r.every((function(e){return\"constant\"===(null==e?void 0:e.mode)}))){var a={mode:\"measure\",type:\"categorical\",label:null==i?void 0:i.get(\"Common.Measures\")};return a.explicit=Te(e.measureOverrides),a}return null!==(o=e.measureOverrides)&&void 0!==o&&o.every((function(e){return e}))?{invalid:!0,measureOverrides:e.measureOverrides}:e}(i,n)):i}function Fe(e){var n=t({hc:null,colorProps:null,layout:null,theme:null},e),r={},o={auto:function(){return{mode:\"primary\"}},getDimensionColorMap:function(){return Promise.reject()},getMeasure:function(){return Promise.reject()},getAttributeDimension:function(){return Promise.reject()}},i={auto:function(e){return e?(o.auto=e,i):o.auto},getDimensionColorMap:function(e){return e?(o.getDimensionColorMap=e,i):o.getDimensionColorMap},getAttributeDimension:function(e){return e?(o.getAttributeDimension=e,i):o.getAttributeDimension},getMeasure:function(e){return e?(o.getMeasure=e,i):o.getMeasure},set:function(e){var t;if(!e.colorProps)throw new Error('Missing \"colorProps\"');if(w(n,e),(r={pic:n.picasso.data(\"q\")({data:n.hc,config:{localeInfo:n.localeInfo}}),input:n.colorProps}).input.auto){var i=o.auto(e.layout);r.input=w(!0,{},r.input,i,{auto:!1});var a=n.theme?n.theme.getDataColorPalettes():[];a[0]&&(r.input.dimensionScheme=a[0].key);var l=0;r.input.byDimDef&&+r.input.byDimDef.activeDimensionIndex>=0&&(l=+r.input.byDimDef.activeDimensionIndex),n.hc&&n.hc.qDimensionInfo[l]&&n.hc.qDimensionInfo[l].coloring&&n.hc.qDimensionInfo[l].coloring.colorMapRef&&r.input.byDimDef&&(r.input.byDimDef.type=\"libraryItem\",r.input.byDimDef.key=n.hc.qDimensionInfo[l].coloring.colorMapRef)}null!==(t=r.input.measureOverrides)&&void 0!==t&&t.every((function(e){return!e||!e.on}))&&(r.input=w(!1,{},r.input,{measureOverrides:null}))},palettes:function(){if(!r.palettes){var e=n.theme,t=[];(e&&e.getDataColorPickerPalettes()||[]).forEach((function(e){t.push({key:\"ui\",colors:e.colors})})),r.palettes=t}return r.palettes},getAuxiliaryData:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"/qHyperCubeDef\";if(!e.auxiliary&&!/qAttrDimInfo/.test(e.field))return Promise.resolve();var r=e.auxiliary||{},i=r.key;if(\"measure\"===e.fieldType)return o.getMeasure(i,n).catch((function(){}));if(\"dimension\"===e.fieldType){var a=\"\".concat(t,\"/\").concat(e.field).replace(\"qDimensionInfo\",\"qDimensions\").replace(\"qAttrDimInfo\",\"qAttributeDimensions\");return Promise.all([/qAttrDimInfo/.test(e.field)?o.getAttributeDimension(a,n).catch((function(){})):Promise.resolve(),i?o.getDimensionColorMap(i,n).catch((function(){})):Promise.resolve()])}return Promise.resolve()},getAuxiliarySettings:function(e,o){var i=this;return e.auxiliary||/qAttrDimInfo/.test(e.field)?(this.palettes(),this.getAuxiliaryData(e,o).then((function(o){if(!o)return{};if(\"measure\"===e.fieldType){if(o.coloring&&o.coloring.gradient){var a=r.pic.field(e.field);return Ie(i,o.coloring.gradient,e,a)}return{}}if(\"dimension\"===e.fieldType){var l={nil:e.nil,others:e.others},u=o[0],c=o[1]?o[1].colorMap:null;if(u){var s=n.picasso.data(\"q\")({data:{qDimensionInfo:[r.pic.field(e.field).raw(),r.pic.field(e.field).raw()],qMeasureInfo:[],qDataPages:u,qInterColumnSortOrder:[0,1],qMode:\"S\"}});l.legendDataset=s}return c?function(e,n,r,o){var i=o.external,a=o.field,l=t({},e);w(l,M(a,a.raw().qCardinal));var u=i.theme?i.theme.getDataColorPalettes()[0]:null;return n.nul&&(l.nil=r.resolveUIColor(n.nul)),n.oth&&(l.others=r.resolveUIColor(n.oth)),n.usePal?(l.palettes={categorical:n.pal},u&&!n.pal&&(l.palettes.categorical=u.key,w(l,M(a)))):!1===n.autoFill&&n.single?l.range=[r.resolveUIColor(n.single)]:n.autoFill&&(u&&(l.palettes={categorical:u.key}),w(l,M(a))),n.colors&&n.colors.length&&(l.explicit=function(e,t,n){for(var r={},o=0;o<e.length;o+=1)r[e[o].value]=e[o].baseColor;var i=[];return{domain:function(e){var o=e.data,a=[];i=[];for(var l=0;l<o.items.length;l++){var u=o.items[l],c=(u.text||u).label;r[c]&&-1===a.indexOf(u.value)&&(a.push(u.value),i.push(t.resolveUIColor(r[c])))}return a.push(-3,-2),i.push(n.others),i.push(n.nil),a},range:function(){return i}}}(n.colors,r,l)),l}(l,c,i,{external:n,field:r.pic.field(e.field)}):l}return{}}))):Promise.resolve()},resolveUIColor:function(e){if(e.index<0||void 0===e.index)return e.color;if(void 0===r.uiPalette&&(r.uiPalette=this.palettes().filter((function(e){return\"ui\"===e.key}))[0]||!1),!r.uiPalette)return e.color;var t=\"none\"===r.uiPalette.colors[0]?e.index:e.index-1;return void 0===r.uiPalette.colors[t]?e.color:r.uiPalette.colors[t]},settings:function(){if(this.palettes(),!r.settings){var e={primary:\"steelblue\",others:\"#aaa\",nil:\"#ddd\"},o=n.theme;o&&(e=t(t({},e),o.getDataColorSpecials())),r.settings=w(e,je(this,r,n,e))}return r.settings}};return i}var He=function(e,t){var n=e.fieldType,r={};if(t)if(\"measure\"===n){var o=t.coloring;o&&(r.measureGradient=o.gradient)}else if(\"dimension\"===n){var i=t[0],a=t[1];i&&(r.legendDataPage=i),a&&(r.dimValsData=a.colorMap)}return r},Re=function(e){throw e.isHandled=!0,e},ze=function(e,t){var n=t.layout,r=t.app;return n&&n.snapshotData?n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.dimValsData?Promise.resolve({colorMap:n.snapshotData.content.chartData.dimValsData}):Promise.reject():r&&r.getObject?r.getObject(\"ColorMapModel_\".concat(e)).then((function(e){return e.getLayout()})):Promise.reject()},Ve=function(e,t){var n=t.layout,r=t.app;return n&&n.snapshotData?n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.measureGradient?Promise.resolve({coloring:{gradient:n.snapshotData.content.chartData.measureGradient}}):Promise.reject():r&&r.getMeasure?r.getMeasure(e).then((function(e){return e.getMeasure()})):Promise.reject()},_e=function(e,t){var n=t.layout,r=t.model,o=t.app;if(n&&n.snapshotData)return n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.legendDataPage?Promise.resolve(n.snapshotData.content.chartData.legendDataPage):Promise.reject();if(r&&r.session&&o){return r.getHyperCubeData(e,[{qHeight:100,qLeft:0,qTop:0,qWidth:2}]).catch(Re)}return Promise.reject()};function Be(e){var t=e.hc,n=e.source,r=e.coloring,o={data:{extract:[{source:\"dummy\",field:0,filter:function(){return o.expando=t.qDataPages[0]?t.qDataPages[0].qArea.qTop:0,!1}},{source:n,field:r.field,trackBy:r.valueAccessor,reduce:\"first\",props:{row:{reduce:function(){return o.expando++}},text:{value:function(e){return e.qText},reduce:\"first\"}}}]},expando:0};return o}function Ye(e){return function(t){return\"object\"===r(t.datum[e])?t.datum[e].value:void 0}}function $e(e){return\"object\"===r(e.datum.isNull)?e.datum.isNull.value:-2===e.datum.value}function Ue(e){return-3===e.datum.value}var Ke={TITLE:{COLOR:void 0,FONT_SIZE:\"16px\",FONT_FAMILY:\"'Source Sans Pro', 'Arial', 'sans-serif'\"},LABEL:{COLOR:void 0,FONT_SIZE:void 0,FONT_FAMILY:\"'Source Sans Pro', 'Arial', 'sans-serif'\"}};function Ge(e){var t=e.theme,n=e.key,r=e.styleOverrides,o={title:{color:Ke.TITLE.COLOR,fontSize:Ke.TITLE.FONT_SIZE,fontFamily:Ke.TITLE.FONT_FAMILY},label:{color:Ke.LABEL.COLOR,fontSize:Ke.LABEL.FONT_SIZE,fontFamily:Ke.LABEL.FONT_FAMILY}};if(!t&&!r)return o;var i=r||{},a=i.title,l=i.label,u=function(e){var t=e.theme,n=e.key;return function(e,r,o,i){return void 0!==e?e:t?t.getStyle(n,r,o):i}}({theme:t,key:n});return o.title.color=u(null==a?void 0:a.color,\"legend.title\",\"color\",Ke.TITLE.COLOR),o.title.fontSize=u(null==a?void 0:a.fontSize,\"legend.title\",\"fontSize\",Ke.TITLE.FONT_SIZE),o.title.fontFamily=u(null==a?void 0:a.fontFamily,\"legend.title\",\"fontFamily\",Ke.TITLE.FONT_FAMILY),o.label.color=u(null==l?void 0:l.color,\"legend.label\",\"color\",Ke.LABEL.COLOR),o.label.fontSize=u(null==l?void 0:l.fontSize,\"legend.label\",\"fontSize\",Ke.LABEL.FONT_SIZE),o.label.fontFamily=u(null==l?void 0:l.fontFamily,\"legend.label\",\"fontFamily\",Ke.LABEL.FONT_FAMILY),o}var We=function(e,t,n){var r=e&&e.dock||void 0;if(\"auto\"!==r)return r||\"right\";if(t){var o=t.element.getBoundingClientRect();if(o.height>o.width)return\"bottom\"}return n?\"left\":\"right\"},Xe=function(e,t,n){return!(n.invalid||\"color\"===n.type||\"measure\"===n.mode&&t.qMeasureInfo.length<=1||\"dimension\"===n.mode)&&(\"function\"==typeof e.show?e.show():!1!==e.show)};function Ze(e,t){var n=e.styleReference,r=e.styleOverrides,o=e.chart,i=e.rtl,a=t.legendProps,l=t.coloring,u=t.theme,c=t.hc,s=Ge({theme:u,key:n,styleOverrides:r});return{layout:{minimumLayoutMode:\"MEDIUM\",dock:We(a,o,i)},show:\"function\"==typeof a.show?function(){return Xe(a,c,l)}:Xe(a,c,l),renderer:\"svg\",mounted:function(e){e.childNodes[0].style.pointerEvents=\"none\",e.style.overflow=\"hidden\"},settings:{title:{show:!1!==a.showTitle,wordBreak:\"break-word\",maxLines:2,lineHeight:1.2,text:l.label||\"\",fill:s.title.color,fontSize:s.title.fontSize,fontFamily:s.title.fontFamily}}}}function Je(e,n,r){return\"categorical\"===n.coloring.type?function(e,n,r){var o=Ze(e,n);if(!o.show)return!1;var i,a=e.key,l=e.styleReference,u=e.styleOverrides,c=e.viewState,s=e.rtl,f=e.settings,d=e.style,p=n.scaleKey,h=n.theme,m=n.scales,v=Ge({theme:h,key:l,styleOverrides:u}),y=o.layout.dock,g=\"left\"===y||\"right\"===y?{maxLines:2,wordBreak:\"break-word\"}:{},b={up:\"M13.6,11 L2.4,11 C2.28954305,11 2.2,10.9104569 2.2,10.8 C2.2,10.756726 2.21403557,10.7146192 2.24,10.68 L7.84,3.21333333 C7.90627417,3.12496777 8.03163444,3.10705916 8.12,3.17333333 C8.13516113,3.18470418 8.14862915,3.1981722 8.16,3.21333333 L13.76,10.68 C13.8262742,10.7683656 13.8083656,10.8937258 13.72,10.96 C13.6853808,10.9859644 13.643274,11 13.6,11 Z\",down:\"M2.4,4 L13.6,4 C13.7104569,4 13.8,4.08954305 13.8,4.2 C13.8,4.24327404 13.7859644,4.28538077 13.76,4.32 L8.16,11.7866667 C8.09372583,11.8750322 7.96836556,11.8929408 7.88,11.8266667 C7.86483887,11.8152958 7.85137085,11.8018278 7.84,11.7866667 L2.24,4.32 C2.17372583,4.23163444 2.19163444,4.10627417 2.28,4.04 C2.31461923,4.01403557 2.35672596,4 2.4,4 Z\",left:\"M11,2.4 L11,13.6 C11,13.7104569 10.9104569,13.8 10.8,13.8 C10.756726,13.8 10.7146192,13.7859644 10.68,13.76 L3.21333333,8.16 C3.12496777,8.09372583 3.10705916,7.96836556 3.17333333,7.88 C3.18470418,7.86483887 3.1981722,7.85137085 3.21333333,7.84 L10.68,2.24 C10.7683656,2.17372583 10.8937258,2.19163444 10.96,2.28 C10.9859644,2.31461923 11,2.35672596 11,2.4 Z\",right:\"M4,13.6 L4,2.4 C4,2.28954305 4.08954305,2.2 4.2,2.2 C4.24327404,2.2 4.28538077,2.21403557 4.32,2.24 L11.7866667,7.84 C11.8750322,7.90627417 11.8929408,8.03163444 11.8266667,8.12 C11.8152958,8.13516113 11.8018278,8.14862915 11.7866667,8.16 L4.32,13.76 C4.23163444,13.8262742 4.10627417,13.8083656 4.04,13.72 C4.01403557,13.6853808 4,13.643274 4,13.6 Z\"};\"dimension\"===n.coloring.fieldType&&(i=function(e){return e.datum.value>=0||-3===e.datum.value});var x=\"\".concat(p,\"Legend\");return w(!0,o,{type:\"legend-cat\",key:\"\".concat(a,\"-cat\"),scale:x in m?x:p,settings:{layout:{scrollOffset:function(){return c?c.get(\"legendScrollOffset\"):void 0},size:-1!==[\"top\",\"bottom\"].indexOf(o.layout.dock)?2:1,direction:s?\"rtl\":\"ltr\",horizontal:20},item:{show:i,label:t({fill:v.label.color,fontSize:v.label.fontSize,fontFamily:v.label.fontFamily},g)},navigation:{disabled:r,button:{content:function(e,t){var n=t.direction;return e(\"i\",{style:{\"pointer-events\":\"none\",fontSize:\"12px\",display:\"inline-block\",fontStyle:\"normal\",lineHeight:\"0\",textAlign:\"center\",textTransform:\"none\",verticalAlign:\"-0.125em\",textRendering:\"optimizelegibility\",margin:\"0px\"}},[e(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"1em\",height:\"1em\",viewBox:\"0 0 16 16\",fill:\"currentColor\"},[e(\"path\",{d:b[n]})])])}}}},brush:{consume:[{context:\"selection\",data:[\"\",a],style:{inactive:{opacity:.3}}}]}},{settings:f,style:d})}(e,n,r):\"continuous\"===n.coloring.type&&function(e,t){var n,r=e.key,o=e.styleReference,i=e.styleOverrides,a=e.rtl,l=e.settings,u=e.style,c=t.scaleKey,s=t.theme,f=\"\".concat(c,\"Range\"),d=Ze(e,t);if(!d.show)return!1;var p=Ge({theme:s,key:o,styleOverrides:i}),h=d.layout.dock,m=\"right\"===h||\"left\"===h,v=null===(n=t.scales)||void 0===n?void 0:n[f];return m&&v&&(v.invert=!0),w(!0,d,{type:\"legend-seq\",key:\"\".concat(r,\"-seq\"),settings:{fill:c,major:f,length:1,tick:{fill:p.label.color,fontSize:p.label.fontSize,fontFamily:p.label.fontFamily},title:{anchor:!a||\"top\"!==d.layout.dock&&\"bottom\"!==d.layout.dock?void 0:\"right\",padding:parseFloat(d.settings.title.fontSize)||16}}},{settings:l,style:u})}(e,n)}function Qe(e,t,n){var r=[],o=[],i=Je(e,t,n&&n.navigationDisabled);return r.push(i),i&&\"legend-cat\"===i.type&&(o.push(function(e){var t=e.key,n=e.requireFailure,r=e.recognizeWith,o=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).actions;return{key:\"event:tap-\".concat(t),type:\"Tap\",requireFailure:n,recognizeWith:r,options:{event:\"legendtap\",interval:10,pointers:1,enable:function(e,n){var r;if(!n)return!0;if(null!=o&&null!==(r=o.interact)&&void 0!==r&&r.enabled&&!o.interact.enabled())return!1;if(!this.chart.componentsFromPoint({x:n.center.x,y:n.center.y}).some((function(e){return e.key===\"\".concat(t,\"-cat\")})))return!1;var i=n.srcEvent.target;return!!(i&&i.hasAttribute(\"data-action\")&&i.hasAttribute(\"data-component-key\"))||!(!i||!i.childNodes[0]||\"BUTTON\"!==i.childNodes[0].nodeName)}},events:{legendtap:function(e){e.preventDefault();var t=e.srcEvent.target;t&&t.hasAttribute(\"data-action\")&&t.hasAttribute(\"data-component-key\")&&this.chart.component(t.getAttribute(\"data-component-key\")).emit(t.getAttribute(\"data-action\"))}}}}(e,n)),o.push(function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.eventName,r=t.key,o=t.requireFailure,i=t.recognizeWith,l=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).actions;return{key:\"event:pan-\".concat(r),type:\"Pan\",requireFailure:o,recognizeWith:i,options:{event:n,pointers:1,threshold:10,enable:function(e,t){var o;return this.started===n||!t||!(null!=l&&null!==(o=l.interact)&&void 0!==o&&o.enabled&&!l.interact.enabled())&&this.chart.componentsFromPoint({x:t.center.x,y:t.center.y}).some((function(e){return e.key===\"\".concat(r,\"-cat\")}))}},events:(e={},a(e,\"\".concat(n,\"start\"),(function(e){e.preventDefault(),this.started!==n&&(this.started=n,this.chart.component(\"\".concat(r,\"-cat\")).emit(\"panstart\",e))})),a(e,\"\".concat(n,\"move\"),(function(e){e.preventDefault(),this.chart.component(\"\".concat(r,\"-cat\")).emit(\"panmove\",e)})),a(e,\"\".concat(n,\"end\"),(function(e){e.preventDefault(),this.chart.component(\"\".concat(r,\"-cat\")).emit(\"panend\",e),this.started=!1})),e)}}(e,n))),{interactions:o,components:r}}var et=function(e){return\"rgba(\".concat([(16711680&e)>>16,(65280&e)>>8,255&e,((4278190080&e)>>>24)/255].join(\",\"),\")\")};function tt(e){var n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.auto,n=Fe(e.resources).auto(t||function(){return{mode:\"byDimension\",persistent:!1,useDimColVal:!0,byDimDef:{activeDimensionIndex:0,type:\"expression\",label:\"\"}}}).getDimensionColorMap((function(e,t){var n=t.layout,r=t.app;return ze(e,{layout:n,app:r})})).getMeasure((function(e,t){var n=t.layout,r=t.app;return Ve(e,{layout:n,app:r})})).getAttributeDimension((function(e,t){var n=t.layout,r=t.model,o=t.app;return _e(e,{layout:n,model:r,app:o})}));return n.getSnapshotData=He,n}({resources:e}),r={},o={},i=function(e){return o.settings||(e||console.warn(\"settings() called before auxiliarySettings()\"),o.settings=n.settings()),o.settings},l={config:function(i){if(r=t({},i),o={},!r.key)throw new Error(\"Missing key\");n.set(t(t({},e),r))},auto:function(e){return e?(n.auto(e),l):n.auto()},getAuxiliarySettings:function(e){return o.auxiliarySettings?Promise.resolve(o.auxiliarySettings):n.getAuxiliarySettings(i(!0),e).then((function(e){return o.auxiliarySettings=e||{},o.settings=t(t({},o.settings),o.auxiliarySettings),o.scales=void 0,o.color=void 0,o.auxiliarySettings}))},getAuxiliaryData:function(){return n.getAuxiliaryData(i())},getSnapshotData:function(e){var t=i();return n.getAuxiliaryData(t,e).then((function(e){return n.getSnapshotData(t,e)}))},resolveUIColor:function(e){return n.resolveUIColor(e)},settings:function(){var e=i();return{mode:e.mode,type:e.type,label:e.label,field:e.field,fieldType:e.fieldType,nil:e.nil,others:e.others,primary:e.primary}},settingsForMeasure:function(e){var t,n=null===(t=i().measureOverrides)||void 0===t?void 0:t[e];return n||this.settings()},isSelectionLocked:function(e){var t=e.isMeasureSelectionLocked;return function(e,t){var n=t.isMeasureSelectionLocked;return\"field\"!==e.mode||(\"dimension\"===e.fieldType?e.isFieldLocked:\"measure\"!==e.fieldType||n)}(i(),{isMeasureSelectionLocked:t})},palettes:function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.colorProps,n=e.coloring,r=e.theme,o=[];if(n&&n.palettes&&r){var i=n.palettes.categorical||t.dimensionScheme,a=r.getDataColorPalettes().filter((function(e){return e.key===i}))[0]||r.getDataColorPalettes()[0];i&&a&&o.push({key:\"categorical\",colors:a.colors});var l=n.palettes.metric||t.measureScheme,u=r.getDataColorScales().filter((function(e){return e.key===l}))[0];if(u){var s=u.colors[0]?u.colors:[[]].concat(c(u.colors.slice(1)));s=Array.isArray(s[0])?s.map((function(e){return e.slice().reverse()})):s.slice().reverse(),o.push({key:\"quant\",colors:s})}}return o}({coloring:i(),colorProps:r.colorProps,theme:r.theme})},scales:function(){return o.scales=o.scales||function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.hc,r=e.coloring,o=e.rtl,i=e.key,a=e.source,l=e.picasso,u={},s=i;if(r){var f={override:!0,domain:r.explicit&&\"function\"==typeof r.explicit.domain?r.explicit.domain:[].concat(c((r.explicit||{}).domain||[]),[-3,-2]),range:r.explicit&&\"function\"==typeof r.explicit.range?r.explicit.range:[].concat(c((r.explicit||{}).range||[]),[r.others,r.nil])};if(\"field\"===r.mode){if(\"dimension\"===r.fieldType){var d,p=Be({hc:n,source:a,coloring:r}).data;if(r.legendDataset){var h=0,m={};l.data(\"q\")({data:n}).extract({field:r.field,trackBy:r.valueAccessor,reduce:function(e){var t=e[0];return m[t]=h++,e[0]}}),d={source:\"attrDim\",extract:{field:\"qDimensionInfo/0\",filter:function(e){return e.qElemNumber>=0},props:{row:{value:function(e){return m[e.qElemNumber]}}}}}}var v={data:p,range:r.range,domain:r.domain,explicit:f,type:\"categorical-color\",label:function(e){return e.datum.text&&e.datum.text.value?e.datum.text.value:e.datum.label}};u[s]=v,d&&(u[\"\".concat(s,\"Legend\")]=t(t({},v),{},{data:d})),n&&n.qHasOtherValues&&d&&((d||v.data).amend=[{label:n.qDimensionInfo[0].othersLabel,source:{key:\"qHyperCube\",field:\"qDimensionInfo/0\"},row:{value:-3},value:-3}])}else if(\"measure\"===r.fieldType){var y={data:{field:r.field},min:r.min,max:r.max};u[s]=w({},y,{type:\"categorical\"===r.type?\"threshold-color\":\"sequential-color\",range:r.range,domain:r.domain,invert:r.reverse}),\"sequential-color\"===u[s].type&&(u[\"\".concat(s,\"Range\")]=w({},y,{invert:!!o}))}else if(\"color\"!==r.type)throw new Error(\"UNUSED FIELD\")}else if(\"dimension\"===r.mode){var g={data:n.qDimensionInfo.map((function(e,t){return t})),label:function(e){return n.qDimensionInfo[e.datum.value].qFallbackTitle},explicit:f,type:\"categorical-color\"};u[s]=g}else if(\"measure\"===r.mode){var b={data:n.qMeasureInfo.map((function(e,t){return t})).filter((function(e){var t,n;return!(null!==(t=r.explicit)&&void 0!==t&&null!==(n=t.exclude)&&void 0!==n&&n.includes(e))})),label:function(e){return n.qMeasureInfo[e.datum.value].qFallbackTitle},explicit:f,type:\"categorical-color\"};u[s]=b}}return u}({hc:r.hc,coloring:i(),key:r.key,source:r.source,picasso:e.picasso}),o.scales},color:function(){return o.color=o.color||function(e){var t=e.coloring,n=e.scales,r=e.key,o=Ye(r),i=Ye(\"\".concat(r,\"IsAnOther\")),a=function(e,t){var r=e.fieldType,a=e.invalid,l=e.mode,u=e.nil,c=e.others,s=e.primary,f=e.type;return a?function(e){return Ue(e)||i(e)?c:u}:n[t]?function(e){return Ue(e)?c:$e(e)||-2===o(e)&&\"dimension\"===r||\"NaN\"===o(e)?u:i(e)?c:e.resources.scale(t)(o(e))||c}:\"constant\"===l?function(e){return Ue(e)||i(e)?c:$e(e)?u:s}:\"color\"===f?function(e){return Ue(e)||i(e)?c:$e(e)?u:o(e)||c}:null},l=a(t,r);if(t.measureOverrides){var u=Ye(\"\".concat(r,\"MeasureIdx\")),c=t.measureOverrides.map((function(e){return e&&a(e)}));return function(e){var t=u(e);return c[t]?c[t](e):l(e)}}return l}({coloring:i(),scales:this.scales(),key:r.key}),o.color},datumProps:function(e){return function(e){var t,n,r=e.hc,o=e.coloring,i=e.scales,l=e.key,u=e.addMeasureIx,c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,s=l,f=o.nil;\"field\"===o.mode&&o.field?t=o.field:i[l]&&\"field\"===o.mode&&(t=i[l].data.field||o.field),t?(n={field:t,reduce:\"first\"},\"color\"===o.type&&(n.value=function(e){return\"NaN\"!==e.qNum?et(e.qNum):e.qText&&$(e.qText)?e.qText:f})):\"dimension\"===o.mode?n=void 0!==o.field?o.field:r.qDimensionInfo.length-1:\"measure\"===o.mode&&(n=c);var d=a({},s,n);return r.qDimensionInfo.length>1&&(d[\"\".concat(s,\"IsAnOther\")]={fields:r.qDimensionInfo.map((function(e,t){return{field:\"qDimensionInfo/\".concat(t)}})),value:function(e){return-1!==e.indexOf(-3)}}),u&&(d[\"\".concat(s,\"MeasureIdx\")]=c),d}({coloring:this.settingsForMeasure(e),scales:this.scales(),key:r.key,hc:r.hc,addMeasureIx:i().measureOverrides},e)},data:function(){var e=i(),t={key:\"dummy\",data:[[\"field\"],[\"a\"]]};return e.legendDataset?[t,{type:\"q\",key:\"attrDim\",data:e.legendDataset.raw(),config:{localeInfo:r.localeInfo}}]:[t]},legend:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.eventName,n=e.key,o=e.viewState,a=e.chart,l=e.rtl,u=e.styleReference,c=void 0===u?\"object.legend\":u,s=e.styleOverrides,f=e.settings,d=void 0===f?{}:f,p=e.style,h=void 0===p?{}:p,m=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Qe({eventName:t,key:n,rtl:l,viewState:o,chart:a,styleReference:c,styleOverrides:s,settings:d,style:h},{legendProps:r.legendProps,scaleKey:r.key,coloring:i(),theme:r.theme,hc:r.hc,scales:this.scales()},m)}};return l}var nt=function(e){return e.baseColor||e.coloring&&e.coloring.baseColor};function rt(e){var t=e.qHyperCube,n=t.qDimensionInfo,r=t.qMeasureInfo,o=n.some(nt),i=r.some(nt),a=e.color.useBaseColors;return\"measure\"===a&&!i||\"dimension\"===a&&!o?\"off\":a}function ot(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t(t(t({},e),n),{},{colorProps:t(t({},e.colorProps),n.colorProps||{})});return r}var it=function(e){return e.baseColor||e.coloring&&e.coloring.baseColor};function at(e){var t,n=e.qHyperCube.qDimensionInfo.some(it),r=e.qHyperCube.qMeasureInfo.some(it),o=n?\"dimension\":void 0;return{mode:\"primary\",useBaseColors:null!==(t=null!=o?o:r?\"measure\":void 0)&&void 0!==t?t:\"off\",paletteColor:null}}var lt=function(){};function ut(e){var n,r,o,i,a=e.picasso,l=e.model,u=e.app,c=e.translator,s=e.layoutService,f=void 0===s?void 0:s,d=e.createConfig,p=void 0===d?lt:d,h=e.config,m=void 0===h?{}:h,v=e.custom,y=void 0===v?{}:v,g=m.localeInfo,b=m.key,x=m.theme,q=void 0===x?void 0:x,w=m.auto,M=void 0===w?void 0:w,k=m.definitionPath,S=null==f||null===(n=f.getLayout)||void 0===n?void 0:n.call(f),C={theme:q,key:b,localeInfo:g,layout:S,hc:null==f||null===(r=f.getHyperCube)||void 0===r?void 0:r.call(f),legendProps:null==f||null===(o=f.getLayoutValue)||void 0===o?void 0:o.call(f,\"legend\"),colorProps:t(t({},null==f||null===(i=f.getLayoutValue)||void 0===i?void 0:i.call(f,\"color\")),{},{useBaseColors:S?rt(S):void 0})},D=tt({picasso:a,model:l,app:u,translator:c,auto:M});!1!==M&&D.auto((function(e){return M?M({layout:e,defaultAuto:at}):at(e)}));var I=!1,O={getColor:function(){return D.color()},getPaletteColor:function(e){var t=e.index,n=e.color;return D.resolveUIColor({index:t,color:n})},getData:function(){return D.data()},getDatumProps:function(e){return D.datumProps(e)},getSnapshotData:function(){return D.getSnapshotData(k)},getSettingsForMeasure:function(e){return D.settingsForMeasure(e)},getSettings:function(){return D.settings()},getLegend:function(e,t){return D.legend(e,t)},getScales:function(){return D.scales()},getPalettes:function(){return D.palettes()},isSelectionLocked:function(e){var t=e.isMeasureSelectionLocked;return D.isSelectionLocked({isMeasureSelectionLocked:t})},isInitialized:function(){return I},custom:t({},y),initialize:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.createConfig,n=void 0===t?p:t,r=n({getUseBaseColors:rt}),o=ot(C,r);D.config(o);var i=D.getAuxiliarySettings(k).then((function(){I=!0}));return i}};return O}function ct(e){var t=e.chart,n=e.logicalSize;if(n)return n;var r=t?t.element.getBoundingClientRect():{};return{width:r.width,height:r.height}}var st=[{key:\"FULL\",size:{width:550,height:450}},{key:\"MEDIUM\",size:{width:400,height:220}},{key:\"SMALL\",size:{width:300,height:150}},{key:\"XSMALL\",size:{width:150,height:75}}];function ft(e){var t=e.width,n=e.height,r=st.filter((function(e){return t>=e.size.width&&n>=e.size.height})).shift();return r?r.key:\"SPARK\"}var dt={left:\"right\",right:\"left\",top:\"bottom\",bottom:\"top\",near:\"far\",far:\"near\"};function pt(e){var t=e.orientation,n=e.dock,r=e.btt,o=e.rtl,i=\"horizontal\"===t?function(e){return\"bottom\"===e||\"near\"===e?\"bottom\":\"top\"}(n):function(e,t){var n=\"left\"===e||\"near\"===e?\"left\":\"right\";return t?dt[n]:n}(n,o),a=function(e,t,n){return\"vertical\"===e?t?\"bottom\":\"top\":n?\"right\":\"left\"}(t,r,o);return{current:i,opposite:dt[i],start:a,end:dt[a]}}function ht(e){var n=e.chart,r=e.layoutService,o=e.config,i=void 0===o?{}:o,a=i.logicalSize,l=void 0!==a&&a,u=i.rtl,c=void 0!==u&&u,s={chart:{size:void 0,mode:void 0},x:{dock:void 0,opposite:void 0,size:void 0},y:{dock:void 0,opposite:void 0,size:void 0}},f={type:\"x-y\",config:t({},i),meta:s,update:function(e){s.chart.size={width:e.width,height:e.height},s.chart.mode=ft(e);var t=pt({orientation:\"horizontal\",dock:r.getLayoutValue(\"xAxis.dock\"),btt:!1,rtl:c}),n=t.current,o=t.opposite;s.x.dock=n,s.x.opposite=o,s.x.size=e.width;var i=pt({orientation:\"vertical\",dock:r.getLayoutValue(\"yAxis.dock\"),btt:!0,rtl:c}),a=i.current,l=i.opposite;s.y.dock=a,s.y.opposite=l,s.y.size=e.height}};return f.update(ct({chart:n,logicalSize:l})),f}var mt=\"vertical\",vt=\"horizontal\";function yt(e){var n=e.chart,r=e.layoutService,o=e.config,i=void 0===o?{}:o,a=e.typeConfig,l=void 0===a?{}:a,u=i.logicalSize,c=void 0!==u&&u,s=i.rtl,f=void 0!==s&&s,d=l.fallback===mt?mt:vt,p=!!l.invert,h=l.measureAxes||[{ref:\"measureAxis\",name:\"minor\"}],m={chart:{orientation:void 0,size:void 0,mode:void 0},major:{orientation:void 0,dock:void 0,opposite:void 0,size:void 0}},v={type:\"major-minor\",config:t({},i),meta:m,update:function(e){m.chart.orientation=r.getLayoutValue(\"orientation\",d),m.chart.size={width:e.width,height:e.height},m.chart.mode=ft(e),m.major.orientation=function(e){var t=e.layoutService,n=e.chartOrientation,r=e.invert;return t.meta.isContinuous?vt:r?n===mt?vt:mt:n}({layoutService:r,chartOrientation:m.chart.orientation,invert:p});var t=pt({orientation:m.major.orientation,dock:r.getLayoutValue(\"dimensionAxis.dock\"),btt:!1,rtl:f}),n=t.current,o=t.opposite;m.major.dock=n,m.major.opposite=o,m.major.size=m.major.orientation===mt?e.height:e.width,h.forEach((function(t){var n={};n.orientation=m.major.orientation===mt?vt:mt;var o=pt({orientation:n.orientation,dock:r.getLayoutValue(\"\".concat(t.ref,\".dock\")),btt:!0,rtl:f}),i=o.current,a=o.opposite,l=o.start,u=o.end;n.dock=i,n.opposite=a,n.start=l,n.end=u,n.size=n.orientation===mt?e.height:e.width,m[t.name]=n}))}};return v.update(ct({chart:n,logicalSize:c})),v}function gt(e){var t=e.chart,n=e.layoutService,r=e.config,o=void 0===r?{}:r,i=e.typeConfig,a=void 0===i?{}:i;return(\"x-y\"===a.type?ht:yt)({chart:t,layoutService:n,config:o,typeConfig:a})}function bt(e,t,n){if(void 0===e||void 0===t)return n;for(var r=t.split(\".\"),o=e,i=0;i<r.length;++i){var a=r[i];if(void 0===o[a])return n;o=o[a]}return o}var xt=[\"__proto__\",\"constructor\"];function qt(e,t,n){if(void 0!==e&&void 0!==t){var r=t.split(\".\"),o=r[r.length-1];if(!xt.some((function(e){return r.includes(e)}))){for(var i=e,a=0;a<r.length-1;++a){var l=r[a];void 0===i[l]&&(i[l]=Number.isNaN(+r[a+1])?{}:[]),i=i[l]}void 0!==n?i[o]=n:delete i[o]}}}function wt(){var e={};return{get:function(t){return e[t]},set:function(t,n){return e[t]=n,n},has:function(t){return t in e},remove:function(t){delete e[t]},empty:function(){e={}}}}function Mt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){return e},n=wt();return function(r){var o=t(r);return n.has(o)?n.get(o):n.set(o,e(r))}}function kt(e){var n=t({},e),r={},o={},i=!1,a={get:function(e){return n[e]},set:function(e,t){var a=n[e];!i&&r[e]?n[e]=r[e](t,a):n[e]=t,!i&&o[e]&&o[e](n[e],a)},preventSet:function(e,t){i=!0,a.set(e,t),i=!1},intercept:function(e,t){r[e]=t},onChanged:function(e,t){o[e]=t}};return a}function St(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50;return function(){for(var r=this,o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];var l=function(){return e.apply(r,i)};clearTimeout(t),t=setTimeout(l,n)}}function Ct(e){var t,n,r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,i=0;return function(){t=this;for(var a=arguments.length,l=new Array(a),u=0;u<a;u++)l[u]=arguments[u];n=l;var c=Date.now()-i,s=function(){i=Date.now(),r=0,e.apply(t,n)};r||(c>=o?s():r=setTimeout(s,o-c))}}var Dt={ERROR_CODES:[7005],DIMENSION:\"qDimensionInfo\",MEASURE:\"qMeasureInfo\"},It=function(e,t){return e[t].reduce((function(e,t,n){var r;return(r=t,Dt.ERROR_CODES.some((function(e){var t;return e===(null===(t=r.qError)||void 0===t?void 0:t.qErrorCode)})))?e.filtered.push(n):e.reduced.push(t),e}),{reduced:[],filtered:[]})};function Ot(e){var t;return((null==e||null===(t=e.qHyperCube)||void 0===t?void 0:t.qDimensionInfo)||[]).map((function(e){var t,n=null===(t=e.qCardinalities)||void 0===t?void 0:t.qHypercubeCardinal;if(n)return n;var r=e.qStateCounts||{},o=r.qLocked,i=void 0===o?0:o,a=r.qOption,l=void 0===a?0:a,u=r.qSelected;return i+l+(void 0===u?0:u)}))}function Et(e){switch(e.qHyperCube.qMode){case\"S\":return function(e){var t=e.qHyperCube.qSize;return{refs:{dataPages:\"qHyperCube.qDataPages\"},size:{x:t.qcx,y:t.qcy,dimensions:Ot(e)}}}(e);case\"K\":return function(e){var t=Ot(e);return{refs:{dataPages:\"qHyperCube.qStackedDataPages\"},size:{x:e.qHyperCube.qSize.qcx,y:t[0],dimensions:t}}}(e);case\"T\":return function(e){var t=Ot(e);return{refs:{dataPages:\"qHyperCube.qTreeDataPages\"},size:{x:e.qHyperCube.qSize.qcx,y:t[0],dimensions:t}}}(e);default:throw new Error(\"Mode not supported\")}}function At(e){var n=e.source,r=e.metaAdditionsFn,o=e.experimental,i=void 0===o?{filter:!1}:o,a=w(!0,{},n),l=i.filter?function(e){var t=e.qHyperCube,n=It(t,Dt.DIMENSION),r=n.reduced,o=n.filtered;t[Dt.DIMENSION]=r;var i=It(t,Dt.MEASURE),a=i.reduced,l=i.filtered;return t[Dt.MEASURE]=a,{dimensions:o,measures:l}}(a):{dimensions:[],measures:[]},u=Et(a),c=function(){var e=function(e){var n=e.layout,r=e.additionsFn,o=void 0===r?function(){return{}}:r,i=e.additionsProps,a=void 0===i?{}:i,l=n.qHyperCube,u=l.qDimensionInfo,c=l.qMeasureInfo,s=l.qMode,f=u.length,d=c.length,p=t({mode:{S:\"S\"===s,P:\"P\"===s,K:\"K\"===s,T:\"T\"===s},dimensionCount:f,measureCount:d,hasMultipleDimensions:f>1,hasMultipleMeasures:d>1,isOneDimensional:1===f,isTwoDimensional:2===f},a);return t(t({},p),o({layout:n,meta:p}))}({layout:a,additionsFn:r,additionsProps:{size:u.size}});return e.filteredFields=l,e},s={refs:t({},u.refs),meta:c(),getLayout:function(){return a},getLayoutValue:function(e,t){return bt(a,e,t)},setLayoutValue:function(e,t){qt(a,e,t),u=Et(a),s.meta=c()},getHyperCube:function(){return a.qHyperCube},getHyperCubeValue:function(e,t){return bt(a.qHyperCube,e,t)},setHyperCubeValue:function(e,t){qt(a.qHyperCube,e,t),u=Et(a),s.meta=c()},getDataPages:function(){return bt(a,u.refs.dataPages)},setDataPages:function(e){qt(a,u.refs.dataPages,e),s.meta=c()}};return s}function Nt(e){var t=e.originalArray,n=e.newArray,r=e.matchKey;return Array.isArray(t)&&t.length?(n.forEach((function(e){var n=-1;t.some((function(t,o){return t[r]&&t[r]===e[r]&&(n=o),n})),n>-1?t[n]=e:t.push(e)})),t):n}function Lt(e){var o=e.picassoInstance,a=e.plugins,l=e.pluginArgs,s=void 0===l?{}:l,f={initialized:!1,definitions:[]};return{initialize:function(){return i(n().mark((function e(){var l,u,d,p;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!f.initialized){e.next=2;break}return e.abrupt(\"return\");case 2:return u=Promise.all(a.filter((function(e){return\"custom-component\"===e.info.type})).map(function(){var e=i(n().mark((function e(i){var a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i.info.componentName){e.next=2;break}throw new Error(\"plugin-service: Custom component is missing componentName\");case 2:return e.next=4,i.fn(t({},s));case 4:if(\"object\"===r(a=e.sent)){e.next=7;break}throw new Error(\"plugin-service: Custom component needs to be an object\");case 7:o.component(i.info.componentName,a);case 8:case\"end\":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())),d=Promise.all(a.filter((function(e){return\"component-definition\"===e.info.type})).map((function(e){return e.fn(t({},s))}))),e.next=6,Promise.all([u,d]);case 6:p=e.sent,f.initialized=!0,(l=f.definitions).push.apply(l,c(p[1]));case 9:case\"end\":return e.stop()}}),e)})))()},extendComponents:function(e){return f.initialized?(f.definitions.filter(Boolean).forEach((function(t){var n=u(e.filter((function(e){return e.key&&e.key===t.key})),1)[0];if(n){var o=w(!0,{},n.brush);w(!0,n,t),t.brush&&(n.brush=function(e,t){return\"object\"===r(e)&&Object.keys(e).length?(Array.isArray(t.consume)&&(e.consume=Nt({originalArray:e.consume,newArray:t.consume,matchKey:\"context\"})),Array.isArray(t.trigger)&&(e.trigger=Nt({originalArray:e.trigger,newArray:t.trigger,matchKey:\"on\"})),e):t}(o,t.brush))}else e.push(t)})),e):e}}}function Tt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Pt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Tt(Object(n),!0).forEach((function(t){jt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Tt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function jt(e,t,n){return(t=function(e){var t=function(e,t){if(\"object\"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||\"default\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ft=Object.prototype.hasOwnProperty,Ht=Object.prototype.toString,Rt=Object.defineProperty,zt=Object.getOwnPropertyDescriptor,Vt=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===Ht.call(e)},_t=function(e){if(!e||\"[object Object]\"!==Ht.call(e))return!1;var t,n=Ft.call(e,\"constructor\"),r=e.constructor&&e.constructor.prototype&&Ft.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!r)return!1;for(t in e);return void 0===t||Ft.call(e,t)},Bt=function(e,t){Rt&&\"__proto__\"===t.name?Rt(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},Yt=function(e,t){if(\"__proto__\"===t){if(!Ft.call(e,t))return;if(zt)return zt(e,t).value}return e[t]},$t=function e(){var t,n,r,o,i,a,l=arguments[0],u=1,c=arguments.length,s=!1;for(\"boolean\"==typeof l&&(s=l,l=arguments[1]||{},u=2),(null==l||\"object\"!=typeof l&&\"function\"!=typeof l)&&(l={});u<c;++u)if(null!=(t=arguments[u]))for(n in t)r=Yt(l,n),l!==(o=Yt(t,n))&&(s&&o&&(_t(o)||(i=Vt(o)))?(i?(i=!1,a=r&&Vt(r)?r:[]):a=r&&_t(r)?r:{},Bt(l,{name:n,newValue:e(s,a,o)})):void 0!==o&&Bt(l,{name:n,newValue:o}));return l};function Ut(e,t,n,r){if(!e)return-1;const o=n.cache,i=e.origin?e.origin():null;i&&(e=i);let a=o.fields.indexOf(e),l=-1,u=-1;if(-1===a)for(let t=0;t<o.wrappedFields.length;t++)if(u=o.wrappedFields[t].attrDims.map((e=>e.instance)).indexOf(e),l=o.wrappedFields[t].attrExps.map((e=>e.instance)).indexOf(e),-1!==u||-1!==l){a=t;break}if(Array.isArray(r)&&r.some(((e,t)=>e!==t))){const e=r.indexOf(a);-1!==e&&(a=e)}return a-=t.qArea.qLeft,a<0||a>=t.qArea.qWidth?-1:u>=0?e=>e[a].qAttrDims.qValues[u]:l>=0?e=>e[a].qAttrExps.qValues[l]:e=>e[a]}function Kt(e,t,n){let{key:r}=n;const o={value:\"function\"==typeof e.value?e.value(t):void 0!==e.value?e.value:t};return o.label=\"function\"==typeof e.label?e.label(t):void 0!==e.label?String(e.label):String(o.value),e.field&&(o.source={key:r,field:e.field.key()}),o}function Gt(e){let{cache:t,f:n,mainCell:r,p:o,prop:i,page:a,rowIdx:l,row:u,sourceKey:c,target:s,targetProp:f,columnOrder:d}=e,p=r;if(o.field&&o.field!==n){const e=Ut(o.field,a,{cache:t},d);if(-1===e)return;p=$t({qRow:l},e(u))}s[f]=Kt(o,p,{key:c})}function Wt(e,t,n,r){const o=Array.isArray(e)?e:[e];let i=[];for(let e=0;e<o.length;e++)if(void 0!==o[e].field){const a=t.raw(),l=t.key(),u=\"object\"==typeof o[e].field?o[e].field:t.field(o[e].field),{props:c,main:s}=r.normalizeConfig(o[e],t),f=Object.keys(c),d=!!o[e].trackBy,p=typeof o[e].trackBy,h={},m=[],v=[];for(let t=0;t<a.qDataPages.length;t++){const i=Ut(u,a.qDataPages[t],{cache:n},a.qColumnOrder);if(-1!==i)for(let y=0;y<a.qDataPages[t].qMatrix.length;y++){const g=a.qDataPages[t].qArea.qTop+y,b=$t({qRow:g},i(a.qDataPages[t].qMatrix[y])),x=Kt(s,b,{key:l});if(!(s.filter&&!s.filter(b))){for(let e=0;e<f.length;e++){const r=c[f[e]];let o=r.fields||[r];r.fields&&(x[f[e]]=[]);for(let i=0;i<o.length;i++)Gt({cache:n,f:u,mainCell:b,p:o[i],prop:f[e],props:c,page:a.qDataPages[t],rowIdx:g,row:a.qDataPages[t].qMatrix[y],sourceKey:l,target:r.fields?x[f[e]]:x,targetProp:r.fields?i:f[e],columnOrder:a.qColumnOrder});if(r.fields){const t=x[f[e]].map((e=>e.value)),n=x[f[e]].map((e=>e.label));x[f[e]]={value:\"function\"==typeof r.value?r.value(t):void 0!==r.value?r.value:t,label:\"function\"==typeof r.label?r.label(n):void 0!==r.label?String(r.label):String(x[f[e]].value)}}}d&&r.track({cfg:o[e],itemData:b,obj:x,target:m,tracker:h,trackType:p}),v.push(x)}}}const y=d?r.collect(m,{main:s,propsArr:f,props:c}):v;i=[...i,...y]}return i}function Xt(e){var t=0,n=e.children,r=n&&n.length;if(r)for(;--r>=0;)t+=n[r].value;else t=1;e.value=t}function Zt(e,t){e instanceof Map?(e=[void 0,e],void 0===t&&(t=Qt)):void 0===t&&(t=Jt);for(var n,r,o,i,a,l=new nn(e),u=[l];n=u.pop();)if((o=t(n.data))&&(a=(o=Array.from(o)).length))for(n.children=o,i=a-1;i>=0;--i)u.push(r=o[i]=new nn(o[i])),r.parent=n,r.depth=n.depth+1;return l.eachBefore(tn)}function Jt(e){return e.children}function Qt(e){return Array.isArray(e)?e[1]:null}function en(e){void 0!==e.data.value&&(e.value=e.data.value),e.data=e.data.data}function tn(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function nn(e){this.data=e,this.depth=this.height=0,this.parent=null}function rn(e){return null==e?null:function(e){if(\"function\"!=typeof e)throw new Error;return e}(e)}nn.prototype=Zt.prototype={constructor:nn,count:function(){return this.eachAfter(Xt)},each:function(e,t){let n=-1;for(const r of this)e.call(t,r,++n,this);return this},eachAfter:function(e,t){for(var n,r,o,i=this,a=[i],l=[],u=-1;i=a.pop();)if(l.push(i),n=i.children)for(r=0,o=n.length;r<o;++r)a.push(n[r]);for(;i=l.pop();)e.call(t,i,++u,this);return this},eachBefore:function(e,t){for(var n,r,o=this,i=[o],a=-1;o=i.pop();)if(e.call(t,o,++a,this),n=o.children)for(r=n.length-1;r>=0;--r)i.push(n[r]);return this},find:function(e,t){let n=-1;for(const r of this)if(e.call(t,r,++n,this))return r},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,r=t.children,o=r&&r.length;--o>=0;)n+=r[o].value;t.value=n}))},sort:function(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))},path:function(e){for(var t=this,n=function(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),o=null;e=n.pop(),t=r.pop();for(;e===t;)o=e,e=n.pop(),t=r.pop();return o}(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var o=r.length;e!==n;)r.splice(o,0,e),e=e.parent;return r},ancestors:function(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t},descendants:function(){return Array.from(this)},leaves:function(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e},links:function(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t},copy:function(){return Zt(this).eachBefore(en)},[Symbol.iterator]:function*(){var e,t,n,r,o=this,i=[o];do{for(e=i.reverse(),i=[];o=e.pop();)if(yield o,t=o.children)for(n=0,r=t.length;n<r;++n)i.push(t[n])}while(i.length)}};var on={depth:-1},an={},ln={};function un(e){return e.id}function cn(e){return e.parentId}function sn(){var e,t=un,n=cn;function r(r){var o,i,a,l,u,c,s,f,d=Array.from(r),p=t,h=n,m=new Map;if(null!=e){const t=d.map(((t,n)=>function(e){let t=(e=`${e}`).length;dn(e,t-1)&&!dn(e,t-2)&&(e=e.slice(0,-1));return\"/\"===e[0]?e:`/${e}`}(e(t,n,r)))),n=t.map(fn),o=new Set(t).add(\"\");for(const e of n)o.has(e)||(o.add(e),t.push(e),n.push(fn(e)),d.push(ln));p=(e,n)=>t[n],h=(e,t)=>n[t]}for(a=0,o=d.length;a<o;++a)i=d[a],c=d[a]=new nn(i),null!=(s=p(i,a,r))&&(s+=\"\")&&(f=c.id=s,m.set(f,m.has(f)?an:c)),null!=(s=h(i,a,r))&&(s+=\"\")&&(c.parent=s);for(a=0;a<o;++a)if(s=(c=d[a]).parent){if(!(u=m.get(s)))throw new Error(\"missing: \"+s);if(u===an)throw new Error(\"ambiguous: \"+s);u.children?u.children.push(c):u.children=[c],c.parent=u}else{if(l)throw new Error(\"multiple roots\");l=c}if(!l)throw new Error(\"no root\");if(null!=e){for(;l.data===ln&&1===l.children.length;)l=l.children[0],--o;for(let e=d.length-1;e>=0&&(c=d[e],c.data===ln);--e)c.data=null}if(l.parent=on,l.eachBefore((function(e){e.depth=e.parent.depth+1,--o})).eachBefore(tn),l.parent=null,o>0)throw new Error(\"cycle\");return l}return r.id=function(e){return arguments.length?(t=rn(e),r):t},r.parentId=function(e){return arguments.length?(n=rn(e),r):n},r.path=function(t){return arguments.length?(e=rn(t),r):e},r}function fn(e){let t=e.length;if(t<2)return\"\";for(;--t>1&&!dn(e,t););return e.slice(0,t)}function dn(e,t){if(\"/\"===e[t]){let n=0;for(;t>0&&\"\\\\\"===e[--t];)++n;if(0==(1&n))return!0}return!1}function pn(e,t){\"/\"===e.charAt(0)&&(e=e.substring(1));const n=e.split(\"/\");let r,o=t;for(let e=0;e<n.length;e++){if(\"*\"===n[e]&&Array.isArray(o)){const t=[];r=n.slice(e+1).join(\"/\");for(let e=0;e<o.length;e++){let n=pn(r,o[e]);Array.isArray(n)?t.push(...n):t.push(n)}return t}if(!n[e]&&Array.isArray(o)){const t=new Array(o.length);r=n.slice(e+1).join(\"/\");for(let e=0;e<o.length;e++)t[e]=pn(r,o[e]);return t}n[e]in o&&(o=o[n[e]])}return o}function hn(e,t,n){let r=[];if(!e||!e.length)return r;if(t<=0){const t=n>=0?[e[n]]:e;r=[...r,...t]}else for(let o=0;o<e.length;o++)e[o].children&&e[o].children.length&&(r=[...r,...hn(e[o].children,t-1,n)]);return r}function mn(e,t,n){if(e===t)return e=>e;if(e>t){const n=Math.max(0,Math.min(100,e-t));return e=>{let t=e;for(let e=0;e<n;++e)t=t.parent;return t}}if(t>e){const r=Math.max(0,Math.min(100,t-e));return e=>hn(e.children,r-1,n)}return!1}function vn(e,t){let{cache:n}=t;if(\"number\"==typeof e)return n.fields[e];const r=n.allFields;if(\"function\"==typeof e){for(let t=0;t<r.length;t++)if(e(r[t]))return r[t];return!1}if(\"string\"==typeof e){for(let t=0;t<r.length;t++)if(r[t].key()===e||r[t].title()===e)return r[t]}else if(e&&-1!==r.indexOf(e))return e;throw Error(\"Field not found: \".concat(e))}const yn=/^qDimensionInfo(?:\\/(\\d+))?/,gn=/^\\/?qMeasureInfo\\/(\\d+)/,bn=/\\/qAttrExprInfo\\/(\\d+)/,xn=/\\/qAttrDimInfo\\/(\\d+)/;function qn(e){return(e.qColumnOrder&&e.qColumnOrder.length?e.qColumnOrder:e.qDimensionInfo.map(((e,t)=>t))).filter((t=>t<e.qDimensionInfo.length))}function wn(e,t){let{cube:n}=t;if(!e)return-1;let r=e.origin&&e.origin()?e.origin().key():e.key(),o=!1,i=-1,a=-1,l=-1,u=-1,c=-1,s=-1,f=r;const d=n.qEffectiveInterColumnSortOrder,p=qn(n);return yn.test(f)&&(o=!0,i=+yn.exec(f)[1],f=r.replace(yn,\"\")),gn.test(f)&&(\"K\"===n.qMode?c=+gn.exec(f)[1]:d&&-1!==d.indexOf(-1)?(c=+gn.exec(f)[1],s=0):s=+gn.exec(f)[1],f=f.replace(gn,\"\")),f&&(xn.exec(f)?l=+xn.exec(f)[1]:bn.exec(f)&&(a=+bn.exec(f)[1])),u=o?\"S\"===n.qMode?p[i]:d?d.indexOf(i):i:d&&-1!==d.indexOf(-1)?d.indexOf(-1):n.qDimensionInfo.length-(\"K\"===n.qMode?0:1),{fieldDepth:u+1,pseudoMeasureIndex:c,measureIdx:s,attrDimIdx:l,attrIdx:a}}function Mn(e,t){let n,r,o=mn(e.fieldDepth,t.fieldDepth,t.pseudoMeasureIndex);return n=t.measureIdx>=0?e=>e.data.qValues[t.measureIdx]:e=>e.data,t.attrDimIdx>=0?r=e=>{var n;return null==e||null===(n=e.qAttrDims)||void 0===n?void 0:n.qValues[t.attrDimIdx]}:t.attrIdx>=0&&(r=e=>{var n;return null==e||null===(n=e.qAttrExps)||void 0===n?void 0:n.qValues[t.attrIdx]}),{nodeFn:o,attrFn:r,valueFn:n}}function kn(e,t,n){let{key:r}=n;const o={value:\"function\"==typeof e.value?e.value(t):void 0!==e.value?e.value:t};return o.label=\"function\"==typeof e.label?e.label(t):void 0!==e.label?String(e.label):String(o.value),e.field&&(o.source={key:r,field:e.field.key()}),o}function Sn(e){let{propsArr:t,props:n,item:r,itemData:o,ret:i,sourceKey:a}=e;for(let e=0;e<t.length;e++){const l=n[t[e]],u=l.fields||[l];let c,s;l.fields&&(c=[],s=[]);for(let n=0;n<u.length;n++){const f=u[n];let d,p,h,m,v,y;if(\"primitive\"===f.type?(h=f.value,y=String(f.value)):(\"function\"==typeof f.value&&(d=e=>f.value(e,r)),\"function\"==typeof f.label&&(p=e=>f.label(e,r)),f.accessor?(m=f.accessor(r),Array.isArray(m)?(v=m.map(f.valueAccessor),f.attrAccessor&&(v=v.map(f.attrAccessor)),d&&(h=v.map(d),d=null),p&&(y=v.map(p),p=null),h=f.reduce?f.reduce(h):h,y=f.reduceLabel?f.reduceLabel(y,h):String(h)):(h=f.attrAccessor?f.attrAccessor(f.valueAccessor(m)):f.valueAccessor(m),y=h)):(h=o,y=o)),l.fields){const e=d?d(h):h;c.push(e),s.push(p&&null!=y?p(y):null!=y?y:String(e))}else{const n=d?d(h):h;i[t[e]]={value:n,label:p?p(y):null!=y?y:String(n)},f.field&&(i[t[e]].source={field:f.field.key(),key:a})}}c&&(i[t[e]]={value:\"function\"==typeof l.value?l.value(c,r):c,label:\"function\"==typeof l.label?l.label(s,r):s})}}const Cn=(e,t,n)=>{const r=\"K\"===e.qMode?\"/qStackedDataPages/*/qData\":\"/qTreeDataPages/*\",o=\"K\"===e.qMode?\"qSubNodes\":\"qNodes\",i=pn(r,e);return i&&i[0]?(t.tree=Zt(i[0],n.children||(e=>e[o])),t.tree):null};function Dn(e){const t=e.raw().qDataPages.length?e.raw().qDataPages[0].qMatrix:[],n=function(e){const t=e.raw().qColumnOrder,n=e.fields();return t&&t.length===n.length?t:n.map(((e,t)=>t))}(e),r=e.fields(),o=e.fields().filter((e=>\"dimension\"===e.type())).map((e=>n.indexOf(r.indexOf(e)))),i=e.fields().filter((e=>\"measure\"===e.type())).map((e=>n.indexOf(r.indexOf(e)))),a={__root:{__id:\"__root\",qValues:[]}};for(let e=0;e<t.length;e++){const n=t[e];let r=\"__root\",u=!1;for(let e=0;e<o.length;e++){var l;const t=n[o[e]],i=\"\".concat(r,\"__\").concat(null!==(l=t.qElemNumber)&&void 0!==l?l:t.qElemNo);a[i]||(a[i]=Pt({__id:i,__parent:r,qValues:[]},t),u=!0),r=i}if(u)for(let e=0;e<i.length;e++){const t=n[i[e]];a[r].qValues.push(t)}}const u=Object.keys(a).map((e=>a[e]));return sn().id((e=>e.__id)).parentId((e=>e.__parent))(u)}const In=e=>{let{propsArr:t,props:n,cube:r,cache:o,itemDepthObject:i,f:a}=e;for(let e=0;e<t.length;e++){const l=n[t[e]],u=l.fields?l.fields:[l];for(let e=0;e<u.length;e++){const t=u[e];if(t.field!==a){const e=Mn(i,wn(t.field,{cube:r,cache:o}));t.accessor=e.nodeFn,t.valueAccessor=e.valueFn,t.attrAccessor=e.attrFn}}}};function On(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;const o=t.raw(),i=t.key(),a=\"S\"===o.qMode?Dn(t):Cn(o,n,e);if(!a)return null;const l=a.height,u=[];for(let i=0;i<=l;i++){let a=null;if(i>0)if(\"S\"===o.qMode){let e=qn(o)[i-1];a=n.fields[e]}else{let e=o.qEffectiveInterColumnSortOrder[i-1];i>o.qEffectiveInterColumnSortOrder.length&&(e=o.qDimensionInfo.length),a=n.fields[e]}const{props:l,main:c}=r.normalizeConfig(Pt(Pt({},e),{},{field:a?a.key():void 0}),t),s=Object.keys(l);u[i]={propsArr:s,props:l,main:c};const f=a?wn(a,{cube:o,cache:n}):{fieldDepth:0};In({propsArr:s,props:l,cube:o,cache:n,itemDepthObject:f,f:a})}const c=a.copy(),s=c.descendants(),f=a.descendants();for(let e=0;e<f.length;e++){const t=u[f[e].depth].propsArr,n=u[f[e].depth].props,r=u[f[e].depth].main,o=s[e],a=o.data,l=kn(r,a,{key:i});Sn({propsArr:t,props:n,item:o,itemData:a,ret:l,sourceKey:i,isTree:!0}),f[e].data=l}return a}function En(e,t,n,r){const o=Array.isArray(e)?e:[e];let i=[];for(let a=0;a<o.length;a++)if(void 0!==o[a].field){const l=t.raw(),u=t.key();if(!Cn(l,n,e))continue;const c=\"object\"==typeof o[a].field?o[a].field:t.field(o[a].field),{props:s,main:f}=r.normalizeConfig(o[a],t),d=Object.keys(s),p=wn(c,{cube:l,cache:n}),{nodeFn:h,attrFn:m,valueFn:v}=Mn({fieldDepth:0},p);In({propsArr:d,props:s,cube:l,cache:n,itemDepthObject:p,f:c});const y=!!o[a].trackBy,g=typeof o[a].trackBy,b={},x=[],q=h(n.tree),w=[];for(let e=0;e<q.length;e++){const t=q[e],n=m?m(v(t)):v(t);if(f.filter&&!f.filter(n))continue;const i=kn(f,n,{key:u});Sn({propsArr:d,props:s,item:t,itemData:n,ret:i,sourceKey:u}),y&&r.track({cfg:o[a],itemData:n,obj:i,target:x,tracker:b,trackType:g}),w.push(i)}const M=y?r.collect(x,{main:f,propsArr:d,props:s}):w;i=[...i,...M]}return i}\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;var An,Nn,Ln=(An=function(e){\n/*! javascript-number-formatter - v1.1.11 - http://mottie.github.com/javascript-number-formatter/ * © ecava */\ne.exports=function(e,t){if(!e||isNaN(+t))return t;var n,r,o,i,a,l,u,c,s,f,d=e.length,p=e.search(/[0-9\\-\\+#]/),h=p>0?e.substring(0,p):\"\",m=e.split(\"\").reverse().join(\"\"),v=m.search(/[0-9\\-\\+#]/),y=d-v,g=e.substring(y,y+1),b=y+(\".\"===g||\",\"===g?1:0),x=v>0?e.substring(b,d):\"\";if(n=(t=\"-\"===(e=e.substring(p,b)).charAt(0)?-t:+t)<0?t=-t:0,o=(r=e.match(/[^\\d\\-\\+#]/g))&&r[r.length-1]||\".\",i=r&&r[1]&&r[0]||\",\",e=e.split(o),t=+(t=t.toFixed(e[1]&&e[1].length))+\"\",l=e[1]&&e[1].lastIndexOf(\"0\"),(!(c=t.split(\".\"))[1]||c[1]&&c[1].length<=l)&&(t=(+t).toFixed(l+1)),s=e[0].split(i),e[0]=s.join(\"\"),(a=e[0]&&e[0].indexOf(\"0\"))>-1)for(;c[0].length<e[0].length-a;)c[0]=\"0\"+c[0];else 0==+c[0]&&(c[0]=\"\");if((t=t.split(\".\"))[0]=c[0],u=s[1]&&s[s.length-1].length){for(m=\"\",y=(f=t[0]).length%u,d=f.length,b=0;b<d;b++)m+=f.charAt(b),!((b-y+1)%u)&&b<d-u&&(m+=i);t[0]=m}return t[1]=e[1]&&t[1]?o+t[1]:\"\",\"0\"!==(r=t.join(\"\"))&&\"\"!==r||(n=!1),h+(n?\"-\":\"\")+r+x}},An(Nn={exports:{}},Nn.exports),Nn.exports);function Tn(e){return e.replace(/[-[\\]/{}()*+?.\\\\^$|]/g,\"\\\\$&\")}const Pn={3:\"k\",6:\"M\",9:\"G\",12:\"T\",15:\"P\",18:\"E\",21:\"Z\",24:\"Y\",\"-3\":\"m\",\"-6\":\"μ\",\"-9\":\"n\",\"-12\":\"p\",\"-15\":\"f\",\"-18\":\"a\",\"-21\":\"z\",\"-24\":\"y\"},jn=/%\\)?$/,Fn=/^\\(r(0[2-9]|[12]\\d|3[0-6])\\)/i,Hn=/^\\(oct\\)/i,Rn=/^\\(dec\\)/i,zn=/^\\(hex\\)/i,Vn=/^\\(bin\\)/i,_n=/^\\(rom\\)/i,Bn=/^(\\(rom\\)|\\(bin\\)|\\(hex\\)|\\(dec\\)|\\(oct\\)|\\(r(0[2-9]|[12]\\d|3[0-6])\\))/i,Yn=/#|0/g;function $n(e,t,n,r){return e=e.toString(t),n[1]===n[1].toUpperCase()&&(e=e.toUpperCase()),e.length-e.indexOf(\".\")>10&&(e=e.slice(0,e.indexOf(\".\")+11)),e.replace(\".\",r||\".\")}function Un(e,t,n){let r;return Fn.test(t)?e=$n(e,Number(/\\d{2}/.exec(t)[0]),t,n):Hn.test(t)?e=$n(e,8,t,n):Rn.test(t)?e=$n(e,10,t,n):zn.test(t)?e=$n(e,16,t,n):Vn.test(t)?e=$n(e,2,t,n):_n.test(t)&&(r=\"\",e<0&&(r=\"-\",e=-e),0===(e=Math.floor(e))?e=\"0\":e<=5e5?(e=function(e,t){let n,r=\"\",o=Number(String(e).slice(-3)),i=(e-o)/1e3,a=[0,1,4,5,9,10,40,50,90,100,400,500,900].reverse(),l=[\"0\",\"I\",\"IV\",\"V\",\"IX\",\"X\",\"XL\",\"L\",\"XC\",\"C\",\"CD\",\"D\",\"CM\"].reverse();for(;o>0;)for(n=0;n<a.length;n++)if(a[n]<=o){r+=l[n],o-=a[n];break}for(n=0;n<i;n++)r=\"M\".concat(r);return t[1]!==t[1].toUpperCase()&&(r=r.toLowerCase()),r}(e,t),e=r+e):e=t+r+e.toExponential(0)),e}function Kn(e,t,n){const r=Tn(e);return n?r:new RegExp(r||\"\",t)}function Gn(e,t,n,r){let o,i,a,l,u,c,s,f,d,p=e.pattern;var h,m;r&&(e.abbreviate=!0),h=t,(m=n)&&(m=Tn(m)),h&&(h=Tn(h)),d=new RegExp(\"(?:[#0]+\".concat(h,\")?[#0]+(?:\").concat(m,\"[#0]+)?\")),a=p.match(d),a=a?a[0]:\"\",l=a?p.substr(0,p.indexOf(a)):p,u=a?p.substring(p.indexOf(a)+a.length):\"\",a||(a=p?\"#\":\"##########\"),t&&t===n&&(o=a.split(n),i=o.pop(),a=o.join(\"\")+n+i,t=\"\"),c=t,t=/,/.test(n)?\"¤\":\",\",c&&(a=a.replace(Kn(c,\"g\"),t)),s=n,n=\".\",s&&(a=a.replace(Kn(s,\"g\"),n)),f=a.match(/#/g),f=f?f.length:0;const v=p.split(s);let y;v[1]&&(y=v[1].match(Yn)),e.prefix=l||\"\",e.postfix=u||\"\",e.pattern=p,e.maxPrecision=y?y.length:2,e.percentage=jn.test(p),e.numericPattern=a||\"\",e.numericRegex=new RegExp(\"\".concat(Kn(t,null,!0),\"|\").concat(Kn(n,null,!0)),\"g\"),e.groupTemp=c,e.decTemp=s,e.t=t,e.d=n,e.temp=f}class Wn{constructor(e,t,n,r,o){this.localeInfo=e,this.pattern=t,this.thousandDelimiter=n||\",\",this.decimalDelimiter=r||\".\",this.type=o||\"numeric\",this.patternSeparator=\";\",this.abbreviations=function(e,t){if(!e||!e.qNumericalAbbreviation)return Pn;const n={};return e.qNumericalAbbreviation.split(t).forEach((e=>{let t=e.split(\":\");2===t.length&&(n[t[0]]=t[1])})),n}(e,this.patternSeparator),this.prepare()}clone(){const e=new Wn(this.localeInfo,this.pattern,this.thousandDelimiter,this.decimalDelimiter,this.type);return e.subtype=this.subtype,e}format(e,t,n,r){return this.prepare(t,n,r),this.formatValue(e)}prepare(e,t,n){let r;if(void 0===e&&(e=this.pattern),void 0===t&&(t=this.thousandDelimiter),void 0===n&&(n=this.decimalDelimiter),!e)return void(this._prepared={pattern:!1});this._prepared={positive:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"},negative:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"},zero:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"}},r=this._prepared,e=e.split(this.patternSeparator),r.positive.pattern=e[0],r.negative.pattern=e[1],r.zero.pattern=e[2],Bn.test(e[0])&&(r.positive.isFunctional=!0),e[1]?Bn.test(e[1])&&(r.negative.isFunctional=!0):r.negative=!1,e[2]?Bn.test(e[2])&&(r.zero.isFunctional=!0):r.zero=!1;const o=\"U\"===this.type;r.positive.isFunctional||Gn(r.positive,t,n,o),r.negative&&!r.negative.isFunctional&&Gn(r.negative,t,n,o),r.zero&&!r.zero.isFunctional&&Gn(r.zero,t,n,o)}formatValue(e){let t,n,r,o,i,a,l,u,c,s=this._prepared,f=\"\",d=\"\",p=e;if(isNaN(e))return\"\".concat(p);if(e=+e,!1===s.pattern)return e.toString();if(0===e&&s.zero)return s=s.zero,s.pattern;if(e<0&&s.negative?(s=s.negative,e=-e):s=s.positive,i=s.d,a=s.t,s.isFunctional)e=Un(e,s.pattern,i);else{if(s.percentage&&(e*=100),s.abbreviate){const t=Object.keys(this.abbreviations).map((e=>parseInt(e,10))).sort(((e,t)=>e-t));let r,o,i=t[0];for(l=0,n=Number(Number(e).toExponential().split(\"e\")[1]);i<=n&&l<t.length;)l++,i=t[l];l>0&&(r=t[l-1]),r&&n>0&&r>0?o=r:(n<0&&r<0||!r)&&(i<0&&i-n<=s.maxPrecision?o=i:r<=n&&!(i>0&&-n<=s.maxPrecision)&&(o=r)),o&&(f=this.abbreviations[o],e/=10**o)}if(r=Math.abs(e),t=s.temp,u=s.numericPattern,c=u.split(i)[1],\"I\"===this.type&&(e=Math.round(e)),o=e,c||\"#\"!==u.slice(-1)[0])if(r>=1e15||r>0&&r<=1e-14)e=r?r.toExponential(15).replace(/\\.?0+(?=e)/,\"\"):\"0\";else{const t=Number(e.toFixed(Math.min(20,c?c.length:0)).split(\".\")[0]);let n=u.split(i)[0];if(n+=i,e=Ln(n,t)||\"0\",c){const t=Math.max(0,Math.min(14,c.length)),n=c.replace(/#+$/,\"\").length;let o=(\"I\"===this.type?0:r%1).toFixed(t).slice(2).replace(/0+$/,\"\");for(l=o.length;l<n;l++)o+=\"0\";o&&(e+=i+o)}else 0===t&&(o=0)}else if(r>=10**t||r<1||r<1e-4)0===e?e=\"0\":r<1e-4||r>=1e20?(e=(e=o.toExponential(Math.max(1,Math.min(14,t))-1)).replace(/\\.?0+(?=e)/,\"\"),d=\"\"):(e=e.toPrecision(Math.max(1,Math.min(14,t)))).indexOf(\".\")>=0&&(e=(e=e.replace(e.indexOf(\"e\")<0?/0+$/:/\\.?0+(?=e)/,\"\")).replace(\".\",i));else{for(u+=i,t=Math.max(0,Math.min(20,t-Math.ceil(Math.log(r)/Math.log(10)))),l=0;l<t;l++)u+=\"#\";e=Ln(u,e)}e=e.replace(s.numericRegex,(e=>e===a?s.groupTemp:e===i?s.decTemp:\"\")),o<0&&!/^-/.test(e)&&(e=\"-\".concat(e))}return s.prefix+e+d+f+s.postfix}static getStaticFormatter(){return{prepare(){},formatValue:e=>\"\".concat(e)}}}function Xn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{size:n=5e3,multipleArguments:r=!1,toKey:o=(e=>e)}=t;let i,a,l=Object.create(null),u=Object.create(null),c=0,s=0;return i=r?function(){return a=o(...arguments),i.has(a)?i.get(a):i.set(a,e(...arguments))}:t=>(a=o(t),i.has(a)?i.get(a):i.set(a,e(t))),i.set=(e,t)=>(c>=n&&(delete l[u[s]],delete u[s],c--,s++),l[e]=t,u[c]=e,c++,t),i.get=e=>l[e],i.has=e=>e in l,i.clear=()=>{l=Object.create(null),u=Object.create(null),c=0,s=0},i.size=()=>c,i}function Zn(e,t,n,r,o){const i=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return new Wn(...t)}(o,e,t,n,r),a=Xn(i.formatValue.bind(i),{toKey:e=>isNaN(e)?e:+e});function l(e){return a(e)}return l.format=function(e,t,n,r){return a.clear(),i.format(t,e,n,r)},l.pattern=function(e){return e&&(a.clear(),i.pattern=e,i.prepare()),i.pattern},l}const Jn=\"D\",Qn=\"T\",er=\"TS\",tr=\"IV\",nr=[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",\"Sunday\"],rr=[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sun\"],or=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],ir=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];function ar(e,t){for(let n=e.length;n<t;n++)e=\"0\".concat(e);return e}function lr(e){let t=e.toString().split(\".\");return t[1]?(t=Number(\"0.\".concat(t[1])),t):0}function ur(e,t){let n,r=function(e){const t=e,n=24*lr(t),r=60*lr(n),o=60*lr(r),i=1e3*lr(o);return{d:Math.floor(t),h:Math.floor(n),m:Math.floor(r),s:Math.floor(o),f:Math.round(i)}}(e),o=r.d,i=r.h,a=r.m,l=r.s,u=r.f,c=0;/w+|t+/gi.test(t)&&(n=new Date(Date.UTC(1899,11,30+Math.floor(e),0,0,Math.round(86400*(e-Math.floor(e))))),isNaN(n.getTime())&&(n=null)),/D+/gi.test(t)||(i+=24*o),/h+/gi.test(t)||(a+=60*i),/m+/gi.test(t)||(l+=60*a),/w+/gi.test(t)&&(c=n?n.getDay()-1:0,c<0&&(c=6));let s=\"\";return n&&(s=n.getUTCHours()>=12?\"pm\":\"am\"),{year:0,month:0,day:c,date:o,h:i,m:a,s:l,f:u,t:s}}class cr{constructor(e,t,n){const r=e||{};if(r.qCalendarStrings||(r.qCalendarStrings={qLongDayNames:nr,qDayNames:rr,qLongMonthNames:or,qMonthNames:ir}),this.localeInfo=r,this.locale_days=r.qCalendarStrings.qLongDayNames.slice(),this.locale_days_abbr=r.qCalendarStrings.qDayNames.slice(),this.locale_months=r.qCalendarStrings.qLongMonthNames.slice(),this.locale_months_abbr=r.qCalendarStrings.qMonthNames.slice(),!t){t={[Qn]:r.qTimeFmt||\"hh:mm:ss\",[Jn]:r.qDateFmt||\"YYYY-MM-DD\",[er]:r.qTimestampFmt||\"YYYY-MM-DD hh:mm:ss\"}[n]}this.pattern=t}clone(){const e=new cr(this.localeInfo,this.pattern);return e.subtype=this.subtype,e}format(e,t){t||(t=this.pattern?this.pattern:\"YYYY-MM-DD hh:mm:ss\"),t=t.replace(/\\[.+]|\\[|]/g,\"\");const n=/t+/gi.test(t);let r;e instanceof Date?r=function(e,t){let n=e.getUTCHours(),r=e.getUTCDay()-1;return t&&(n%=12,n||(n=12)),r<0&&(r=6),{year:e.getUTCFullYear(),month:e.getUTCMonth(),day:r,date:e.getUTCDate(),h:n,m:e.getUTCMinutes(),s:e.getUTCSeconds(),f:e.getUTCMilliseconds(),t:e.getUTCHours()>=12?\"pm\":\"am\"}}(e,n):(e<0&&(e=-e,t=\"-\".concat(t)),r=ur(e,t));const o=(i=this,a=r,{\"Y+|y+\":{Y:\"\".concat(Number(\"\".concat(a.year).slice(-2))),YY:ar(\"\".concat(a.year).slice(-2),2),YYY:ar(\"\".concat(a.year).slice(-3),3),def:e=>ar(\"\".concat(a.year),e.length)},\"M+\":{M:a.month+1,MM:ar(\"\".concat(a.month+1),2),MMM:i.locale_months_abbr[a.month],def:i.locale_months[a.month]},\"W+|w+\":{W:a.day,WW:ar(\"\".concat(a.day),2),WWW:i.locale_days_abbr[a.day],def:i.locale_days[a.day]},\"D+|d+\":{D:a.date,def:e=>ar(\"\".concat(a.date),e.length)},\"h+|H+\":{h:a.h,def:e=>ar(\"\".concat(a.h),e.length)},\"m+\":{m:a.m,def:e=>ar(\"\".concat(a.m),e.length)},\"s+|S+\":{s:a.s,def:e=>ar(\"\".concat(a.s),e.length)},\"f+|F+\":{def(e){let t=\"\".concat(a.f),n=e.length-t.length;if(n>0)for(let e=0;e<n;e++)t+=\"0\";else n<0&&(t=t.slice(0,e.length));return t}},\"t{1,2}|T{1,2}\":{def(e){let t=a.t;return e[0].toUpperCase()===e[0]&&(t=t.toUpperCase()),t=t.slice(0,e.length),t}}});var i,a;const l=[];for(const e in o)Object.prototype.hasOwnProperty.call(o,e)&&l.push(e);const u=new RegExp(l.join(\"|\"),\"g\");return t.replace(u,(e=>{let t,n,r;for(n in o)if(Object.prototype.hasOwnProperty.call(o,n)&&(t=new RegExp(n),t.test(e)))break;if(!t)return\"\";for(const t in o[n])if(t===e||t.toLowerCase()===e){r=o[n][t],void 0===r&&(r=o[n][t.toLowerCase()]);break}return void 0===r&&(r=o[n].def),\"function\"==typeof r&&(r=r(e)),r}))}}function sr(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return new cr(...t)}function fr(e){return new Date(Date.UTC(1899,11,30+Math.floor(e),0,0,0,Math.round(864e5*(e-Math.floor(e)))))}function dr(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"TS\",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=sr(n,e,t),o=Xn(r.format.bind(r),{toKey:e=>\"object\"==typeof e&&\"function\"==typeof e.getTime?e.getTime():e});function i(e){return t!==tr?fr(e):e}function a(e){return e=i(e),o(e)}return a.format=function(e,t){return o.clear(),t=i(t),r.format(t,e)},a.locale=function(n){return r=sr(n,e,t),o=Xn(r.format.bind(r),{toKey:e=>\"object\"==typeof e?e.getTime():e}),this},a.qtype=function(e){return void 0!==e&&(t=e,o.clear()),t},a}function pr(e,t){if(e&&e.qNumFormat&&-1!==[\"D\",\"T\",\"TS\",\"IV\"].indexOf(e.qNumFormat.qType))return dr(e.qNumFormat.qFmt,e.qNumFormat.qType,t);let n=\"#\",r=t&&void 0!==t.qThousandSep?t.qThousandSep:\",\",o=t&&void 0!==t.qDecimalSep?t.qDecimalSep:\".\",i=\"U\",a=e&&!!e.qIsAutoFormat;return e&&e.qNumFormat?(n=e.qNumFormat.qFmt||n,r=e.qNumFormat.qThou||r,o=e.qNumFormat.qDec||o,i=e.qNumFormat.qType||i,a=a&&-1===[\"M\"].indexOf(e.qNumFormat.qType)):a=!0,(a||\"U\"===i)&&(n=\"#\".concat(o,\"##\"),i=\"U\"),Zn(n,r,o,i,t)}function hr(){let e,{meta:t,id:n,key:r,localeInfo:o,fieldExtractor:i,value:a,type:l,sourceField:u}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const c=a||(\"dimension\"===l?e=>null==e?void 0:e.qElemNo:e=>null==e?void 0:e.qValue),s=e=>(null==e?void 0:e.qText)||\"\",f=\"dimension\"===l?\"first\":\"avg\",d=pr(t,o),p=\"dimension\"===l?\"first\":(e,t)=>d(t),h={id:()=>n,key:()=>r,raw:()=>t,title:()=>t.qFallbackTitle||t.label,type:()=>l,origin:()=>u,items:()=>(e||(e=i(h)),e),min:()=>t.qMin,max:()=>t.qMax,value:c,label:s,reduce:f,reduceLabel:p,formatter:()=>d,tags:()=>t.qTags};return h}function mr(e,t,n,r,o){return(t[e]||[]).map(((t,i)=>{const a=\"\".concat(r?\"\".concat(r,\"/\"):\"\").concat(e,\"/\").concat(i),l={instance:hr($t({id:\"\".concat(n?\"\".concat(n,\"/\"):\"\").concat(a),key:a,meta:t},o))};return l.attrDims=mr(\"qAttrDimInfo\",t,n,a,$t({},o,{value:e=>null==e?void 0:e.qElemNo,type:\"dimension\"})),l.attrExps=mr(\"qAttrExprInfo\",t,n,a,$t({},o,{value:e=>null==e?void 0:e.qNum,type:\"measure\"})),l.measures=mr(\"qMeasureInfo\",t,n,a,$t({},o,{value:e=>null==e?void 0:e.qValue,type:\"measure\"})),l}))}function vr(){let{key:e,data:t,config:n={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const r={fields:[],wrappedFields:[],allFields:[],virtualFields:[]},o=t;if(!o)throw new Error('Missing \"data\" input');if(!o.qDimensionInfo)throw new Error('The \"data\" input is not recognized as a hypercube');const i=vr.util,a={cache:r,cube:o,localeInfo:n.localeInfo,fieldExtractor:null,pages:null,hierarchy:()=>null,virtualFields:n.virtualFields},l={key:()=>e,raw:()=>o,field:e=>vn(e,a),fields:()=>r.fields.slice(),extract:e=>a.extractor(e,l,r,i),hierarchy:e=>a.hierarchy(e,l,r,i),_cache:()=>r};\"K\"===o.qMode||\"T\"===o.qMode||!o.qMode&&o.qNodesOnDim?(a.extractor=En,a.hierarchy=On,a.pages=\"K\"===o.qMode?o.qStackedDataPages:o.qTreeDataPages):\"S\"===o.qMode?(a.extractor=Wt,a.pages=o.qDataPages,a.hierarchy=On):a.extractor=()=>[],a.fieldExtractor=e=>a.extractor({field:e},l,r,i);const u=\"S\"===o.qMode?e=>e.qElemNumber:void 0,c=\"S\"===o.qMode?e=>e.qNum:void 0;r.wrappedFields.push(...mr(\"qDimensionInfo\",o,e,\"\",$t({},a,{value:u,type:\"dimension\"}))),r.wrappedFields.push(...mr(\"qMeasureInfo\",o,e,\"\",$t({},a,{value:c,type:\"measure\"}))),r.fields=r.wrappedFields.map((e=>e.instance));const s=e=>{e.forEach((e=>{r.allFields.push(e.instance),s(e.measures),s(e.attrDims),s(e.attrExps)}))};return s(r.wrappedFields),(n.virtualFields||[]).forEach((t=>{const n=l.field(t.from),o=hr(Pt({meta:n.raw(),id:\"\".concat(e,\"/\").concat(t.key),sourceField:n,fieldExtractor:e=>a.extractor({field:e},l,r,i),key:t.key,type:n.type(),localeInfo:a.localeInfo,value:n.value},t.override||{}));r.virtualFields.push(o)})),r.allFields.push(...r.virtualFields),l}const yr=[[\"qHyperCube\",\"qHyperCubeDef\"],[\"qTreeData\",\"qTreeDataDef\"],[\"qDimensionInfo\",\"qDimensions\"],[\"qMeasureInfo\",\"qMeasures\"],[\"qAttrDimInfo\",\"qAttributeDimensions\"],[\"qAttrExprInfo\",\"qAttributeExpressions\"]],gr=/\\/qDimensionInfo(?:\\/(\\d+))?/,br=/\\/qMeasureInfo\\/(\\d+)/,xr=/\\/qAttrDimInfo\\/(\\d+)(?:\\/(\\d+))?/,qr=/\\/qAttrExprInfo\\/(\\d+)/,wr=/\\/?qHyperCube/,Mr=/\\/?qTreeData/,kr=e=>\"\".concat(e.substr(0,e.indexOf(\"/qHyperCubeDef\")+14)),Sr=e=>\"\".concat(e.substr(0,e.indexOf(\"/qTreeDataDef\")+13));function Cr(e,t){let n=e,r=-1,o=-1,i=\"\",a=e=>e;wr.test(e)?(i=\"\".concat(n.substr(0,n.indexOf(\"qHyperCube\")+10)),a=kr):Mr.test(e)&&(i=\"\".concat(n.substr(0,n.indexOf(\"qTreeData\")+9)),a=Sr);let l=!0;if(gr.test(e)&&(r=+gr.exec(e)[1]),br.test(e)&&(o=+br.exec(e)[1]),xr.test(e)){o=-1,r=0;const e=+xr.exec(n)[2];isNaN(e)||(r=e,n=n.replace(/\\/\\d+$/,\"\")),l=!1}if(qr.test(e)){const e=o;if(t){o=0;const a=pn(i,t);o+=(a.qMeasureInfo||[]).length,r>-1?(o=a.qDimensionInfo.slice(0,r).reduce(((e,t)=>e+t.qAttrExprInfo.length),o),r=-1):(o=a.qDimensionInfo.reduce(((e,t)=>e+t.qAttrExprInfo.length),o),o=a.qMeasureInfo.slice(0,e).reduce(((e,t)=>e+t.qAttrExprInfo.length),o)),o+=+qr.exec(n)[1]}else r>-1?(r=-1,o=+qr.exec(n)[1]):o+=+qr.exec(n)[1]+1}return yr.forEach((e=>{let[t,r]=e;n=n.replace(t,r)})),l&&(n=a(n)),n&&\"/\"!==n[0]&&(n=\"/\".concat(n)),{measureIdx:o,dimensionIdx:r,path:n}}function Dr(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;const r=t.byCells,o=t.primarySource,i=[],a={},l=e.isActive();let u=!1;if(e.brushes().forEach((e=>{const t=Cr(e.id,n);if(\"range\"===e.type&&t.measureIdx>-1&&t.dimensionIdx>-1){const n=e.brush.ranges();n.length&&(u=!0,a.multiRangeSelectTreeDataValues||(a.multiRangeSelectTreeDataValues={path:t.path,ranges:[]}),n.forEach((e=>a.multiRangeSelectTreeDataValues.ranges.push({qMeasureIx:t.measureIdx,qDimensionIx:t.dimensionIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!0}}))))}else{if(\"range\"===e.type&&t.measureIdx>-1){const n=e.brush.ranges();n.length&&(u=!0,a.rangeSelectHyperCubeValues||(a.rangeSelectHyperCubeValues={path:t.path,ranges:[]}),n.forEach((e=>a.rangeSelectHyperCubeValues.ranges.push({qMeasureIx:t.measureIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!0}}))))}if(\"range\"===e.type&&t.dimensionIdx>-1){const n=e.brush.ranges();n.length&&(u=!0,a.selectHyperCubeContinuousRange||(a.selectHyperCubeContinuousRange={path:t.path,ranges:[]}),n.forEach((e=>a.selectHyperCubeContinuousRange.ranges.push({qDimIx:t.dimensionIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!1}}))))}if(\"value\"===e.type&&t.dimensionIdx>-1)if(r)if(n&&n.qHyperCube&&(\"P\"===n.qHyperCube.qMode||\"T\"===n.qHyperCube.qMode||\"K\"===n.qHyperCube.qMode)){const r=n.qHyperCube,i=r.qNoOfLeftDims,l=r.qEffectiveInterColumnSortOrder.indexOf(t.dimensionIdx);if(a.selectPivotCells||(a.selectPivotCells={path:t.path,cells:[]}),e.id===o||!o){const n=e.brush.values().map((e=>+e)).filter((e=>!isNaN(e)));(0===i||l>=i)&&i>-1?n.forEach((e=>{a.selectPivotCells.cells.push({qType:\"T\",qCol:e,qRow:l-i})})):n.forEach((e=>{a.selectPivotCells.cells.push({qType:\"L\",qCol:t.dimensionIdx,qRow:e})})),u=!!a.selectPivotCells.cells.length}}else a.selectHyperCubeCells||(a.selectHyperCubeCells={path:t.path,cols:[]}),a.selectHyperCubeCells.cols.push(t.dimensionIdx),e.id!==o&&(o||a.selectHyperCubeCells.values)||(a.selectHyperCubeCells.values=e.brush.values().map((e=>+e)).filter((e=>!isNaN(e))),u=!!a.selectHyperCubeCells.values.length);else{const n=e.brush.values().map((e=>+e)).filter((e=>!isNaN(e)));u=!!n.length,i.push({params:[t.path,t.dimensionIdx,n,!1],method:\"selectHyperCubeValues\"})}}})),!u&&l)return[{method:\"resetMadeSelections\",params:[]}];var c;a.rangeSelectHyperCubeValues&&i.push({method:\"rangeSelectHyperCubeValues\",params:[a.rangeSelectHyperCubeValues.path,a.rangeSelectHyperCubeValues.ranges,[],null===(c=t.orMode)||void 0===c||c]});return a.selectHyperCubeContinuousRange&&i.push({method:\"selectHyperCubeContinuousRange\",params:[a.selectHyperCubeContinuousRange.path,a.selectHyperCubeContinuousRange.ranges]}),a.selectHyperCubeCells&&i.push({method:\"selectHyperCubeCells\",params:[a.selectHyperCubeCells.path,a.selectHyperCubeCells.values,a.selectHyperCubeCells.cols]}),a.selectPivotCells&&i.push({method:\"selectPivotCells\",params:[a.selectPivotCells.path,a.selectPivotCells.cells]}),a.multiRangeSelectTreeDataValues&&i.push({method:\"multiRangeSelectTreeDataValues\",params:[a.multiRangeSelectTreeDataValues.path,a.multiRangeSelectTreeDataValues.ranges]}),i}function Ir(e){vr.util=e.data(\"matrix\").util,e.data(\"q\",vr),e.formatter(\"q-number\",Zn),e.formatter(\"q-time\",dr)}function Or(e){var t=bt(e.layout||{},e.path.split(\"/\").join(\".\"));if(!t)return!1;var n=t.qIsOneAndOnlyOne;return void 0!==n&&n}function Er(e){var t,n,r,o=e.selections,i=e.picassoSelections,a=e.layout,l={lockedDimensions:[],singleSelectDimensions:[]};null!=o&&null!==(t=o.isModal)&&void 0!==t&&t.call(o)&&o.confirm(),i.layout(a);var u=(null!==(n=null==a?void 0:a.qHyperCube)&&void 0!==n?n:{}).qDimensionInfo,c=void 0===u?[]:u;return l.lockedDimensions=c.map((function(e){return!!e.qLocked})),l.singleSelectDimensions=c.map((function(e,t){return Or({layout:a,path:\"qHyperCube/qDimensionInfo/\".concat(t)})})),l.singleSelectIndex=function(e){var t,n=((null==e?void 0:e.qHyperCube)||{}).qDimensionInfo,r=void 0===n?[]:n;return null!==(t=r.map((function(e,t){var n;return!(e.qLocked||(null===(n=e.qCardinalities)||void 0===n?void 0:n.qHypercubeCardinal)<=1)&&t})).filter((function(e){return\"number\"==typeof e}))[0])&&void 0!==t?t:Math.max(r.length-1,0)}(a),l.canSelect=0===c.length||c.some((function(e){return!e.qLocked})),l.dimensionLocked=!(null===(r=c[0])||void 0===r||!r.qLocked),l}function Ar(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(null==e||!e.length)return!1;var t=e.filter((function(e){return\"object\"===r(e.data)&&Array.isArray(e.data.fields)})).every((function(e){return e.data.fields.every((function(e){var t=e.raw();return!(!t.qLocked&&t.qCardinal)}))}));return t}function Nr(e){var t=e.brush,n=e.colorField,r=e.legendAlias,o=e.useLegendCube,i=void 0!==o&&o;!n||/qAttrDimInfo/.test(n)?(t.removeKeyAlias(\"attrDim/qDimensionInfo/0\"),r&&t.removeKeyAlias(r),t.addKeyAlias(\"attrDim/qDimensionInfo/0\",\"qHyperCube/\".concat(n))):i&&t.addKeyAlias(r,\"qHyperCube/\".concat(n))}Ir.qBrushHelper=Dr,Ir.selections=Dr;var Lr=\"Enter\",Tr=\"Escape\",Pr=\"Esc\",jr=\"Shift\";function Fr(e){var t=e.brush,n=e.getConfig;return{interceptor:function(e){var r=t.brushes(),o=n(),i=o.allowSimultaneous,a=o.layout,l=void 0===a?{}:a;r.forEach((function(n){var r,o,a;(\"range\"===n.type||null!==(r=e[0])&&void 0!==r&&r.key&&(null===(o=e[0])||void 0===o?void 0:o.key)!==n.id&&0!==i.indexOf(null===(a=e[0])||void 0===a?void 0:a.key))&&t.clear([])}));var u=e.filter((function(e){return-2!==e.value}));if(u.length>1){var s=function(e){var t=e.layout,n=void 0===t?{}:t,r=e.values,o=void 0===r?[]:r;if(null==o||!o.length)return[];var i=Array.from(new Set(o.map((function(e){return e.key})))),a=[];return i.forEach((function(e){var t=Or({layout:n,path:e}),r=o.filter((function(t){return t.key===e})),i=t?[r.pop()]:r;a.push.apply(a,c(i))})),a.filter(Boolean)}({layout:l,values:u});return s}return u},rangeInterceptor:function(e){var r=t.brushes(),o=n().allowSimultaneous;return r.filter((function(e){return\"value\"===e.type})).length?(t.clear([]),e):(r.forEach((function(n){var r=n.id===e[0].key||o.includes(n.id)&&o.includes(e[0].key);\"range\"!==n.type||r||t.clear([])})),e)}}}var Hr=function e(t,n){return n[t]?e(t+1,n):t},Rr=function(e,t){var n=t.reduce((function(e,t){return e[t]=!0,e}),{});return e.reduce((function(e,t,r){var o=Hr(r,n);return n[o]=!0,e[r]=o,e}),{})};function zr(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.layout,n=e.filtered,r=void 0===n?{}:n,o=(null==t?void 0:t.qHyperCube)||{},i=o.qDimensionInfo,a=void 0===i?[]:i,l=o.qMeasureInfo,u=void 0===l?[]:l;return{dimensions:Rr(a,r.dimensions||[]),measures:Rr(u,r.measures||[])}}var Vr=\"selectHyperCubeValues\",_r=\"selectHyperCubeContinuousRange\";function Br(e){var t=e.selection,n=e.fieldMap,r=t.method,o=t.params;if(r===Vr){var i=n.dimensions[o[1]];void 0!==i&&(o[1]=i)}r===_r&&o[1].forEach((function(e){var t=n.dimensions[e.qDimIx];void 0!==t&&(e.qDimIx=t)}));return t}var Yr=[],$r=0,Ur=function(e){var t=Yr.filter((function(e){var t;return null===(t=e.selections)||void 0===t?void 0:t.isActive()}));t.length&&(e.key===Lr?t.forEach((function(e){return e.selections.confirm()})):e.key!==Tr&&e.key!==Pr||t.forEach((function(e){return e.selections.cancel()})))},Kr=function(){document.addEventListener(\"keyup\",Ur)},Gr=function(){document.removeEventListener(\"keyup\",Ur)},Wr=function(e,t){Object.keys(t).forEach((function(n){e.on(n,t[n])}))},Xr=function(e,t){Object.keys(t).forEach((function(n){e.removeListener(n,t[n])}))};function Zr(e,t,n){if(t&&void 0!==n&&\"selectHyperCubeContinuousRange\"===e.method){var r=e.params;if(r&&r[1]&&r[1][0]){var o=r[1][0],i=o.qDimIx,a=o.qRange;\"undefined\"!==i&&a&&!1===a.qMaxInclEq&&a.qMax>=n&&(a.qMaxInclEq=!0)}}}function Jr(e){var t=e.chart,n=e.document,r=e.selectionInfo,o=e.eventName,i=e.componentName,a=e.brushName,l=void 0===a?\"selection\":a,u=e.emit,c=void 0===u?\"rangeClear\":u,s=r.event===o,f=n.querySelector(\"[data-key='\".concat(i,\"-edge-0']\"));if(s||!f)return!1;var d=t.component(i);return!!d&&(d.emit(c),\"string\"==typeof l&&t.brush(l).clear(),d)}function Qr(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.eventName,i=void 0===o?\"discreteRange\":o,a=e.componentName,l=void 0===a?\"discrete-range-brush\":a,u=e.cleared;return Jr({selectionInfo:t,chart:n,document:r,eventName:void 0!==u&&u?void 0:i,componentName:l,emit:\"areaClear\",brushName:e.brushName})}function eo(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.eventName,i=void 0===o?\"continuousRange\":o,a=e.componentName,l=void 0===a?\"continuous-range-brush\":a,u=e.cleared;return Jr({selectionInfo:t,chart:n,document:r,eventName:void 0!==u&&u?void 0:i,componentName:l,brushName:e.brushName})}function to(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.componentName,i=void 0===o?\"minor-range-brush\":o,a=e.eventName,l=void 0===a?\"minorRange\":a,u=e.cleared,c=void 0!==u&&u,s=e.brushName,f=Jr({selectionInfo:t,chart:n,document:r,eventName:c?void 0:l,componentName:i,brushName:void 0!==s&&s});if(f){var d=f.settings.settings,p=d.scale,h=d.brush,m=n.scale(p).data().fields.map((function(e){return e.id()})),v=n.brush(h),y=v.brushes().filter((function(e){return\"range\"===e.type&&m.some((function(t){return t===e.id}))}));v&&y.length&&y.forEach((function(e){v.removeRanges(e.brush.ranges().map((function(t){return{key:e.id,range:t}})))}))}}function no(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.selections,i=e.eventName,a=void 0===i?\"xAxis\":i,l=e.cleared;Jr({selectionInfo:t,chart:n,document:r,eventName:void 0!==l&&l?void 0:a,componentName:\"\".concat(a,\"-range-brush\"),emit:\"areaClear\",brushName:!1})&&o.clear()}function ro(e){var t=e.chart,n=e.selectionInfo,r=e.selections,o=e.events,i=void 0===o?[\"tap\"]:o,a=e.brushNames,l=void 0===a?[]:a;if(n&&i.includes(n.event)){var u=n.currentComponent;n.previousComponent!==u&&(r.clear(),l.forEach((function(e){return t.brush(e).end()})))}}function oo(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.selections,i=e.eventName,a=void 0===i?\"legendRange\":i,l=e.componentName,u=void 0===l?\"legend-range-brush\":l,c=e.cleared,s=void 0!==c&&c,f=e.brushName;Jr({selectionInfo:t,chart:n,document:r,eventName:s?void 0:a,componentName:u,brushName:void 0!==f&&f})&&o.clear()}var io=[\"chart\",\"document\",\"selections\",\"selectionInfo\"],ao=function(e){e.chart,e.document,e.selections,e.selectionInfo;var t=l(e,io);t.clearDiscrete(),t.clearContinuous(),t.clearMinor(),t.clearRange(),t.clearTap(),t.clearLegend()};function lo(e){var n=e.selectionEvents,r=e.selections,o=e.selectionInfo,i=e.clear,a=e.chart,l=e.document,u=n.start,c={selections:r,selectionInfo:o,chart:a,document:l},s=function(e){return Object.assign(o,e||{})},f=function(e){var n=e.event,r=e.components;return function(){return function(e){var n=e.selectionInfo,r=void 0===n?{}:n,o=e.setSelectionInfo,i=e.clear,a=e.event,l=e.components,u=void 0===l?[]:l;o(t(t({},r),{},{event:a,components:u.map((function(e){return e.key})).filter(Boolean)})),i()}({event:n,components:r,clear:i,chart:a,selectionInfo:o,setSelectionInfo:s})}};return\"function\"==typeof u?function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];u(t(t({defaultFunc:f({event:e,components:n}),setSelectionInfo:s,clear:i},c),{},{event:e,components:n}))}:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];f({event:e,components:t})()}}function uo(e){var t,n=e.lasso;null!=n&&null!==(t=n.active)&&void 0!==t&&t.call(n)&&(null==n||n.action(!1))}function co(e){var n,r=e.chart,o=e.selectionInfo,i=e.selectionActions,a=e.actions,l=void 0===a?{}:a,c=e.selections,s=e.selectionEvents;if(!1===i||!1===s)return function(){};var f=i.reset,d=void 0===f?uo:f,p=i.clear,h=!1!==p&&function(e){var n=e.clear,r=void 0===n?ao:n,o=e.selections,i=e.selectionInfo,a=e.chart;return function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).cleared,n={selections:o,selectionInfo:i,chart:a,document:document,cleared:e};return r(t({clearDiscrete:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Qr(t(t({},n),e))},clearContinuous:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return eo(t(t({},n),e))},clearMinor:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return to(t(t({},n),e))},clearRange:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return no(t(t({},n),e))},clearTap:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ro(t(t({},n),e))},clearLegend:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return oo(t(t({},n),e))}},n))}}({clear:p,selections:c,selectionInfo:o,chart:r}),m=function(e){var t=e.chart,n=e.actions,r=e.reset,o=e.clear,i=!1,a={deactivated:function(e){var t=(n||{}).lasso;r({e:e,lasso:void 0!==t&&t})},canceled:function(e){var i=(n||{}).lasso;r({e:e,lasso:void 0!==i&&i}),o({e:e,chart:t,document:document})},cleared:function(e){i||(i=!0,o({e:e,chart:t,document:document,cleared:!0}),i=!1)}};return!1===r&&delete a.deactivated,!1===o&&delete a.cleared,!1===r&&!1===o&&delete a.canceled,a}({chart:r,clear:h,reset:d,actions:l}),v={};Object.entries(m).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];v[n]=function(e,t){return t?function(n){return t({event:n,defaultFunc:e})}:e}(r,s[n])}));var y=lo({selectionEvents:s,selections:c,selectionInfo:o,clear:h,chart:r,document:document});return null==l||null===(n=l.select)||void 0===n||n.on(\"start\",y),Object.entries(v).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];null==c||c.on(n,r)})),function(){var e;null==l||null===(e=l.select)||void 0===e||e.removeListener(\"start\",y),Object.entries(v).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];null==c||c.removeListener(n,r)}))}}function so(e){var t=e.chart,n=e.selectionActions,r=e.brush,o=e.actions,i=e.selectionInfo,a=e.selections,l=e.selectionEvents,c=function(e){var t=e.brush,n=e.chart,r=e.selectionInfo,o=e.brushEvents,i=void 0===o?{}:o,a=Object.entries(i).map((function(e){var o=u(e,2),i=o[0],a=o[1],l=function(){return a({chart:n,selectionInfo:r})};return t.on(i,l),[i,l]}));return function(){a.forEach((function(e){var n=u(e,2),r=n[0],o=n[1];t.removeListener(r,o)}))}}({brush:r,chart:t,selectionInfo:i,brushEvents:e.brushEvents}),s=co({chart:t,selectionInfo:i,selectionActions:n,actions:o,selections:a,selectionEvents:l}),f=function(e){var t=e.actions;if(null==t||!t.lasso)return function(){};var n=!1,r=function(e){n||e.key!==jr||(t.lasso.action(!0),n=!0)},o=function(e){e.key===jr&&(t.lasso.action(!1),n=!1)};return document.addEventListener(\"keydown\",r),document.addEventListener(\"keyup\",o),function(){document.removeEventListener(\"keydown\",r),document.removeEventListener(\"keyup\",o)}}({actions:o});return function(){c(),s(),f()}}var fo=[{key:\"qHyperCube/qDimensionInfo/0:numeric\",includeMax:!1}];function po(e){var t=e.chart,n=e.actions,r=e.selections,o=e.picassoQ,i=e.config,a=i.allowSimultaneous,l=void 0!==a&&a,s=i.majorScale,f=void 0===s?void 0:s,d=i.selectionActions,p=void 0===d?{}:d,h=p.clear,m=p.reset,v=i.selectionEvents,y=void 0===v?{deactivated:void 0,canceled:void 0,cleared:void 0,start:void 0}:v,g=i.brushEvents,b=void 0===g?{}:g,x=i.brushName,q=void 0===x?\"selection\":x,w=i.brushMaxListeners,M=void 0===w?20:w,k=i.brushRanges,S=void 0!==k&&k,C=i.interceptors,D=void 0===C?{}:C,I=i.selectionsFn,O=void 0===I?o.selections:I,E=t.brush(q);if(\"number\"==typeof M&&E.setMaxListeners(M),S){var A=!0===S?fo:S;E.configure({ranges:A})}var N={canSelect:!0,getIsSelectionLocked:!1,isInnerDimensionLocked:!1,lockedDimensions:[],singleSelectIndex:0,selectionInfo:{colorField:void 0,components:[],event:void 0,currentComponent:void 0,previousComponent:void 0}},L=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.selections,r=t.brush,o=t.majorScale,i=t.actions,a=t.selectionsFn,l=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).path,u=void 0===l?\"/qHyperCubeDef\":l;if(!n)return{layout:function(){},filteredFields:function(){},allowSimultaneous:function(){},release:function(){}};var c=++$r,s=null,f={dimensions:[],measures:[]},d=[],p={};n.on=n.on.bind(n),n.isActive=n.isActive.bind(n),n.addListener=n.addListener.bind(n),n.removeListener=n.removeListener.bind(n);var h=Fr({brush:r,getConfig:function(){return{layout:s,allowSimultaneous:d}}}),m=h.rangeInterceptor,v=h.interceptor;r.intercept(\"set-ranges\",m),r.intercept(\"toggle-ranges\",m),r.intercept(\"toggle-values\",v),r.intercept(\"set-values\",v),r.intercept(\"add-values\",v),r.on(\"start\",(function(){return n.begin(u)}));var y={activate:function(){},deactivated:function(){return r.end()},cleared:function(){return r.clear()},canceled:function(){return r.end()}};Wr(n,y);var g=null==o||null===(e=o.max)||void 0===e?void 0:e.call(o);return null!=i&&i.select?(i.select.on(\"start\",(function(){var e;r.start(),\"function\"==typeof i.select.getBrushOptions&&(p=(e=i.select).getBrushOptions.apply(e,arguments))})),i.select.on(\"end\",(function(){var e=a(r,p,s),t=zr({layout:s,filtered:f});e.forEach((function(e){var r=Br({selection:e,fieldMap:t});Zr(r,i.select.brushSelectionIncludeMax,g),n.select(r)}))}))):r.on(\"update\",(function(){var e=a(r,p,s),t=zr({layout:s,filtered:f});e.forEach((function(e){n.select(Br({selection:e,fieldMap:t}))}))})),0===Yr.length&&Kr(),Yr.push({key:c,selections:n}),{layout:function(e){s=e},filteredFields:function(e){f=e},allowSimultaneous:function(e){d=e},release:function(){s=null;var e=Yr.indexOf(Yr.filter((function(e){return e.key===c}))[0]);-1!==e&&Yr.splice(e,1),Yr.length||Gr(),Xr(n,y)}}}({brush:E,majorScale:f,actions:n,selections:r,picassoQ:o,selectionsFn:O});!function(e){var t=e.brush,n=e.interceptors,r=void 0===n?{}:n;Object.entries(r).forEach((function(e){var n=u(e,2),r=n[0],o=n[1];(Array.isArray(o)?o:[o]).forEach((function(e){t.intercept(r,e)}))}))}({brush:E,interceptors:D});var T=so({chart:t,brush:E,actions:n,selections:r,selectionInfo:N.selectionInfo,selectionActions:{clear:h,reset:m},selectionEvents:y,brushEvents:b});if(l){var P=!0===l?c(Array(15)).map((function(e,t){return\"qHyperCube/qMeasureInfo/\".concat(t)})):l;L.allowSimultaneous(P)}return{unbindEvents:T,state:N,picassoSelections:L,brush:E}}var ho=[\"colorField\",\"useLegendCube\"];function mo(e){var n=e.chart,r=e.selections,o=e.actions,i=void 0!==o&&o,a=e.config,u=void 0===a?{}:a,c=po({chart:n,actions:i,selections:r,picassoQ:Ir,config:u}),s=c.unbindEvents,f=c.state,d=c.picassoSelections,p=c.brush,h=u.custom,m=void 0===h?{}:h,v=u.legendAlias,y=void 0===v?void 0:v,g=u.setBrushAliases,b=void 0===g?Nr:g;return{getIsDimensionLocked:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return f.lockedDimensions[e]},getIsSelectionLocked:function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return null!==(e=null==r||null===(t=r.isLocked)||void 0===t?void 0:t.call(r))&&void 0!==e?e:Ar(n)},getIsSingleSelect:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f.singleSelectIndex;return f.singleSelectDimensions[e]},getCanSelect:function(){return f.canSelect},getSelectionInfo:function(){return f.selectionInfo},setLayout:function(e){var t=Er({selections:r,picassoSelections:d,layout:e});Object.assign(f,t)},setFilteredFields:function(e){d.filteredFields(e)},setBrushAliases:function(e){var n=e.colorField,r=e.useLegendCube,o=void 0!==r&&r,i=l(e,ho),a=t({useLegendCube:o,colorField:n,brush:p,legendAlias:y},i);b(t(t({},a),{},{defaultFunc:function(){return Nr(a)}}))},destroy:function(){s(),d.release()},custom:t({},m)}}var vo=\"'Source Sans Pro', 'Arial', 'sans-serif'\",yo=\"#333333\",go=\"#595959\",bo=\"#737373\",xo=\"#cccccc\",qo=\"#e6e6e6\";function wo(e){var t={};return[].concat(c(e),c([[\"\",\"\",\"color\"],[\"object\",\"\",\"fontFamily\"],[\"object\",\"axis.label.name\",\"color\",go],[\"object\",\"axis.label.name\",\"fontFamily\",vo],[\"object\",\"axis.label.name\",\"fontSize\",\"12px\"],[\"object\",\"axis.line.major\",\"color\",xo],[\"object\",\"axis.line.minor\",\"color\",qo],[\"object\",\"axis.title\",\"color\"],[\"object\",\"axis.title\",\"fontFamily\",vo],[\"object\",\"axis.title\",\"fontSize\",\"13px\"],[\"object\",\"grid.line.highContrast\",\"color\",qo],[\"object\",\"grid.line.major\",\"color\",xo],[\"object\",\"grid.line.minor\",\"color\",qo],[\"object\",\"label.value\",\"color\",go],[\"object\",\"label.value\",\"fontFamily\",vo],[\"object\",\"label.value\",\"fontSize\",\"12px\"],[!1,\"label.value\",\"darkColor\",go],[!1,\"label.value\",\"lightColor\",qo],[\"object\",\"outOfRange\",\"color\",\"#999\"],[\"object\",\"legend.title\",\"color\",yo],[\"object\",\"legend.title\",\"fontFamily\",vo],[\"object\",\"legend.title\",\"fontSize\",\"15px\"],[\"object\",\"legend.label\",\"color\",go],[\"object\",\"legend.label\",\"fontFamily\",vo],[\"object\",\"legend.label\",\"fontSize\",\"13px\"],[\"object\",\"referenceLine.label.name\",\"color\",yo],[\"object\",\"referenceLine.label.name\",\"fontFamily\",vo],[\"object\",\"referenceLine.label.name\",\"fontSize\",\"12px\"],[\"object\",\"referenceLine.outOfBounds\",\"color\",qo],[\"object\",\"referenceLine.outOfBounds\",\"fontFamily\",vo],[\"object\",\"referenceLine.outOfBounds\",\"fontSize\",\"12px\"],[\"object\",\"referenceLine.outOfBounds\",\"backgroundColor\",bo,function(e){return\"transparent\"===e?bo:e}]])).reduce((function(e,n){var r=\"\".concat(n[0],\"-\").concat(n[1],\"-\").concat(n[2],\"}\");return t[r]||(t[r]=!0,e.push(n)),e}),[]).sort((function(e,t){return(e[0].split?e[0].split(\".\").length:0)-(t[0].split?t[0].split(\".\").length:0)}))}var Mo=function(e){return e};function ko(e){var t=e.theme,n=e.id,r=e.transform,o=e.extend,i=e.matrix,a={},l=r.reduce((function(e,t){var n=u(t,2),r=n[0],o=n[1];return e[r]=o,e}),{});return i.forEach((function(e){var r=u(e,5),o=r[0],i=r[1],c=r[2],s=r[3],f=r[4],d=void 0===f?function(e){return e}:f,p=function(e){var t=e.theme,n=e.base,r=e.path,o=e.attribute,i=e.defaultValue,a=void 0===i?void 0:i;if(!t||!1===n)return a;var l=t.getStyle(n,r,o);return void 0===l?a:l}({theme:t,base:\"object\"===o&&n?\"\".concat(\"object\",\".\").concat(n):o,path:i,attribute:c,defaultValue:s}),h=(l[\"\".concat(i,\".\").concat(c)]||Mo)(d(p));qt(a,[i,c].filter(Boolean).join(\".\"),h)})),o.forEach((function(e){var t=u(e,2),n=t[0],r=t[1];qt(a,n,r)})),a}function So(e){var t=e.theme,n=e.config,r=void 0===n?{}:n,o=r.id,i=r.resolve,a=void 0===i?[]:i,l=r.transform,u=void 0===l?[]:l,c=r.extend,s=void 0===c?[]:c,f={theme:t,matrix:wo(a),styles:void 0};return f.styles=ko({theme:t,id:o,transform:u,extend:s,matrix:f.matrix}),{getStyles:function(){return f.styles},getTheme:function(){return f.theme},setTheme:function(e){f.theme=e,f.styles=ko({theme:e,id:o,transform:u,extend:s,matrix:f.matrix})}}}var Co={NOOP:function(){},FALSE:function(){return!1},ARRAY:function(){return[]},OBJECT:function(){return{}}};var Do=\"chart-modules-tooltip\",Io=\"#\".concat(Do);function Oo(){if(!document.querySelector(Io)){var e=document.createElement(\"div\");e.id=Do,e.style.overflow=\"hidden\",e.style.position=\"fixed\",e.style.pointerEvents=\"none\",e.style.left=\"0px\",e.style.top=\"0px\",e.style.width=\"100%\",e.style.height=\"100%\",e.style.zIndex=1020,document.body.appendChild(e)}}function Eo(e){return{show:!0,key:e.key,type:\"tooltip\",layout:{displayOrder:3},beforeMount:function(){Oo()},beforeUpdate:function(){Oo()},destroyed:function(){var e;null!=(e=document.querySelector(Io))&&e.parentElement&&e.childElementCount<1&&e.parentElement.removeChild(e)},settings:{appendTo:function(){return document.querySelector(Io)},direction:e.rtl?\"rtl\":\"ltr\",duration:e.duration},style:{arrow:{color:\"#404040\"},content:{display:\"table\",\"border-spacing\":\"4px\",background:\"rgba(64, 64, 64, 0.9)\",opacity:\"1\",fontSize:\"13px\",fontFamily:\"'Source Sans Pro', 'Arial', 'sans-serif'\",\"empty-cells\":\"show\"},cell:{\"max-width\":\"180px\",\"word-break\":\"break-word\",\"word-wrap\":\"break-word\",\"overflow-wrap\":\"break-word\",hyphens:\"auto\"}}}}var Ao=\"position\";var No={bar:\"rect\",diamond:\"path\",point:\"circle\",square:\"rect\",triangle:\"path\",\"n-polygon\":\"path\",slice:\"path\"},Lo=function(e){return e.data.value},To=function(e){var t,n=e.data;return null==n||null===(t=n.major)||void 0===t?void 0:t.value};function Po(e){var t=e.chart,n=e.expando,r=e.nodes,o=e.collectConfig,i=e.collectibles,a=e.meta,l=o.from,s={chart:t,expando:n,nodes:r,collectConfig:o,collectibles:i,meta:a};switch(\"function\"==typeof l?\"custom\":l){case\"single\":return function(e){var t=u(e.nodes,1)[0];return[\"container\"===t.type&&t.children[0]||t]}(s);case\"position\":return function(e){var t=e.chart,n=e.collectibles,r=e.meta;return t.shapesAt(r.position.absolute,{components:n.map((function(e){return{key:e.key}}))})}(s);case\"dimension\":return function(e){var t=e.chart,n=e.nodes,r=e.collectConfig,o=e.collectibles,i=u(n,1)[0],a=r.filter,l=\"function\"==typeof a?a:function(){return!0},s=r.by,f=void 0===s?Lo:s;return o.reduce((function(e,n){var r=n.major,o=void 0===r?To:r,a=No[n.type]||n.type;return e.push.apply(e,c(t.findShapes(a).filter((function(e){return e.key===n.key&&e.data&&o({data:e.data})===f({data:i.data})})))),e}),[]).filter(l)}(s);case\"radius\":return function(e){var t=e.chart,n=e.nodes,r=e.collectConfig,o=e.collectibles,i=e.meta,a=u(n,1)[0].localBounds,l=r.distance,c=r.filter,s=\"function\"==typeof c?c:function(){return!0},f=o.map((function(e){return e.key}));return t.shapesAt({cx:i.position.absolute.x,cy:i.position.absolute.y,r:l||Math.max(a.width,a.height)},{components:f.map((function(e){return{key:e}}))}).filter(s)}(s);case\"custom\":return function(e){var t=e.chart,n=e.expando,r=e.nodes,o=e.collectConfig,i=e.meta;return o.from({chart:t,expando:n,nodes:r,meta:i})}(s);default:return[]}}var jo=Number.MAX_VALUE;function Fo(e){var t=e.nodes.reduce((function(e,t){var n=t.bounds;return e.xMin=Math.min(e.xMin,n.x,n.x+n.width),e.yMin=Math.min(e.yMin,n.y,n.y+n.height),e.xMax=Math.max(e.xMax,n.x,n.x+n.width),e.yMax=Math.max(e.yMax,n.y,n.y+n.height),e}),{xMin:jo,xMax:-jo,yMin:jo,yMax:-jo}),n=t.xMin,r=t.xMax,o=t.yMin;return{x:n,y:o,width:r-n,height:t.yMax-o}}function Ho(e){var t=e.chart,n=e.config,r=e.expando,o=e.placementConfig,i=e.hovered,a=e.collected,l=e.meta,s=function(e){for(var t=e.chart,n=e.config,r=e.expando,o=e.placementConfig,i=e.hovered,a=e.collected,l=e.meta,s=u(i,1)[0],f=Array.isArray(o)?o:[o],d={bounds:s.bounds,key:s.key},p=Fo({nodes:a}),h=0;h<f.length;h++){var m=f[h];if(\"function\"==typeof m){var v=m({chart:t,expando:r,hovered:i,collected:c(a),meta:l,collectedBounds:p,combineBounds:Fo});if(v)return v}if(\"trigger\"===m)return d;if(\"collectible\"===m){var y=n.main.placements.collectible;return{bounds:\"function\"==typeof y?y({collected:c(a)}):p,key:a[0].key}}}return d}({chart:t,config:n,expando:r,placementConfig:o,hovered:i,collected:a,meta:l}),f=s.bounds,d=s.key,p=u(a,1)[0].desc;return[{bounds:f,nodes:a,data:a.map((function(e){return e.data})),key:d,meta:l,desc:p}]}function Ro(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.nodes;if(!i.length)return[];var a=u(i,1)[0].key,l=n.main.collectibles;if(!l.length)return[];var c=n.main.triggers.find((function(e){return-1!==e.keys.indexOf(a)}))||{},s=c.collect,f=c.placement;if(!s||!s.from||!f)return[];var d={triggerer:a,position:o.get(Ao)},p=(Po({chart:t,expando:r,nodes:i,collectConfig:s,collectibles:l,meta:d})||[]).map((function(e){return e.children.length?e.children[0]:e}));return p.length?Ho({chart:t,config:n,expando:r,placementConfig:f,hovered:i,collected:p,meta:d}):[]}var zo=\"[־׀׃׆א-״߀-ߪߴ-ߵߺ-ࠕࠚࠤࠨ࠰-ࡘ࡞‏יִײַ-ﬨשׁ-ﭏ]\",Vo=\"[؈؋؍؛-ي٭-ٯٱ-ەۥ-ۦۮ-ۯۺ-܍ܐܒ-ܯݍ-ޥޱﭐ-ﴽﵐ-﷼ﹰ-ﻼ]\",_o=new RegExp(\"[A-Za-zªµºÀ-ÖØ-öø-ʸʻ-ˁː-ˑˠ-ˤˮͰ-ͳͶ-ͽΆΈ-ϵϷ-҂Ҋ-։ः-हऻऽ-ीॉ-ौॎ-ॐक़-ॡ।-ॿং-হঽ-ীে-ৌৎ-ৡ০-ৱ৴-৺ਃ-ਹਾ-ੀਖ਼-੯ੲ-ੴઃ-હઽ-ીૉ-ૌૐ-ૡ૦-૯ଂ-ହଽ-ାୀେ-ୌୗ-ୡ୦-୷ஃ-ிு-ௌௐ-௲ఁ-ఽు-ౄౘ-ౡ౦-౯౿-ಹಽ-ೋೕ-ೡ೦-ീെ-ൌൎ-ൡ൦-ෆා-ෑෘ-ะา-ำเ-ๆ๏-ະາ-ຳຽ-ໆ໐-༗༚-༴༶༸༾-ཬཿ྅ྈ-ྌ྾-࿅࿇-ာေးျ-ြဿ-ၗၚ-ၝၡ-ၰၵ-ႁႃ-ႄႇ-ႌႎ-ႜ႞-ፚ፠-ᎏᎠ-Ᏼᐁ-ᙿᚁ-ᚚᚠ-ᜑᜠ-ᜱ᜵-ᝑᝠ-ᝰក-ាើ-ៅះ-ៈ។-៚ៜ០-៩᠐-ᢨᢪ-ᤜᤣ-ᤦᤩ-ᤱᤳ-ᤸ᥆-᧚ᨀ-ᨖᨙ-ᩕᩗᩡᩣ-ᩤᩭ-ᩲ᪀-᪭ᬄ-ᬳᬵᬻᬽ-ᭁᭃ-᭪᭴-᭼ᮂ-ᮡᮦ-ᮧ᮪-ᯥᯧᯪ-ᯬᯮ᯲-ᰫᰴ-ᰵ᰻-᱿᳓᳡ᳩ-ᳬᳮ-ᶿḀ-ᾼιῂ-ῌῐ-Ίῠ-Ῥῲ-ῼ‎ⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎ-⅏Ⅰ-ↈ⌶-⍺⎕⒜-ⓩ⚬⠀-⣿Ⰰ-ⳤⳫ-ⳮⴀ-⵰ⶀ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ㆺㇰ-㈜㈠-㉏㉠-㉻㉿-㊰㋀-㋋㋐-㍶㍻-㏝㏠-㏾㐀-䶵一-ꒌꓐ-ꘌꘐ-ꙮꚀ-ꛯ꛲-꛷Ꜣ-ꞇ꞉-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠤꠧ꠰-꠷ꡀ-ꡳꢀ-ꣃ꣎-꣙ꣲ-ꤥ꤮-ꥆꥒ-ꥼꦃ-ꦲꦴ-ꦵꦺ-ꦻꦽ-ꨨꨯ-ꨰꨳ-ꨴꩀ-ꩂꩄ-ꩋꩍ-ꪯꪱꪵ-ꪶꪹ-ꪽꫀꫂ-ꯤꯦ-ꯧꯩ-꯬꯰-ﬗA-Za-zヲ-ᅵ]\"),Bo=new RegExp(zo),Yo=new RegExp(Vo),$o=function(e){return _o.test(e)},Uo=function(e){return Bo.test(e)||Yo.test(e)};function Ko(e){for(var t=e?e.length:0,n=0;n<t;n++){var r=e[n];if($o(r))return\"ltr\";if(Uo(r))return\"rtl\"}return\"ltr\"}function Go(e){var n=e.visibility;return{type:\"divider\",content:[{content:\"\",style:{\"background-image\":\"linear-gradient(transparent 8px, rgba(255, 255, 255, 0.4) 8px, rgba(255, 255, 255, 0.4) 9.2px, transparent 9.2px)\",height:\"17px\"},colspan:2}],visibility:t(t({},{count:!1}),n)}}function Wo(e){var n=e.config,r=e.h,o=e.context,i=e.nodes,a=e.property,l=e.filter,c=e.visibility,s=e.fillColor,f=n.rtl,d={type:\"color\",label:void 0,value:void 0,content:[],filter:l,visibility:t(t({},{count:!0}),c)},p=n.getColorSettings();if(\"color\"===p.type||!p.fieldType)return d;var h=u(i,1)[0];if(d.value=function(e){var t=e.config,n=e.context,r=e.property,o=e.node,i=o.data[r];if(i){if(-3===o.data.value)return o.data.label;var a=n.resources.dataset(i.source.key).field(i.source.field).formatter(),l=i.value,u=i.label,c=t.getColorSettings();if(a&&\"measure\"===c.fieldType)return Number.isNaN(+l)?\"-\":a(i.value);var s=u||l;return void 0===s||Number.isNaN(s)||\"NaN\"===s?\"-\":s}}({config:n,context:o,property:a,node:h}),void 0===d.value)return d;d.label=function(e){var t=e.config,n=e.context,r=e.property,o=e.node,i=t.getColorSettings();if(i.label)return i.label;var a=o.data[r];if(a&&\"color\"!==i.type){var l=n.resources.dataset,u=a.source,c=u.key,s=u.field;return l(c).field(s).title()}}({config:n,context:o,property:a,node:h});var m=null!=s?s:function(e){var t=e.node.attrs;return(null==t?void 0:t.fill)||\"#ddd\"}({node:h}),v=r(\"div\",{style:{display:\"inline-block\",width:10,height:10,\"background-color\":m,margin:\"0 8px\"}});return d.content.push({content:f?[\":\",d.label]:[d.label,\":\"],style:{\"text-align\":f?\"right\":\"left\",direction:Ko(d.label)}},{content:f?[d.value,v]:[v,d.value],style:{\"text-align\":f?\"left\":\"right\",\"vertical-align\":\"middle\",direction:Ko(d.value)}}),d}function Xo(e){var n=e.config,r=e.h,o=e.context,i={section:function(e){return function(e){return{type:\"section\",content:e.content}}({content:e.content})},text:function(e){var r=e.value,o=e.style,i=e.visibility;return function(e){var n=e.config,r=e.value,o=e.style,i=void 0===o?{}:o,a=i.bold,l=void 0!==a&&a,u=i.italic,c=void 0!==u&&u,s=e.visibility;return{type:\"text\",content:[{content:r,style:{\"font-weight\":l?\"bold\":\"normal\",\"font-style\":c?\"italic\":\"normal\",\"text-align\":n.rtl?\"right\":\"left\",direction:Ko(r)},colspan:2}],visibility:t(t({},{count:!0}),s)}}({config:n,value:r,style:o,visibility:i})},measure:function(e){var o=e.label,i=e.value,a=e.color,l=e.style,u=e.survive,c=e.visibility;return function(e){var n,r,o,i,a=e.config,l=e.h,u=e.label,c=e.value,s=e.color,f=e.style,d=e.survive,p=e.visibility,h=a.rtl,m=l(\"div\",{style:{display:\"inline-block\",width:10,height:10,\"background-color\":s,margin:\"0 8px\"}});return{type:\"measure\",label:u,value:c,content:[{content:h?[\":\",u]:[u,\":\"],style:{\"text-align\":h?\"right\":\"left\",\"font-weight\":null!=f&&null!==(n=f.label)&&void 0!==n&&n.bold?\"bold\":\"normal\",\"font-style\":null!=f&&null!==(r=f.label)&&void 0!==r&&r.italic?\"italic\":\"normal\",direction:Ko(u)}},{content:s?h?[c,m]:[m,c]:c,style:{\"text-align\":h?\"left\":\"right\",\"vertical-align\":\"middle\",\"font-weight\":null!=f&&null!==(o=f.value)&&void 0!==o&&o.bold?\"bold\":\"normal\",\"font-style\":null!=f&&null!==(i=f.value)&&void 0!==i&&i.italic?\"italic\":\"normal\",direction:Ko(c)}}],survive:t(t({},{color:!1,duplicate:!1}),d),visibility:t(t({},{count:!0}),p)}}({config:n,h:r,label:o,value:i,color:a,style:l,survive:u,visibility:c})},divider:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.visibility;return Go({visibility:t})},row:function(e){return function(e){var n=e.content,r=e.style,o=e.colspan,i=e.visibility;return{type:\"row\",content:[{content:n,style:r,colspan:o}],visibility:t(t({},{count:!0}),i)}}({content:e.content,style:e.style,colspan:e.colspan,visibility:e.visibility})},raw:function(e){return function(e){var n=e.value,r=e.visibility;return{type:\"raw\",content:n,visibility:t(t({},{count:!0}),r)}}({value:e.value,visibility:e.visibility})},color:function(e){var t=e.nodes,i=e.property,a=e.filter,l=void 0===a||a,u=e.visibility,c=e.fillColor;return Wo({config:n,h:r,context:o,nodes:t,property:i,filter:l,visibility:u,fillColor:c})}};return i}function Zo(e){var t=e.translator,n=e.config,r=e.context,o=e.templates,i=n.main.layout,a=i.rows,l=i.grouping,u=i.single,c=function(e){var t=e.limit,n=e.grouping,r=e.single,o={count:0,overflow:0,index:{started:void 0,group:void 0}};return{process:function(e){var i=e.visibility,a=e.index;if(r&&0!==a)return n?(o.index.started!==a&&o.index.group!==a&&(o.overflow++,o.index.group=a),!1):(o.overflow++,!1);if(o.count>=t){if(!n)return o.overflow++,!1;if(o.index.started!==a)return o.index.group!==a&&(o.overflow++,o.index.group=a),!1}return i.count&&o.count++,n&&(o.index.started=a),!0},overflow:function(){return o.overflow}}}({limit:a,grouping:l,single:\"function\"==typeof u?u({meta:r.node.meta,sections:o}):u}),s=o.reduce((function(e,t,n){var r=t.type,i=t.content;\"section\"===r&&(void 0===i?[]:i).forEach((function(t){c.process({visibility:t.visibility,index:n})&&e.push(t.content)}));var a=n===o.length-1;return\"divider\"!==r||a||c.process({visibility:t.visibility,index:n})&&e.push(t.content),e}),[]).filter((function(e){return e.length})),f=c.overflow();return f&&s.push(function(e){var t=e.translator,n=e.config,r=e.count,o=t?t.get(\"Object.ChartTooltip.NMore\",r):\"+\".concat(r,\" more\"),i=Ko(o);return[{content:o,style:{\"font-weight\":\"bold\",\"text-align\":n.rtl?\"right\":\"left\",direction:i},colspan:2}]}({translator:t,config:n,count:f})),s}function Jo(e){var n=e.chart,r=e.translator,o=e.config,i=e.expando,a=e.h,l=e.data,s=e.style,f=u(l,1)[0],d=function(e){var t=e.config,n=e.nodes.reduce((function(e,n){var r=t.main.getGroupByValue({data:n.data});return e[r]||(e[r]={sorting:Object.keys(e).length,items:[]}),e[r].items.push(n),e}),{});return Object.keys(n).map((function(e){return n[e]})).sort((function(e,t){return e.sorting-t.sorting})).map((function(e){return e.items}))}({config:o,nodes:f.node.nodes}),p=function(e){var t=e.chart,n=e.config,r=e.expando,o=e.h,i=e.context,a=e.groups,l=i.node.meta,u=i.resources,s=u.dataset,f=u.formatter,d=Xo({config:n,h:o,context:i}),p=function(e){var t=e.dataset;return{dataset:{title:function(e,n){return t(e).field(n).title()}}}}({dataset:s}),h=a.map((function(e){var t=d.section({content:c((n.main.section({expando:r,h:o,nodes:e,dataset:s,formatter:f,meta:l,create:d,util:p})||[]).filter((function(e){var t;return null===(t=e.content)||void 0===t?void 0:t.length}))).filter(Boolean)});return t.content=function(e){var t=e.config,n=e.content,r=n.find((function(e){return\"color\"===e.type&&e.filter})),o=r?n.filter((function(e){return\"measure\"!==e.type||e.survive.color||e.label!==r.label||e.value!==r.value})):n;return t.main.showDuplicateMeasures?o:o.reduce((function(e,t){var n=t.type,r=t.survive;if(\"measure\"!==n||r.duplicate)return e.filtered.push(t),e;var o=\"\".concat(t.label,\"-\").concat(t.value);return e.memory[o]||(e.memory[o]=!0,e.filtered.push(t)),e}),{memory:{},filtered:[]}).filtered}({config:n,content:t.content}),t}));return n.main.sections({chart:t,expando:r,h:o,nodes:i.node.nodes,dataset:s,formatter:f,meta:l,create:d,util:p,sections:h}),h.filter(Boolean)}({chart:n,config:o,expando:i,h:a,context:f,groups:d}),h=Zo({translator:r,config:o,h:a,context:f,templates:p});return h.length?function(e){var n=e.h,r=e.style;return e.rows.map((function(e){return n(\"tr\",{},e.map((function(e){var o={style:t(t({},r.cell||{}),e.style||{}),class:e.class};return e.colspan&&(o.colspan=e.colspan),n(\"td\",o,e.content)})))}))}({h:a,style:s,rows:h}):function(e){var t=e.h;return t(\"tr\",{},t(\"td\",{style:{fontStyle:\"italic\",opacity:.75}},\"Empty\"))}({h:a})}function Qo(e){var t=e.chart,n=e.translator,r=e.config,o=e.expando,i=e.internal;if(!r.main.key)return!1;var a=wt(),l=Eo({key:r.main.key,rtl:r.rtl,duration:r.duration}),u=r.main.events.tooltip,c=u.afterShow,s=u.afterHide,f=function(){var e=a.get(\"collected\");return{expando:o,nodes:e.nodes,meta:e.meta}};return w(!0,l,{settings:{filter:function(e){return Ro({chart:t,config:r,expando:o,internal:i,nodes:e})},extract:function(e){return a.set(\"collected\",e.node),e},content:function(e){var i=e.h,a=e.data,l=e.style;return Jo({chart:t,translator:n,config:r,expando:o,h:i,data:a,style:l})},placement:function(e){var t=e.nodes;return r.main.placement({meta:t[0].meta})},afterShow:function(){return c(f())},afterHide:function(){return s(f())}},style:{arrow:{color:r.style.background},content:r.style}})}function ei(e){var n=e.config,r=n.legend.keys;if(!r.tooltip||!r.component)return!1;if(\"categorical\"!==n.getColorSettings().type)return!1;var o=Eo({key:r.tooltip,rtl:n.rtl,duration:n.duration});return w(!0,o,{settings:{filter:function(e){return e.filter((function(e){return e.data&&e.key===r.component}))},extract:function(e){return e},content:function(e){var n=e.h,r=e.data;return[n(\"tr\",{},[n(\"td\",{style:t(t({},e.style.cell||{}),{\"font-weight\":\"bold\",\"text-align\":\"left\"}),colspan:2},r[0].node.data.label)])]},placement:\"pointer\"},style:{arrow:{color:n.style.background},content:n.style}})}function ti(e){var t=e.config.main.triggers.reduce((function(e,t){return t.keys.forEach((function(n){var r=t.distance||0;e.distance[n]=r,e.distances.includes(r)||e.distances.push(r),e.key[n]=!0,e.keys[r]||(e.keys[r]=[]),e.keys[r].push(n)})),e}),{distance:{},distances:[],key:{},keys:{}});return function(e){return e.components.filter((function(e){return t.key[e.key]})).reduce((function(e,n){e.any=!0,e.components.push(n.key);var r=t.distance[n.key];return 0===r?e.position.push(n.key):(e.distances.includes(r)||(e.distances.push(r),e.distanceKeys[r]=[]),e.distanceKeys[r].push(n.key)),e}),{any:!1,components:[],position:[],distances:[],distanceKeys:{}})}}var ni=function(){return!0};function ri(e){var t=e.config.main.triggers.reduce((function(e,t){var n=t.filter;return t.keys.forEach((function(t){e[t]=\"function\"==typeof n?n:ni})),e}),{});return function(e){var n=t[e.key];return!n||n(e)}}function oi(e){var t=e.chart,n=e.event,r=e.component,o={absolute:{x:0,y:0},relative:{x:0,y:0}},i=t.element.getBoundingClientRect(),a=i.left,l=i.top;o.absolute.x=(void 0===n.clientX?Math.floor(n.srcEvent.clientX):n.clientX)-a,o.absolute.y=(void 0===n.clientY?Math.floor(n.srcEvent.clientY):n.clientY)-l;var u=t.component(r);if(u){var c=u.rect.computedInner;o.relative.x=o.absolute.x-c.x,o.relative.y=o.absolute.y-c.y}return o}function ii(e){var t=e.chart,n=e.filter,r=e.hits,o=e.position,i=[];if(r.position.length&&i.push.apply(i,c(t.shapesAt(o.absolute,{components:r.position.map((function(e){return{key:e}}))}).filter(n))),!i.length&&r.distances.length){var a=[];r.distances.forEach((function(e){a.push.apply(a,c(t.shapesAt({cx:o.absolute.x,cy:o.absolute.y,r:e},{components:r.distanceKeys[e].map((function(e){return{key:e}}))}).filter(n)))})),a.length&&i.push(function(e){var t=e.nodes,n=e.origin,r=t.find((function(e){return\"path\"===e.type}));if(r)return r;var o=function(e){var t=Math.abs(n.x-(e.localBounds.x+e.localBounds.width/2)),r=Math.abs(n.y-(e.localBounds.y+e.localBounds.height/2));return Math.sqrt(t*t+r*r)};return t.slice(1).reduce((function(e,t){var n=o(t);return n<e.distance&&(e.distance=n,e.node=t),e}),{node:t[0],distance:o(t[0])}).node}({nodes:a,origin:o.relative}))}return i}function ai(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.facade,l=n.delay.tap,s=ti({config:n}),f=ri({config:n}),d=n.main.triggers.reduce((function(e,t){return e.push.apply(e,c(t.keys)),e}),[]);return{key:\"event:\".concat(\"tooltipTap\"),type:\"Tap\",options:{event:\"tooltipTap\",enable:function(e,r){return!r||!!n.enable({event:r})&&t.componentsFromPoint({x:r.center.x,y:r.center.y}).filter((function(e){return-1!==d.indexOf(e.key)})).length>0}},recognizeWith:\"tap\",events:a({},\"tooltipTap\",(function(e){if(e.preventDefault(),\"mouse\"!==e.pointerType&&!n.main.suppress({event:e})){var a=t.component(n.main.key);if(a&&a.show){var c=t.componentsFromPoint({x:e.center.x,y:e.center.y}),d=s({components:c});if(d.any){var p=u(d.components,1)[0],h=oi({chart:t,event:e,component:p});o.set(Ao,h);var m=ii({chart:t,filter:f,hits:d,position:h});if(m.length){var v=m[0].key;n.main.events.tooltip.beforeShow({expando:r,event:e,collectNodes:function(){return i.collectNodes({nodes:m})},meta:{triggerer:v,position:h}}).then((function(){a.emit(\"show\",e,{nodes:m,delay:l})})).catch((function(){}))}else a.emit(\"hide\")}else a.emit(\"hide\")}}}))}}function li(e){var t=e.config,n=e.expando,r=e.internal,o=e.facade,i=t.main.events.tooltip.beforeShow,a=t.delay.hover,l={ongoing:{},latest:void 0};return function(e){var t=e.event,u=e.tooltip,c=e.nodes,s=function(e){var t=e.nodes;return JSON.stringify(t.map((function(e){var t;return{key:e.key,bounds:e.bounds,value:null===(t=e.data)||void 0===t?void 0:t.value}})))}({nodes:c});if(!l.ongoing[s]){l.ongoing[s]=!0,l.latest=s;var f=c[0].key;i({expando:n,event:t,collectNodes:function(){return o.collectNodes({nodes:c})},meta:{triggerer:f,position:r.get(Ao)}}).then((function(){s===l.latest&&u.emit(\"show\",t,{nodes:c,delay:a})})).catch((function(){u.emit(\"show\")})).finally((function(){delete l.ongoing[s],s===l.latest&&(l.latest=void 0)}))}}}function ui(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.facade,a=ti({config:n}),l=ri({config:n}),c=li({config:n,expando:r,internal:o,facade:i}),s=[n.main.key,n.legend.keys.tooltip].filter(Boolean),f=function(){s.forEach((function(e){var n=t.component(e);null!=n&&n.show&&n.emit(\"hide\")}))};return{type:\"native\",events:{mousemove:function(e){if(n.enable({event:e})&&!n.main.suppress({event:e})){var r=t.componentsFromPoint({x:e.clientX,y:e.clientY}),i=t.component(n.main.key);if(i&&i.show){var s=a({components:r});if(s.any){var f=u(s.components,1)[0],d=oi({chart:t,event:e,component:f});o.set(Ao,d);var p=ii({chart:t,filter:l,hits:s,position:d});if(!p.length)return void i.emit(\"hide\");c({event:e,tooltip:i,nodes:p})}else i.emit(\"hide\")}var h=n.legend;if(h.keys.tooltip&&h.keys.component){var m=t.component(h.keys.tooltip);m&&m.show&&(r.some((function(e){return e.key===h.keys.component}))?m.emit(\"show\",e):m.emit(\"hide\"))}}},mouseup:function(e){2===e.button&&f()},mouseleave:function(){n.main.events.interaction.mouseleave({expando:r}),f()},wheel:function(){f()}}}}function ci(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=function(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal;return{collectNodes:function(e){var i=e.nodes,a=u(Ro({chart:t,config:n,expando:r,internal:o,nodes:i}),1)[0];return(void 0===a?{nodes:[]}:a).nodes}}}({chart:t,config:n,expando:r,internal:o});return{gestures:[ai({chart:t,config:n,expando:r,internal:o,facade:i})],native:ui({chart:t,config:n,expando:r,internal:o,facade:i})}}function si(e){var t=e.chart,n=e.translator,r=function(e){var t=e.config;return w(!0,{},{rtl:!1,enable:Co.FALSE,getColorSettings:Co.OBJECT,style:{fontSize:void 0,fontFamily:void 0,color:void 0,background:void 0},delay:{hover:500,tap:0},duration:8e3,main:{key:void 0,suppress:Co.FALSE,getGroupByValue:Co.NOOP,collectibles:[],triggers:[],placement:function(){return{type:\"bounds\"}},placements:{collectible:\"combine\"},showDuplicateMeasures:!1,layout:{rows:7,grouping:!1,single:!1},section:Co.ARRAY,sections:Co.NOOP,events:{tooltip:{beforeShow:function(){return Promise.resolve()},afterShow:Co.NOOP,afterHide:Co.NOOP},interaction:{mouseleave:Co.NOOP}}},legend:{keys:{tooltip:void 0,component:void 0}}},void 0===t?{}:t)}({config:e.config}),o=wt(),i=wt(),a={components:void 0,interactions:void 0};return{getComponents:function(){return a.components||(a.components=function(e){var t=e.chart,n=e.translator,r=e.config;return[Qo({chart:t,translator:n,config:r,expando:e.expando,internal:e.internal}),ei({config:r})].filter(Boolean)}({chart:t,translator:n,config:r,expando:o,internal:i})),a.components},getInteractions:function(){return a.interactions||(a.interactions=ci({chart:t,config:r,expando:o,internal:i})),a.interactions},expando:o}}var fi=\"AVERAGE\",di=\"LINEAR\",pi=\"POLYNOMIAL2\",hi=\"POLYNOMIAL3\",mi=\"POLYNOMIAL4\",vi=\"EXPONENTIAL\",yi=\"LOG\",gi=\"POWER\";function bi(e){var t=e.dimValue,n=e.value,r=e.qTrendLine,o=r.qType,i=r.qCoeff,a={x:t,y:i[2]*Math.pow(n,2)+i[1]*n+i[0]};switch(o){case pi:return a;case hi:return a.y+=i[3]*Math.pow(n,3),a;case mi:return a.y+=i[4]*Math.pow(n,4)+i[3]*Math.pow(n,3),a;default:return a}}var xi={average:function(e){return{x:e.dimValue,y:e.qTrendLine.qCoeff[0]}},linear:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:r.qCoeff[1]*n+r.qCoeff[0]}},polynomial2:bi,polynomial3:bi,polynomial4:bi,exponential:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:Math.exp(r.qCoeff[0]+n*r.qCoeff[1])}},log:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:r.qCoeff[1]+r.qCoeff[0]*Math.log(n)}},power:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:Math.pow(10,r.qCoeff[0]+r.qCoeff[1]*Math.log(n)*Math.LOG10E)}}};function qi(e,t){for(var n=xi[t.qType.toLowerCase()],r=Math.max(1,e/500),o=1/0,i=-1/0,a=0;a<e;a+=r){var l=n({dimValue:null,value:a+1,qTrendLine:t}).y;o=Math.min(l,o),i=Math.max(l,i)}return{min:o,max:i}}function wi(e){return xi[e.qType.toLowerCase()]}function Mi(e,t){return e.meta.isContinuous?function(e,t){return{generate:function(e,n,r){var o=[],i=wi(e),a=t({qTrendLine:e,measureIndex:r}),l=a.min,u=a.max,c=(u-l)/100;if(c>0){for(var s=function(t){var a=i({dimValue:t,value:t,qTrendLine:e});if(a.layerId=n,a.measureIndex=r,a.dimValue=t,e.flipXY){var l=a.x;a.x=a.y,a.y=l,a.dimValue=a.x}o.push(a)},f=l,d=l;d<=u;d+=c)s(d),f=d;f!==u&&s(u)}return o},calculate:function(e,t){return wi(e)({dimValue:t,value:t,qTrendLine:e})},findMinMax:function(e,t){var n=this.generate(t).map((function(e){return e.y}));return{min:Math.min.apply(Math,c(n)),max:Math.max.apply(Math,c(n))}}}}(0,t):e.meta.mode.K?function(e){return{generate:function(t,n,r){for(var o=[],i=e.getDataPages()[0],a=i.qData[0].qSubNodes,l=i.qArea.qTop,u=xi[t.qType.toLowerCase()],c=0;c<a.length;c++){var s=a[c],f=u({dimValue:s.qElemNo,value:c+l+1,qTrendLine:t});f.layerId=n,f.measureIndex=r,f.dimValue=s.qText,o.push(f)}return o},findMinMax:qi}}(e):function(e){return{generate:function(t,n,r){for(var o=[],i=e.getDataPages()[0],a=i.qMatrix,l=i.qArea.qTop,u=xi[t.qType.toLowerCase()],c=0;c<a.length;c++){var s=a[c][0],f=c+l+1,d=u({dimValue:s.qElemNumber,value:f,qTrendLine:t});d.layerId=n,d.measureIndex=r,d.dimValue=s.qText,o.push(d)}return o},calculate:function(e,t,n){return(0,xi[e.qType.toLowerCase()])({dimValue:n,value:t,qTrendLine:e})},findMinMax:qi}}(e)}var ki={TYPES:{AVERAGE:\"properties.trendlines.types.average\",LINEAR:\"properties.trendlines.types.linear\",POLYNOMIAL2:\"properties.trendlines.types.polynomial2\",POLYNOMIAL3:\"properties.trendlines.types.polynomial3\",POLYNOMIAL4:\"properties.trendlines.types.polynomial4\",EXPONENTIAL:\"properties.trendlines.types.exponential\",LOG:\"properties.trendlines.types.logarithmic\",POWER:\"properties.trendlines.types.power\"},STYLE:{DASHED:\"properties.trendlines.style.dashed\"},TYPE:\"properties.trendlines.type\",HEADER:\"properties.trendlines\",ADD_BUTTON:\"properties.trendlines.button.add\"},Si={color:\"#f93f17\",index:9},Ci={x:NaN,y:NaN,dimValue:NaN,layerId:NaN,measureIndex:NaN},Di=function(e){var t=e.layoutService,n=e.getMinMax,r=e.colorModel,o=e.chart,i=e.translator,a=e.keys.colorScale,l=e.isEnabled,u=void 0===l?function(){return!0}:l,s=[Ci],f=[],d=[],p=Mi(t,n);t.getLayoutValue(\"qHyperCube.qMeasureInfo\",[]).forEach((function(e,t){Array.isArray(e.qTrendLines)&&(f.push.apply(f,c(e.qTrendLines)),d.push.apply(d,c(e.qTrendLines.map((function(){return t})))))}));var h=Mt((function(e){var t=(f[e]||{}).style,n=r.settings();if(t.autoColor){if(\"measure\"===n.mode){var i=d[e],l=o.scale(a)(i);return function(e){return xe(e).l<70}(l)?function(e){var t=xe(e);return t.l<30?t.l+=15:t.l<50?t.l+=10:t.l+=5,t.toString()}(l):function(e){var t=xe(e);return t.l-=5,t.toString()}(l)}return r.resolveUIColor(Si)}return t.paletteColor?r.resolveUIColor(t.paletteColor):\"none\"}));return{query:{hasTrendLines:function(){return!!f.length&&u()},getData:function(){return s},getStroke:h,getLineDash:function(e){return(f[e]||{}).style.lineDash},getLabel:function(e){return(f[e]||{}).label},getExpression:function(e){var t=(f[e]||{}).qExpression;return f[e].flipXY&&(t=t.replace(/[xy]/g,(function(e){return\"x\"===e?\"y\":\"x\"}))),t},isFlipped:function(e){return f[e].flipXY},getType:function(e){var t=(f[e]||{}).qType;return i.get(ki.TYPES[t])},getMinMax:function(){var e=1/0,n=-1/0;return f.forEach((function(r){var o=p.findMinMax(t.meta.size.y,r);e=Math.min(o.min,e),n=Math.max(o.max,n)})),{min:e,max:n}},getCalculatedValue:function(e,t,n){var r=f[e];return p.calculate(r,t,n)}},command:{update:function(){s.length=0,f.forEach((function(e,t){var n=p.generate(e,t,d[t]);s.push.apply(s,c(n))}))}}}},Ii={source:\"trend\",extract:{field:\"x\",props:{minor:{field:\"y\"},layer:{field:\"layerId\"},measureIndex:{field:\"measureIndex\"},dimValue:{field:\"dimValue\"}}}},Oi=function(e){var t=e.meta;return t.isContinuous?function(e){return(0,e.scale)(e.datum.value)}:t.isGroupedByMeasure?function(e){var t=e.scale,n=e.datum;return t([n.value,n.measureIndex.value])+t.bandwidth()/2}:function(e){var t=e.scale;return t(e.datum.value)+t.bandwidth()/2}},Ei=function(e,t){var n=t.animations,r=t.layoutService,o=t.trendLineModel,i=t.orientation;if(!o.query.hasTrendLines())return[];var a=function(e,t){var n=e.trendlines,r=e.majorScale,o=e.minorScale,i=t.animations,a=t.trendLineModel,l=t.layoutService,u=t.orientation,c=Oi(l);return{key:n,type:\"line\",layout:{dock:\"center\"},data:Ii,animations:i,settings:{connect:!0,orientation:u,coordinates:{major:{scale:r,fn:c},minor:{scale:o},layerId:{ref:\"layer\"}},layers:{curve:\"monotone\",line:{strokeWidth:2,stroke:function(e){var t=e.datum;return a.query.getStroke(t.layer.value)},strokeDasharray:function(e){var t=e.datum;return a.query.getLineDash(t.layer.value)}}}}}}(e,{animations:n,trendLineModel:o,layoutService:r,orientation:i}),l=[a];if(e.tooltipOverlay){var u=function(e,t){var n=e.majorScale,r=e.minorScale,o=e.tooltipOverlay,i=t.layoutService,a=\"horizontal\"===t.orientation,l={scale:n,fn:Oi(i)},u={scale:r,ref:\"minor\"};return{key:o,type:\"point\",layout:{dock:\"center\"},data:Ii,settings:{x:a?l:u,y:a?u:l,opacity:0,size:1,sizeLimits:{maxPx:8,minPx:8}}}}(e,{layoutService:r,orientation:i});l.push(u)}return l},Ai=function(e){e.style.dashed?e.style.lineDash=\"8, 4\":e.style.lineDash=\"\"},Ni=function(e){Ai(e),e.qMultiDimMode=\"Sum\",e.qXColIx=0};function Li(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Ti(e){return Math.pow(e.x,2)+Math.pow(e.y,2)}function Pi(e,t,n){var r=Li(n,e),o=Li(t,e),i=Ti(o);if(0===i)return e;var a,l,u,c,s=(l=o,((a=r).x*l.x+a.y*l.y)/i);return s<=0?e:s>=1?t:function(e,t){return{x:e.x+t.x,y:e.y+t.y}}(e,(c=s,{x:(u=o).x*c,y:u.y*c}))}function ji(e){var t,n,r=e.keys,o=e.model,i=e.chart,a=e.pos,l=e.lineNode,u=o,c=i.component(r.trendlines),s=i.scale(r.majorScale),f=i.scale(r.minorScale),d=l.data.layer.value,p=function(e,t){var n=1/0,r=null;if(1===e.length)return e[0];for(var o=0;o<e.length-1;++o){var i=Pi(e[o],e[o+1],t),a=Ti(Li(i,t));a<n&&(n=a,r=i)}return r}(l.data.points.map((function(e){return{x:s(e.dimValue.value)*c.rect.computed.width,y:f(e.minor.value)*c.rect.computed.height}})),a);return u.query.isFlipped(d)?(n=f.invert(p.y/c.rect.computed.height),t=u.query.getCalculatedValue(d,n).y,p.x=s(t)*c.rect.computed.width):(t=s.invert(p.x/c.rect.computed.width),n=u.query.getCalculatedValue(d,t).y,p.y=f(n)*c.rect.computed.height),{key:l.key,children:[],data:{layer:d,x:t,y:n},bounds:{x:p.x,y:p.y,width:0,height:0}}}function Fi(e){var t=e.animations,n=e.chart,r=e.colorService,o=e.isEnabled,i=e.keys,a=void 0===i?{}:i,l=e.layoutService,u=e.orientation,c=e.translator,s=e.getMinMax;a.trendlines||(a.trendlines=\"trend-lines\");var f=Di({layoutService:l,getMinMax:s,colorModel:{settings:function(){return r.getSettings()},resolveUIColor:function(e){return r.getPaletteColor(e)}},chart:n,translator:c,keys:a,isEnabled:o});return{getComponents:function(){return Ei(a,{animations:t,layoutService:l,trendLineModel:f,orientation:u})},getData:function(){return f.query.hasTrendLines()?[{key:\"trend\",data:f.query.getData()}]:[]},collectNodes:function(e){var t=e.nodes,r=e.meta;return function(e){var t=e.keys,n=e.model,r=e.chart,o=e.nodes,i=e.meta;return o.length?[ji({keys:t,model:n,chart:r,pos:i.position.relative,lineNode:o[0]})]:[]}({keys:a,model:f,chart:n,nodes:t,meta:r})},getModel:function(){return f},update:function(){return f.command.update()}}}Fi.propertyPanelProperties=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.translator,n=function(e){var n=r(e.label);return\"string\"===n&&e.label?e.label:\"object\"===n?e.label.qStringExpression?e.label.qStringExpression.qExpr:e.label.qValueExpression.qExpr:t.get(ki.TYPES[e.qType])};return{type:\"array\",ref:\"qTrendLines\",titleTranslation:ki.HEADER,itemTitleRef:n,max:8,allowAdd:!0,allowRemove:!0,allowMove:!1,addTranslation:ki.ADD_BUTTON,add:Ni,items:{label:{ref:\"label\",type:\"string\",expression:\"optional\",translation:\"Common.Label\",defaultValue:\"\"},type:{ref:\"qType\",type:\"string\",component:\"dropdown\",translation:ki.TYPE,options:[{value:fi,translation:ki.TYPES.AVERAGE},{value:di,translation:ki.TYPES.LINEAR},{value:pi,translation:ki.TYPES.POLYNOMIAL2},{value:hi,translation:ki.TYPES.POLYNOMIAL3},{value:mi,translation:ki.TYPES.POLYNOMIAL4},{value:vi,translation:ki.TYPES.EXPONENTIAL},{value:yi,translation:ki.TYPES.LOG},{value:gi,translation:ki.TYPES.POWER}],defaultValue:fi},autoColor:{ref:\"style.autoColor\",type:\"boolean\",translation:\"properties.colors\",component:\"switch\",defaultValue:!0,options:[{value:!0,translation:\"Common.Auto\"},{value:!1,translation:\"Common.Custom\"}]},paletteColor:{ref:\"style.paletteColor\",translation:\"properties.color\",type:\"object\",component:\"color-picker\",dualOutput:!0,defaultValue:Si,show:function(e){return!e.style.autoColor}},dashed:{ref:\"style.dashed\",translation:ki.STYLE.DASHED,type:\"boolean\",defaultValue:!0,change:Ai}}}};var Hi=[\"American Typewriter, serif\",\"Andalé Mono, monospace\",\"Arial Black, sans-serif\",\"Arial, sans-serif\",\"Bradley Hand, cursive\",\"Brush Script MT, cursive\",\"Comic Sans MS, cursive\",\"Courier, monospace\",\"Didot, serif\",\"Georgia, serif\",\"Impact, sans-serif\",\"Lucida Console, monospace\",\"Luminari, fantasy\",\"Monaco, monospace\",\"QlikView Sans, sans-serif\",\"Source Sans Pro, sans-serif\",\"Tahoma, sans-serif\",\"Times New Roman, serif\",\"Trebuchet MS, sans-serif\",\"Verdana, sans-serif\"],Ri=[\"Abril Fatface, serif\",\"Bangers, fantasy\",\"EB Garamond, serif\",\"Fredoka One, fantasy\",\"Graduate, fantasy\",\"Gravitas One, serif\",\"Nixie One, sans-serif\",\"Noto Sans, sans-serif\",\"PT Serif, serif\",\"Permanent Marker, fantasy\",\"Rammetto One, fantasy\",\"Roboto, sans-serif\",\"QlikView Sans, sans-serif\",\"Source Sans Pro, sans-serif\",\"Titan One, fantasy\",\"Open Sans, sans-serif\",\"Montserrat, sans-serif\",\"Raleway, sans-serif\",\"Bebas Neue, sans serif\",\"Lobster, fantasy\",\"Pacifico, cursive\",\"Inter, sans-serif\",\"Indie Flower, fantasy\",\"Yanone Kaffeesatz, sans-serif\"];var zi=function(e){return{value:e,label:e.charAt(0).toUpperCase()+e.slice(1),groupHeader:!1,disabled:!1}};function Vi(e){var t=e.theme,n=e.translator,r=e.defaultValue,o=e.flags,i=[],a=t.getStyle(\"\",\"\",\"fontFamilies\");return Array.isArray(a)&&a.length?i.push.apply(i,c(new Set([r].concat(c(a.map((function(e){return e.split(\",\").map((function(e){return e.trim()})).map((function(e){return e.replace(/\\s+/g,\" \").trim()})).filter(Boolean).join(\", \")}))))))):i.push(r),[{value:\"ThemeHeader\",label:n.get(\"properties.themeFonts\"),metaText:n.get(\"properties.theme\"),groupHeader:!0}].concat(c(i.map((function(e){return zi(e)}))),[{value:\"DefaultHeader\",label:n.get(\"properties.allFonts\"),metaText:n.get(\"properties.default\"),groupHeader:!0}],c(function(e){return null!=e&&e.isEnabled(\"PS_20852_WYSIWYG_FONT_SUPPORT\")?Ri:Hi}(o).map((function(e){return zi(e)}))))}function _i(e){var t=e.theme,n=e.translator,r=e.id,o=e.path,i=e.flags,a=function(){return t.getStyle(r,o,\"fontFamily\")};return{getDefaultValue:function(){return a()},getOptions:function(){return Vi({theme:t,translator:n,defaultValue:a(),flags:i})}}}var Bi=[\"10px\",\"11px\",\"12px\",\"13px\",\"14px\",\"15px\",\"16px\",\"17px\",\"18px\",\"19px\",\"20px\",\"21px\",\"22px\",\"23px\",\"24px\"],Yi=function(e){return{value:e,label:e,groupHeader:!1,disabled:!1}};function $i(e){var t=e.theme,n=e.translator,r=e.id,o=e.path,i=function(){return t.getStyle(r,o,\"fontSize\")};return{getDefaultValue:function(){return i()},getOptions:function(){return function(e){var t=e.theme,n=e.translator,r=e.defaultValue,o=[],i=t.getStyle(\"\",\"\",\"fontSizes\");return Array.isArray(i)&&i.length?o.push.apply(o,c(new Set([r].concat(c(i))))):o.push(r),[{value:\"ThemeHeader\",label:n.get(\"properties.themeFontSizes\"),metaText:n.get(\"properties.theme\"),groupHeader:!0}].concat(c(o.map((function(e){return Yi(e)}))),[{value:\"DefaultHeader\",label:n.get(\"properties.allFontSizes\"),metaText:n.get(\"properties.default\"),groupHeader:!0}],c(Bi.map((function(e){return Yi(e)}))))}({theme:t,translator:n,defaultValue:i()})}}}function Ui(e){var t=e.theme,n=e.translator,r=e.id,o=e.path;return{fontFamily:_i({theme:t,translator:n,id:r,path:o,flags:e.flags}),fontSize:$i({theme:t,translator:n,id:r,path:o})}}function Ki(e){var t=e.theme,n=e.translator,r=e.config,o=void 0===r?{}:r,i=e.flags,a=function(e){var t=e.config,n=void 0===t?{}:t,r=n.id,o=n.paths;return{id:void 0===r?\"object\":\"\".concat(\"object\",\".\").concat(r),paths:Array.isArray(o)?o:[]}}({config:o}),l=a.id,u=a.paths,c={};u.forEach((function(e){for(var r=e.split(\".\"),o=c,a=0;a<r.length;a++){var u=r[a];a===r.length-1?o[u]=Ui({theme:t,translator:n,id:l,path:e,flags:i}):void 0===o[u]&&(o[u]={}),o=o[u]}}));var s=function(e){for(var t=e.split(\".\"),n=c,r=0;r<t.length;r++){var o=t[r];if(void 0===n[o])throw new Error(\"font-resolver: Path '\".concat(e,\"' could not be resolved.\"));n=n[o]}return n};return c.getDefaultValue=function(e){return s(e).getDefaultValue()},c.getOptions=function(e){return s(e).getOptions()},c}export{wt as cache,ut as colorService,St as debouncer,gt as dockService,Ki as fontResolver,bt as getValue,At as layoutService,Mt as memoize,Lt as pluginService,mo as selectionService,qt as setValue,kt as storage,So as themeService,Ct as throttler,si as tooltipService,Fi as trendlinesService};\n","const ChartStyleComponent = (fontResolver, theme, chartId) => {\n const propertyDefs = {};\n propertyDefs.getOptions = (key, ref) => {\n const getFontFamilyComponent = () => ({\n ref: `${ref}.fontFamily`,\n component: 'dropdown',\n options: () => fontResolver.getOptions(`${ref}.fontFamily`),\n defaultValue: () => fontResolver.getDefaultValue(`${ref}.fontFamily`),\n });\n\n const getFontSizeComponent = () => ({\n ref: `${ref}.fontSize`,\n component: 'dropdown',\n width: true,\n options: () => fontResolver.getOptions(`${ref}.fontSize`),\n defaultValue: () => fontResolver.getDefaultValue(`${ref}.fontSize`),\n });\n\n const getColorComponent = (theme, chartId) => ({\n ref: `${ref}.fontColor`,\n component: 'color-picker',\n width: false,\n defaultValue: () => {\n const color = theme.getStyle(chartId, `${ref}.color`, 'color');\n const palette = theme.getDataColorPickerPalettes()[0].colors;\n const index = palette.indexOf(color);\n return { color, index };\n },\n });\n\n const getFontWrapperComponent = (theme, chartId) => ({\n fontWrapper: {\n component: 'inline-wrapper',\n items: {\n fontSize: {\n ...getFontSizeComponent(),\n },\n fontColor: {\n ...getColorComponent(theme, chartId),\n },\n },\n },\n });\n return {\n labelSection: {\n component: 'items',\n ref: 'components',\n key,\n items: {\n fontFamily: {\n ...getFontFamilyComponent(),\n },\n ...getFontWrapperComponent(theme, chartId),\n },\n },\n };\n };\n return propertyDefs;\n};\n\nexport const getChartFontResolver = (theme, translator, chartId, createFontResolver, flags) =>\n createFontResolver({\n theme,\n translator,\n flags,\n config: {\n id: chartId,\n paths: ['axis.title', 'axis.label.name', 'label.value', 'legend.title', 'legend.label'],\n },\n });\n\nconst overrides = (key, layout) => (layout.components || []).find((c) => c.key === key);\n\nexport const getAxisTitleStyle = (chartId, theme, layout, flags) => {\n const axis = flags.isEnabled('CLIENT_IM_3364') ? overrides('axis', layout)?.axis : {};\n return {\n text: {\n fontFamily: axis?.title?.fontFamily || theme.getStyle(chartId, 'axis.title', 'fontFamily'),\n fontSize: axis?.title?.fontSize || theme.getStyle(chartId, 'axis.title', 'fontSize'),\n fill: axis?.title?.fontColor?.color || theme.getStyle(chartId, 'axis.title', 'color'),\n },\n };\n};\nexport const getAxisLabelStyle = (chartId, theme, layout, flags) => {\n const axis = flags.isEnabled('CLIENT_IM_3364') ? overrides('axis', layout)?.axis : {};\n return {\n labels: {\n fontFamily: axis?.label?.name?.fontFamily || theme.getStyle(chartId, 'axis.label.name', 'fontFamily'),\n fontSize: axis?.label?.name?.fontSize || theme.getStyle(chartId, 'axis.label.name', 'fontSize'),\n fill: axis?.label?.name?.fontColor?.color || theme.getStyle(chartId, 'axis.label.name', 'color'),\n },\n };\n};\n\nexport const getValueLabelStyle = (chartId, styles, layout, flags) => {\n const value = flags.isEnabled('CLIENT_IM_3364') ? overrides('value', layout)?.label : {};\n const fontFamily = value?.value?.fontFamily || styles.label.value.fontFamily;\n let fontSize = value?.value?.fontSize || styles.label.value.fontSize;\n fontSize = parseFloat(fontSize);\n const fill = value?.value?.fontColor?.color;\n return {\n fontFamily,\n fontSize,\n fill,\n };\n};\n\nexport const getLegendTitleStyle = (chartId, theme, layout, flags) => {\n const legend = flags.isEnabled('CLIENT_IM_3051') ? overrides('legend', layout)?.legend : {};\n return {\n fontFamily: legend?.title?.fontFamily || theme.getStyle(chartId, 'legend.title', 'fontFamily'),\n fontSize: legend?.title?.fontSize || theme.getStyle(chartId, 'legend.title', 'fontSize'),\n color: legend?.title?.fontColor?.color || theme.getStyle(chartId, 'legend.title', 'color'),\n };\n};\n\nexport const getLegendLabelStyle = (chartId, theme, layout, flags) => {\n const legend = flags.isEnabled('CLIENT_IM_3051') ? overrides('legend', layout)?.legend : {};\n return {\n fontFamily: legend?.label?.fontFamily || theme.getStyle(chartId, 'legend.label', 'fontFamily'),\n fontSize: legend?.label?.fontSize || theme.getStyle(chartId, 'legend.label', 'fontSize'),\n color: legend?.label?.fontColor?.color || theme.getStyle(chartId, 'legend.label', 'color'),\n };\n};\n\nexport default ChartStyleComponent;\n","const CHART_ID = 'object.waterfallChart';\n\nfunction getShapeColor(layout, theme, name, defaultColor, defaultIndex) {\n const layoutColor = layout.color || layout.qDef.color;\n if (!layoutColor || layoutColor.auto || !layoutColor[name]) {\n const color = theme.getStyle(CHART_ID, `shape.${name}`, 'fill') || defaultColor;\n const index = defaultIndex; // chartStyleUtils.Theme.currentPalette.indexOf(color);\n return { index, color };\n }\n\n return layoutColor[name].paletteColor;\n}\n\nfunction getColorForPositiveValue(layout, theme) {\n return theme.getColorPickerColor(getShapeColor(layout, theme, 'positiveValue', null, 6));\n}\n\nfunction getColorForNegativeValue(layout, theme) {\n return theme.getColorPickerColor(getShapeColor(layout, theme, 'negativeValue', '#cc6677', -1));\n}\n\nfunction getColorForSubtotal(layout, theme) {\n return theme.getColorPickerColor(getShapeColor(layout, theme, 'subtotal', '#c3c3c3', -1));\n}\n\nconst waterfallUtils = {\n valueTypes: {\n NORMAL: 'NORMAL',\n INVERSE: 'INVERSE',\n SUBTOTAL: 'SUBTOTAL',\n },\n chartID: CHART_ID,\n getColorForPositiveValue,\n getColorForNegativeValue,\n getColorForSubtotal,\n};\n\nObject.freeze(waterfallUtils.valueTypes);\nObject.freeze(waterfallUtils);\n\nexport default waterfallUtils;\n","/**\n * Gets definition of items that should be in the styling panel for the chart.\n * @param {*} flags\n * @param {*} styleOptions\n * @returns definition or undefined if nothing is toggled on by feature flags\n */\nconst getStylingItems = (flags, styleOptions) => {\n const items = {};\n\n if (flags?.isEnabled('CLIENT_IM_3364')) {\n items.axisLabelSection = {\n translation: 'properties.axis.label',\n component: 'panel-section',\n items: styleOptions.getOptions('axis', 'axis.label.name'),\n };\n items.valueLabelSection = {\n translation: 'properties.value.label',\n component: 'panel-section',\n items: styleOptions.getOptions('value', 'label.value'),\n };\n }\n\n if (flags?.isEnabled('CLIENT_IM_3051')) {\n items.legendLabelSection = {\n translation: 'properties.legend.label',\n component: 'panel-section',\n items: styleOptions.getOptions('legend', 'legend.label'),\n };\n }\n\n return Object.keys(items).length > 0 ? items : undefined;\n};\n\nconst getStylingPanelDefinition = (bkgOptionsEnabled, styleOptions, flags) => ({\n component: 'styling-panel',\n chartTitle: 'Object.WaterfallChart',\n translation: 'LayerStyleEditor.component.styling',\n subtitle: 'LayerStyleEditor.component.styling',\n ref: 'components',\n useGeneral: true,\n useBackground: bkgOptionsEnabled,\n items: getStylingItems(flags, styleOptions),\n});\n\nexport default getStylingPanelDefinition;\n","import extend from 'extend';\nimport { fontResolver as createFontResolver, getValue } from 'qlik-chart-modules';\n// import defaultProperties from '../../../assets/client/property-panel/default-properties';\nimport ChartStyleComponent, { getChartFontResolver } from '@qlik/common/extra/chart-style-component';\nimport waterfallUtils from './waterfallchart-utils';\nimport getStylingPanelDefinition from './styling-panel-property-definiton';\n\nfunction colorIsNotAuto(data) {\n return !data.color.auto;\n}\n\nexport default function propertyDefinition(env) {\n const { flags, translator } = env;\n // feature flags\n const stylingPanelEnabled = env.flags.isEnabled('SENSECLIENT_IM_2020_STYLINGPANEL_WATERFALLCHART');\n const bkgOptionsEnabled = env.flags.isEnabled('SENSECLIENT_IM_2020_WATERFALLCHART_BG');\n const data = {\n uses: 'data',\n addTranslation: 'Properties.AddData',\n items: {\n measures: {\n disabledRef: '',\n items: {\n numberFormatting: {\n show: false,\n },\n valueType: {\n type: 'string',\n component: 'dropdown',\n ref: 'qDef.valueType',\n translation: 'properties.waterfall.measureOperation',\n options: [\n {\n value: waterfallUtils.valueTypes.NORMAL,\n translation: 'properties.waterfall.measureOperation.add',\n },\n {\n value: waterfallUtils.valueTypes.INVERSE,\n translation: 'properties.waterfall.measureOperation.subtract',\n },\n {\n value: waterfallUtils.valueTypes.SUBTOTAL,\n translation: 'properties.waterfall.measureOperation.subtotal',\n },\n ],\n defaultValue: waterfallUtils.valueTypes.NORMAL,\n },\n subTotal: {\n ref: 'qDef.subtotal.enable',\n type: 'boolean',\n defaultValue: false,\n translation: 'properties.waterfall.measureOperation.subtotal',\n show(data) {\n return data.qDef.valueType !== waterfallUtils.valueTypes.SUBTOTAL;\n },\n },\n subTotalLabel: {\n translation: 'properties.waterfall.subtotalLabel',\n component: 'string',\n expression: 'optional',\n ref: 'qDef.subtotal.label',\n defaultValue() {\n return translator.get('properties.waterfall.measureOperation.subtotal');\n },\n show(data) {\n return (\n data.qDef.valueType !== waterfallUtils.valueTypes.SUBTOTAL &&\n data.qDef.subtotal &&\n data.qDef.subtotal.enable\n );\n },\n },\n },\n },\n },\n };\n\n const theme = env.anything.sense.theme;\n const fontResolver = getChartFontResolver(theme, translator, waterfallUtils.chartID, createFontResolver, flags);\n const styleOptions = ChartStyleComponent(fontResolver, theme, waterfallUtils.chartID);\n const presentation = {\n type: 'items',\n translation: 'properties.presentation',\n grouped: true,\n items: {\n styleEditor: stylingPanelEnabled && getStylingPanelDefinition(bkgOptionsEnabled, styleOptions, flags),\n gridLines: {\n type: 'items',\n snapshot: {\n tid: 'property-gridLines',\n },\n items: {\n showGridLines: {\n ref: 'gridlines.auto',\n type: 'boolean',\n translation: 'properties.gridLine.spacing',\n component: 'switch',\n defaultValue: true,\n options: [\n {\n value: true,\n translation: 'Common.Auto',\n },\n {\n value: false,\n translation: 'Common.Custom',\n },\n ],\n },\n gridSpacing: {\n ref: 'gridlines.spacing',\n type: 'number',\n component: 'dropdown',\n defaultValue: 2,\n options: [\n {\n value: 0,\n translation: 'properties.gridLine.noLines',\n },\n {\n value: 2,\n translation: 'properties.gridLine.medium',\n },\n {\n value: 3,\n translation: 'properties.gridLine.narrow',\n },\n ],\n show(data) {\n return data.gridlines && !data.gridlines.auto;\n },\n },\n },\n },\n showLabels: {\n ref: 'dataPoint.showLabels',\n type: 'boolean',\n translation: 'properties.dataPoints.labelmode',\n component: 'switch',\n defaultValue: true,\n options: [\n {\n value: true,\n translation: 'Common.Auto',\n },\n {\n value: false,\n translation: 'properties.off',\n },\n ],\n snapshot: {\n tid: 'property-dataPoints',\n },\n },\n },\n };\n\n const autoColor = {\n ref: 'color.auto',\n type: 'boolean',\n component: 'switch',\n defaultValue: true,\n options: [\n {\n value: true,\n translation: 'Common.Auto',\n },\n {\n value: false,\n translation: 'Common.Custom',\n },\n ],\n };\n const positiveValueColor = {\n ref: 'color.positiveValue.paletteColor',\n translation: 'properties.waterfall.color.positiveValueColor',\n type: 'object',\n component: 'color-picker',\n dualOutput: true,\n defaultValue: { index: 6, color: null },\n show: colorIsNotAuto,\n };\n const negativeValueColor = {\n ref: 'color.negativeValue.paletteColor',\n translation: 'properties.waterfall.color.negativeValueColor',\n type: 'object',\n component: 'color-picker',\n dualOutput: true,\n defaultValue: { index: -1, color: '#cc6677' },\n show: colorIsNotAuto,\n };\n const subtotalColor = {\n ref: 'color.subtotal.paletteColor',\n translation: 'properties.waterfall.color.subtotalColor',\n type: 'object',\n component: 'color-picker',\n dualOutput: true,\n defaultValue: { index: -1, color: '#c3c3c3' },\n show: colorIsNotAuto,\n };\n\n const simpleColors = {\n classification: {\n section: 'color',\n tags: ['simple'],\n exclusive: true,\n },\n type: 'items',\n items: {\n simpleItems: {\n items: {\n autoColor: {\n ...autoColor,\n label: (data) => translator.get(data.color?.auto ? 'Common.Auto' : 'Common.Custom'),\n },\n positiveValueColor,\n negativeValueColor,\n subtotalColor,\n },\n },\n },\n };\n\n const colors = {\n translation: 'properties.colorsAndLegend',\n type: 'items',\n grouped: true,\n items: {\n colors: {\n type: 'items',\n items: {\n autoColor: {\n ...autoColor,\n translation: 'properties.colors',\n },\n positiveValueColor,\n negativeValueColor,\n subtotalColor,\n },\n },\n simpleColors,\n legend: {\n type: 'items',\n items: {\n show: {\n ref: 'legend.show',\n type: 'boolean',\n translation: 'properties.legend.show',\n component: 'switch',\n defaultValue: true,\n options: [\n {\n value: true,\n translation: 'Common.Auto',\n },\n {\n value: false,\n translation: 'properties.off',\n },\n ],\n },\n dock: {\n type: 'string',\n component: 'dropdown',\n ref: 'legend.dock',\n translation: 'properties.legend.position',\n options: [\n {\n value: 'auto',\n translation: 'Common.Auto',\n },\n {\n value: 'right',\n translation: 'properties.dock.right',\n },\n {\n value: 'bottom',\n translation: 'Common.Bottom',\n },\n {\n value: 'left',\n translation: 'properties.dock.left',\n },\n {\n value: 'top',\n translation: 'Common.Top',\n },\n ],\n defaultValue: 'auto',\n show(data) {\n return getValue(data, 'legend.show', true);\n },\n },\n },\n },\n },\n };\n\n const measureAxis = {\n uses: 'axis.picasso.measureAxis',\n label: translator.get('properties.yAxis'),\n items: {\n axis: {\n items: {\n measureAxisTitle: {\n component: 'header',\n type: 'string',\n label: translator.get('properties.yAxis'),\n classification: {\n section: 'axis',\n tags: ['simple'],\n exclusive: true,\n },\n },\n show: {\n translation: 'properties.labels',\n defaultValue: 'labels',\n options: [\n {\n value: 'labels',\n translation: 'properties.labels',\n },\n {\n value: 'none',\n translation: 'Common.None',\n },\n null,\n null,\n ],\n },\n },\n },\n },\n };\n\n const dimensionAxis = {\n uses: 'axis.picasso.dimensionAxis',\n items: {\n othersGroup: {\n items: {\n show: {\n translation: 'properties.labels',\n defaultValue: 'labels',\n options: [\n {\n value: 'labels',\n translation: 'properties.labels',\n },\n {\n value: 'none',\n translation: 'Common.None',\n },\n null,\n null,\n ],\n },\n label: {\n options: flags.isEnabled('SENSECLIENT_LAYERED_LABELS')\n ? [\n {\n value: 'auto',\n translation: 'Common.Auto',\n },\n {\n value: 'horizontal',\n translation: 'Common.Horizontal',\n },\n {\n value: 'tilted',\n translation: 'properties.labels.tilted',\n },\n {\n value: 'layered',\n translation: 'properties.labels.layered',\n },\n ]\n : undefined,\n },\n },\n },\n },\n };\n\n const simpleLabels = {\n items: {\n labels: {\n items: {\n header: {\n show(props) {\n return props.qHyperCubeDef.qMeasures?.length;\n },\n },\n pointLabels: {\n component: 'checkbox',\n ref: 'dataPoint.showLabels',\n type: 'boolean',\n defaultValue: true,\n translation: 'Simple.Label.Value',\n show(props) {\n return props.qHyperCubeDef.qMeasures?.length;\n },\n },\n },\n },\n },\n };\n\n const settings = {\n uses: 'settings',\n items: {\n simpleLabels,\n presentation,\n colors,\n measureAxis,\n dimensionAxis,\n },\n };\n\n const addons = {\n type: 'items',\n component: 'expandable-items',\n translation: 'properties.addons',\n items: {\n dataHandling: {\n uses: 'dataHandling',\n items: {\n suppressZero: null,\n calcCond: {\n uses: 'calcCond',\n },\n },\n },\n refLines: {\n uses: 'reflines',\n items: {\n colorBackground: {\n show: false,\n },\n },\n },\n },\n };\n const numberFormatting = {\n translation: 'properties.numberFormatting',\n type: 'items',\n globalChange(data) {\n data.qHyperCubeDef.qMeasures.forEach((measure) => {\n measure.qDef.numFormatFromTemplate = data.qDef.numFormatFromTemplate;\n measure.qDef.qNumFormat = extend(true, {}, data.qDef.qNumFormat);\n });\n },\n items: {\n numberFormatting: {\n uses: 'measures.items.numberFormatting',\n items: { numberFormattingType: undefined },\n },\n },\n };\n\n return {\n type: 'items',\n component: 'accordion',\n items: {\n data,\n numberFormatting,\n addons,\n settings,\n },\n };\n}\n","import pp from './waterfallchart-properties';\nimport dataDefinition from './waterfallchart-data-definition';\nimport { importProperties, exportProperties } from './waterfallchart-import-export';\n\nexport default function ext(env) {\n if (!env.anything?.sense) {\n return undefined;\n }\n\n return {\n definition: pp(env),\n support: {\n cssScaling: false,\n snapshot: true,\n export: true,\n exportData: true,\n sharing: true,\n viewData: true,\n },\n importProperties(exportFormat, initialProperties, extension) {\n extension.mapProperties();\n\n const defaultPropertyValues = {\n defaultDimension: extension.getDefaultDimensionProperties(),\n defaultMeasure: extension.getDefaultMeasureProperties(),\n };\n return importProperties({\n dataDefinition: dataDefinition(env),\n defaultPropertyValues,\n exportFormat,\n initialProperties,\n });\n },\n exportProperties(propertyTree, hyperCubePath, viewDataMode) {\n return exportProperties({ propertyTree, viewDataMode });\n },\n };\n}\n","/* eslint-disable prefer-rest-params */\n/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\n\n/* Simple JavaScript Inheritance\n * By John Resig http://ejohn.org/\n * MIT Licensed.\n * Modified by Qliktech\n */\n// Inspired by base2 and Prototype\n\n/* eslint no-new-func:0,no-unused-vars:0 */\n\nconst fnTest = /xyz/.test(() => {\n let xyz;\n})\n ? /\\b_super\\b/\n : /.*/;\n\n/**\n * Helper module for creating subclasses (or rather prototypal inheritance) of superclasses.\n *\n * @class\n *\n * @example\n * var Animal = Class.extend( \"Animal\", {\n * init: function ( name ) {\n * this.name = name || \"Unnamed\";\n * },\n * say: function ( sound ) {\n * console.log( this.name + \" says \" + sound );\n * }\n * } );\n *\n * var Cat = Animal.extend( \"Cat\", {\n * say: function () {\n * this._super( \"Meouw\" );\n * }\n * } );\n *\n * var cat = new Cat( \"Gustaf\" );\n * cat.say(); => \"Gustaf says Meouw\"\n *\n * @example\n * var MyClass = Class.extend();\n *\n * var a = new MyClass();\n * console.log( a instanceof MyClass ) // => true\n * console.log( a.constructor.name ) // => Class\n *\n * @example\n * var MyClass = Class.extend( \"MyClass\" );\n *\n * var a = new MyClass();\n * console.log( a instanceof MyClass ) // => true\n * console.log( a.constructor.name ) // => MyClass\n *\n */\nconst Class = function () {};\n\n/**\n * This method is available inside each function defined on the prototype when using {@link module:assets/core/utils/class~Class.extend}.\n *\n * It will invoke the super class' method with the same name, but it's up to programmer to invoke it with the arguments needed.\n * @method module:assets/core/utils/class~Class#_super\n */\n\n/**\n * Create a new Class that inherits from this class\n * @param {String} [className=\"Class\"] The name of the new class constructor.\n * @param {Object} proto The prototype for the new class.\n */\nClass.extend = function extend(className, proto) {\n const _super = this.prototype;\n\n if (typeof className !== 'string') {\n proto = className;\n className = 'Class';\n }\n\n // Instantiate a base class (but only create the instance,\n // don't run the init constructor)\n const prototype = Object.create(this.prototype);\n\n // Copy the properties over onto the new prototype\n for (const name in proto) {\n // Check if we're overwriting an existing function\n prototype[name] =\n typeof proto[name] === 'function' && typeof _super[name] === 'function' && fnTest.test(proto[name])\n ? (function (name, fn) {\n return function () {\n const tmp = this._super;\n\n // Add a new ._super() method that is the same method\n // but on the super-class\n this._super = _super[name];\n\n // The method only need to be bound temporarily, so we\n // remove it when we're done executing\n const ret = fn.apply(this, arguments);\n this._super = tmp;\n\n return ret;\n };\n })(name, proto[name])\n : proto[name];\n }\n\n if (!/^[_a-z][_a-z\\d]*$/i.test(className)) {\n throw new Error('Invalid subclass name. Alphanumericals only.');\n }\n\n // The dummy class constructor\n const ctor = new Function(\n `return (function ${className}(){ typeof this.init === 'function' && this.init.apply(this, [].slice.call(arguments)) });`\n )();\n\n // Populate our constructed prototype object\n ctor.prototype = prototype;\n\n // Enforce the constructor to be what we expect\n ctor.prototype.constructor = ctor;\n\n // And make this class extendable\n ctor.extend = extend;\n\n return ctor;\n};\n\nexport default Class;\n","// private\nconst idGen = {\n getChar(value) {\n // 0 o O i I l\n const banned = [48, 111, 79, 105, 73, 108];\n let val = value;\n\n let charCode;\n if (val > 9) {\n charCode = 65 + val - 10;\n if (charCode > 90) {\n charCode += 6;\n }\n } else {\n val = `${val}`.charCodeAt(0);\n }\n return banned.indexOf(charCode) > -1 ? this.getChar(val + 1) : String.fromCharCode(charCode);\n },\n base62(value) {\n const chr = this.getChar(value % 62);\n const y = Math.floor(value / 62);\n return y > 0 ? this.base62(y) + chr : chr;\n },\n id() {\n const s = this.base62(Math.round(Math.random() * (1e13 - 1e11) + 1e11));\n return s.replace(/\\W/g, '');\n },\n};\n\nexport default function generateId() {\n return idGen.id();\n}\n","const SCROLLBAR_KEY = 'scrollbar';\n\nfunction getActions(isEnabledFn) {\n function targetIsScrollbar(manager, e) {\n if (!e || !isEnabledFn()) {\n return false;\n }\n const startPoint = {\n x: e.center.x - e.deltaX,\n y: e.center.y - e.deltaY,\n };\n const components = this.chart.componentsFromPoint(startPoint);\n return components.some((c) => c.settings.key === SCROLLBAR_KEY);\n }\n\n const tap = {\n // single tap\n type: 'Tap',\n options: {\n enable: targetIsScrollbar,\n },\n events: {\n tap(e) {\n this.chart.component(SCROLLBAR_KEY).emit('tap', e);\n },\n },\n };\n\n const pan = {\n type: 'Pan',\n options: {\n enable: targetIsScrollbar,\n },\n events: {\n panstart(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panStart', e);\n },\n pan(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panMove', e);\n },\n panend(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panEnd', e);\n },\n pancancel(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panCancel', e);\n },\n },\n };\n\n const actions = [tap, pan];\n return actions;\n}\n\nexport default getActions;\n","function getAxisDock(direction, dock, isRtl) {\n return direction === 'y' ? getYAxisDock(dock, isRtl) : getXAxisDock(dock);\n}\n\nfunction getOppositeAxisDock(direction, dock, isRtl) {\n const oppositeDock = dock === 'far' ? 'near' : 'far';\n return getAxisDock(direction, oppositeDock, isRtl);\n}\n\nfunction getYAxisDock(dock, isRtl) {\n const yDockNearFar = dock || 'near';\n return (isRtl && yDockNearFar === 'near') || (!isRtl && yDockNearFar === 'far') ? 'right' : 'left';\n}\n\nfunction getXAxisDock(dock) {\n return dock === 'far' ? 'top' : 'bottom';\n}\n\nexport default {\n getAxisDock,\n getOppositeAxisDock,\n getYAxisDock,\n};\n","// Source: https://en.wikipedia.org/wiki/Bi-directional_text and http://www.unicode.org/Public/6.0.0/ucd/UnicodeData.txt\n// 3 types of strong direction characters: L (strong left-to-right), R(strong right-to-left, Hebrew) and AL(strong right-to-left, Arabic language)\nconst rangesOfLChars =\n '[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u02BB-\\u02C1\\u02D0-\\u02D1\\u02E0-\\u02E4\\u02EE\\u0370-\\u0373\\u0376-\\u037D\\u0386\\u0388-\\u03F5\\u03F7-\\u0482\\u048A-\\u0589\\u0903-\\u0939\\u093B\\u093D-\\u0940\\u0949-\\u094C\\u094E-\\u0950\\u0958-\\u0961\\u0964-\\u097F\\u0982-\\u09B9\\u09BD-\\u09C0\\u09C7-\\u09CC\\u09CE-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09FA\\u0A03-\\u0A39\\u0A3E-\\u0A40\\u0A59-\\u0A6F\\u0A72-\\u0A74\\u0A83-\\u0AB9\\u0ABD-\\u0AC0\\u0AC9-\\u0ACC\\u0AD0-\\u0AE1\\u0AE6-\\u0AEF\\u0B02-\\u0B39\\u0B3D-\\u0B3E\\u0B40\\u0B47-\\u0B4C\\u0B57-\\u0B61\\u0B66-\\u0B77\\u0B83-\\u0BBF\\u0BC1-\\u0BCC\\u0BD0-\\u0BF2\\u0C01-\\u0C3D\\u0C41-\\u0C44\\u0C58-\\u0C61\\u0C66-\\u0C6F\\u0C7F-\\u0CB9\\u0CBD-\\u0CCB\\u0CD5-\\u0CE1\\u0CE6-\\u0D40\\u0D46-\\u0D4C\\u0D4E-\\u0D61\\u0D66-\\u0DC6\\u0DCF-\\u0DD1\\u0DD8-\\u0E30\\u0E32-\\u0E33\\u0E40-\\u0E46\\u0E4F-\\u0EB0\\u0EB2-\\u0EB3\\u0EBD-\\u0EC6\\u0ED0-\\u0F17\\u0F1A-\\u0F34\\u0F36\\u0F38\\u0F3E-\\u0F6C\\u0F7F\\u0F85\\u0F88-\\u0F8C\\u0FBE-\\u0FC5\\u0FC7-\\u102C\\u1031\\u1038\\u103B-\\u103C\\u103F-\\u1057\\u105A-\\u105D\\u1061-\\u1070\\u1075-\\u1081\\u1083-\\u1084\\u1087-\\u108C\\u108E-\\u109C\\u109E-\\u135A\\u1360-\\u138F\\u13A0-\\u13F4\\u1401-\\u167F\\u1681-\\u169A\\u16A0-\\u1711\\u1720-\\u1731\\u1735-\\u1751\\u1760-\\u1770\\u1780-\\u17B6\\u17BE-\\u17C5\\u17C7-\\u17C8\\u17D4-\\u17DA\\u17DC\\u17E0-\\u17E9\\u1810-\\u18A8\\u18AA-\\u191C\\u1923-\\u1926\\u1929-\\u1931\\u1933-\\u1938\\u1946-\\u19DA\\u1A00-\\u1A16\\u1A19-\\u1A55\\u1A57\\u1A61\\u1A63-\\u1A64\\u1A6D-\\u1A72\\u1A80-\\u1AAD\\u1B04-\\u1B33\\u1B35\\u1B3B\\u1B3D-\\u1B41\\u1B43-\\u1B6A\\u1B74-\\u1B7C\\u1B82-\\u1BA1\\u1BA6-\\u1BA7\\u1BAA-\\u1BE5\\u1BE7\\u1BEA-\\u1BEC\\u1BEE\\u1BF2-\\u1C2B\\u1C34-\\u1C35\\u1C3B-\\u1C7F\\u1CD3\\u1CE1\\u1CE9-\\u1CEC\\u1CEE-\\u1DBF\\u1E00-\\u1FBC\\u1FBE\\u1FC2-\\u1FCC\\u1FD0-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FFC\\u200E\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E-\\u214F\\u2160-\\u2188\\u2336-\\u237A\\u2395\\u249C-\\u24E9\\u26AC\\u2800-\\u28FF\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2D00-\\u2D70\\u2D80-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u31BA\\u31F0-\\u321C\\u3220-\\u324F\\u3260-\\u327B\\u327F-\\u32B0\\u32C0-\\u32CB\\u32D0-\\u3376\\u337B-\\u33DD\\u33E0-\\u33FE\\u3400-\\u4DB5\\u4E00-\\uA48C\\uA4D0-\\uA60C\\uA610-\\uA66E\\uA680-\\uA6EF\\uA6F2-\\uA6F7\\uA722-\\uA787\\uA789-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA824\\uA827\\uA830-\\uA837\\uA840-\\uA873\\uA880-\\uA8C3\\uA8CE-\\uA8D9\\uA8F2-\\uA925\\uA92E-\\uA946\\uA952-\\uA97C\\uA983-\\uA9B2\\uA9B4-\\uA9B5\\uA9BA-\\uA9BB\\uA9BD-\\uAA28\\uAA2F-\\uAA30\\uAA33-\\uAA34\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA4D-\\uAAAF\\uAAB1\\uAAB5-\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2-\\uABE4\\uABE6-\\uABE7\\uABE9-\\uABEC\\uABF0-\\uFB17\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFDC]';\nconst rangesOfRChars =\n '[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05F4\\u07C0-\\u07EA\\u07F4-\\u07F5\\u07FA-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u0858\\u085E\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB4F]';\nconst rangesOfALChars =\n '[\\u0608\\u060B\\u060D\\u061B-\\u064A\\u066D-\\u066F\\u0671-\\u06D5\\u06E5-\\u06E6\\u06EE-\\u06EF\\u06FA-\\u070D\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\uFB50-\\uFD3D\\uFD50-\\uFDFC\\uFE70-\\uFEFC]';\n// eslint-disable-next-line no-misleading-character-class\nconst rangesOfLRgExp = new RegExp(rangesOfLChars);\nconst rangesOfRRgExp = new RegExp(rangesOfRChars);\nconst rangesOfALRgExp = new RegExp(rangesOfALChars);\n\nconst // left-to-right marker\n lrm = String.fromCharCode(8206); // right-to-left marker\n\nconst rlm = String.fromCharCode(8207);\n\nfunction isLtrChar(c) {\n return rangesOfLRgExp.test(c);\n}\n\nfunction isRtlChar(c) {\n return rangesOfRRgExp.test(c) || rangesOfALRgExp.test(c);\n}\n\nfunction detectTextDirection(s) {\n const n = s ? s.length : 0;\n let i;\n let c;\n for (i = 0; i < n; i++) {\n c = s[i];\n if (isLtrChar(c)) {\n return 'ltr';\n }\n if (isRtlChar(c)) {\n return 'rtl';\n }\n }\n return 'ltr';\n}\n\nexport default {\n lrm,\n rlm,\n detectTextDirection,\n};\n","import extend from 'extend';\nimport RtlUtil from '../../../../extra/rtl-util';\n\n/**\n * Get Picasso settings for an individual ref-line.\n *\n * @param {*} settings Default settings for the ref-line\n * @param {*} lineColorIndex Chart builder options + paletteColor option\n */\nfunction lineSettings(settings, options) {\n const lineStroke =\n typeof options.paletteColor !== 'undefined'\n ? options.theme.getColorPickerColor(options.paletteColor)\n : 'transparent';\n const defaultSettings = {\n value: 0,\n line: {\n stroke: lineStroke,\n strokeDasharray: options?.style?.lineType,\n },\n };\n return extend(true, defaultSettings, settings || {});\n}\n\n/**\n * Get Picasso settings for an individual ref-line used to display label and OOB.\n *\n * @param {*} settings Default settings for the ref-line label\n * @param {*} options Chart builder options + paletteColor option\n */\nfunction lineLabelSettings(settings, options) {\n const chartID = options && options.chartID; // Should we validate if the parameter exists?\n let labelColor = options.theme.getStyle(chartID, 'referenceLine.label.name', 'color');\n const labelFontSize = options.theme.getStyle(chartID, 'referenceLine.label.name', 'fontSize');\n const labelFontFamily = options.theme.getStyle(chartID, 'referenceLine.label.name', 'fontFamily');\n\n if (options.paletteColor) {\n labelColor = options.theme.getColorPickerColor(options.paletteColor);\n } else if (!labelColor) {\n labelColor = 'transparent';\n }\n\n const defaultSettings = {\n value: 0,\n line: {\n stroke: 'transparent',\n },\n label: {\n align: 'center',\n vAlign: 'middle',\n text: '',\n fill: labelColor,\n fontFamily: labelFontFamily,\n fontSize: labelFontSize,\n maxWidthPx: 135,\n },\n };\n return extend(true, defaultSettings, settings || {});\n}\n\nconst isVisible = (refLine) =>\n refLine && refLine.show !== false && refLine.show !== 0 && refLine.show !== '0' && refLine.refLineExpr !== undefined;\n\nfunction getRefLineTitle({ refLine, label, valueString }) {\n if (refLine.showValue !== false) {\n if (refLine.showLabel !== false) {\n return `${label} ${RtlUtil.lrm}(${valueString})${RtlUtil.lrm}`;\n }\n return `${RtlUtil.lrm}(${valueString})${RtlUtil.lrm}`;\n }\n if (refLine.showLabel !== false) {\n return label;\n }\n return '';\n}\n\nexport default {\n lineSettings,\n lineLabelSettings,\n isVisible,\n getRefLineTitle,\n};\n","import DimensionMeasureChartLayoutSettings from './layout-settings';\n\nconst constants = {\n SHOW_AXIS_LABELS_OPTIONS: ['all', 'labels'], // show dim/measure axis labels when it matches one of this values\n SHOW_TITLE_OPTIONS: ['all', 'title'], // show the dimension/measure title when the show option matches one of these values\n HORIZONTAL: 'horizontal',\n VERTICAL: 'vertical',\n LAYOUTSETTINGS: DimensionMeasureChartLayoutSettings,\n};\n\nconstants.DEFAULT_CHART_ORIENTATION = constants.HORIZONTAL;\n\nexport default constants;\n","export default {\n lasso: {\n displayOrder: 10000,\n },\n rangeDim: {\n displayOrder: 10000,\n },\n rangeMeasure: {\n displayOrder: 10000,\n },\n rangeMinor: {\n displayOrder: 10000,\n },\n\n // SPARK\n scrollBar: {\n minimumLayoutMode: 'SPARK',\n prioOrder: -1,\n displayOrder: 100,\n },\n\n refLines: {\n layout: {\n minimumLayoutMode: 'SPARK',\n prioOrder: 60,\n displayOrder: 1110,\n },\n },\n\n // XMALL\n measureAxisTitle: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 30,\n displayOrder: 90,\n },\n dimensionAxisTitle: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 30,\n displayOrder: 90,\n },\n\n measureAxis: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 10,\n displayOrder: 80,\n },\n dimensionAxis: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 10,\n displayOrder: 80,\n },\n\n gridLines: {\n minimumLayoutMode: 'XSMALL',\n displayOrder: -100,\n },\n\n // SMALL\n refLinesLabels: {\n minimumLayoutMode: 'SMALL',\n prioOrder: 60,\n displayOrder: 0,\n },\n};\n","import extend from 'extend';\nimport generateId from '../../../../extra/generate-id';\nimport getScrollActions from '../../../scroll/scroll-actions';\nimport axisDockUtil from '../../components/util/axis-dock-util';\nimport refLineUtil from '../../components/util/ref-line-util';\nimport CONSTANTS from './constants';\n\nconst SENSE_PICASSO_SPACING_COEFFICIENT = 100;\n\nfunction DimensionMeasureChart(chartBuilder, opts) {\n const options = opts || {};\n\n const measureAxisProperties = options.measureAxisProperties || {};\n const dimensionAxisProperties = options.dimensionAxisProperties || {};\n const chartOrientation = options.orientation || CONSTANTS.DEFAULT_CHART_ORIENTATION;\n const isChartHorizontal = chartOrientation === CONSTANTS.HORIZONTAL;\n const measureDirection = isChartHorizontal ? 'x' : 'y';\n const dimensionDirection = isChartHorizontal ? 'y' : 'x';\n const SHOW_AXIS_LABELS_OPTIONS = CONSTANTS.SHOW_AXIS_LABELS_OPTIONS;\n const SHOW_TITLE_OPTIONS = CONSTANTS.SHOW_TITLE_OPTIONS;\n const includeMeasureAxisComponent = SHOW_AXIS_LABELS_OPTIONS.includes(measureAxisProperties.show);\n const includeMeasureAxisTitleComponent =\n !!options.measureTitleText && SHOW_TITLE_OPTIONS.includes(measureAxisProperties.show);\n const includeDimensionAxisComponent =\n options.includeDimensionAxis && SHOW_AXIS_LABELS_OPTIONS.includes(dimensionAxisProperties.show);\n const includeDimensionAxisTitleComponent =\n options.includeDimensionAxis &&\n !!options.dimensionTitleText &&\n SHOW_TITLE_OPTIONS.includes(dimensionAxisProperties.show);\n const includeGridlines = options.gridlines && !(!options.gridlines.auto && options.gridlines.spacing === 0);\n\n const includeRefLines = options.refLines && options.refLines.some((refLine) => refLine.show);\n\n const interactionActions = [];\n\n if (includeMeasureAxisComponent) {\n addMeasureAxisComponent(chartBuilder, options, measureDirection, measureAxisProperties);\n }\n\n if (includeMeasureAxisTitleComponent) {\n addMeasureAxisTitleComponent(chartBuilder, options, measureDirection);\n }\n\n addMeasureScale(chartBuilder, options, chartOrientation, measureAxisProperties);\n\n if (includeDimensionAxisComponent) {\n addDimensionAxisComponent(chartBuilder, options, dimensionDirection);\n }\n\n if (includeDimensionAxisTitleComponent) {\n addDimensionAxisTitleComponent(chartBuilder, options, dimensionDirection);\n }\n\n if (options.includeDimensionAxis) {\n addDimensionScale(chartBuilder, options, chartOrientation);\n }\n\n if (includeGridlines) {\n addGridlinesComponent(chartBuilder, options.gridlines, measureDirection);\n }\n\n if (options.hasNavigation) {\n addScrollbarComponent(chartBuilder, interactionActions, options, isChartHorizontal);\n }\n\n if (includeRefLines) {\n addRefLineComponent(chartBuilder, options, measureDirection, measureAxisProperties);\n }\n\n if (options.enableLasso && options.selectionsEnabled) {\n const lassoOptions = options.lasso || {};\n addLassoComponent(chartBuilder, lassoOptions);\n }\n\n if (options.enableDimRange && options.includeDimensionAxis && options.selectionsEnabled) {\n const rangeDimOptions = options.dimRange || {};\n const dimensionAxisOptions = getDimensionAxisOptions(options, dimensionDirection);\n addRangeDimComponent(chartBuilder, rangeDimOptions, isChartHorizontal, dimensionAxisOptions.dock, options.isRtl);\n }\n\n if (options.enableMeasureRange && options.selectionsEnabled) {\n const rangeMeasureOptions = options.measureRange || {};\n const measureAxisOptions = getMeasureAxisOptions(options, measureDirection);\n addRangeMeasureComponent(\n chartBuilder,\n rangeMeasureOptions,\n isChartHorizontal,\n measureAxisOptions.dock,\n options.isRtl\n );\n }\n\n if (options.enableAreaRange && options.selectionsEnabled) {\n const areaDimOptions = options.areaRange || {};\n const dimAreaAxisOptions = getDimensionAxisOptions(options, dimensionDirection);\n addRangeAreaComponent(chartBuilder, areaDimOptions, isChartHorizontal, dimAreaAxisOptions.dock, options.isRtl);\n }\n\n if (options.brushActions) {\n addInteractionActions(interactionActions, options.brushActions);\n }\n\n if (interactionActions.length) {\n addInteractionComponent(chartBuilder, interactionActions);\n }\n}\n\nexport default DimensionMeasureChart;\n\nfunction addInteractionComponent(chartBuilder, interactionActions) {\n return chartBuilder.addInteraction({}, { gestures: interactionActions });\n}\n\nfunction addInteractionActions(interactionActions, actions) {\n actions.forEach((a) => {\n interactionActions.push(a);\n });\n}\n\nfunction addMeasureScale(chartBuilder, options, chartOrientation, measureAxisProperties) {\n let measureScaleSettings = options.measureScaleSettings;\n\n const measureScaleOptions = {\n isRtl: options.isRtl,\n source: options.measureSource,\n orientation: chartOrientation,\n measureAxisProperties,\n };\n\n if (measureAxisProperties && measureAxisProperties.spacing > 0) {\n measureScaleSettings = extend(true, measureScaleSettings || {}, {\n component: {\n ticks: {\n distance: measureAxisProperties.spacing * SENSE_PICASSO_SPACING_COEFFICIENT,\n },\n },\n });\n }\n\n chartBuilder.addScale('measure-scale', measureScaleSettings, measureScaleOptions);\n}\n\nfunction addMeasureAxisComponent(chartBuilder, options, measureDirection, measureAxisProperties) {\n let measureAxisSettings = {\n scale: 'measure',\n settings: options.axisLabelStyle || {},\n forceBounds: measureAxisProperties && !measureAxisProperties.autoMinMax && measureAxisProperties.showBounds,\n };\n measureAxisSettings = extend(measureAxisSettings, CONSTANTS.LAYOUTSETTINGS.measureAxis);\n\n const measureAxisOptions = getMeasureAxisOptions(options, measureDirection);\n\n chartBuilder.addComponent(`${measureDirection}-axis`, measureAxisSettings, measureAxisOptions);\n}\n\nfunction addMeasureAxisTitleComponent(chartBuilder, options, measureDirection) {\n let measureTitleSettings = {\n text: options.measureTitleText,\n style: options.axisTitleStyle || {},\n };\n measureTitleSettings = extend(measureTitleSettings, CONSTANTS.LAYOUTSETTINGS.measureAxisTitle);\n\n const measureAxisOptions = getMeasureAxisTitleOptions(options, measureDirection);\n\n chartBuilder.addComponent(`${measureDirection}-axis-title`, measureTitleSettings, measureAxisOptions);\n}\n\nfunction addDimensionScale(chartBuilder, options, chartOrientation) {\n const dimensionScaleOptions = {\n isRtl: options.isRtl,\n source: options.dimensionSource,\n orientation: chartOrientation === CONSTANTS.HORIZONTAL ? CONSTANTS.VERTICAL : CONSTANTS.HORIZONTAL,\n };\n\n chartBuilder.addScale('dimension-scale', options.dimensionScaleSettings, dimensionScaleOptions);\n}\n\nfunction addDimensionAxisComponent(chartBuilder, options, dimensionDirection) {\n let dimensionAxisSettings = {\n scale: 'dimension',\n settings: options.axisLabelStyle || {},\n };\n dimensionAxisSettings = extend(dimensionAxisSettings, CONSTANTS.LAYOUTSETTINGS.dimensionAxis);\n\n const dimensionAxisOptions = getDimensionAxisOptions(options, dimensionDirection);\n\n extend(true, dimensionAxisSettings, options.dimensionAxisSettings || {});\n\n chartBuilder.addComponent(`${dimensionDirection}-axis`, dimensionAxisSettings, dimensionAxisOptions);\n}\n\nfunction addDimensionAxisTitleComponent(chartBuilder, options, dimensionDirection) {\n let dimensionAxisTitleSettings = {\n text: options.dimensionTitleText,\n style: options.axisTitleStyle || {},\n };\n dimensionAxisTitleSettings = extend(dimensionAxisTitleSettings, CONSTANTS.LAYOUTSETTINGS.dimensionAxisTitle);\n\n const dimensionAxisTitleOptions = getDimensionAxisTitleOptions(options, dimensionDirection);\n\n chartBuilder.addComponent(`${dimensionDirection}-axis-title`, dimensionAxisTitleSettings, dimensionAxisTitleOptions);\n}\n\nfunction addGridlinesComponent(chartBuilder, gridlinesOptions, measureDirection) {\n let gridlinesSettings = {\n ticks: {\n show: true,\n },\n minorTicks: {\n show: !gridlinesOptions.auto && !gridlinesOptions.auto && gridlinesOptions.spacing === 3,\n },\n };\n gridlinesSettings = extend(gridlinesSettings, CONSTANTS.LAYOUTSETTINGS.gridLines);\n\n gridlinesSettings[measureDirection] = { scale: 'measure' };\n\n chartBuilder.addComponent('grid-line', gridlinesSettings);\n}\n\nfunction addScrollbarComponent(chartBuilder, interactionActions, options, isChartHorizontal) {\n const settings = chartBuilder.getSettings();\n\n settings.scroll = {\n dimension: {\n viewSize: (options.scrollSettings && options.scrollSettings.viewSize) || 0,\n max: (options.scrollSettings && options.scrollSettings.max) || 0,\n },\n };\n\n const scrollbarOptions = {\n isRtl: options.isRtl,\n chartID: options.chartID,\n isHorizontal: !isChartHorizontal,\n };\n\n const scrollBarSettings = extend({}, CONSTANTS.LAYOUTSETTINGS.scrollBar);\n\n chartBuilder.addComponent('scrollbar', scrollBarSettings, scrollbarOptions);\n\n addInteractionActions(interactionActions, getScrollActions(options.isNavigationEnabledFn));\n}\n\n/*\n * Add \"ref-line\" component(s). Currently two \"ref-line\" components are used to reserve space for labels and\n * OOB markers outside of the data area. First component: shows the line(s) within the data area. Second component:\n * shows the label(s) and OOB marker(s).\n */\nfunction addRefLineComponent(chartBuilder, options, measureDirection, measureAxisProperties) {\n const axisDock = axisDockUtil.getAxisDock(measureDirection, measureAxisProperties.dock, options.isRtl);\n let refLinesSettings = {\n // First component\n key: 'ref-line',\n style: {\n oob: {\n show: false,\n },\n },\n lines: {\n x: [],\n y: [],\n },\n };\n refLinesSettings = extend(refLinesSettings, CONSTANTS.LAYOUTSETTINGS.refLines);\n\n let refLinesLabelsSettings = {\n // Second component\n // Use a unique key to force re-render of this component in Picasso.\n // This must be done because Picasso does not allow re-binding of functions (and shouldn't either).\n key: `ref-line-labels-${generateId()}`,\n require: ['renderer', 'chart'],\n dock: axisDockUtil.getOppositeAxisDock(measureDirection, measureAxisProperties.dock, options.isRtl),\n preferredSize() {\n if (measureDirection === 'x') {\n // Use constant component size if horizontal\n return 26;\n }\n\n // Adapt component size to the longest label if vertical\n const measureText = this.renderer.measureText;\n const formatter = this.chart.formatter({ data: chartBuilder.settings.scales.measure.data });\n const labelWidths = refLinesLabelsSettings.lines.y.map((line) => {\n const formattedValue = line.label.showValue !== false ? `(${formatter(line.value)})` : '';\n const text = `${line.label.text} ${formattedValue}`;\n const minimumText = line.label.text && formattedValue ? ` ${formattedValue}` : formattedValue;\n return {\n wanted: measureText({\n text,\n fontSize: line.fontSize,\n fontFamily: line.fontFamily,\n }).width,\n required: measureText({\n text: minimumText,\n fontSize: line.fontSize,\n fontFamily: line.fontFamily,\n }).width,\n };\n });\n\n const maxLabelWidth = labelWidths[0];\n for (let i = 1; i < labelWidths.length; i++) {\n if (labelWidths[i].wanted > maxLabelWidth.wanted) {\n maxLabelWidth.wanted = labelWidths[i].wanted;\n }\n if (labelWidths[i].required > maxLabelWidth.required) {\n maxLabelWidth.required = labelWidths[i].required;\n }\n }\n const labelPadding = 12;\n if (maxLabelWidth.required + labelPadding > 100) {\n return maxLabelWidth.required + labelPadding; // Always have space for the value\n }\n return Math.min(maxLabelWidth.wanted + labelPadding, 100); // Limit to 100 px width\n },\n lines: {\n x: [],\n y: [],\n },\n };\n refLinesLabelsSettings = extend(refLinesLabelsSettings, CONSTANTS.LAYOUTSETTINGS.refLinesLabels);\n\n options.refLines.forEach((refLine) => {\n if (!refLine.show) {\n return;\n }\n\n const expressionValue = refLine.refLineExpr && refLine.refLineExpr.value;\n const lineOptions = extend(true, {}, options, {\n paletteColor: refLine.paletteColor,\n style: refLine.style,\n chartID: chartBuilder.options.chartID,\n });\n\n // Add a line for each visible ref line\n const lineSettings = refLineUtil.lineSettings(\n {\n scale: 'measure',\n dir: measureDirection,\n value: expressionValue,\n },\n lineOptions\n );\n\n refLinesSettings.lines[measureDirection].push(lineSettings);\n\n // Add a label and an OOB marker for each visible ref line (using the second component)\n const lineLabelSettings = refLineUtil.lineLabelSettings(\n {\n scale: 'measure',\n value: expressionValue,\n label: {\n text: refLine.showLabel !== false ? refLine.label : '',\n showValue: refLine.showValue !== false,\n },\n },\n lineOptions\n );\n\n if (measureDirection === 'x') {\n lineLabelSettings.label.vAlign = axisDock === 'near' ? 1 : 0;\n } else {\n // y\n lineLabelSettings.label.align = axisDock === 'near' ? 0 : 1;\n }\n\n refLinesLabelsSettings.lines[measureDirection].push(lineLabelSettings);\n });\n\n chartBuilder.addComponent('ref-line', refLinesSettings, {});\n chartBuilder.addComponent('ref-line', refLinesLabelsSettings, {});\n}\n\n/**\n * Adds a lasso component to the chart builder\n * @param {ChartBuilder} chartBuilder\n * @param {object} options - lasso options\n * @param {string} options.brushKey - key used as context for lasso selection triggers\n * @param {string} options.brushComponent - target component key\n */\nfunction addLassoComponent(chartBuilder, options) {\n const lassoOptions = {\n brushKey: options.brushKey,\n brushComponents: options.brushComponents,\n brushData: options.brushData,\n };\n\n chartBuilder.addComponent('lasso', CONSTANTS.LAYOUTSETTINGS.lasso, lassoOptions);\n}\n/**\n * Adds a dimension range component to the chart builder\n * @param {any} chartBuilder\n * @param {object} options - range dim options\n * @param {string} options.brushKey - key used as context for range selection triggers\n * @param {string} options.brushAxis - target axis to perform range select on\n * @param {string} options.brushScale - Scale to use\n * @param {boolean} isChartHorizontal - Whether the chart is horizontal or not\n */\nfunction addRangeDimComponent(chartBuilder, options, isChartHorizontal, dock, isRtl) {\n let rangeDimSettings = {\n key: 'rangeDim',\n };\n\n rangeDimSettings = extend(rangeDimSettings, CONSTANTS.LAYOUTSETTINGS.rangeDim);\n\n const rangeDimOptions = {\n brushKey: options.brushKey,\n brushAxis: options.brushAxis,\n brushArea: options.brushArea,\n brushScale: options.brushScale,\n isHorizontal: !isChartHorizontal,\n dock,\n isRtl,\n };\n\n chartBuilder.addComponent('range', rangeDimSettings, rangeDimOptions);\n}\n\nfunction addRangeMeasureComponent(chartBuilder, options, isChartHorizontal, dock, isRtl) {\n let rangeMeasureSettings = {\n key: 'rangeMeasure',\n };\n\n rangeMeasureSettings = extend(rangeMeasureSettings, CONSTANTS.LAYOUTSETTINGS.rangeMeasure);\n\n const rangeMeasureOptions = {\n brushKey: options.brushKey,\n brushAxis: options.brushAxis,\n brushArea: options.brushArea,\n brushScale: options.brushScale,\n multiple: options.multiple,\n isHorizontal: isChartHorizontal,\n dock,\n isRtl,\n };\n\n chartBuilder.addComponent('range', rangeMeasureSettings, rangeMeasureOptions);\n}\n\nfunction addRangeAreaComponent(chartBuilder, options, isChartHorizontal, dock, isRtl) {\n let rangeMinorSettings = {\n key: 'rangeMinor',\n };\n\n rangeMinorSettings = extend(rangeMinorSettings, CONSTANTS.LAYOUTSETTINGS.rangeMinor);\n\n const rangeMeasureOptions = {\n brushKey: options.brushKey,\n brushAxis: options.brushAxis,\n brushData: options.brushData,\n brushArea: options.brushArea,\n brushComponents: options.brushComponents,\n brushScale: options.brushScale,\n multiple: options.multiple,\n isHorizontal: options.brushScale === 'measure' ? isChartHorizontal : !isChartHorizontal,\n dock,\n isRtl,\n chartInstance: options.chartInstance,\n };\n\n chartBuilder.addComponent('range-area', rangeMinorSettings, rangeMeasureOptions);\n}\n\nfunction getMeasureAxisOptions(options, measureDirection) {\n return {\n dock: options.measureAxisProperties && options.measureAxisProperties.dock,\n direction: measureDirection,\n isRtl: options.isRtl,\n };\n}\n\nfunction getMeasureAxisTitleOptions(options, measureDirection) {\n return getMeasureAxisOptions(options, measureDirection);\n}\n\nfunction getDimensionAxisOptions(options, dimensionDirection) {\n return {\n dock: options.dimensionAxisProperties && options.dimensionAxisProperties.dock,\n direction: dimensionDirection,\n isRtl: options.isRtl,\n };\n}\n\nfunction getDimensionAxisTitleOptions(options, dimensionDirection) {\n return getDimensionAxisOptions(options, dimensionDirection);\n}\n","import extend from 'extend';\n\nfunction scale(settings, opts) {\n const options = opts || {};\n const isHorizontal = !options.orientation || options.orientation === 'horizontal';\n const isRtl = !!options.isRtl;\n\n const defaultSettings = {\n name: options.name || 'scale',\n component: {\n invert: isHorizontal && isRtl,\n minorTicks: {\n count: 1,\n },\n range: options.range || undefined,\n domain: options.domain || undefined,\n trackBy: options.trackBy || 'id',\n },\n };\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nfunction measureScale(settings, opts) {\n const options = opts || {};\n let fields = options.source || [];\n if (typeof fields === 'string') {\n fields = [fields];\n }\n\n const defaultSettings = {\n name: 'measure',\n component: {\n expand: 0.1,\n data: {\n fields: fields.map((f) => ({\n field: f,\n })),\n },\n },\n };\n\n const measureAxisProperties = opts && opts.measureAxisProperties;\n\n if (measureAxisProperties && !measureAxisProperties.autoMinMax) {\n // explicit min max measure scale range\n if (['min', 'minMax'].includes(measureAxisProperties.minMax)) {\n defaultSettings.component.min = measureAxisProperties.min;\n }\n if (['max', 'minMax'].includes(measureAxisProperties.minMax)) {\n defaultSettings.component.max = measureAxisProperties.max;\n }\n }\n\n const measureSettings = extend(true, defaultSettings, settings || {});\n const scaleSettings = scale(measureSettings, opts);\n const hasInvertSettings = settings && settings.component && typeof settings.component.invert !== 'undefined';\n\n if (!hasInvertSettings && opts && opts.orientation === 'vertical') {\n scaleSettings.component.invert = !scaleSettings.component.invert;\n }\n\n return scaleSettings;\n}\n\nfunction dimensionScale(settings, opts) {\n const defaultSettings = {\n name: 'dimension',\n component: {\n trackBy: 'id',\n type: 'band',\n data: {\n extract: {\n field: (opts && opts.source) || '',\n props: {\n label(v) {\n return v.qText || '';\n }, // Map qText to handle both qElemNo and qElemNumber\n },\n },\n },\n label(v) {\n return v.datum.label.value;\n }, // Set qText as value from the mapping on r.92\n },\n };\n\n const dimensionSettings = extend(true, defaultSettings, settings || {});\n\n return scale(dimensionSettings, opts);\n}\n\nscale.measureScale = measureScale;\nscale.dimensionScale = dimensionScale;\n\nexport default scale;\n","import extend from 'extend';\nimport axisDockUtil from './util/axis-dock-util';\n\nfunction axis(settings, options) {\n const chartID = options && options.chartID; // Should we validate if the parameter exists?\n const dock = options && options.dock;\n const direction = options && options.direction;\n const isRtl = options && options.isRtl;\n\n const axisLineStroke = options.theme.getStyle(chartID, 'axis.line.major', 'color');\n const titleFontSize = options.theme.getStyle(chartID, 'axis.title', 'fontSize');\n const titleFill = options.theme.getStyle(chartID, 'axis.title', 'color');\n const labelsFill = options.theme.getStyle(chartID, 'axis.label.name', 'color');\n const labelsFontSize = options.theme.getStyle(chartID, 'axis.label.name', 'fontSize');\n const titleFontFamily = options.theme.getStyle(chartID, 'axis.title', 'fontFamily');\n const labelsFontFamily = options.theme.getStyle(chartID, 'axis.label.name', 'fontFamily');\n\n const defaultSettings = {\n key: 'axis',\n type: 'axis',\n dock: axisDockUtil.getAxisDock(direction, dock, isRtl),\n brush: { trigger: [], consume: [] },\n settings: {\n title: {\n fontSize: titleFontSize,\n fontFamily: titleFontFamily,\n fill: titleFill,\n },\n line: {\n show: true,\n strokeWidth: 1,\n stroke: axisLineStroke,\n },\n labels: {\n fill: labelsFill,\n fontSize: labelsFontSize,\n fontFamily: labelsFontFamily,\n tiltAngle: isRtl ? -40 : 40,\n maxEdgeBleed: 75,\n maxSize: 150,\n mode: 'auto',\n },\n ticks: {\n stroke: axisLineStroke,\n },\n minorTicks: {\n stroke: axisLineStroke,\n },\n },\n };\n const axisSettings = extend(true, {}, defaultSettings, settings || {});\n axisSettings.brush.consume.forEach((consume) => {\n consume.style.active.strokeWidth = 0;\n });\n return axisSettings;\n}\n\nfunction xAxis(settings, options) {\n const defaultSettings = {\n key: 'x-axis',\n scale: 'x',\n };\n const xAxisSettings = extend(true, defaultSettings, settings || {});\n return axis(xAxisSettings, options);\n}\n\nfunction yAxis(settings, options) {\n const dock = options && options.dock;\n const isRtl = options && options.isRtl;\n const defaultSettings = {\n key: 'y-axis',\n scale: 'y',\n dock: axisDockUtil.getYAxisDock(dock, isRtl),\n };\n const yAxisSettings = extend(true, defaultSettings, settings || {});\n return axis(yAxisSettings, options);\n}\n\naxis.xAxis = xAxis;\naxis.yAxis = yAxis;\n\nexport default axis;\n","import extend from 'extend';\nimport axisDockUtil from './util/axis-dock-util';\n\nfunction text(settings, options) {\n const chartID = options && options.chartID;\n const dock = options && options.dock;\n const direction = options && options.direction;\n const isRtl = options && options.isRtl;\n const titleFontSize = options.theme.getStyle(chartID, 'axis.title', 'fontSize');\n const titleFill = options.theme.getStyle(chartID, 'axis.title', 'color');\n const titleFontFamily = options.theme.getStyle(chartID, 'axis.title', 'fontFamily');\n\n const defaultSettings = {\n key: 'text',\n type: 'text',\n dock: axisDockUtil.getAxisDock(direction, dock, isRtl) || 'bottom',\n displayOrder: 0, // TODO: This can be removed when picasso set displayOrder for text component to 0. Currently picasso set it to 99.\n style: {\n text: {\n fontSize: titleFontSize,\n fontFamily: titleFontFamily,\n fill: titleFill,\n },\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nfunction xAxisTitle(settings, options) {\n const defaultSettings = {\n key: 'x-axis-title',\n };\n const xAxisTitleSettings = extend(true, defaultSettings, settings || {});\n return text(xAxisTitleSettings, options);\n}\n\nfunction yAxisTitle(settings, options) {\n const dock = options && options.dock;\n const isRtl = options && options.isRtl;\n const defaultSettings = {\n key: 'y-axis-title',\n dock: axisDockUtil.getYAxisDock(dock, isRtl) || 'left',\n };\n const yAxisTitleSettings = extend(true, defaultSettings, settings || {});\n return text(yAxisTitleSettings, options);\n}\n\ntext.xAxisTitle = xAxisTitle;\ntext.yAxisTitle = yAxisTitle;\n\nexport default text;\n","function getBublesAlign(isHorizontal, dock, isRtl) {\n let isAlignStart = (isHorizontal && dock !== 'far') || (!isHorizontal && dock === 'far');\n if (!isHorizontal && isRtl) {\n isAlignStart = !isAlignStart;\n }\n return isAlignStart ? 'start' : 'end';\n}\n\nfunction getDock(brushAxis, brushArea) {\n const dockTargets = [];\n let dockT;\n if (brushAxis) {\n dockTargets.push(`@${brushAxis}`);\n }\n if (brushArea) {\n dockTargets.push(`@${brushArea}`);\n }\n if (dockTargets.length) {\n dockT = dockTargets.join(',');\n }\n return dockT;\n}\n\nexport default {\n getBublesAlign,\n getDock,\n};\n","/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\nconst layoutModes = {\n SPARK: { width: 0, height: 0 },\n XSMALL: { width: 150, height: 75 },\n SMALL: { width: 300, height: 150 },\n MEDIUM: { width: 400, height: 220 },\n FULL: { width: 550, height: 450 },\n};\n\nfunction LayoutModes() {\n return layoutModes;\n}\n\nLayoutModes.getLayoutModeKeys = function () {\n const layoutModeKeys = [];\n let modeKey;\n\n for (modeKey in layoutModes) {\n layoutModeKeys.push(modeKey);\n }\n return layoutModeKeys;\n};\n\nexport default LayoutModes;\n","import extend from 'extend';\n\nfunction getLabel(context) {\n const end = context.data.end;\n const formatter = context.dataset(end.source.key).field(end.source.field).formatter();\n return formatter(end.value);\n}\n\nfunction labels(settings, options) {\n const chartID = options && options.chartID;\n const labelsFill = options.theme.getStyle(chartID, 'label.value', 'color');\n const labelsFontSize = options.theme.getStyle(chartID, 'label.value', 'fontSize');\n const labelsFontFamily = options.theme.getStyle(chartID, 'label.value', 'fontFamily');\n\n const defaultSettings = {\n key: 'labels',\n type: 'labels',\n displayOrder: 1,\n settings: {\n sources: [\n {\n component: 'box-marker', // Connects with the matching \"key:\" attribute in the visualizations\n selector: 'rect',\n strategy: {\n type: 'bar',\n settings: {\n direction: 'up',\n fontFamily: labelsFontFamily,\n fontSize: parseFloat(labelsFontSize),\n align: 0.5,\n labels: [\n {\n placements: [\n {\n position: 'outside',\n fill: labelsFill,\n justify: 0,\n },\n {\n position: 'inside',\n fill: settings && settings.settings.sources[0].strategy.settings.labels[0].placements[1].fill,\n justify: 1,\n },\n ],\n label: getLabel,\n },\n ],\n },\n },\n },\n ],\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default labels;\n","import extend from 'extend';\n\nconst directions = {\n left: 'left',\n right: 'right',\n up: 'top',\n down: 'bottom',\n};\n\nfunction legend(settings, options) {\n const chartID = options && options.chartID;\n const isRtl = options && options.isRtl;\n let dock = (options && options.dock) || 'auto';\n const show = options && options.show;\n\n if (dock === 'auto') {\n dock = options.chartHeight / options.chartWidth < 1 ? (isRtl ? 'left' : 'right') : 'bottom';\n }\n\n const titleFill = options.theme.getStyle(chartID, 'legend.title', 'color');\n const titleFontSize = options.theme.getStyle(chartID, 'legend.title', 'fontSize');\n const itemFill = options.theme.getStyle(chartID, 'legend.label', 'color');\n const itemFontSize = options.theme.getStyle(chartID, 'legend.label', 'fontSize');\n const titleFontFamily = options.theme.getStyle(chartID, 'legend.title', 'fontFamily');\n const itemFontFamily = options.theme.getStyle(chartID, 'legend.label', 'fontFamily');\n\n const defaultSettings = {\n key: 'legend',\n type: 'legend-cat',\n dock,\n show,\n\n scale: {\n type: 'color',\n },\n settings: {\n title: {\n anchor: 'middle',\n },\n layout: {\n direction: isRtl ? 'rtl' : 'ltr',\n size: dock === 'top' || dock === 'bottom' ? 2 : 1,\n vertical: dock === 'top' || dock === 'bottom' ? 16 : 8,\n },\n navigation: {\n button: {\n class: {\n 'lui-fade-button': true,\n },\n content(h, state) {\n const c = ['lui-button__icon', 'lui-icon', `lui-icon--triangle-${directions[state.direction]}`];\n return h('span', {\n style: {\n pointerEvents: 'none',\n },\n class: c.join(' '),\n });\n },\n },\n },\n },\n style: {\n item: {\n label: {\n fontSize: itemFontSize,\n fontFamily: itemFontFamily,\n fill: itemFill,\n lineHeight: 1,\n wordBreak: 'break-word',\n },\n margin: {\n top: 5,\n left: 10,\n right: 10,\n bottom: 10,\n },\n shape: {\n type: options.type ? options.type : 'square',\n size: (parseInt(itemFontSize, 10) * 3) / 4, // To make it consistent with non-picasso charts\n },\n },\n title: {\n show: options.showTitle,\n fontSize: titleFontSize,\n fontFamily: titleFontFamily,\n fill: titleFill,\n },\n },\n };\n return extend(true, {}, defaultSettings, settings);\n}\n\nexport default legend;\n","import extend from 'extend';\nimport ChartPresets from './chart-presets';\nimport scale from './scale';\nimport axis from './components/axis';\nimport boxMarker from './components/box-marker';\nimport eventArea from './components/event-area';\nimport gridLine from './components/grid-line';\nimport interaction from './components/interaction';\nimport pointMarker from './components/point-marker';\nimport scrollbar from './components/scrollbar';\nimport text from './components/text';\nimport lasso from './components/lasso';\nimport range from './components/range';\nimport refLine from './components/ref-line';\nimport layoutModes from './layout-modes';\nimport labels from './components/labels';\nimport categoricalLegend from './components/categorical-legend';\nimport sequentialLegend from './components/sequential-legend';\nimport rangeArea from './components/range-area';\n\nfunction createComponent(type, settings, options) {\n switch (type) {\n // Picasso components\n case 'scale':\n return scale(settings, options);\n case 'measure-scale':\n return scale.measureScale(settings, options);\n case 'dimension-scale':\n return scale.dimensionScale(settings, options);\n case 'axis':\n return axis(settings, options);\n case 'box-marker':\n return boxMarker(settings, options);\n case 'point-marker':\n return pointMarker(settings, options);\n case 'scrollbar':\n return scrollbar(settings, options);\n case 'text':\n return text(settings, options);\n case 'lasso':\n return lasso(settings, options);\n case 'range':\n return range(settings, options);\n case 'range-area':\n return rangeArea(settings, options);\n case 'categorical-legend':\n return categoricalLegend(settings, options);\n case 'sequential-legend':\n return sequentialLegend(settings, options);\n // Wrapepd picasso components\n case 'x-axis':\n return axis.xAxis(settings, options);\n case 'y-axis':\n return axis.yAxis(settings, options);\n case 'x-axis-title':\n return text.xAxisTitle(settings, options);\n case 'y-axis-title':\n return text.yAxisTitle(settings, options);\n case 'grid-line':\n return gridLine(settings, options);\n case 'interaction':\n return interaction(settings, options);\n case 'ref-line':\n return refLine(settings, options);\n // Custom components\n case 'event-area':\n return eventArea(settings, options);\n case 'labels':\n return labels(settings, options);\n default:\n return undefined;\n }\n}\n\nfunction ChartBuilder(options) {\n this.options = options || {};\n\n this.settings = {\n dockLayout: {\n layoutModes: layoutModes(),\n },\n components: [],\n scales: {},\n };\n}\n\nChartBuilder.prototype.addComponent = function addComponent(type, settings, options) {\n const extendedOptions = extend(true, {}, this.options, options || {});\n const component = createComponent(type, settings, extendedOptions);\n this.settings.components.push(component);\n return component;\n};\n\nChartBuilder.prototype.addInteraction = function addInteraction(settings, options) {\n const extendedOptions = extend(true, {}, this.options, options || {});\n const component = createComponent('interaction', settings, extendedOptions);\n if (!this.settings.interactions) {\n this.settings.interactions = [];\n }\n this.settings.interactions.push(component);\n return component;\n};\n\nChartBuilder.prototype.addScale = function addScale(type, settings, options) {\n const extendedOptions = extend(true, {}, this.options, options || {});\n const scale = createComponent(type, settings, extendedOptions);\n this.settings.scales[scale.name] = scale.component;\n};\n\nChartBuilder.prototype.getSettings = function getSettings() {\n return this.settings;\n};\n\nChartBuilder.prototype.getComponent = function getComponent(key) {\n return this.settings.components.filter((component) => component.key === key)[0];\n};\n\nChartBuilder.prototype.addPreset = function addPreset(type, options) {\n ChartPresets(type, this, options);\n};\n\nChartBuilder.validateComponentKeys = function validateComponentKeys(components) {\n const keys = {};\n return components\n .map((component) => {\n const key = component.key;\n if (!key) {\n return `Missing key for component ${component.type}`;\n }\n if (keys[key]) {\n return `Duplicate key for component ${component.type}`;\n }\n keys[key] = true;\n return null;\n })\n .filter((msg) => !!msg);\n};\n\n/*\n * Factory function\n */\nChartBuilder.create = function (options) {\n return new ChartBuilder(options);\n};\n\nChartBuilder.createComponent = createComponent;\n\nexport default ChartBuilder;\n","import extend from 'extend';\n\nfunction boxMarker(settings) {\n const defaultSettings = {\n key: 'box-marker',\n type: 'box-marker',\n settings: {\n minor: { scale: 'x' },\n orientation: 'horizontal',\n },\n brush: { trigger: [], consume: [] },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default boxMarker;\n","import extend from 'extend';\n\nfunction pointMarker(settings) {\n const defaultSettings = {\n key: 'point-marker',\n type: 'point-marker',\n settings: {},\n brush: { trigger: [], consume: [] },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default pointMarker;\n","import extend from 'extend';\n\nfunction scrollbar(settings, options) {\n const isRtl = options && options.isRtl;\n const chartID = options && options.chartID;\n const isHorizontal = options && options.isHorizontal;\n const defaultSettings = {\n key: 'scrollbar',\n type: 'scrollbar',\n scroll: 'dimension',\n dock: isHorizontal ? 'bottom' : isRtl ? 'left' : 'right',\n settings: {\n backgroundColor: options.theme.getStyle(chartID, '', 'backgroundColor'),\n invert: isRtl && isHorizontal,\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default scrollbar;\n","import extend from 'extend';\n\nfunction lasso(settings, options) {\n const brushKey = options && options.brushKey;\n const brushComponents = options && options.brushComponents ? options.brushComponents : [];\n const brushData = options && options.brushData ? options.brushData : ['elemNo'];\n\n const defaultSettings = {\n type: 'brush-lasso',\n key: 'lasso',\n displayOrder: 99,\n settings: {\n brush: {\n components: [],\n },\n lasso: {\n fill: 'rgba(0, 0, 0, 0)',\n stroke: 'rgba(102,102,102,1)',\n strokeWidth: 2,\n opacity: 1,\n strokeDasharray: null, // '10, 4',\n },\n startPoint: {\n r: 10,\n fill: 'rgba(0, 152, 69, 1)',\n strokeWidth: 0,\n opacity: 1,\n },\n },\n };\n\n brushComponents.forEach((comp) => {\n defaultSettings.settings.brush.components.push({\n contexts: brushKey ? [brushKey] : undefined,\n key: comp,\n data: brushData,\n });\n });\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default lasso;\n","import extend from 'extend';\nimport rangeUtil from './util/range-util';\n\nfunction range(settings, options) {\n const brushKey = options && options.brushKey;\n const brushAxis = options && options.brushAxis;\n const brushArea = options && options.brushArea;\n const brushScale = options && options.brushScale;\n const isHorizontal = options && options.isHorizontal;\n const dock = options && options.dock;\n const isRtl = options && options.isRtl;\n\n const defaultSettings = {\n type: 'brush-range',\n key: 'range',\n displayOrder: 99,\n dock: rangeUtil.getDock(brushAxis, brushArea),\n settings: {\n brush: brushKey,\n fill: 'rgba(0, 0, 0, 0)',\n scale: brushScale,\n multiple: options && options.multiple === false ? options.multiple : true,\n direction: isHorizontal ? 'horizontal' : 'vertical',\n target: {\n component: brushAxis,\n fill: 'rgba( 82, 204, 82, 0.2 )',\n fillActive: 'rgba(82, 204, 82, 0.4)',\n },\n bubbles: {\n align: rangeUtil.getBublesAlign(isHorizontal, dock, isRtl),\n },\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default range;\n","import extend from 'extend';\nimport rangeUtil from './util/range-util';\n\nfunction rangeArea(settings, options) {\n const brushKey = options && options.brushKey;\n const brushAxis = options && options.brushAxis;\n const brushComponents = options && options.brushComponents ? options.brushComponents : [];\n const brushData = options && options.brushData ? options.brushData : ['elemNo'];\n const brushArea = options && options.brushArea;\n const isHorizontal = options && options.isHorizontal;\n const dock = options && options.dock;\n const isRtl = options && options.isRtl;\n const chartInstance = options && options.chartInstance;\n let isStartBorder = true;\n\n const defaultSettings = {\n type: 'brush-area-dir',\n key: 'area',\n displayOrder: 99,\n dock: rangeUtil.getDock(brushAxis, brushArea),\n settings: {\n brush: {\n components: [],\n },\n direction: isHorizontal ? 'horizontal' : 'vertical',\n target: {\n component: brushAxis,\n fill: 'rgba( 82, 204, 82, 0.2 )',\n fillActive: 'rgba(82, 204, 82, 0.4)',\n },\n bubbles: {\n align: rangeUtil.getBublesAlign(isHorizontal, dock, isRtl),\n label(data) {\n if (isStartBorder) {\n isStartBorder = false;\n const formattedStartValue = chartInstance\n .dataset(data.binStart.source.key)\n .field(data.binStart.source.field)\n .formatter()(data.binStart.value);\n return formattedStartValue;\n }\n isStartBorder = true;\n const formattedEndValue = chartInstance\n .dataset(data.binEnd.source.key)\n .field(data.binEnd.source.field)\n .formatter()(data.binEnd.value);\n return formattedEndValue;\n },\n },\n multiple: options && options.multiple === false ? options.multiple : true,\n },\n };\n\n brushComponents.forEach((comp) => {\n defaultSettings.settings.brush.components.push({\n contexts: brushKey ? [brushKey] : undefined,\n key: comp,\n data: brushData,\n action: 'add',\n });\n });\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default rangeArea;\n","import extend from 'extend';\n\nfunction sequentialLegend(settings, options) {\n const chartID = options && options.chartID;\n const isRtl = options && options.isRtl;\n let dock = options.dock || 'auto';\n\n if (dock === 'auto') {\n dock = options.chartHeight < options.chartWidth ? (isRtl ? 'left' : 'right') : 'bottom';\n }\n\n const titleFill = options.theme.getStyle(chartID, 'legend.title', 'color');\n const titleFontSize = options.theme.getStyle(chartID, 'legend.title', 'fontSize');\n const titleFontFamily = options.theme.getStyle(chartID, 'legend.title', 'fontFamily');\n const tickFill = options.theme.getStyle(chartID, 'legend.label', 'color');\n const tickFontSize = options.theme.getStyle(chartID, 'legend.label', 'fontSize');\n const tickFontFamily = options.theme.getStyle(chartID, 'legend.label', 'fontFamily');\n\n function getAlignValue(word) {\n switch (word) {\n case 'left':\n return 0;\n case 'right':\n return 1;\n case 'middle':\n default:\n return 0.5;\n }\n }\n\n const defaultSettings = {\n key: 'seqlegend',\n type: 'legend-seq',\n dock,\n\n // Settings to position the legend outside of the axis\n displayOrder: 200,\n minimumLayoutMode: 'MEDIUM',\n prioOrder: 0,\n\n settings: {\n align: isRtl ? getAlignValue('right') : getAlignValue('left'),\n major: {\n invert: dock === 'left' || dock === 'right' || isRtl,\n },\n title: {\n show: options.showTitle,\n fontSize: titleFontSize,\n fontFamily: titleFontFamily,\n fill: titleFill,\n },\n tick: {\n fill: tickFill,\n fontSize: tickFontSize,\n fontFamily: tickFontFamily,\n },\n },\n };\n const finalSettings = extend(true, {}, defaultSettings, settings);\n return finalSettings;\n}\n\nexport default sequentialLegend;\n","import extend from 'extend';\n\nfunction gridLine(settings, options) {\n const chartID = options && options.chartID;\n\n const axisLineStroke = options.theme.getStyle(chartID, 'grid.line.major', 'color');\n\n const defaultSettings = {\n displayOrder: -1,\n key: 'grid-line',\n type: 'grid-line',\n x: null,\n y: null,\n ticks: {\n stroke: axisLineStroke,\n },\n minorTicks: {\n stroke: axisLineStroke,\n },\n };\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default gridLine;\n","import extend from 'extend';\n\nfunction interaction(settings, options) {\n const gestures = (options && options.gestures) || [];\n const defaultSettings = {\n type: 'hammer',\n key: 'hammered',\n gestures,\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default interaction;\n","import extend from 'extend';\n\nfunction refLine(settings, options) {\n const chartID = options && options.chartID; // Should we validate if the parameter exists?\n const oobColor = options.theme.getStyle(chartID, 'referenceLine.outOfBounds', 'color');\n const oobBackgroundColor = options.theme.getStyle(chartID, 'referenceLine.outOfBounds', 'backgroundColor');\n\n const defaultSettings = {\n key: 'ref-line',\n type: 'ref-line',\n dock: 'center',\n prioOrder: -1,\n lines: {\n x: [],\n y: [],\n },\n style: {\n oob: {\n width: 7,\n fill: oobBackgroundColor,\n text: {\n fill: oobColor,\n },\n padding: {\n x: 7,\n y: 5,\n },\n },\n },\n };\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default refLine;\n","import extend from 'extend';\n\nfunction eventArea(settings) {\n const defaultSettings = {\n type: 'event-area',\n key: 'event-area',\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default eventArea;\n","import DimensionMeasureChart from './presets/dimension-measure-chart/dimension-measure-chart';\n\nfunction ChartPresets(type, chartBuilder, options) {\n switch (type) {\n case 'dimension-measure-chart':\n DimensionMeasureChart(chartBuilder, options);\n break;\n default:\n throw Error('There is no chart preset with that type');\n }\n}\n\nexport default ChartPresets;\n","/**\n * Configuration for disclaimers\n *\n */\n\n/**\n * Placement on chart\n */\nconst ALIGNMENT = {\n CENTER: 0,\n BOTTOM: 1,\n};\n\n/**\n * Configuration of all disclaimers\n *\n * label - key for translation\n * alignment - Placement on chart\n * default - Supported by default. If 'false' the disclaimer needs to be set to 'true' in supportedDisclaimers to be valid\n */\nconst DISCLAIMERS = [\n {\n label: 'NoDataExist',\n alignment: ALIGNMENT.CENTER,\n default: true,\n },\n {\n label: 'RequireNumericDimension',\n alignment: ALIGNMENT.CENTER,\n default: false,\n },\n {\n label: 'OnlyNanData',\n alignment: ALIGNMENT.CENTER,\n default: true,\n },\n {\n label: 'OnlyNegativeOrZeroValues',\n alignment: ALIGNMENT.CENTER,\n default: false,\n },\n {\n label: 'LimitedData',\n alignment: ALIGNMENT.BOTTOM,\n default: false,\n },\n {\n label: 'OnlyNanColor',\n alignment: ALIGNMENT.BOTTOM,\n default: false,\n },\n {\n label: 'NegativeOrZeroValues',\n alignment: ALIGNMENT.BOTTOM,\n default: false,\n },\n {\n label: 'DataRangeIncludingZero',\n alignment: ALIGNMENT.BOTTOM,\n default: false,\n },\n];\n\nexport default {\n DISCLAIMERS,\n ALIGNMENT,\n};\n","/**\n * Disclaimer utility for setting attributes needed for the disclaimer component\n *\n * @exports objects.picasso/disclaimer/disclaimer-attributes-utils\n */\nimport DisclaimersConfig from './disclaimers-config';\n\n/**\n * Checks if the data range in measures and axis spans over the value 0\n * @ignore\n * @param measureAxis\n * @param measureInfo\n * @returns {boolean} True if the data range in any measure or the given axis spans over 0\n */\nfunction hasDataRangeIncludingZero(measureAxis, measureInfo) {\n const len = measureInfo.length;\n let i;\n let explicitMinOn;\n let explicitMaxOn;\n let min;\n let max;\n if (measureAxis) {\n explicitMinOn =\n !measureAxis.autoMinMax &&\n (measureAxis.minMax === 'min' || measureAxis.minMax === 'minMax') &&\n measureAxis.min !== null &&\n !Number.isNaN(+measureAxis.min);\n explicitMaxOn =\n !measureAxis.autoMinMax &&\n (measureAxis.minMax === 'max' || measureAxis.minMax === 'minMax') &&\n measureAxis.max !== null &&\n !Number.isNaN(+measureAxis.max);\n }\n min = Number.MAX_VALUE;\n max = -Number.MAX_VALUE;\n\n // return true if data contains zero\n for (i = 0; i < len; i++) {\n min = Math.min(min, measureInfo[i].qMin);\n max = Math.max(max, measureInfo[i].qMax);\n if (min <= 0 && max >= 0) {\n return true;\n }\n }\n\n // return true if axis explicits contains zero\n min = explicitMinOn ? measureAxis.min : min;\n max = explicitMaxOn ? measureAxis.max : max;\n return min <= 0 && max >= 0;\n}\n\nfunction hasSubNodes(stackedDataPages) {\n return (\n stackedDataPages && stackedDataPages[0] && stackedDataPages[0].qData[0] && stackedDataPages[0].qData[0].qSubNodes\n );\n}\n\nconst util = {\n getNoDataExistAttribute(qHyperCube) {\n return qHyperCube.qSize.qcy * qHyperCube.qSize.qcx === 0;\n },\n\n getLimitedDataAttribute(qHyperCube, opts) {\n let result = false;\n let maxNbrOfDimensions;\n if (!qHyperCube) {\n result = opts.explicitLimitedData === true;\n } else if (opts.explicitLimitedData !== undefined) {\n result = opts.explicitLimitedData === true;\n } else if (qHyperCube.qDataPages && qHyperCube.qDataPages[0]) {\n result = !opts.paging && qHyperCube.qSize.qcy > qHyperCube.qDataPages[0].qMatrix.length;\n } else if (hasSubNodes(qHyperCube.qStackedDataPages)) {\n maxNbrOfDimensions = opts.maxNbrOfDimensions ? opts.maxNbrOfDimensions : 2;\n if (qHyperCube.qDimensionInfo.length >= maxNbrOfDimensions) {\n result = qHyperCube.qStackedDataPages[0].qData[0].qSubNodes.some((node) => node.qDown > 0);\n } else {\n result =\n qHyperCube.qStackedDataPages[0].qData[0].qSubNodes.length < qHyperCube.qStackedDataPages[0].qArea.qHeight;\n }\n }\n return result;\n },\n\n getNegativeOrZeroValuesAttribute(qHyperCube, opts) {\n return !opts.supportNegative && qHyperCube.qMeasureInfo.some((measure) => measure.qMin <= 0);\n },\n\n getOnlyNegativeOrZeroValuesAttribute(qHyperCube, opts) {\n return (\n (!opts.supportNegative &&\n qHyperCube.qMeasureInfo.every((measure) => measure.qMax <= 0 && measure.qMax >= measure.qMin)) ||\n qHyperCube.qSize.qcy === 0\n );\n },\n\n getOnlyNanDataAttribute(qHyperCube, opts) {\n if (opts.explicitOnlyNanData !== undefined) {\n return opts.explicitOnlyNanData;\n }\n\n return qHyperCube.qMeasureInfo.every((measure) => measure.qMax < measure.qMin || measure.qMax === 'NaN');\n },\n\n getDataRangeIncludingZeroAttribute(data, opts) {\n return !opts.supportRangeOverZero && hasDataRangeIncludingZero(data.measureAxis, data.qHyperCube.qMeasureInfo);\n },\n\n /**\n * Apply attributes that configures disclaimers for a charts\n * @param {Object} options - Options\n * @param {Object} data - Layout data\n * @returns {Object}\n */\n applyAttributes(options, data) {\n const opts = options || {};\n const dataAttributes = {};\n\n opts.supportNegative = opts.supportNegative === undefined ? true : opts.supportNegative;\n opts.supportRangeOverZero = opts.supportRangeOverZero === undefined ? true : opts.supportRangeOverZero;\n\n DisclaimersConfig.DISCLAIMERS.forEach((config) => {\n dataAttributes[config.label] = false;\n });\n if (!data || !data.qHyperCube) {\n return dataAttributes;\n }\n dataAttributes.NoDataExist = this.getNoDataExistAttribute(data.qHyperCube);\n if (dataAttributes.NoDataExist) {\n return dataAttributes;\n }\n dataAttributes.RequireNumericDimension = opts.explicitRequireNumericDimension;\n if (dataAttributes.RequireNumericDimension) {\n return dataAttributes;\n }\n dataAttributes.LimitedData = this.getLimitedDataAttribute(data.qHyperCube, opts);\n dataAttributes.NegativeOrZeroValues = this.getNegativeOrZeroValuesAttribute(data.qHyperCube, opts);\n dataAttributes.OnlyNegativeOrZeroValues = this.getOnlyNegativeOrZeroValuesAttribute(data.qHyperCube, opts);\n dataAttributes.OnlyNanData = this.getOnlyNanDataAttribute(data.qHyperCube, opts);\n dataAttributes.DataRangeIncludingZero = this.getDataRangeIncludingZeroAttribute(data, opts);\n\n return dataAttributes;\n },\n};\nexport default util;\n","/**\n * Helper for disclaimer component\n *\n */\n\n/**\n * Create new Helper for disclaimer\n * @param disclaimersConfig {Array} List of disclaimer config objects\n * @param dataAttributes {Object} Config for which disclaimers that are valid to show\n * @param supportedDisclaimers {Object} Config for which disclaimers that are supported\n * @constructor\n */\nfunction Helper(disclaimersConfig, dataAttributes, supportedDisclaimers) {\n this.disclaimersConfig = disclaimersConfig;\n this.dataAttributes = dataAttributes;\n this.supportedDisclaimers = supportedDisclaimers;\n}\n\nfunction isValid(label, list) {\n return label && list && list[label];\n}\n\n/**\n * Returns true if disclaimer config is valid, supported and has an alignment\n * @param disclaimer {Object} Configuration for a disclaimer\n * @param alignment {Integer} Alignment value in disclaimers config\n * @returns {Boolean}\n */\nHelper.prototype.isValidAndSupported = function (disclaimer, alignment) {\n return (\n isValid(disclaimer.label, this.dataAttributes) &&\n (disclaimer.default || isValid(disclaimer.label, this.supportedDisclaimers)) &&\n alignment !== undefined &&\n disclaimer.alignment === alignment\n );\n};\n\n/**\n * Returns true if there are any valid disclaimers for an alignment\n * @param alignment {Integer} Alignment value in disclaimers config\n * @returns {Boolean}\n */\nHelper.prototype.isAnyValidDisclaimer = function (alignment) {\n let result = false;\n const self = this;\n this.disclaimersConfig.forEach((config) => {\n if (self.isValidAndSupported(config, alignment)) {\n result = true;\n }\n });\n return result;\n};\n\n/**\n * Gets all translated disclaimer messages for an alignment\n * @param alignment {Integer} Alignment value in disclaimers config\n * @param translator {Object} Translator component\n * @returns {string}\n */\nHelper.prototype.getMessage = function (alignment, translator) {\n let str = '';\n const self = this;\n if (translator) {\n this.disclaimersConfig.forEach((config) => {\n if (self.isValidAndSupported(config, alignment)) {\n str += `${translator.get(`Object.Disclaimer.${config.label}`)} `;\n }\n });\n }\n return str;\n};\n\nexport default Helper;\n","/**\n * Disclaimer component for Picasso base charts\n *\n * @exports objects.picasso/disclaimer/disclaimer\n */\n\nimport extend from 'extend';\nimport DisclaimersConfig from './disclaimers-config';\nimport AttributesUtil from './disclaimer-attributes-util';\nimport DisclaimerComponentHelper from './disclaimer-component-helper';\n\nDisclaimer.ERRORS = {\n SET: 'Calling Disclaimer.set() without attributes',\n DISPLAY: 'Calling Disclaimer.display() before attributes are applied',\n};\n\n/**\n * Create new disclaimer component\n * @param {Object} options - A reference to chart options\n * @constructor\n */\nfunction Disclaimer(environment) {\n this.environment = environment;\n this.clear();\n}\n\nDisclaimer._applyDefaultSupport = function (supportedDisclaimers, disclaimersConfig) {\n let supported = supportedDisclaimers;\n if (!supported) {\n supported = {};\n }\n disclaimersConfig.forEach((config) => {\n if (supported[config.label] === undefined) {\n supported[config.label] = config.default;\n }\n });\n return supported;\n};\n\nDisclaimer.prototype.getComponentSettings = function () {\n const { translator } = this.environment;\n const supportedDisclaimers = extend(true, {}, this.vizAttributes.supportedDisclaimers);\n const helper = new DisclaimerComponentHelper(\n DisclaimersConfig.DISCLAIMERS,\n this.dataAttributes,\n supportedDisclaimers\n );\n\n let message;\n let dock;\n if (helper.isAnyValidDisclaimer(DisclaimersConfig.ALIGNMENT.CENTER)) {\n message = helper.getMessage(DisclaimersConfig.ALIGNMENT.CENTER, translator);\n dock = 'center';\n } else if (helper.isAnyValidDisclaimer(DisclaimersConfig.ALIGNMENT.BOTTOM)) {\n message = helper.getMessage(DisclaimersConfig.ALIGNMENT.BOTTOM, translator);\n dock = 'bottom';\n } else {\n return undefined;\n }\n\n return {\n key: 'disclaimer',\n type: 'disclaimer',\n layout: {\n displayOrder: 1000,\n dock,\n },\n settings: {\n label: message,\n rtl: this.environment?.options?.direction === 'rtl',\n },\n };\n};\n\n/**\n * Set attributes that configures disclaimers for a charts\n * @param {Object} attributes - Disclaimer settings for a chart\n */\nDisclaimer.prototype.set = function (attributes) {\n this.clear();\n if (attributes) {\n this.vizAttributes = attributes;\n this.dataAttributes = AttributesUtil.applyAttributes(this.vizAttributes.options, this.vizAttributes.data);\n } else {\n throw new Error(Disclaimer.ERRORS.SET);\n }\n};\n\n/**\n * Clears disclaimer settings\n */\nDisclaimer.prototype.clear = function () {\n this.vizAttributes = null;\n this.dataAttributes = null;\n};\n\nexport default Disclaimer;\n","import extend from 'extend';\nimport { getValue } from 'qlik-chart-modules';\n\nimport Class from '../extra/class';\nimport ChartBuilder from './chart-builder/chart-builder';\nimport Disclaimer from './disclaimer/disclaimer';\n\nfunction getData(backendApi, hyperCube, rect) {\n let page = {\n qTop: 0,\n qLeft: 0,\n qWidth: hyperCube.qSize.qcx,\n qHeight: 10000 / hyperCube.qSize.qcx,\n };\n let dataPagesPath;\n\n if (rect) {\n const width = rect.width || hyperCube.qSize.qcx;\n const maxHeight = Math.floor(10000 / width);\n page = {\n qTop: rect.top || 0,\n qLeft: rect.left || 0,\n qWidth: width,\n qHeight: rect.height ? Math.min(rect.height, maxHeight) : maxHeight,\n };\n } else {\n page = {\n qTop: 0,\n qLeft: 0,\n qWidth: hyperCube.qSize.qcx,\n qHeight: 10000 / hyperCube.qSize.qcx,\n };\n }\n\n switch (hyperCube.qMode) {\n case 'K': // Stacked mode\n dataPagesPath = 'qStackedDataPages';\n break;\n case 'S': // Straight table mode\n default:\n dataPagesPath = 'qDataPages';\n break;\n }\n\n return backendApi.getData([page], null, hyperCube).then((pages) => {\n hyperCube[dataPagesPath] = pages;\n });\n}\n\nconst ChartView = Class.extend({\n init(picasso, $element, environment, backendApi, selectionsApi) {\n this.$element = $element;\n this.environment = environment;\n this.backendApi = backendApi;\n\n this._selectionsApi = selectionsApi;\n this._on = false;\n this._disclaimer = new Disclaimer(environment);\n this._dataPaths = ['qHyperCube'];\n\n const self = this;\n\n // Set properties that should be available in subclasses\n\n this.picassoElement = $element[0];\n this.picassoElement.className += ' picasso-chart';\n\n // Paint a visually empty Picasso chart containing an event-area component\n this.chartInstance = picasso.chart({\n element: this.picassoElement,\n settings: {\n components: [\n ChartBuilder.createComponent('event-area', {\n mounted(element) {\n // Mounted is run synchronously so this.dataAreaElem will be available in subclass constructors\n self.dataAreaElem = element;\n },\n }),\n ],\n },\n });\n },\n\n updateEnvironment(environment) {\n this.environment = environment;\n },\n\n isRtl() {\n return this.environment.options?.direction === 'rtl';\n },\n\n setDataPaths(dataPaths) {\n this._dataPaths = dataPaths;\n },\n\n getData(backendApi, hyperCube, rect) {\n return getData(backendApi, hyperCube, rect);\n },\n\n hasValidData() {\n return true;\n },\n\n paint() {\n // Use this.layout\n if (this.hasValidData()) {\n this._disclaimer.set(this.getDisclaimerAttributes(this.layout));\n const disclaimerComponent = this._disclaimer.getComponentSettings();\n const isSuppressingDisc = disclaimerComponent?.layout?.dock === 'center';\n\n const chartSettings = this.createChartSettings(this.layout);\n if (isSuppressingDisc) {\n chartSettings.components = [disclaimerComponent];\n } else if (disclaimerComponent) {\n chartSettings.components.push(disclaimerComponent);\n }\n ChartBuilder.validateComponentKeys(chartSettings.components).forEach((errorMsg) => {\n console.error(errorMsg);\n });\n\n this.updateChart(this.layout, chartSettings);\n this._painted = true;\n }\n return Promise.resolve();\n },\n\n resize() {\n // Use this.layout\n if (!this.layout) {\n // There are cases where resize is run before updateData, therefore layout is undefined\n return undefined;\n }\n return this.paint();\n },\n\n createChartSettings() {\n throw new Error('Subclass must implement \"createChartSettings\" function');\n },\n\n addSnapshotChartSettings(settings, layout) {\n const { freeResize } = this.environment.options;\n if (!freeResize && layout.snapshotData) {\n settings.dockLayout.logicalSize = {\n width: layout.snapshotData.content.size.w,\n height: layout.snapshotData.content.size.h,\n preserveAspectRatio: true,\n };\n }\n },\n\n updateData(layout) {\n // clone the layout so that updates ignored by suppressOnPaint does not affect it.\n if (this._destroyed) {\n return Promise.reject();\n }\n\n this.layout = extend(true, {}, layout);\n this.layout.permissions = layout.permissions;\n return Promise.resolve();\n },\n\n updateChart(layout, settings, isPartialData) {\n const localeInfo = this.environment.appLayout?.qLocaleInfo ?? {};\n const data = this._dataPaths.map((path) => ({\n type: 'q',\n key: path,\n config: {\n localeInfo,\n },\n data: getValue(layout, path.replace(/\\//g, '.')),\n }));\n if (this.colorService) {\n data.push(...this.colorService.getData());\n }\n\n this.chartInstance.update({\n data,\n settings,\n partialData: isPartialData,\n });\n\n const STATE_DATA_UPDATED = 2;\n this.picassoElement.setAttribute('data-state', STATE_DATA_UPDATED); // For integration test\n },\n\n destroy() {\n this._destroyed = true;\n this.off();\n this.chartInstance.destroy();\n },\n\n getViewState() {\n return {};\n },\n\n isLassoDisabled() {\n return true;\n },\n\n setSnapshotData(snapshotLayout) {\n if (!snapshotLayout.snapshotData) {\n snapshotLayout.snapshotData = {};\n }\n snapshotLayout.snapshotData.content = {\n // eslint-disable-line no-param-reassign\n chartData: {},\n size: {\n w: this.$element.width(),\n h: this.$element.height(),\n },\n };\n },\n\n getDisclaimerAttributes(layout) {\n return {\n data: layout,\n };\n },\n});\n\nexport default ChartView;\n","const colorStruct = {\n aliceblue: { r: 240, g: 248, b: 255 },\n antiquewhite: { r: 250, g: 235, b: 215 },\n aqua: { r: 0, g: 255, b: 255 },\n aquamarine: { r: 127, g: 255, b: 212 },\n azure: { r: 240, g: 255, b: 255 },\n beige: { r: 245, g: 245, b: 220 },\n bisque: { r: 255, g: 228, b: 196 },\n black: { r: 0, g: 0, b: 0 },\n blanchedalmond: { r: 255, g: 235, b: 205 },\n blue: { r: 0, g: 0, b: 255 },\n blueviolet: { r: 138, g: 43, b: 226 },\n brown: { r: 165, g: 42, b: 42 },\n burlywood: { r: 222, g: 184, b: 135 },\n cadetblue: { r: 95, g: 158, b: 160 },\n chartreuse: { r: 127, g: 255, b: 0 },\n chocolate: { r: 210, g: 105, b: 30 },\n coral: { r: 255, g: 127, b: 80 },\n cornflowerblue: { r: 100, g: 149, b: 237 },\n cornsilk: { r: 255, g: 248, b: 220 },\n crimson: { r: 220, g: 20, b: 60 },\n cyan: { r: 0, g: 255, b: 255 },\n darkblue: { r: 0, g: 0, b: 139 },\n darkcyan: { r: 0, g: 139, b: 139 },\n darkgoldenrod: { r: 184, g: 134, b: 11 },\n darkgray: { r: 169, g: 169, b: 169 },\n darkgreen: { r: 0, g: 100, b: 0 },\n darkgrey: { r: 169, g: 169, b: 169 },\n darkkhaki: { r: 189, g: 183, b: 107 },\n darkmagenta: { r: 139, g: 0, b: 139 },\n darkolivegreen: { r: 85, g: 107, b: 47 },\n darkorange: { r: 255, g: 140, b: 0 },\n darkorchid: { r: 153, g: 50, b: 204 },\n darkred: { r: 139, g: 0, b: 0 },\n darksalmon: { r: 233, g: 150, b: 122 },\n darkseagreen: { r: 143, g: 188, b: 143 },\n darkslateblue: { r: 72, g: 61, b: 139 },\n darkslategray: { r: 47, g: 79, b: 79 },\n darkslategrey: { r: 47, g: 79, b: 79 },\n darkturquoise: { r: 0, g: 206, b: 209 },\n darkviolet: { r: 148, g: 0, b: 211 },\n deeppink: { r: 255, g: 20, b: 147 },\n deepskyblue: { r: 0, g: 191, b: 255 },\n dimgray: { r: 105, g: 105, b: 105 },\n dimgrey: { r: 105, g: 105, b: 105 },\n dodgerblue: { r: 30, g: 144, b: 255 },\n firebrick: { r: 178, g: 34, b: 34 },\n floralwhite: { r: 255, g: 250, b: 240 },\n forestgreen: { r: 34, g: 139, b: 34 },\n fuchsia: { r: 255, g: 0, b: 255 },\n gainsboro: { r: 220, g: 220, b: 220 },\n ghostwhite: { r: 248, g: 248, b: 255 },\n gold: { r: 255, g: 215, b: 0 },\n goldenrod: { r: 218, g: 165, b: 32 },\n gray: { r: 128, g: 128, b: 128 },\n green: { r: 0, g: 128, b: 0 },\n greenyellow: { r: 173, g: 255, b: 47 },\n grey: { r: 128, g: 128, b: 128 },\n honeydew: { r: 240, g: 255, b: 240 },\n hotpink: { r: 255, g: 105, b: 180 },\n indianred: { r: 205, g: 92, b: 92 },\n indigo: { r: 75, g: 0, b: 130 },\n ivory: { r: 255, g: 255, b: 240 },\n khaki: { r: 240, g: 230, b: 140 },\n lavender: { r: 230, g: 230, b: 250 },\n lavenderblush: { r: 255, g: 240, b: 245 },\n lawngreen: { r: 124, g: 252, b: 0 },\n lemonchiffon: { r: 255, g: 250, b: 205 },\n lightblue: { r: 173, g: 216, b: 230 },\n lightcoral: { r: 240, g: 128, b: 128 },\n lightcyan: { r: 224, g: 255, b: 255 },\n lightgoldenrodyellow: { r: 250, g: 250, b: 210 },\n lightgray: { r: 211, g: 211, b: 211 },\n lightgreen: { r: 144, g: 238, b: 144 },\n lightgrey: { r: 211, g: 211, b: 211 },\n lightpink: { r: 255, g: 182, b: 193 },\n lightsalmon: { r: 255, g: 160, b: 122 },\n lightseagreen: { r: 32, g: 178, b: 170 },\n lightskyblue: { r: 135, g: 206, b: 250 },\n lightslategray: { r: 119, g: 136, b: 153 },\n lightslategrey: { r: 119, g: 136, b: 153 },\n lightsteelblue: { r: 176, g: 196, b: 222 },\n lightyellow: { r: 255, g: 255, b: 224 },\n lime: { r: 0, g: 255, b: 0 },\n limegreen: { r: 50, g: 205, b: 50 },\n linen: { r: 250, g: 240, b: 230 },\n magenta: { r: 255, g: 0, b: 255 },\n maroon: { r: 128, g: 0, b: 0 },\n mediumaquamarine: { r: 102, g: 205, b: 170 },\n mediumblue: { r: 0, g: 0, b: 205 },\n mediumorchid: { r: 186, g: 85, b: 211 },\n mediumpurple: { r: 147, g: 112, b: 219 },\n mediumseagreen: { r: 60, g: 179, b: 113 },\n mediumslateblue: { r: 123, g: 104, b: 238 },\n mediumspringgreen: { r: 0, g: 250, b: 154 },\n mediumturquoise: { r: 72, g: 209, b: 204 },\n mediumvioletred: { r: 199, g: 21, b: 133 },\n midnightblue: { r: 25, g: 25, b: 112 },\n mintcream: { r: 245, g: 255, b: 250 },\n mistyrose: { r: 255, g: 228, b: 225 },\n moccasin: { r: 255, g: 228, b: 181 },\n navajowhite: { r: 255, g: 222, b: 173 },\n navy: { r: 0, g: 0, b: 128 },\n oldlace: { r: 253, g: 245, b: 230 },\n olive: { r: 128, g: 128, b: 0 },\n olivedrab: { r: 107, g: 142, b: 35 },\n orange: { r: 255, g: 165, b: 0 },\n orangered: { r: 255, g: 69, b: 0 },\n orchid: { r: 218, g: 112, b: 214 },\n palegoldenrod: { r: 238, g: 232, b: 170 },\n palegreen: { r: 152, g: 251, b: 152 },\n paleturquoise: { r: 175, g: 238, b: 238 },\n palevioletred: { r: 219, g: 112, b: 147 },\n papayawhip: { r: 255, g: 239, b: 213 },\n peachpuff: { r: 255, g: 218, b: 185 },\n peru: { r: 205, g: 133, b: 63 },\n pink: { r: 255, g: 192, b: 203 },\n plum: { r: 221, g: 160, b: 221 },\n powderblue: { r: 176, g: 224, b: 230 },\n purple: { r: 128, g: 0, b: 128 },\n red: { r: 255, g: 0, b: 0 },\n rosybrown: { r: 188, g: 143, b: 143 },\n royalblue: { r: 65, g: 105, b: 225 },\n saddlebrown: { r: 139, g: 69, b: 19 },\n salmon: { r: 250, g: 128, b: 114 },\n sandybrown: { r: 244, g: 164, b: 96 },\n seagreen: { r: 46, g: 139, b: 87 },\n seashell: { r: 255, g: 245, b: 238 },\n sienna: { r: 160, g: 82, b: 45 },\n silver: { r: 192, g: 192, b: 192 },\n skyblue: { r: 135, g: 206, b: 235 },\n slateblue: { r: 106, g: 90, b: 205 },\n slategray: { r: 112, g: 128, b: 144 },\n slategrey: { r: 112, g: 128, b: 144 },\n snow: { r: 255, g: 250, b: 250 },\n springgreen: { r: 0, g: 255, b: 127 },\n steelblue: { r: 70, g: 130, b: 180 },\n tan: { r: 210, g: 180, b: 140 },\n teal: { r: 0, g: 128, b: 128 },\n thistle: { r: 216, g: 191, b: 216 },\n tomato: { r: 255, g: 99, b: 71 },\n transparent: {\n r: 255,\n g: 255,\n b: 255,\n a: 0,\n },\n turquoise: { r: 64, g: 224, b: 208 },\n violet: { r: 238, g: 130, b: 238 },\n wheat: { r: 245, g: 222, b: 179 },\n white: { r: 255, g: 255, b: 255 },\n whitesmoke: { r: 245, g: 245, b: 245 },\n yellow: { r: 255, g: 255, b: 0 },\n yellowgreen: { r: 154, g: 205, b: 50 },\n};\n\nexport default colorStruct;\n","/* eslint-disable camelcase */\n/* eslint-disable no-bitwise */\n/* eslint-disable no-nested-ternary */\n/* eslint-disable no-cond-assign */\n/* eslint-disable prefer-rest-params */\n\n/**\n * Module which defines a color object\n * @exports objects.views/charts/representation/color\n * @expose module:objects.views/charts/representation/color~Color\n */\nimport Class from './class';\nimport CSSColors from './css-colors';\n\n// color formats\nconst rgb = /^rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)$/i;\n\nconst rgba = /^rgba\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3}),(\\d(\\.\\d+)?)\\)$/i;\nconst hex = /^#([A-f0-9]{2})([A-f0-9]{2})([A-f0-9]{2})$/i;\nconst hexShort = /^#([A-f0-9])([A-f0-9])([A-f0-9])$/i;\nconst hsl = /^hsl\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*\\)$/i;\nconst hsla = /^hsla\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,(\\d(\\.\\d+)?)\\)$/i;\nconst floor = Math.floor;\nconst round = Math.round;\n\n/**\n * @class\n * @classdesc Class which provides color transformation functionality\n * @description This is a constructor.\n * @param {object} - Parameters to create a color from different notations\n * @example\n * // a few ways of instantiating a red color\n * var red;\n * red = new Color(255, 0, 0, 1); // rgba as parameters\n * red = new Color('#ff0000'); // hex\n * red = new Color('rgb(255,0,0)');//rgb as string\n * red = new Color('hsl(0, 100, 50)');// hsl as string\n * red = new Color(16711680);// uint\n */\nconst Color = Class.extend(\n /** @lends module:objects.views/charts/representation/color~Color# */ {\n init() {\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 1;\n let h;\n let s;\n let lcs;\n let l;\n let v;\n let c;\n let h_;\n let x;\n let rgb_;\n let m;\n let matches;\n let colorString;\n\n this._invalid = false;\n\n if (arguments[0] instanceof Color) {\n r = arguments[0]._r;\n g = arguments[0]._g;\n b = arguments[0]._b;\n a = arguments[0]._a;\n this._invalid = arguments[0]._invalid;\n } else if (arguments.length < 3) {\n if (typeof arguments[0] === 'string') {\n colorString = arguments[0];\n\n if ((matches = /^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/i.exec(colorString))) {\n r = parseInt(matches[1], 10);\n g = parseInt(matches[2], 10);\n b = parseInt(matches[3], 10);\n } else if (\n (matches = /^rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d(\\.\\d+)?)\\s*\\)$/i.exec(\n colorString\n ))\n ) {\n // rgba(1, 2, 3, 0.4)\n r = parseInt(matches[1], 10);\n g = parseInt(matches[2], 10);\n b = parseInt(matches[3], 10);\n a = parseFloat(matches[4]);\n } else if ((matches = /^#([A-f0-9]{2})([A-f0-9]{2})([A-f0-9]{2})$/i.exec(colorString))) {\n // #aBc123\n r = parseInt(matches[1], 16);\n g = parseInt(matches[2], 16);\n b = parseInt(matches[3], 16);\n a = 1;\n } else if ((matches = /^#([A-f0-9])([A-f0-9])([A-f0-9])$/i.exec(colorString))) {\n // #a5F\n r = parseInt(matches[1] + matches[1], 16);\n g = parseInt(matches[2] + matches[2], 16);\n b = parseInt(matches[3] + matches[3], 16);\n a = 1;\n } else if (\n (matches = /^hsl\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*\\)$/i.exec(colorString))\n ) {\n // hsl(1, 2, 3)\n h = parseFloat(matches[1]);\n s = parseFloat(matches[3]);\n l = parseFloat(matches[5]);\n\n h %= 360;\n s /= 100;\n l /= 100;\n\n h = h < 0 ? 0 : h > 360 ? 360 : h;\n s = s < 0 ? 0 : s > 1 ? 1 : s;\n l = l < 0 ? 0 : l > 1 ? 1 : l;\n\n c = l <= 0.5 ? 2 * l * s : (2 - 2 * l) * s;\n h_ = h / 60;\n x = c * (1 - Math.abs((h_ % 2) - 1));\n\n rgb_ = [];\n\n h_ = Math.floor(h_);\n switch (h_) {\n case 0:\n rgb_ = [c, x, 0];\n break;\n case 1:\n rgb_ = [x, c, 0];\n break;\n case 2:\n rgb_ = [0, c, x];\n break;\n case 3:\n rgb_ = [0, x, c];\n break;\n case 4:\n rgb_ = [x, 0, c];\n break;\n case 5:\n rgb_ = [c, 0, x];\n break;\n default:\n rgb_ = [0, 0, 0];\n }\n\n m = l - 0.5 * c;\n\n r = rgb_[0] + m;\n g = rgb_[1] + m;\n b = rgb_[2] + m;\n\n r = round(255 * r);\n g = round(255 * g);\n b = round(255 * b);\n a = 1.0;\n } else if (\n (matches = /^hsla\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,(\\d(\\.\\d+)?)\\)$/i.exec(\n colorString\n ))\n ) {\n // hsla(1,2,3,0.4)\n h = parseFloat(matches[1]);\n s = parseFloat(matches[3]);\n l = parseFloat(matches[5]);\n a = parseFloat(matches[7]);\n\n h %= 360;\n s /= 100;\n l /= 100;\n\n h = h < 0 ? 0 : h > 360 ? 360 : h;\n s = s < 0 ? 0 : s > 1 ? 1 : s;\n l = l < 0 ? 0 : l > 1 ? 1 : l;\n\n c = l <= 0.5 ? 2 * l * s : (2 - 2 * l) * s;\n h_ = h / 60;\n x = c * (1 - Math.abs((h_ % 2) - 1));\n\n rgb_ = [];\n\n h_ = Math.floor(h_);\n switch (h_) {\n case 0:\n rgb_ = [c, x, 0];\n break;\n case 1:\n rgb_ = [x, c, 0];\n break;\n case 2:\n rgb_ = [0, c, x];\n break;\n case 3:\n rgb_ = [0, x, c];\n break;\n case 4:\n rgb_ = [x, 0, c];\n break;\n case 5:\n rgb_ = [c, 0, x];\n break;\n default:\n rgb_ = [0, 0, 0];\n }\n\n m = l - 0.5 * c;\n\n r = rgb_[0] + m;\n g = rgb_[1] + m;\n b = rgb_[2] + m;\n\n r = round(255 * r);\n g = round(255 * g);\n b = round(255 * b);\n } else if (\n (matches = /^hsv\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*\\)$/i.exec(colorString))\n ) {\n // hsv(1, 2, 3) {\n h = parseFloat(matches[1]);\n s = parseFloat(matches[3]);\n v = parseFloat(matches[5]);\n\n h %= 360;\n s /= 100;\n v /= 100;\n\n h = h < 0 ? 0 : h > 360 ? 360 : h;\n s = s < 0 ? 0 : s > 1 ? 1 : s;\n v = v < 0 ? 0 : v > 1 ? 1 : v;\n\n c = v * s;\n h_ = h / 60;\n x = c * (1 - Math.abs((h_ % 2) - 1));\n\n rgb_ = [];\n\n h_ = Math.floor(h_);\n switch (h_) {\n case 0:\n rgb_ = [c, x, 0];\n break;\n case 1:\n rgb_ = [x, c, 0];\n break;\n case 2:\n rgb_ = [0, c, x];\n break;\n case 3:\n rgb_ = [0, x, c];\n break;\n case 4:\n rgb_ = [x, 0, c];\n break;\n case 5:\n rgb_ = [c, 0, x];\n break;\n default:\n rgb_ = [0, 0, 0];\n }\n\n m = v - c;\n\n r = rgb_[0] + m;\n g = rgb_[1] + m;\n b = rgb_[2] + m;\n\n r = round(255 * r);\n g = round(255 * g);\n b = round(255 * b);\n a = 1.0;\n } else if (CSSColors[colorString.toLowerCase()]) {\n lcs = colorString.toLowerCase();\n r = CSSColors[lcs].r;\n g = CSSColors[lcs].g;\n b = CSSColors[lcs].b;\n a = typeof CSSColors[lcs].a === 'number' ? CSSColors[lcs].a : 1.0;\n } else {\n this._invalid = true;\n }\n } else if (typeof arguments[0] === 'number' && arguments[0] >= 0 && arguments[1] === 'argb') {\n a = (0xff000000 & arguments[0]) >>> 24;\n a /= 255;\n r = (0xff0000 & arguments[0]) >> 16;\n g = (0x00ff00 & arguments[0]) >> 8;\n b = 0x0000ff & arguments[0];\n } else if (typeof arguments[0] === 'number' && arguments[0] >= 0) {\n r = (0xff0000 & arguments[0]) >> 16;\n g = (0x00ff00 & arguments[0]) >> 8;\n b = 0x0000ff & arguments[0];\n } else {\n this._invalid = true;\n }\n } else if (arguments.length >= 3) {\n r = arguments[0];\n g = arguments[1];\n b = arguments[2];\n a = arguments.length >= 4 ? arguments[3] : 1;\n } else {\n this._invalid = true;\n }\n\n if (Number.isNaN(+r + g + b + a)) {\n this._invalid = true;\n }\n\n this._r = floor(r);\n this._g = floor(g);\n this._b = floor(b);\n this._a = a;\n\n // object to cache string representations in various color spaces\n this._spaces = {};\n },\n isInvalid() {\n return this._invalid;\n },\n /**\n * Sets alpha value of color\n * @param {number} a - Alpha value of the color\n */\n setAlpha(a) {\n this._a = a;\n this._spaces = {};\n },\n /**\n * Gets the alpha value of this color\n * @returns {number}\n */\n getAlpha() {\n return this._a;\n },\n /**\n * Returns an rgb string representation of this color.\n * @return {string} An rgb string representation of this color\n */\n toRGB: function toRGB() {\n if (!this._spaces.rgb) {\n this._spaces.rgb = Color.toRGB(this);\n }\n return this._spaces.rgb;\n },\n /**\n * Returns an rgba string representation of this color.\n * @return {string} An rgba string representation of this color.\n */\n toRGBA: function toRGBA() {\n if (!this._spaces.rgba) {\n this._spaces.rgba = Color.toRGBA(this);\n }\n return this._spaces.rgba;\n },\n toString() {\n if (!this._spaces.rgb) {\n this._spaces.rgb = Color.toRGB(this);\n }\n return this._spaces.rgb;\n },\n /**\n * Returns a hex string representation of this color.\n * @return {string}\n */\n toHex: function toHex() {\n if (!this._spaces.hex) {\n this._spaces.hex = Color.toHex(this);\n }\n return this._spaces.hex;\n },\n /**\n * Returns a hsl string representation of this color using \"bi-hexcone\" model for lightness\n * @param {boolean} luma - Whether to use luma calculation\n * @return {string} In format hsl(0,0,0)\n */\n toHSL: function toHSL(luma) {\n if (!this._spaces.hsl) {\n this._spaces.hsl = Color.toHSL(this, luma);\n }\n return this._spaces.hsl;\n },\n /**\n * Returns a hsla string representation of this color using \"bi-hexcone\" model for lightness\n * @param {boolean} luma - Whether to use luma calculation\n * @return {string} In format hsla(0,0,0,0)\n */\n toHSLA: function toHSLA(luma) {\n if (!this._spaces.hsla) {\n this._spaces.hsla = Color.toHSLA(this, luma);\n }\n return this._spaces.hsla;\n },\n /**\n * Return the color components in hsv space using \"hexcone\" model for value (lightness)\n * @param {Color|string} c\n * @returns {object} The color components in hsv space {h:0-360, s:0-100, v:0-100}\n */\n toHSV() {\n const hsvComp = this.toHSVComponents();\n return `hsv(${hsvComp.h},${hsvComp.s},${hsvComp.v})`;\n },\n /**\n * Return the color components in hsv space using \"hexcone\" model for value (lightness)\n * @param {Color|string} c\n * @returns {object} The color components in hsv space {h:0-360, s:0-100, v:0-100}\n */\n toHSVComponents: function toHSVComponents() {\n if (!this._spaces.hsvComp) {\n this._spaces.hsvComp = Color.toHSVComponents(this);\n }\n return this._spaces.hsvComp;\n },\n /**\n * Returns a uint representation of this color\n * @return {number}\n */\n toNumber: function toNumber() {\n if (!this._spaces.num) {\n this._spaces.num = Color.toNumber(this);\n }\n return this._spaces.num;\n },\n /**\n * Checks if this color is perceived as dark.\n * @return {string} True if the luminance is below 160, false otherwise.\n */\n isDark() {\n return this.isInvalid() || this.getLuminance() < 125; // luminace calc option #2\n // return this.getLuminance() < 160; //luminace calc option #3\n },\n /**\n * Calculates the perceived luminance of the color.\n * @return {number} A value in the range 0-255 where a low value is considered dark and vice versa.\n */\n getLuminance() {\n // alpha channel is not considered\n if (typeof this._lumi === 'undefined') {\n // calculate luminance\n // this._lumi = 0.2126 * this._r + 0.7152 * this._g + 0.0722 * this._b; // option 1\n this._lumi = 0.299 * this._r + 0.587 * this._g + 0.114 * this._b; // option 2\n // this._lumi = Math.sqrt( 0.241 * this._r * this._r + 0.691 * this._g * this._g + 0.068 * this._b * this._b ); // option 3\n }\n\n return this._lumi;\n },\n /**\n * Shifts the color towards a lighter or darker shade\n * @param {number} value - A value in the range -100-100 to shift the color with along the HSL lightness.\n * @return {string} The shifted color as hsla string.\n */\n shiftLuminance(value) {\n const chsla = this.toHSLA();\n const matches = /^hsla\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,(\\d(\\.\\d+)?)\\)$/i.exec(\n chsla\n );\n\n const h = parseFloat(matches[1]);\n const s = parseFloat(matches[3]);\n let l = parseFloat(matches[5]);\n const a = parseFloat(matches[7]);\n // l *= 1 + value / 100;\n // l = Math.max( 0, l % 100 );\n l += value;\n l = Math.max(0, Math.min(l, 100));\n\n // if( value > 0 ){\n // s = s*0.2; //removing saturation to avoid the border from being too light\n // }\n\n return `hsla(${h},${s},${l},${a})`;\n },\n /**\n * Compares two colors.\n * @param {Color} c The color to compare with.\n * @return {boolean} True if the rgb channels are the same, false otherwise\n */\n isEqual(c) {\n if (c instanceof Color) {\n return this._r === c._r && this._g === c._g && this._b === c._b;\n }\n\n c = new Color(c);\n return this._r === c._r && this._g === c._g && this._b === c._b;\n },\n /**\n * Linearly interpolates each channel of two colors.\n * @param {Color} c2 The other color.\n * @param {number} t The interpolation value in the range (0-1).\n * @return {string} The blend as an rgb string.\n */\n blend(c2, t) {\n const r = floor(this._r + (c2._r - this._r) * t);\n const g = floor(this._g + (c2._g - this._g) * t);\n const b = floor(this._b + (c2._b - this._b) * t);\n const a = floor(this._a + (c2._a - this._a) * t);\n\n return `rgba(${[r, g, b, a].join(',')})`;\n },\n\n createShiftedColor(v) {\n if (v === undefined || Number.isNaN(+v)) {\n v = 1;\n }\n const lumi = this.getLuminance();\n const greenMultiplier = this._g < 126 ? 1 : 1 + this._g / 512;\n const hsla_string = this.shiftLuminance(\n (lumi * greenMultiplier < 220 ? 0.8 + 4 * (1 / (lumi + 1)) : -(0.8 + 1 * (lumi / 255))) * 20 * v\n );\n\n return new Color(hsla_string);\n },\n }\n);\n\n/**\n * Returns an rgb string representation of this color\n * @param {Color|string} c\n * @returns {string} An rgb string with channel values within range 0-255.\n */\nColor.toRGB = function toRGB(c) {\n if (c instanceof Color) {\n return `rgb(${[c._r, c._g, c._b].join(',')})`;\n }\n\n if (typeof c === 'string') {\n c = Color.toNumber(c);\n }\n\n const r = (c & 0xff0000) >> 16;\n const g = (c & 0x00ff00) >> 8;\n const b = c & 0x0000ff;\n\n return `rgb(${r},${g},${b})`;\n};\n/**\n *\n * @param c\n * @param a\n * @returns {string} The color rgb format.\n */\nColor.toRGBA = function toRGB(c, a) {\n if (c instanceof Color) {\n return `rgba(${[c._r, c._g, c._b, typeof a !== 'undefined' ? a : c._a].join(',')})`;\n }\n\n if (typeof c === 'string') {\n c = Color.toNumber(c);\n }\n\n const r = (c & 0xff0000) >> 16;\n const g = (c & 0x00ff00) >> 8;\n const b = c & 0x0000ff;\n\n return `rgba(${r},${g},${b},${typeof a !== 'undefined' ? a : c._a})`;\n};\n/**\n *\n * @param {Color|string} c\n * @returns {string} The color in hexadecimal space.\n */\nColor.toHex = function toHex(c) {\n let r;\n let g;\n let b;\n if (c instanceof Color) {\n r = c._r.toString(16);\n g = c._g.toString(16);\n b = c._b.toString(16);\n if (r.length === 1) {\n r = `0${r}`;\n }\n if (g.length === 1) {\n g = `0${g}`;\n }\n if (b.length === 1) {\n b = `0${b}`;\n }\n return `#${[r, g, b].join('')}`;\n }\n\n if (typeof c === 'string') {\n c = Color.toNumber(c);\n }\n\n r = ((c & 0xff0000) >> 16).toString(16);\n g = ((c & 0x00ff00) >> 8).toString(16);\n b = (c & 0x0000ff).toString(16);\n\n if (r.length === 1) {\n r = `0${r}`;\n }\n if (g.length === 1) {\n g = `0${g}`;\n }\n if (b.length === 1) {\n b = `0${b}`;\n }\n\n return `#${r}${g}${b}`;\n};\n/**\n * Return the color in hsl space using \"bi-hexcone\" model for lightness\n * @param {Color|string} c\n * @param {boolean} luma - Whether to use luma calculation\n * @returns {string} The color in hsl space.\n */\nColor.toHSL = function (c, luma) {\n let h = 0;\n let s;\n let l;\n let ch;\n if (typeof c === 'string') {\n c = new Color(c);\n }\n\n // red, green, blue, hue, saturation, lightness/luma, max, min, chroma\n const r = c._r / 255;\n const g = c._g / 255;\n const b = c._b / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n if (luma) {\n // Y'709 http://en.wikipedia.org/wiki/Rec._709\n // Y′709 = 0.21R + 0.72G + 0.07B\n l = 0.21 * r + 0.72 * g + 0.07 * b;\n } else {\n l = (max + min) / 2;\n }\n\n if (max === min) {\n // greyscale\n s = 0;\n h = 0;\n } else {\n ch = max - min;\n s = l > 0.5 ? ch / (2 - max - min) : ch / (max + min);\n switch (max) {\n case r:\n h = (g - b) / ch + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / ch + 2;\n break;\n case b:\n h = (r - g) / ch + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n\n return `hsl(${h * 360},${s * 100},${l * 100})`;\n};\n/**\n * Return the color in hsla space using \"bi-hexcone\" model for lightness\n * @param {Color|string} c\n * @param {boolean} luma - Whether to use luma calculation\n * @returns {string} The color in hsla space.\n */\nColor.toHSLA = function (c, luma) {\n let h = 0;\n let s;\n let l;\n let ch;\n if (typeof c === 'string') {\n c = new Color(c);\n }\n\n // red, green, blue, hue, saturation, lightness/luma, max, min, chroma\n const r = c._r / 255;\n const g = c._g / 255;\n const b = c._b / 255;\n const a = c._a;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n if (luma) {\n // Y'709 http://en.wikipedia.org/wiki/Rec._709\n // Y′709 = 0.21R + 0.72G + 0.07B\n l = 0.21 * r + 0.72 * g + 0.07 * b;\n } else {\n l = (max + min) / 2;\n }\n\n if (max === min) {\n // greyscale\n s = 0;\n h = 0;\n } else {\n ch = max - min;\n s = l > 0.5 ? ch / (2 - max - min) : ch / (max + min);\n switch (max) {\n case r:\n h = (g - b) / ch + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / ch + 2;\n break;\n case b:\n h = (r - g) / ch + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n\n return `hsla(${h * 360},${s * 100},${l * 100},${a})`;\n};\n/**\n * Return the color components in hsv space using \"hexcone\" model for value (lightness)\n * @param {Color|string} c\n * @returns {object} The color components in hsv space {h:0-360, s:0-100, v:0-100}\n */\nColor.toHSVComponents = function (c) {\n let h = 0;\n let s;\n let ch;\n if (typeof c === 'string') {\n c = new Color(c);\n }\n\n // red, green, blue, hue, saturation, value/luma, max, min, chroma\n const r = c._r / 255;\n const g = c._g / 255;\n const b = c._b / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n\n const v = max;\n\n if (max === min) {\n // greyscale\n s = 0;\n h = 0;\n } else {\n ch = max - min;\n s = ch === 0 ? 0 : ch / v;\n switch (max) {\n case r:\n h = (g - b) / ch + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / ch + 2;\n break;\n case b:\n h = (r - g) / ch + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n\n return { h: (h * 360) % 360, s: s * 100, v: v * 100 };\n};\n/**\n * Returns an number representation of the color\n * @param {Color|string} c\n * @returns {Number} Unsigned integer in the range 0-16 777 216\n */\nColor.toNumber = function toNumber() {\n if (arguments.length === 1 && arguments[0] instanceof Color) {\n return (arguments[0]._r << 16) + (arguments[0]._g << 8) + arguments[0]._b;\n }\n\n let r = 0;\n let g = 0;\n let b = 0;\n let matches;\n let colorString;\n\n if (arguments.length === 1) {\n if (typeof arguments[0] === 'string') {\n colorString = arguments[0];\n\n if ((matches = /^rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)$/i.exec(colorString))) {\n r = parseInt(matches[1], 10);\n g = parseInt(matches[2], 10);\n b = parseInt(matches[3], 10);\n } else if ((matches = /^#([A-f0-9]{2})([A-f0-9]{2})([A-f0-9]{2})$/i.exec(colorString))) {\n r = parseInt(matches[1], 16);\n g = parseInt(matches[2], 16);\n b = parseInt(matches[3], 16);\n } else if ((matches = /^#([A-f0-9])([A-f0-9])([A-f0-9])$/i.exec(colorString))) {\n r = parseInt(matches[1] + matches[1], 16);\n g = parseInt(matches[2] + matches[2], 16);\n b = parseInt(matches[3] + matches[3], 16);\n }\n }\n }\n return (r << 16) + (g << 8) + b;\n};\nColor.blend = function blend(c1, c2, t) {\n c1 = Color.toNumber(c1);\n c2 = Color.toNumber(c2);\n\n const r1 = (c1 & 0xff0000) >> 16;\n const g1 = (c1 & 0x00ff00) >> 8;\n const b1 = c1 & 0x0000ff;\n const r2 = (c2 & 0xff0000) >> 16;\n const g2 = (c2 & 0x00ff00) >> 8;\n const b2 = c2 & 0x0000ff;\n const r = r1 + (r2 - r1) * t;\n const g = g1 + (g2 - g1) * t;\n const b = b1 + (b2 - b1) * t;\n\n return (r << 16) + (g << 8) + b;\n};\nColor.getBlend = function getBlend(c1, c2, t) {\n const r = c1._r + (c2._r - c1._r) * t;\n const g = c1._g + (c2._g - c1._g) * t;\n const b = c1._b + (c2._b - c1._b) * t;\n const a = c1._a + (c2._a - c1._a) * t;\n\n return new Color(r, g, b, a);\n};\nColor.isCSSColor = function (color) {\n if (arguments.length > 1 || typeof color !== 'string') {\n return false;\n }\n return (\n rgb.test(color) ||\n rgba.test(color) ||\n hex.test(color) ||\n hexShort.test(color) ||\n hsl.test(color) ||\n hsla.test(color) ||\n CSSColors[color.toLowerCase()]\n );\n};\n\nColor.getBestContrast = function (color, cl, cd) {\n const lum = color.getLuminance();\n return Math.abs(lum - cl.getLuminance()) > Math.abs(lum - cd.getLuminance()) ? cl : cd;\n};\n\nColor.getContrast = function (color1, color2) {\n if (!color1 || !color2) {\n return undefined;\n }\n\n const l1 = color1.getLuminance() / 100;\n const l2 = color2.getLuminance() / 100;\n\n if (l1 > l2) {\n return (l1 + 0.05) / (l2 + 0.05);\n }\n\n return (l2 + 0.05) / (l1 + 0.05);\n};\n\nColor.isDark = function () {\n const o = {\n getLuminance: Color.prototype.getLuminance,\n isInvalid: Color.prototype.isInvalid,\n };\n Color.prototype.init.apply(o, [].slice.call(arguments));\n return Color.prototype.isDark.call(o);\n};\n\nColor.useDarkLabel = function (areaColor, bgIsDark) {\n return areaColor._a > 0.5 ? !areaColor.isDark() : !bgIsDark;\n};\n\nexport default Color;\n","const namespace = '.scrollHandler';\n\nScrollHandler.prototype.getScrollApi = getScrollApi;\nScrollHandler.prototype.setDisabled = setDisabled;\nScrollHandler.prototype.getDisabled = getDisabled;\nScrollHandler.prototype.setItemSize = setItemSize;\nScrollHandler.prototype.getItemSize = getItemSize;\nScrollHandler.prototype.getScrollViewSizeInItem = getScrollViewSizeInItem;\nScrollHandler.prototype.on = on;\nScrollHandler.prototype.isOn = isOn;\nScrollHandler.prototype.off = off;\nScrollHandler.prototype.updateViewState = updateViewState;\nScrollHandler.prototype.onResize = onResize;\nScrollHandler.prototype.isDataSizeChanged = isDataSizeChanged;\nScrollHandler.prototype.resetScroll = resetScroll;\nScrollHandler.prototype.getViewData = getViewData;\nScrollHandler.prototype.setOptions = setOptions;\nScrollHandler.prototype.getScrollState = getScrollState;\nScrollHandler.prototype.setScrollState = setScrollState;\n\nexport default ScrollHandler;\n\n/**\n * Implementation details\n */\n\nfunction ScrollHandler(chartInstance, $chartElement, getSlicedDataFn, onScrollCallback, legendKey) {\n if (!chartInstance || !$chartElement || !getSlicedDataFn) {\n throw Error('Scroll-handler: Missing input');\n }\n this._chartInstance = chartInstance;\n this._$chartElement = $chartElement;\n this._getSlicedDataFn = getSlicedDataFn;\n this._on = false;\n this._itemSize = 30;\n this.options = {\n direction: 'vertical',\n };\n this._onScrollCallback = onScrollCallback;\n this._legendKey = legendKey;\n}\n\nfunction getScrollApi() {\n if (!this._scrollApi) {\n this._scrollApi = this._chartInstance.scroll('dimension');\n }\n return this._scrollApi;\n}\n\nfunction setDisabled(b) {\n this._disabled = b;\n}\n\nfunction getDisabled() {\n return this._disabled;\n}\n\nfunction setItemSize(s) {\n if (this._itemSize !== s) {\n this._itemSize = s;\n calculateScrollViewSizeInItem.call(this);\n }\n}\n\nfunction getItemSize() {\n return this._itemSize;\n}\n\nfunction getScrollViewSizeInItem() {\n if (!this._scrollViewSizeInItem) {\n calculateScrollViewSizeInItem.call(this);\n }\n return this._scrollViewSizeInItem;\n}\n\nfunction on() {\n if (this._on) {\n return;\n }\n if (this.getScrollApi()) {\n this._scrollApi.removeAllListeners();\n this._scrollApi.on('update', onScroll.bind(this));\n }\n this._$chartElement.on(`mousewheel${namespace} DOMMouseScroll${namespace}`, onMouseWheel.bind(this));\n // TODO: Picasso does not support pointer events therefore we need to remove preventDefault on pointer down to make it work for IE.\n // However, this will make paning on touch device to pan the object, so we need to prevent it.\n // This fix should be removed when Picasso support pointer events.\n this._$chartElement.on(`touchstart${namespace}`, (event) => {\n event.preventDefault();\n });\n this._on = true;\n}\nfunction isOn() {\n return this._on;\n}\nfunction off() {\n if (!this._on) {\n return;\n }\n if (this.getScrollApi()) {\n this._scrollApi.removeAllListeners();\n }\n this._$chartElement.off(namespace);\n this._on = false;\n}\n\nfunction updateViewState(max) {\n calculateScrollViewSizeInItem.call(this);\n if (this.getScrollApi()) {\n this._scrollApi.update({ viewSize: this._scrollViewSizeInItem, max });\n }\n}\n\nfunction onResize() {\n this._sizeChanged = true;\n calculateScrollViewSizeInItem.call(this);\n if (this.getScrollApi()) {\n this._scrollApi.update({ viewSize: this._scrollViewSizeInItem });\n }\n}\n\nfunction isDataSizeChanged(pageNumberOfRows, datasetNumberOfRows) {\n return Math.min(this.getScrollViewSizeInItem(), datasetNumberOfRows) !== pageNumberOfRows;\n}\n\nfunction resetScroll() {\n if (this.getScrollApi()) {\n this._scrollApi.moveTo(0);\n }\n}\n\nfunction getViewData() {\n let top = 0;\n let height = 0;\n if (this.getScrollApi()) {\n const state = this._scrollApi.getState();\n top = Math.round(state.start);\n height = state.viewSize;\n }\n return this._getSlicedDataFn(top, height);\n}\n\nfunction getScrollState() {\n return this.getScrollApi().getState().start;\n}\nfunction setScrollState(state) {\n this.getScrollApi().moveTo(state);\n}\n\nfunction setOptions(options) {\n if (this.options.direction !== options.direction) {\n this._scrollViewSizeInItem = undefined;\n }\n this.options = options;\n}\n\nfunction calculateScrollViewSizeInItem() {\n const scrollSize =\n (this.options.direction === 'horizontal' ? this._$chartElement.width() : this._$chartElement.height()) || 0;\n const n = Math.floor(scrollSize / this.getItemSize());\n this._scrollViewSizeInItem = Math.max(n, 1); // Number of visible items should be at least 1\n}\n\nfunction getMouseWheelData(orgEvent) {\n let delta = 0;\n let deltaX = 0;\n let deltaY = 0;\n const divider = 60;\n\n // Old school scrollwheel delta\n if (orgEvent.wheelDelta) {\n delta = orgEvent.wheelDelta / divider;\n }\n if (orgEvent.detail) {\n delta = -orgEvent.detail / 3;\n }\n\n // New school multidimensional scroll (touchpads) deltas\n deltaY = delta;\n\n // Gecko\n if (orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS) {\n deltaY = 0;\n deltaX = -1 * delta;\n }\n\n // Webkit\n if (orgEvent.wheelDeltaY !== undefined) {\n deltaY = orgEvent.wheelDeltaY / divider;\n }\n if (orgEvent.wheelDeltaX !== undefined) {\n deltaX = (-1 * orgEvent.wheelDeltaX) / divider;\n }\n\n return {\n delta,\n deltaX,\n deltaY,\n x: orgEvent.pageX,\n y: orgEvent.pageY,\n };\n}\n\nfunction onLegendMouseWheel(e, event, chart, legendKey) {\n if (!!legendKey && chart.componentsFromPoint(event).some((c) => c.settings.key === legendKey)) {\n const legend = chart.component(legendKey);\n legend.emit(event.delta > 0 ? 'prev' : 'next');\n e.preventDefault();\n return true;\n }\n return false;\n}\n\nfunction onMouseWheel(e) {\n const event = getMouseWheelData(e.originalEvent);\n if (onLegendMouseWheel(e, event, this._chartInstance, this._legendKey) || this._disabled || !this.getScrollApi()) {\n return;\n }\n e.preventDefault();\n if (!event.delta) {\n return;\n }\n const scrollSpeed = 3;\n const value = event.delta < 0 ? scrollSpeed : -scrollSpeed;\n this._scrollApi.move(value);\n}\n\nfunction onScroll() {\n if (this._disabled || this._sizeChanged) {\n this._sizeChanged = false;\n return;\n }\n const self = this;\n this.getViewData()\n .then((layout) => {\n if (self._on && !self._disabled && self._onScrollCallback) {\n // Chart is updated with partial data\n self._onScrollCallback(layout, undefined, true);\n }\n })\n .catch((err) => {\n if (process.env.NODE_ENV === 'development') {\n if (typeof err !== 'undefined') {\n console.error(err);\n }\n }\n });\n}\n","/**\n * Checks whether a collision has occurred for range selection\n * @param e - event, in this case a mouse event\n * @param targets - the target points that the selections are hitting\n * @param selectionGesture - The type of selection gesture, for example area range select\n * @returns {boolean} - True, if a collision has occurred, otherwise false\n */\nfunction isOnComponentForRange(e, targets, selectionGesture) {\n return (\n !!e &&\n !!selectionGesture.chart\n .componentsFromPoint({\n x: e.center.x,\n y: e.center.y,\n })\n .filter((c) => targets.indexOf(c.settings.key) !== -1)[0]\n );\n}\n\n/**\n * Checks whether a collision has occurred for lasso selection\n * @param e - event, in this case a mouse event\n * @param gesturesParams - parameters for lasso selection\n * @param lassoGesture - the lasso gesture instance\n * @returns {boolean} - True, if a collision has occurred, otherwise false\n */\nfunction isOnComponentForLasso(e, gesturesParams, lassoGesture) {\n return (\n e &&\n lassoGesture.chart\n .componentsFromPoint({\n x: e.center.x,\n y: e.center.y,\n })\n .filter((c) => c.settings.key === gesturesParams.keys.componentKey)[0]\n );\n}\n\nfunction isOnComponentForNavBtn(e, legendBrushKey, navBtnGesture) {\n const components = navBtnGesture.chart.componentsFromPoint(e.center);\n return components.some((c) => c.settings.key === legendBrushKey);\n}\n\nexport default {\n isOnComponentForRange,\n isOnComponentForLasso,\n isOnComponentForNavBtn,\n};\n","import Hammer from 'hammerjs';\nimport onComponentChecker from './on-component-checker';\n\nfunction getLassoState(handlers) {\n return handlers.selectionHandler.lassoState() && !handlers.selectionHandler.allFieldsLocked();\n}\n\n/**\n * Handles lasso events for picasso charts using HammerJS. When activating lasso selection enable function is\n * triggered first. lassoStart is triggered on all areas specified by options.direction key. Lasso is the gesture\n * that will be active by default.\n */\nfunction callLassoGesture(state, gesturesFns, gesturesParams) {\n return {\n type: 'Pan',\n options: {\n direction: Hammer.DIRECTION_ALL,\n threshold: 1,\n enable(manager, e) {\n if (state.lassoing) {\n return gesturesFns.isSelectionEnabled();\n }\n const hitComp = onComponentChecker.isOnComponentForLasso(e, gesturesParams, this);\n return (\n gesturesFns.isSelectionEnabled() && e && (getLassoState(gesturesParams.handlers) || state.lassoing) && hitComp\n );\n },\n event: 'lasso',\n },\n recognizeWith: gesturesParams.handlers.scrollHandler ? 'drag' : null,\n events: {\n lassostart(e) {\n const hitComp = onComponentChecker.isOnComponentForLasso(e, gesturesParams, this);\n if (!hitComp) {\n return;\n }\n gesturesFns.switchTo('lasso', this.chart, e);\n state.lassoing = true;\n gesturesParams.handlers.selectionHandler.pauseEngineCalls(gesturesParams.keys.lassoBrushKey);\n e.clientX = e.pointers[0].clientX;\n e.clientY = e.pointers[0].clientY;\n gesturesFns.doEmit(this.chart, 'lasso', 'lassoStart', e);\n },\n lassomove(e) {\n if (!state.lassoing) {\n return;\n }\n e.clientX = e.pointers[0].clientX;\n e.clientY = e.pointers[0].clientY;\n gesturesFns.doEmit(this.chart, 'lasso', 'lassoMove', e);\n },\n lassoend(e) {\n if (!state.lassoing) {\n return;\n }\n\n e.clientX = e.pointers[0].clientX;\n e.clientY = e.pointers[0].clientY;\n gesturesFns.doEmit(this.chart, 'lasso', 'lassoEnd', e);\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.lassoBrushKey, true);\n state.lassoing = false;\n },\n lassocancel(e) {\n state.lassoing = false;\n gesturesFns.doEmit(this.chart, 'lasso', 'lassoCancel', e);\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.lassoBrushKey, false);\n },\n },\n };\n}\n\nexport default {\n callLassoGesture,\n};\n","import Hammer from 'hammerjs';\nimport onComponentChecker from './on-component-checker';\n\n/**\n * Handles measure range selection events for picasso charts using HammerJS. When activating measure range selection enable function is\n * triggered first. measurerangestart is triggered on all areas specified by options.direction key. Only after measurerangestart\n * is triggered, then the other events might be triggered as well. The different event\n * names must be appended as suffixes for options.event. In this case options.event is called measurerange, then our\n * events must be named measurerangestart, measurerangemove, measurerangeend, measurerangecancel.\n */\nfunction callMeasureRangeGesture(state, gesturesFns, gesturesParams, measureAxis) {\n const activeRangeBrush = gesturesParams.keys.dimRangeBrushKey ? 'majorrange' : 'arearange';\n\n return {\n type: 'Pan',\n options: {\n direction: gesturesParams.isHorizontal ? Hammer.DIRECTION_HORIZONTAL : Hammer.DIRECTION_VERTICAL,\n event: 'measurerange',\n enable(manager, e) {\n if (!gesturesParams.rangeSelStatus.isOpenMea) {\n return false;\n }\n\n if (state.measureSelecting) {\n return gesturesFns.isSelectionEnabled();\n }\n const targets =\n gesturesParams.active.gesture === 'measurerange'\n ? [measureAxis, gesturesParams.keys.componentKey]\n : [measureAxis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n\n state.measureSelecting = gesturesFns.isSelectionEnabled() && !!e && !!hitComp;\n return state.measureSelecting && !!gesturesParams.keys.measureRangeBrushKey;\n },\n },\n requireFailure: `lasso ${activeRangeBrush}`,\n recognizeWith: gesturesParams.handlers.scrollHandler ? 'drag' : null,\n events: {\n measurerangestart(e) {\n const targets =\n gesturesParams.active.gesture === 'measurerange'\n ? [measureAxis, gesturesParams.keys.componentKey]\n : [measureAxis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n if (!hitComp) {\n return;\n }\n\n state.measureSelecting = true;\n gesturesFns.switchTo('measurerange', this.chart, e);\n gesturesFns.doEmit(this.chart, 'rangeMeasure', 'rangeStart', e);\n gesturesParams.handlers.selectionHandler.pauseEngineCalls(gesturesParams.keys.measureRangeBrushKey);\n },\n measurerangemove(e) {\n if (!state.measureSelecting) {\n return;\n }\n gesturesFns.doEmit(this.chart, 'rangeMeasure', 'rangeMove', e);\n },\n measurerangeend(e) {\n if (!state.measureSelecting) {\n return;\n }\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.measureRangeBrushKey, true);\n gesturesFns.doEmit(this.chart, 'rangeMeasure', 'rangeEnd', e);\n state.measureSelecting = false;\n },\n measurerangecancel() {\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.measureRangeBrushKey, false);\n state.measureSelecting = false;\n },\n },\n };\n}\n\nexport default {\n callMeasureRangeGesture,\n};\n","import Hammer from 'hammerjs';\nimport onComponentChecker from './on-component-checker';\n\nfunction getAxisOrientation(axis, orientation) {\n let dir;\n if (axis === 'x-axis') {\n dir = orientation === 'horizontal' ? Hammer.DIRECTION_VERTICAL : Hammer.DIRECTION_HORIZONTAL;\n } else {\n dir = orientation === 'horizontal' ? Hammer.DIRECTION_HORIZONTAL : Hammer.DIRECTION_VERTICAL;\n }\n return dir;\n}\n\n/**\n * Handles area range selection events for picasso charts using HammerJS. When activating area range selection enable function is\n * triggered first. arearangestart is triggered on all areas specified by options.direction key. Only after arearangestart\n * is triggered, then the other events might be triggered as well. The different event\n * names must be appended as suffixes for options.event. In this case options.event is called arearange, then our\n * events must be named arearangestart, arearangemove, arearangeend, arearangecancel.\n */\nfunction callAreaRangeGesture(state, gesturesFns, gesturesParams, axis) {\n const activeRangeBrush = gesturesParams.keys.dimRangeBrushKey ? 'majorrange' : 'measurerange';\n\n return {\n // Area range select gesture\n type: 'Pan',\n options: {\n direction: getAxisOrientation(axis, gesturesParams.isHorizontal),\n event: 'arearange',\n enable(manager, e) {\n if (!gesturesParams.rangeSelStatus.isOpenDim) {\n return false;\n }\n\n if (state.minoring) {\n return gesturesFns.isSelectionEnabled();\n }\n const targets =\n gesturesParams.active.gesture === 'arearange' ? [axis, gesturesParams.keys.componentKey] : [axis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n\n state.minoring = gesturesFns.isSelectionEnabled() && !!e && !!hitComp;\n return state.minoring;\n },\n },\n requireFailure: `lasso ${activeRangeBrush}`,\n recognizeWith: gesturesParams.handlers.scrollHandler ? 'drag' : null,\n events: {\n arearangestart(e) {\n const targets =\n gesturesParams.active.gesture === 'arearange' ? [axis, gesturesParams.keys.componentKey] : [axis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n if (!hitComp) {\n return;\n }\n\n state.minoring = true;\n gesturesFns.switchTo('arearange', this.chart, e);\n gesturesFns.doEmit(this.chart, 'rangeMinor', 'areaStart', e);\n gesturesParams.handlers.selectionHandler.pauseEngineCalls(gesturesParams.keys.areaBrushKey);\n },\n arearangemove(e) {\n if (!state.minoring) {\n return;\n }\n // Behaves likes lasso, which adds all data points as soon as we hit the points, we only want to highlight the values within the range\n this.chart.brush(gesturesParams.keys.areaBrushKey).clear();\n gesturesFns.doEmit(this.chart, 'rangeMinor', 'areaMove', e);\n },\n arearangeend(e) {\n if (!state.minoring) {\n return;\n }\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.areaBrushKey, true);\n gesturesFns.doEmit(this.chart, 'rangeMinor', 'areaEnd', e);\n state.minoring = false;\n },\n arearangecancel() {\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.areaBrushKey, false);\n state.minoring = false;\n },\n },\n };\n}\n\nexport default {\n callAreaRangeGesture,\n};\n","import Hammer from 'hammerjs';\nimport onComponentChecker from './on-component-checker';\n\n/**\n * Handles dimension range selection events for picasso charts using HammerJS. When activating dimension range selection enable function is\n * triggered first. majorrangestart is triggered on all areas specified by options.direction key. Only after majorrangestart\n * is triggered, then the other events might be triggered as well. The different event\n * names must be appended as suffixes for options.event. In this case options.event is called majorrange, then our\n * events must be named majorrangestart, majorrangemove, majorrangeend, majorrangecancel.\n */\nfunction callDimensionRangeGesture(state, gesturesFns, gesturesParams, dimAxis) {\n const activeRangeBrush = gesturesParams.keys.measureRangeBrushKey ? 'measurerange' : 'arearange';\n return {\n type: 'Pan',\n options: {\n direction: gesturesParams.isHorizontal ? Hammer.DIRECTION_VERTICAL : Hammer.DIRECTION_HORIZONTAL,\n event: 'majorrange',\n enable(manager, e) {\n if (!gesturesParams.rangeSelStatus.isOpenDim) {\n return false;\n }\n if (state.majoring) {\n return gesturesFns.isSelectionEnabled();\n }\n const targets =\n gesturesParams.active.gesture === 'majorrange' ? [dimAxis, gesturesParams.keys.componentKey] : [dimAxis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n\n state.majoring = gesturesFns.isSelectionEnabled() && !!e && !!hitComp;\n return state.majoring && !!gesturesParams.keys.dimRangeBrushKey;\n },\n },\n requireFailure: `lasso ${activeRangeBrush}`,\n recognizeWith: gesturesParams.handlers.scrollHandler ? 'drag' : null,\n events: {\n majorrangestart(e) {\n const targets =\n gesturesParams.active.gesture === 'majorrange' ? [dimAxis, gesturesParams.keys.componentKey] : [dimAxis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n if (!hitComp) {\n return;\n }\n\n state.majoring = true;\n gesturesFns.switchTo('majorrange', this.chart, e);\n gesturesFns.doEmit(this.chart, 'rangeDim', 'rangeStart', e);\n gesturesParams.handlers.selectionHandler.pauseEngineCalls(gesturesParams.keys.dimRangeBrushKey);\n },\n majorrangemove(e) {\n if (!state.majoring) {\n return;\n }\n gesturesFns.doEmit(this.chart, 'rangeDim', 'rangeMove', e);\n },\n majorrangeend(e) {\n if (!state.majoring) {\n return;\n }\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.dimRangeBrushKey, true);\n gesturesFns.doEmit(this.chart, 'rangeDim', 'rangeEnd', e);\n state.majoring = false;\n },\n majorrangecancel() {\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.dimRangeBrushKey, false);\n state.majoring = false;\n },\n },\n };\n}\n\nexport default {\n callDimensionRangeGesture,\n};\n","import Hammer from 'hammerjs';\n\n/**\n * Handles dragging for picasso charts using HammerJS. When activating dragging the enable function is\n * triggered first. dragstart is triggered on all areas specified by options.direction key. The different event\n * names must be appended as suffixes for options.event. In this case options.event is called drag, then our\n * events must be named dragstart, dragmove, dragend, dragcancel.\n */\nfunction callDragGesture(state, gesturesFns, gesturesParams, hasSelections, isRtl) {\n let dragPoint = {};\n return {\n type: 'Pan',\n options: {\n direction: gesturesParams.isHorizontal ? Hammer.DIRECTION_VERTICAL : Hammer.DIRECTION_HORIZONTAL,\n event: 'drag',\n enable(manager, e) {\n if (state.dragging) {\n return gesturesFns.isNavigationEnabled();\n }\n\n state.dragging =\n gesturesFns.isNavigationEnabled() &&\n !!e &&\n !!this.chart\n .componentsFromPoint({ x: e.center.x, y: e.center.y })\n .filter((c) => c.settings.key === gesturesParams.keys.componentKey)[0];\n return state.dragging;\n },\n },\n requireFailure: hasSelections ? `lasso ${gesturesFns.getBrushConfig()}` : '',\n events: {\n dragstart(e) {\n dragPoint = { x: e.deltaX, y: e.deltaY };\n let change =\n -(gesturesParams.isHorizontal ? e.deltaY : e.deltaX) / gesturesParams.handlers.scrollHandler.getItemSize();\n if (!gesturesParams.isHorizontal && isRtl) {\n change = -change;\n }\n gesturesParams.handlers.scrollHandler.getScrollApi().move(change);\n },\n dragmove(e) {\n if (!state.dragging) {\n return;\n }\n let change =\n -(gesturesParams.isHorizontal ? e.deltaY - dragPoint.y : e.deltaX - dragPoint.x) /\n gesturesParams.handlers.scrollHandler.getItemSize();\n if (!gesturesParams.isHorizontal && isRtl) {\n change = -change;\n }\n gesturesParams.handlers.scrollHandler.getScrollApi().move(change);\n dragPoint = { x: e.deltaX, y: e.deltaY };\n },\n dragend() {\n if (!state.dragging) {\n return;\n }\n state.dragging = false;\n },\n dragcancel() {\n state.dragging = false;\n },\n },\n };\n}\n\nexport default {\n callDragGesture,\n};\n","import onComponentChecker from './on-component-checker';\n\n/**\n * Handles navigational button events for picasso charts using HammerJS. When pressing on a navigational button,\n * the enable function is triggered to check if the navigational button should be enabled or not.\n * For example, in edit mode it should be disabled.\n * @param isEnabledFn - Function that returns a boolean. In this case return false if in edit mode, true otherwise\n * @param legendBrushKey - String defining the legend brush key\n * @returns An object for reacting to tap events according to HammerJS API\n */\nfunction callNavBtnGesture(isEnabledFn, legendBrushKey) {\n return {\n type: 'Tap',\n options: {\n event: 'navBtnTap',\n enable(manager, e) {\n if (!e || !isEnabledFn()) {\n return false;\n }\n\n return onComponentChecker.isOnComponentForNavBtn(e, legendBrushKey, this);\n },\n },\n events: {\n navBtnTap(e) {\n // Invokes paging interaction on legend\n this.chart.componentsFromPoint(e.center).forEach((c) => {\n const btn = e.target;\n const attr = btn ? btn.getAttribute('data-action') : '';\n if (attr) {\n return c.emit(attr);\n }\n return undefined;\n });\n },\n },\n };\n}\n\nexport default {\n callNavBtnGesture,\n};\n","import lassoGesture from './gestures/lasso-gesture';\nimport measureRangeGesture from './gestures/measure-range-gesture';\nimport areaRangeGesture from './gestures/area-range-gesture';\nimport dimensionRangeGesture from './gestures/dimension-range-gesture';\nimport dragGesture from './gestures/drag-gesture';\nimport navBtnGesture from './gestures/navigational-button-gesture';\n\n/**\n * Creates Picasso components for interaction component that are dependent on eatchother\n */\n\nfunction DependentInteractions(handlers, orientation, isRtl, keys, rangeSelStatus) {\n const ret = {};\n\n orientation = orientation || 'vertical';\n\n const lassoBrushKey = keys.lassoBrushKey || 'select';\n const dimRangeBrushKey = keys.dimRangeBrushKey || null;\n const measureRangeBrushKey = keys.measureRangeBrushKey || null;\n const areaBrushKey = keys.areaBrushKey || null;\n const legendBrushKey = keys.legendBrushKey || null;\n\n const hasSelections = !!handlers.selectionHandler && handlers.selectionHandler.isOn();\n\n const state = {\n dragging: false,\n lassoing: false,\n majoring: false,\n minoring: false,\n measureSelecting: false,\n };\n\n const active = {\n gesture: '',\n type: '',\n };\n\n const isHorizontal = orientation === 'horizontal';\n\n const dimAxis = isHorizontal ? 'y-axis' : 'x-axis';\n const measureAxis = isHorizontal ? 'x-axis' : 'y-axis';\n\n function switchTo(gesture, chart, e) {\n if (active.gesture === gesture) {\n return;\n }\n let clearKey = lassoBrushKey;\n const activeChart = chart || active.chart;\n\n switch (active.gesture) {\n case 'majorrange':\n doEmit(activeChart, 'rangeDim', 'rangeClear', e);\n clearKey = dimRangeBrushKey;\n break;\n case 'measurerange':\n doEmit(activeChart, 'rangeMeasure', 'rangeClear', e);\n clearKey = measureRangeBrushKey;\n break;\n case 'arearange':\n doEmit(activeChart, 'rangeMinor', 'areaClear', e);\n clearKey = areaBrushKey;\n break;\n default:\n break;\n }\n\n active.gesture = gesture;\n const newType = gesture === 'range' ? 'range' : 'item';\n\n if (active.type && active.type !== newType) {\n activeChart.brush(clearKey).clear();\n }\n\n active.chart = chart;\n active.type = newType;\n }\n\n // Just added here to allow easy disabling of things while developing\n function doEmit(chart, comp, cont, e) {\n if (chart) {\n const inst = chart.component(comp);\n if (inst) {\n inst.emit(cont, e);\n }\n }\n }\n\n function getBrushConfig() {\n if (!dimRangeBrushKey) {\n return 'measurerange arearange';\n }\n if (!measureRangeBrushKey) {\n return 'majorrange arearange';\n }\n return 'majorrange measurerange';\n }\n\n let gestures = [];\n\n const gesturesFns = {\n isSelectionEnabled: () => handlers.selectionHandler && handlers.selectionHandler.isOn(),\n isNavigationEnabled: () => handlers.scrollHandler && handlers.scrollHandler.isOn(),\n doEmit,\n switchTo,\n getBrushConfig,\n };\n\n const gesturesParams = {\n handlers,\n keys,\n isHorizontal,\n active,\n rangeSelStatus,\n };\n\n if (hasSelections) {\n gestures = [\n {\n type: 'Tap',\n options: {\n event: 'rangeClearTap',\n },\n events: {\n rangeClearTap(e) {\n switchTo('none', this.chart, e);\n\n state.majoring = false;\n state.measureSelecting = false;\n state.minoring = false;\n },\n },\n },\n ];\n\n // Ordering matters here because the tap event, because the above gesture does not return anything\n // and we want don't want to call the navigational button enable function for all tap events\n gestures.unshift(navBtnGesture.callNavBtnGesture(gesturesFns.isNavigationEnabled, legendBrushKey));\n\n gestures.push(lassoGesture.callLassoGesture(state, gesturesFns, gesturesParams));\n\n // Only two of the axis range selection can exist at the same time\n if (!dimRangeBrushKey) {\n gestures.push(measureRangeGesture.callMeasureRangeGesture(state, gesturesFns, gesturesParams, measureAxis));\n // Register component to selections handler so it is cleared properly\n handlers.selectionHandler.addComponent(measureRangeBrushKey, { id: 'rangeMeasure', clear: 'rangeClear' });\n\n gestures.push(areaRangeGesture.callAreaRangeGesture(state, gesturesFns, gesturesParams, dimAxis));\n handlers.selectionHandler.addComponent(areaBrushKey, { id: 'rangeMinor', clear: 'areaClear' });\n } else if (!measureRangeBrushKey) {\n gestures.push(dimensionRangeGesture.callDimensionRangeGesture(state, gesturesFns, gesturesParams, dimAxis));\n handlers.selectionHandler.addComponent(dimRangeBrushKey, { id: 'rangeDim', clear: 'rangeClear' });\n\n gestures.push(areaRangeGesture.callAreaRangeGesture(state, gesturesFns, gesturesParams, measureAxis));\n handlers.selectionHandler.addComponent(areaBrushKey, { id: 'rangeMinor', clear: 'areaClear' });\n } else {\n gestures.push(dimensionRangeGesture.callDimensionRangeGesture(state, gesturesFns, gesturesParams, dimAxis));\n handlers.selectionHandler.addComponent(dimRangeBrushKey, { id: 'rangeDim', clear: 'rangeClear' });\n\n gestures.push(measureRangeGesture.callMeasureRangeGesture(state, gesturesFns, gesturesParams, measureAxis));\n handlers.selectionHandler.addComponent(measureRangeBrushKey, { id: 'rangeMeasure', clear: 'rangeClear' });\n }\n }\n\n if (handlers.scrollHandler) {\n gestures.push(dragGesture.callDragGesture(state, gesturesFns, gesturesParams, hasSelections, isRtl));\n\n // On scroll we need to switch of the major ranging, so that pan will work\n handlers.scrollHandler.getScrollApi().on('update', onScrollUpdate);\n }\n\n function onScrollUpdate() {\n switchTo('none');\n state.majoring = false;\n state.measureSelecting = false;\n state.minoring = false;\n }\n\n ret.gestures = gestures;\n ret.destroy = function () {\n if (handlers.scrollHandler) {\n handlers.scrollHandler.getScrollApi().removeListener('update', onScrollUpdate);\n }\n };\n\n return ret;\n}\n\nexport default {\n create: DependentInteractions,\n};\n","/**\n * Create a new tooltip action context\n *\n * @param {Object} chartInstance Picasso chart instance\n * @returns {Object} The tooltip actions handler instance\n */\nfunction TooltipActions(chartInstance, componentKey, data, context, tooltipKey) {\n let hasOpen = false;\n\n context = context || 'tooltip';\n data = data || ['self'];\n\n const brush = chartInstance.brush(context);\n\n const fn = {};\n\n // Exposed here for test stub purposes\n fn.isOpen = function () {\n return hasOpen;\n };\n\n function closeTooltip() {\n if (hasOpen) {\n const tooltip = chartInstance.component(tooltipKey);\n tooltip.emit('hide');\n }\n hasOpen = false;\n }\n\n function openTooltip(shapes) {\n hasOpen = true;\n const tooltip = chartInstance.component(tooltipKey);\n const e = {};\n const data = { nodes: shapes };\n tooltip.emit('show', e, data);\n }\n\n fn.closeTooltip = closeTooltip;\n\n /**\n * Updates the contents in tooltip. Requires an array of tooltipInfo.labelData and\n * an array of tooltipInfo.measureRows for the tooltip to display content, otherwise\n * it will show nothing. These key value mappings should be sent in from the charts.\n */\n function update() {\n const brushes = brush.brushes();\n\n // Fetches only the shapes that we are hovering over\n const shapes = chartInstance.getAffectedShapes(context, 'and', data, componentKey);\n\n if (brushes.length >= 1) {\n hasOpen = true;\n openTooltip(shapes);\n } else {\n closeTooltip();\n }\n }\n\n function toggleInterceptor(items) {\n // Remove duplicates if we have multiple dimensions to aoivd a toggle\n // ex: set(2006 ) ->2006 is on, followed by set(2006 ) ->2006 is off\n if (data.length > 1) {\n const check = {};\n const ret = [];\n items.forEach((item) => {\n if (!check[item.key]) {\n check[item.key] = {};\n }\n if (!check[item.key][item.value]) {\n check[item.key][item.value] = true;\n ret.push(item);\n }\n });\n return ret;\n }\n return items;\n }\n\n fn.update = update;\n fn.toggleInterceptor = toggleInterceptor;\n return fn;\n}\n\nexport default {\n create(...args) {\n return TooltipActions(...args);\n },\n};\n","export default {\n formatMeasureValue,\n};\n\nfunction formatMeasureValue(field, measureContent) {\n if (field.raw().isCustomFormatted) {\n return field.formatter()(measureContent.value.qText);\n }\n const value = measureContent.value.qNum !== undefined ? measureContent.value.qNum : measureContent.value.qValue;\n return field.formatter()(value);\n}\n","const MAX_VISIBLE_ITEMS = 5;\nconst OTHERS_ELEMNO = -3;\nconst NULL_ELEMNO = -2;\n\n// TODO: The function getAffectedShapes returns duplicate shapes.\n// Remove when this is fixed on picasso\nfunction filterDuplicateShapes(shapes) {\n const uniques = [];\n\n shapes.forEach((shape) => {\n if (uniques.indexOf(shape) === -1 && shape.type !== 'container') {\n uniques.push(shape);\n }\n });\n\n return uniques;\n}\n\nexport const createFilter = (filterShapes) => (shapes) =>\n filterShapes ? filterShapes(shapes) : filterDuplicateShapes(shapes);\n\nexport const createContent =\n (context) =>\n ({ h, data, style }) => {\n const content = extractContent(context, data);\n const renderSettings = {\n h,\n style,\n rtl: context.direction === 'rtl',\n translator: context.translator,\n };\n return context.renderer(renderSettings, content);\n };\n\nfunction extractContent(tooltipInfo, uniqueShapes) {\n const dataset = tooltipInfo.chartInstance.dataset(tooltipInfo.dataPath);\n\n // Create content + header\n const content = [];\n\n const numberInExcess = uniqueShapes.length - MAX_VISIBLE_ITEMS;\n const numItems = Math.min(MAX_VISIBLE_ITEMS, uniqueShapes.length);\n for (let j = 0; j < numItems; j++) {\n const shape = uniqueShapes[j];\n const localContent = {\n rows: [],\n };\n\n if (tooltipInfo.labelData) {\n const labels = [];\n const refPaths = tooltipInfo.labelData;\n let isNullValue = false;\n for (let i = 0; i < refPaths.length; i++) {\n const currentNode = shape.data[refPaths[i]].value;\n if (currentNode.qElemNo === NULL_ELEMNO || currentNode.qElemNumber === NULL_ELEMNO) {\n // The node is null\n isNullValue = true;\n break;\n }\n labels.push(shape.data[refPaths[i]].value.qText);\n }\n\n if (isNullValue) {\n return undefined;\n }\n\n localContent.header = tooltipInfo.headerResolver(labels);\n localContent.rows = tooltipInfo.measureRows\n .map((measureRow) => {\n const rowData = shape.data;\n return tooltipInfo.rowResolver(dataset.field(rowData[measureRow].source.field), rowData[measureRow], rowData);\n })\n .filter((row) => !!row);\n\n const colorByData = getColorByDimData(tooltipInfo, shape);\n if (colorByData) {\n localContent.rows.unshift(colorByData);\n }\n content.push(localContent);\n }\n }\n if (numberInExcess > 0) {\n content.numberInExcess = numberInExcess;\n }\n\n content.rowCount = content[0] ? content.length * content[0].rows.length : 0;\n return content;\n}\n\nfunction getOthersIndex(values) {\n let index = -1;\n for (let i = 0; i < values.length; i++) {\n if (values[i] === OTHERS_ELEMNO) {\n index = i;\n }\n }\n return index;\n}\n\n/**\n * Get the information of how the color by row should look like.\n * The data for color by is fetched directly from the shape and it's key value mapping called\n * colorByDim, which contains the label and the elemNo\n * @param tooltipInfo - an object containing the chart view\n * @param shape - an object representing the shape currently hovered upon\n * @returns {{label: string - legendTitle, value: (*|String) - color by value, template: string - html template}}\n */\nfunction getColorByDimData(tooltipInfo, shape) {\n const colorData = shape.data.color;\n const colorSettings = tooltipInfo.colorService?.getSettings?.();\n\n if (!colorSettings || colorSettings.type === 'color' || !colorData || !colorSettings.fieldType) {\n return undefined;\n }\n\n const ids = [];\n tooltipInfo.data.forEach((mapping) => {\n const elemNoObj = shape.data[mapping];\n if (elemNoObj) {\n ids.push(elemNoObj.value);\n }\n });\n const othersIndex = getOthersIndex(ids);\n\n const { translator } = tooltipInfo;\n const label = colorSettings.label;\n const color = shape.attrs?.fill;\n const value = othersIndex !== -1 ? translator.get('properties.dimensionLimits.others') : colorData.label;\n return { color, label, value };\n}\n","/* eslint no-underscore-dangle: 0 */\nconst TOOLTIP_CONTAINER_ID = 'dist-flow-tooltip';\nconst TOOLTIP_CONTAINER_SELECTOR = `#${TOOLTIP_CONTAINER_ID}`;\n\nfunction appendTooltipContainer() {\n if (!document.querySelector(TOOLTIP_CONTAINER_SELECTOR)) {\n const container = document.createElement('div');\n container.id = TOOLTIP_CONTAINER_ID;\n container.style.overflow = 'hidden';\n container.style.position = 'fixed';\n container.style.pointerEvents = 'none';\n container.style.left = '0px';\n container.style.top = '0px';\n container.style.width = '100%';\n container.style.height = '100%';\n container.style.zIndex = 1020;\n document.body.appendChild(container);\n }\n}\n\nfunction destroyTooltipContainer() {\n const elm = document.querySelector(TOOLTIP_CONTAINER_SELECTOR);\n if (elm && elm.parentElement && elm.childElementCount < 1) {\n elm.parentElement.removeChild(elm);\n }\n}\n\n/**\n * Base tooltip definition\n */\nexport default function tooltip({ key = 'tooltip', rtl, fontFamily, filter, content }) {\n return {\n show: true,\n key,\n type: 'tooltip',\n layout: {\n displayOrder: 3,\n },\n beforeMount() {\n appendTooltipContainer();\n },\n beforeUpdate() {\n appendTooltipContainer();\n },\n destroyed() {\n destroyTooltipContainer();\n },\n settings: {\n appendTo: () => document.querySelector(TOOLTIP_CONTAINER_SELECTOR),\n content,\n filter,\n extract: (context) => context.node,\n direction: rtl ? 'rtl' : 'ltr',\n placement: 'bounds',\n },\n style: {\n arrow: {\n color: '#404040',\n },\n content: {\n display: 'table',\n 'border-spacing': '4px',\n background: 'rgba(64, 64, 64, 0.9)',\n opacity: '1',\n fontSize: '13px',\n fontFamily,\n 'empty-cells': 'show',\n },\n cell: {\n 'max-width': '180px',\n 'word-break': 'break-word',\n 'word-wrap': 'break-word',\n 'overflow-wrap': 'break-word',\n hyphens: 'auto',\n },\n },\n };\n}\n","/** @jsx h */\nimport rtlUtils from '../../extra/rtl-util';\n\nconst { detectTextDirection: getDirection } = rtlUtils;\n\nexport default function render(settings, content) {\n const { h, style, translator, rtl } = settings;\n const result = [];\n const labelTextAlign = rtl ? 'right' : 'left';\n content.forEach((item) => {\n if (item.header) {\n const headerStyle = {\n ...style.cell,\n textAlign: labelTextAlign,\n fontWeight: 'bold',\n direction: getDirection(item.header),\n };\n result.push(\n <tr>\n <td style={headerStyle} colSpan={2}>\n {item.header}\n </td>\n </tr>\n );\n }\n item.rows.forEach((row) => {\n let valueContent = row.value;\n if (row.color) {\n const symbolStyle = {\n display: 'inline-block',\n width: 10,\n height: 10,\n 'background-color': row.color,\n margin: '0 8px',\n };\n const symbol = <div style={symbolStyle} />;\n valueContent = rtl ? [row.value, symbol] : [symbol, row.value];\n }\n const label = rtl ? [':', row.label] : [row.label, ':'];\n const labelStyle = { ...style.cell, textAlign: labelTextAlign, direction: getDirection(row.label) };\n const valueStyle = { ...style.cell, textAlign: rtl ? 'left' : 'right', direction: getDirection(row.value) };\n result.push(\n <tr>\n <td style={labelStyle}>{label}</td>\n <td style={valueStyle}>{valueContent}</td>\n </tr>\n );\n });\n });\n if (content.numberInExcess) {\n const moreText = translator.get('Object.ChartTooltip.NMore', content.numberInExcess);\n const moreStyle = { ...style.cell, textAlign: labelTextAlign, direction: getDirection(moreText) };\n result.push(\n <tr>\n <td style={moreStyle} colSpan={2}>\n {moreText}\n </td>\n </tr>\n );\n }\n return result;\n}\n","import extend from 'extend';\nimport TooltipAction from './tooltip-actions';\nimport formatting from '../formatting';\nimport { createFilter, createContent } from './tooltip-content';\nimport createTooltip from './tooltips-component';\nimport defaultTooltipRenderer from './tooltip-renderer';\n\nconst DEFAULT_OPTIONS = {\n tooltipKey: 'tooltip',\n data: [''],\n contexts: ['tooltip'],\n headerResolver(values) {\n return values.join(', ');\n },\n rowResolver(field, measureContent) {\n return {\n value: formatting.formatMeasureValue(field, measureContent),\n label: field.title(),\n };\n },\n direction: 'ltr',\n renderer: defaultTooltipRenderer,\n};\n\n/**\n * Create a new Tooltips handler\n *\n * @param {Object} model The backend model for the chart\n * @param {Object} chartInstance Picasso chart instance\n * @returns {Object} The selections handler instance\n */\nfunction Tooltips(chartInstance, $element, chartType) {\n if (!chartInstance) {\n throw Error('Tooltips-handler: Missing input');\n }\n\n let tooltipContexts = {};\n let on = false;\n\n // Not need for a function, so turned it into an object\n const fn = {};\n\n /**\n * Setup a tooltips context\n * @param {Object} options Tooltip context options\n * @returns {Object} The selections handler instance\n */\n fn.setUp = function (options) {\n const opts = extend(true, {}, DEFAULT_OPTIONS, options);\n\n if (!opts.componentKey) {\n throw Error('Tooltips-handler.setUp: Missing required input');\n }\n\n if (tooltipContexts[opts.contexts[0]] && on) {\n deRegContext(tooltipContexts[opts.contexts[0]]);\n }\n\n const context = createContext(opts, chartInstance);\n tooltipContexts[opts.contexts[0]] = context;\n\n if (on) {\n registerContext(context);\n }\n\n const component = createTooltip({\n key: opts.tooltipKey,\n rtl: context.direction === 'rtl',\n fontFamily: context.theme.getStyle(chartType, 'tooltip', 'fontFamily'),\n filter: createFilter(context.filterShapes),\n content: createContent(context, opts.dataPath),\n });\n\n const settings = opts.chartBuilder.getSettings();\n settings.components.push(component);\n\n return {\n trigger: {\n on: context.treatAsDesktop ? 'over' : 'tap',\n action: 'set',\n contexts: opts.contexts,\n data: opts.data,\n globalPropagation: 'stop',\n },\n consume: opts.contexts.map((c) => ({ context: c })),\n component,\n };\n };\n\n fn.tearDown = function () {\n if (on) {\n deregister();\n }\n tooltipContexts = [];\n };\n\n function register() {\n Object.keys(tooltipContexts).forEach((key) => {\n registerContext(tooltipContexts[key]);\n });\n }\n\n function registerContext(context) {\n context.listeners.update = function (added, removed) {\n context.action.update(added, removed, context);\n };\n context.listeners.end = function () {\n context.action.closeTooltip();\n };\n\n context.brush.on(context.treatAsDesktop ? 'update' : 'set-values', context.listeners.update);\n context.brush.on('end', context.listeners.end);\n // Intecept the set-values call to avoid a toggle in the second dimension.\n context.brush.intercept('set-values', context.action.toggleInterceptor);\n }\n\n function deregister() {\n Object.keys(tooltipContexts).forEach((key) => {\n deRegContext(tooltipContexts[key]);\n });\n }\n\n function deRegContext(context) {\n context.brush.removeListener(context.treatAsDesktop ? 'update' : 'set-values', context.listeners.update);\n context.brush.removeListener('end', context.listeners.end);\n context.brush.removeInterceptor('set-values', context.action.toggleInterceptor);\n }\n\n function closeTooltip() {\n Object.keys(tooltipContexts).forEach((key) => {\n tooltipContexts[key].action.closeTooltip();\n });\n }\n\n function mouseLeave() {\n closeTooltip();\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (const prop in tooltipContexts) {\n tooltipContexts[prop].brush.clear();\n }\n }\n\n fn.closeTooltip = closeTooltip;\n\n fn.isOn = () => on;\n fn.on = function () {\n if (on) {\n return;\n }\n on = true;\n\n register();\n\n if ($element) {\n $element.on('mouseleave', mouseLeave);\n }\n };\n\n fn.off = function () {\n if (!on) {\n return;\n }\n on = false;\n deregister();\n\n if ($element) {\n $element.off('mouseleave', mouseLeave);\n }\n closeTooltip();\n };\n\n return fn;\n}\n\nexport default {\n create(chartInstance, $element, chartType) {\n return Tooltips(chartInstance, $element, chartType);\n },\n};\n\nfunction createContext(options, chartInstance) {\n return {\n brush: chartInstance.brush(options.contexts[0]),\n action: TooltipAction.create(\n chartInstance,\n options.componentKey,\n options.data,\n options.contexts[0],\n options.tooltipKey\n ),\n listeners: {},\n chartInstance,\n dataPath: options.dataPath,\n renderer: options.renderer,\n data: options.data,\n headerResolver: options.headerResolver,\n rowResolver: options.rowResolver,\n colorService: options.colorService,\n attrDimPath: options.attrDimPath,\n measureRows: options.measureRows,\n labelData: options.labelData,\n filterShapes: options.filterShapes,\n\n direction: options.environment.options.direction,\n theme: options.environment.theme,\n translator: options.environment.translator,\n treatAsDesktop: options.environment.deviceType !== 'touch',\n };\n}\n","/**\n * String validation util.\n *\n */\n\nconst CHARACTER_AVERAGE_WIDTH = 166 / 26;\nconst CHARACTER_MAX_WIDTH = 12;\nconst M_WIDTH = 11;\nconst CJK_AVERAGE_WIDTH = 12;\nconst CJK_OVER_LATIN_WIDTH_RATIO = CJK_AVERAGE_WIDTH / M_WIDTH;\n\nfunction startsWith(string, prefix) {\n return string.indexOf(prefix) === 0;\n}\n\nfunction endsWith(string, suffix) {\n return string.indexOf(suffix, string.length - suffix.length) !== -1;\n}\n\nfunction contains(haystack, needle) {\n if (!haystack) {\n throw new Error('Haystack is undefined.');\n }\n\n if (!needle) {\n throw new Error('Needle is undefined.');\n }\n\n return haystack.indexOf(needle) !== -1;\n}\n\nfunction stringWidthOverMWidth(len) {\n const n = 3; // For short strings with wide letters or numbers\n return (Math.min(len, n) * CHARACTER_MAX_WIDTH + Math.max(len - n, 0) * CHARACTER_AVERAGE_WIDTH) / M_WIDTH;\n}\n\nfunction getCharacterRatios(s) {\n if (!s) {\n return {\n latin: 0,\n cjk: 0,\n };\n }\n let CJK = s.match(/[\\u4E00-\\u9FFF]/g);\n let hiragana = s.match(/[\\u3040-\\u309F]/g);\n let katakana = s.match(/[\\u30A0-\\u30FF]/g);\n CJK = CJK ? CJK.length : 0;\n hiragana = hiragana ? hiragana.length : 0;\n katakana = katakana ? katakana.length : 0;\n const t = CJK + hiragana + katakana;\n return {\n latin: s.length - t,\n cjk: t,\n };\n}\n\nfunction getTotalCharacterRatios(qMatrix, columnIndex) {\n const total = { latin: 0, cjk: 0 };\n if (columnIndex === undefined) {\n qMatrix.forEach((row) => {\n const res = getCharacterRatios(row.qText);\n total.latin += res.latin;\n total.cjk += res.cjk;\n });\n } else {\n qMatrix.forEach((row) => {\n const res = getCharacterRatios(row[columnIndex].qText);\n total.latin += res.latin;\n total.cjk += res.cjk;\n });\n }\n const t = Math.max(1, total.latin + total.cjk);\n total.latinRatio = total.latin / t;\n total.cjkRatio = total.cjk / t;\n return total;\n}\n\nfunction getAdjustedMaxGlyphCount(maxGlyphCount, qMatrix, columnIndex) {\n const totalCharacterRatios = getTotalCharacterRatios(qMatrix, columnIndex);\n const latinGlyphCount = totalCharacterRatios.latinRatio * maxGlyphCount;\n const cjkGlyphCount = totalCharacterRatios.cjkRatio * maxGlyphCount;\n const adjustedMaxGlyphCount = Math.ceil(\n stringWidthOverMWidth(latinGlyphCount) + cjkGlyphCount * CJK_OVER_LATIN_WIDTH_RATIO\n );\n return adjustedMaxGlyphCount;\n}\n\n// TODO: Need to improve to make sure longer strings should have bigger width than shorter strings\nfunction estimateLatinLabelWidth(numLatins, maxLatinWidth, averageLatinWidth) {\n const latinWidth = numLatins <= 24 ? maxLatinWidth : averageLatinWidth;\n return numLatins * latinWidth;\n}\n\nfunction estimateLabelWidth(numCjks, numLatins, cjkWidth, maxLatinWidth, averageLatinWidth) {\n return numCjks * cjkWidth + estimateLatinLabelWidth(numLatins, maxLatinWidth, averageLatinWidth);\n}\n\nexport default {\n endsWith,\n startsWith,\n contains,\n stringWidthOverMWidth,\n getCharacterRatios,\n getTotalCharacterRatios,\n getAdjustedMaxGlyphCount,\n estimateLatinLabelWidth,\n estimateLabelWidth,\n};\n","import waterfallUtils from './waterfallchart-utils';\n// import NumberFormatter from '../../../assets/objects/utils/number-formatter';\n\n/**\n * Implementation details\n */\n\n// This will generate a hypercube from n measures\n\nfunction getGeneratedDimensionPath(dimIndex) {\n return `qDimensionInfo/${dimIndex}`;\n}\n\nfunction getGeneratedMeasurePath(mesIndex) {\n return `qMeasureInfo/${mesIndex}`;\n}\n\nfunction getMeasureFormat(layout) {\n return layout.qHyperCube.qMeasureInfo[0].qNumFormat;\n}\n\nfunction generateHyperCube(layout, theme) {\n const qMeasureInfo = layout.qHyperCube.qMeasureInfo;\n const qMatrix = layout.qHyperCube.qDataPages[0].qMatrix;\n const numMeasures = qMeasureInfo.length;\n if (!numMeasures) {\n return;\n }\n\n const positveColor = waterfallUtils.getColorForPositiveValue(layout, theme);\n const negativeColor = waterfallUtils.getColorForNegativeValue(layout, theme);\n\n const subtotalColor = waterfallUtils.getColorForSubtotal(layout, theme);\n // const _numberFormatter = new NumberFormatter(); // TODO: number formatter from picasso-plugin-q ??\n const _numberFormatter = { prepare: () => {}, formatValue: (x) => `${x}` };\n _numberFormatter.prepare('#.#A'); // Used by client generated subtotals when format by Measure expression selected.\n\n const generatedMatrix = [];\n let start = 0;\n let end = 0;\n let startMax = -Number.MAX_VALUE;\n let startMin = Number.MAX_VALUE;\n let endMax = -Number.MAX_VALUE;\n let endMin = Number.MAX_VALUE;\n let numItems = 0;\n let color;\n let qNum;\n for (let i = 0; i < numMeasures; i++) {\n qNum = Number.isNaN(+qMatrix[0][i].qNum) ? 0 : qMatrix[0][i].qNum;\n if (qMeasureInfo[i].valueType !== waterfallUtils.valueTypes.SUBTOTAL) {\n start = end;\n end += qNum * (qMeasureInfo[i].valueType === waterfallUtils.valueTypes.INVERSE ? -1 : 1);\n color = start < end ? positveColor : negativeColor;\n generatedMatrix.push([\n { qText: qMeasureInfo[i].qFallbackTitle, qElemNumber: numItems++ },\n { qText: color },\n { qNum: start },\n { qNum: end },\n { qNum: end - start, qText: qMatrix[0][i].qText },\n ]);\n if (qMeasureInfo[i].subtotal && qMeasureInfo[i].subtotal.enable) {\n generatedMatrix.push([\n { qText: qMeasureInfo[i].subtotal.label || '', qElemNumber: numItems++ },\n { qText: subtotalColor },\n { qNum: 0 },\n { qNum: end },\n { qNum: end, qText: _numberFormatter.formatValue(end) },\n ]);\n }\n } else {\n start = 0;\n end = qNum;\n generatedMatrix.push([\n { qText: qMeasureInfo[i].qFallbackTitle, qElemNumber: numItems++ },\n { qText: subtotalColor },\n { qNum: start },\n { qNum: end },\n { qNum: end - start, qText: qMatrix[0][i].qText },\n ]);\n }\n startMax = Math.max(startMax, start);\n startMin = Math.min(startMin, start);\n endMax = Math.max(endMax, end);\n endMin = Math.min(endMin, end);\n }\n const numFormat = getMeasureFormat(layout);\n const isAutoFormat = layout.qHyperCube.qMeasureInfo[0].qIsAutoFormat;\n const isCustomFormatted = layout.qDef.isCustomFormatted;\n const generated = {\n qHyperCube: {\n qMode: 'S',\n qDataPages: [\n {\n qArea: {\n qTop: 0,\n qLeft: 0,\n qWidth: 5,\n qHeight: generatedMatrix.length,\n },\n qMatrix: generatedMatrix,\n },\n ],\n qDimensionInfo: [\n {\n qStateCounts: {},\n },\n {\n qStateCounts: {},\n },\n ],\n qMeasureInfo: [\n {\n qMin: startMin,\n qMax: startMax,\n qNumFormat: numFormat,\n qIsAutoFormat: isAutoFormat,\n isCustomFormatted,\n },\n {\n qMin: endMin,\n qMax: endMax,\n qNumFormat: numFormat,\n qIsAutoFormat: isAutoFormat,\n isCustomFormatted,\n },\n {\n qMin: endMin,\n qMax: endMax,\n qNumFormat: numFormat,\n qIsAutoFormat: isAutoFormat,\n isCustomFormatted,\n },\n ],\n },\n };\n layout.generatedMatrix = generatedMatrix;\n layout.generated = generated;\n}\n\nfunction generateSlicedHyperCube(layout, top, height) {\n layout.generated.qHyperCube.qDataPages = [\n {\n qArea: {\n qTop: top,\n qLeft: 0,\n qWidth: 5,\n qHeight: height,\n },\n qMatrix: layout.generatedMatrix.slice(top, top + height),\n },\n ];\n}\n\nexport default {\n generateHyperCube,\n generateSlicedHyperCube,\n getGeneratedDimensionPath,\n getGeneratedMeasurePath,\n};\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import { scaleLinear } from 'd3-scale';\n\nconst SENSE_PICASSO_SPACING_COEFFICIENT = 100;\n\nconst tickGenerator = {\n getMinorTicks({ majorTicks, minorTickCount }) {\n const minor = [];\n for (let i = 0; i < majorTicks.length - 1; i++) {\n const start = majorTicks[i];\n const end = majorTicks[i + 1];\n const step = (end - start) / (minorTickCount + 1);\n\n for (let c = 1; c <= minorTickCount; c++) {\n minor.push(start + step * c);\n }\n }\n\n return minor;\n },\n\n // Adjust ticks: a) add minor ticks at two ends, if neccessary,\n // b) add set min and/or set max\n // For simplicity, only consider minorTickCount == 1\n adjustTicks({ ticks, majorTicks, minorTicks, autoMinMax, minMax, min, max }) {\n // a) add minor ticks at two ends, if neccessary,\n const d = minorTicks[0] - majorTicks[0];\n const deltaMin = majorTicks[0] - min;\n if (deltaMin > d) ticks.unshift({ value: majorTicks[0] - d, isMinor: true });\n const deltaMax = max - majorTicks[majorTicks.length - 1];\n if (deltaMax > d) ticks.push({ value: majorTicks[majorTicks.length - 1] + d, isMinor: true });\n if (autoMinMax) return ticks;\n\n // b) add set min and/or set max\n if ((minMax === 'min' || minMax === 'minMax') && deltaMin > 0) {\n ticks.unshift({ value: min, isMinor: false });\n }\n if ((minMax === 'max' || minMax === 'minMax') && deltaMax > 0) {\n ticks.push({ value: max, isMinor: false });\n }\n return ticks;\n },\n\n getTicks({ layout, height }) {\n const { autoMinMax, minMax, spacing } = layout.measureAxis;\n let min = Math.min(...layout.generated.qHyperCube.qMeasureInfo.map((measure) => measure.qMin));\n let max = Math.max(...layout.generated.qHyperCube.qMeasureInfo.map((measure) => measure.qMax));\n if (!autoMinMax) {\n switch (minMax) {\n case 'min':\n min = layout.measureAxis.min;\n break;\n case 'max':\n max = layout.measureAxis.max;\n break;\n case 'minMax':\n ({ min, max } = layout.measureAxis);\n break;\n default:\n break;\n }\n }\n const distance = SENSE_PICASSO_SPACING_COEFFICIENT * spacing;\n const count = Math.max(1, Math.round(height / distance));\n\n const scale = scaleLinear().domain([min, max]);\n const majorTicks = scale.ticks(count);\n const minorTicks = tickGenerator.getMinorTicks({ majorTicks, minorTickCount: 1 });\n\n // Generate an array of tick objects following the format defined by picasso\n const ticks = [\n ...majorTicks.map((value) => ({ value, isMinor: false })),\n ...minorTicks.map((value) => ({ value, isMinor: true })),\n ].sort((a, b) => a.value - b.value);\n return tickGenerator.adjustTicks({ ticks, majorTicks, minorTicks, autoMinMax, minMax, min, max });\n },\n};\n\nexport default tickGenerator;\n","import ChartView from '@qlik/common/picasso/chart-view';\nimport ChartBuilder from '@qlik/common/picasso/chart-builder/chart-builder';\nimport Color from '@qlik/common/extra/color';\nimport ScrollHandler from '@qlik/common/picasso/scroll/scroll-handler';\nimport DependentInteractions from '@qlik/common/picasso/selections/dependent-interactions';\nimport TooltipHandler from '@qlik/common/picasso/tooltip/tooltips-handler';\nimport formatting from '@qlik/common/picasso/formatting';\nimport stringUtil from '@qlik/common/extra/string-util';\nimport { getAxisLabelStyle, getLegendLabelStyle, getValueLabelStyle } from '@qlik/common/extra/chart-style-component';\nimport { themeService as createThemeService } from 'qlik-chart-modules';\nimport CubeGenerator from './waterfallchart-cube-generator-by-measures';\nimport waterfallUtils from './waterfallchart-utils';\nimport tickGenerator from './waterfallchart-tick-generator';\n\nconst chartID = waterfallUtils.chartID;\nconst MAX_GLYPH_COUNT = 20;\nconst BAR_WIDTH_RATIO = 0.7;\n\n//\n// Implementation details\n//\n\nfunction init({ picasso, environment, $element, flags }) {\n const backendApi = null;\n const selectionsApi = null;\n this._super(picasso, $element, environment, backendApi, selectionsApi);\n this._tooltipHandler = TooltipHandler.create(this.chartInstance, $element, chartID);\n this._scrollHandler = new ScrollHandler(\n this.chartInstance,\n $element,\n this.getSlicedData.bind(this),\n this.updateChart.bind(this)\n );\n this._scrollHandler.setOptions({ direction: 'horizontal' });\n this.setDataPaths(['generated/qHyperCube']);\n this.flags = flags;\n}\n\nfunction getSlicedData(top, height) {\n CubeGenerator.generateSlicedHyperCube(this.layout, top, height);\n return Promise.resolve(this.layout);\n}\n\nfunction setSnapshotData(snapshotLayout) {\n this._super(snapshotLayout);\n snapshotLayout.generated = this.layout.generated; // eslint-disable-line no-param-reassign\n snapshotLayout.generatedMatrix = this.layout.generatedMatrix; // eslint-disable-line no-param-reassign\n}\nfunction getViewState() {\n return {\n scroll: this._scrollHandler.getScrollState(),\n };\n}\n\nfunction updateScrollHandlerState(b) {\n this._scrollHandler.setDisabled(!!b);\n}\n\nfunction updateConstraints(constraints) {\n const navigation = !constraints.active;\n const tooltip = !constraints.passive;\n\n this._scrollHandler[navigation ? 'on' : 'off']();\n this._tooltipHandler[tooltip ? 'on' : 'off']();\n}\nfunction off() {\n this._scrollHandler.off();\n this._tooltipHandler.off();\n}\n\nfunction getMaxGlyphCountForDimAxis(layout) {\n let glyphCount = -Number.MAX_VALUE;\n layout.qHyperCube.qMeasureInfo.forEach((measureInfo) => {\n glyphCount = Math.max(glyphCount, measureInfo.qFallbackTitle.length);\n if (\n measureInfo.valueType !== waterfallUtils.valueTypes.SUBTOTAL &&\n measureInfo.subtotal &&\n measureInfo.subtotal.enable\n ) {\n glyphCount = Math.max(glyphCount, measureInfo.subtotal.label ? measureInfo.subtotal.label.length : 0);\n }\n });\n return Math.min(MAX_GLYPH_COUNT, Math.max(0, glyphCount));\n}\n\nfunction getDimAxisSettings(layout) {\n return {\n settings: {\n labels: {\n mode: layout.dimensionAxis.label,\n maxGlyphCount: Math.ceil(stringUtil.stringWidthOverMWidth(getMaxGlyphCountForDimAxis(layout))), // To mitigate SUI-1445\n maxLengthPx: this.picassoElement.getBoundingClientRect().height / 4, // Picasso version 0.5.3 does not support function here\n },\n },\n };\n}\n\nfunction getBarSettings(tooltipSettings, layout) {\n const brushTrigger = tooltipSettings ? [tooltipSettings.box.trigger] : [];\n const brushConsume = tooltipSettings ? tooltipSettings.box.consume : [];\n return {\n data: {\n extract: {\n key: 'qHyperCube',\n field: CubeGenerator.getGeneratedDimensionPath(0),\n props: {\n start: { field: CubeGenerator.getGeneratedMeasurePath(0) },\n end: { field: CubeGenerator.getGeneratedMeasurePath(1) },\n measure: {\n field: CubeGenerator.getGeneratedMeasurePath(2),\n reduce: 'first',\n value(v) {\n return v;\n },\n },\n boxColor: {\n field: CubeGenerator.getGeneratedDimensionPath(1),\n value(v) {\n return v.qText;\n },\n },\n isCustomFormatted: !!layout.qDef.isCustomFormatted,\n tooltip: {\n value(v) {\n return v;\n },\n },\n },\n },\n },\n settings: {\n major: { scale: 'dimension' },\n minor: { scale: 'measure' },\n orientation: '', // There is a bug in Picasso where it uses height instead of width when the orientation is vertical.\n box: {\n width: BAR_WIDTH_RATIO,\n maxWidthPx: 4000,\n fill(d) {\n return d.datum.boxColor.value;\n },\n strokeWidth: 0,\n },\n },\n brush: {\n trigger: brushTrigger,\n consume: brushConsume,\n },\n };\n}\n\nfunction getLabel(context) {\n const measure = context.data.measure;\n const field = context.dataset(measure.source.key).field(measure.source.field);\n return formatting.formatMeasureValue(field, measure);\n}\n\nfunction getBarLabelSettings(themeService, layout, flags) {\n const styles = themeService.getStyles();\n const valueLabelSettings = getValueLabelStyle(chartID, styles, layout, flags);\n const outsideValueColor = valueLabelSettings?.fill || styles.label.value.color;\n const darkColor = styles.label.value.darkColor;\n const lightColor = styles.label.value.lightColor;\n const getContrastColor = () => (ctx) => Color.isDark(ctx.node.attrs.fill) ? lightColor : darkColor;\n return {\n settings: {\n sources: [\n {\n strategy: {\n settings: {\n ...valueLabelSettings,\n direction(context) {\n return context.data && context.data.end.value > context.data.start.value ? 'up' : 'down';\n },\n labels: [\n {\n placements: [\n { fill: outsideValueColor },\n {\n fill:\n flags.isEnabled('CLIENT_IM_3364') && valueLabelSettings?.fill\n ? outsideValueColor\n : getContrastColor(),\n },\n {\n position: 'opposite',\n fill: outsideValueColor,\n justify: 0,\n },\n ],\n label: getLabel,\n },\n ],\n },\n },\n },\n ],\n },\n };\n}\n\nfunction getPicassoScrollSettings(layout, viewSize) {\n return {\n viewSize,\n max: layout.generatedMatrix.length,\n };\n}\n\nfunction getBridgeSettings(isRtl, theme) {\n const bridgeColor = theme.getStyle(chartID, 'shape.bridge', 'stroke');\n return {\n data: {\n extract: {\n key: 'qHyperCube',\n field: CubeGenerator.getGeneratedDimensionPath(0),\n props: {\n x: {},\n y: {\n field: CubeGenerator.getGeneratedMeasurePath(1),\n },\n },\n },\n },\n settings: {\n x: {\n scale: 'dimension',\n ref: 'x',\n fn(d) {\n return isRtl ? d.scale(d.datum.value) : d.scale(d.datum.value) + d.scale.bandwidth(); // place the point between two bars\n },\n },\n y: { scale: 'measure' },\n sizeLimits: {\n maxPx: 20000,\n maxRelExtent: 10000,\n minRelDiscrete: 0,\n maxRelDiscrete: 1,\n },\n shape: 'line',\n stroke: bridgeColor,\n size: 1 - BAR_WIDTH_RATIO,\n strokeDasharray: '4 4',\n fill: 'none',\n strokeWidth(d, i) {\n return i === d.data.items.length - 1 ? 0 : 2;\n },\n },\n };\n}\n\nfunction getLegendSettings(environment, layout, flags) {\n const { theme, translator } = environment;\n const positveColor = waterfallUtils.getColorForPositiveValue(layout, theme);\n const negativeColor = waterfallUtils.getColorForNegativeValue(layout, theme);\n const subtotalColor = waterfallUtils.getColorForSubtotal(layout, theme);\n const positiveText = translator.get('waterfall.legend.positiveValue.label');\n const negativeText = translator.get('waterfall.legend.negativeValue.label');\n const subtotalText = translator.get('waterfall.legend.subtotal.label');\n const labelStyleSettings = getLegendLabelStyle(chartID, theme, layout, flags);\n\n return {\n displayOrder: 200,\n minimumLayoutMode: 'MEDIUM',\n prioOrder: 0,\n scale: {\n type: 'categorical-color',\n data: [positiveText, negativeText, subtotalText],\n range: [positveColor, negativeColor, subtotalColor],\n },\n style: {\n item: {\n label: {\n fontSize: labelStyleSettings.fontSize,\n fontFamily: labelStyleSettings.fontFamily,\n fill: labelStyleSettings.color,\n },\n },\n title: {\n show: false,\n },\n },\n };\n}\n\nfunction createChartSettings(layout) {\n // Create components\n const isRtl = this.isRtl();\n const { theme } = this.environment;\n const isSnapshot = !!layout.snapshotData;\n const chartBuilder = ChartBuilder.create({\n chartID,\n theme,\n isRtl,\n });\n const width = this.picassoElement.clientWidth;\n const height = this.picassoElement.clientHeight;\n const tooltipSettings = {};\n tooltipSettings.box = this._tooltipHandler.setUp({\n chartBuilder,\n environment: this.environment,\n data: [''],\n contexts: ['boxTip'],\n componentKey: 'box-marker',\n headerResolver() {\n return undefined; // Waterfall does not have dimension\n },\n rowResolver(field, measureContent, shapeData) {\n const color = shapeData.boxColor.value;\n const value = formatting.formatMeasureValue(field, measureContent);\n return {\n value,\n label: shapeData.tooltip.value.qText,\n color,\n };\n },\n labelData: ['tooltip'], // Should be a mapped path under extract, mandatory to display tooltip\n measureRows: ['measure'], // Should be a mapped path under extract, mandatory to display tooltip\n });\n\n const handlers = {\n scrollHandler: this._scrollHandler,\n selectionHandler: null,\n };\n\n const keys = {\n componentKey: 'box-marker',\n };\n\n if (this._dependentActions) {\n this._dependentActions.destroy();\n }\n this._dependentActions = DependentInteractions.create(handlers, 'vertical', isRtl, keys);\n\n chartBuilder.addPreset('dimension-measure-chart', {\n // common\n isRtl,\n orientation: 'vertical',\n theme,\n\n // grid lines\n gridlines: layout.gridlines,\n\n // dimension axis and title\n includeDimensionAxis: true,\n dimensionAxisProperties: layout.dimensionAxis,\n dimensionAxisSettings: getDimAxisSettings.call(this, layout),\n dimensionSource: CubeGenerator.getGeneratedDimensionPath(0),\n dimensionScaleSettings: {\n component: {\n maxPxStep() {\n return height / 4;\n },\n },\n },\n\n // measure axis and title\n includeMeasureAxis: true,\n measureAxisProperties: layout.measureAxis,\n // measureTitleText: \"\",\n measureSource: [CubeGenerator.getGeneratedMeasurePath(0), CubeGenerator.getGeneratedMeasurePath(1)],\n measureScaleSettings: {\n component: {\n expand: 0,\n include: [0], // Make sure that the measure axis starts from 0.\n ticks: {\n values: () => tickGenerator.getTicks({ layout, height }),\n },\n },\n },\n\n // scroll\n hasNavigation: !isSnapshot,\n isNavigationEnabledFn: () => this._scrollHandler.isOn(),\n scrollSettings: getPicassoScrollSettings(layout, this._scrollHandler.getScrollViewSizeInItem()),\n\n // ref-lines\n refLines: layout.refLine && layout.refLine.refLines,\n\n brushActions: this._dependentActions.gestures,\n axisLabelStyle: getAxisLabelStyle(chartID, theme, layout, this.flags),\n });\n\n chartBuilder.addComponent('box-marker', getBarSettings(tooltipSettings, layout));\n chartBuilder.addComponent('point-marker', getBridgeSettings(isRtl, theme));\n\n if (!layout.legend || layout.legend.show) {\n chartBuilder.addComponent('categorical-legend', getLegendSettings(this.environment, layout, this.flags), {\n dock: layout.legend ? layout.legend.dock : 'auto',\n isRtl,\n chartWidth: width,\n chartHeight: height,\n });\n }\n\n const themeService = createThemeService({\n theme,\n config: {\n id: 'waterfallChart',\n },\n });\n if (layout.dataPoint.showLabels) {\n chartBuilder.addComponent('labels', getBarLabelSettings(themeService, layout, this.flags));\n }\n\n // Add snapshot settings\n const settings = chartBuilder.getSettings();\n this.addSnapshotChartSettings(settings, layout);\n\n return settings;\n}\n\nfunction updateData(layout) {\n const { theme, options } = this.environment;\n const self = this;\n\n return this._super(layout).then(() => {\n if (self._destroyed) {\n return Promise.reject();\n }\n\n let top;\n let height;\n\n const isSnapshot = !!layout.snapshotData;\n if (isSnapshot) {\n const area = self.layout.generated.qHyperCube.qDataPages[0].qArea; // To fix SUI-4307\n top = area.qTop;\n height = area.qHeight;\n CubeGenerator.generateHyperCube(self.layout, theme);\n } else {\n CubeGenerator.generateHyperCube(self.layout, theme);\n updateScrollHandlerState.call(self, true); // No need to run it in snapshot mode\n const { viewState } = options;\n if (viewState) {\n self._scrollHandler.updateViewState(self.layout.generatedMatrix.length);\n self._scrollHandler.setScrollState(viewState.scroll);\n top = viewState.scroll;\n } else {\n self._scrollHandler.resetScroll();\n top = 0;\n }\n height = self._scrollHandler.getScrollViewSizeInItem();\n }\n CubeGenerator.generateSlicedHyperCube(self.layout, top, height);\n return undefined;\n });\n}\n\nfunction updateOnScrollViewChanged(chart) {\n chart._scrollHandler.onResize();\n}\n\nfunction resize() {\n updateOnScrollViewChanged(this);\n this._super();\n}\n\nfunction paint() {\n const isSnapshot = !!this.layout.snapshotData;\n if (!isSnapshot && !this.environment.options.viewState) {\n updateScrollHandlerState.call(this, false);\n }\n this._tooltipHandler.closeTooltip();\n\n const pageNumberOfRows = this.layout.generated.qHyperCube.qDataPages[0].qMatrix.length;\n const datasetNumberOfRows = this.layout.generatedMatrix.length;\n if (!isSnapshot && this._scrollHandler.isDataSizeChanged(pageNumberOfRows, datasetNumberOfRows)) {\n const _super = this._super;\n const self = this;\n return this._scrollHandler.getViewData().finally(() => _super.call(self));\n }\n return this._super();\n}\n\nconst waterfallChartView = ChartView.extend('WaterfallChart', {\n namespace: '.waterfallchart',\n chartID,\n init,\n updateConstraints,\n off,\n createChartSettings,\n updateData,\n resize,\n paint,\n getSlicedData,\n setSnapshotData,\n getViewState,\n});\n\nexport default waterfallChartView;\n","import {\n useConstraints,\n useEffect,\n useElement,\n useMemo,\n usePromise,\n useState,\n useStaleLayout,\n} from '@nebula.js/stardust';\nimport $ from 'jquery';\nimport locale from '@qlik/common/locale';\nimport picassoSetup from '@qlik/common/picasso/picasso-setup';\nimport useResize from '@qlik/common/nebula/resize';\nimport useEnvironment from '@qlik/common/nebula/use-environment';\nimport setupSnapshot from '@qlik/common/nebula/snapshot';\n\nimport qae from './waterfallchart-qae';\nimport ext from './ext';\nimport ChartView from './waterfallchart-view';\n\nfunction usePromiseNoError(...args) {\n const [, error] = usePromise(...args);\n if (error) {\n throw error;\n }\n}\n\nexport default function supernova(env) {\n locale(env.translator);\n\n return {\n qae: qae(env),\n ext: ext(env),\n component() {\n const element = useElement();\n const environment = useEnvironment();\n const renderer = environment.options.renderer;\n const picasso = useMemo(() => picassoSetup(renderer), [renderer]);\n const layout = useStaleLayout();\n const constraints = useConstraints();\n\n const [instance, setInstance] = useState();\n\n useEffect(() => {\n const $element = $(element);\n const view = new ChartView({ picasso, environment, $element, flags: env.flags });\n\n setInstance(view);\n\n return () => {\n view.destroy();\n };\n }, []);\n\n usePromiseNoError(async () => {\n if (!instance) {\n return;\n }\n instance.updateEnvironment(environment);\n instance.updateConstraints(constraints);\n\n await instance.updateData(layout);\n await instance.paint();\n }, [layout, instance, environment]);\n\n useResize(instance);\n setupSnapshot(instance);\n },\n };\n}\n","import all from './all.json';\n\nexport default function autoRegister(translator) {\n if (translator && translator.get && translator.add) {\n const t = 'Object.Disclaimer.LimitedData';\n const g = translator.get(t);\n // if translated string is different from its id\n // assume translations already exists for current locale\n if (g !== t) {\n return;\n }\n\n Object.keys(all).forEach((key) => {\n translator.add(all[key]);\n });\n }\n}\n","import { useApp, useAppLayout, useTranslator, useOptions, useMemo, useTheme, useDeviceType } from '@nebula.js/stardust';\n\nexport default function useEnvironment() {\n const app = useApp();\n const appLayout = useAppLayout();\n const deviceType = useDeviceType();\n const options = useOptions();\n const theme = useTheme();\n const translator = useTranslator();\n\n const environment = useMemo(\n () => ({\n app,\n appLayout,\n deviceType,\n options,\n theme,\n translator,\n }),\n [app, appLayout, options.direction, options.freeResize, translator.language(), theme.name(), deviceType]\n );\n\n return environment;\n}\n","import picassojs from 'picasso.js';\nimport PicassoQ from 'picasso-plugin-q';\nimport PicassoHammer from 'picasso-plugin-hammer';\nimport Hammer from 'hammerjs';\nimport eventArea from './plugins/event-area';\nimport disclaimer from './disclaimer/disclaimer-component.jsx';\n\nexport default function setup(renderer) {\n const picasso = picassojs();\n // default to use canvas renderer\n picasso.renderer.prio([renderer || 'canvas']);\n\n // TODO: investigate picasso warnings\n // if (DebugFlags.DEVELOPER) {\n // picasso.logger.level(picassojs.logger.LOG_LEVEL.WARN);\n // }\n\n picasso.use(PicassoQ);\n picasso.use(PicassoHammer(Hammer));\n picasso.use(eventArea);\n picasso.component('disclaimer', disclaimer);\n return picasso;\n}\n","import { useConstraints, useOptions, usePromise, useRect } from '@nebula.js/stardust';\n\nexport default function useResize(chartInstance) {\n const rect = useRect();\n const options = useOptions();\n const constraints = useConstraints();\n\n const [, error] = usePromise(async () => {\n if (!chartInstance) {\n return;\n }\n chartInstance.updateConstraints(constraints);\n chartInstance.options = options;\n await chartInstance.resize();\n }, [rect.width, rect.height]);\n\n if (error) {\n throw error;\n }\n}\n"],"names":["init","Picasso","component","mounted","element","classList","add","style","pointerEvents","zIndex","render","disclaimer","renderer","disableTriggers","preferredSize","h","settings","label","rtl","layout","dock","this","dir","rect","display","justifyContent","alignItems","color","fontStyle","fontSize","width","height","transform","transformOrigin","textAlign","getStyle","modifiedLabel","spanStyle","overflow","whiteSpace","textOverflow","ref","alignToRef","title","properties","version","qHyperCubeDef","qDimensions","qMeasures","qMode","qInitialDataFetch","qWidth","qHeight","qSuppressMissing","auto","positiveValue","paletteColor","index","negativeValue","subtotal","dataPoint","showLabels","dimensionAxis","show","gridlines","spacing","legend","measureAxis","autoMinMax","max","min","minMax","qDef","qNumFormat","numFormatFromTemplate","isCustomFormatted","refLine","refLines","showTitles","subtitle","footnote","data","env","translator","path","dimensions","measures","description","get","window","exports","e","r","n","t","o","i","l","call","m","c","d","Object","defineProperty","enumerable","Symbol","toStringTag","value","__esModule","create","bind","default","prototype","hasOwnProperty","p","s","toString","a","getOwnPropertyDescriptor","Array","isArray","u","constructor","name","configurable","newValue","writable","arguments","f","length","split","Number","isNaN","updated","previous","concat","qLibraryId","qInfo","qId","dimensionList","qData","info","qTags","indexOf","trim","charAt","substring","qName","qDerivedFieldData","qDerivedFieldLists","qFieldDefs","fieldList","fullAccumulation","fullRange","crossAllDimensions","replace","y","q","b","D","modifier","dimensionAndFieldList","funcComp","valueComp","showExcludedValues","v","g","isFullRange","getNumDimensions","getExpressionWithExcludedComp","expression","treatMissingAsNull","getRowNoComp","getNumStepComp","steps","getAboveCompPrefix","getAboveCompSuffix","getAboveComp","getFunctionPrefix","getFunctionSuffix","getRangeComp","getAggrComp","getExcludedComp","needDimension","primaryDimension","accumulationDimension","getDimComp","qSortCriterias","qSortByExpression","qSortByNumeric","qSortByAscii","simplifyExpression","extractInputExpression","outputExpression","initModifier","keys","forEach","isNumeric","isApplicable","minDimensions","maxDimensions","getExpressionWithMarkers","canExtract","getDimDefWithWrapper","getFieldWithWrapper","x","iterator","E","A","C","I","M","S","L","slice","O","generate","val","push","op","splice","from","apply","TypeError","Error","clone","createPatch","toLowerCase","updateObject","P","F","Promise","resolve","map","qOp","qValue","JSON","stringify","qPath","applyPatches","N","V","type","w","H","disabled","T","translationKey","generateExpression","numDimensions","enableTotalsFunction","propertyPanelDef","items","translation","refFn","primaryDimensionTooltip","schemaIgnore","defaultValue","options","qHyperCube","qDimensionInfo","qGroupFallbackTitles","crossAllDimensionsTooltip","range","rangeFull","rangeCustom","rangeSteps","change","Math","abs","ext","support","modifiers","j","_","R","B","nullSuppression","k","showNull","inverted","U","G","W","$","z","Y","CURRENT_SELECTION","SELECT_FIELD_VALUE","DISREGARD_SELECTION","J","ONE_DIMENSION","ALL_DIMENSIOANS","DISREGARD_ALL_DIMENSIONS","K","X","Q","Z","ee","dimensionalScopeOneDimension","tooltipTranslation","dimensionalScopeOneDimensionTooltip","dimensionalScopeAllDimensions","dimensionalScopeAllDimensionsTooltip","dimensionalScopeDisregardAllDimensions","dimensionalScopeDisregardAllDimensionsTooltip","selectionScope","re","selectionScopeCurrentSelection","selectionScopeSpecificValue","selectionScopeTotal","dimensionalScope","ne","te","oe","ie","ae","se","join","field","updateModifier","modifierSelectionScope","modifierSelectionScopeTooltip","dropdownOnly","app","getFieldList","then","modifierDimensionalScope","modifierDimensionalScopeTooltip","supportTooltip","getDisregardSelectionComp","getFieldSelectionComp","getTotalComp","getSelectedDimComp","ue","getExpression","getExpressionRef","getLibraryIdRef","getLibraryId","getLabelRef","getLabelExpressionRef","le","initBase","isValid","restoreBase","base","ce","pe","fe","accumulation","movingAverage","difference","normalization","me","de","applyModifiers","ye","cleanUpMeasure","qe","destroy","id","masterItemSubscriber","unsubscribe","hasActiveModifiers","be","getActiveModifier","De","isSupportedModifiers","some","isApplicableSupportedModifiers","modifierTypes","measureBase","limitedSorting","he","Se","Ne","ifEnableTotalsFunction","ve","model","isSnapshot","masterItem","isFirstTime","lastReloadTime","Me","measure","getEffectiveProperties","Ee","Ve","Le","Oe","libraryIds","ge","Ce","oldProperties","runUpdateIfChange","libraryItemsProps","we","Fe","newProperties","libraryId","qMeasure","qLabel","qLabelExpression","quarantine","coloring","qAggrFunc","Ae","xe","Ie","getDimensionList","all","measureLibraryIds","dimensionLibraryIds","getMeasure","getProperties","getDimension","Pe","qHasSoftPatches","qExtendsId","setProperties","callback","dimension","enabled","listener","layoutSubscribe","subscribe","dispose","clearUndoBuffer","charCodeAt","String","fromCharCode","floor","getValue","setValue","isEmpty","isAtomicValue","test","generateId","round","random","isOrderedSubset","indexAdded","indexRemoved","findItemByPropertyValue","findIndexByPropertyValue","addDimensions","exportFormat","excludedDimensions","addMeasures","excludedMeasures","setInterColumnSortOrder","qInterColumnSortOrder","interColumnSortOrder","copyProperties","updateLayoutExclude","qLayoutExclude","changed","to","storeMeasuresModifiers","store","match","parse","qv","othersLabel","pow","importCommonProperties","visualization","copyPropertyIfExist","copyPropertyOrSetDefault","getDefaultDimension","autoSort","cId","qNullSuppression","qOtherLabel","qOtherTotalSpec","qOtherLimitMode","qOtherMode","qOtherSortMode","qSuppressOther","getDefaultMeasure","qTrendLines","newHyperCubeDef","defaultDimension","maxMeasures","minMeasures","defaultMeasure","getMaxMinDimensionMeasure","dataDefinition","createNewProperties","initialProperties","hypercubePath","key","components","shouldInitLayoutExclude","initLayoutExclude","updateDimensionsOnAdded","added","updateMeasuresOnAdded","restoreMeasuresModifiers","exportProperties","propertyTree","viewDataMode","qProperty","filters","qContextSetExpression","qDynamicScript","importProperties","defaultPropertyValues","extension","supportedFilters","isHCModifierSupported","qChildren","qTop","qLeft","cellBackgroundColor","cellForegroundColor","colorByAlternative","colorByExpression","tooltip","urlLabel","url","qAttribute","moveByIdFromGroup","IDMAP","CELL_BACKGROUND_COLOR","CELL_FOREGROUND_COLOR","COLOR_BY_ALTERNATIVE","COLOR_BY_EXPRESSION","TOOLTIP","CELL_LINK_LABEL","CELL_LINK_URL","getNumMeasures","wrapFieldName","getItemLabel","colorModeOptions","primary","multiColor","scatterplot","piechart","linechart","distributionplot","altLabel","qStringExpression","qExpr","substr","isDimension","attributeExpression","item","qExpression","matchMeasure","activeMeasureIndex","labelExpRef","colorMapRef","qSortBy","qAttributeDimensions","qAttributeExpressions","qFieldLabels","useMasterNumberFormat","mode","byDimDef","activeDimensionIndex","byMeasureDef","formatting","changeProperty","getCanColorBy","byDimension","byMeasure","byMultiple","byExpression","shouldUpdateColorBy","canColorBy","autoColor","colorMode","updateColorBy","deleteTotalMode","qTotalMode","shouldAddColorByExpression","addColorByExpression","switchToAutoColor","shouldSwitchToColorPersistent","handleAutoMinMax","handleMeasuresAxis","measureType","measureAxes","series","axis","line","marker","bar","total","includes","filter","sort","supportedAutoMinMax","qColumnOrder","columnOrder","arrayPath","quarantineName","arrayName","itemPath","unquarantine","quarantineAlternative","unquarantineAlternative","hypercube","colorChart","axisChart","quarantineProperty","unquarantineProperty","quarantineArrayProp","unquarantineArrayProp","conditionalColoring","conditionalShow","propTree","conversion","props","extend","qSuppressZero","qae","targets","next","done","return","RegExp","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","rgb","formatHex","formatRgb","exec","parseInt","NaN","opacity","copy","assign","displayable","hex","formatHex8","formatHsl","brighter","darker","clamp","PI","cos","sin","atan2","sqrt","bt","ke","gamma","An","xt","qt","Xt","children","Zt","Map","Qt","Jt","nn","pop","parent","depth","eachBefore","tn","en","count","eachAfter","each","find","sum","ancestors","descendants","leaves","links","source","target","reverse","search","toFixed","lastIndexOf","vo","yo","go","bo","xo","qo","wo","reduce","Mo","ko","theme","matrix","attribute","Boolean","Hi","Ri","zi","toUpperCase","groupHeader","_i","flags","getDefaultValue","getOptions","Set","metaText","isEnabled","Vi","Bi","Yi","$i","Ui","fontFamily","Ki","config","paths","ChartStyleComponent","fontResolver","chartId","propertyDefs","getColorComponent","getDataColorPickerPalettes","colors","labelSection","getFontWrapperComponent","fontWrapper","fontColor","getChartFontResolver","createFontResolver","overrides","getAxisLabelStyle","_overrides2","_axis$label","_axis$label$name","_axis$label2","_axis$label2$name","_axis$label3","_axis$label3$name","_axis$label3$name$fon","labels","fill","getValueLabelStyle","styles","_overrides3","_value$value","_value$value2","_value$value3","_value$value3$fontCol","parseFloat","getLegendLabelStyle","_overrides5","_legend$label","_legend$label2","_legend$label3","_legend$label3$fontCo","CHART_ID","getShapeColor","defaultColor","defaultIndex","layoutColor","waterfallUtils","valueTypes","NORMAL","INVERSE","SUBTOTAL","chartID","getColorForPositiveValue","getColorPickerColor","getColorForNegativeValue","getColorForSubtotal","freeze","getStylingItems","styleOptions","axisLabelSection","valueLabelSection","legendLabelSection","undefined","getStylingPanelDefinition","bkgOptionsEnabled","chartTitle","useGeneral","useBackground","colorIsNotAuto","propertyDefinition","stylingPanelEnabled","uses","addTranslation","disabledRef","numberFormatting","valueType","subTotal","subTotalLabel","enable","anything","sense","presentation","grouped","styleEditor","gridLines","snapshot","tid","showGridLines","gridSpacing","positiveValueColor","dualOutput","negativeValueColor","subtotalColor","simpleColors","classification","section","tags","exclusive","simpleItems","_data$color","globalChange","numberFormattingType","addons","dataHandling","suppressZero","calcCond","colorBackground","simpleLabels","header","_props$qHyperCubeDef$","pointLabels","_props$qHyperCubeDef$2","measureAxisTitle","othersGroup","_env$anything","definition","pp","cssScaling","export","exportData","sharing","viewData","mapProperties","getDefaultDimensionProperties","getDefaultMeasureProperties","hyperCubePath","fnTest","Class","className","proto","_super","fn","tmp","ret","ctor","Function","idGen","getChar","charCode","base62","chr","SCROLLBAR_KEY","getAxisDock","direction","isRtl","getYAxisDock","getXAxisDock","yDockNearFar","axisDockUtil","getOppositeAxisDock","rangesOfLRgExp","rangesOfRRgExp","rangesOfALRgExp","isLtrChar","isRtlChar","rtlUtils","lrm","rlm","detectTextDirection","refLineUtil","lineSettings","_options$style","defaultSettings","stroke","strokeDasharray","lineType","lineLabelSettings","labelColor","labelFontSize","labelFontFamily","align","vAlign","text","maxWidthPx","isVisible","refLineExpr","getRefLineTitle","valueString","showValue","showLabel","RtlUtil","constants","SHOW_AXIS_LABELS_OPTIONS","SHOW_TITLE_OPTIONS","HORIZONTAL","VERTICAL","LAYOUTSETTINGS","lasso","displayOrder","rangeDim","rangeMeasure","rangeMinor","scrollBar","minimumLayoutMode","prioOrder","dimensionAxisTitle","refLinesLabels","DEFAULT_CHART_ORIENTATION","SENSE_PICASSO_SPACING_COEFFICIENT","DimensionMeasureChart","chartBuilder","opts","measureAxisProperties","dimensionAxisProperties","chartOrientation","orientation","CONSTANTS","isChartHorizontal","measureDirection","dimensionDirection","includeMeasureAxisComponent","includeMeasureAxisTitleComponent","measureTitleText","includeDimensionAxisComponent","includeDimensionAxis","includeDimensionAxisTitleComponent","dimensionTitleText","includeGridlines","includeRefLines","interactionActions","measureAxisSettings","scale","axisLabelStyle","forceBounds","showBounds","measureAxisOptions","getMeasureAxisOptions","addComponent","addMeasureAxisComponent","measureTitleSettings","axisTitleStyle","getMeasureAxisTitleOptions","addMeasureAxisTitleComponent","measureScaleSettings","measureScaleOptions","measureSource","ticks","distance","addScale","addMeasureScale","dimensionAxisSettings","dimensionAxisOptions","getDimensionAxisOptions","addDimensionAxisComponent","dimensionAxisTitleSettings","dimensionAxisTitleOptions","getDimensionAxisTitleOptions","addDimensionAxisTitleComponent","dimensionScaleOptions","dimensionSource","dimensionScaleSettings","addDimensionScale","gridlinesOptions","gridlinesSettings","minorTicks","addGridlinesComponent","hasNavigation","getSettings","scroll","viewSize","scrollSettings","scrollbarOptions","isHorizontal","scrollBarSettings","addInteractionActions","isEnabledFn","targetIsScrollbar","manager","startPoint","center","deltaX","deltaY","chart","componentsFromPoint","tap","events","emit","pan","panstart","panend","pancancel","getScrollActions","isNavigationEnabledFn","addScrollbarComponent","axisDock","refLinesSettings","oob","lines","refLinesLabelsSettings","require","measureText","formatter","scales","labelWidths","formattedValue","minimumText","wanted","required","maxLabelWidth","labelPadding","expressionValue","lineOptions","addRefLineComponent","enableLasso","selectionsEnabled","lassoOptions","brushKey","brushComponents","brushData","addLassoComponent","enableDimRange","rangeDimSettings","rangeDimOptions","brushAxis","brushArea","brushScale","addRangeDimComponent","dimRange","enableMeasureRange","rangeMeasureSettings","rangeMeasureOptions","multiple","addRangeMeasureComponent","measureRange","enableAreaRange","rangeMinorSettings","chartInstance","addRangeAreaComponent","areaRange","brushActions","addInteraction","gestures","addInteractionComponent","actions","invert","domain","trackBy","axisLineStroke","titleFontSize","titleFill","labelsFill","labelsFontSize","titleFontFamily","labelsFontFamily","brush","trigger","consume","strokeWidth","tiltAngle","maxEdgeBleed","maxSize","axisSettings","active","measureScale","fields","expand","scaleSettings","dimensionScale","extract","qText","datum","xAxis","yAxis","xAxisTitle","yAxisTitle","rangeUtil","getBublesAlign","isAlignStart","getDock","dockTargets","dockT","layoutModes","SPARK","XSMALL","SMALL","MEDIUM","FULL","LayoutModes","getLabel","context","end","dataset","getLayoutModeKeys","layoutModeKeys","modeKey","directions","left","right","up","down","createComponent","minor","boxMarker","pointMarker","backgroundColor","scrollbar","comp","contexts","fillActive","bubbles","isStartBorder","binStart","binEnd","action","rangeArea","chartHeight","chartWidth","itemFill","itemFontSize","anchor","size","vertical","navigation","button","class","content","state","lineHeight","wordBreak","margin","top","bottom","shape","showTitle","categoricalLegend","tickFill","tickFontSize","tickFontFamily","getAlignValue","word","major","tick","sequentialLegend","gridLine","interaction","oobColor","oobBackgroundColor","padding","eventArea","sources","selector","strategy","placements","position","justify","ChartBuilder","dockLayout","interactions","getComponent","addPreset","ChartPresets","validateComponentKeys","msg","ALIGNMENT","CENTER","BOTTOM","DisclaimersConfig","DISCLAIMERS","alignment","util","getNoDataExistAttribute","qSize","qcy","qcx","getLimitedDataAttribute","maxNbrOfDimensions","result","stackedDataPages","explicitLimitedData","qDataPages","paging","qMatrix","qStackedDataPages","qSubNodes","node","qDown","qArea","getNegativeOrZeroValuesAttribute","supportNegative","qMeasureInfo","qMin","getOnlyNegativeOrZeroValuesAttribute","every","qMax","getOnlyNanDataAttribute","explicitOnlyNanData","getDataRangeIncludingZeroAttribute","supportRangeOverZero","measureInfo","len","explicitMinOn","explicitMaxOn","MAX_VALUE","hasDataRangeIncludingZero","applyAttributes","dataAttributes","NoDataExist","RequireNumericDimension","explicitRequireNumericDimension","LimitedData","NegativeOrZeroValues","OnlyNegativeOrZeroValues","OnlyNanData","DataRangeIncludingZero","Helper","disclaimersConfig","supportedDisclaimers","list","Disclaimer","environment","clear","isValidAndSupported","isAnyValidDisclaimer","self","getMessage","str","ERRORS","SET","DISPLAY","_applyDefaultSupport","supported","getComponentSettings","_this$environment","_this$environment$opt","vizAttributes","helper","DisclaimerComponentHelper","message","set","attributes","AttributesUtil","ChartView","picasso","$element","backendApi","selectionsApi","_selectionsApi","_on","_disclaimer","_dataPaths","picassoElement","dataAreaElem","updateEnvironment","setDataPaths","dataPaths","getData","hyperCube","dataPagesPath","page","maxHeight","pages","hasValidData","paint","_disclaimerComponent$","getDisclaimerAttributes","disclaimerComponent","isSuppressingDisc","chartSettings","createChartSettings","errorMsg","console","error","updateChart","_painted","resize","addSnapshotChartSettings","freeResize","snapshotData","logicalSize","preserveAspectRatio","updateData","_destroyed","reject","permissions","isPartialData","_this$environment$app","_this$environment$app2","localeInfo","appLayout","qLocaleInfo","colorService","update","partialData","setAttribute","off","getViewState","isLassoDisabled","setSnapshotData","snapshotLayout","chartData","colorStruct","transparent","rgba","hexShort","hsl","hsla","Color","lcs","h_","rgb_","matches","colorString","_invalid","_r","_g","_b","_a","CSSColors","_spaces","isInvalid","setAlpha","getAlpha","toRGB","toRGBA","toHex","toHSL","luma","toHSLA","toHSV","hsvComp","toHSVComponents","toNumber","num","isDark","getLuminance","_lumi","shiftLuminance","chsla","isEqual","blend","c2","createShiftedColor","lumi","greenMultiplier","hsla_string","ch","c1","r1","g1","b1","getBlend","isCSSColor","getBestContrast","cl","cd","lum","getContrast","color1","color2","l1","l2","useDarkLabel","areaColor","bgIsDark","namespace","ScrollHandler","$chartElement","getSlicedDataFn","onScrollCallback","legendKey","_chartInstance","_$chartElement","_getSlicedDataFn","_itemSize","_onScrollCallback","_legendKey","calculateScrollViewSizeInItem","scrollSize","getItemSize","_scrollViewSizeInItem","onMouseWheel","event","orgEvent","delta","wheelDelta","detail","HORIZONTAL_AXIS","wheelDeltaY","wheelDeltaX","pageX","pageY","getMouseWheelData","originalEvent","preventDefault","onLegendMouseWheel","_disabled","getScrollApi","_scrollApi","move","onScroll","_sizeChanged","getViewData","catch","err","setDisabled","getDisabled","setItemSize","getScrollViewSizeInItem","on","removeAllListeners","isOn","updateViewState","onResize","isDataSizeChanged","pageNumberOfRows","datasetNumberOfRows","resetScroll","moveTo","getState","start","setOptions","getScrollState","setScrollState","onComponentChecker","isOnComponentForRange","selectionGesture","isOnComponentForLasso","gesturesParams","lassoGesture","componentKey","isOnComponentForNavBtn","legendBrushKey","navBtnGesture","callLassoGesture","gesturesFns","Hammer","DIRECTION_ALL","threshold","lassoing","isSelectionEnabled","hitComp","handlers","selectionHandler","lassoState","allFieldsLocked","recognizeWith","scrollHandler","lassostart","switchTo","pauseEngineCalls","lassoBrushKey","clientX","pointers","clientY","doEmit","lassomove","lassoend","resumeEngineCalls","lassocancel","measureRangeGesture","callMeasureRangeGesture","activeRangeBrush","dimRangeBrushKey","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","rangeSelStatus","isOpenMea","measureSelecting","gesture","measureRangeBrushKey","requireFailure","measurerangestart","measurerangemove","measurerangeend","measurerangecancel","getAxisOrientation","areaRangeGesture","callAreaRangeGesture","isOpenDim","minoring","arearangestart","areaBrushKey","arearangemove","arearangeend","arearangecancel","dimensionRangeGesture","callDimensionRangeGesture","dimAxis","majoring","majorrangestart","majorrangemove","majorrangeend","majorrangecancel","dragGesture","callDragGesture","hasSelections","dragPoint","dragging","isNavigationEnabled","getBrushConfig","dragstart","dragmove","dragend","dragcancel","callNavBtnGesture","navBtnTap","btn","attr","getAttribute","DependentInteractions$1","clearKey","activeChart","newType","cont","inst","onScrollUpdate","rangeClearTap","unshift","removeListener","TooltipActions","tooltipKey","hasOpen","closeTooltip","isOpen","brushes","shapes","getAffectedShapes","nodes","openTooltip","toggleInterceptor","check","TooltipAction","args","formatMeasureValue","measureContent","raw","qNum","OTHERS_ELEMNO","createContent","tooltipInfo","uniqueShapes","dataPath","numberInExcess","numItems","localContent","rows","labelData","refPaths","isNullValue","currentNode","qElemNo","qElemNumber","headerResolver","measureRows","measureRow","rowData","rowResolver","row","colorByData","getColorByDimData","rowCount","extractContent","renderSettings","_tooltipInfo$colorSer","_tooltipInfo$colorSer2","_shape$attrs","colorData","colorSettings","fieldType","ids","mapping","elemNoObj","othersIndex","values","getOthersIndex","attrs","TOOLTIP_CONTAINER_ID","TOOLTIP_CONTAINER_SELECTOR","appendTooltipContainer","document","querySelector","container","createElement","body","appendChild","beforeMount","beforeUpdate","destroyed","elm","parentElement","childElementCount","removeChild","destroyTooltipContainer","appendTo","placement","arrow","background","cell","hyphens","getDirection","DEFAULT_OPTIONS","labelTextAlign","headerStyle","fontWeight","colSpan","valueContent","symbolStyle","symbol","labelStyle","valueStyle","moreText","moreStyle","Tooltips","chartType","tooltipContexts","registerContext","listeners","removed","treatAsDesktop","intercept","deregister","deRegContext","removeInterceptor","mouseLeave","prop","setUp","attrDimPath","filterShapes","deviceType","createContext","createTooltip","uniques","filterDuplicateShapes","globalPropagation","tearDown","TooltipHandler","CHARACTER_AVERAGE_WIDTH","CHARACTER_MAX_WIDTH","M_WIDTH","CJK_OVER_LATIN_WIDTH_RATIO","stringWidthOverMWidth","getCharacterRatios","latin","cjk","CJK","hiragana","katakana","getTotalCharacterRatios","columnIndex","res","latinRatio","cjkRatio","estimateLatinLabelWidth","numLatins","maxLatinWidth","averageLatinWidth","stringUtil","endsWith","string","suffix","startsWith","prefix","contains","haystack","needle","getAdjustedMaxGlyphCount","maxGlyphCount","totalCharacterRatios","latinGlyphCount","cjkGlyphCount","ceil","estimateLabelWidth","numCjks","cjkWidth","CubeGenerator","generateHyperCube","numMeasures","positveColor","negativeColor","_numberFormatter","generatedMatrix","startMax","startMin","endMax","endMin","qFallbackTitle","numFormat","getMeasureFormat","isAutoFormat","qIsAutoFormat","generated","qStateCounts","generateSlicedHyperCube","getGeneratedDimensionPath","dimIndex","getGeneratedMeasurePath","mesIndex","ascending","descending","bisector","compare1","compare2","lo","hi","mid","zero","bisectRight","bisect","e10","e5","e2","tickSpec","stop","step","power","log10","factor","i1","i2","inc","tickIncrement","initRange","define","factory","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","color_formatHex","color_formatRgb","format","rgbn","Rgb","rgb_formatHex","rgb_formatRgb","clampa","clampi","Hsl","hslConvert","clamph","clampt","hsl2rgb","m1","m2","channels","constant","nogamma","exponential","linear","rgbGamma","colorRgb","numberArray","genericArray","nb","na","date","Date","setTime","interpolateNumber","object","reA","reB","am","bm","bs","bi","lastIndex","number","one","interpolate","ArrayBuffer","isView","DataView","isNumberArray","valueOf","interpolateRound","unit","identity","normalize","bimap","d0","d1","r0","polymap","transformer","untransform","unknown","piecewise","output","input","interpolateValue","rescale","clamper","rangeRound","formatDecimalParts","toExponential","coefficient","exponent","prefixExponent","formatSpecifier","specifier","FormatSpecifier","sign","comma","precision","formatRounded","formatTypes","%","toLocaleString","toPrecision","locale","formatPrefix","prefixes","formatLocale","grouping","thousands","group","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","percent","minus","nan","newFormat","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","i0","formatTrim","Infinity","tickFormat","tickStep","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","tickGenerator","getMinorTicks","majorTicks","minorTickCount","adjustTicks","deltaMin","isMinor","deltaMax","getTicks","scaleLinear","MAX_GLYPH_COUNT","BAR_WIDTH_RATIO","updateScrollHandlerState","_scrollHandler","getMaxGlyphCountForDimAxis","glyphCount","getDimAxisSettings","maxLengthPx","getBoundingClientRect","getPicassoScrollSettings","waterfallChartView","_tooltipHandler","getSlicedData","updateConstraints","constraints","passive","clientWidth","clientHeight","tooltipSettings","box","shapeData","boxColor","_dependentActions","DependentInteractions","maxPxStep","includeMeasureAxis","include","brushTrigger","brushConsume","getBarSettings","bridgeColor","bandwidth","sizeLimits","maxPx","maxRelExtent","minRelDiscrete","maxRelDiscrete","getBridgeSettings","positiveText","negativeText","subtotalText","labelStyleSettings","getLegendSettings","themeService","getStyles","getTheme","setTheme","createThemeService","valueLabelSettings","outsideValueColor","darkColor","lightColor","ctx","getBarLabelSettings","area","viewState","finally","supernova","useElement","useApp","useAppLayout","useDeviceType","useOptions","useTheme","useTranslator","useMemo","language","useEnvironment","picassojs","prio","use","PicassoQ","PicassoHammer","picassoSetup","useStaleLayout","useConstraints","instance","setInstance","useState","useEffect","view","usePromise","usePromiseNoError","async","useRect","useResize","onTakeSnapshot","useImperativeHandle"],"mappings":"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","x_google_ignoreList":[5,8,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106]}