@nebula.js/sn-histogram 0.32.2 → 0.33.0
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.
- package/api-specifications/properties.json +1 -1
- package/dist/sn-histogram.js +15 -13
- package/dist/sn-histogram.js.map +1 -1
- package/dist/sn-histogram.systemjs.js +13 -11
- package/dist/sn-histogram.systemjs.js.map +1 -1
- package/package.json +9 -8
- package/core/esm/index.js +0 -10
- package/core/esm/index.js.map +0 -1
package/core/esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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/lasso-icon.js","../../../../chart-modules/common/nebula/snapshot.js","../../src/binning-defaults.js","../../src/object-properties.js","../../src/histogram-data.js","../../../../node_modules/qlik-chart-modules/dist/qlik-chart-modules.esm.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","../../../../node_modules/picasso-plugin-q/node_modules/extend/index.js","../../../../node_modules/picasso-plugin-q/src/data/extractor-s.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/count.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/each.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/sum.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/sort.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/path.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/descendants.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/leaves.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/links.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/index.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/accessors.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/stratify.js","../../../../node_modules/picasso-plugin-q/src/json-path-resolver.js","../../../../node_modules/picasso-plugin-q/src/data/util.js","../../../../node_modules/picasso-plugin-q/src/data/extractor-t.js","../../../../node_modules/picasso-plugin-q/node_modules/number-format.js/lib/format.min.js","../../../../node_modules/picasso-plugin-q/src/formatter/parts/qs-number-formatter.js","../../../../node_modules/picasso-plugin-q/src/formatter/memoize.js","../../../../node_modules/picasso-plugin-q/src/formatter/numberFormat.js","../../../../node_modules/picasso-plugin-q/src/formatter/constants.js","../../../../node_modules/picasso-plugin-q/src/formatter/parts/qs-date-formatter.js","../../../../node_modules/picasso-plugin-q/src/formatter/timeFormat.js","../../../../node_modules/picasso-plugin-q/src/formatter/index.js","../../../../node_modules/picasso-plugin-q/src/data/field.js","../../../../node_modules/picasso-plugin-q/src/data/dataset.js","../../../../node_modules/picasso-plugin-q/src/brush/q-brush.js","../../../../node_modules/picasso-plugin-q/src/index.js","../../../../chart-modules/common/picasso/selections/selection-utils.js","../../../../chart-modules/common/picasso/selections/selections-handler.js","../../../../chart-modules/common/picasso/selections/selection-actions.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/picasso/derived-properties/hash/hash.js","../../../../chart-modules/common/extra/hash-from-string.js","../../../../chart-modules/common/picasso/derived-properties/hash/hash-builder.js","../../../../chart-modules/common/extra/json-patch.js","../../../../chart-modules/common/extra/soft-property-handler.js","../../../../chart-modules/common/extra/hard-properties-checker.js","../../../../chart-modules/common/picasso/derived-properties/save/save.js","../../../../chart-modules/common/picasso/derived-properties/input-validator/input-validator.js","../../../../chart-modules/common/picasso/derived-properties/derived-properties.js","../../../../chart-modules/common/picasso/expression-generator/expression-wrapper.js","../../../../chart-modules/common/picasso/expression-generator/expression-replacer.js","../../../../chart-modules/common/picasso/expression-generator/expression-generator.js","../../../../chart-modules/common/picasso/hypercube-def-generator/hypercube-def-generator.js","../../../../chart-modules/common/extra/is-numeric.js","../../../../chart-modules/common/extra/is-integer.js","../../src/histogram-utils.js","../../src/derived-properties/bin-size-calculator.js","../../src/derived-properties/histogram-mappings.js","../../src/derived-properties/histogram-cubes-generator.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","../../src/chart-settings/dimension-axis.js","../../src/chart-settings/dimension-scale.js","../../../../chart-modules/common/extra/css-colors.js","../../../../chart-modules/common/extra/color.js","../../../../chart-modules/common/extra/chart-style-utils.js","../../src/chart-settings/box-marker.js","../../src/chart-settings/label.js","../../src/chart-settings/chart-settings.js","../../src/histogram-view.js","../../src/backend-api.js","../../../../node_modules/qlik-object-conversion/dist/conversion.js","../../src/histogram-properties-logic.js","../../src/styling-panel-definition.js","../../src/histogram-properties.js","../../src/histogram-explore-properties.js","../../src/histogram-export.js","../../src/ext.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/use-lasso.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","const lassoIcon = {\n shapes: [\n {\n type: 'path',\n attrs: {\n d: 'M15.9488039,5.20769129 C16.0487326,6.70662306 15.3492311,8.30548361 14.050157,9.30477145 C12.651154,10.5039169 10.8524359,10.8037032 8.85386017,10.4039881 L7.3549284,10.0042729 L5.75606786,9.70448659 C5.75606786,9.90434416 5.65613907,10.0042729 5.4562815,10.2041305 C5.05656637,10.6038456 4.55692244,10.8037032 4.05727852,10.8037032 C3.75749217,10.8037032 3.45770582,10.7037744 3.15791946,10.6038456 C3.05799068,10.903632 3.15791946,11.2034184 3.45770582,11.7030623 C5.05656637,14.0014243 3.85742095,15.9000712 3.75749217,16 L2.2585604,15.3004985 C2.2585604,15.2005697 2.95806189,14.0014243 1.95877405,12.6024213 C1.6589877,12.0028486 1.15934378,11.0035608 1.55905891,10.0042729 C1.6589877,9.80441537 1.75891648,9.6045578 1.95877405,9.40470024 C1.6589877,8.90505631 1.55905891,8.30548361 1.85884527,7.7059109 C1.55905891,7.40612455 1.25927256,7.1063382 1.15934378,6.70662306 C0.859557424,5.90719279 0.959486209,4.5081898 1.6589877,3.30904439 C1.95877405,2.6095429 2.55834676,2.0099702 3.15791946,1.51032628 C3.95734974,0.91075357 4.95663758,0.610967217 6.15578299,0.311180864 C9.05371774,-0.388320626 11.9516525,0.111323295 13.9502282,1.61025506 C15.1493736,2.50961412 15.8488751,3.80868831 15.9488039,5.20769129 Z M13.0508691,8.10562604 C13.8502994,7.40612455 14.3499433,6.40683671 14.3499433,5.30762008 C14.2500145,4.20840345 13.550513,3.40897318 12.9509403,2.90932926 C12.1515101,2.40968533 11.252151,2.0099702 10.1529344,1.81011263 C8.95378895,1.61025506 7.75464354,1.71018384 6.45556935,1.91004141 C4.75678001,2.30975655 3.65756338,3.00925804 3.05799068,4.10847467 C2.55834676,5.00783373 2.65827554,5.90719279 2.75820433,6.20697914 C2.75820433,6.30690792 2.85813311,6.40683671 3.05799068,6.40683671 C3.15791946,6.40683671 3.25784825,6.40683671 3.35777703,6.40683671 C3.45770582,6.40683671 3.45770582,6.40683671 3.45770582,6.40683671 L3.5576346,6.40683671 L3.65756338,6.40683671 C4.65685123,6.40683671 5.4562815,6.90648063 5.85599664,7.80583969 L5.85599664,8.00569726 C6.35564056,8.10562604 7.05514205,8.30548361 7.75464354,8.50534118 L9.25357531,8.90505631 C10.0530056,9.0049851 10.7525071,9.0049851 11.4520086,8.80512753 C12.0515813,8.70519875 12.5512252,8.40541239 13.0508691,8.10562604 Z',\n },\n },\n ],\n};\n\nexport default lassoIcon;\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","const BINNING_DEFAULTS = {\n AUTO: true, // True means we calculate the BIN_SIZE to generate BIN_COUNT number of bins\n BIN_COUNT: 10, // The number of bins the user wants when AUTO = true\n BIN_SIZE: 10, // The size(width) of the bins the user wants when AUTO = false\n LABEL: 'x', // The label parameter to the Class function\n OFFSET: 0, // The offset parameter to the Class function\n COUNT_DISTINCT: false, // True means we only count distinct values\n BIN_MODE: 'maxCount', // \"maxCount\" means that we can only adjust the maximum amount of bins. \"size\" mean that we can adjust the width and offset\n};\n\nObject.freeze(BINNING_DEFAULTS);\n\nexport default BINNING_DEFAULTS;\n","import BINNING_DEFAULTS from './binning-defaults';\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 */\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 qMeasures: [],\n qMode: 'S',\n qAlwaysFullyExpanded: true,\n qSuppressZero: false,\n qSuppressMissing: true,\n },\n /**\n * Bin settings.\n * @type {object}\n */\n bins: {\n /**\n * Auto mode generates a nice looking histogram without special parameters.\n * @type {boolean}\n * @default\n */\n auto: BINNING_DEFAULTS.AUTO,\n /**\n * Number of bars to be displayed, used when binMode is set to 'maxCount'.\n * @type {number}\n * @default\n */\n binCount: '',\n /**\n * The width of the bars, used when binMode is set to 'size'.\n * @type {number}\n * @default\n */\n binSize: BINNING_DEFAULTS.BIN_SIZE,\n /**\n * Used to know where to start displaying bars on x-axis.\n * @type {number}\n * @default\n */\n offset: BINNING_DEFAULTS.OFFSET,\n /**\n * Shows unique values.\n * @type {boolean}\n * @default\n */\n countDistinct: BINNING_DEFAULTS.COUNT_DISTINCT,\n /**\n * MaxCount - Able to adjust the maximum number of bars to be displayed. size - Able to adjust size of bars and offset from x-axis.\n * @type {string}\n * @default\n */\n binMode: BINNING_DEFAULTS.BIN_MODE,\n },\n /**\n * Color settings.\n * @type {object}\n */\n color: {\n /**\n * @type {object}\n */\n bar: {\n /**\n * The paletteColor object is used to define the bar color.\n * @type {paletteColor}\n * @default { index: 6 }\n */\n paletteColor: {\n index: 6,\n color: '#4477aa',\n },\n },\n },\n /**\n * Data points\n * @type {object}\n */\n dataPoint: {\n /**\n * Show labels on bars\n * @type {boolean}\n * @default\n */\n showLabels: false,\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'}\n * @default\n */\n label: 'auto',\n /**\n * Labels and title\n * @type {'all'|'labels'|'title'|'none'}\n */\n show: 'all',\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 * Label to show on the measure axis, if left empty it defaults to 'Frequency'\n * @type {(string|StringExpression)=}\n * @default\n */\n label: '',\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 {'all'|'labels'|'title'|'none'}\n * @default \"all\"\n */\n show: 'all',\n /**\n * Axis scale\n * @type {number}\n * @default\n */\n spacing: 1,\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 * 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 * Wrapper for sorting properties which will be set on the outer dimension.\n * @type {object}\n */\n sorting: {\n /**\n * Sort automatically\n * @type {true}\n * @default\n */\n autoSort: true,\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: 1,\n max: 1,\n description() {\n return translator.get('Visualization.Histogram.Binning');\n },\n };\n const measures = {\n min: 0,\n max: 0,\n };\n return {\n path: '/qHyperCubeDef',\n dimensions,\n measures,\n };\n}\n","/*\n* qlik-chart-modules v0.44.0\n* Copyright (c) 2022 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=\"function\"==typeof Symbol?Symbol:{},i=o.iterator||\"@@iterator\",a=o.asyncIterator||\"@@asyncIterator\",u=o.toStringTag||\"@@toStringTag\";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},\"\")}catch(e){l=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var o=t&&t.prototype instanceof d?t:d,i=Object.create(o.prototype),a=new k(r||[]);return i._invoke=function(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 S()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var u=q(a,n);if(u){if(u===f)continue;return u}}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 l=s(e,t,n);if(\"normal\"===l.type){if(r=n.done?\"completed\":\"suspendedYield\",l.arg===f)continue;return{value:l.arg,done:n.done}}\"throw\"===l.type&&(r=\"completed\",n.method=\"throw\",n.arg=l.arg)}}}(e,n,a),i}function s(e,t,n){try{return{type:\"normal\",arg:e.call(t,n)}}catch(e){return{type:\"throw\",arg:e}}}e.wrap=c;var f={};function d(){}function p(){}function v(){}var h={};l(h,i,(function(){return this}));var m=Object.getPrototypeOf,y=m&&m(m(C([])));y&&y!==t&&r.call(y,i)&&(h=y);var g=v.prototype=d.prototype=Object.create(h);function b(e){[\"next\",\"throw\",\"return\"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function x(e,t){function n(o,i,a,u){var l=s(e[o],e,i);if(\"throw\"!==l.type){var c=l.arg,f=c.value;return f&&\"object\"==typeof f&&r.call(f,\"__await\")?t.resolve(f.__await).then((function(e){n(\"next\",e,a,u)}),(function(e){n(\"throw\",e,a,u)})):t.resolve(f).then((function(e){c.value=e,a(c)}),(function(e){return n(\"throw\",e,a,u)}))}u(l.arg)}var o;this._invoke=function(e,r){function i(){return new t((function(t,o){n(e,r,t,o)}))}return o=o?o.then(i,i):i()}}function q(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,\"throw\"===t.method){if(e.iterator.return&&(t.method=\"return\",t.arg=void 0,q(e,t),\"throw\"===t.method))return f;t.method=\"throw\",t.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return f}var r=s(n,e.iterator,t.arg);if(\"throw\"===r.type)return t.method=\"throw\",t.arg=r.arg,t.delegate=null,f;var o=r.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,\"return\"!==t.method&&(t.method=\"next\",t.arg=void 0),t.delegate=null,f):o:(t.method=\"throw\",t.arg=new TypeError(\"iterator result is not an object\"),t.delegate=null,f)}function w(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 M(e){var t=e.completion||{};t.type=\"normal\",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:\"root\"}],e.forEach(w,this),this.reset(!0)}function C(e){if(e){var t=e[i];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:S}}function S(){return{value:void 0,done:!0}}return p.prototype=v,l(g,\"constructor\",v),l(v,\"constructor\",p),p.displayName=l(v,u,\"GeneratorFunction\"),e.isGeneratorFunction=function(e){var t=\"function\"==typeof e&&e.constructor;return!!t&&(t===p||\"GeneratorFunction\"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,l(e,u,\"GeneratorFunction\")),e.prototype=Object.create(g),e},e.awrap=function(e){return{__await:e}},b(x.prototype),l(x.prototype,a,(function(){return this})),e.AsyncIterator=x,e.async=function(t,n,r,o,i){void 0===i&&(i=Promise);var a=new x(c(t,n,r,o),i);return e.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},b(g),l(g,u,\"Generator\"),l(g,i,(function(){return this})),l(g,\"toString\",(function(){return\"[object Generator]\"})),e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=C,k.prototype={constructor:k,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(M),!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 u=r.call(i,\"catchLoc\"),l=r.call(i,\"finallyLoc\");if(u&&l){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!l)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,f):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),f},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),M(n),f}},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;M(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(e,t,n){return this.delegate={iterator:C(e),resultName:t,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),f}},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 u=e[i](a),l=u.value}catch(e){return void n(e)}u.done?t(l):Promise.resolve(l).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 u(e){o(a,r,i,u,l,\"next\",e)}function l(e){o(a,r,i,u,l,\"throw\",e)}u(void 0)}))}}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(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 l(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)return;var r,o,i=[],a=!0,u=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){u=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(u)throw o}}return i}(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}var d=Object.prototype.hasOwnProperty,p=Object.prototype.toString,v=Object.defineProperty,h=Object.getOwnPropertyDescriptor,m=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===p.call(e)},y=function(e){if(!e||\"[object Object]\"!==p.call(e))return!1;var t,n=d.call(e,\"constructor\"),r=e.constructor&&e.constructor.prototype&&d.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!r)return!1;for(t in e);return void 0===t||d.call(e,t)},g=function(e,t){v&&\"__proto__\"===t.name?v(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},b=function(e,t){if(\"__proto__\"===t){if(!d.call(e,t))return;if(h)return h(e,t).value}return e[t]},x=function e(){var t,n,r,o,i,a,u=arguments[0],l=1,c=arguments.length,s=!1;for(\"boolean\"==typeof u&&(s=u,u=arguments[1]||{},l=2),(null==u||\"object\"!=typeof u&&\"function\"!=typeof u)&&(u={});l<c;++l)if(null!=(t=arguments[l]))for(n in t)r=b(u,n),u!==(o=b(t,n))&&(s&&o&&(y(o)||(i=m(o)))?(i?(i=!1,a=r&&m(r)?r:[]):a=r&&y(r)?r:{},g(u,{name:n,newValue:e(s,a,o)})):void 0!==o&&g(u,{name:n,newValue:o}));return u};function q(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 w(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 M(e,t,n,r,o){var i,a=o.byRow,u=o.byElemNo;if(r&&(t.input.persistent||e.hc.qDimensionInfo.length>1||void 0===n.activeDimensionIndex&&e.hc.qSize.qcy>((null===(i=e.hc.qDataPages[0])||void 0===i?void 0:i.qArea.qHeight)||0)))return u(r,r.raw().qCardinal);if(r){var l=t.pic.extract({field:r.key(),trackBy:r.value}).length;return a(r,l)}return{}}function k(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 C(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 S(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function D(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function I(){}var E=1/.7,O=\"\\\\s*([+-]?\\\\d+)\\\\s*\",A=\"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",N=\"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",P=/^#([0-9a-f]{3,8})$/,L=new RegExp(\"^rgb\\\\(\"+[O,O,O]+\"\\\\)$\"),T=new RegExp(\"^rgb\\\\(\"+[N,N,N]+\"\\\\)$\"),j=new RegExp(\"^rgba\\\\(\"+[O,O,O,A]+\"\\\\)$\"),F=new RegExp(\"^rgba\\\\(\"+[N,N,N,A]+\"\\\\)$\"),R=new RegExp(\"^hsl\\\\(\"+[A,N,N]+\"\\\\)$\"),H=new RegExp(\"^hsla\\\\(\"+[A,N,N,A]+\"\\\\)$\"),V={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 z(){return this.rgb().formatHex()}function _(){return this.rgb().formatRgb()}function B(e){var t,n;return e=(e+\"\").trim().toLowerCase(),(t=P.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?Y(t):3===n?new W(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?U(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?U(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=L.exec(e))?new W(t[1],t[2],t[3],1):(t=T.exec(e))?new W(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=j.exec(e))?U(t[1],t[2],t[3],t[4]):(t=F.exec(e))?U(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=R.exec(e))?Z(t[1],t[2]/100,t[3]/100,1):(t=H.exec(e))?Z(t[1],t[2]/100,t[3]/100,t[4]):V.hasOwnProperty(e)?Y(V[e]):\"transparent\"===e?new W(NaN,NaN,NaN,0):null}function Y(e){return new W(e>>16&255,e>>8&255,255&e,1)}function U(e,t,n,r){return r<=0&&(e=t=n=NaN),new W(e,t,n,r)}function K(e){return e instanceof I||(e=B(e)),e?new W((e=e.rgb()).r,e.g,e.b,e.opacity):new W}function G(e,t,n,r){return 1===arguments.length?K(e):new W(e,t,n,null==r?1:r)}function W(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function $(){return\"#\"+J(this.r)+J(this.g)+J(this.b)}function X(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?\"rgb(\":\"rgba(\")+Math.max(0,Math.min(255,Math.round(this.r)||0))+\", \"+Math.max(0,Math.min(255,Math.round(this.g)||0))+\", \"+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===e?\")\":\", \"+e+\")\")}function J(e){return((e=Math.max(0,Math.min(255,Math.round(e)||0)))<16?\"0\":\"\")+e.toString(16)}function Z(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new ee(e,t,n,r)}function Q(e){if(e instanceof ee)return new ee(e.h,e.s,e.l,e.opacity);if(e instanceof I||(e=B(e)),!e)return new ee;if(e instanceof ee)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,u=i-o,l=(i+o)/2;return u?(a=t===i?(n-r)/u+6*(n<r):n===i?(r-t)/u+2:(t-n)/u+4,u/=l<.5?i+o:2-i-o,a*=60):u=l>0&&l<1?0:a,new ee(a,u,l,e.opacity)}function ee(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function te(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}S(I,B,{copy:function(e){return Object.assign(new this.constructor,this,e)},displayable:function(){return this.rgb().displayable()},hex:z,formatHex:z,formatHsl:function(){return Q(this).formatHsl()},formatRgb:_,toString:_}),S(W,G,D(I,{brighter:function(e){return e=null==e?E:Math.pow(E,e),new W(this.r*e,this.g*e,this.b*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new W(this.r*e,this.g*e,this.b*e,this.opacity)},rgb:function(){return this},displayable:function(){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:$,formatHex:$,formatRgb:X,toString:X})),S(ee,(function(e,t,n,r){return 1===arguments.length?Q(e):new ee(e,t,n,null==r?1:r)}),D(I,{brighter:function(e){return e=null==e?E:Math.pow(E,e),new ee(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new ee(this.h,this.s,this.l*e,this.opacity)},rgb:function(){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 W(te(e>=240?e-240:e+120,o,r),te(e,o,r),te(e<120?e+240:e-120,o,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?\"hsl(\":\"hsla(\")+(this.h||0)+\", \"+100*(this.s||0)+\"%, \"+100*(this.l||0)+\"%\"+(1===e?\")\":\", \"+e+\")\")}}));var ne=Math.PI/180,re=180/Math.PI,oe=4/29,ie=6/29,ae=3*ie*ie;function ue(e){if(e instanceof le)return new le(e.l,e.a,e.b,e.opacity);if(e instanceof he)return me(e);e instanceof W||(e=K(e));var t,n,r=de(e.r),o=de(e.g),i=de(e.b),a=ce((.2225045*r+.7168786*o+.0606169*i)/1);return r===o&&o===i?t=n=a:(t=ce((.4360747*r+.3850649*o+.1430804*i)/.96422),n=ce((.0139322*r+.0971045*o+.7141733*i)/.82521)),new le(116*a-16,500*(t-a),200*(a-n),e.opacity)}function le(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}function ce(e){return e>.008856451679035631?Math.pow(e,1/3):e/ae+oe}function se(e){return e>ie?e*e*e:ae*(e-oe)}function fe(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function de(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function pe(e){if(e instanceof he)return new he(e.h,e.c,e.l,e.opacity);if(e instanceof le||(e=ue(e)),0===e.a&&0===e.b)return new he(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*re;return new he(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function ve(e,t,n,r){return 1===arguments.length?pe(e):new he(e,t,n,null==r?1:r)}function he(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function me(e){if(isNaN(e.h))return new le(e.l,0,0,e.opacity);var t=e.h*ne;return new le(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}function ye(e){return function(){return e}}function ge(e){return 1==(e=+e)?be: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):ye(isNaN(t)?n:t)}}function be(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):ye(isNaN(e)?t:e)}S(le,(function(e,t,n,r){return 1===arguments.length?ue(e):new le(e,t,n,null==r?1:r)}),D(I,{brighter:function(e){return new le(this.l+18*(null==e?1:e),this.a,this.b,this.opacity)},darker:function(e){return new le(this.l-18*(null==e?1:e),this.a,this.b,this.opacity)},rgb:function(){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 W(fe(3.1338561*(t=.96422*se(t))-1.6168667*(e=1*se(e))-.4906146*(n=.82521*se(n))),fe(-.9787684*t+1.9161415*e+.033454*n),fe(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}})),S(he,ve,D(I,{brighter:function(e){return new he(this.h,this.c,this.l+18*(null==e?1:e),this.opacity)},darker:function(e){return new he(this.h,this.c,this.l-18*(null==e?1:e),this.opacity)},rgb:function(){return me(this).rgb()}}));var xe=function e(t){var n=ge(t);function r(e,t){var r=n((e=G(e)).r,(t=G(t)).r),o=n(e.g,t.g),i=n(e.b,t.b),a=be(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),qe=/^class(-pyramid)?/,we=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,u=i,l=t.limits,s={},f=\"percent\"===t.limitType?l.map((function(e){return o+(i-o)*e})):l,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 u=0;u<r.length;u++)if(t<r[u]){i.push(o[u]);break}}for(var l=0;l<r.length;l++)t<r[l]&&r[l]<n&&(a.push(r[l]),i.push(o[l]));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:u,range:d,limits:\"percent\"===t.limitType?f:l}));else if(t.breakTypes){var p=t.breakTypes;s.type=\"continuous\",s.domain=[o],s.range=[d[0]];for(var v=0;v<f.length;v+=1)if(p[v]){var h=d[v],m=d[v+1],y=xe(h,m)(.5);s.range.push(y),s.domain.push(f[v]),v<f.length-1&&p[v+1]&&(s.range.push(d[v+1]),s.domain.push((f[v]+f[v+1])/2))}else s.range.push(d[v]),s.range.push(d[v+1]),s.domain.push(f[v]),s.domain.push(f[v]+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 Me(e,t,n,r,o){var i,a,u,l=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),u=n[i]>e?Math.floor(e/s):n[i]<t?0:Math.floor(a/s),Number.isNaN(u)||(c[u]?c[u]+=1:c[u]=1);for(i=0;i<c.length;i+=1)c[i]&&(l+=1);return l<=r||l>=o?Math.max(l,r):Me(e,t,n,r+1,o)}var ke=function(e,t,n,r){var o,i,a=t.theme,u=t.hc,l=r.f,s={mode:\"field\",fieldType:\"measure\",field:l?l.key():void 0,reverse:n.input.reverseScheme||!1,type:\"continuous\",range:function(e){return e.resources.theme.palette(\"quant\")}},f=[],d=!0;if(l){if(Number.isNaN(+l.min())||Number.isNaN(+l.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:l.key()},exclude:{fields:u.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(l&&!d)s.min=l.min(),s.max=l.max();else if(l){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&&qe.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 v=d?Me(s.max,s.min,f,1,i):i,h=(s.max-s.min)/v,m=[],y=0;y<v+1;y+=1)m.push(s.min+h*y);s.domain=m,s.range=function(e){for(var t=e.resources.theme.palette(\"quant\",v),n=Math.max(1,Math.floor(t.length/v)),r=[],o=0;o<v;o+=1)r.push(t[o*n]);return[r[0]].concat(r,[r[r.length-1]])}}return s};function Ce(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 Se(e){var n,r=e.cm,o=e.defaults,i=e.index,a=e.input,u=e.pic;if(!a||!a.on)return null;var l=null!==(n=a.mode)&&void 0!==n?n:\"primary\";return\"primary\"===l?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\"===l?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,u,o):null}function De(e){e.measureOverrides.every((function(e){return!e}))&&(e.measureOverrides=null)}function Ie(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 u=n.indexOf(i);-1===u?(n.push(i),r.push(a.primary)):r[u]=a.primary,e[i]=null}else if(a){o.push(i);var l=n.indexOf(i);-1!==l&&(n.splice(l,1),r.splice(l,1))}}return{domain:n,range:r,exclude:o}}function Ee(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?Ce:i,u=n.input.byMeasureDef||{activeMeasureIndex:0},l=a(n,u),c=ke(0,{theme:r,hc:o},n,{f:l});if(c.invalid)return c;(\"expression\"===u.type||u.activeMeasureIndex<0)&&(c.label=u.label,l&&\"color.altLabel\"===l.raw().labelExpRef&&(c.label=n.input.altLabel)),!c.label&&l&&(c.label=l.title());var s=u.activeMeasureIndex>=0?l:null;if(!s&&l&&void 0!==l.raw().matchMeasure&&l.raw().matchMeasure>-1&&(s=n.pic.fields().filter((function(e){return\"measure\"===e.type()}))[l.raw().matchMeasure]),n.input.useMeasureGradient&&\"libraryItem\"===u.type)if(s){var f=s.raw().coloring;f&&f.gradient&&x(c,we(e,f.gradient,c,s))}else c.auxiliary=u;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?k:o,a=r.getCByField,u=void 0===a?C:a,l=r.getPersistence,c=void 0===l?M:l,s=i(t,n),f=u(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 v={mode:\"field\",fieldType:\"dimension\",type:\"categorical\",field:f?f.key():void 0,isFieldLocked:d.qLocked};return(\"expression\"===s.type||s.activeDimensionIndex<0)&&(v.label=s.label,\"color.altLabel\"===d.labelExpRef&&(v.label=n.input.altLabel)),!v.label&&f&&(v.label=f.title()),n.input.dimensionScheme&&(v.palettes={categorical:n.input.dimensionScheme}),n.input.useDimColVal&&\"libraryItem\"===s.type&&(v.auxiliary=s),x(v,c(t,n,s,f,{byRow:w,byElemNo:q})),v}(e,n,t);if(\"byExpression\"===t.input.mode)return function(e,t,n,r){var o=t.hc,i=t.theme,a=t.translator,u=n.pic.field((function(e){return\"colorByExpression\"===e.raw().id}));if(!u||!u.raw().qFallbackTitle&&!n.input.colorExpression||!(Number.isFinite(u.raw().qMin)&&Number.isFinite(u.raw().qMax)||n.input.expressionIsColor))return{mode:\"constant\",type:\"constant\",primary:r.nil};if(n.input.expressionIsColor)return{mode:\"field\",fieldType:\"expression\",field:u?u.key():void 0,type:\"color\"};var l=ke(0,{hc:o,theme:i},n,{f:u});return l.invalid||(l.label=n.input.expressionLabel||a.get(\"Object.ChartTooltip.ColorExpression\")),l}(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,u=n.input.useBaseColors;if((\"byMultiple\"===n.input.mode||\"primary\"===n.input.mode&&\"measure\"===n.input.useBaseColors)&&o.qMeasureInfo.length>1&&(u=\"measure\"),\"measure\"===u){var l=[],c=[];\"measure\"===n.input.useBaseColors&&o.qMeasureInfo.forEach((function(t,n){if(t.baseColor||t.coloring&&t.coloring.baseColor){l.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:l.length?{domain:l,range:c}:void 0}}if(\"dimension\"===u){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 v=r.primary;if(void 0!==n.input.paletteColor)n.input.paletteColor&&(v=e.resolveUIColor(n.input.paletteColor));else{var h=n.input.singleColor;\"number\"!=typeof h||Number.isNaN(h)||(v=[\"#b0afae\",\"#7b7a78\",\"#545352\",\"#4477aa\",\"#7db8da\",\"#b6d7ea\",\"#46c646\",\"#f93f17\",\"#ffcf02\",\"#276e27\",\"#ffffff\",\"#000000\"][h])}return{mode:\"constant\",type:\"constant\",primary:v}}(e,n,t,r)}return{}}function Oe(e,t,n,r){var o,i=Ee(e,t,n,r);return null!==(o=t.input)&&void 0!==o&&o.measureOverrides?(i.measureOverrides=t.input.measureOverrides.map((function(n,o){return Se({cm:e,input:n,defaults:r,index:o,pic:t.pic})})),function(e,t){var n,r,o,i=t.translator;if(De(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=Ie(e.measureOverrides,e.explicit),De(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=Ie(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 Ae(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(x(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=x(!0,{},r.input,i,{auto:!1});var a=n.theme?n.theme.getDataColorPalettes():[];a[0]&&(r.input.dimensionScheme=a[0].key);var u=0;r.input.byDimDef&&+r.input.byDimDef.activeDimensionIndex>=0&&(u=+r.input.byDimDef.activeDimensionIndex),n.hc&&n.hc.qDimensionInfo[u]&&n.hc.qDimensionInfo[u].coloring&&n.hc.qDimensionInfo[u].coloring.colorMapRef&&r.input.byDimDef&&(r.input.byDimDef.type=\"libraryItem\",r.input.byDimDef.key=n.hc.qDimensionInfo[u].coloring.colorMapRef)}null!==(t=r.input.measureOverrides)&&void 0!==t&&t.every((function(e){return!e||!e.on}))&&(r.input=x(!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 we(i,o.coloring.gradient,e,a)}return{}}if(\"dimension\"===e.fieldType){var u={nil:e.nil,others:e.others},l=o[0],c=o[1]?o[1].colorMap:null;if(l){var s=n.picasso.data(\"q\")({data:{qDimensionInfo:[r.pic.field(e.field).raw(),r.pic.field(e.field).raw()],qMeasureInfo:[],qDataPages:l,qInterColumnSortOrder:[0,1],qMode:\"S\"}});u.legendDataset=s}return c?function(e,n,r,o){var i=o.external,a=o.field,u=t({},e);x(u,q(a,a.raw().qCardinal));var l=i.theme?i.theme.getDataColorPalettes()[0]:null;return n.nul&&(u.nil=r.resolveUIColor(n.nul)),n.oth&&(u.others=r.resolveUIColor(n.oth)),n.usePal?(u.palettes={categorical:n.pal},l&&!n.pal&&(u.palettes.categorical=l.key,x(u,q(a)))):!1===n.autoFill&&n.single?u.range=[r.resolveUIColor(n.single)]:n.autoFill&&(l&&(u.palettes={categorical:l.key}),x(u,q(a))),n.colors&&n.colors.length&&(u.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 u=0;u<o.items.length;u++){var l=o.items[u],c=(l.text||l).label;r[c]&&-1===a.indexOf(l.value)&&(a.push(l.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,u)),u}(u,c,i,{external:n,field:r.pic.field(e.field)}):u}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=x(e,Oe(this,r,n,e))}return r.settings}};return i}var Ne=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},Pe=function(e){throw e.isHandled=!0,e},Le=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()},Te=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()},je=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(Pe)}return Promise.reject()};function Fe(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 Re(e){return function(t){return\"object\"===r(t.datum[e])?t.datum[e].value:void 0}}function He(e){return\"object\"===r(e.datum.isNull)?e.datum.isNull.value:-2===e.datum.value}function Ve(e){return-3===e.datum.value}var ze=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\"},_e=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 Be(e,t){var n=e.styleReference,r=e.chart,o=e.rtl,i=t.legendProps,a=t.coloring,u=t.theme,l=t.hc;return{layout:{minimumLayoutMode:\"MEDIUM\",dock:ze(i,r,o)},show:\"function\"==typeof i.show?function(){return _e(i,l,a)}:_e(i,l,a),renderer:\"svg\",mounted:function(e){e.childNodes[0].style.pointerEvents=\"none\",e.style.overflow=\"hidden\"},settings:{title:{show:!1!==i.showTitle,wordBreak:\"break-word\",maxLines:2,lineHeight:1.2,text:a.label||\"\",fill:u?u.getStyle(n,\"legend.title\",\"color\"):void 0,fontSize:u?u.getStyle(n,\"legend.title\",\"fontSize\"):\"16px\",fontFamily:u?u.getStyle(n,\"legend.title\",\"fontFamily\"):\"'Source Sans Pro', 'Arial', 'sans-serif'\"}}}}function Ye(e,n,r){return\"categorical\"===n.coloring.type?function(e,n,r){var o=Be(e,n);if(!o.show)return!1;var i,a=e.key,u=e.styleReference,l=e.viewState,c=e.rtl,s=e.settings,f=e.style,d=n.scaleKey,p=n.theme,v=n.scales,h=o.layout.dock,m=\"left\"===h||\"right\"===h?{maxLines:3,wordBreak:\"break-word\"}:{},y={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 g=\"\".concat(d,\"Legend\");return x(!0,o,{type:\"legend-cat\",key:\"\".concat(a,\"-cat\"),scale:g in v?g:d,settings:{layout:{scrollOffset:function(){return l?l.get(\"legendScrollOffset\"):void 0},size:-1!==[\"top\",\"bottom\"].indexOf(o.layout.dock)?2:1,direction:c?\"rtl\":\"ltr\",horizontal:20},item:{show:i,label:t({fill:p?p.getStyle(u,\"legend.label\",\"color\"):void 0,fontSize:p?p.getStyle(u,\"legend.label\",\"fontSize\"):void 0,fontFamily:p?p.getStyle(u,\"legend.label\",\"fontFamily\"):\"'Source Sans Pro', 'Arial', 'sans-serif'\"},m)},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:y[n]})])])}}}},brush:{consume:[{context:\"selection\",data:[\"\",a],style:{inactive:{opacity:.3}}}]}},{settings:s,style:f})}(e,n,r):\"continuous\"===n.coloring.type&&function(e,t){var n=e.key,r=e.styleReference,o=e.rtl,i=e.settings,a=e.style,u=t.scaleKey,l=t.theme,c=Be(e,t);return!!c.show&&x(!0,c,{type:\"legend-seq\",key:\"\".concat(n,\"-seq\"),settings:{fill:u,major:\"\".concat(u,\"Range\"),length:1,tick:{fill:l?l.getStyle(r,\"legend.label\",\"color\"):void 0,fontSize:l?l.getStyle(r,\"legend.label\",\"fontSize\"):void 0,fontFamily:l?l.getStyle(r,\"legend.label\",\"fontFamily\"):\"'Source Sans Pro', 'Arial', 'sans-serif'\"},title:{anchor:!o||\"top\"!==c.layout.dock&&\"bottom\"!==c.layout.dock?void 0:\"right\",padding:parseFloat(c.settings.title.fontSize)||16}}},{settings:i,style:a})}(e,n)}function Ue(e,t,n){var r=[],o=[],i=Ye(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,u=(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!=u&&null!==(o=u.interact)&&void 0!==o&&o.enabled&&!u.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 Ke=function(e){return\"rgba(\".concat([(16711680&e)>>16,(65280&e)>>8,255&e,((4278190080&e)>>>24)/255].join(\",\"),\")\")};function Ge(e){var n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.auto,n=Ae(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 Le(e,{layout:n,app:r})})).getMeasure((function(e,t){var n=t.layout,r=t.app;return Te(e,{layout:n,app:r})})).getAttributeDimension((function(e,t){var n=t.layout,r=t.model,o=t.app;return je(e,{layout:n,model:r,app:o})}));return n.getSnapshotData=Ne,n}({resources:e}),r={},o={},i=function(e){return o.settings||(e||console.warn(\"settings() called before auxiliarySettings()\"),o.settings=n.settings()),o.settings},u={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),u):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 u=n.palettes.metric||t.measureScheme,l=r.getDataColorScales().filter((function(e){return e.key===u}))[0];if(l){var s=l.colors[0]?l.colors:[[]].concat(c(l.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,u=e.picasso,l={},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=Fe({hc:n,source:a,coloring:r}).data;if(r.legendDataset){var v=0,h={};u.data(\"q\")({data:n}).extract({field:r.field,trackBy:r.valueAccessor,reduce:function(e){var t=e[0];return h[t]=v++,e[0]}}),d={source:\"attrDim\",extract:{field:\"qDimensionInfo/0\",filter:function(e){return e.qElemNumber>=0},props:{row:{value:function(e){return h[e.qElemNumber]}}}}}}var m={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}};l[s]=m,d&&(l[\"\".concat(s,\"Legend\")]=t(t({},m),{},{data:d})),n&&n.qHasOtherValues&&d&&((d||m.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};l[s]=x({},y,{type:\"categorical\"===r.type?\"threshold-color\":\"sequential-color\",range:r.range,domain:r.domain,invert:r.reverse}),\"sequential-color\"===l[s].type&&(l[\"\".concat(s,\"Range\")]=x({},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\"};l[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\"};l[s]=b}}return l}({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=Re(r),i=Re(\"\".concat(r,\"IsAnOther\")),a=function(e,t){var r=e.fieldType,a=e.invalid,u=e.mode,l=e.nil,c=e.others,s=e.primary,f=e.type;return a?function(e){return Ve(e)||i(e)?c:l}:n[t]?function(e){return Ve(e)?c:He(e)||-2===o(e)&&\"dimension\"===r||\"NaN\"===o(e)?l:i(e)?c:e.resources.scale(t)(o(e))||c}:\"constant\"===u?function(e){return Ve(e)||i(e)?c:He(e)?l:s}:\"color\"===f?function(e){return Ve(e)||i(e)?c:He(e)?l:o(e)||c}:null},u=a(t,r);if(t.measureOverrides){var l=Re(\"\".concat(r,\"MeasureIdx\")),c=t.measureOverrides.map((function(e){return e&&a(e)}));return function(e){var t=l(e);return c[t]?c[t](e):u(e)}}return u}({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,u=e.key,l=e.addMeasureIx,c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,s=u,f=o.nil;\"field\"===o.mode&&o.field?t=o.field:i[u]&&\"field\"===o.mode&&(t=i[u].data.field||o.field),t?(n={field:t,reduce:\"first\"},\"color\"===o.type&&(n.value=function(e){return\"NaN\"!==e.qNum?Ke(e.qNum):e.qText&&B(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)}}),l&&(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,u=e.rtl,l=e.styleReference,c=void 0===l?\"object.legend\":l,s=e.settings,f=void 0===s?{}:s,d=e.style,p=void 0===d?{}:d,v=arguments.length>1?arguments[1]:void 0;return Ue({eventName:t,key:n,rtl:u,viewState:o,chart:a,styleReference:c,settings:f,style:p},{legendProps:r.legendProps,scaleKey:r.key,coloring:i(),theme:r.theme,hc:r.hc,scales:this.scales()},v)}};return u}var We=function(e){return e.baseColor||e.coloring&&e.coloring.baseColor};function $e(e){var t=e.qHyperCube,n=t.qDimensionInfo,r=t.qMeasureInfo,o=n.some(We),i=r.some(We),a=e.color.useBaseColors;return\"measure\"===a&&!i||\"dimension\"===a&&!o?\"off\":a}function Xe(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 Je=function(e){return e.baseColor||e.coloring&&e.coloring.baseColor};function Ze(e){var t,n=e.qHyperCube.qDimensionInfo.some(Je),r=e.qHyperCube.qMeasureInfo.some(Je),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 Qe=function(){};function et(e){var n,r,o,i,a=e.picasso,u=e.model,l=e.app,c=e.translator,s=e.layoutService,f=void 0===s?void 0:s,d=e.createConfig,p=void 0===d?Qe:d,v=e.config,h=void 0===v?{}:v,m=e.custom,y=void 0===m?{}:m,g=h.localeInfo,b=h.key,x=h.theme,q=void 0===x?void 0:x,w=h.auto,M=void 0===w?void 0:w,k=h.definitionPath,C=null==f||null===(n=f.getLayout)||void 0===n?void 0:n.call(f),S={theme:q,key:b,localeInfo:g,layout:C,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:C?$e(C):void 0})},D=Ge({picasso:a,model:u,app:l,translator:c,auto:M});!1!==M&&D.auto((function(e){return M?M({layout:e,defaultAuto:Ze}):Ze(e)}));var I=!1,E={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:$e}),o=Xe(S,r);D.config(o);var i=D.getAuxiliarySettings(k).then((function(){I=!0}));return i}};return E}function tt(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 nt=[{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 rt(e){var t=e.width,n=e.height,r=nt.filter((function(e){return t>=e.size.width&&n>=e.size.height})).shift();return r?r.key:\"SPARK\"}var ot={left:\"right\",right:\"left\",top:\"bottom\",bottom:\"top\",near:\"far\",far:\"near\"};function it(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?ot[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:ot[i],start:a,end:ot[a]}}function at(e){var n=e.chart,r=e.layoutService,o=e.config,i=void 0===o?{}:o,a=i.logicalSize,u=void 0!==a&&a,l=i.rtl,c=void 0!==l&&l,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=rt(e);var t=it({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=it({orientation:\"vertical\",dock:r.getLayoutValue(\"yAxis.dock\"),btt:!0,rtl:c}),a=i.current,u=i.opposite;s.y.dock=a,s.y.opposite=u,s.y.size=e.height}};return f.update(tt({chart:n,logicalSize:u})),f}var ut=\"vertical\",lt=\"horizontal\";function ct(e){var n=e.chart,r=e.layoutService,o=e.config,i=void 0===o?{}:o,a=e.typeConfig,u=void 0===a?{}:a,l=i.logicalSize,c=void 0!==l&&l,s=i.rtl,f=void 0!==s&&s,d=u.fallback===ut?ut:lt,p=!!u.invert,v=u.measureAxes||[{ref:\"measureAxis\",name:\"minor\"}],h={chart:{orientation:void 0,size:void 0,mode:void 0},major:{orientation:void 0,dock:void 0,opposite:void 0,size:void 0}},m={type:\"major-minor\",config:t({},i),meta:h,update:function(e){h.chart.orientation=r.getLayoutValue(\"orientation\",d),h.chart.size={width:e.width,height:e.height},h.chart.mode=rt(e),h.major.orientation=function(e){var t=e.layoutService,n=e.chartOrientation,r=e.invert;return t.meta.isContinuous?lt:r?n===ut?lt:ut:n}({layoutService:r,chartOrientation:h.chart.orientation,invert:p});var t=it({orientation:h.major.orientation,dock:r.getLayoutValue(\"dimensionAxis.dock\"),btt:!1,rtl:f}),n=t.current,o=t.opposite;h.major.dock=n,h.major.opposite=o,h.major.size=h.major.orientation===ut?e.height:e.width,v.forEach((function(t){var n={};n.orientation=h.major.orientation===ut?lt:ut;var o=it({orientation:n.orientation,dock:r.getLayoutValue(\"\".concat(t.ref,\".dock\")),btt:!0,rtl:f}),i=o.current,a=o.opposite,u=o.start,l=o.end;n.dock=i,n.opposite=a,n.start=u,n.end=l,n.size=n.orientation===ut?e.height:e.width,h[t.name]=n}))}};return m.update(tt({chart:n,logicalSize:c})),m}function st(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?at:ct)({chart:t,layoutService:n,config:o,typeConfig:a})}function ft(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}function dt(e,t,n){if(void 0!==e&&void 0!==t){for(var r=t.split(\".\"),o=r[r.length-1],i=e,a=0;a<r.length-1;++a){var u=r[a];void 0===i[u]&&(i[u]=Number.isNaN(+r[a+1])?{}:[]),i=i[u]}void 0!==n?i[o]=n:delete i[o]}}function pt(){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 vt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){return e},n=pt();return function(r){var o=t(r);return n.has(o)?n.get(o):n.set(o,e(r))}}function ht(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 mt(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 u=function(){return e.apply(r,i)};clearTimeout(t),t=setTimeout(u,n)}}function yt(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,u=new Array(a),l=0;l<a;l++)u[l]=arguments[l];n=u;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 gt={ERROR_CODES:[7005],DIMENSION:\"qDimensionInfo\",MEASURE:\"qMeasureInfo\"},bt=function(e,t){return e[t].reduce((function(e,t,n){var r;return(r=t,gt.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 xt(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,u=void 0===a?0:a,l=r.qSelected;return i+u+(void 0===l?0:l)}))}function qt(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:xt(e)}}}(e);case\"K\":return function(e){var t=xt(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=xt(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 wt(e){var n=e.source,r=e.metaAdditionsFn,o=e.experimental,i=void 0===o?{filter:!1}:o,a=x(!0,{},n),u=i.filter?function(e){var t=e.qHyperCube,n=bt(t,gt.DIMENSION),r=n.reduced,o=n.filtered;t[gt.DIMENSION]=r;var i=bt(t,gt.MEASURE),a=i.reduced,u=i.filtered;return t[gt.MEASURE]=a,{dimensions:o,measures:u}}(a):{dimensions:[],measures:[]},l=qt(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,u=n.qHyperCube,l=u.qDimensionInfo,c=u.qMeasureInfo,s=u.qMode,f=l.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:l.size}});return e.filteredFields=u,e},s={refs:t({},l.refs),meta:c(),getLayout:function(){return a},getLayoutValue:function(e,t){return ft(a,e,t)},setLayoutValue:function(e,t){dt(a,e,t),l=qt(a),s.meta=c()},getHyperCube:function(){return a.qHyperCube},getHyperCubeValue:function(e,t){return ft(a.qHyperCube,e,t)},setHyperCubeValue:function(e,t){dt(a.qHyperCube,e,t),l=qt(a),s.meta=c()},getDataPages:function(){return ft(a,l.refs.dataPages)},setDataPages:function(e){dt(a,l.refs.dataPages,e),s.meta=c()}};return s}function Mt(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 kt(e){var o=e.picassoInstance,a=e.plugins,u=e.pluginArgs,s=void 0===u?{}:u,f={initialized:!1,definitions:[]};return{initialize:function(){return i(n().mark((function e(){var u,l,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 l=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([l,d]);case 6:p=e.sent,f.initialized=!0,(u=f.definitions).push.apply(u,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=l(e.filter((function(e){return e.key&&e.key===t.key})),1)[0];if(n){var o=x(!0,{},n.brush);x(!0,n,t),t.brush&&(n.brush=function(e,t){return\"object\"===r(e)&&Object.keys(e).length?(Array.isArray(t.consume)&&(e.consume=Mt({originalArray:e.consume,newArray:t.consume,matchKey:\"context\"})),Array.isArray(t.trigger)&&(e.trigger=Mt({originalArray:e.trigger,newArray:t.trigger,matchKey:\"on\"})),e):t}(o,t.brush))}else e.push(t)})),e):e}}}function Ct(e){return Ct=\"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},Ct(e)}function St(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function Dt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function It(e,t,n){return t&&Dt(e.prototype,t),n&&Dt(e,n),e}function Et(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ot(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 At(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ot(Object(n),!0).forEach((function(t){Et(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ot(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Nt(e,t){return Nt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Nt(e,t)}function Pt(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function Lt(e,t,n){return Lt=Pt()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&Nt(o,n.prototype),o},Lt.apply(null,arguments)}function Tt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(\"undefined\"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==u.return||u.return()}finally{if(o)throw i}}return n}(e,t)||Ft(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 jt(e){return function(e){if(Array.isArray(e))return Rt(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||Ft(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 Ft(e,t){if(e){if(\"string\"==typeof e)return Rt(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)?Rt(e,t):void 0}}function Rt(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}var Ht=Object.prototype.hasOwnProperty,Vt=Object.prototype.toString,zt=Object.defineProperty,_t=Object.getOwnPropertyDescriptor,Bt=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===Vt.call(e)},Yt=function(e){if(!e||\"[object Object]\"!==Vt.call(e))return!1;var t,n=Ht.call(e,\"constructor\"),r=e.constructor&&e.constructor.prototype&&Ht.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!r)return!1;for(t in e);return void 0===t||Ht.call(e,t)},Ut=function(e,t){zt&&\"__proto__\"===t.name?zt(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},Kt=function(e,t){if(\"__proto__\"===t){if(!Ht.call(e,t))return;if(_t)return _t(e,t).value}return e[t]},Gt=function e(){var t,n,r,o,i,a,u=arguments[0],l=1,c=arguments.length,s=!1;for(\"boolean\"==typeof u&&(s=u,u=arguments[1]||{},l=2),(null==u||\"object\"!=typeof u&&\"function\"!=typeof u)&&(u={});l<c;++l)if(null!=(t=arguments[l]))for(n in t)r=Kt(u,n),u!==(o=Kt(t,n))&&(s&&o&&(Yt(o)||(i=Bt(o)))?(i?(i=!1,a=r&&Bt(r)?r:[]):a=r&&Yt(r)?r:{},Ut(u,{name:n,newValue:e(s,a,o)})):void 0!==o&&Ut(u,{name:n,newValue:o}));return u};function Wt(e,t,n){if(!e)return-1;var r=n.cache,o=e.origin?e.origin():null;o&&(e=o);var i=r.fields.indexOf(e),a=-1,u=-1;if(-1===i)for(var l=0;l<r.wrappedFields.length;l++)if(u=r.wrappedFields[l].attrDims.map((function(e){return e.instance})).indexOf(e),a=r.wrappedFields[l].attrExps.map((function(e){return e.instance})).indexOf(e),-1!==u||-1!==a){i=l;break}return(i-=t.qArea.qLeft)<0||i>=t.qArea.qWidth?-1:u>=0?function(e){return e[i].qAttrDims.qValues[u]}:a>=0?function(e){return e[i].qAttrExps.qValues[a]}:function(e){return e[i]}}function $t(e,t,n){var r=n.key,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 Xt(e){var t=e.cache,n=e.f,r=e.mainCell,o=e.p;e.prop;var i=e.page,a=e.rowIdx,u=e.row,l=e.sourceKey,c=e.target,s=e.targetProp,f=r;if(o.field&&o.field!==n){var d=Wt(o.field,i,{cache:t});if(-1===d)return;f=Gt({qRow:a},d(u))}c[s]=$t(o,f,{key:l})}function Jt(e,t,n,r){for(var o=Array.isArray(e)?e:[e],i=[],a=0;a<o.length;a++)if(void 0!==o[a].field){for(var u=t.raw(),l=t.key(),c=\"object\"===Ct(o[a].field)?o[a].field:t.field(o[a].field),s=r.normalizeConfig(o[a],t),f=s.props,d=s.main,p=Object.keys(f),v=!!o[a].trackBy,h=Ct(o[a].trackBy),m={},y=[],g=[],b=0;b<u.qDataPages.length;b++){var x=Wt(c,u.qDataPages[b],{cache:n});if(-1!==x)for(var q=0;q<u.qDataPages[b].qMatrix.length;q++){var w=u.qDataPages[b].qArea.qTop+q,M=Gt({qRow:w},x(u.qDataPages[b].qMatrix[q])),k=$t(d,M,{key:l});if(!(d.filter&&!d.filter(M))){for(var C=0;C<p.length;C++){var S=f[p[C]],D=S.fields||[S];S.fields&&(k[p[C]]=[]);for(var I=0;I<D.length;I++)Xt({cache:n,f:c,mainCell:M,p:D[I],prop:p[C],props:f,page:u.qDataPages[b],rowIdx:w,row:u.qDataPages[b].qMatrix[q],sourceKey:l,target:S.fields?k[p[C]]:k,targetProp:S.fields?I:p[C]});if(S.fields){var E=k[p[C]].map((function(e){return e.value})),O=k[p[C]].map((function(e){return e.label}));k[p[C]]={value:\"function\"==typeof S.value?S.value(E):void 0!==S.value?S.value:E,label:\"function\"==typeof S.label?S.label(O):void 0!==S.label?String(S.label):String(k[p[C]].value)}}}v&&r.track({cfg:o[a],itemData:M,obj:k,target:y,tracker:m,trackType:h}),g.push(k)}}}v?i.push.apply(i,jt(r.collect(y,{main:d,propsArr:p,props:f}))):i.push.apply(i,g)}return i}function Zt(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 Qt(e,t){var n,r,o,i,a,u=new rn(e),l=+e.value&&(u.value=e.value),c=[u];for(null==t&&(t=en);n=c.pop();)if(l&&(n.value=+n.data.value),(o=t(n.data))&&(a=o.length))for(n.children=new Array(a),i=a-1;i>=0;--i)c.push(r=n.children[i]=new rn(o[i])),r.parent=n,r.depth=n.depth+1;return u.eachBefore(nn)}function en(e){return e.children}function tn(e){e.data=e.data.data}function nn(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function rn(e){this.data=e,this.depth=this.height=0,this.parent=null}function on(e){if(\"function\"!=typeof e)throw new Error;return e}rn.prototype=Qt.prototype={constructor:rn,count:function(){return this.eachAfter(Zt)},each:function(e){var t,n,r,o,i=this,a=[i];do{for(t=a.reverse(),a=[];i=t.pop();)if(e(i),n=i.children)for(r=0,o=n.length;r<o;++r)a.push(n[r])}while(a.length);return this},eachAfter:function(e){for(var t,n,r,o=this,i=[o],a=[];o=i.pop();)if(a.push(o),t=o.children)for(n=0,r=t.length;n<r;++n)i.push(t[n]);for(;o=a.pop();)e(o);return this},eachBefore:function(e){for(var t,n,r=this,o=[r];r=o.pop();)if(e(r),t=r.children)for(n=t.length-1;n>=0;--n)o.push(t[n]);return this},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(){var e=[];return this.each((function(t){e.push(t)})),e},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 Qt(this).eachBefore(tn)}};var an={depth:-1},un={};function ln(e){return e.id}function cn(e){return e.parentId}function sn(e,t){\"/\"===e.charAt(0)&&(e=e.substring(1));for(var n,r=e.split(\"/\"),o=t,i=0;i<r.length;i++){if(\"*\"===r[i]&&Array.isArray(o)){var a=[];n=r.slice(i+1).join(\"/\");for(var u=0;u<o.length;u++){var l=sn(n,o[u]);Array.isArray(l)?a.push.apply(a,jt(l)):a.push(l)}return a}if(!r[i]&&Array.isArray(o)){var c=new Array(o.length);n=r.slice(i+1).join(\"/\");for(var s=0;s<o.length;s++)c[s]=sn(n,o[s]);return c}r[i]in o&&(o=o[r[i]])}return o}function fn(e,t,n){var r=[];if(!e||!e.length)return r;if(t<=0){var o=n>=0?[e[n]]:e;r.push.apply(r,jt(o))}else for(var i=0;i<e.length;i++)e[i].children&&e[i].children.length&&r.push.apply(r,jt(fn(e[i].children,t-1,n)));return r}function dn(e,t,n){if(e===t)return function(e){return e};if(e>t){var r=Math.max(0,Math.min(100,e-t)),o=jt(Array(r)).map(String.prototype.valueOf,\"parent\").join(\".\");return Function(\"node\",\"return node.\".concat(o,\";\"))}if(t>e){var i=Math.max(0,Math.min(100,t-e));return function(e){return fn(e.children,i-1,n)}}return!1}function pn(e,t){var n=t.cache;if(\"number\"==typeof e)return n.fields[e];var r=n.allFields;if(\"function\"==typeof e){for(var o=0;o<r.length;o++)if(e(r[o]))return r[o];return!1}if(\"string\"==typeof e){for(var i=0;i<r.length;i++)if(r[i].key()===e||r[i].title()===e)return r[i]}else if(e&&-1!==r.indexOf(e))return e;throw Error(\"Field not found: \".concat(e))}var vn=/^qDimensionInfo(?:\\/(\\d+))?/,hn=/^\\/?qMeasureInfo\\/(\\d+)/,mn=/\\/qAttrExprInfo\\/(\\d+)/,yn=/\\/qAttrDimInfo\\/(\\d+)/;function gn(e){return(e.qColumnOrder&&e.qColumnOrder.length?e.qColumnOrder:e.qDimensionInfo.map((function(e,t){return t}))).filter((function(t){return t<e.qDimensionInfo.length}))}function bn(e,t){var n=t.cube;if(!e)return-1;var r=e.origin&&e.origin()?e.origin().key():e.key(),o=!1,i=-1,a=-1,u=-1,l=-1,c=-1,s=r,f=n.qEffectiveInterColumnSortOrder,d=gn(n);return vn.test(s)&&(o=!0,i=+vn.exec(s)[1],s=r.replace(vn,\"\")),hn.test(s)&&(\"K\"===n.qMode?l=+hn.exec(s)[1]:f&&-1!==f.indexOf(-1)?(l=+hn.exec(s)[1],c=0):c=+hn.exec(s)[1],s=s.replace(hn,\"\")),s&&(yn.exec(s)?u=+yn.exec(s)[1]:mn.exec(s)&&(a=+mn.exec(s)[1])),{fieldDepth:(o?\"S\"===n.qMode?d[i]:f?f.indexOf(i):i:f&&-1!==f.indexOf(-1)?f.indexOf(-1):n.qDimensionInfo.length-(\"K\"===n.qMode?0:1))+1,pseudoMeasureIndex:l,measureIdx:c,attrDimIdx:u,attrIdx:a}}function xn(e,t){var n,r,o=dn(e.fieldDepth,t.fieldDepth,t.pseudoMeasureIndex);return n=t.measureIdx>=0?function(e){return e.data.qValues[t.measureIdx]}:function(e){return e.data},t.attrDimIdx>=0?r=function(e){var n;return null==e||null===(n=e.qAttrDims)||void 0===n?void 0:n.qValues[t.attrDimIdx]}:t.attrIdx>=0&&(r=function(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 qn(e,t,n){var r=n.key,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 wn(e){for(var t=e.propsArr,n=e.props,r=e.item,o=e.itemData,i=e.ret,a=e.sourceKey,u=0;u<t.length;u++){var l=n[t[u]],c=l.fields||[l],s=void 0,f=void 0;l.fields&&(s=[],f=[]);for(var d=function(e){var n=c[e],d=void 0,p=void 0,v=void 0,h=void 0,m=void 0,y=void 0;if(\"primitive\"===n.type?(v=n.value,y=String(n.value)):(\"function\"==typeof n.value&&(d=function(e){return n.value(e,r)}),\"function\"==typeof n.label&&(p=function(e){return n.label(e,r)}),n.accessor?(h=n.accessor(r),Array.isArray(h)?(m=h.map(n.valueAccessor),n.attrAccessor&&(m=m.map(n.attrAccessor)),d&&(v=m.map(d),d=null),p&&(y=m.map(p),p=null),v=n.reduce?n.reduce(v):v,y=n.reduceLabel?n.reduceLabel(y,v):String(v)):y=v=n.attrAccessor?n.attrAccessor(n.valueAccessor(h)):n.valueAccessor(h)):(v=o,y=o)),l.fields){var g=d?d(v):v;s.push(g),f.push(p&&null!=y?p(y):null!=y?y:String(g))}else{var b=d?d(v):v;i[t[u]]={value:b,label:p?p(y):null!=y?y:String(b)},n.field&&(i[t[u]].source={field:n.field.key(),key:a})}},p=0;p<c.length;p++)d(p);s&&(i[t[u]]={value:\"function\"==typeof l.value?l.value(s,r):s,label:\"function\"==typeof l.label?l.label(f,r):f})}}var Mn=function(e,t,n){var r=\"K\"===e.qMode?\"/qStackedDataPages/*/qData\":\"/qTreeDataPages/*\",o=\"K\"===e.qMode?\"qSubNodes\":\"qNodes\",i=sn(r,e);return i&&i[0]?(t.tree=Qt(i[0],n.children||function(e){return e[o]}),t.tree):null};function kn(e){for(var t=e.raw().qDataPages.length?e.raw().qDataPages[0].qMatrix:[],n=function(e){var t=e.raw().qColumnOrder,n=e.fields();return t&&t.length===n.length?t:n.map((function(e,t){return t}))}(e),r=e.fields(),o=e.fields().filter((function(e){return\"dimension\"===e.type()})).map((function(e){return n.indexOf(r.indexOf(e))})),i=e.fields().filter((function(e){return\"measure\"===e.type()})).map((function(e){return n.indexOf(r.indexOf(e))})),a={__root:{__id:\"__root\",qValues:[]}},u=0;u<t.length;u++){for(var l=t[u],c=\"__root\",s=!1,f=0;f<o.length;f++){var d=l[o[f]],p=\"\".concat(c,\"__\").concat(d.qText);a[p]||(a[p]=At({__id:p,__parent:c,qValues:[]},d),s=!0),c=p}if(s)for(var v=0;v<i.length;v++){var h=l[i[v]];a[c].qValues.push(h)}}var m=Object.keys(a).map((function(e){return a[e]})),y=function(){var e=ln,t=cn;function n(n){var r,o,i,a,u,l,c,s=n.length,f=new Array(s),d={};for(o=0;o<s;++o)r=n[o],u=f[o]=new rn(r),null!=(l=e(r,o,n))&&(l+=\"\")&&(d[c=\"$\"+(u.id=l)]=c in d?un:u);for(o=0;o<s;++o)if(u=f[o],null!=(l=t(n[o],o,n))&&(l+=\"\")){if(!(a=d[\"$\"+l]))throw new Error(\"missing: \"+l);if(a===un)throw new Error(\"ambiguous: \"+l);a.children?a.children.push(u):a.children=[u],u.parent=a}else{if(i)throw new Error(\"multiple roots\");i=u}if(!i)throw new Error(\"no root\");if(i.parent=an,i.eachBefore((function(e){e.depth=e.parent.depth+1,--s})).eachBefore(nn),i.parent=null,s>0)throw new Error(\"cycle\");return i}return n.id=function(t){return arguments.length?(e=on(t),n):e},n.parentId=function(e){return arguments.length?(t=on(e),n):t},n}().id((function(e){return e.__id})).parentId((function(e){return e.__parent}))(m);return y}var Cn=function(e){for(var t=e.propsArr,n=e.props,r=e.cube,o=e.cache,i=e.itemDepthObject,a=e.f,u=0;u<t.length;u++)for(var l=n[t[u]],c=l.fields?l.fields:[l],s=0;s<c.length;s++){var f=c[s];if(f.field!==a){var d=xn(i,bn(f.field,{cube:r,cache:o}));f.accessor=d.nodeFn,f.valueAccessor=d.valueFn,f.attrAccessor=d.attrFn}}};function Sn(){var 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,o=t.raw(),i=t.key(),a=\"S\"===o.qMode?kn(t):Mn(o,n,e);if(!a)return null;for(var u=a.height,l=[],c=0;c<=u;c++){var s=null;if(c>0)if(\"S\"===o.qMode){var f=gn(o),d=f[c-1];s=n.fields[d]}else{var p=o.qEffectiveInterColumnSortOrder[c-1];c>o.qEffectiveInterColumnSortOrder.length&&(p=o.qDimensionInfo.length),s=n.fields[p]}var v=r.normalizeConfig(At(At({},e),{},{field:s?s.key():void 0}),t),h=v.props,m=v.main,y=Object.keys(h);l[c]={propsArr:y,props:h,main:m};var g=s?bn(s,{cube:o,cache:n}):{fieldDepth:0};Cn({propsArr:y,props:h,cube:o,cache:n,itemDepthObject:g,f:s})}for(var b=a.copy(),x=b.descendants(),q=a.descendants(),w=0;w<q.length;w++){var M=l[q[w].depth].propsArr,k=l[q[w].depth].props,C=l[q[w].depth].main,S=x[w],D=S.data,I=qn(C,D,{key:i});wn({propsArr:M,props:k,item:S,itemData:D,ret:I,sourceKey:i,isTree:!0}),q[w].data=I}return a}function Dn(e,t,n,r){for(var o=Array.isArray(e)?e:[e],i=[],a=0;a<o.length;a++)if(void 0!==o[a].field){var u=t.raw(),l=t.key();if(!Mn(u,n,e))continue;var c=\"object\"===Ct(o[a].field)?o[a].field:t.field(o[a].field),s=r.normalizeConfig(o[a],t),f=s.props,d=s.main,p=Object.keys(f),v=bn(c,{cube:u,cache:n}),h=xn({fieldDepth:0},v),m=h.nodeFn,y=h.attrFn,g=h.valueFn;Cn({propsArr:p,props:f,cube:u,cache:n,itemDepthObject:v,f:c});for(var b=!!o[a].trackBy,x=Ct(o[a].trackBy),q={},w=[],M=m(n.tree),k=[],C=0;C<M.length;C++){var S=M[C],D=y?y(g(S)):g(S);if(!(d.filter&&!d.filter(D))){var I=qn(d,D,{key:l});wn({propsArr:p,props:f,item:S,itemData:D,ret:I,sourceKey:l}),b&&r.track({cfg:o[a],itemData:D,obj:I,target:w,tracker:q,trackType:x}),k.push(I)}}b?i.push.apply(i,jt(r.collect(w,{main:d,propsArr:p,props:f}))):i.push.apply(i,k)}return i}\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;var In,En,On=(In=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,u,l,c,s,f,d=e.length,p=e.search(/[0-9\\-\\+#]/),v=p>0?e.substring(0,p):\"\",h=e.split(\"\").reverse().join(\"\"),m=h.search(/[0-9\\-\\+#]/),y=d-m,g=e.substring(y,y+1),b=y+(\".\"===g||\",\"===g?1:0),x=m>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))+\"\",u=e[1]&&e[1].lastIndexOf(\"0\"),(!(c=t.split(\".\"))[1]||c[1]&&c[1].length<=u)&&(t=(+t).toFixed(u+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],l=s[1]&&s[s.length-1].length){for(h=\"\",y=(f=t[0]).length%l,d=f.length,b=0;b<d;b++)h+=f.charAt(b),!((b-y+1)%l)&&b<d-l&&(h+=i);t[0]=h}return t[1]=e[1]&&t[1]?o+t[1]:\"\",\"0\"!==(r=t.join(\"\"))&&\"\"!==r||(n=!1),v+(n?\"-\":\"\")+r+x}},In(En={exports:{}},En.exports),En.exports);function An(e){return e.replace(/[-[\\]/{}()*+?.\\\\^$|]/g,\"\\\\$&\")}var Nn={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\"},Pn=/%$/,Ln=/^\\(r(0[2-9]|[12]\\d|3[0-6])\\)/i,Tn=/^\\(oct\\)/i,jn=/^\\(dec\\)/i,Fn=/^\\(hex\\)/i,Rn=/^\\(bin\\)/i,Hn=/^\\(rom\\)/i,Vn=/^(\\(rom\\)|\\(bin\\)|\\(hex\\)|\\(dec\\)|\\(oct\\)|\\(r(0[2-9]|[12]\\d|3[0-6])\\))/i,zn=/#|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 Bn(e,t,n){var r;return Ln.test(t)?e=_n(e,Number(/\\d{2}/.exec(t)[0]),t,n):Tn.test(t)?e=_n(e,8,t,n):jn.test(t)?e=_n(e,10,t,n):Fn.test(t)?e=_n(e,16,t,n):Rn.test(t)?e=_n(e,2,t,n):Hn.test(t)&&(r=\"\",e<0&&(r=\"-\",e=-e),0===(e=Math.floor(e))?e=\"0\":e<=5e5?(e=function(e,t){for(var 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(),u=[\"0\",\"I\",\"IV\",\"V\",\"IX\",\"X\",\"XL\",\"L\",\"XC\",\"C\",\"CD\",\"D\",\"CM\"].reverse();o>0;)for(n=0;n<a.length;n++)if(a[n]<=o){r+=u[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 Yn(e,t,n){var r=An(e);return n?r:new RegExp(r||\"\",t)}function Un(e,t,n){var r,o,i,a,u,l,c,s,f,d,p,v=e.pattern;v.indexOf(\"A\")>=0&&(v=v.replace(\"A\",\"\"),e.abbreviate=!0),d=t,(p=n)&&(p=An(p)),d&&(d=An(d)),f=new RegExp(\"(?:[#0]+\".concat(d,\")?[#0]+(?:\").concat(p,\"[#0]+)?\")),a=(i=(i=v.match(f))?i[0]:\"\")?v.substr(0,v.indexOf(i)):v,u=i?v.substring(v.indexOf(i)+i.length):\"\",i||(i=v?\"#\":\"##########\"),t&&t===n&&(o=(r=i.split(n)).pop(),i=r.join(\"\")+n+o,t=\"\"),l=t,t=/,/.test(n)?\"¤\":\",\",l&&(i=i.replace(Yn(l,\"g\"),t)),c=n,n=\".\",c&&(i=i.replace(Yn(c,\"g\"),n)),s=(s=i.match(/#/g))?s.length:0;var h,m=v.split(c);m[1]&&(h=m[1].match(zn)),e.prefix=a||\"\",e.postfix=u||\"\",e.pattern=v,e.maxPrecision=h?h.length:2,e.percentage=Pn.test(v),e.numericPattern=i||\"\",e.numericRegex=new RegExp(\"\".concat(Yn(t,null,!0),\"|\").concat(Yn(n,null,!0)),\"g\"),e.groupTemp=l,e.decTemp=c,e.t=t,e.d=n,e.temp=s}var Kn=function(){function e(t,n,r,o,i){St(this,e),this.localeInfo=t,this.pattern=n,this.thousandDelimiter=r||\",\",this.decimalDelimiter=o||\".\",this.type=i||\"numeric\",this.patternSeparator=\";\",this.abbreviations=function(e,t){if(!e||!e.qNumericalAbbreviation)return Nn;var n={};return e.qNumericalAbbreviation.split(t).forEach((function(e){var t=e.split(\":\");2===t.length&&(n[t[0]]=t[1])})),n}(t,this.patternSeparator),this.prepare()}return It(e,[{key:\"clone\",value:function(){var t=new e(this.localeInfo,this.pattern,this.thousandDelimiter,this.decimalDelimiter,this.type);return t.subtype=this.subtype,t}},{key:\"format\",value:function(e,t,n,r){return this.prepare(t,n,r),this.formatValue(e)}},{key:\"prepare\",value:function(e,t,n){var r;void 0===e&&(e=this.pattern),void 0===t&&(t=this.thousandDelimiter),void 0===n&&(n=this.decimalDelimiter),e?(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],Vn.test(e[0])&&(r.positive.isFunctional=!0),e[1]?Vn.test(e[1])&&(r.negative.isFunctional=!0):r.negative=!1,e[2]?Vn.test(e[2])&&(r.zero.isFunctional=!0):r.zero=!1,r.positive.isFunctional||Un(r.positive,t,n),r.negative&&!r.negative.isFunctional&&Un(r.negative,t,n),r.zero&&!r.zero.isFunctional&&Un(r.zero,t,n)):this._prepared={pattern:!1}}},{key:\"formatValue\",value:function(e){var t,n,r,o,i,a,u,l,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).pattern;if(e<0&&s.negative?(s=s.negative,e=-e):s=s.positive,i=s.d,a=s.t,s.isFunctional)e=Bn(e,s.pattern,i);else{if(s.percentage&&(e*=100),s.abbreviate){var v,h,m=Object.keys(this.abbreviations).map((function(e){return parseInt(e,10)})).sort((function(e,t){return e-t})),y=m[0];for(u=0,n=Number(Number(e).toExponential().split(\"e\")[1]);y<=n&&u<m.length;)y=m[++u];u>0&&(v=m[u-1]),v&&n>0&&v>0?h=v:(n<0&&v<0||!v)&&(y<0&&y-n<=s.maxPrecision?h=y:v<=n&&!(y>0&&-n<=s.maxPrecision)&&(h=v)),h&&(f=this.abbreviations[h],e/=Math.pow(10,h))}if(r=Math.abs(e),t=s.temp,c=(l=s.numericPattern).split(i)[1],\"I\"===this.type&&(e=Math.round(e)),o=e,c||\"#\"!==l.slice(-1)[0])if(r>=1e15||r>0&&r<=1e-14)e=r?r.toExponential(15).replace(/\\.?0+(?=e)/,\"\"):\"0\";else{var g=Number(e.toFixed(Math.min(20,c?c.length:0)).split(\".\")[0]),b=l.split(i)[0];if(e=On(b+=i,g)||\"0\",c){var x=Math.max(0,Math.min(14,c.length)),q=c.replace(/#+$/,\"\").length,w=(\"I\"===this.type?0:r%1).toFixed(x).slice(2).replace(/0+$/,\"\");for(u=w.length;u<q;u++)w+=\"0\";w&&(e+=i+w)}else 0===g&&(o=0)}else if(r>=Math.pow(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(l+=i,t=Math.max(0,Math.min(20,t-Math.ceil(Math.log(r)/Math.log(10)))),u=0;u<t;u++)l+=\"#\";e=On(l,e)}e=e.replace(s.numericRegex,(function(e){return e===a?s.groupTemp:e===i?s.decTemp:\"\"})),o<0&&!/^-/.test(e)&&(e=\"-\".concat(e))}return s.prefix+e+d+f+s.postfix}}],[{key:\"getStaticFormatter\",value:function(){return{prepare:function(){},formatValue:function(e){return\"\".concat(e)}}}}]),e}();function Gn(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.size,i=void 0===o?5e3:o,a=r.multipleArguments,u=void 0!==a&&a,l=r.toKey,c=void 0===l?function(e){return e}:l,s=Object.create(null),f=Object.create(null),d=0,p=0;return t=u?function(){return n=c.apply(void 0,arguments),t.has(n)?t.get(n):t.set(n,e.apply(void 0,arguments))}:function(r){return n=c(r),t.has(n)?t.get(n):t.set(n,e(r))},t.set=function(e,t){return d>=i&&(delete s[f[p]],delete f[p],d--,p++),s[e]=t,f[d]=e,d++,t},t.get=function(e){return s[e]},t.has=function(e){return e in s},t.clear=function(){s=Object.create(null),f=Object.create(null),d=0,p=0},t.size=function(){return d},t}function Wn(e,t,n,r,o){var i=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return Lt(Kn,t)}(o,e,t,n,r),a=Gn(i.formatValue.bind(i),{toKey:function(e){return isNaN(e)?e:+e}});function u(e){return a(e)}return u.format=function(e,t,n,r){return a.clear(),i.format(t,e,n,r)},u.pattern=function(e){return e&&(a.clear(),i.pattern=e,i.prepare()),i.pattern},u}var $n=\"D\",Xn=\"T\",Jn=\"TS\",Zn=\"IV\",Qn=[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",\"Sunday\"],er=[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sun\"],tr=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],nr=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];function rr(e,t){for(var n=e.length;n<t;n++)e=\"0\".concat(e);return e}function or(e){var t=e.toString().split(\".\");return t[1]?t=Number(\"0.\".concat(t[1])):0}function ir(e,t){var n,r=function(e){var t=e,n=24*or(t),r=60*or(n),o=60*or(r),i=1e3*or(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,u=r.s,l=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)||(u+=60*a),/w+/gi.test(t)&&(c=n?n.getDay()-1:0)<0&&(c=6);var s=\"\";return n&&(s=n.getUTCHours()>=12?\"pm\":\"am\"),{year:0,month:0,day:c,date:o,h:i,m:a,s:u,f:l,t:s}}var ar=function(){function e(t,n,r){St(this,e);var o,i=t||{};(i.qCalendarStrings||(i.qCalendarStrings={qLongDayNames:Qn,qDayNames:er,qLongMonthNames:tr,qMonthNames:nr}),this.localeInfo=i,this.locale_days=i.qCalendarStrings.qLongDayNames.slice(),this.locale_days_abbr=i.qCalendarStrings.qDayNames.slice(),this.locale_months=i.qCalendarStrings.qLongMonthNames.slice(),this.locale_months_abbr=i.qCalendarStrings.qMonthNames.slice(),n)||(n=(Et(o={},Xn,i.qTimeFmt||\"hh:mm:ss\"),Et(o,$n,i.qDateFmt||\"YYYY-MM-DD\"),Et(o,Jn,i.qTimestampFmt||\"YYYY-MM-DD hh:mm:ss\"),o)[r]);this.pattern=n}return It(e,[{key:\"clone\",value:function(){var t=new e(this.localeInfo,this.pattern);return t.subtype=this.subtype,t}},{key:\"format\",value:function(e,t){t||(t=this.pattern?this.pattern:\"YYYY-MM-DD hh:mm:ss\"),t=t.replace(/\\[.+]|\\[|]/g,\"\");var n,r,o,i,a,u=/t+/gi.test(t);e instanceof Date?(o=u,i=(r=e).getUTCHours(),a=r.getUTCDay()-1,o&&((i%=12)||(i=12)),a<0&&(a=6),n={year:r.getUTCFullYear(),month:r.getUTCMonth(),day:a,date:r.getUTCDate(),h:i,m:r.getUTCMinutes(),s:r.getUTCSeconds(),f:r.getUTCMilliseconds(),t:r.getUTCHours()>=12?\"pm\":\"am\"}):(e<0&&(e=-e,t=\"-\".concat(t)),n=ir(e,t));var l=function(e,t){return{\"Y+|y+\":{Y:\"\".concat(Number(\"\".concat(t.year).slice(-2))),YY:rr(\"\".concat(t.year).slice(-2),2),YYY:rr(\"\".concat(t.year).slice(-3),3),def:function(e){return rr(\"\".concat(t.year),e.length)}},\"M+\":{M:t.month+1,MM:rr(\"\".concat(t.month+1),2),MMM:e.locale_months_abbr[t.month],def:e.locale_months[t.month]},\"W+|w+\":{W:t.day,WW:rr(\"\".concat(t.day),2),WWW:e.locale_days_abbr[t.day],def:e.locale_days[t.day]},\"D+|d+\":{D:t.date,def:function(e){return rr(\"\".concat(t.date),e.length)}},\"h+|H+\":{h:t.h,def:function(e){return rr(\"\".concat(t.h),e.length)}},\"m+\":{m:t.m,def:function(e){return rr(\"\".concat(t.m),e.length)}},\"s+|S+\":{s:t.s,def:function(e){return rr(\"\".concat(t.s),e.length)}},\"f+|F+\":{def:function(e){var n=\"\".concat(t.f),r=e.length-n.length;if(r>0)for(var o=0;o<r;o++)n+=\"0\";else r<0&&(n=n.slice(0,e.length));return n}},\"t{1,2}|T{1,2}\":{def:function(e){var n=t.t;return e[0].toUpperCase()===e[0]&&(n=n.toUpperCase()),n.slice(0,e.length)}}}}(this,n),c=[];for(var s in l)Object.prototype.hasOwnProperty.call(l,s)&&c.push(s);var f=new RegExp(c.join(\"|\"),\"g\"),d=t.replace(f,(function(e){var t,n,r;for(n in l)if(Object.prototype.hasOwnProperty.call(l,n)&&(t=new RegExp(n)).test(e))break;if(!t)return\"\";for(var o in l[n])if(o===e||o.toLowerCase()===e){void 0===(r=l[n][o])&&(r=l[n][o.toLowerCase()]);break}return void 0===r&&(r=l[n].def),\"function\"==typeof r&&(r=r(e)),r}));return d}}]),e}();function ur(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return Lt(ar,t)}function lr(e){return new Date(Date.UTC(1899,11,30+Math.floor(e),0,0,0,Math.round(864e5*(e-Math.floor(e)))))}function cr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"TS\",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=ur(n,e,t),o=Gn(r.format.bind(r),{toKey:function(e){return\"object\"===Ct(e)&&\"function\"==typeof e.getTime?e.getTime():e}});function i(e){return t!==Zn?lr(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=ur(n,e,t),o=Gn(r.format.bind(r),{toKey:function(e){return\"object\"===Ct(e)?e.getTime():e}}),this},a.qtype=function(e){return void 0!==e&&(t=e,o.clear()),t},a}function sr(e,t){if(e&&e.qNumFormat&&-1!==[\"D\",\"T\",\"TS\",\"IV\"].indexOf(e.qNumFormat.qType))return cr(e.qNumFormat.qFmt,e.qNumFormat.qType,t);var 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,\"##A\"),i=\"U\"),Wn(n,r,o,i,t)}function fr(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.meta,r=t.id,o=t.key,i=t.localeInfo,a=t.fieldExtractor,u=t.value,l=t.type,c=t.sourceField,s=u||(\"dimension\"===l?function(e){return e.qElemNo}:function(e){return e.qValue}),f=function(e){return e.qText||\"\"},d=\"dimension\"===l?\"first\":\"avg\",p=sr(n,i),v=\"dimension\"===l?\"first\":function(e,t){return p(t)},h={id:function(){return r},key:function(){return o},raw:function(){return n},title:function(){return n.qFallbackTitle||n.label},type:function(){return l},origin:function(){return c},items:function(){return e||(e=a(h)),e},min:function(){return n.qMin},max:function(){return n.qMax},value:s,label:f,reduce:d,reduceLabel:v,formatter:function(){return p},tags:function(){return n.qTags}};return h}function dr(e,t,n,r,o){return(t[e]||[]).map((function(t,i){var a=\"\".concat(r?\"\".concat(r,\"/\"):\"\").concat(e,\"/\").concat(i),u={instance:fr(Gt({id:\"\".concat(n?\"\".concat(n,\"/\"):\"\").concat(a),key:a,meta:t},o))};return u.attrDims=dr(\"qAttrDimInfo\",t,n,a,Gt({},o,{value:function(e){return e.qElemNo},type:\"dimension\"})),u.attrExps=dr(\"qAttrExprInfo\",t,n,a,Gt({},o,{value:function(e){return e.qNum},type:\"measure\"})),u.measures=dr(\"qMeasureInfo\",t,n,a,Gt({},o,{value:function(e){return e.qValue},type:\"measure\"})),u}))}function pr(){var e,t,n,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=r.key,i=r.data,a=r.config,u=void 0===a?{}:a,l={fields:[],wrappedFields:[],allFields:[],virtualFields:[]},c=i;if(!c)throw new Error('Missing \"data\" input');if(!c.qDimensionInfo)throw new Error('The \"data\" input is not recognized as a hypercube');var s=pr.util,f={cache:l,cube:c,localeInfo:u.localeInfo,fieldExtractor:null,pages:null,hierarchy:function(){return null},virtualFields:u.virtualFields},d={key:function(){return o},raw:function(){return c},field:function(e){return pn(e,f)},fields:function(){return l.fields.slice()},extract:function(e){return f.extractor(e,d,l,s)},hierarchy:function(e){return f.hierarchy(e,d,l,s)},_cache:function(){return l}};\"K\"===c.qMode||\"T\"===c.qMode||!c.qMode&&c.qNodesOnDim?(f.extractor=Dn,f.hierarchy=Sn,f.pages=\"K\"===c.qMode?c.qStackedDataPages:c.qTreeDataPages):\"S\"===c.qMode?(f.extractor=Jt,f.pages=c.qDataPages,f.hierarchy=Sn):f.extractor=function(){return[]},f.fieldExtractor=function(e){return f.extractor({field:e},d,l,s)};var p=\"S\"===c.qMode?function(e){return e.qElemNumber}:void 0,v=\"S\"===c.qMode?function(e){return e.qNum}:void 0;(e=l.wrappedFields).push.apply(e,jt(dr(\"qDimensionInfo\",c,o,\"\",Gt({},f,{value:p,type:\"dimension\"})))),(t=l.wrappedFields).push.apply(t,jt(dr(\"qMeasureInfo\",c,o,\"\",Gt({},f,{value:v,type:\"measure\"})))),l.fields=l.wrappedFields.map((function(e){return e.instance}));var h=function e(t){t.forEach((function(t){l.allFields.push(t.instance),e(t.measures),e(t.attrDims),e(t.attrExps)}))};return h(l.wrappedFields),(u.virtualFields||[]).forEach((function(e){var t=d.field(e.from),n=fr(At({meta:t.raw(),id:\"\".concat(o,\"/\").concat(e.key),sourceField:t,fieldExtractor:function(e){return f.extractor({field:e},d,l,s)},key:e.key,type:t.type(),localeInfo:f.localeInfo,value:t.value},e.override||{}));l.virtualFields.push(n)})),(n=l.allFields).push.apply(n,jt(l.virtualFields)),d}var vr=[[\"qHyperCube\",\"qHyperCubeDef\"],[\"qTreeData\",\"qTreeDataDef\"],[\"qDimensionInfo\",\"qDimensions\"],[\"qMeasureInfo\",\"qMeasures\"],[\"qAttrDimInfo\",\"qAttributeDimensions\"],[\"qAttrExprInfo\",\"qAttributeExpressions\"]],hr=/\\/qDimensionInfo(?:\\/(\\d+))?/,mr=/\\/qMeasureInfo\\/(\\d+)/,yr=/\\/qAttrDimInfo\\/(\\d+)(?:\\/(\\d+))?/,gr=/\\/qAttrExprInfo\\/(\\d+)/,br=/\\/?qHyperCube/,xr=/\\/?qTreeData/,qr=function(e){return\"\".concat(e.substr(0,e.indexOf(\"/qHyperCubeDef\")+14))},wr=function(e){return\"\".concat(e.substr(0,e.indexOf(\"/qTreeDataDef\")+13))};function Mr(e,t){var n=e,r=-1,o=-1,i=\"\",a=function(e){return e};br.test(e)?(i=\"\".concat(n.substr(0,n.indexOf(\"qHyperCube\")+10)),a=qr):xr.test(e)&&(i=\"\".concat(n.substr(0,n.indexOf(\"qTreeData\")+9)),a=wr);var u=!0;if(hr.test(e)&&(r=+hr.exec(e)[1]),mr.test(e)&&(o=+mr.exec(e)[1]),yr.test(e)){o=-1,r=0;var l=+yr.exec(n)[2];isNaN(l)||(r=l,n=n.replace(/\\/\\d+$/,\"\")),u=!1}if(gr.test(e)){var c=o;if(t){o=0;var s=sn(i,t);o+=(s.qMeasureInfo||[]).length,r>-1?(o=s.qDimensionInfo.slice(0,r).reduce((function(e,t){return e+t.qAttrExprInfo.length}),o),r=-1):(o=s.qDimensionInfo.reduce((function(e,t){return e+t.qAttrExprInfo.length}),o),o=s.qMeasureInfo.slice(0,c).reduce((function(e,t){return e+t.qAttrExprInfo.length}),o)),o+=+gr.exec(n)[1]}else r>-1?(r=-1,o=+gr.exec(n)[1]):o+=+gr.exec(n)[1]+1}return vr.forEach((function(e){var t=Tt(e,2),r=t[0],o=t[1];n=n.replace(r,o)})),u&&(n=a(n)),n&&\"/\"!==n[0]&&(n=\"/\".concat(n)),{measureIdx:o,dimensionIdx:r,path:n}}function kr(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,o=n.byCells,i=n.primarySource,a=[],u={},l=e.isActive(),c=!1;if(e.brushes().forEach((function(e){var t=Mr(e.id,r);if(\"range\"===e.type&&t.measureIdx>-1&&t.dimensionIdx>-1){var n=e.brush.ranges();n.length&&(c=!0,u.multiRangeSelectTreeDataValues||(u.multiRangeSelectTreeDataValues={path:t.path,ranges:[]}),n.forEach((function(e){return u.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){var l=e.brush.ranges();l.length&&(c=!0,u.rangeSelectHyperCubeValues||(u.rangeSelectHyperCubeValues={path:t.path,ranges:[]}),l.forEach((function(e){return u.rangeSelectHyperCubeValues.ranges.push({qMeasureIx:t.measureIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!0}})})))}if(\"range\"===e.type&&t.dimensionIdx>-1){var s=e.brush.ranges();s.length&&(c=!0,u.selectHyperCubeContinuousRange||(u.selectHyperCubeContinuousRange={path:t.path,ranges:[]}),s.forEach((function(e){return u.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(o)if(r&&r.qHyperCube&&(\"P\"===r.qHyperCube.qMode||\"T\"===r.qHyperCube.qMode||\"K\"===r.qHyperCube.qMode)){var f=r.qHyperCube,d=f.qNoOfLeftDims,p=f.qEffectiveInterColumnSortOrder.indexOf(t.dimensionIdx);if(u.selectPivotCells||(u.selectPivotCells={path:t.path,cells:[]}),e.id===i||!i){var v=e.brush.values().map((function(e){return+e})).filter((function(e){return!isNaN(e)}));(0===d||p>=d)&&d>-1?v.forEach((function(e){u.selectPivotCells.cells.push({qType:\"T\",qCol:e,qRow:p-d})})):v.forEach((function(e){u.selectPivotCells.cells.push({qType:\"L\",qCol:t.dimensionIdx,qRow:e})})),c=!!u.selectPivotCells.cells.length}}else u.selectHyperCubeCells||(u.selectHyperCubeCells={path:t.path,cols:[]}),u.selectHyperCubeCells.cols.push(t.dimensionIdx),e.id!==i&&(i||u.selectHyperCubeCells.values)||(u.selectHyperCubeCells.values=e.brush.values().map((function(e){return+e})).filter((function(e){return!isNaN(e)})),c=!!u.selectHyperCubeCells.values.length);else{var h=e.brush.values().map((function(e){return+e})).filter((function(e){return!isNaN(e)}));c=!!h.length,a.push({params:[t.path,t.dimensionIdx,h,!1],method:\"selectHyperCubeValues\"})}}})),!c&&l)return[{method:\"resetMadeSelections\",params:[]}];u.rangeSelectHyperCubeValues&&a.push({method:\"rangeSelectHyperCubeValues\",params:[u.rangeSelectHyperCubeValues.path,u.rangeSelectHyperCubeValues.ranges,[],null===(t=n.orMode)||void 0===t||t]});return u.selectHyperCubeContinuousRange&&a.push({method:\"selectHyperCubeContinuousRange\",params:[u.selectHyperCubeContinuousRange.path,u.selectHyperCubeContinuousRange.ranges]}),u.selectHyperCubeCells&&a.push({method:\"selectHyperCubeCells\",params:[u.selectHyperCubeCells.path,u.selectHyperCubeCells.values,u.selectHyperCubeCells.cols]}),u.selectPivotCells&&a.push({method:\"selectPivotCells\",params:[u.selectPivotCells.path,u.selectPivotCells.cells]}),u.multiRangeSelectTreeDataValues&&a.push({method:\"multiRangeSelectTreeDataValues\",params:[u.multiRangeSelectTreeDataValues.path,u.multiRangeSelectTreeDataValues.ranges]}),a}function Cr(e){pr.util=e.data(\"matrix\").util,e.data(\"q\",pr),e.formatter(\"q-number\",Wn),e.formatter(\"q-time\",cr)}function Sr(e){var t=ft(e.layout||{},e.path.split(\"/\").join(\".\"));if(!t)return!1;var n=t.qIsOneAndOnlyOne;return void 0!==n&&n}function Dr(e){var t,n,r,o=e.selections,i=e.picassoSelections,a=e.layout,u={lockedDimensions:[],singleSelectDimensions:[]};null!=o&&null!==(t=o.isModal)&&void 0!==t&&t.call(o)&&o.confirm(),i.layout(a);var l=(null!==(n=null==a?void 0:a.qHyperCube)&&void 0!==n?n:{}).qDimensionInfo,c=void 0===l?[]:l;return u.lockedDimensions=c.map((function(e){return!!e.qLocked})),u.singleSelectDimensions=c.map((function(e,t){return Sr({layout:a,path:\"qHyperCube/qDimensionInfo/\".concat(t)})})),u.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),u.canSelect=0===c.length||c.some((function(e){return!e.qLocked})),u.dimensionLocked=!(null===(r=c[0])||void 0===r||!r.qLocked),u}function Ir(){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 Er(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))}Cr.qBrushHelper=kr,Cr.selections=kr;var Or=\"Enter\",Ar=\"Escape\",Nr=\"Esc\",Pr=\"Shift\";function Lr(e){var t=e.brush,n=e.getConfig;return{interceptor:function(e){var r=t.brushes(),o=n(),i=o.allowSimultaneous,a=o.layout,u=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 l=e.filter((function(e){return-2!==e.value}));if(l.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=Sr({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:u,values:l});return s}return l},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 Tr=function e(t,n){return n[t]?e(t+1,n):t},jr=function(e,t){var n=t.reduce((function(e,t){return e[t]=!0,e}),{});return e.reduce((function(e,t,r){var o=Tr(r,n);return n[o]=!0,e[r]=o,e}),{})};function Fr(){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,u=o.qMeasureInfo,l=void 0===u?[]:u;return{dimensions:jr(a,r.dimensions||[]),measures:jr(l,r.measures||[])}}var Rr=\"selectHyperCubeValues\",Hr=\"rangeSelectHyperCubeValues\",Vr=\"selectHyperCubeContinuousRange\";function zr(e){var t=e.selection,n=e.fieldMap,r=t.method,o=t.params;if(r===Rr){var i=n.dimensions[o[1]];void 0!==i&&(o[1]=i)}r===Hr&&o[1].forEach((function(e){var t=n.measures[e.qMeasureIx];void 0!==t&&(e.qMeasureIx=t)}));r===Vr&&o[1].forEach((function(e){var t=n.dimensions[e.qDimIx];void 0!==t&&(e.qDimIx=t)}));return t}var _r=[],Br=0,Yr=function(e){var t=_r.filter((function(e){var t;return null===(t=e.selections)||void 0===t?void 0:t.isActive()}));t.length&&(e.key===Or?t.forEach((function(e){return e.selections.confirm()})):e.key!==Ar&&e.key!==Nr||t.forEach((function(e){return e.selections.cancel()})))},Ur=function(){document.addEventListener(\"keyup\",Yr)},Kr=function(){document.removeEventListener(\"keyup\",Yr)},Gr=function(e,t){Object.keys(t).forEach((function(n){e.on(n,t[n])}))},Wr=function(e,t){Object.keys(t).forEach((function(n){e.removeListener(n,t[n])}))};function $r(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 Xr(e){var t=e.chart,n=e.document,r=e.selectionInfo,o=e.eventName,i=e.componentName,a=e.brushName,u=void 0===a?\"selection\":a,l=e.emit,c=void 0===l?\"rangeClear\":l,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 u&&t.brush(u).clear(),d)}function Jr(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.eventName,i=void 0===o?\"discreteRange\":o,a=e.componentName,u=void 0===a?\"discrete-range-brush\":a,l=e.cleared;return Xr({selectionInfo:t,chart:n,document:r,eventName:void 0!==l&&l?void 0:i,componentName:u,emit:\"areaClear\",brushName:e.brushName})}function Zr(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.eventName,i=void 0===o?\"continuousRange\":o,a=e.componentName,u=void 0===a?\"continuous-range-brush\":a,l=e.cleared;return Xr({selectionInfo:t,chart:n,document:r,eventName:void 0!==l&&l?void 0:i,componentName:u,brushName:e.brushName})}function Qr(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,u=void 0===a?\"minorRange\":a,l=e.cleared,c=void 0!==l&&l,s=e.brushName,f=Xr({selectionInfo:t,chart:n,document:r,eventName:c?void 0:u,componentName:i,brushName:void 0!==s&&s});if(f){var d=f.settings.settings,p=d.scale,v=d.brush,h=n.scale(p).data().fields.map((function(e){return e.id()})),m=n.brush(v),y=m.brushes().filter((function(e){return\"range\"===e.type&&h.some((function(t){return t===e.id}))}));m&&y.length&&y.forEach((function(e){m.removeRanges(e.brush.ranges().map((function(t){return{key:e.id,range:t}})))}))}}function eo(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.selections,i=e.eventName,a=void 0===i?\"xAxis\":i,u=e.cleared;Xr({selectionInfo:t,chart:n,document:r,eventName:void 0!==u&&u?void 0:a,componentName:\"\".concat(a,\"-range-brush\"),emit:\"areaClear\",brushName:!1})&&o.clear()}function to(e){var t=e.chart,n=e.selectionInfo,r=e.selections,o=e.events,i=void 0===o?[\"tap\"]:o,a=e.brushNames,u=void 0===a?[]:a;if(n&&i.includes(n.event)){var l=n.currentComponent;n.previousComponent!==l&&(r.clear(),u.forEach((function(e){return t.brush(e).end()})))}}function no(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.selections,i=e.eventName,a=void 0===i?\"legendRange\":i,u=e.componentName,l=void 0===u?\"legend-range-brush\":u,c=e.cleared,s=void 0!==c&&c,f=e.brushName;Xr({selectionInfo:t,chart:n,document:r,eventName:s?void 0:a,componentName:l,brushName:void 0!==f&&f})&&o.clear()}var ro=[\"chart\",\"document\",\"selections\",\"selectionInfo\"],oo=function(e){e.chart,e.document,e.selections,e.selectionInfo;var t=u(e,ro);t.clearDiscrete(),t.clearContinuous(),t.clearMinor(),t.clearRange(),t.clearTap(),t.clearLegend()};function io(e){var n=e.selectionEvents,r=e.selections,o=e.selectionInfo,i=e.clear,a=e.chart,u=e.document,l=n.start,c={selections:r,selectionInfo:o,chart:a,document:u},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,u=e.components,l=void 0===u?[]:u;o(t(t({},r),{},{event:a,components:l.map((function(e){return e.key})).filter(Boolean)})),i()}({event:n,components:r,clear:i,chart:a,selectionInfo:o,setSelectionInfo:s})}};return\"function\"==typeof l?function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];l(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 ao(e){var t,n=e.lasso;null!=n&&null!==(t=n.active)&&void 0!==t&&t.call(n)&&(null==n||n.action(!1))}function uo(e){var n,r=e.chart,o=e.selectionInfo,i=e.selectionActions,a=e.actions,u=void 0===a?{}:a,c=e.selections,s=e.selectionEvents;if(!1===i||!1===s)return function(){};var f=(u||{}).lasso,d=void 0!==f&&f,p=i.reset,v=void 0===p?ao:p,h=i.clear,m=!1!==h&&function(e){var n=e.clear,r=void 0===n?oo: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 Jr(t(t({},n),e))},clearContinuous:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Zr(t(t({},n),e))},clearMinor:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Qr(t(t({},n),e))},clearRange:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return eo(t(t({},n),e))},clearTap:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return to(t(t({},n),e))},clearLegend:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return no(t(t({},n),e))}},n))}}({clear:h,selections:c,selectionInfo:o,chart:r}),y=function(e){var t=e.chart,n=e.lasso,r=e.reset,o=e.clear,i=!1,a={deactivated:function(e){r({e:e,lasso:n})},canceled:function(e){r({e:e,lasso:n}),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:m,reset:v,lasso:d}),g={};Object.entries(y).forEach((function(e){var t=l(e,2),n=t[0],r=t[1];g[n]=function(e,t){return t?function(n){return t({event:n,defaultFunc:e})}:e}(r,s[n])}));var b=io({selectionEvents:s,selections:c,selectionInfo:o,clear:m,chart:r,document:document});return null==u||null===(n=u.select)||void 0===n||n.on(\"start\",b),Object.entries(g).forEach((function(e){var t=l(e,2),n=t[0],r=t[1];null==c||c.on(n,r)})),function(){var e;null==u||null===(e=u.select)||void 0===e||e.removeListener(\"start\",b),Object.entries(g).forEach((function(e){var t=l(e,2),n=t[0],r=t[1];null==c||c.removeListener(n,r)}))}}function lo(e){var t=e.chart,n=e.selectionActions,r=e.brush,o=e.actions,i=e.selectionInfo,a=e.selections,u=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=l(e,2),i=o[0],a=o[1],u=function(){return a({chart:n,selectionInfo:r})};return t.on(i,u),[i,u]}));return function(){a.forEach((function(e){var n=l(e,2),r=n[0],o=n[1];t.removeListener(r,o)}))}}({brush:r,chart:t,selectionInfo:i,brushEvents:e.brushEvents}),s=uo({chart:t,selectionInfo:i,selectionActions:n,actions:o,selections:a,selectionEvents:u}),f=function(e){var t=e.actions;if(null==t||!t.lasso)return function(){};var n=!1,r=function(e){n||e.key!==Pr||(t.lasso.action(!0),n=!0)},o=function(e){e.key===Pr&&(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 co=[{key:\"qHyperCube/qDimensionInfo/0:numeric\",includeMax:!1}];function so(e){var t=e.chart,n=e.actions,r=e.selections,o=e.picassoQ,i=e.config,a=i.allowSimultaneous,u=void 0!==a&&a,s=i.majorScale,f=void 0===s?void 0:s,d=i.selectionActions,p=(d=void 0===d?{}:d).clear,v=d.reset,h=i.selectionEvents,m=void 0===h?{deactivated:void 0,canceled:void 0,cleared:void 0,start:void 0}:h,y=i.brushEvents,g=void 0===y?{}:y,b=i.brushName,x=void 0===b?\"selection\":b,q=i.brushMaxListeners,w=void 0===q?20:q,M=i.brushRanges,k=void 0!==M&&M,C=i.interceptors,S=void 0===C?{}:C,D=i.selectionsFn,I=void 0===D?o.selections:D,E=t.brush(x);if(\"number\"==typeof w&&E.setMaxListeners(w),k){var O=!0===k?co:k;E.configure({ranges:O})}var A={canSelect:!0,getIsSelectionLocked:!1,isInnerDimensionLocked:!1,lockedDimensions:[],singleSelectIndex:0,selectionInfo:{colorField:void 0,components:[],event:void 0,currentComponent:void 0,previousComponent:void 0}},N=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,u=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).path,l=void 0===u?\"/qHyperCubeDef\":u;if(!n)return{layout:function(){},filteredFields:function(){},allowSimultaneous:function(){},release:function(){}};var c=++Br,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 v=Lr({brush:r,getConfig:function(){return{layout:s,allowSimultaneous:d}}}),h=v.rangeInterceptor,m=v.interceptor;r.intercept(\"set-ranges\",h),r.intercept(\"toggle-ranges\",h),r.intercept(\"toggle-values\",m),r.intercept(\"set-values\",m),r.intercept(\"add-values\",m),r.on(\"start\",(function(){return n.begin(l)}));var y={activate:function(){},deactivated:function(){return r.end()},cleared:function(){return r.clear()},canceled:function(){return r.end()}};Gr(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=Fr({layout:s,filtered:f});e.forEach((function(e){var r=zr({selection:e,fieldMap:t});$r(r,i.select.brushSelectionIncludeMax,g),n.select(r)}))}))):r.on(\"update\",(function(){var e=a(r,p,s),t=Fr({layout:s,filtered:f});e.forEach((function(e){n.select(zr({selection:e,fieldMap:t}))}))})),0===_r.length&&Ur(),_r.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=_r.indexOf(_r.filter((function(e){return e.key===c}))[0]);-1!==e&&_r.splice(e,1),_r.length||Kr(),Wr(n,y)}}}({brush:E,majorScale:f,actions:n,selections:r,picassoQ:o,selectionsFn:I});!function(e){var t=e.brush,n=e.interceptors,r=void 0===n?{}:n;Object.entries(r).forEach((function(e){var n=l(e,2),r=n[0],o=n[1];(Array.isArray(o)?o:[o]).forEach((function(e){t.intercept(r,e)}))}))}({brush:E,interceptors:S});var P=lo({chart:t,brush:E,actions:n,selections:r,selectionInfo:A.selectionInfo,selectionActions:{clear:p,reset:v},selectionEvents:m,brushEvents:g});if(u){var L=!0===u?c(Array(15)).map((function(e,t){return\"qHyperCube/qMeasureInfo/\".concat(t)})):u;N.allowSimultaneous(L)}return{unbindEvents:P,state:A,picassoSelections:N,brush:E}}var fo=[\"colorField\",\"useLegendCube\"];function po(e){var n=e.chart,r=e.selections,o=e.actions,i=void 0!==o&&o,a=e.config,l=void 0===a?{}:a,c=so({chart:n,actions:i,selections:r,picassoQ:Cr,config:l}),s=c.unbindEvents,f=c.state,d=c.picassoSelections,p=c.brush,v=l.custom,h=void 0===v?{}:v,m=l.legendAlias,y=void 0===m?void 0:m,g=l.setBrushAliases,b=void 0===g?Er: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:Ir(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=Dr({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=u(e,fo),a=t({useLegendCube:o,colorField:n,brush:p,legendAlias:y},i);b(t(t({},a),{},{defaultFunc:function(){return Er(a)}}))},destroy:function(){s(),d.release()},custom:t({},h)}}var vo=\"'Source Sans Pro', 'Arial', 'sans-serif'\",ho=\"#333333\",mo=\"#595959\",yo=\"#737373\",go=\"#cccccc\",bo=\"#e6e6e6\";function xo(e){var t={};return[].concat(c(e),c([[\"\",\"\",\"color\"],[\"object\",\"\",\"fontFamily\"],[\"object\",\"axis.label.name\",\"color\",mo],[\"object\",\"axis.label.name\",\"fontFamily\",vo],[\"object\",\"axis.label.name\",\"fontSize\",\"12px\"],[\"object\",\"axis.line.major\",\"color\",go],[\"object\",\"axis.line.minor\",\"color\",bo],[\"object\",\"axis.title\",\"color\"],[\"object\",\"axis.title\",\"fontFamily\",vo],[\"object\",\"axis.title\",\"fontSize\",\"13px\"],[\"object\",\"grid.line.highContrast\",\"color\",bo],[\"object\",\"grid.line.major\",\"color\",go],[\"object\",\"grid.line.minor\",\"color\",bo],[\"object\",\"label.value\",\"color\",mo],[\"object\",\"label.value\",\"fontFamily\",vo],[\"object\",\"label.value\",\"fontSize\",\"12px\"],[!1,\"label.value\",\"darkColor\",mo],[!1,\"label.value\",\"lightColor\",bo],[\"object\",\"outOfRange\",\"color\",\"#999\"],[\"object\",\"referenceLine.label.name\",\"color\",ho],[\"object\",\"referenceLine.label.name\",\"fontFamily\",vo],[\"object\",\"referenceLine.label.name\",\"fontSize\",\"12px\"],[\"object\",\"referenceLine.outOfBounds\",\"color\",bo],[\"object\",\"referenceLine.outOfBounds\",\"fontFamily\",vo],[\"object\",\"referenceLine.outOfBounds\",\"fontSize\",\"12px\"],[\"object\",\"referenceLine.outOfBounds\",\"backgroundColor\",yo,function(e){return\"transparent\"===e?yo: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 qo=function(e){return e};function wo(e){var t=e.theme,n=e.id,r=e.transform,o=e.extend,i=e.matrix,a={},u=r.reduce((function(e,t){var n=l(t,2),r=n[0],o=n[1];return e[r]=o,e}),{});return i.forEach((function(e){var r=l(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 u=t.getStyle(n,r,o);return void 0===u?a:u}({theme:t,base:\"object\"===o&&n?\"\".concat(\"object\",\".\").concat(n):o,path:i,attribute:c,defaultValue:s}),v=(u[\"\".concat(i,\".\").concat(c)]||qo)(d(p));dt(a,[i,c].filter(Boolean).join(\".\"),v)})),o.forEach((function(e){var t=l(e,2),n=t[0],r=t[1];dt(a,n,r)})),a}function Mo(e){var t=e.theme,n=e.config,r=void 0===n?{}:n,o=r.id,i=r.resolve,a=void 0===i?[]:i,u=r.transform,l=void 0===u?[]:u,c=r.extend,s=void 0===c?[]:c,f={theme:t,matrix:xo(a),styles:void 0};return f.styles=wo({theme:t,id:o,transform:l,extend:s,matrix:f.matrix}),{getStyles:function(){return f.styles},getTheme:function(){return f.theme},setTheme:function(e){f.theme=e,f.styles=wo({theme:e,id:o,transform:l,extend:s,matrix:f.matrix})}}}var ko={NOOP:function(){},FALSE:function(){return!1},ARRAY:function(){return[]},OBJECT:function(){return{}}};var Co=\"chart-modules-tooltip\",So=\"#\".concat(Co);function Do(){if(!document.querySelector(So)){var e=document.createElement(\"div\");e.id=Co,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 Io(e){return{show:!0,key:e.key,type:\"tooltip\",layout:{displayOrder:3},beforeMount:function(){Do()},beforeUpdate:function(){Do()},destroyed:function(){var e;null!=(e=document.querySelector(So))&&e.parentElement&&e.childElementCount<1&&e.parentElement.removeChild(e)},settings:{appendTo:function(){return document.querySelector(So)},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 Eo=\"position\";var Oo={bar:\"rect\",diamond:\"path\",point:\"circle\",square:\"rect\",triangle:\"path\",\"n-polygon\":\"path\",slice:\"path\"},Ao=function(e){return e.data.value},No=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,u=o.from,s={chart:t,expando:n,nodes:r,collectConfig:o,collectibles:i,meta:a};switch(\"function\"==typeof u?\"custom\":u){case\"single\":return function(e){var t=l(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=l(n,1)[0],a=r.filter,u=\"function\"==typeof a?a:function(){return!0},s=r.by,f=void 0===s?Ao:s;return o.reduce((function(e,n){var r=n.major,o=void 0===r?No:r,a=Oo[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(u)}(s);case\"radius\":return function(e){var t=e.chart,n=e.nodes,r=e.collectConfig,o=e.collectibles,i=e.meta,a=l(n,1)[0].localBounds,u=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:u||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 Lo=Number.MAX_VALUE;function To(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:Lo,xMax:-Lo,yMin:Lo,yMax:-Lo}),n=t.xMin,r=t.xMax,o=t.yMin;return{x:n,y:o,width:r-n,height:t.yMax-o}}function jo(e){var t=e.chart,n=e.config,r=e.expando,o=e.placementConfig,i=e.hovered,a=e.collected,u=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,u=e.meta,s=l(i,1)[0],f=Array.isArray(o)?o:[o],d={bounds:s.bounds,key:s.key},p=To({nodes:a}),v=0;v<f.length;v++){var h=f[v];if(\"function\"==typeof h){var m=h({chart:t,expando:r,hovered:i,collected:c(a),meta:u,collectedBounds:p,combineBounds:To});if(m)return m}if(\"trigger\"===h)return d;if(\"collectible\"===h){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:u}),f=s.bounds,d=s.key,p=l(a,1)[0].desc;return[{bounds:f,nodes:a,data:a.map((function(e){return e.data})),key:d,meta:u,desc:p}]}function Fo(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.nodes;if(!i.length)return[];var a=l(i,1)[0].key,u=n.main.collectibles;if(!u.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(Eo)},p=(Po({chart:t,expando:r,nodes:i,collectConfig:s,collectibles:u,meta:d})||[]).map((function(e){return e.children.length?e.children[0]:e}));return p.length?jo({chart:t,config:n,expando:r,placementConfig:f,hovered:i,collected:p,meta:d}):[]}var Ro=\"[־׀׃׆א-״߀-ߪߴ-ߵߺ-ࠕࠚࠤࠨ࠰-ࡘ࡞יִײַ-ﬨשׁ-ﭏ]\",Ho=\"[؈؋؍؛-ي٭-ٯٱ-ەۥ-ۦۮ-ۯۺ-܍ܐܒ-ܯݍ-ޥޱﭐ-ﴽﵐ-﷼ﹰ-ﻼ]\",Vo=new RegExp(\"[A-Za-zªµºÀ-ÖØ-öø-ʸʻ-ˁː-ˑˠ-ˤˮͰ-ͳͶ-ͽΆΈ-ϵϷ-҂Ҋ-։ः-हऻऽ-ीॉ-ौॎ-ॐक़-ॡ।-ॿং-হঽ-ীে-ৌৎ-ৡ০-ৱ৴-৺ਃ-ਹਾ-ੀਖ਼-੯ੲ-ੴઃ-હઽ-ીૉ-ૌૐ-ૡ૦-૯ଂ-ହଽ-ାୀେ-ୌୗ-ୡ୦-୷ஃ-ிு-ௌௐ-௲ఁ-ఽు-ౄౘ-ౡ౦-౯౿-ಹಽ-ೋೕ-ೡ೦-ീെ-ൌൎ-ൡ൦-ෆා-ෑෘ-ะา-ำเ-ๆ๏-ະາ-ຳຽ-ໆ໐-༗༚-༴༶༸༾-ཬཿ྅ྈ-ྌ྾-࿅࿇-ာေးျ-ြဿ-ၗၚ-ၝၡ-ၰၵ-ႁႃ-ႄႇ-ႌႎ-ႜ႞-ፚ፠-ᎏᎠ-Ᏼᐁ-ᙿᚁ-ᚚᚠ-ᜑᜠ-ᜱ᜵-ᝑᝠ-ᝰក-ាើ-ៅះ-ៈ។-៚ៜ០-៩᠐-ᢨᢪ-ᤜᤣ-ᤦᤩ-ᤱᤳ-ᤸ᥆-᧚ᨀ-ᨖᨙ-ᩕᩗᩡᩣ-ᩤᩭ-ᩲ᪀-᪭ᬄ-ᬳᬵᬻᬽ-ᭁᭃ-᭪᭴-᭼ᮂ-ᮡᮦ-ᮧ᮪-ᯥᯧᯪ-ᯬᯮ᯲-ᰫᰴ-ᰵ᰻-᱿᳓᳡ᳩ-ᳬᳮ-ᶿḀ-ᾼιῂ-ῌῐ-Ίῠ-Ῥῲ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎ-⅏Ⅰ-ↈ⌶-⍺⎕⒜-ⓩ⚬⠀-⣿Ⰰ-ⳤⳫ-ⳮⴀ-⵰ⶀ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ㆺㇰ-㈜㈠-㉏㉠-㉻㉿-㊰㋀-㋋㋐-㍶㍻-㏝㏠-㏾㐀-䶵一-ꒌꓐ-ꘌꘐ-ꙮꚀ-ꛯ꛲-꛷Ꜣ-ꞇ꞉-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠤꠧ꠰-꠷ꡀ-ꡳꢀ-ꣃ꣎-꣙ꣲ-ꤥ꤮-ꥆꥒ-ꥼꦃ-ꦲꦴ-ꦵꦺ-ꦻꦽ-ꨨꨯ-ꨰꨳ-ꨴꩀ-ꩂꩄ-ꩋꩍ-ꪯꪱꪵ-ꪶꪹ-ꪽꫀꫂ-ꯤꯦ-ꯧꯩ-꯬꯰-ﬗA-Za-zヲ-ᅵ]\"),zo=new RegExp(Ro),_o=new RegExp(Ho),Bo=function(e){return Vo.test(e)},Yo=function(e){return zo.test(e)||_o.test(e)};function Uo(e){for(var t=e?e.length:0,n=0;n<t;n++){var r=e[n];if(Bo(r))return\"ltr\";if(Yo(r))return\"rtl\"}return\"ltr\"}function Ko(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 Go(e){var n=e.config,r=e.h,o=e.context,i=e.nodes,a=e.property,u=e.filter,c=e.visibility,s=n.rtl,f={type:\"color\",label:void 0,value:void 0,content:[],filter:u,visibility:t(t({},{count:!0}),c)},d=n.getColorSettings();if(\"color\"===d.type||!d.fieldType)return f;var p=l(i,1)[0];if(f.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(),u=i.value,l=i.label,c=t.getColorSettings();if(a&&\"measure\"===c.fieldType)return Number.isNaN(+u)?\"-\":a(i.value);var s=l||u;return void 0===s||Number.isNaN(s)||\"NaN\"===s?\"-\":s}}({config:n,context:o,property:a,node:p}),void 0===f.value)return f;f.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 u=n.resources.dataset,l=a.source,c=l.key,s=l.field;return u(c).field(s).title()}}({config:n,context:o,property:a,node:p});var v=function(e){var t=e.node.attrs;return(null==t?void 0:t.fill)||\"#ddd\"}({node:p}),h=r(\"div\",{style:{display:\"inline-block\",width:10,height:10,\"background-color\":v,margin:\"0 8px\"}});return f.content.push({content:s?[\":\",f.label]:[f.label,\":\"],style:{\"text-align\":s?\"right\":\"left\",direction:Uo(f.label)}},{content:s?[f.value,h]:[h,f.value],style:{\"text-align\":s?\"left\":\"right\",\"vertical-align\":\"middle\",direction:Uo(f.value)}}),f}function Wo(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=(o=void 0===o?{}:o).bold,a=void 0!==i&&i,u=o.italic,l=void 0!==u&&u,c=e.visibility;return{type:\"text\",content:[{content:r,style:{\"font-weight\":a?\"bold\":\"normal\",\"font-style\":l?\"italic\":\"normal\",\"text-align\":n.rtl?\"right\":\"left\",direction:Uo(r)},colspan:2}],visibility:t(t({},{count:!0}),c)}}({config:n,value:r,style:o,visibility:i})},measure:function(e){var o=e.label,i=e.value,a=e.color,u=e.style,l=e.survive,c=e.visibility;return function(e){var n,r,o,i,a=e.config,u=e.h,l=e.label,c=e.value,s=e.color,f=e.style,d=e.survive,p=e.visibility,v=a.rtl,h=u(\"div\",{style:{display:\"inline-block\",width:10,height:10,\"background-color\":s,margin:\"0 8px\"}});return{type:\"measure\",label:l,value:c,content:[{content:v?[\":\",l]:[l,\":\"],style:{\"text-align\":v?\"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:Uo(l)}},{content:s?v?[c,h]:[h,c]:c,style:{\"text-align\":v?\"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:Uo(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:u,survive:l,visibility:c})},divider:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.visibility;return Ko({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,u=void 0===a||a,l=e.visibility;return Go({config:n,h:r,context:o,nodes:t,property:i,filter:u,visibility:l})}};return i}function $o(e){var t=e.translator,n=e.config,r=e.context,o=e.templates,i=n.main.layout,a=i.rows,u=i.grouping,l=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:u,single:\"function\"==typeof l?l({meta:r.node.meta,sections:o}):l}),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=Uo(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 Xo(e){var n=e.chart,r=e.translator,o=e.config,i=e.expando,a=e.h,u=e.data,s=e.style,f=l(u,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,u=i.node.meta,l=i.resources,s=l.dataset,f=l.formatter,d=Wo({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}),v=a.map((function(e){var t=d.section({content:c((n.main.section({expando:r,h:o,nodes:e,dataset:s,formatter:f,meta:u,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:u,create:d,util:p,sections:v}),v.filter(Boolean)}({chart:n,config:o,expando:i,h:a,context:f,groups:d}),v=$o({translator:r,config:o,h:a,context:f,templates:p});return v.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:v}):function(e){var t=e.h;return t(\"tr\",{},t(\"td\",{style:{fontStyle:\"italic\",opacity:.75}},\"Empty\"))}({h:a})}function Jo(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=pt(),u=Io({key:r.main.key,rtl:r.rtl,duration:r.duration}),l=r.main.events.tooltip,c=l.afterShow,s=l.afterHide,f=function(){var e=a.get(\"collected\");return{expando:o,nodes:e.nodes,meta:e.meta}};return x(!0,u,{settings:{filter:function(e){return Fo({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,u=e.style;return Xo({chart:t,translator:n,config:r,expando:o,h:i,data:a,style:u})},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 Zo(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=Io({key:r.tooltip,rtl:n.rtl,duration:n.duration});return x(!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 Qo(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 ei=function(){return!0};function ti(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:ei})),e}),{});return function(e){var n=t[e.key];return!n||n(e)}}function ni(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,u=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)-u;var l=t.component(r);if(l){var c=l.rect.computedInner;o.relative.x=o.absolute.x-c.x,o.relative.y=o.absolute.y-c.y}return o}function ri(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 oi(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.facade,u=n.delay.tap,s=Qo({config:n}),f=ti({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=l(d.components,1)[0],v=ni({chart:t,event:e,component:p});o.set(Eo,v);var h=ri({chart:t,filter:f,hits:d,position:v});if(h.length){var m=h[0].key;n.main.events.tooltip.beforeShow({expando:r,event:e,collectNodes:function(){return i.collectNodes({nodes:h})},meta:{triggerer:m,position:v}}).then((function(){a.emit(\"show\",e,{nodes:h,delay:u})})).catch((function(){}))}else a.emit(\"hide\")}else a.emit(\"hide\")}}}))}}function ii(e){var t=e.config,n=e.expando,r=e.internal,o=e.facade,i=t.main.events.tooltip.beforeShow,a=t.delay.hover,u={ongoing:{},latest:void 0};return function(e){var t=e.event,l=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(!u.ongoing[s]){u.ongoing[s]=!0,u.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(Eo)}}).then((function(){s===u.latest&&l.emit(\"show\",t,{nodes:c,delay:a})})).catch((function(){l.emit(\"show\")})).finally((function(){delete u.ongoing[s],s===u.latest&&(u.latest=void 0)}))}}}function ai(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.facade,a=Qo({config:n}),u=ti({config:n}),c=ii({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=l(s.components,1)[0],d=ni({chart:t,event:e,component:f});o.set(Eo,d);var p=ri({chart:t,filter:u,hits:s,position:d});if(!p.length)return void i.emit(\"hide\");c({event:e,tooltip:i,nodes:p})}else i.emit(\"hide\")}var v=n.legend;if(v.keys.tooltip&&v.keys.component){var h=t.component(v.keys.tooltip);h&&h.show&&(r.some((function(e){return e.key===v.keys.component}))?h.emit(\"show\",e):h.emit(\"hide\"))}}},mouseup:function(e){2===e.button&&f()},mouseleave:function(){n.main.events.interaction.mouseleave({expando:r}),f()},wheel:function(){f()}}}}function ui(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=l(Fo({chart:t,config:n,expando:r,internal:o,nodes:i}),1)[0];return(a=void 0===a?{nodes:[]}:a).nodes}}}({chart:t,config:n,expando:r,internal:o});return{gestures:[oi({chart:t,config:n,expando:r,internal:o,facade:i})],native:ai({chart:t,config:n,expando:r,internal:o,facade:i})}}function li(e){var t=e.chart,n=e.translator,r=function(e){var t=e.config;return x(!0,{},{rtl:!1,enable:ko.FALSE,getColorSettings:ko.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:ko.FALSE,getGroupByValue:ko.NOOP,collectibles:[],triggers:[],placement:function(){return{type:\"bounds\"}},placements:{collectible:\"combine\"},showDuplicateMeasures:!1,layout:{rows:7,grouping:!1,single:!1},section:ko.ARRAY,sections:ko.NOOP,events:{tooltip:{beforeShow:function(){return Promise.resolve()},afterShow:ko.NOOP,afterHide:ko.NOOP},interaction:{mouseleave:ko.NOOP}}},legend:{keys:{tooltip:void 0,component:void 0}}},void 0===t?{}:t)}({config:e.config}),o=pt(),i=pt(),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[Jo({chart:t,translator:n,config:r,expando:e.expando,internal:e.internal}),Zo({config:r})].filter(Boolean)}({chart:t,translator:n,config:r,expando:o,internal:i})),a.components},getInteractions:function(){return a.interactions||(a.interactions=ui({chart:t,config:r,expando:o,internal:i})),a.interactions},expando:o}}var ci=\"AVERAGE\",si=\"LINEAR\",fi=\"POLYNOMIAL2\",di=\"POLYNOMIAL3\",pi=\"POLYNOMIAL4\",vi=\"EXPONENTIAL\",hi=\"LOG\",mi=\"POWER\";function yi(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){default:case fi:return a;case di:return a.y+=i[3]*Math.pow(n,3),a;case pi:return a.y+=i[4]*Math.pow(n,4)+i[3]*Math.pow(n,3),a}}var gi={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:yi,polynomial3:yi,polynomial4:yi,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 bi(e,t){for(var n=gi[t.qType.toLowerCase()],r=Math.max(1,e/500),o=1/0,i=-1/0,a=0;a<e;a+=r){var u=n({dimValue:null,value:a+1,qTrendLine:t}).y;o=Math.min(u,o),i=Math.max(u,i)}return{min:o,max:i}}function xi(e){return gi[e.qType.toLowerCase()]}function qi(e,t){return e.meta.isContinuous?function(e,t){return{generate:function(e,n,r){var o=[],i=xi(e),a=t({qTrendLine:e,measureIndex:r}),u=a.min,l=a.max,c=(l-u)/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 u=a.x;a.x=a.y,a.y=u,a.dimValue=a.x}o.push(a)},f=u,d=u;d<=l;d+=c)s(d),f=d;f!==l&&s(l)}return o},calculate:function(e,t){return xi(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,u=i.qArea.qTop,l=gi[t.qType.toLowerCase()],c=0;c<a.length;c++){var s=a[c],f=l({dimValue:s.qElemNo,value:c+u+1,qTrendLine:t});f.layerId=n,f.measureIndex=r,f.dimValue=s.qText,o.push(f)}return o},findMinMax:bi}}(e):function(e){return{generate:function(t,n,r){for(var o=[],i=e.getDataPages()[0],a=i.qMatrix,u=i.qArea.qTop,l=gi[t.qType.toLowerCase()],c=0;c<a.length;c++){var s=a[c][0],f=c+u+1,d=l({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,gi[e.qType.toLowerCase()])({dimValue:n,value:t,qTrendLine:e})},findMinMax:bi}}(e)}var wi={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\"},Mi={color:\"#f93f17\",index:9},ki={x:NaN,y:NaN,dimValue:NaN,layerId:NaN,measureIndex:NaN},Ci=function(e){var t=e.layoutService,n=e.getMinMax,r=e.colorModel,o=e.chart,i=e.translator,a=e.keys.colorScale,u=e.isEnabled,l=void 0===u?function(){return!0}:u,s=[ki],f=[],d=[],p=qi(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 v=vt((function(e){var t=(f[e]||{}).style,n=r.settings();if(t.autoColor){if(\"measure\"===n.mode){var i=d[e],u=o.scale(a)(i);return function(e){return ve(e).l<70}(u)?function(e){var t=ve(e);return t.l<30?t.l+=15:t.l<50?t.l+=10:t.l+=5,t.toString()}(u):function(e){var t=ve(e);return t.l-=5,t.toString()}(u)}return r.resolveUIColor(Mi)}return t.paletteColor?r.resolveUIColor(t.paletteColor):\"none\"}));return{query:{hasTrendLines:function(){return!!f.length&&l()},getData:function(){return s},getStroke:v,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(wi.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))}))}}}},Si={source:\"trend\",extract:{field:\"x\",props:{minor:{field:\"y\"},layer:{field:\"layerId\"},measureIndex:{field:\"measureIndex\"},dimValue:{field:\"dimValue\"}}}},Di=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}},Ii=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,u=t.layoutService,l=t.orientation,c=Di(u);return{key:n,type:\"line\",layout:{dock:\"center\"},data:Si,animations:i,settings:{connect:!0,orientation:l,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}),u=[a];if(e.tooltipOverlay){var l=function(e,t){var n=e.majorScale,r=e.minorScale,o=e.tooltipOverlay,i=t.layoutService,a=\"horizontal\"===t.orientation,u={scale:n,fn:Di(i)},l={scale:r,ref:\"minor\"};return{key:o,type:\"point\",layout:{dock:\"center\"},data:Si,settings:{x:a?u:l,y:a?l:u,opacity:0,size:1,sizeLimits:{maxPx:8,minPx:8}}}}(e,{layoutService:r,orientation:i});u.push(l)}return u},Ei=function(e){e.style.dashed?e.style.lineDash=\"8, 4\":e.style.lineDash=\"\"},Oi=function(e){Ei(e),e.qMultiDimMode=\"Sum\",e.qXColIx=0};function Ai(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Ni(e){return Math.pow(e.x,2)+Math.pow(e.y,2)}function Pi(e,t,n){var r=Ai(n,e),o=Ai(t,e),i=Ni(o);if(0===i)return e;var a,u,l,c,s=(u=o,((a=r).x*u.x+a.y*u.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:(l=o).x*c,y:l.y*c}))}function Li(e){var t,n,r=e.keys,o=e.model,i=e.chart,a=e.pos,u=e.lineNode,l=o,c=i.component(r.trendlines),s=i.scale(r.majorScale),f=i.scale(r.minorScale),d=u.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=Ni(Ai(i,t));a<n&&(n=a,r=i)}return r}(u.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 l.query.isFlipped(d)?(n=f.invert(p.y/c.rect.computed.height),t=l.query.getCalculatedValue(d,n).y,p.x=s(t)*c.rect.computed.width):(t=s.invert(p.x/c.rect.computed.width),n=l.query.getCalculatedValue(d,t).y,p.y=f(n)*c.rect.computed.height),{key:u.key,children:[],data:{layer:d,x:t,y:n},bounds:{x:p.x,y:p.y,width:0,height:0}}}function Ti(e){var t=e.animations,n=e.chart,r=e.colorService,o=e.isEnabled,i=e.keys,a=void 0===i?{}:i,u=e.layoutService,l=e.orientation,c=e.translator,s=e.getMinMax;a.trendlines||(a.trendlines=\"trend-lines\");var f=Ci({layoutService:u,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 Ii(a,{animations:t,layoutService:u,trendLineModel:f,orientation:l})},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?[Li({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()}}}Ti.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(wi.TYPES[e.qType])};return{type:\"array\",ref:\"qTrendLines\",titleTranslation:wi.HEADER,itemTitleRef:n,max:8,allowAdd:!0,allowRemove:!0,allowMove:!1,addTranslation:wi.ADD_BUTTON,add:Oi,items:{label:{ref:\"label\",type:\"string\",expression:\"optional\",translation:\"Common.Label\",defaultValue:\"\"},type:{ref:\"qType\",type:\"string\",component:\"dropdown\",translation:wi.TYPE,options:[{value:ci,translation:wi.TYPES.AVERAGE},{value:si,translation:wi.TYPES.LINEAR},{value:fi,translation:wi.TYPES.POLYNOMIAL2},{value:di,translation:wi.TYPES.POLYNOMIAL3},{value:pi,translation:wi.TYPES.POLYNOMIAL4},{value:vi,translation:wi.TYPES.EXPONENTIAL},{value:hi,translation:wi.TYPES.LOG},{value:mi,translation:wi.TYPES.POWER}],defaultValue:ci},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:Mi,show:function(e){return!e.style.autoColor}},dashed:{ref:\"style.dashed\",translation:wi.STYLE.DASHED,type:\"boolean\",defaultValue:!0,change:Ei}}}};export{pt as cache,et as colorService,mt as debouncer,st as dockService,ft as getValue,wt as layoutService,vt as memoize,kt as pluginService,po as selectionService,dt as setValue,ht as storage,Mo as themeService,yt as throttler,li as tooltipService,Ti as trendlinesService};\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 minimumLayoutMode: 'SPARK',\n prioOrder: 60,\n displayOrder: -10,\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 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 };\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 };\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 };\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","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","/* eslint no-nested-ternary: 0 */\n\nimport extend from 'extend';\n\nexport function getFieldAccessor(field, page, deps) {\n if (!field) {\n return -1;\n }\n const cache = deps.cache;\n const origin = field.origin ? field.origin() : null;\n if (origin) {\n field = origin;\n }\n let fieldIdx = cache.fields.indexOf(field);\n let attrIdx = -1;\n let attrDimIdx = -1;\n if (fieldIdx === -1) {\n for (let i = 0; i < cache.wrappedFields.length; i++) {\n attrDimIdx = cache.wrappedFields[i].attrDims.map((v) => v.instance).indexOf(field);\n attrIdx = cache.wrappedFields[i].attrExps.map((v) => v.instance).indexOf(field);\n if (attrDimIdx !== -1 || attrIdx !== -1) {\n fieldIdx = i;\n break;\n }\n }\n }\n\n fieldIdx -= page.qArea.qLeft;\n if (fieldIdx < 0 || fieldIdx >= page.qArea.qWidth) {\n // throw new Error('Field out of range');\n return -1;\n }\n\n if (attrDimIdx >= 0) {\n return (row) => row[fieldIdx].qAttrDims.qValues[attrDimIdx];\n }\n if (attrIdx >= 0) {\n return (row) => row[fieldIdx].qAttrExps.qValues[attrIdx];\n }\n\n return (row) => row[fieldIdx];\n}\n\n// TODO - handle 'other' value\n// const specialTextValues = {\n// '-3': (meta) => {\n// if ('othersLabel' in meta) {\n// return meta.othersLabel;\n// }\n// return '';\n// }\n// };\n\nfunction datumExtract(propCfg, cell, { key }) {\n const datum = {\n value:\n typeof propCfg.value === 'function'\n ? propCfg.value(cell)\n : typeof propCfg.value !== 'undefined'\n ? propCfg.value\n : cell, // eslint-disable-line no-nested-ternary\n };\n\n datum.label =\n typeof propCfg.label === 'function'\n ? propCfg.label(cell)\n : typeof propCfg.label !== 'undefined'\n ? String(propCfg.label)\n : String(datum.value); // eslint-disable-line no-nested-ternary\n\n if (propCfg.field) {\n datum.source = {\n key,\n field: propCfg.field.key(),\n };\n }\n\n return datum;\n}\n\nfunction cellToValue({ cache, f, mainCell, p, prop, page, rowIdx, row, sourceKey, target, targetProp }) {\n let propCell = mainCell;\n if (p.field && p.field !== f) {\n const propCellFn = getFieldAccessor(p.field, page, { cache });\n if (propCellFn === -1) {\n return;\n }\n propCell = extend({ qRow: rowIdx }, propCellFn(row));\n }\n target[targetProp] = datumExtract(p, propCell, { key: sourceKey }, prop);\n}\n\nexport default function extract(config, dataset, cache, util) {\n const cfgs = Array.isArray(config) ? config : [config];\n let dataItems = [];\n for (let i = 0; i < cfgs.length; i++) {\n if (typeof cfgs[i].field !== 'undefined') {\n const cube = dataset.raw();\n const sourceKey = dataset.key();\n const f = typeof cfgs[i].field === 'object' ? cfgs[i].field : dataset.field(cfgs[i].field);\n const { props, main } = util.normalizeConfig(cfgs[i], dataset);\n const propsArr = Object.keys(props);\n\n const track = !!cfgs[i].trackBy;\n const trackType = typeof cfgs[i].trackBy;\n const tracker = {};\n const trackedItems = [];\n const items = [];\n\n for (let j = 0; j < cube.qDataPages.length; j++) {\n const fn = getFieldAccessor(f, cube.qDataPages[j], { cache });\n if (fn === -1) {\n continue;\n }\n for (let k = 0; k < cube.qDataPages[j].qMatrix.length; k++) {\n const rowIdx = cube.qDataPages[j].qArea.qTop + k;\n const mainCell = extend({ qRow: rowIdx }, fn(cube.qDataPages[j].qMatrix[k]));\n const ret = datumExtract(main, mainCell, { key: sourceKey });\n const exclude = main.filter && !main.filter(mainCell);\n if (exclude) {\n continue;\n }\n\n for (let l = 0; l < propsArr.length; l++) {\n const p = props[propsArr[l]];\n let arr = p.fields || [p];\n\n if (p.fields) {\n ret[propsArr[l]] = [];\n }\n\n // loop through all props that need to be mapped and\n // assign 'value' and 'source' to each property\n for (let m = 0; m < arr.length; m++) {\n cellToValue({\n cache,\n f,\n mainCell,\n p: arr[m],\n prop: propsArr[l],\n props,\n page: cube.qDataPages[j],\n rowIdx,\n row: cube.qDataPages[j].qMatrix[k],\n sourceKey,\n target: p.fields ? ret[propsArr[l]] : ret,\n targetProp: p.fields ? m : propsArr[l],\n });\n }\n\n if (p.fields) {\n const fieldValues = ret[propsArr[l]].map((v) => v.value);\n const fieldLabels = ret[propsArr[l]].map((v) => v.label);\n ret[propsArr[l]] = {\n value:\n typeof p.value === 'function'\n ? p.value(fieldValues)\n : typeof p.value !== 'undefined'\n ? p.value\n : fieldValues,\n label:\n typeof p.label === 'function'\n ? p.label(fieldLabels)\n : typeof p.label !== 'undefined'\n ? String(p.label)\n : String(ret[propsArr[l]].value),\n };\n }\n }\n\n // collect items based on the trackBy value\n // items with the same trackBy value are placed in an array and reduced later\n if (track) {\n util.track({\n cfg: cfgs[i],\n itemData: mainCell,\n obj: ret,\n target: trackedItems,\n tracker,\n trackType,\n });\n }\n\n items.push(ret);\n }\n }\n\n // reduce if items have been grouped\n const tmp = track\n ? util.collect(trackedItems, {\n main,\n propsArr,\n props,\n })\n : items;\n dataItems = [...dataItems, ...tmp];\n }\n }\n return dataItems;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback) {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], children, i;\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], next = [], children, i, n;\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n while (node = next.pop()) {\n callback(node);\n }\n return this;\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\n\nexport default function hierarchy(data, children) {\n var root = new Node(data),\n valued = +data.value && (root.value = data.value),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n if (children == null) children = defaultChildren;\n\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction defaultChildren(d) {\n return d.children;\n}\n\nfunction copyData(node) {\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n};\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","import {required} from \"./accessors.js\";\nimport {Node, computeHeight} from \"./hierarchy/index.js\";\n\nvar keyPrefix = \"$\", // Protect against keys like “__proto__”.\n preroot = {depth: -1},\n ambiguous = {};\n\nfunction defaultId(d) {\n return d.id;\n}\n\nfunction defaultParentId(d) {\n return d.parentId;\n}\n\nexport default function() {\n var id = defaultId,\n parentId = defaultParentId;\n\n function stratify(data) {\n var d,\n i,\n n = data.length,\n root,\n parent,\n node,\n nodes = new Array(n),\n nodeId,\n nodeKey,\n nodeByKey = {};\n\n for (i = 0; i < n; ++i) {\n d = data[i], node = nodes[i] = new Node(d);\n if ((nodeId = id(d, i, data)) != null && (nodeId += \"\")) {\n nodeKey = keyPrefix + (node.id = nodeId);\n nodeByKey[nodeKey] = nodeKey in nodeByKey ? ambiguous : node;\n }\n }\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], nodeId = parentId(data[i], i, data);\n if (nodeId == null || !(nodeId += \"\")) {\n if (root) throw new Error(\"multiple roots\");\n root = node;\n } else {\n parent = nodeByKey[keyPrefix + nodeId];\n if (!parent) throw new Error(\"missing: \" + nodeId);\n if (parent === ambiguous) throw new Error(\"ambiguous: \" + nodeId);\n if (parent.children) parent.children.push(node);\n else parent.children = [node];\n node.parent = parent;\n }\n }\n\n if (!root) throw new Error(\"no root\");\n root.parent = preroot;\n root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight);\n root.parent = null;\n if (n > 0) throw new Error(\"cycle\");\n\n return root;\n }\n\n stratify.id = function(x) {\n return arguments.length ? (id = required(x), stratify) : id;\n };\n\n stratify.parentId = function(x) {\n return arguments.length ? (parentId = required(x), stratify) : parentId;\n };\n\n return stratify;\n}\n","/**\n * Resolves the value at the given JSON path\n * @private\n * @param {String} path [description]\n * @param {Object} obj [description]\n * @return {Object} [description]\n *\n * @example\n * let path = \"/path/to/paradise\";\n * let obj = {\n * path: {\n * to: { paradise: \"heaven\"},\n * from: {...}\n * }\n * };\n * resolve( path, obj ); // \"heaven\"\n */\nexport default function resolve(path, obj) {\n if (path.charAt(0) === '/') {\n path = path.substring(1);\n }\n const arr = path.split('/');\n let subpath;\n let container = obj;\n for (let i = 0; i < arr.length; i++) {\n if (arr[i] === '*' && Array.isArray(container)) {\n const carr = [];\n subpath = arr.slice(i + 1).join('/');\n for (let c = 0; c < container.length; c++) {\n let v = resolve(subpath, container[c]);\n // v.forEach(_ => _._parent = container[c]);\n if (Array.isArray(v)) {\n carr.push(...v);\n } else {\n carr.push(v);\n }\n }\n return carr;\n // return container.map(v => resolve(arr.slice(i + 1).join('/'), v));\n }\n if (!arr[i] && Array.isArray(container)) {\n const carr = new Array(container.length);\n subpath = arr.slice(i + 1).join('/');\n for (let c = 0; c < container.length; c++) {\n carr[c] = resolve(subpath, container[c]);\n }\n return carr;\n // return container.map(v => resolve(arr.slice(i + 1).join('/'), v));\n }\n if (arr[i] in container) {\n container = container[arr[i]];\n }\n }\n\n return container;\n}\n","function flattenTree(children, steps, arrIndexAtTargetDepth) {\n let arr = [];\n if (!children || !children.length) {\n return arr;\n }\n if (steps <= 0) {\n const nodes = arrIndexAtTargetDepth >= 0 ? [children[arrIndexAtTargetDepth]] : children;\n arr = [...arr, ...nodes];\n } else {\n for (let i = 0; i < children.length; i++) {\n if (children[i].children && children[i].children.length) {\n arr = [...arr, ...flattenTree(children[i].children, steps - 1, arrIndexAtTargetDepth)];\n }\n }\n }\n return arr;\n}\n\nexport function treeAccessor(sourceDepth, targetDepth, arrIndexAtTargetDepth) {\n if (sourceDepth === targetDepth) {\n return (d) => d;\n }\n if (sourceDepth > targetDepth) {\n // traverse upwards\n const steps = Math.max(0, Math.min(100, sourceDepth - targetDepth));\n return (node) => {\n let n = node;\n for (let i = 0; i < steps; ++i) {\n n = n.parent;\n }\n return n;\n };\n }\n if (targetDepth > sourceDepth) {\n // flatten descendants\n const steps = Math.max(0, Math.min(100, targetDepth - sourceDepth));\n return (node) => flattenTree(node.children, steps - 1, arrIndexAtTargetDepth);\n }\n return false;\n}\n\nexport function findField(query, { cache }) {\n if (typeof query === 'number') {\n return cache.fields[query];\n }\n\n const allFields = cache.allFields;\n if (typeof query === 'function') {\n for (let i = 0; i < allFields.length; i++) {\n if (query(allFields[i])) {\n return allFields[i];\n }\n }\n return false;\n }\n if (typeof query === 'string') {\n for (let i = 0; i < allFields.length; i++) {\n if (allFields[i].key() === query || allFields[i].title() === query) {\n return allFields[i];\n }\n }\n } else if (query && allFields.indexOf(query) !== -1) {\n // assume 'query' is a field instance\n return query;\n }\n\n throw Error(`Field not found: ${query}`);\n}\n","/* eslint no-nested-ternary: 0 */\n\nimport { hierarchy, stratify } from 'd3-hierarchy';\n\nimport picker from '../json-path-resolver';\n\nimport { treeAccessor } from './util';\n\nconst DIM_RX = /^qDimensionInfo(?:\\/(\\d+))?/;\nconst M_RX = /^\\/?qMeasureInfo\\/(\\d+)/;\nconst ATTR_EXPR_RX = /\\/qAttrExprInfo\\/(\\d+)/;\nconst ATTR_DIM_RX = /\\/qAttrDimInfo\\/(\\d+)/;\n\nfunction getColumnOrder(dataset) {\n const qColumnOrder = dataset.raw().qColumnOrder;\n const fields = dataset.fields();\n\n return qColumnOrder && qColumnOrder.length === fields.length ? qColumnOrder : fields.map((f, i) => i);\n}\n\nfunction getDimensionColumnOrder(cube) {\n const order =\n cube.qColumnOrder && cube.qColumnOrder.length ? cube.qColumnOrder : cube.qDimensionInfo.map((d, ii) => ii);\n\n return order.filter((ii) => ii < cube.qDimensionInfo.length);\n}\n\nexport function getFieldDepth(field, { cube }) {\n if (!field) {\n return -1;\n }\n\n let key = field.origin && field.origin() ? field.origin().key() : field.key();\n let isFieldDimension = false;\n let fieldIdx = -1; // cache.fields.indexOf(field);\n let attrIdx = -1;\n let attrDimIdx = -1;\n let fieldDepth = -1;\n let pseudoMeasureIndex = -1;\n let measureIdx = -1;\n let remainder = key;\n\n const treeOrder = cube.qEffectiveInterColumnSortOrder;\n const columnOrder = getDimensionColumnOrder(cube);\n\n if (DIM_RX.test(remainder)) {\n isFieldDimension = true;\n fieldIdx = +DIM_RX.exec(remainder)[1];\n remainder = key.replace(DIM_RX, '');\n }\n\n if (M_RX.test(remainder)) {\n if (cube.qMode === 'K') {\n pseudoMeasureIndex = +M_RX.exec(remainder)[1];\n } else if (treeOrder && treeOrder.indexOf(-1) !== -1) {\n pseudoMeasureIndex = +M_RX.exec(remainder)[1];\n measureIdx = 0;\n } else {\n measureIdx = +M_RX.exec(remainder)[1];\n }\n remainder = remainder.replace(M_RX, '');\n }\n\n if (remainder) {\n if (ATTR_DIM_RX.exec(remainder)) {\n attrDimIdx = +ATTR_DIM_RX.exec(remainder)[1];\n } else if (ATTR_EXPR_RX.exec(remainder)) {\n attrIdx = +ATTR_EXPR_RX.exec(remainder)[1];\n }\n }\n\n if (isFieldDimension) {\n if (cube.qMode === 'S') {\n fieldDepth = columnOrder[fieldIdx];\n } else {\n fieldDepth = treeOrder ? treeOrder.indexOf(fieldIdx) : fieldIdx;\n }\n } else if (treeOrder && treeOrder.indexOf(-1) !== -1) {\n // if pseudo dimension exists in sort order\n fieldDepth = treeOrder.indexOf(-1); // depth of pesudodimension\n } else {\n // assume measure is at the bottom of the tree\n fieldDepth = cube.qDimensionInfo.length - (cube.qMode === 'K' ? 0 : 1);\n }\n\n return {\n fieldDepth: fieldDepth + 1, // +1 due to root node\n pseudoMeasureIndex,\n measureIdx,\n attrDimIdx,\n attrIdx,\n };\n}\n\nfunction getFieldAccessor(sourceDepthObject, targetDepthObject) {\n let nodeFn = treeAccessor(\n sourceDepthObject.fieldDepth,\n targetDepthObject.fieldDepth,\n targetDepthObject.pseudoMeasureIndex\n );\n let valueFn;\n\n if (targetDepthObject.measureIdx >= 0) {\n valueFn = (node) => node.data.qValues[targetDepthObject.measureIdx];\n } else {\n valueFn = (node) => node.data;\n }\n let attrFn;\n\n if (targetDepthObject.attrDimIdx >= 0) {\n attrFn = (data) => data?.qAttrDims?.qValues[targetDepthObject.attrDimIdx];\n } else if (targetDepthObject.attrIdx >= 0) {\n attrFn = (data) => data?.qAttrExps?.qValues[targetDepthObject.attrIdx];\n }\n\n return {\n nodeFn,\n attrFn,\n valueFn,\n };\n}\n\nfunction datumExtract(propCfg, cell, { key }) {\n const datum = {\n value:\n typeof propCfg.value === 'function'\n ? propCfg.value(cell)\n : typeof propCfg.value !== 'undefined'\n ? propCfg.value\n : cell, // eslint-disable-line no-nested-ternary\n };\n\n datum.label =\n typeof propCfg.label === 'function'\n ? propCfg.label(cell)\n : typeof propCfg.label !== 'undefined'\n ? String(propCfg.label)\n : String(datum.value); // eslint-disable-line no-nested-ternary\n\n if (propCfg.field) {\n datum.source = {\n key,\n field: propCfg.field.key(),\n };\n }\n\n return datum;\n}\n\nfunction doIt({ propsArr, props, item, itemData, ret, sourceKey }) {\n for (let i = 0; i < propsArr.length; i++) {\n const pCfg = props[propsArr[i]];\n const arr = pCfg.fields || [pCfg];\n let coll;\n let collStr;\n if (pCfg.fields) {\n coll = [];\n collStr = [];\n }\n\n for (let j = 0; j < arr.length; j++) {\n const p = arr[j];\n let fn;\n let str;\n let value;\n let nodes;\n let cells;\n let label;\n if (p.type === 'primitive') {\n value = p.value;\n label = String(p.value);\n } else {\n if (typeof p.value === 'function') {\n fn = (v) => p.value(v, item);\n }\n if (typeof p.label === 'function') {\n str = (v) => p.label(v, item);\n }\n if (p.accessor) {\n nodes = p.accessor(item);\n if (Array.isArray(nodes)) {\n // propably descendants\n cells = nodes.map(p.valueAccessor);\n if (p.attrAccessor) {\n cells = cells.map(p.attrAccessor);\n }\n if (fn) {\n value = cells.map(fn);\n fn = null;\n }\n if (str) {\n label = cells.map(str);\n str = null;\n }\n value = p.reduce ? p.reduce(value) : value;\n label = p.reduceLabel ? p.reduceLabel(label, value) : String(value);\n } else {\n value = p.attrAccessor ? p.attrAccessor(p.valueAccessor(nodes)) : p.valueAccessor(nodes);\n label = value;\n }\n } else {\n value = itemData;\n label = itemData;\n }\n }\n if (pCfg.fields) {\n const v = fn ? fn(value) : value;\n coll.push(v);\n collStr.push(str && label != null ? str(label) : label != null ? label : String(v));\n } else {\n const v = fn ? fn(value) : value;\n ret[propsArr[i]] = {\n value: v,\n label: str ? str(label) : label != null ? label : String(v),\n };\n if (p.field) {\n ret[propsArr[i]].source = { field: p.field.key(), key: sourceKey };\n }\n }\n }\n if (coll) {\n ret[propsArr[i]] = {\n value: typeof pCfg.value === 'function' ? pCfg.value(coll, item) : coll,\n label: typeof pCfg.label === 'function' ? pCfg.label(collStr, item) : collStr,\n };\n }\n }\n}\n\nconst getHierarchy = (cube, cache, config) => {\n const rootPath = cube.qMode === 'K' ? '/qStackedDataPages/*/qData' : '/qTreeDataPages/*';\n const childNodes = cube.qMode === 'K' ? 'qSubNodes' : 'qNodes';\n const root = picker(rootPath, cube);\n if (!root || !root[0]) {\n return null;\n }\n cache.tree = hierarchy(root[0], config.children || ((node) => node[childNodes]));\n return cache.tree;\n};\n\nfunction getHierarchyForSMode(dataset) {\n const matrix = dataset.raw().qDataPages.length ? dataset.raw().qDataPages[0].qMatrix : [];\n const order = getColumnOrder(dataset);\n const fields = dataset.fields();\n const dimensions = dataset\n .fields()\n .filter((f) => f.type() === 'dimension')\n .map((f) => order.indexOf(fields.indexOf(f)));\n const measures = dataset\n .fields()\n .filter((f) => f.type() === 'measure')\n .map((f) => order.indexOf(fields.indexOf(f)));\n\n const root = {\n __id: '__root',\n qValues: [],\n };\n\n const keys = {\n __root: root,\n };\n\n for (let r = 0; r < matrix.length; r++) {\n const row = matrix[r];\n let id = '__root';\n // let parent = root;\n let isNew = false;\n for (let c = 0; c < dimensions.length; c++) {\n const cell = row[dimensions[c]];\n const key = `${id}__${cell.qElemNumber ?? cell.qElemNo}`;\n if (!keys[key]) {\n keys[key] = {\n __id: key,\n __parent: id,\n qValues: [],\n ...cell,\n };\n isNew = true;\n }\n id = key;\n }\n if (isNew) {\n for (let c = 0; c < measures.length; c++) {\n const cell = row[measures[c]];\n keys[id].qValues.push(cell);\n }\n }\n }\n\n const nodes = Object.keys(keys).map((key) => keys[key]);\n\n const h = stratify()\n .id((d) => d.__id)\n .parentId((d) => d.__parent)(nodes);\n\n return h;\n}\n\nconst attachPropsAccessors = ({ propsArr, props, cube, cache, itemDepthObject, f }) => {\n for (let i = 0; i < propsArr.length; i++) {\n const pCfg = props[propsArr[i]];\n const arr = pCfg.fields ? pCfg.fields : [pCfg];\n for (let j = 0; j < arr.length; j++) {\n const p = arr[j];\n if (p.field !== f) {\n const depthObject = getFieldDepth(p.field, { cube, cache });\n const accessors = getFieldAccessor(itemDepthObject, depthObject);\n p.accessor = accessors.nodeFn; // nodes accessor\n p.valueAccessor = accessors.valueFn; // cell accessor\n p.attrAccessor = accessors.attrFn; // attr cell accessor\n }\n }\n }\n};\n\nexport function augment(config = {}, dataset, cache, util) {\n const cube = dataset.raw();\n const sourceKey = dataset.key();\n const h = cube.qMode === 'S' ? getHierarchyForSMode(dataset) : getHierarchy(cube, cache, config);\n if (!h) {\n return null;\n }\n\n const height = h.height;\n const propDefs = [];\n for (let i = 0; i <= height; i++) {\n let f = null;\n if (i > 0) {\n if (cube.qMode === 'S') {\n const order = getDimensionColumnOrder(cube);\n let idx = order[i - 1];\n f = cache.fields[idx];\n } else {\n let idx = cube.qEffectiveInterColumnSortOrder[i - 1];\n // if (idx === -1) { // pseudo\n // let childIdx = node.parent.children.indexOf(node);\n // idx = cube.qDimensionInfo.length + childIdx; // measure field\n // }\n if (i > cube.qEffectiveInterColumnSortOrder.length) {\n idx = cube.qDimensionInfo.length;\n }\n\n f = cache.fields[idx];\n }\n }\n\n const { props, main } = util.normalizeConfig({ ...config, field: f ? f.key() : undefined }, dataset);\n const propsArr = Object.keys(props);\n propDefs[i] = { propsArr, props, main };\n\n const itemDepthObject = f ? getFieldDepth(f, { cube, cache }) : { fieldDepth: 0 };\n\n attachPropsAccessors({\n propsArr,\n props,\n cube,\n cache,\n itemDepthObject,\n f,\n });\n }\n\n const replica = h.copy();\n const replicaDescendants = replica.descendants();\n const descendants = h.descendants();\n\n for (let i = 0; i < descendants.length; i++) {\n const propsArr = propDefs[descendants[i].depth].propsArr;\n const props = propDefs[descendants[i].depth].props;\n const main = propDefs[descendants[i].depth].main;\n\n const item = replicaDescendants[i];\n const itemData = item.data; // main.valueAccessor(currentOriginal);\n\n const ret = datumExtract(main, itemData, { key: sourceKey });\n doIt({\n propsArr,\n props,\n item,\n itemData,\n ret,\n sourceKey,\n isTree: true,\n });\n descendants[i].data = ret;\n }\n return h;\n}\n\nexport function extract(config, dataset, cache, util) {\n const cfgs = Array.isArray(config) ? config : [config];\n let dataItems = [];\n for (let g = 0; g < cfgs.length; g++) {\n if (typeof cfgs[g].field !== 'undefined') {\n const cube = dataset.raw();\n const sourceKey = dataset.key();\n const h = getHierarchy(cube, cache, config);\n if (!h) {\n continue;\n }\n\n const f = typeof cfgs[g].field === 'object' ? cfgs[g].field : dataset.field(cfgs[g].field);\n const { props, main } = util.normalizeConfig(cfgs[g], dataset);\n const propsArr = Object.keys(props);\n\n const itemDepthObject = getFieldDepth(f, { cube, cache });\n const { nodeFn, attrFn, valueFn } = getFieldAccessor({ fieldDepth: 0 }, itemDepthObject);\n\n attachPropsAccessors({\n propsArr,\n props,\n cube,\n cache,\n itemDepthObject,\n f,\n });\n\n const track = !!cfgs[g].trackBy;\n const trackType = typeof cfgs[g].trackBy;\n const tracker = {};\n const trackedItems = [];\n\n const items = nodeFn(cache.tree);\n const mapped = [];\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const itemData = attrFn ? attrFn(valueFn(item)) : valueFn(item);\n const exclude = main.filter && !main.filter(itemData);\n if (exclude) {\n continue;\n }\n const ret = datumExtract(main, itemData, { key: sourceKey });\n doIt({\n propsArr,\n props,\n item,\n itemData,\n ret,\n sourceKey,\n });\n // collect items based on the trackBy value\n // items with the same trackBy value are placed in an array and reduced later\n if (track) {\n util.track({\n cfg: cfgs[g],\n itemData,\n obj: ret,\n target: trackedItems,\n tracker,\n trackType,\n });\n }\n mapped.push(ret);\n }\n // reduce if items have been grouped\n const tmp = track\n ? util.collect(trackedItems, {\n main,\n propsArr,\n props,\n })\n : mapped;\n dataItems = [...dataItems, ...tmp];\n }\n }\n return dataItems;\n}\n","/*! javascript-number-formatter - v1.1.11 - http://mottie.github.com/javascript-number-formatter/ * © ecava */\n!function(a,b){\"function\"==typeof define&&define.amd?define([],b):\"object\"==typeof module?module.exports=b():a.format=b()}(this,function(){return function(a,b){\"use strict\";if(!a||isNaN(+b))return b;var c,d,e,f,g,h,i,j,k,l,m=a.length,n=a.search(/[0-9\\-\\+#]/),o=n>0?a.substring(0,n):\"\",p=a.split(\"\").reverse().join(\"\"),q=p.search(/[0-9\\-\\+#]/),r=m-q,s=a.substring(r,r+1),t=r+(\".\"===s||\",\"===s?1:0),u=q>0?a.substring(t,m):\"\";if(a=a.substring(n,t),b=\"-\"===a.charAt(0)?-b:+b,c=b<0?b=-b:0,d=a.match(/[^\\d\\-\\+#]/g),e=d&&d[d.length-1]||\".\",f=d&&d[1]&&d[0]||\",\",a=a.split(e),b=b.toFixed(a[1]&&a[1].length),b=+b+\"\",h=a[1]&&a[1].lastIndexOf(\"0\"),j=b.split(\".\"),(!j[1]||j[1]&&j[1].length<=h)&&(b=(+b).toFixed(h+1)),k=a[0].split(f),a[0]=k.join(\"\"),g=a[0]&&a[0].indexOf(\"0\"),g>-1)for(;j[0].length<a[0].length-g;)j[0]=\"0\"+j[0];else 0===+j[0]&&(j[0]=\"\");if(b=b.split(\".\"),b[0]=j[0],i=k[1]&&k[k.length-1].length){for(l=b[0],p=\"\",r=l.length%i,m=l.length,t=0;t<m;t++)p+=l.charAt(t),!((t-r+1)%i)&&t<m-i&&(p+=f);b[0]=p}return b[1]=a[1]&&b[1]?e+b[1]:\"\",d=b.join(\"\"),\"0\"!==d&&\"\"!==d||(c=!1),o+((c?\"-\":\"\")+d)+u}});","import formatter from 'number-format.js';\n\nfunction escapeRegExp(str) {\n return str.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&');\n}\n\nconst SIprefixes = {\n 3: 'k',\n 6: 'M',\n 9: 'G',\n 12: 'T',\n 15: 'P',\n 18: 'E',\n 21: 'Z',\n 24: 'Y',\n '-3': 'm',\n '-6': 'μ',\n '-9': 'n',\n '-12': 'p',\n '-15': 'f',\n '-18': 'a',\n '-21': 'z',\n '-24': 'y',\n },\n percentage = /%$/,\n // scientific = /e[\\+\\-][0-9]+/,\n radix = /^\\(r(0[2-9]|[12]\\d|3[0-6])\\)/i,\n oct = /^\\(oct\\)/i,\n dec = /^\\(dec\\)/i,\n hex = /^\\(hex\\)/i,\n bin = /^\\(bin\\)/i,\n rom = /^\\(rom\\)/i,\n functional = /^(\\(rom\\)|\\(bin\\)|\\(hex\\)|\\(dec\\)|\\(oct\\)|\\(r(0[2-9]|[12]\\d|3[0-6])\\))/i,\n prec = /#|0/g;\n\nfunction formatRadix(value, fradix, pattern, decimal) {\n value = value.toString(fradix);\n if (pattern[1] === pattern[1].toUpperCase()) {\n value = value.toUpperCase();\n }\n if (value.length - value.indexOf('.') > 10) {\n // limit to 10 decimal places\n value = value.slice(0, value.indexOf('.') + 11);\n }\n\n return value.replace('.', decimal || '.');\n}\n\n// value must be an integer\n// value must not be in scientific notation\nfunction formatRoman(value, pattern) {\n let i,\n s = '',\n v = Number(String(value).slice(-3)),\n nThousands = (value - v) / 1000,\n decimal = [0, 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900].reverse(),\n numeral = ['0', 'I', 'IV', 'V', 'IX', 'X', 'XL', 'L', 'XC', 'C', 'CD', 'D', 'CM'].reverse();\n\n while (v > 0) {\n for (i = 0; i < decimal.length; i++) {\n if (decimal[i] <= v) {\n s += numeral[i];\n v -= decimal[i];\n break;\n }\n }\n }\n\n for (i = 0; i < nThousands; i++) {\n s = `M${s}`;\n }\n\n if (pattern[1] !== pattern[1].toUpperCase()) {\n s = s.toLowerCase();\n }\n return s;\n}\n\nfunction formatFunctional(value, pattern, d) {\n let temp;\n if (radix.test(pattern)) {\n value = formatRadix(value, Number(/\\d{2}/.exec(pattern)[0]), pattern, d);\n } else if (oct.test(pattern)) {\n value = formatRadix(value, 8, pattern, d);\n } else if (dec.test(pattern)) {\n value = formatRadix(value, 10, pattern, d);\n } else if (hex.test(pattern)) {\n value = formatRadix(value, 16, pattern, d);\n } else if (bin.test(pattern)) {\n value = formatRadix(value, 2, pattern, d);\n } else if (rom.test(pattern)) {\n temp = '';\n if (value < 0) {\n temp = '-';\n value = -value;\n }\n value = Math.floor(value);\n if (value === 0) {\n value = '0';\n } else if (value <= 500000) {\n // limit in engine\n value = formatRoman(value, pattern);\n value = temp + value;\n } else {\n value = pattern + temp + value.toExponential(0); // to return same result as engine\n }\n }\n\n return value;\n}\n\nfunction escape(value, flags, justStr) {\n const str = escapeRegExp(value);\n if (justStr) {\n return str;\n }\n return new RegExp(str || '', flags);\n}\n\nfunction createRegExp(thousand, decimal) {\n if (decimal) {\n decimal = escapeRegExp(decimal);\n }\n if (thousand) {\n thousand = escapeRegExp(thousand);\n }\n return new RegExp(`(?:[#0]+${thousand})?[#0]+(?:${decimal}[#0]+)?`);\n}\n\nfunction getAbbreviations(localeInfo, listSeparator) {\n if (!localeInfo || !localeInfo.qNumericalAbbreviation) {\n return SIprefixes;\n }\n\n const abbreviations = {};\n let abbrs = localeInfo.qNumericalAbbreviation.split(listSeparator);\n\n abbrs.forEach((abbreviation) => {\n let abbreviationTuple = abbreviation.split(':');\n if (abbreviationTuple.length === 2) {\n abbreviations[abbreviationTuple[0]] = abbreviationTuple[1];\n }\n });\n\n return abbreviations;\n}\n\nfunction preparePattern(o, t, d, abbreviate) {\n let parts,\n lastPart,\n pattern = o.pattern,\n numericPattern,\n prefix,\n postfix,\n groupTemp,\n decTemp,\n temp,\n regex;\n\n if (abbreviate) {\n o.abbreviate = true;\n }\n\n // extract the numeric part from the pattern\n regex = createRegExp(t, d);\n numericPattern = pattern.match(regex);\n numericPattern = numericPattern ? numericPattern[0] : '';\n prefix = numericPattern ? pattern.substr(0, pattern.indexOf(numericPattern)) : pattern;\n postfix = numericPattern ? pattern.substring(pattern.indexOf(numericPattern) + numericPattern.length) : '';\n\n if (!numericPattern) {\n numericPattern = pattern ? '#' : '##########';\n }\n\n if (t && t === d) {\n // ignore grouping if grouping separator is same as decimal separator\n // extract decimal part\n parts = numericPattern.split(d);\n lastPart = parts.pop();\n numericPattern = parts.join('') + d + lastPart;\n t = '';\n }\n\n // formatting library does not support multiple characters as separator (nor +-).\n // do a temporary replacement\n groupTemp = t;\n t = /,/.test(d) ? '¤' : ',';\n if (groupTemp) {\n numericPattern = numericPattern.replace(escape(groupTemp, 'g'), t);\n }\n\n decTemp = d;\n d = '.';\n if (decTemp) {\n numericPattern = numericPattern.replace(escape(decTemp, 'g'), d);\n }\n\n temp = numericPattern.match(/#/g);\n temp = temp ? temp.length : 0;\n\n const splitPattern = pattern.split(decTemp);\n let matchPrecisionResult;\n if (splitPattern[1]) {\n matchPrecisionResult = splitPattern[1].match(prec);\n }\n\n o.prefix = prefix || '';\n o.postfix = postfix || '';\n o.pattern = pattern;\n o.maxPrecision = matchPrecisionResult ? matchPrecisionResult.length : 2;\n o.percentage = percentage.test(pattern);\n o.numericPattern = numericPattern || '';\n o.numericRegex = new RegExp(`${escape(t, null, true)}|${escape(d, null, true)}`, 'g');\n o.groupTemp = groupTemp;\n o.decTemp = decTemp;\n o.t = t;\n o.d = d;\n o.temp = temp;\n}\n\nclass NumberFormatter {\n /**\n * @name NumberFormatter\n * @constructs\n * @param {Object} localeInfo\n * @param {String} pattern\n * @param {String} [thousand]\n * @param {String} [decimal]\n * @param {String} [type]\n */\n constructor(localeInfo, pattern, thousand, decimal, type) {\n this.localeInfo = localeInfo;\n this.pattern = pattern;\n this.thousandDelimiter = thousand || ',';\n this.decimalDelimiter = decimal || '.';\n this.type = type || 'numeric';\n\n // FIXME qListSep?\n // this.patternSeparator = this.localeInfo && this.localeInfo.qListSep ? this.localeInfo.qListSep : ';';\n this.patternSeparator = ';';\n\n this.abbreviations = getAbbreviations(localeInfo, this.patternSeparator);\n\n this.prepare();\n }\n\n clone() {\n const n = new NumberFormatter(\n this.localeInfo,\n this.pattern,\n this.thousandDelimiter,\n this.decimalDelimiter,\n this.type\n );\n n.subtype = this.subtype;\n return n;\n }\n\n /**\n * Formats a number according to a specific pattern.\n * Use # for optional numbers and 0 for padding.\n * @param {Number} value Number to format.\n * @param {String} [pattern] The pattern to apply.\n * @param {String} [t] Grouping separator.\n * @param {String} [d] Decimal delimiter.\n * @example\n * format(10, \"0\") // 10;\n * format(10, \"#\") // 10;\n * format(10, \"##.#\") // 10;\n * format(10, \"##.0\") // 10.0;\n * format(10, \"000\") // 010;\n * format(10.123, \"0.0\") // 10.1;\n * format(10.123, \"0.00##\") // 10.123; // at least 2 decimals, never more than 4\n * format(123456789, \"#,###\") // 123,456,789;\n * format(123456789, \"####-####\", \"-\") // 1-2345-6789;\n *\n * format(0.257, \"0.0%\") // 25.7%; // will multiply by 100\n * format(9876, \"$#,###\") // $9,876;\n * format(-9876, \"$#,###;$(#,###)\") // $(9,876); // use ; for alternative formatting for negative values\n * format(10, \"(r16)\") // a; // radix 16\n * format(15, \"(hex)\") // f; // same as (r16)\n * format(15, \"(HEX)\") // F;\n * format(10, \"(bin)\") // 1010; // same as (r02)\n * format(10, \"(oct)\") // 12; // same as (r08)\n */\n format(value, pattern, t, d) {\n this.prepare(pattern, t, d);\n return this.formatValue(value);\n }\n\n prepare(pattern, t, d) {\n let prep;\n\n if (typeof pattern === 'undefined') {\n pattern = this.pattern;\n }\n if (typeof t === 'undefined') {\n t = this.thousandDelimiter;\n }\n if (typeof d === 'undefined') {\n d = this.decimalDelimiter;\n }\n\n if (!pattern) {\n this._prepared = { pattern: false };\n return;\n }\n\n this._prepared = {\n positive: {\n d,\n t,\n abbreviate: false,\n isFunctional: false,\n prefix: '',\n postfix: '',\n },\n negative: {\n d,\n t,\n abbreviate: false,\n isFunctional: false,\n prefix: '',\n postfix: '',\n },\n zero: {\n d,\n t,\n abbreviate: false,\n isFunctional: false,\n prefix: '',\n postfix: '',\n },\n };\n prep = this._prepared;\n\n pattern = pattern.split(this.patternSeparator);\n prep.positive.pattern = pattern[0];\n prep.negative.pattern = pattern[1];\n prep.zero.pattern = pattern[2];\n if (functional.test(pattern[0])) {\n prep.positive.isFunctional = true;\n }\n if (!pattern[1]) {\n prep.negative = false;\n } else if (functional.test(pattern[1])) {\n prep.negative.isFunctional = true;\n }\n if (!pattern[2]) {\n prep.zero = false;\n } else if (functional.test(pattern[2])) {\n prep.zero.isFunctional = true;\n }\n\n const abbreviate = this.type === 'U';\n if (!prep.positive.isFunctional) {\n preparePattern(prep.positive, t, d, abbreviate);\n }\n if (prep.negative && !prep.negative.isFunctional) {\n preparePattern(prep.negative, t, d, abbreviate);\n }\n if (prep.zero && !prep.zero.isFunctional) {\n preparePattern(prep.zero, t, d, abbreviate);\n }\n }\n\n formatValue(value) {\n let prep = this._prepared,\n temp,\n exponent,\n abbr = '',\n absValue,\n num,\n sciValue = '',\n d,\n t,\n i,\n numericPattern,\n decimalPartPattern,\n original = value;\n\n if (isNaN(value)) {\n return `${original}`;\n }\n\n value = +value;\n\n if (prep.pattern === false) {\n return value.toString();\n }\n\n if (value === 0 && prep.zero) {\n prep = prep.zero;\n return prep.pattern;\n }\n if (value < 0 && prep.negative) {\n prep = prep.negative;\n value = -value;\n } else {\n prep = prep.positive;\n }\n d = prep.d;\n t = prep.t;\n\n if (prep.isFunctional) {\n value = formatFunctional(value, prep.pattern, d);\n } else {\n if (prep.percentage) {\n value *= 100;\n }\n\n if (prep.abbreviate) {\n const abbrArray = Object.keys(this.abbreviations)\n .map((key) => parseInt(key, 10))\n .sort((a, b) => a - b);\n let lowerAbbreviation;\n let upperAbbreviation = abbrArray[0];\n i = 0;\n exponent = Number(Number(value).toExponential().split('e')[1]);\n\n while (upperAbbreviation <= exponent && i < abbrArray.length) {\n i++;\n upperAbbreviation = abbrArray[i];\n }\n\n if (i > 0) {\n lowerAbbreviation = abbrArray[i - 1];\n }\n\n let suggestedAbbrExponent;\n\n // value and lower abbreviation is for values above 10, use the lower (move to the left <==)\n if (lowerAbbreviation && exponent > 0 && lowerAbbreviation > 0) {\n suggestedAbbrExponent = lowerAbbreviation;\n // value and lower abbreviation is for values below 0.1 (move to the right ==>)\n } else if ((exponent < 0 && lowerAbbreviation < 0) || !lowerAbbreviation) {\n // upper abbreviation is also for values below 0.1 and precision allows for using the upper abbreviation(move to the right ==>)\n if (upperAbbreviation < 0 && upperAbbreviation - exponent <= prep.maxPrecision) {\n suggestedAbbrExponent = upperAbbreviation;\n // lower abbrevaition is smaller than exponent and we can't get away with not abbreviating\n } else if (lowerAbbreviation <= exponent && !(upperAbbreviation > 0 && -exponent <= prep.maxPrecision)) {\n // (move to left <==)\n suggestedAbbrExponent = lowerAbbreviation;\n }\n }\n if (suggestedAbbrExponent) {\n abbr = this.abbreviations[suggestedAbbrExponent];\n value /= 10 ** suggestedAbbrExponent;\n }\n }\n\n absValue = Math.abs(value);\n temp = prep.temp;\n numericPattern = prep.numericPattern;\n decimalPartPattern = numericPattern.split(d)[1];\n\n if (this.type === 'I') {\n value = Math.round(value);\n }\n num = value;\n\n if (!decimalPartPattern && numericPattern.slice(-1)[0] === '#') {\n if (absValue >= 10 ** temp || absValue < 1 || absValue < 1e-4) {\n if (value === 0) {\n value = '0';\n } else if (absValue < 1e-4 || absValue >= 1e20) {\n // engine always formats values < 1e-4 in scientific form, values >= 1e20 can only be represented in scientific form\n value = num.toExponential(Math.max(1, Math.min(14, temp)) - 1);\n value = value.replace(/\\.?0+(?=e)/, '');\n sciValue = '';\n } else {\n value = value.toPrecision(Math.max(1, Math.min(14, temp)));\n if (value.indexOf('.') >= 0) {\n value = value.replace(value.indexOf('e') < 0 ? /0+$/ : /\\.?0+(?=e)/, '');\n value = value.replace('.', d);\n }\n }\n } else {\n numericPattern += d;\n temp = Math.max(0, Math.min(20, temp - Math.ceil(Math.log(absValue) / Math.log(10))));\n for (i = 0; i < temp; i++) {\n numericPattern += '#';\n }\n\n value = formatter(numericPattern, value);\n }\n } else if (absValue >= 1e15 || (absValue > 0 && absValue <= 1e-14)) {\n value = absValue ? absValue.toExponential(15).replace(/\\.?0+(?=e)/, '') : '0';\n } else {\n const wholePart = Number(\n value.toFixed(Math.min(20, decimalPartPattern ? decimalPartPattern.length : 0)).split('.')[0]\n );\n let wholePartPattern = numericPattern.split(d)[0];\n wholePartPattern += d;\n\n value = formatter(wholePartPattern, wholePart) || '0';\n\n if (decimalPartPattern) {\n const nDecimals = Math.max(0, Math.min(14, decimalPartPattern.length)); // the length of e.g. 0000#####\n const nZeroes = decimalPartPattern.replace(/#+$/, '').length;\n let decimalPart = (this.type === 'I' ? 0 : absValue % 1).toFixed(nDecimals).slice(2).replace(/0+$/, ''); // remove trailing zeroes\n\n for (i = decimalPart.length; i < nZeroes; i++) {\n decimalPart += '0';\n }\n\n if (decimalPart) {\n value += d + decimalPart;\n }\n } else if (wholePart === 0) {\n // to avoid \"-\" being prefixed to value\n num = 0;\n }\n }\n\n value = value.replace(prep.numericRegex, (m) => {\n if (m === t) {\n return prep.groupTemp;\n }\n if (m === d) {\n return prep.decTemp;\n }\n return '';\n });\n if (num < 0 && !/^-/.test(value)) {\n value = `-${value}`;\n }\n }\n\n return prep.prefix + value + sciValue + abbr + prep.postfix;\n }\n\n static getStaticFormatter() {\n return {\n prepare() {},\n formatValue(v) {\n return `${v}`;\n },\n };\n }\n}\n\nexport default function numberFormatFactory(...args) {\n return new NumberFormatter(...args);\n}\n","export default function memoize(func, opts = {}) {\n const { size = 5000, multipleArguments = false, toKey = (arg) => arg } = opts;\n let cache = Object.create(null);\n let index = Object.create(null);\n let counter = 0;\n let fifo = 0; // First-In-First-Out index\n let cacher;\n let k;\n\n if (multipleArguments) {\n cacher = (...args) => {\n k = toKey(...args);\n if (cacher.has(k)) {\n return cacher.get(k);\n }\n return cacher.set(k, func(...args));\n };\n } else {\n cacher = (arg) => {\n k = toKey(arg);\n if (cacher.has(k)) {\n return cacher.get(k);\n }\n return cacher.set(k, func(arg));\n };\n }\n\n cacher.set = (key, val) => {\n if (counter >= size) {\n delete cache[index[fifo]];\n delete index[fifo];\n counter--;\n fifo++;\n }\n cache[key] = val;\n index[counter] = key;\n counter++;\n return val;\n };\n\n cacher.get = (key) => cache[key];\n\n cacher.has = (key) => key in cache;\n\n cacher.clear = () => {\n cache = Object.create(null);\n index = Object.create(null);\n counter = 0;\n fifo = 0;\n };\n\n cacher.size = () => counter;\n\n return cacher;\n}\n","import numberFormatFactory from './parts/qs-number-formatter';\nimport memoize from './memoize';\n\nexport default function formatter(pattern, thousand, decimal, qType, localeInfo) {\n const qformat = numberFormatFactory(localeInfo, pattern, thousand, decimal, qType);\n const memoized = memoize(qformat.formatValue.bind(qformat), {\n // Handle NaN and cases where toString yields different result than +operator. Ex. a Date.\n toKey: (value) => (isNaN(value) ? value : +value),\n });\n\n /**\n * Format a value according to the specified pattern created at construct\n *\n * @param {Number} value The number to be formatted\n * @return {String} [description]\n */\n function format(value) {\n return memoized(value);\n }\n\n /**\n * Format a value according to a specific pattern\n * that is not the one specified in the constructor\n *\n * @param {String} p Pattern\n * @param {Number} v Value\n * @param {String} t Thousand\n * @param {String} d Decimal\n * @return {String} Formatted value\n */\n format.format = function formatFn(p, v, t, d) {\n memoized.clear();\n return qformat.format(v, p, t, d);\n };\n\n /**\n * Change the pattern on existing formatter\n *\n * @param {String} p Pattern (optional)\n * @return {String} Returns the pattern\n */\n format.pattern = function patternFn(p) {\n if (p) {\n memoized.clear();\n qformat.pattern = p;\n qformat.prepare();\n }\n return qformat.pattern;\n };\n\n /**\n * Set the locale for the formatter\n *\n * @param {Object} args Locale object for formatting\n * @return {Undefined} Returns nothing\n */\n /* format.locale = function( ...args ) {\n locale = formatLocale( ...args );\n d3format = locale.format( pattern );\n\n return this;\n }; */\n\n return format;\n}\n","/* eslint import/prefer-default-export: 0 */\n\nexport const TYPES = {\n AUTO: 'U',\n INTEGER: 'I',\n NUMBER: 'R',\n FIXED_TO: 'F',\n MONEY: 'M',\n DATE: 'D',\n TIME: 'T',\n DATE_TIME: 'TS',\n INTERVAL: 'IV',\n};\n","import { TYPES } from '../constants';\n\nconst DAYS = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\nconst DAYS_ABBR = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];\nconst MONTHS = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\nconst MONTHS_ABBR = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n\nconst SECONDS_PER_DAY = 86400;\n\nfunction pad(s, n) {\n for (let i = s.length; i < n; i++) {\n s = `0${s}`;\n }\n return s;\n}\n\nfunction parseDate(d, twelveFormat) {\n let h = d.getUTCHours();\n let day = d.getUTCDay() - 1;\n if (twelveFormat) {\n h %= 12;\n if (!h) {\n // h == 0 -> 12\n h = 12;\n }\n }\n\n if (day < 0) {\n day = 6;\n }\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth(),\n day,\n date: d.getUTCDate(),\n h,\n m: d.getUTCMinutes(),\n s: d.getUTCSeconds(),\n f: d.getUTCMilliseconds(),\n t: d.getUTCHours() >= 12 ? 'pm' : 'am',\n };\n}\n\nfunction getRemainder(value) {\n let s = value.toString().split('.');\n if (s[1]) {\n s = Number(`0.${s[1]}`);\n } else {\n return 0;\n }\n return s;\n}\n\nfunction parseIntervalDays(days) {\n const d = days;\n const h = 24 * getRemainder(d);\n const m = 60 * getRemainder(h);\n const s = 60 * getRemainder(m);\n const ms = 1000 * getRemainder(s);\n\n return {\n d: Math.floor(d),\n h: Math.floor(h),\n m: Math.floor(m),\n s: Math.floor(s),\n f: Math.round(ms),\n };\n}\n\nfunction parseInterval(days, pattern) {\n let units = parseIntervalDays(days),\n d = units.d,\n h = units.h,\n m = units.m,\n s = units.s,\n f = units.f,\n w = 0,\n date;\n\n if (/w+|t+/gi.test(pattern)) {\n date = new Date(\n Date.UTC(1899, 11, 30 + Math.floor(days), 0, 0, Math.round(SECONDS_PER_DAY * (days - Math.floor(days))))\n );\n if (isNaN(date.getTime())) {\n date = null;\n }\n }\n\n if (!/D+/gi.test(pattern)) {\n h += d * 24;\n }\n if (!/h+/gi.test(pattern)) {\n m += h * 60;\n }\n if (!/m+/gi.test(pattern)) {\n s += m * 60;\n }\n if (/w+/gi.test(pattern)) {\n w = date ? date.getDay() - 1 : 0;\n if (w < 0) {\n w = 6;\n }\n }\n\n let someT = '';\n if (date) {\n someT = date.getUTCHours() >= 12 ? 'pm' : 'am';\n }\n\n return {\n year: 0,\n month: 0,\n day: w,\n date: d,\n h,\n m,\n s,\n f,\n t: someT,\n };\n}\n\nfunction getMasks(inst, d) {\n return {\n 'Y+|y+': {\n Y: `${Number(`${d.year}`.slice(-2))}`,\n YY: pad(`${d.year}`.slice(-2), 2),\n YYY: pad(`${d.year}`.slice(-3), 3),\n def(m) {\n // default\n return pad(`${d.year}`, m.length);\n },\n },\n 'M+': {\n M: d.month + 1,\n MM: pad(`${d.month + 1}`, 2),\n MMM: inst.locale_months_abbr[d.month],\n def: inst.locale_months[d.month],\n },\n 'W+|w+': {\n W: d.day,\n WW: pad(`${d.day}`, 2),\n WWW: inst.locale_days_abbr[d.day],\n def: inst.locale_days[d.day],\n },\n 'D+|d+': {\n D: d.date,\n def(m) {\n return pad(`${d.date}`, m.length);\n },\n },\n 'h+|H+': {\n h: d.h,\n def(m) {\n return pad(`${d.h}`, m.length);\n },\n },\n 'm+': {\n m: d.m,\n def(m) {\n return pad(`${d.m}`, m.length);\n },\n },\n 's+|S+': {\n s: d.s,\n def(m) {\n return pad(`${d.s}`, m.length);\n },\n },\n 'f+|F+': {\n def(m) {\n let f = `${d.f}`,\n n = m.length - f.length;\n if (n > 0) {\n for (let i = 0; i < n; i++) {\n f += '0';\n }\n } else if (n < 0) {\n f = f.slice(0, m.length);\n }\n return f;\n },\n },\n 't{1,2}|T{1,2}': {\n def(m) {\n let t = d.t;\n if (m[0].toUpperCase() === m[0]) {\n t = t.toUpperCase();\n }\n t = t.slice(0, m.length);\n return t;\n },\n },\n };\n}\n\nclass DateFormatter {\n /**\n * @name DateFormatter\n * @constructs\n * @param {Object} localeInfo\n * @param {String} pattern\n */\n constructor(localeInfo, pattern, qtype) {\n const info = localeInfo || {};\n\n if (!info.qCalendarStrings) {\n info.qCalendarStrings = {\n qLongDayNames: DAYS,\n qDayNames: DAYS_ABBR,\n qLongMonthNames: MONTHS,\n qMonthNames: MONTHS_ABBR,\n };\n }\n\n this.localeInfo = info;\n this.locale_days = info.qCalendarStrings.qLongDayNames.slice();\n this.locale_days_abbr = info.qCalendarStrings.qDayNames.slice();\n this.locale_months = info.qCalendarStrings.qLongMonthNames.slice();\n this.locale_months_abbr = info.qCalendarStrings.qMonthNames.slice();\n\n if (!pattern) {\n const patternMap = {\n [TYPES.TIME]: info.qTimeFmt || 'hh:mm:ss',\n [TYPES.DATE]: info.qDateFmt || 'YYYY-MM-DD',\n [TYPES.DATE_TIME]: info.qTimestampFmt || 'YYYY-MM-DD hh:mm:ss',\n };\n\n pattern = patternMap[qtype];\n }\n\n this.pattern = pattern;\n }\n\n clone() {\n const n = new DateFormatter(this.localeInfo, this.pattern);\n n.subtype = this.subtype;\n return n;\n }\n\n /**\n * Formats a date according to given pattern\n * @param {Date} date The date to format.\n * @param {String} pattern The desired format of the date\n * var d = new Date(2013, 8, 15, 13, 55, 40, 987);\n * var n = new DateFormatter();\n * @example\n * m.format( d, 'YYYY-MM-DD hh:mm:ss.ffff') // 2013-08-15 13:55:40.9870\n * m.format( d, 'h:m:s tt') // 1:55:40 pm\n * m.format( d, 'h:m:s TT') // 1:55:40 PM\n * m.format( d, 'M/D/YYYY') // 8/15/2013\n * m.format( d, 'WWWW DD MMM') // Thursday 15 Aug\n * m.format( d, 'WWW DD MMMM @ hh:mm:ss') // Thu 15 August @ 13:55:40\n */\n format(date, pattern) {\n // Fallback pattern is set in constructor\n if (!pattern) {\n pattern = this.pattern ? this.pattern : 'YYYY-MM-DD hh:mm:ss';\n }\n\n pattern = pattern.replace(/\\[.+]|\\[|]/g, '');\n const hasTwelveFlag = /t+/gi.test(pattern);\n let parsedDate;\n\n if (date instanceof Date) {\n parsedDate = parseDate(date, hasTwelveFlag);\n } else {\n if (date < 0) {\n // parseInterval don't support for negative values\n date = -date;\n pattern = `-${pattern}`;\n }\n parsedDate = parseInterval(date, pattern);\n }\n // remove [] and everything inside it\n\n const masks = getMasks(this, parsedDate);\n\n const masksArr = [];\n for (const mask in masks) {\n if (Object.prototype.hasOwnProperty.call(masks, mask)) {\n masksArr.push(mask);\n }\n }\n const dateTimeRegex = new RegExp(masksArr.join('|'), 'g');\n\n const result = pattern.replace(dateTimeRegex, (m) => {\n let r;\n let mask;\n for (mask in masks) {\n if (Object.prototype.hasOwnProperty.call(masks, mask)) {\n r = new RegExp(mask);\n if (r.test(m)) {\n break;\n }\n }\n }\n if (!r) {\n return '';\n }\n let value;\n for (const submask in masks[mask]) {\n if (submask === m || submask.toLowerCase() === m) {\n value = masks[mask][submask];\n if (typeof value === 'undefined') {\n value = masks[mask][submask.toLowerCase()];\n }\n break;\n }\n }\n if (typeof value === 'undefined') {\n value = masks[mask].def;\n }\n\n if (typeof value === 'function') {\n value = value(m);\n }\n return value;\n });\n return result;\n }\n}\n\nexport default function dateFormatFactory(...args) {\n return new DateFormatter(...args);\n}\n","import dateFormatFactory from './parts/qs-date-formatter';\nimport { TYPES } from './constants';\nimport memoize from './memoize';\n\nconst MS_PER_DAY = 86400000;\n\nexport function QlikTimeToDate(value) {\n return new Date(\n Date.UTC(1899, 11, 30 + Math.floor(value), 0, 0, 0, Math.round(MS_PER_DAY * (value - Math.floor(value))))\n );\n}\n\nexport default function formatter(pattern, qtype = 'TS', localeInfo = null) {\n let qformat = dateFormatFactory(localeInfo, pattern, qtype);\n let memoized = memoize(qformat.format.bind(qformat), {\n toKey: (date) => (typeof date === 'object' && typeof date.getTime === 'function' ? date.getTime() : date),\n });\n\n /**\n * Prepare a value according to the specified qtype\n *\n * @param {Number} value The value to be formatted\n * @return {Number} The converted value (if applied)\n */\n function prepare(value) {\n if (qtype !== TYPES.INTERVAL) {\n return QlikTimeToDate(value);\n }\n return value;\n }\n\n /**\n * Format a value according to the specified pattern created at construct\n *\n * @param {Date} value The number to be formatted\n * @return {String} [description]\n */\n function format(value) {\n value = prepare(value);\n return memoized(value);\n }\n\n /**\n * Format a value according to a specific pattern\n * that is not the one specified in the constructor\n *\n * @param {String} p Pattern\n * @param {Date} v Value\n * @return {String} Formatted value\n */\n format.format = function formatFn(p, v) {\n memoized.clear();\n v = prepare(v);\n return qformat.format(v, p);\n };\n\n /**\n * Set the locale for the formatter\n *\n * @param {Object} args Locale object for formatting\n * @return {Undefined} Returns nothing\n */\n format.locale = function locale(li) {\n qformat = dateFormatFactory(li, pattern, qtype);\n memoized = memoize(qformat.format.bind(qformat), {\n toKey: (date) => (typeof date === 'object' ? date.getTime() : date),\n });\n return this;\n };\n\n /**\n * Get or set the QType\n *\n * @param {String} nqt New qType (optional)\n * @return {String} Current qtype\n */\n format.qtype = function qtypeFn(nqt) {\n if (nqt !== undefined) {\n qtype = nqt;\n memoized.clear();\n }\n return qtype;\n };\n\n return format;\n}\n","import numberFormat from './numberFormat';\nimport timeFormat from './timeFormat';\n\nexport { numberFormat, timeFormat };\n\nexport function createFromMetaInfo(meta, localeInfo) {\n if (meta && meta.qNumFormat && ['D', 'T', 'TS', 'IV'].indexOf(meta.qNumFormat.qType) !== -1) {\n return timeFormat(meta.qNumFormat.qFmt, meta.qNumFormat.qType, localeInfo);\n }\n let pattern = '#';\n let thousand = localeInfo && typeof localeInfo.qThousandSep !== 'undefined' ? localeInfo.qThousandSep : ',';\n let decimal = localeInfo && typeof localeInfo.qDecimalSep !== 'undefined' ? localeInfo.qDecimalSep : '.';\n let type = 'U';\n let isAuto = meta && !!meta.qIsAutoFormat;\n if (meta && meta.qNumFormat) {\n pattern = meta.qNumFormat.qFmt || pattern;\n thousand = meta.qNumFormat.qThou || thousand;\n decimal = meta.qNumFormat.qDec || decimal;\n type = meta.qNumFormat.qType || type;\n isAuto = isAuto && ['M'].indexOf(meta.qNumFormat.qType) === -1;\n } else {\n isAuto = true;\n }\n\n if (isAuto || type === 'U') {\n pattern = `#${decimal}##`;\n type = 'U';\n }\n\n return numberFormat(pattern, thousand, decimal, type, localeInfo);\n}\n","import { createFromMetaInfo } from '../formatter';\n\nexport default function qField({ meta, id, key, localeInfo, fieldExtractor, value, type, sourceField } = {}) {\n let values;\n\n const valueFn = value || (type === 'dimension' ? (d) => d.qElemNo : (d) => d.qValue);\n const labelFn = (d) => d.qText || '';\n const reduce = type === 'dimension' ? 'first' : 'avg';\n const formatter = createFromMetaInfo(meta, localeInfo);\n const reduceLabel = type === 'dimension' ? 'first' : (labels, v) => formatter(v);\n\n const f = {\n id: () => id,\n key: () => key,\n raw: () => meta,\n title: () => meta.qFallbackTitle || meta.label,\n type: () => type,\n origin: () => sourceField,\n items: () => {\n if (!values) {\n values = fieldExtractor(f);\n }\n return values;\n },\n min: () => meta.qMin,\n max: () => meta.qMax,\n value: valueFn,\n label: labelFn,\n reduce,\n reduceLabel,\n formatter: () => formatter,\n tags: () => meta.qTags,\n };\n\n return f;\n}\n","// import augmentH from './augment-hierarchy';\nimport extend from 'extend';\nimport SExtractor from './extractor-s';\nimport { extract as TExtractor, augment as augmentTree } from './extractor-t';\nimport { findField } from './util';\nimport field from './field';\n\nfunction createFields(path, obj, prefix, parentKey, opts) {\n return (obj[path] || []).map((meta, i) => {\n const fieldKey = `${parentKey ? `${parentKey}/` : ''}${path}/${i}`;\n const f = {\n instance: field(\n extend(\n {\n id: `${prefix ? `${prefix}/` : ''}${fieldKey}`,\n key: fieldKey,\n meta,\n },\n opts\n )\n ),\n };\n f.attrDims = createFields(\n 'qAttrDimInfo',\n meta,\n prefix,\n fieldKey,\n extend({}, opts, { value: (v) => v.qElemNo, type: 'dimension' })\n );\n f.attrExps = createFields(\n 'qAttrExprInfo',\n meta,\n prefix,\n fieldKey,\n extend({}, opts, { value: (v) => v.qNum, type: 'measure' })\n );\n f.measures = createFields(\n 'qMeasureInfo',\n meta,\n prefix,\n fieldKey,\n extend({}, opts, { value: (v) => v.qValue, type: 'measure' })\n );\n return f;\n });\n}\n\nexport default function q({ key, data, config = {} } = {}) {\n const cache = {\n fields: [],\n wrappedFields: [],\n allFields: [],\n virtualFields: [],\n };\n\n const cube = data;\n if (!cube) {\n throw new Error('Missing \"data\" input');\n }\n\n if (!cube.qDimensionInfo) {\n throw new Error('The \"data\" input is not recognized as a hypercube');\n }\n\n const deps = q.util;\n\n const opts = {\n cache,\n cube,\n localeInfo: config.localeInfo,\n fieldExtractor: null,\n pages: null,\n hierarchy: () => null,\n virtualFields: config.virtualFields,\n };\n\n const dataset = {\n key: () => key,\n raw: () => cube,\n field: (query) => findField(query, opts),\n fields: () => cache.fields.slice(),\n extract: (extractionConfig) => opts.extractor(extractionConfig, dataset, cache, deps),\n hierarchy: (hierarchyConfig) => opts.hierarchy(hierarchyConfig, dataset, cache, deps),\n _cache: () => cache,\n };\n\n if (cube.qMode === 'K' || cube.qMode === 'T' || (!cube.qMode && cube.qNodesOnDim)) {\n opts.extractor = TExtractor;\n opts.hierarchy = augmentTree;\n opts.pages = cube.qMode === 'K' ? cube.qStackedDataPages : cube.qTreeDataPages;\n } else if (cube.qMode === 'S') {\n opts.extractor = SExtractor;\n opts.pages = cube.qDataPages;\n opts.hierarchy = augmentTree;\n } else {\n opts.extractor = () => []; // TODO - throw unsupported error?\n }\n\n opts.fieldExtractor = (f) => opts.extractor({ field: f }, dataset, cache, deps);\n\n const dimAcc = cube.qMode === 'S' ? (d) => d.qElemNumber : undefined;\n const measAcc = cube.qMode === 'S' ? (d) => d.qNum : undefined;\n\n cache.wrappedFields.push(\n ...createFields('qDimensionInfo', cube, key, '', extend({}, opts, { value: dimAcc, type: 'dimension' }))\n );\n cache.wrappedFields.push(\n ...createFields('qMeasureInfo', cube, key, '', extend({}, opts, { value: measAcc, type: 'measure' }))\n );\n\n cache.fields = cache.wrappedFields.map((f) => f.instance);\n\n const traverse = (arr) => {\n arr.forEach((f) => {\n cache.allFields.push(f.instance);\n traverse(f.measures);\n traverse(f.attrDims);\n traverse(f.attrExps);\n });\n };\n\n traverse(cache.wrappedFields);\n\n (config.virtualFields || []).forEach((v) => {\n // key: 'temporal',\n // from: 'qDimensionInfo/0',\n // override: {\n // value: v => v.qNum,\n // },\n const sourceField = dataset.field(v.from);\n const f = field({\n meta: sourceField.raw(),\n id: `${key}/${v.key}`,\n sourceField,\n fieldExtractor: (ff) => opts.extractor({ field: ff }, dataset, cache, deps),\n key: v.key,\n type: sourceField.type(),\n localeInfo: opts.localeInfo,\n value: sourceField.value,\n ...(v.override || {}),\n });\n cache.virtualFields.push(f);\n });\n\n cache.allFields.push(...cache.virtualFields);\n\n return dataset;\n}\n","import resolve from '../json-path-resolver';\n\nconst LAYOUT_TO_PROP = [\n ['qHyperCube', 'qHyperCubeDef'],\n ['qTreeData', 'qTreeDataDef'],\n ['qDimensionInfo', 'qDimensions'],\n ['qMeasureInfo', 'qMeasures'],\n ['qAttrDimInfo', 'qAttributeDimensions'],\n ['qAttrExprInfo', 'qAttributeExpressions'],\n];\n\nconst DIM_RX = /\\/qDimensionInfo(?:\\/(\\d+))?/;\nconst M_RX = /\\/qMeasureInfo\\/(\\d+)/;\nconst ATTR_DIM_RX = /\\/qAttrDimInfo\\/(\\d+)(?:\\/(\\d+))?/;\nconst ATTR_EXPR_RX = /\\/qAttrExprInfo\\/(\\d+)/;\nconst HC_RX = /\\/?qHyperCube/;\nconst TD_RX = /\\/?qTreeData/;\n\nconst SHORTEN_HC = (path) => `${path.substr(0, path.indexOf('/qHyperCubeDef') + 14)}`; // 14 = length of '/qHyperCubeDef'\nconst SHORTEN_TD = (path) => `${path.substr(0, path.indexOf('/qTreeDataDef') + 13)}`; // 13 = length of '/qTreeDataDef'\n\nexport function extractFieldFromId(id, layout) {\n let path = id;\n let dimensionIdx = -1;\n let measureIdx = -1;\n let pathToCube = '';\n let shortenizer = (p) => p;\n if (HC_RX.test(id)) {\n pathToCube = `${path.substr(0, path.indexOf('qHyperCube') + 10)}`; // 10 = length of 'qHyperCube'\n shortenizer = SHORTEN_HC;\n } else if (TD_RX.test(id)) {\n pathToCube = `${path.substr(0, path.indexOf('qTreeData') + 9)}`; // 9 = length of 'qTreeData'\n shortenizer = SHORTEN_TD;\n }\n\n let shortenPath = true;\n\n if (DIM_RX.test(id)) {\n dimensionIdx = +DIM_RX.exec(id)[1];\n }\n\n if (M_RX.test(id)) {\n measureIdx = +M_RX.exec(id)[1];\n }\n\n if (ATTR_DIM_RX.test(id)) {\n measureIdx = -1;\n dimensionIdx = 0;\n const attrCol = +ATTR_DIM_RX.exec(path)[2];\n if (!isNaN(attrCol)) {\n dimensionIdx = attrCol;\n path = path.replace(/\\/\\d+$/, '');\n }\n shortenPath = false;\n }\n\n if (ATTR_EXPR_RX.test(id)) {\n // depends on number of measures + number of attr expressions\n // in dimensions and measures before this one\n const offset = measureIdx;\n if (layout) {\n measureIdx = 0;\n const hc = resolve(pathToCube, layout);\n\n // offset by number of measures\n measureIdx += (hc.qMeasureInfo || []).length;\n\n // offset by total number of attr expr in dimensions\n // (assuming attr expr in dimensions are ordered first)\n if (dimensionIdx > -1) {\n measureIdx = hc.qDimensionInfo\n .slice(0, dimensionIdx)\n .reduce((v, dim) => v + dim.qAttrExprInfo.length, measureIdx);\n dimensionIdx = -1;\n } else {\n measureIdx = hc.qDimensionInfo.reduce((v, dim) => v + dim.qAttrExprInfo.length, measureIdx);\n // offset by total number of attr expr in measures before 'index'\n measureIdx = hc.qMeasureInfo.slice(0, offset).reduce((v, meas) => v + meas.qAttrExprInfo.length, measureIdx);\n }\n\n // offset by the actual column value for the attribute expression itself\n measureIdx += +ATTR_EXPR_RX.exec(path)[1];\n } else if (dimensionIdx > -1) {\n dimensionIdx = -1;\n measureIdx = +ATTR_EXPR_RX.exec(path)[1];\n } else {\n measureIdx += +ATTR_EXPR_RX.exec(path)[1] + 1;\n }\n }\n\n LAYOUT_TO_PROP.forEach(([v, prop]) => {\n path = path.replace(v, prop);\n });\n\n if (shortenPath) {\n path = shortenizer(path);\n }\n\n if (path && path[0] !== '/') {\n path = `/${path}`;\n }\n\n return {\n measureIdx,\n dimensionIdx,\n path,\n };\n}\n\n/**\n * Helper method to generate suitable QIX selection methods and parameters based on a brush instance.\n * @alias brush\n * @memberof picasso.q\n * @param {Brush} brush A brush instance\n * @param {object} [opts]\n * @param {boolean} [opts.byCells=false] Whether to prefer selection by row index.\n * @param {string} [opts.primarySource] Field source to extract row indices from. If not specified, indices from first source are used.\n * @param {boolean} [opts.orMode=true] If false, combine measure range selections.\n * @param {object} [layout] QIX data layout. Needed only when brushing on attribute expressions, to be able to calculate the measure index.\n * @return {object[]} An array of relevant selections\n */\nexport default function qBrush(brush, opts = {}, layout) {\n const byCells = opts.byCells;\n const primarySource = opts.primarySource;\n const selections = [];\n const methods = {};\n const isActive = brush.isActive();\n let hasValues = false;\n brush.brushes().forEach((b) => {\n const info = extractFieldFromId(b.id, layout);\n if (b.type === 'range' && info.measureIdx > -1 && info.dimensionIdx > -1) {\n const ranges = b.brush.ranges();\n if (ranges.length) {\n hasValues = true;\n if (!methods.multiRangeSelectTreeDataValues) {\n methods.multiRangeSelectTreeDataValues = {\n path: info.path,\n ranges: [],\n };\n }\n ranges.forEach((range) =>\n methods.multiRangeSelectTreeDataValues.ranges.push({\n qMeasureIx: info.measureIdx,\n qDimensionIx: info.dimensionIdx,\n qRange: {\n qMin: range.min,\n qMax: range.max,\n qMinInclEq: true,\n qMaxInclEq: true,\n },\n })\n );\n }\n } else {\n if (b.type === 'range' && info.measureIdx > -1) {\n const ranges = b.brush.ranges();\n if (ranges.length) {\n hasValues = true;\n if (!methods.rangeSelectHyperCubeValues) {\n methods.rangeSelectHyperCubeValues = {\n path: info.path,\n ranges: [],\n };\n }\n ranges.forEach((range) =>\n methods.rangeSelectHyperCubeValues.ranges.push({\n qMeasureIx: info.measureIdx,\n qRange: {\n qMin: range.min,\n qMax: range.max,\n qMinInclEq: true,\n qMaxInclEq: true,\n },\n })\n );\n }\n }\n if (b.type === 'range' && info.dimensionIdx > -1) {\n const ranges = b.brush.ranges();\n if (ranges.length) {\n hasValues = true;\n if (!methods.selectHyperCubeContinuousRange) {\n methods.selectHyperCubeContinuousRange = {\n path: info.path,\n ranges: [],\n };\n }\n ranges.forEach((range) =>\n methods.selectHyperCubeContinuousRange.ranges.push({\n qDimIx: info.dimensionIdx,\n qRange: {\n qMin: range.min,\n qMax: range.max,\n qMinInclEq: true,\n qMaxInclEq: false,\n },\n })\n );\n }\n }\n\n if (b.type === 'value' && info.dimensionIdx > -1) {\n if (byCells) {\n if (\n layout &&\n layout.qHyperCube &&\n (layout.qHyperCube.qMode === 'P' || layout.qHyperCube.qMode === 'T' || layout.qHyperCube.qMode === 'K')\n ) {\n const hyperCube = layout.qHyperCube;\n const noOfLeftDims = hyperCube.qNoOfLeftDims;\n const dimInterColSortIdx = hyperCube.qEffectiveInterColumnSortOrder.indexOf(info.dimensionIdx);\n\n if (!methods.selectPivotCells) {\n methods.selectPivotCells = {\n path: info.path,\n cells: [],\n };\n }\n\n if (b.id === primarySource || !primarySource) {\n const validValues = b.brush\n .values()\n .map((s) => +s)\n .filter((v) => !isNaN(v));\n\n if ((noOfLeftDims === 0 || dimInterColSortIdx >= noOfLeftDims) && noOfLeftDims > -1) {\n validValues.forEach((val) => {\n methods.selectPivotCells.cells.push({\n qType: 'T',\n qCol: val,\n qRow: dimInterColSortIdx - noOfLeftDims,\n });\n });\n } else {\n validValues.forEach((val) => {\n methods.selectPivotCells.cells.push({\n qType: 'L',\n qCol: info.dimensionIdx,\n qRow: val,\n });\n });\n }\n hasValues = !!methods.selectPivotCells.cells.length;\n }\n } else {\n if (!methods.selectHyperCubeCells) {\n methods.selectHyperCubeCells = {\n path: info.path,\n cols: [],\n };\n }\n\n methods.selectHyperCubeCells.cols.push(info.dimensionIdx);\n if (b.id === primarySource || (!primarySource && !methods.selectHyperCubeCells.values)) {\n methods.selectHyperCubeCells.values = b.brush\n .values()\n .map((s) => +s)\n .filter((v) => !isNaN(v));\n hasValues = !!methods.selectHyperCubeCells.values.length;\n }\n }\n } else {\n const values = b.brush\n .values()\n .map((s) => +s)\n .filter((v) => !isNaN(v));\n hasValues = !!values.length;\n selections.push({\n params: [info.path, info.dimensionIdx, values, false],\n method: 'selectHyperCubeValues',\n });\n }\n }\n }\n });\n\n if (!hasValues && isActive) {\n return [\n {\n method: 'resetMadeSelections',\n params: [],\n },\n ];\n }\n\n if (methods.rangeSelectHyperCubeValues) {\n selections.push({\n method: 'rangeSelectHyperCubeValues',\n params: [\n methods.rangeSelectHyperCubeValues.path,\n methods.rangeSelectHyperCubeValues.ranges,\n [],\n opts.orMode ?? true,\n ],\n });\n }\n\n if (methods.selectHyperCubeContinuousRange) {\n selections.push({\n method: 'selectHyperCubeContinuousRange',\n params: [methods.selectHyperCubeContinuousRange.path, methods.selectHyperCubeContinuousRange.ranges],\n });\n }\n\n if (methods.selectHyperCubeCells) {\n selections.push({\n method: 'selectHyperCubeCells',\n params: [\n methods.selectHyperCubeCells.path,\n methods.selectHyperCubeCells.values,\n methods.selectHyperCubeCells.cols,\n ],\n });\n }\n\n if (methods.selectPivotCells) {\n selections.push({\n method: 'selectPivotCells',\n params: [methods.selectPivotCells.path, methods.selectPivotCells.cells],\n });\n }\n\n if (methods.multiRangeSelectTreeDataValues) {\n selections.push({\n method: 'multiRangeSelectTreeDataValues',\n params: [methods.multiRangeSelectTreeDataValues.path, methods.multiRangeSelectTreeDataValues.ranges],\n });\n }\n\n return selections;\n}\n","import data from './data/dataset';\nimport qBrushHelper from './brush/q-brush';\nimport numberFormat from './formatter/numberFormat';\nimport timeFormat from './formatter/timeFormat';\n\nexport default function initialize(picasso) {\n data.util = picasso.data('matrix').util;\n picasso.data('q', data);\n picasso.formatter('q-number', numberFormat);\n picasso.formatter('q-time', timeFormat);\n}\n\ninitialize.qBrushHelper = qBrushHelper; // deprecated\ninitialize.selections = qBrushHelper;\n","const selectionUtils = {\n brushInterceptors: {\n DIM_VALUE_NULL: -2,\n DIM_VALUE_TOTAL: -3,\n brushOnlyOne,\n filterValues,\n },\n};\n\nexport default selectionUtils;\n\n/**\n * Implementation details\n */\n\n/**\n * Brush interception filter func - Brush ONE single value\n * @param selectBrush\n * @param items\n * @returns {*}\n */\nfunction brushOnlyOne(brush, items) {\n const activeBrushes = brush.brushes().filter((b) => b.type === 'value');\n let toggleOff = [];\n if (activeBrushes.length) {\n activeBrushes.forEach((b) => {\n toggleOff = toggleOff.concat(\n b.brush.values().map((v) => ({\n key: b.id,\n value: v,\n }))\n );\n });\n }\n\n return toggleOff.concat(items);\n}\n\nfunction findField(chartInstance, item) {\n const splitIndex = item.key.indexOf('qHyperCube') + 'qHyperCube'.length;\n const datasetName = item.key.substr(0, splitIndex);\n const fieldName = item.key.substr(splitIndex + 1);\n return chartInstance.dataset(datasetName).field(fieldName);\n}\n\n/**\n * Brush interception filter function\n * Do not allow selections on null value\n * Do not allow selections in locked dimension\n * @param chartInstance\n * @param items\n * @returns Object { items: {Array}, itemsAreLocked: {Boolean} }\n */\nfunction filterValues(chartInstance, items) {\n const self = this;\n let meta;\n let field;\n const lockedFields = [];\n let lockedItems = 0;\n const brushItems = [];\n\n items.forEach((item) => {\n if (item.value === self.DIM_VALUE_NULL || item.value === self.DIM_VALUE_TOTAL) {\n return;\n }\n field = findField(chartInstance, item);\n\n meta = field && field.raw();\n\n if (!meta.qLocked) {\n brushItems.push({\n key: item.key,\n value: item.value,\n });\n } else {\n lockedFields.push(meta);\n lockedItems++;\n }\n });\n\n return { items: brushItems, itemsAreLocked: lockedItems > 0 && lockedItems === items.length, lockedFields };\n}\n","import extend from 'extend';\nimport Actions from './selection-actions';\n\n// TODO: maybe add support later\nconst eventUtils = {\n showLockedFeedback: () => {},\n};\n\nconst DEFAULT_OPTIONS = {\n data: ['elemNo'],\n contexts: ['select'],\n startOnEmptySelection: true,\n style: {\n active: {\n strokeWidth: 2,\n stroke: '#333', // To make it consistent with other charts\n },\n inactive: {\n opacity: 0.3,\n },\n },\n};\n\nconst ESCAPE = 27;\nconst ENTER = 13;\nconst SHIFT = 16;\n\n/**\n * Create a new Selections handler\n *\n * @param {Object} options\n * @param {Object} options.model The backend model for the chart\n * @param {Object} options.chartInstance Picasso chart instance\n * @param {Object} options.selectionsApi Object selectionsApi\n * @returns {Object} The selections handler instance\n */\nfunction Selections(options) {\n if (!options || !options.chartInstance || !options.selectionsApi) {\n throw Error('Selections-handler: Missing input');\n }\n const chartInstance = options.chartInstance;\n const selectionsApi = options.selectionsApi;\n const dataPaths = options.dataPaths || [''];\n const selectPaths = options.selectPaths;\n const lasso = options.lasso;\n\n let selectionContexts = [];\n const selectionsApiRestoreHelper = { propertiesToRestore: {} };\n let on = false;\n const actions = Actions(chartInstance, selectionsApi, selectPaths);\n\n // Not need for a function, so turned it into an object\n const fn = {};\n\n let lastShift = false;\n function shiftToggle(e) {\n if (e.keyCode === SHIFT && e.shiftKey !== lastShift) {\n lastShift = e.shiftKey;\n lasso.toggle();\n }\n }\n\n function confirmOrCancelSelection(event) {\n const key = event.keyCode;\n if (key === ESCAPE) {\n selectionsApi.cancel();\n } else if (key === ENTER) {\n selectionsApi.confirm();\n }\n }\n\n // If a single field in a single table is not locked, this function returns false\n function areAllFieldsLocked() {\n let dimFields = dataPaths.map((dataPath) =>\n chartInstance\n .dataset(dataPath)\n .fields()\n .filter((field) => field.type() === 'dimension')\n );\n\n // flattern list\n dimFields = [].concat.apply([], dimFields);\n\n return dimFields.length && dimFields.every((field) => field.raw().qLocked);\n }\n\n // If a single field in a single table is not locked, this function returns false\n function getFieldsLocked() {\n const lockedFields = [];\n let dimFields = dataPaths.map((dataPath) =>\n chartInstance\n .dataset(dataPath)\n .fields()\n .filter((field) => field.type() === 'dimension')\n );\n\n // flattern list\n dimFields = [].concat.apply([], dimFields);\n\n for (let i = 0; i < dimFields.length; i++) {\n if (dimFields[i].raw().qLocked) {\n lockedFields.push(dimFields[i].raw());\n }\n }\n return {\n fields: lockedFields,\n areAllFieldsLocked: lockedFields.length && lockedFields.length === dimFields.length,\n };\n }\n\n function isLassoDisabled() {\n return options.isLassoDisabled && options.isLassoDisabled();\n }\n\n selectionsApi.on('cleared', () => {\n selectionContexts.forEach((context) => {\n context.brush.clear();\n // Clear dependent components\n context.dependentComponents.forEach((comp) => {\n const instance = chartInstance.component(comp.id);\n if (instance) {\n instance.emit(comp.clear);\n }\n });\n });\n });\n\n // Setup a selection context\n /*\n builder - instance of chart-builder\n componentKeys = []\n options = {\n contexts: [],\n data: [],\n style: {}\n }\n */\n /**\n * Setup a selection context\n * @param {Object} options Selection context options\n * @returns {Object} The selections handler instance\n */\n fn.setUp = function (options) {\n fn.tearDown();\n\n const result = this.setUpBrush(options);\n\n if (on) {\n register();\n }\n\n return result;\n };\n fn.setUpBrush = function (options) {\n const opts = extend(true, {}, DEFAULT_OPTIONS, options);\n\n const selectionTrigger = {\n on: 'tap',\n action(e) {\n return e.ctrlKey || options.isSingleSelect ? 'set' : 'toggle';\n },\n contexts: opts.contexts,\n data: opts.data,\n globalPropagation: 'stop',\n };\n\n const selectionConsumer = {\n context: opts.contexts[0],\n data: opts.data,\n style: opts.style,\n };\n\n const context = createContext(opts, chartInstance);\n // Do this here instead of in register to be able to catch the consumer\n context.listeners.toggle = function (items) {\n if (!on) {\n return [];\n }\n const fieldsLocked = getFieldsLocked();\n if (opts.startOnEmptySelection && items.length === 0 && fieldsLocked.areAllFieldsLocked) {\n eventUtils.showLockedFeedback(fieldsLocked.fields);\n return [];\n }\n return actions.toggleValues(items, context.brush, opts.startOnEmptySelection);\n };\n\n // Add all three to cover tap, brush range and lasso\n context.brush.intercept('toggle-values', context.listeners.toggle);\n context.brush.intercept('add-values', context.listeners.toggle);\n context.brush.intercept('remove-values', context.listeners.toggle);\n context.brush.intercept('set-values', context.listeners.toggle);\n\n context.listeners.start = function () {\n if (selectionContexts.length > 1) {\n selectionContexts.forEach((c) => {\n if (c !== context) {\n c.brush.end();\n }\n });\n\n // something may still be needed but can not call selectionsApi.clear() that would cause a infinite loop\n // if (!selectionsApi.canClear || selectionsApi.canClear()) {\n // selectionsApi.clear();\n // }\n }\n };\n\n selectionContexts.push(context);\n\n return { trigger: selectionTrigger, consume: selectionConsumer };\n };\n fn.setUpStart = function () {\n fn.tearDown();\n };\n fn.setUpDone = function () {\n if (on) {\n register();\n }\n };\n\n fn.tearDown = function () {\n if (on) {\n deregister();\n }\n selectionContexts.forEach((context) => {\n context.brush.removeInterceptor('toggle-values', context.listeners.toggle);\n context.brush.removeInterceptor('add-values', context.listeners.toggle);\n context.brush.removeInterceptor('remove-values', context.listeners.toggle);\n context.brush.removeInterceptor('set-values', context.listeners.toggle);\n });\n selectionContexts = [];\n };\n\n function register() {\n selectionContexts.forEach((context) => {\n context.listeners.update = function (added, removed) {\n // On tap end, picaso will run rendering in the same frame, and if this is a heavy job then long tap end will happen before tap end finish. This can trigger the radial context menu.\n // So we prevent long tap end here.\n if (!context.sleep) {\n actions.update(added, removed, context.brush);\n }\n };\n context.brush.on('update', context.listeners.update);\n context.brush.on('start', context.listeners.start);\n });\n }\n\n function deregister() {\n selectionContexts.forEach((context) => {\n context.brush.removeListener('update', context.listeners.update);\n context.brush.removeListener('start', context.listeners.start);\n });\n }\n\n fn.pauseEngineCalls = function (id) {\n selectionContexts.forEach((context) => {\n if (context.id === id) {\n context.sleep = true;\n }\n });\n };\n\n fn.resumeEngineCalls = function (id, run) {\n selectionContexts.forEach((context) => {\n if (context.id === id) {\n context.sleep = false;\n if (run) {\n context.listeners.update([], []);\n }\n }\n });\n };\n\n fn.addComponent = function (id, comp) {\n selectionContexts.forEach((context) => {\n if (context.id === id) {\n context.dependentComponents.push(comp);\n }\n });\n };\n\n fn.on = function () {\n if (on) {\n return;\n }\n on = true;\n\n register();\n\n document.addEventListener('keydown', shiftToggle);\n document.addEventListener('keyup', shiftToggle);\n\n const onDeactivated = () => {\n selectionContexts.forEach((context) => {\n context.brush.end();\n });\n document.removeEventListener('keyup', confirmOrCancelSelection);\n if (lasso.active()) {\n lasso.toggle();\n }\n };\n selectionsApi.on('deactivated', onDeactivated);\n selectionsApiRestoreHelper.unbindDeactivated = () => {\n selectionsApi.removeListener('deactivated', onDeactivated);\n };\n\n const onActivated = () => {\n document.addEventListener('keyup', confirmOrCancelSelection);\n };\n selectionsApi.on('activated', onActivated);\n selectionsApiRestoreHelper.unbindActivated = () => {\n selectionsApi.removeListener('activated', onActivated);\n };\n };\n fn.isOn = () => on;\n fn.off = function () {\n if (!on) {\n return;\n }\n on = false;\n deregister();\n\n document.removeEventListener('keydown', shiftToggle);\n document.removeEventListener('keyup', shiftToggle);\n document.removeEventListener('keyup', confirmOrCancelSelection);\n\n selectionsApiRestoreHelper.unbindActivated();\n selectionsApiRestoreHelper.unbindDeactivated();\n };\n\n fn.lassoState = function () {\n return lasso.active() && !isLassoDisabled();\n };\n fn.allFieldsLocked = function () {\n return areAllFieldsLocked();\n };\n\n return fn;\n}\n\nclass NoSelections {\n // eslint-disable-next-line class-methods-use-this\n isOn() {\n return false;\n }\n\n // eslint-disable-next-line class-methods-use-this\n on() {\n console.warn('Can not turn on selections on this object');\n }\n\n // eslint-disable-next-line class-methods-use-this\n off() {}\n}\n\nexport default {\n create(options) {\n if (!options.selectionsApi) {\n return new NoSelections();\n }\n return Selections(options);\n },\n};\n\nfunction createContext(options, chartInstance) {\n return {\n brush: chartInstance.brush(options.contexts[0]),\n listeners: {},\n dependentComponents: [],\n id: options.contexts[0],\n };\n}\n","import PicassoQ from 'picasso-plugin-q/dist/picasso-q';\nimport selectionUtils from './selection-utils';\n\n// TODO: maybe add support later\nconst eventUtils = {\n showLockedFeedback: () => {},\n};\n\nfunction SelectionActions(chartInstance, selectionsApi, paths) {\n function fn() {}\n\n function update(added, removed, brush) {\n if (!selectionsApi.isActive()) {\n selectionsApi.begin(paths);\n }\n const selections = PicassoQ.qBrushHelper(brush);\n selections.forEach((s) => {\n selectionsApi.select(s);\n });\n }\n\n function toggleValues(items, brush, startOnEmptySelection) {\n const filterResult = selectionUtils.brushInterceptors.filterValues(chartInstance, items);\n const itms = filterResult.items;\n if (filterResult.itemsAreLocked) {\n eventUtils.showLockedFeedback(filterResult.lockedFields);\n }\n if (!selectionsApi.isActive() && !filterResult.itemsAreLocked && (startOnEmptySelection || itms.length > 0)) {\n selectionsApi.begin(paths);\n brush.start();\n brush.emit('update', [], []); // and activate our brush\n }\n\n return itms;\n }\n\n fn.update = update;\n fn.toggleValues = toggleValues;\n\n return fn;\n}\nexport default SelectionActions;\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","import hashFromString from '../../../extra/hash-from-string';\n\nconst hash = {\n generateHash,\n updateHash,\n};\n\nexport default hash;\n\n/**\n * Implementation details\n */\n\nfunction generateHash(hashData) {\n return hashFromString(JSON.stringify(hashData));\n}\n\nfunction updateHash(properties, hashData) {\n if (!properties.qUndoExclude) {\n properties.qUndoExclude = {};\n }\n\n properties.qUndoExclude.hashCode = hash.generateHash(hashData);\n}\n","/**\n * Generate a 32 bit integer hash code from a string\n */\nexport default function hashFromString(str) {\n let hash = 0;\n\n if (!str || !str.length) {\n return hash;\n }\n\n for (let i = 0; i < str.length; i++) {\n const chr = str.charCodeAt(i);\n /* eslint-disable no-bitwise */\n hash = (hash << 5) - hash + chr;\n hash &= hash;\n /* eslint-enable no-bitwise */\n }\n return hash;\n}\n","import { getValue } from 'qlik-chart-modules';\n\nconst hashBuilder = {\n getDefaultHashDataForHyperCube,\n};\n\nexport default hashBuilder;\n\n/**\n * Implementation details\n */\n\nfunction getDefaultHashDataForHyperCube(hyperCubeDef, hyperCube, app) {\n return getMeasureExpressions(hyperCubeDef, app).then((measureExpressions) => ({\n drillLevel: getDrillIndices(hyperCube),\n dimensionExpressions: getDimensionExpressions(hyperCube),\n measureExpressions,\n }));\n}\n\nfunction getMeasureExpressions(hyperCubeDef, app) {\n const dfds = [];\n\n if (!hyperCubeDef.qMeasures) {\n return Promise.resolve(dfds);\n }\n\n hyperCubeDef.qMeasures.forEach((measure) => {\n if (measure.qLibraryId) {\n dfds.push(getMeasureDataFromLibraryItem(measure.qLibraryId, app));\n } else {\n dfds.push(Promise.resolve());\n }\n });\n\n return Promise.all(dfds);\n}\n\nfunction getMeasureDataFromLibraryItem(libraryId, app) {\n return app.getMeasure(libraryId).then((item) => item.getProperties().then((props) => props.qMeasure.qDef));\n}\n\nfunction getDimensionExpressions(hyperCube) {\n return hyperCube.qDimensionInfo.map((dimensionInfo) => dimensionInfo.qGroupFieldDefs);\n}\n\nfunction getDrillIndices(hyperCube) {\n const dimensions = getDimensions(hyperCube);\n return dimensions.map((dim) => dim.qGroupPos);\n}\n\nfunction getDimensions(hyperCube) {\n return getValue(hyperCube, 'qDimensionInfo', []);\n}\n","/* eslint-disable no-restricted-syntax */\nimport originalExtend from 'extend';\n\nconst JSONPatch = {};\n\nconst extend = originalExtend.bind(null, true);\nfunction isObject(v) {\n return v != null && !Array.isArray(v) && typeof v === 'object';\n}\nconst isArray = Array.isArray;\n\nconst isUndef = function (v) {\n return typeof v === 'undefined';\n};\n\nconst isFunction = function (v) {\n return typeof v === 'function';\n};\n\n/**\n * Generate an exact duplicate (with no references) of a specific value.\n *\n * @private\n * @param {Object} The value to duplicate\n * @returns {Object} a unique, duplicated value\n */\nfunction generateValue(val) {\n if (val) {\n val = extend({}, { val }).val;\n }\n return val;\n}\n\n/**\n * An additional type checker used to determine if the property is of internal\n * use or not a type that can be translated into JSON (like functions).\n *\n * @private\n * @param {Object} obj The object which has the property to check\n * @param {String} The property name to check\n * @returns {Boolean} Whether the property is deemed special or not\n */\nfunction isSpecialProperty(obj, key) {\n return isFunction(obj[key]) || key.substring(0, 2) === '$$' || key.substring(0, 1) === '_';\n}\n\n/**\n * Finds the parent object from a JSON-Pointer (\"/foo/bar/baz\" = \"bar\" is \"baz\" parent),\n * also creates the object structure needed.\n *\n * @private\n * @param {Object} data The root object to traverse through\n * @param {String} The JSON-Pointer string to use when traversing\n * @returns {Object} The parent object\n */\nfunction getParent(data, str) {\n const seperator = '/';\n const parts = str.substring(1).split(seperator).slice(0, -1);\n let numPart;\n\n parts.forEach((part, i) => {\n if (i === parts.length) {\n return;\n }\n numPart = +part;\n data[numPart || part] = isUndef(data[numPart || part]) ? (!Number.isNaN(+numPart) ? [] : {}) : data[part];\n data = data[numPart || part];\n });\n\n return data;\n}\n\n/**\n * Cleans an object of all its properties, unless they're deemed special or\n * cannot be removed by configuration.\n *\n * @private\n * @param {Object} obj The object to clean\n */\nfunction emptyObject(obj) {\n Object.keys(obj).forEach((key) => {\n const config = Object.getOwnPropertyDescriptor(obj, key);\n\n if (config.configurable && !isSpecialProperty(obj, key)) {\n delete obj[key];\n }\n });\n}\n\n/**\n * Compare an object with another, could be object, array, number, string, bool.\n *\n * @param {Object} a The first object to compare\n * @param {Object} b The second object to compare\n * @returns {Boolean} Whether the objects are identical\n */\nfunction compare(a, b) {\n if (isObject(a) && isObject(b)) {\n if (Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key of Object.keys(a)) {\n if (!compare(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n if (isArray(a) && isArray(b)) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0, l = a.length; i < l; i++) {\n if (!compare(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n return a === b;\n}\n\n/**\n * Generates patches by comparing two arrays.\n *\n * @private\n * @param {Array} oldA The old (original) array, which will be patched\n * @param {Array} newA The new array, which will be used to compare against\n * @returns {Array} An array of patches (if any)\n */\nfunction patchArray(original, newA, basePath) {\n let patches = [];\n const oldA = original.slice();\n let i;\n let l;\n let tmpIdx = -1;\n\n function findIndex(a, id, idx) {\n if (a[idx] && isUndef(a[idx].qInfo)) {\n return null;\n }\n if (a[idx] && a[idx].qInfo.qId === id) {\n // shortcut if identical\n return idx;\n }\n for (let i = 0, l = a.length; i < l; i++) {\n if (a[i] && a[i].qInfo.qId === id) {\n return i;\n }\n }\n return -1;\n }\n\n if (compare(newA, oldA)) {\n // array is unchanged\n return patches;\n }\n\n if (newA[0] === null || (!isUndef(newA[0]) && isUndef(newA[0].qInfo))) {\n // we cannot create patches without unique identifiers, replace array...\n patches.push({\n op: 'replace',\n path: basePath,\n value: newA,\n });\n return patches;\n }\n\n for (i = oldA.length - 1; i >= 0; --i) {\n tmpIdx = findIndex(newA, oldA[i] && oldA[i].qInfo && oldA[i].qInfo.qId, i);\n if (tmpIdx === -1) {\n patches.push({\n op: 'remove',\n path: `${basePath}/${i}`,\n });\n oldA.splice(i, 1);\n } else {\n patches = patches.concat(JSONPatch.generate(oldA[i], newA[tmpIdx], `${basePath}/${i}`));\n }\n }\n\n for (i = 0, l = newA.length; i < l; ++i) {\n tmpIdx = findIndex(oldA, newA[i] && newA[i].qInfo && newA[i].qInfo.qId);\n if (tmpIdx === -1) {\n patches.push({\n op: 'add',\n path: `${basePath}/${i}`,\n value: newA[i],\n });\n oldA.splice(i, 0, newA[i]);\n } else if (tmpIdx !== i) {\n patches.push({\n op: 'move',\n path: `${basePath}/${i}`,\n from: `${basePath}/${tmpIdx}`,\n });\n oldA.splice(i, 0, oldA.splice(tmpIdx, 1)[0]);\n }\n }\n return patches;\n}\n\n/**\n * Generate an array of JSON-Patch:es following the JSON-Patch Specification Draft.\n *\n * See [specification draft](http://tools.ietf.org/html/draft-ietf-appsawg-json-patch-10)\n *\n * Does NOT currently generate patches for arrays (will replace them)\n *\n * @param {Object} original The object to patch to\n * @param {Object} newData The object to patch from\n * @param {String} [basePath] The base path to use when generating the paths for the patches (normally not used)\n * @returns {Array} An array of patches\n */\nJSONPatch.generate = function (original, newData, basePath) {\n basePath = basePath || '';\n let patches = [];\n\n Object.keys(newData).forEach((key) => {\n const val = generateValue(newData[key]);\n const oldVal = original[key];\n const tmpPath = `${basePath}/${key}`;\n\n if (compare(val, oldVal) || isSpecialProperty(newData, key)) {\n return;\n }\n if (isUndef(oldVal)) {\n // property does not previously exist\n patches.push({\n op: 'add',\n path: tmpPath,\n value: val,\n });\n } else if (isObject(val) && isObject(oldVal)) {\n // we need to generate sub-patches for this, since it already exist\n patches = patches.concat(JSONPatch.generate(oldVal, val, tmpPath));\n } else if (isArray(val) && isArray(oldVal)) {\n patches = patches.concat(patchArray(oldVal, val, tmpPath));\n } else {\n // it's a simple property (bool, string, number)\n patches.push({\n op: 'replace',\n path: `${basePath}/${key}`,\n value: val,\n });\n }\n });\n\n Object.keys(original).forEach((key) => {\n if (isUndef(newData[key]) && !isSpecialProperty(original, key)) {\n // this property does not exist anymore\n patches.push({\n op: 'remove',\n path: `${basePath}/${key}`,\n });\n }\n });\n\n return patches;\n};\n\n/**\n * Apply a list of patches to an object.\n *\n * @param {Object} original The object to patch\n * @param {Array} patches The list of patches to apply\n */\nJSONPatch.apply = function (original, patches) {\n patches.forEach((patch) => {\n const parent = getParent(original, patch.path);\n let key = patch.path.split('/').splice(-1)[0];\n const target = key && Number.isNaN(+key) ? parent[key] : parent[+key] || parent;\n const from = patch.from ? patch.from.split('/').splice(-1)[0] : null;\n\n if (patch.op === 'add' || patch.op === 'replace') {\n if (isArray(parent)) {\n // trust indexes from patches, so don't replace the index if it's an add\n if (key === '-') {\n key = parent.length;\n }\n parent.splice(+key, patch.op === 'add' ? 0 : 1, patch.value);\n } else if (isArray(target) && isArray(patch.value)) {\n const newValues = patch.value.slice();\n // keep array reference if possible...\n target.length = 0;\n target.push.apply(target, newValues);\n } else if (isObject(target) && isObject(patch.value)) {\n // keep object reference if possible...\n emptyObject(target);\n extend(target, patch.value);\n } else {\n // simple value\n parent[key] = patch.value;\n }\n } else if (patch.op === 'move') {\n const oldParent = getParent(original, patch.from);\n if (isArray(parent)) {\n parent.splice(+key, 0, oldParent.splice(+from, 1)[0]);\n } else {\n parent[key] = oldParent[from];\n delete oldParent[from];\n }\n } else if (patch.op === 'remove') {\n if (isArray(parent)) {\n parent.splice(+key, 1);\n } else {\n delete parent[key];\n }\n }\n });\n};\n\n/**\n * Deep clone an object.\n *\n * @param {Object} obj The object to clone\n * @returns {Object} A new object identical to the `obj`\n */\nJSONPatch.clone = function (obj) {\n return extend({}, obj);\n};\n\n/**\n * Creates a JSON-patch.\n *\n * @param {String} op The operation of the patch. Available values: \"add\", \"remove\", \"move\"\n * @param {Object} [val] The value to set the `path` to. If `op` is `move`, `val` is the \"from JSON-path\" path\n * @param {String} path The JSON-path for the property to change (e.g. \"/qHyperCubeDef/columnOrder\")\n * @returns {Object} A patch following the JSON-patch specification\n */\nJSONPatch.createPatch = function (op, val, path) {\n const patch = {\n op: op.toLowerCase(),\n path,\n };\n if (patch.op === 'move') {\n patch.from = val;\n } else if (typeof val !== 'undefined') {\n patch.value = val;\n }\n return patch;\n};\n\n/**\n * Apply the differences of two objects (keeping references if possible).\n * Identical to running `JSONPatch.apply(original, JSONPatch.generate(original, newData));`\n *\n * @param {Object} original The object to update/patch\n * @param {Object} newData the object to diff against\n *\n * @example\n * var obj1 = { foo: [1,2,3], bar: { baz: true, qux: 1 } };\n * var obj2 = { foo: [4,5,6], bar: { baz: false } };\n * JSONPatch.updateObject(obj1, obj2);\n * // => { foo: [4,5,6], bar: { baz: false } };\n */\nJSONPatch.updateObject = function (original, newData) {\n if (!Object.keys(original).length) {\n extend(original, newData);\n return;\n }\n JSONPatch.apply(original, JSONPatch.generate(original, newData));\n};\n\nexport default JSONPatch;\n","import extend from 'extend';\nimport JSONPatch from './json-patch';\n\nclass SoftPropertyHandler {\n constructor(model) {\n this._model = model;\n }\n\n setModel(model) {\n this._model = model;\n }\n\n saveSoftProperties(prevEffectiveProperties, effectiveProperties) {\n if (!this._model) {\n return Promise.resolve(false);\n }\n\n let patches = JSONPatch.generate(prevEffectiveProperties, effectiveProperties);\n extend(true, prevEffectiveProperties, effectiveProperties);\n\n if (patches && patches.length) {\n patches = patches.map((p) => ({\n qOp: p.op,\n qValue: JSON.stringify(p.value),\n qPath: p.path,\n }));\n\n return this._model.applyPatches(patches, true).then(() => true);\n }\n return Promise.resolve(false);\n }\n\n async mergeSoftPatches() {\n if (!this._model) {\n return;\n }\n\n const propertiesPromise = this._model.getProperties();\n const effectivePromise = this._model.getEffectiveProperties();\n\n const properties = await propertiesPromise;\n const effective = await effectivePromise;\n\n if (properties.qExtendsId) {\n return;\n }\n const patches = JSONPatch.generate(properties, effective);\n JSONPatch.apply(properties, patches);\n\n const self = this;\n self._model.setProperties(properties).then(() => {\n self._model.clearSoftPatches();\n });\n }\n}\n\nexport default SoftPropertyHandler;\n","export default {\n canModifyHardProperties,\n};\n\nfunction canModifyHardProperties(layout) {\n if (layout.qHasSoftPatches || layout.qExtendsId) {\n return false;\n }\n if (layout.permissions) {\n return layout.permissions.update;\n }\n return layout.qMeta.privileges.indexOf('update') !== -1;\n}\n","import SoftPropertyHandler from '../../../extra/soft-property-handler';\nimport hardPropertiesChecker from '../../../extra/hard-properties-checker';\n\nexport default {\n saveDerivedProperties,\n};\n\n/**\n * Implementation details\n */\n\nfunction saveDerivedProperties(model, layout, properties, prevProperties) {\n // Can't set new properties on a master item (SUI-1363)\n\n if (hardPropertiesChecker.canModifyHardProperties(layout)) {\n return model.setProperties(properties);\n }\n\n const softPropertyHandler = new SoftPropertyHandler(model);\n return softPropertyHandler.saveSoftProperties(prevProperties, properties);\n}\n","export default {\n validate,\n};\n\n/**\n * Implementation details\n */\n\nfunction validate(settings) {\n if (\n !settings ||\n !settings.layout ||\n !settings.properties ||\n !settings.model ||\n !settings.hashData ||\n !settings.generateDerivedProperties\n ) {\n throw Error('Derived-properties: Missing input');\n }\n}\n","import extend from 'extend';\nimport Hash from './hash/hash';\nimport HashBuilder from './hash/hash-builder';\nimport Save from './save/save';\nimport InputValidator from './input-validator/input-validator';\n\nfunction DerivedProperties() {\n this._generationInProgress = false;\n}\n\nDerivedProperties.prototype.isDerivedUpToDate = isDerivedUpToDate;\nDerivedProperties.prototype.updateDerivedProperties = updateDerivedProperties;\nDerivedProperties.prototype.addDefaultHyperCubeHash = addDefaultHyperCubeHash;\n\nexport default DerivedProperties;\n\nfunction isDerivedUpToDate(settings) {\n InputValidator.validate(settings);\n\n const properties = settings.properties;\n const hash = Hash.generateHash(settings.hashData);\n\n if (!properties.qUndoExclude || properties.qUndoExclude.hashCode !== hash) {\n return false;\n }\n\n return true;\n}\n\n// Returns a boolean flag if properties actually are being updated or not\nfunction updateDerivedProperties(settings) {\n InputValidator.validate(settings);\n\n if (this._generationInProgress) {\n return Promise.resolve(true);\n }\n\n if (isDerivedUpToDate(settings)) {\n const layoutIsUpdated =\n settings.layout.qUndoExclude &&\n settings.layout.qUndoExclude.hashCode === settings.properties.qUndoExclude.hashCode;\n return Promise.resolve(!layoutIsUpdated);\n }\n\n const self = this;\n const model = settings.model;\n const layout = settings.layout;\n const properties = extend(true, {}, settings.properties);\n const prevProperties = extend(true, {}, properties);\n\n this._generationInProgress = true;\n\n Hash.updateHash(properties, settings.hashData);\n\n return settings.generateDerivedProperties(layout, properties).then(() =>\n Save.saveDerivedProperties(model, layout, properties, prevProperties).then(() => {\n self._generationInProgress = false;\n\n return Promise.resolve(true);\n })\n );\n}\n\nfunction addDefaultHyperCubeHash(hyperCubeDef, hyperCube, app, settings) {\n return HashBuilder.getDefaultHashDataForHyperCube(hyperCubeDef, hyperCube, app).then((defaultSettings) =>\n extend(true, settings, defaultSettings)\n );\n}\n","const ExpressionWrapper = {\n wrapExpression,\n};\n\nfunction wrapExpression(expression) {\n const result = expression.replace(/\\]/g, ']]');\n\n return result ? `[${result}]` : '';\n}\n\nexport default ExpressionWrapper;\n","/* eslint-disable no-restricted-syntax */\n/* eslint-disable guard-for-in */\nconst ExpressionReplacer = {\n replaceExpressionTokens,\n createRegExp,\n};\n\nfunction replaceExpressionTokens(expression, tokenMappings, tokenIdentifiers) {\n const identifiers = {\n start: (tokenIdentifiers && tokenIdentifiers.start) || '{{',\n end: (tokenIdentifiers && tokenIdentifiers.end) || '}}',\n };\n\n let returnExpression = expression;\n let tokenExpression;\n let tokenString;\n\n for (const key in tokenMappings) {\n tokenExpression = tokenMappings[key];\n tokenString = identifiers.start + key + identifiers.end;\n\n returnExpression = returnExpression.replace(createRegExp(tokenString, true), tokenExpression);\n }\n\n return returnExpression;\n}\n\nfunction createRegExp(string, isGlobal, isGrouped) {\n const escapedString = escapeRegExp(string);\n const regexpString = isGrouped ? `(${escapedString})` : escapedString;\n return isGlobal ? new RegExp(regexpString, 'g') : new RegExp(regexpString);\n}\n\nfunction escapeRegExp(str) {\n return str.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&');\n}\n\nexport default ExpressionReplacer;\n","/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\nimport ExpressionWrapper from './expression-wrapper';\nimport ExpressionReplacer from './expression-replacer';\n\nconst ExpressionGenerator = {\n generateExpression,\n};\n\n// builds up mappings for the dimensions and measures and wraps the dimensions\n// mappings = { mapping }\n// mapping = {\n// \tvalue: (string) the expression value to replace the key with,\n// \twrap: (boolean) if the expression should be cleaned and wrapped or not (usually if field)\n// variations: (Array) array of strings with variations on the same key that if the value is empty should also be empty\nfunction generateExpression(template, mappings) {\n const explicitMappings = {};\n\n if (mappings) {\n for (const key in mappings) {\n const mapping = mappings[key];\n\n const expression = mapping.wrap ? ExpressionWrapper.wrapExpression(mapping.value) : mapping.value;\n\n explicitMappings[key] = expression;\n\n const variations = mapping.variations || [];\n\n variations.forEach((variation) => {\n const variationExpressions = assembleVariation(variation, expression, key);\n explicitMappings[variation] = variationExpressions;\n });\n }\n }\n\n return ExpressionReplacer.replaceExpressionTokens(template, explicitMappings);\n}\n\n// Internal functions\n\nfunction assembleVariation(variation, value, key) {\n if (value === '') {\n return '';\n }\n\n const regExp = ExpressionReplacer.createRegExp(key, true, true);\n const stringArray = variation.split(regExp);\n let expression = '';\n\n stringArray.forEach((substring) => {\n expression += substring !== key ? substring : value;\n });\n\n return expression;\n}\n\nexport default ExpressionGenerator;\n","import extend from 'extend';\nimport ExpressionGenerator from '../expression-generator/expression-generator';\n\nconst HyperCubeGenerator = {\n generateHyperCubeDef,\n getAllHyperCubeExpressions,\n};\n\n// builds up a hyper cube using a hyper cube def and the hyper cube result, needs the app as well\n// also supports additional mappings that allows generation of more advanced expressions\nfunction generateHyperCubeDef(template, hyperCubeDef, hyperCube, app, mappings) {\n // hyper cube knows about {{Dim[n]}} {{Mea[n]}} mappings.\n return getKnownMappings(template.dimensions.concat(template.measures), hyperCubeDef, hyperCube, app).then(\n (knownMappings) => {\n const allMappings = extend({}, knownMappings, mappings);\n\n const generatedHyperCubeDef = extend(true, {}, hyperCubeDef);\n // clean the dimensions and measures\n generatedHyperCubeDef.qDimensions = [];\n generatedHyperCubeDef.qMeasures = [];\n\n template.dimensions.forEach((dimensionTemplate) => {\n generatedHyperCubeDef.qDimensions.push({\n qDef: {\n qFieldDefs: [`=${ExpressionGenerator.generateExpression(dimensionTemplate, allMappings)}`],\n },\n });\n });\n\n template.measures.forEach((measureTemplate) => {\n generatedHyperCubeDef.qMeasures.push({\n qDef: {\n qDef: ExpressionGenerator.generateExpression(measureTemplate, allMappings),\n },\n });\n });\n\n return generatedHyperCubeDef;\n }\n );\n}\n\nasync function getAllHyperCubeExpressions(hyperCubeDef, hyperCube, app) {\n const dimensions = hyperCubeDef.qDimensions.map((dimension, index) =>\n getExpressionFromDimension(dimension, app, index, hyperCube)\n );\n const measures = hyperCubeDef.qMeasures.map((measure) => getExpressionFromMeasure(measure, app));\n\n return {\n dimensions: await Promise.all(dimensions),\n measures: await Promise.all(measures),\n };\n}\n\nfunction getExpressionFromDimension(dimension, app, index, hyperCube) {\n if (dimension.qLibraryId) {\n return getExpressionFromLibraryItem(dimension.qLibraryId, 'dimension', app, index, hyperCube);\n }\n const drillIndex = hyperCube.qDimensionInfo[index].qGroupPos;\n return Promise.resolve(dimension.qDef.qFieldDefs[drillIndex]);\n}\n\nfunction getExpressionFromMeasure(measure, app) {\n if (measure.qLibraryId) {\n return getExpressionFromLibraryItem(measure.qLibraryId, 'measure', app);\n }\n return Promise.resolve(measure.qDef.qDef);\n}\n\n// Internal functions\n\nfunction getExpressionFromLibraryItem(id, type, app, index, hyperCube) {\n if (!app) {\n console.warn('No app provided, returning library id');\n return id;\n }\n\n const getFn = type === 'dimension' ? 'getDimension' : 'getMeasure';\n\n return app[getFn](id).then((item) =>\n item.getProperties().then((props) => {\n if (type === 'dimension') {\n return props.qDim.qFieldDefs[hyperCube.qDimensionInfo[index].qGroupPos];\n }\n return props.qMeasure.qDef;\n })\n );\n}\n\n// identifies {{Dim[x]}} {{Mea[x]}} mappings and returns the distinct instances of them\nfunction getKnownMappings(mappings, hyperCubeDef, hyperCube, app) {\n const knownMappings = {};\n let dimensionIndices;\n let measureIndices;\n const dfds = [];\n\n mappings.forEach((mapping) => {\n dimensionIndices = spliceIdentifiedMatches(mapping.match(getMappingRegExp('Dim')));\n dimensionIndices.forEach((index) => {\n dfds.push(\n getExpressionFromDimension(hyperCubeDef.qDimensions[index], app, index, hyperCube).then((expression) => {\n knownMappings[`Dim[${index}]`] = { value: expression, wrap: true };\n })\n );\n });\n\n measureIndices = spliceIdentifiedMatches(mapping.match(getMappingRegExp('Mea')));\n measureIndices.forEach((index) => {\n dfds.push(\n getExpressionFromMeasure(hyperCubeDef.qMeasures[index], app).then((expression) => {\n knownMappings[`Mea[${index}]`] = { value: expression };\n })\n );\n });\n });\n\n let returnPromise;\n if (dfds.length) {\n returnPromise = Promise.all(dfds).then(() => Promise.resolve(knownMappings));\n } else {\n returnPromise = Promise.resolve(knownMappings);\n }\n return returnPromise;\n}\n\nfunction getMappingRegExp(string) {\n return new RegExp(`\\\\{\\\\{${string}\\\\[\\\\d\\\\]\\\\}\\\\}`, 'g');\n}\n\nfunction spliceIdentifiedMatches(matches) {\n if (!matches) {\n return [];\n }\n return matches.map((match) => match.substr(6, 1));\n}\n\nexport default HyperCubeGenerator;\n","export default function isNumeric(v) {\n return !Number.isNaN(parseFloat(v)) && Number.isFinite(+v);\n}\n","export default function isInteger(v) {\n return !Number.isNaN(parseInt(v, 10)) && parseFloat(v, 10) === parseInt(v, 10);\n}\n","import { getValue } from 'qlik-chart-modules';\nimport isInteger from '@qlik/common/extra/is-integer';\nimport isNumeric from '@qlik/common/extra/is-numeric';\nimport BINNING_DEFAULTS from './binning-defaults';\n\n/**\n * Implementation details\n */\n\nfunction getBinMode(layout) {\n return getValue(layout, 'bins.binMode', BINNING_DEFAULTS.BIN_MODE);\n}\n\nfunction getBinSize(layout) {\n return getValue(layout, 'bins.binSize', BINNING_DEFAULTS.BIN_SIZE);\n}\n\nfunction getDerivedBinSize(layout) {\n return getValue(layout, 'qUndoExclude.bins.binSize', BINNING_DEFAULTS.BIN_SIZE);\n}\n\nfunction getDerivedBinOffset(layout) {\n return getValue(layout, 'qUndoExclude.bins.offset', BINNING_DEFAULTS.OFFSET);\n}\n\nfunction getDerivedBinCount(layout) {\n const binCount = getValue(layout, 'qUndoExclude.bins.binCount', BINNING_DEFAULTS.BIN_COUNT);\n\n if (!isNumeric(binCount)) {\n return BINNING_DEFAULTS.BIN_COUNT;\n }\n\n if (binCount < 1) {\n return 1;\n }\n\n // The numbers of bins needs to be an integer, round it with Math.ceil\n if (!isInteger(binCount)) {\n return Math.ceil(binCount);\n }\n\n return binCount;\n}\n\nfunction getBinCount(layout) {\n return getValue(layout, 'bins.binCount', undefined);\n}\n\nfunction getBinOffset(layout) {\n return getValue(layout, 'bins.offset', BINNING_DEFAULTS.OFFSET);\n}\n\nfunction isAutoBin(layout) {\n return getValue(layout, 'bins.auto', BINNING_DEFAULTS.AUTO);\n}\n\nfunction isCountDistinct(layout) {\n return getValue(layout, 'bins.countDistinct', BINNING_DEFAULTS.COUNT_DISTINCT);\n}\n\nfunction isEmpty(v) {\n return v === undefined || v === null || v === '';\n}\n\nconst histogramUtils = {\n getBinSize,\n getDerivedBinSize,\n getDerivedBinOffset,\n getDerivedBinCount,\n getBinCount,\n getBinOffset,\n isAutoBin,\n isCountDistinct,\n getBinMode,\n isEmpty,\n};\n\nexport default histogramUtils;\n","import isInteger from '@qlik/common/extra/is-integer';\nimport isNumeric from '@qlik/common/extra/is-numeric';\n\nconst LOG10 = Math.log(10);\nconst EPSILON = 1e-9;\nconst NICE_NUMBERS1 = [1, 1.5, 2, 3, 4, 5, 6, 10];\nconst NICE_NUMBERS2 = [1, 2, 4, 5, 6, 8, 10];\nconst LOOP_CONTROL_NUMBERS = [2, 4, 5, 10];\n\n/**\n * Implementation details\n */\n\nfunction validateInput(min, max, binCount) {\n if (!isNumeric(min) || !isNumeric(max) || !isNumeric(binCount)) {\n throw Error('binSizeCalculator: One of the inputs is NOT numeric');\n }\n\n if (min > max) {\n throw Error(\"binSizeCalculator: The 'min' parameter is bigger than the 'max' parameter\");\n }\n}\n\nfunction getBinCount(binCount) {\n // The smallest number of bins possible is 1\n if (binCount < 1) {\n return 1;\n }\n\n // The numbers of bins needs to be an integer, round it with Math.ceil\n if (!isInteger(binCount)) {\n return Math.ceil(binCount);\n }\n\n return binCount;\n}\n\nfunction getGoodNumber(value, niceNumbers) {\n if (value === 0) {\n return 0;\n }\n let roundedFraction;\n const magnitude = Math.floor(Math.log(Math.abs(value)) / LOG10);\n const fraction = value / 10 ** magnitude;\n for (let i = 0; i < niceNumbers.length; i++) {\n if (fraction <= niceNumbers[i]) {\n roundedFraction = niceNumbers[i];\n break;\n }\n }\n\n // Fix floating error\n return (\n (magnitude >= 0 ? roundedFraction * 10 ** magnitude : roundedFraction / 10 ** -magnitude) * (value < 0 ? -1 : 1)\n );\n}\n\nfunction calculateNumEmptyBins(min, max, nbrOfBins, binSize, newMin, newMax) {\n return Math.floor(Math.abs(min - newMin) / binSize) + Math.floor(Math.abs(newMax - max) / binSize);\n}\n\nfunction calculateBinSize(min, max, nbrOfBins) {\n let newMin;\n let newMax;\n let range;\n let binSize;\n let niceBinSize;\n let magnitude;\n let f;\n let k;\n let i = -1;\n let delta;\n let n;\n let loop;\n let t;\n let niceNumbers = NICE_NUMBERS1;\n nbrOfBins = Math.max(1, nbrOfBins);\n if (max === min) {\n if (max === 0) {\n binSize = 1;\n if (nbrOfBins === 1) {\n return {\n min,\n max,\n nbrOfBins,\n rawBinSize: range / nbrOfBins,\n offset: -0.5, // new min\n newMax: 0.5,\n binSize: 1,\n numEmptyBins: 0,\n };\n }\n } else if (nbrOfBins === 1) {\n binSize = max + EPSILON;\n niceNumbers = NICE_NUMBERS2;\n } else {\n binSize = Math.abs(max / nbrOfBins);\n }\n } else {\n max += EPSILON;\n range = max - min;\n binSize = range / nbrOfBins;\n }\n do {\n k = 1;\n loop = 0;\n if (i >= 0) {\n delta = 1 / LOOP_CONTROL_NUMBERS[i];\n n = 1;\n niceNumbers = [];\n while (n <= 10) {\n niceNumbers.push(Math.round(n * 1000) / 1000);\n n += delta;\n }\n }\n niceBinSize = binSize;\n do {\n niceBinSize = getGoodNumber(niceBinSize * k, niceNumbers);\n magnitude = Math.floor(Math.log(niceBinSize) / LOG10);\n f = 10 ** magnitude;\n if (max === min) {\n newMax = (Math.ceil(max / niceBinSize) + Math.floor(nbrOfBins / 2)) * niceBinSize;\n } else {\n newMax = Math.ceil(max / niceBinSize) * niceBinSize;\n }\n newMin = newMax - nbrOfBins * niceBinSize;\n let j = 0;\n t = f;\n while ((newMin > min || newMax < max) && j < LOOP_CONTROL_NUMBERS.length) {\n newMin = Math.floor(min / t) * t;\n newMax = newMin + nbrOfBins * niceBinSize;\n t = f / LOOP_CONTROL_NUMBERS[j++];\n }\n\n // Fix floating error\n if (magnitude < 1) {\n f = 10 ** (Math.abs(magnitude) + 1);\n newMax = Math.round(newMax * f) / f;\n newMin = Math.round(newMin * f) / f;\n }\n k = 1.1;\n loop++;\n } while ((newMin > min || newMax < max) && loop < 10); // Bin size should be increased to cover the min-max range\n i++;\n } while (calculateNumEmptyBins(min, max, nbrOfBins, binSize, newMin, newMax) > 0 && i < LOOP_CONTROL_NUMBERS.length);\n return {\n binCount: nbrOfBins,\n offset: newMin, // new min\n binSize: niceBinSize,\n };\n}\n\nfunction preCalculateBinSize(min, max, binCount) {\n // General input validation\n validateInput(min, max, binCount);\n\n // Makes sure binCount is an integer bigger than 0\n binCount = getBinCount(binCount);\n\n return calculateBinSize(min, max, binCount);\n}\n\nconst binSizeCalculator = {\n calculateBinSize: preCalculateBinSize,\n};\n\nexport default binSizeCalculator;\n","import { getValue } from 'qlik-chart-modules';\nimport isNumeric from '@qlik/common/extra/is-numeric';\nimport histogramUtils from '../histogram-utils';\nimport binSizeCalculator from './bin-size-calculator';\n\n/**\n * Implementation details\n */\n\nfunction getMappings(values) {\n const mappings = {};\n\n mappings.BinSize = {\n value: `,${values.binSize}`,\n };\n\n mappings.Label = {\n value: values.binOffset === 0 ? '' : \",'x'\",\n };\n\n mappings.Offset = {\n value: values.binOffset === 0 ? '' : `,${values.binOffset}`,\n };\n\n mappings.Distinct = {\n value: values.distinct ? 'Distinct ' : '',\n };\n\n return mappings;\n}\n\nfunction getBinInfo(layout) {\n const dimInfo = getValue(layout, 'qHyperCube.qDimensionInfo.0', {});\n let qMin = dimInfo.qMin;\n let qMax = dimInfo.qMax;\n\n qMin = isNumeric(qMin) ? qMin : 1;\n qMax = isNumeric(qMax) ? qMax : 1;\n const binCount = histogramUtils.getDerivedBinCount(layout);\n\n return binSizeCalculator.calculateBinSize(qMin, qMax, binCount);\n}\n\nfunction getMappingValues(layout) {\n const auto = histogramUtils.isAutoBin(layout);\n const binMode = histogramUtils.getBinMode(layout);\n let binSize;\n let binOffset;\n let binCount;\n let binInfo;\n const distinct = histogramUtils.isCountDistinct(layout);\n\n if (auto || binMode === 'maxCount') {\n binInfo = getBinInfo(layout);\n\n binSize = binInfo.binSize;\n binOffset = binInfo.offset;\n binCount = binInfo.binCount;\n } else {\n binSize = histogramUtils.getBinSize(layout);\n binOffset = histogramUtils.getBinOffset(layout);\n }\n\n return {\n binSize,\n binOffset,\n binCount,\n distinct,\n };\n}\n\nconst histogramMappings = {\n getMappingValues,\n getMappings,\n};\n\nexport default histogramMappings;\n","import { setValue } from 'qlik-chart-modules';\nimport HyperCubeDefGenerator from '@qlik/common/picasso/hypercube-def-generator/hypercube-def-generator';\nimport ExpressionGenerator from '@qlik/common/picasso/expression-generator/expression-generator';\nimport histogramMappings from './histogram-mappings';\nimport histogramUtils from '../histogram-utils';\n\nasync function generateHyperCubes(layout, properties, environment) {\n const { app, translator } = environment;\n const mappingValues = histogramMappings.getMappingValues(layout);\n const mappings = histogramMappings.getMappings(mappingValues);\n\n const hyperCubeTemplate = {\n dimensions: ['Class(aggr({{Dim[0]}},{{Dim[0]}}){{BinSize}}{{Label}}{{Offset}})'],\n measures: ['Count({{Distinct}}{{Dim[0]}})'],\n };\n\n // Sturges' formula - https://en.wikipedia.org/wiki/Histogram#Number_of_bins_and_width\n const binCountTemplate = '=Ceil(Log10(Count({{Dim[0]}})) / Log10(2)) + 1';\n\n const expressionsPromise = HyperCubeDefGenerator.getAllHyperCubeExpressions(\n properties.qHyperCubeDef,\n layout.qHyperCube,\n app\n );\n const boxCubeDefPromise = HyperCubeDefGenerator.generateHyperCubeDef(\n hyperCubeTemplate,\n properties.qHyperCubeDef,\n layout.qHyperCube,\n app,\n mappings\n );\n\n const expressions = await expressionsPromise;\n const boxCubeDef = await boxCubeDefPromise;\n let binCountExpr;\n\n if (histogramUtils.isAutoBin(layout)) {\n binCountExpr = {\n qValueExpression: {\n qExpr: ExpressionGenerator.generateExpression(binCountTemplate, {\n 'Dim[0]': { value: expressions.dimensions[0], wrap: true },\n }),\n },\n };\n } else if (histogramUtils.getBinMode(layout) === 'maxCount' && histogramUtils.isEmpty(properties.bins.binCount)) {\n // When the user have not provided any binCount we use the derived value which will be the output of the auto algorithm in most cases\n binCountExpr = histogramUtils.getDerivedBinCount(layout);\n } else {\n binCountExpr = properties.bins.binCount;\n }\n\n // Dimension should be sorted numeric ascending\n setValue(boxCubeDef, 'qDimensions.0.qDef.qSortCriterias', [{ qSortByNumeric: 1 }]);\n\n // Store the data labels, used when object is flipped to table\n setValue(boxCubeDef, 'qDimensions.0.qDef.qFieldLabels', [layout.qHyperCube.qDimensionInfo[0].qFallbackTitle]);\n setValue(\n boxCubeDef,\n 'qMeasures.0.qDef.qLabel',\n layout.measureAxis.label || translator.get('Visualization.Histogram.MeasureAxisLabel')\n );\n\n // Store the generated hyperCube on properties\n setValue(properties, 'qUndoExclude.box.qHyperCubeDef', boxCubeDef);\n\n // Store the binSize (which in auto mode will be dynamically calculated)\n setValue(properties, 'qUndoExclude.bins.binSize', mappingValues.binSize);\n setValue(properties, 'qUndoExclude.bins.offset', mappingValues.binOffset);\n setValue(properties, 'qUndoExclude.bins.binCount', binCountExpr);\n}\n\nconst cubesGenerator = {\n generateHyperCubes,\n};\n\nexport default cubesGenerator;\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","import { getValue } from 'qlik-chart-modules';\n\nconst MAX_GLYPH_COUNT = 20;\n\n//\n// Implementation details\n//\n\nfunction getMaxGlyphCountForDimAxis(layout) {\n const qApprMaxGlyphCount = getValue(layout, 'qUndoExclude.box.qHyperCube.qDimensionInfo.0.qApprMaxGlyphCount', 0);\n return Math.min(MAX_GLYPH_COUNT, qApprMaxGlyphCount);\n}\n\nfunction createDimensionAxisSettings(layout) {\n return {\n settings: {\n labels: {\n maxGlyphCount: getMaxGlyphCountForDimAxis(layout),\n },\n },\n };\n}\n\nconst DimensionAxis = {\n createSettings: createDimensionAxisSettings,\n};\n\nexport default DimensionAxis;\n","import { getValue } from 'qlik-chart-modules';\nimport histogramUtils from '../histogram-utils';\n\n//\n// Implementation details\n//\n\nfunction createDimensionScaleSettings(layout) {\n const isAutoMode = histogramUtils.isAutoBin(layout);\n const binMode = histogramUtils.getBinMode(layout);\n const binSize = histogramUtils.getDerivedBinSize(layout);\n let min;\n let max;\n\n if (isAutoMode || binMode === 'maxCount') {\n // User is expecting a specific number of bars so we make sure the axis\n // will hold this number of bars even if there are not that many bars in the data\n const offset = histogramUtils.getDerivedBinOffset(layout);\n\n const binCount = histogramUtils.getDerivedBinCount(layout);\n\n min = offset;\n max = offset + binCount * binSize;\n } else {\n const dimInfo = getValue(layout, 'qUndoExclude.box.qHyperCube.qDimensionInfo.0', {});\n min = dimInfo.qMin || 0;\n max = (dimInfo.qMax || 0) + binSize;\n }\n\n return {\n component: {\n type: 'linear',\n min,\n max,\n },\n };\n}\n\nconst DimensionScale = {\n createSettings: createDimensionScaleSettings,\n};\n\nexport default DimensionScale;\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","import chartStyleUtils from '@qlik/common/extra/chart-style-utils';\nimport histogramUtils from '../histogram-utils';\n\n//\n// Implementation details\n//\n\nfunction createBoxMarkerSettings(\n chartView,\n layout,\n basicSelectionSettings,\n dimensionSelectionSettings,\n measureSelectionSettings,\n tooltipSettings\n) {\n const { theme } = chartView.environment;\n const boxFillColor = theme.getColorPickerColor(layout.color.bar.paletteColor);\n const binSize = histogramUtils.getDerivedBinSize(layout);\n\n const brushTrigger = [];\n const brushConsume = [\n basicSelectionSettings.consume,\n dimensionSelectionSettings.consume,\n measureSelectionSettings.consume,\n ];\n\n if (chartView._tooltipHandler.isOn()) {\n brushTrigger.push(tooltipSettings.box.trigger);\n brushConsume.push.apply(brushConsume, tooltipSettings.box.consume);\n }\n\n brushTrigger.push(basicSelectionSettings.trigger);\n\n return {\n key: 'box-marker',\n settings: {\n box: {\n fill: boxFillColor,\n stroke: chartStyleUtils.getContrastingGrey(boxFillColor).toHex(),\n strokeWidth: 1,\n maxWidthPx: Infinity,\n minWidthPx: NaN, // Temp fix for QLIK-92353 until a proper fix is available in picasso.js\n minWidth: 0,\n },\n major: {\n scale: 'dimension',\n ref: {\n start: 'binStart',\n end: 'binEnd',\n },\n },\n minor: { scale: 'measure' },\n whiskers: false,\n orientation: 'vertical',\n },\n brush: {\n trigger: brushTrigger,\n consume: brushConsume,\n },\n data: {\n extract: {\n field: 'qDimensionInfo/0',\n props: {\n start: 0,\n end: { field: 'qMeasureInfo/0' },\n measure: {\n field: 'qMeasureInfo/0',\n reduce: 'first',\n value(v) {\n return v;\n },\n reduceLabel: 'none',\n },\n binStart: {\n field: 'qDimensionInfo/0',\n value(v) {\n return v.qNum;\n },\n },\n binEnd: {\n field: 'qDimensionInfo/0',\n value(v) {\n return v.qNum + binSize;\n },\n },\n elemNo: { field: 'qDimensionInfo/0' },\n bin: {\n field: 'qDimensionInfo/0',\n value(v) {\n return v;\n },\n },\n },\n },\n },\n };\n}\n\nconst BoxMarker = {\n createSettings: createBoxMarkerSettings,\n};\n\nexport default BoxMarker;\n","import chartStyleUtils from '@qlik/common/extra/chart-style-utils';\n\n//\n// Implementation details\n//\n\nfunction createLabelSettings(layout, theme) {\n const boxFillColor = theme.getColorPickerColor(layout.color.bar.paletteColor);\n\n return {\n settings: {\n sources: [\n {\n strategy: {\n settings: {\n labels: [\n {\n placements: [{}, { fill: chartStyleUtils.getInverse(boxFillColor) }],\n },\n ],\n },\n },\n },\n ],\n },\n };\n}\n\nconst Label = {\n createSettings: createLabelSettings,\n};\n\nexport default Label;\n","import { getValue } from 'qlik-chart-modules';\nimport ChartBuilder from '@qlik/common/picasso/chart-builder/chart-builder';\nimport DependentInteractions from '@qlik/common/picasso/selections/dependent-interactions';\nimport DimensionAxis from './dimension-axis';\nimport DimensionScale from './dimension-scale';\nimport BoxMarker from './box-marker';\nimport Label from './label';\n// import propertyResolver from '../../../../assets/client/utils/property-resolver';\n\nconst chartID = 'object.histogram';\n\n//\n// Implementation details\n//\n\n/**\n * Checks whether the dimension is locked or not\n * @param layout - layout for histogram\n * @returns {boolean} - true is the dimension is locked, otherwise false\n */\nfunction getLockedDim(layout) {\n const dimInfos =\n layout.qUndoExclude &&\n layout.qUndoExclude.box &&\n layout.qUndoExclude.box.qHyperCube &&\n layout.qUndoExclude.box.qHyperCube.qDimensionInfo\n ? layout.qUndoExclude.box.qHyperCube.qDimensionInfo\n : undefined;\n if (!dimInfos) {\n return false;\n }\n return !!dimInfos[0].qLocked;\n}\n\n/**\n * Disables/Enables measure- dimension range selection depending if the field is locked or not.\n * In this case, as soon as the current class function is locked, then both measure and dimension\n * range selection is locked down\n * @param lockedDim - boolean determining if the dimension is locked down\n * @returns {object} that gives the status of measure and dimension range selection\n */\nfunction retrieveRangeSelStatus(lockedDim) {\n const rangeSelStatus = {};\n if (lockedDim) {\n rangeSelStatus.isOpenDim = false;\n rangeSelStatus.isOpenMea = false;\n } else {\n rangeSelStatus.isOpenDim = true;\n rangeSelStatus.isOpenMea = true;\n }\n return rangeSelStatus;\n}\n\nfunction isSingleSelect(layout) {\n return getValue(layout, 'qHyperCube.qDimensionInfo.0.qIsOneAndOnlyOne', false);\n}\n\nfunction createChartSettings(chartView, layout) {\n const isRtl = chartView.isRtl();\n const orgDimInfo = getValue(layout, 'qHyperCube.qDimensionInfo.0', {});\n const dimTitle = orgDimInfo.qFallbackTitle || '';\n const { theme, translator } = chartView.environment;\n\n // Create components\n const chartBuilder = ChartBuilder.create({\n chartID,\n theme,\n isRtl,\n });\n\n let basicSelectionSettings = {};\n let dimensionSelectionSettings = {};\n let measureSelectionSettings = {};\n if (chartView._selectionHandler.isOn()) {\n chartView._selectionHandler.setUpStart();\n\n basicSelectionSettings = chartView._selectionHandler.setUpBrush({\n contexts: ['select'],\n data: ['elemNo'],\n dataPath: 'qUndoExclude/box',\n });\n\n dimensionSelectionSettings = chartView._selectionHandler.setUpBrush({\n contexts: ['select-dimension'],\n data: ['elemNo'],\n dataPath: 'qUndoExclude/box',\n isSingleSelect: isSingleSelect(layout),\n });\n\n measureSelectionSettings = chartView._selectionHandler.setUpBrush({\n dataPath: 'qUndoExclude/box',\n contexts: ['select-measure'],\n data: ['end'],\n });\n\n chartView._selectionHandler.setUpDone();\n }\n\n const tooltipSettings = { box: {} };\n if (chartView._tooltipHandler.isOn()) {\n tooltipSettings.box = chartView._tooltipHandler.setUp({\n chartBuilder,\n environment: chartView.environment,\n data: [''],\n contexts: ['boxTip'],\n componentKey: 'box-marker',\n measureRows: ['measure'], // Should be a mapped path under extract, mandatory to display tooltip\n labelData: ['bin'], // Should be a mapped path under extract, mandatory to display tooltip\n });\n }\n\n const lockedDims = getLockedDim(layout);\n const rangeSelStatus = retrieveRangeSelStatus(lockedDims);\n\n const handlers = {\n scrollHandler: null,\n selectionHandler: chartView._selectionHandler,\n };\n\n const keys = {\n componentKey: 'box-marker',\n lassoBrushKey: 'select',\n dimRangeBrushKey: null,\n measureRangeBrushKey: 'select-measure',\n areaBrushKey: 'select-dimension',\n };\n\n if (this._dependentActions) {\n this._dependentActions.destroy();\n }\n this._dependentActions = DependentInteractions.create(handlers, 'vertical', isRtl, keys, rangeSelStatus);\n\n chartBuilder.addPreset('dimension-measure-chart', {\n // common\n isRtl,\n includeDimensionAxis: true,\n orientation: 'vertical',\n selectionsEnabled: chartView._selectionHandler.isOn(),\n theme,\n\n // measure scale\n measureSource: 'qMeasureInfo/0',\n measureScaleSettings: {\n component: {\n expand: 0,\n include: [0], // Make sure that the measure axis starts from 0.\n },\n },\n\n // Lasso\n enableLasso: true,\n lasso: {\n brushKey: 'select',\n brushComponents: ['box-marker'],\n },\n\n // Mea range selection\n enableMeasureRange: true,\n measureRange: {\n brushKey: 'select-measure',\n brushAxis: 'y-axis',\n brushArea: 'box-marker',\n brushScale: 'measure',\n },\n\n // Area range selection\n enableAreaRange: true,\n areaRange: {\n brushKey: 'select-dimension',\n brushAxis: 'x-axis',\n brushData: ['elemNo'],\n brushArea: 'box-marker',\n brushScale: 'rangeSelSettings',\n brushComponents: ['box-marker'],\n multiple: true,\n chartInstance: chartView.chartInstance,\n },\n brushActions: this._dependentActions.gestures,\n\n dimensionSource: 'qDimensionInfo/0',\n dimensionScaleSettings: DimensionScale.createSettings(layout),\n\n // measure axis and title\n measureAxisProperties: layout.measureAxis, // used by both\n measureTitleText: layout.measureAxis.label || translator.get('Visualization.Histogram.MeasureAxisLabel'),\n\n // dimension axis and title\n dimensionAxisProperties: layout.dimensionAxis, // used by both\n dimensionAxisSettings: DimensionAxis.createSettings(layout),\n dimensionTitleText: dimTitle,\n\n // grid lines\n gridlines: layout.gridlines,\n\n // scroll\n hasNavigation: false,\n isNavigationEnabledFn: () => false,\n\n // ref-lines\n refLines: layout.refLine && layout.refLine.refLines,\n });\n\n const settings = chartBuilder.getSettings();\n\n // Box marker\n const boxMarkerSettings = BoxMarker.createSettings(\n chartView,\n layout,\n basicSelectionSettings,\n dimensionSelectionSettings,\n measureSelectionSettings,\n tooltipSettings\n );\n chartBuilder.addComponent('box-marker', boxMarkerSettings);\n\n if (layout.dataPoint && layout.dataPoint.showLabels) {\n const binLabelSettings = Label.createSettings(layout, theme);\n chartBuilder.addComponent('labels', binLabelSettings);\n }\n\n // Add snapshot settings\n chartView.addSnapshotChartSettings(settings, layout);\n\n // max: layout.qHyperCube.qDimensionInfo[0].qMax + binSize,\n settings.scales.rangeSelSettings = {\n type: 'linear',\n min: settings.scales.dimension.min,\n max: settings.scales.dimension.max,\n source: 'qDimensionInfo/0',\n };\n\n return settings;\n}\n\nconst ChartSettings = {\n createChartSettings,\n};\n\nexport default ChartSettings;\n","import { getValue } from 'qlik-chart-modules';\nimport ChartView from '@qlik/common/picasso/chart-view';\nimport SelectionHandler from '@qlik/common/picasso/selections/selections-handler';\nimport TooltipHandler from '@qlik/common/picasso/tooltip/tooltips-handler';\nimport DerivedProperties from '@qlik/common/picasso/derived-properties/derived-properties';\nimport cubesGenerator from './derived-properties/histogram-cubes-generator';\nimport histogramMappings from './derived-properties/histogram-mappings';\nimport ChartSettings from './chart-settings/chart-settings';\n\nconst namespace = '.histogram';\nconst chartID = 'object.histogram';\n\n//\n// Implementation details\n//\n\nfunction init({ environment, lasso, picasso, $element, backendApi, selectionsApi, renderState }) {\n this._super(picasso, $element, environment, backendApi, selectionsApi);\n\n this.renderState = renderState;\n\n this.picassoElement.__do_not_use_findShapes = this.chartInstance.findShapes.bind(this.chartInstance); // to allow access to renderered content via DOM\n\n this._derivedProperties = new DerivedProperties();\n\n this._selectionHandler = SelectionHandler.create({\n model: backendApi.model,\n chartInstance: this.chartInstance,\n selectionsApi,\n selectPaths: ['/qUndoExclude/box/qHyperCubeDef'],\n lasso,\n });\n this._tooltipHandler = TooltipHandler.create(this.chartInstance, $element, chartID);\n\n this.setDataPaths(['qUndoExclude/box/qHyperCube']);\n}\n\nfunction updateConstraints(constraints) {\n const tooltip = !constraints.passive;\n const selection = !constraints.select && !constraints.active;\n\n this._tooltipHandler[tooltip ? 'on' : 'off']();\n this._selectionHandler[selection ? 'on' : 'off']();\n}\nfunction off() {\n this._tooltipHandler.off();\n this._selectionHandler.off();\n}\n\nfunction setSnapshotData(snapshotLayout) {\n this._super(snapshotLayout);\n\n snapshotLayout.qUndoExclude.box.qHyperCube.qDataPages = this.layout.qUndoExclude.box.qHyperCube.qDataPages; // eslint-disable-line no-param-reassign\n\n return Promise.resolve(snapshotLayout);\n}\n\nfunction getRequireNumericDimensionAttribute(qHyperCube) {\n return qHyperCube.qDimensionInfo.length > 0 && qHyperCube.qDimensionInfo[0].qTags.indexOf('$numeric') === -1;\n}\n\nfunction getDisclaimerAttributes(layout) {\n function isOnlyNanData() {\n const rows = getValue(layout, 'qUndoExclude.box.qHyperCube.qDataPages.0.qMatrix', []);\n\n // There is only one row and the dimension value on that row is null, then we only have NaN data\n return rows.length === 1 && rows[0][0] && rows[0][0].qIsNull;\n }\n\n const onlyNanData = isOnlyNanData();\n\n return {\n data: layout.qUndoExclude && layout.qUndoExclude.box,\n supportedDisclaimers: {\n LimitedData: true,\n OnlyNanData: true,\n OnlyNegativeOrZeroValues: !onlyNanData,\n RequireNumericDimension: true,\n },\n options: {\n bottom: true,\n supportNegative: false,\n explicitOnlyNanData: onlyNanData,\n explicitRequireNumericDimension: getRequireNumericDimensionAttribute(layout.qHyperCube),\n },\n };\n}\n\nfunction updateChart(layout, settings) {\n if (!layout.qUndoExclude) {\n // Console error when undefined data is sent to picasso\n return Promise.resolve();\n }\n this._super(layout, settings);\n return undefined;\n}\n\nfunction getHashData(layout, properties) {\n return {\n box: properties.qHyperCubeDef,\n binMappings: histogramMappings.getMappingValues(layout),\n binProperties: properties.bins,\n measureAxis: properties.measureAxis,\n version: '2.0', // Added to trigger update because of logic changes in generateHyperCubes\n };\n}\n\nfunction updateData(layout) {\n const self = this;\n\n return self._super(layout).then(() => {\n if (self._destroyed) {\n return Promise.reject();\n }\n layout = self.layout; // eslint-disable-line no-param-reassign\n\n const rect = {\n height: Math.min(layout.qHyperCube.qSize.qcy, 1000),\n width: 2,\n };\n\n const model = self.backendApi.model;\n\n const isSnapshot = !!this.layout.snapshotData;\n if (isSnapshot) {\n return Promise.resolve();\n }\n\n return model.getEffectiveProperties().then((properties) => {\n if (self._destroyed) {\n return Promise.reject();\n }\n return self._derivedProperties\n .addDefaultHyperCubeHash(\n properties.qHyperCubeDef,\n layout.qHyperCube,\n self.environment.app,\n getHashData(layout, properties)\n )\n .then((hashData) => {\n if (self._destroyed) {\n return Promise.reject();\n }\n const settings = {\n layout,\n properties,\n model,\n hashData,\n generateDerivedProperties(layout, properties) {\n return cubesGenerator.generateHyperCubes(layout, properties, self.environment);\n },\n };\n\n if (!self._derivedProperties.isDerivedUpToDate(settings)) {\n self.renderState.pending();\n return self._derivedProperties.updateDerivedProperties(settings);\n }\n if (!layout.qUndoExclude) {\n // Have seen a couple of console errors because qUndoExclude did not exist when calling backendApi.updateCache bellow\n return Promise.resolve();\n }\n\n self.renderState.restore();\n self.backendApi.updateCache(layout.qUndoExclude.box);\n\n return self.getData(self.backendApi, layout.qUndoExclude.box.qHyperCube, rect);\n });\n });\n });\n}\n\nfunction paint() {\n const undoExclude = this.layout.qUndoExclude;\n if (!undoExclude) {\n return Promise.resolve(false);\n }\n const haveBoxData = undoExclude.box && undoExclude.box.qHyperCube.qDataPages.length;\n if (haveBoxData) {\n return this._super();\n }\n return Promise.resolve(false);\n}\n\nfunction isLassoDisabled() {\n return false;\n}\n\nconst HistogramView = ChartView.extend('Histogram', {\n namespace,\n init,\n updateConstraints,\n off,\n createChartSettings: function createChartSettings(layout) {\n return ChartSettings.createChartSettings(this, layout);\n },\n setSnapshotData,\n getDisclaimerAttributes,\n updateChart,\n updateData,\n paint,\n isLassoDisabled,\n});\n\nexport default HistogramView;\n","export default class BackednAPi {\n constructor(model) {\n this.model = model;\n this.path = '/qUndoExclude/box/qHyperCubeDef';\n }\n\n // eslint-disable-next-line class-methods-use-this, no-unused-vars\n setCacheOptions({ maxStackedValues }) {}\n\n // eslint-disable-next-line class-methods-use-this, no-unused-vars\n updateCache(args) {}\n\n getData(pages) {\n return this.model.getHyperCubeData(this.path, pages);\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&&Symbol.iterator in Object(e))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&&Symbol.iterator in Object(e))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&&Symbol.iterator in Object(e))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&&Symbol.iterator in Object(e))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),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}}])}));","function onChangeCalcCond(data) {\n const baseCube = data?.qHyperCubeDef;\n const generatedCube = data?.qUndoExclude?.box?.qHyperCubeDef;\n if (baseCube && generatedCube) {\n generatedCube.qCalcCond = baseCube.qCalcCond;\n generatedCube.qCalcCondition = baseCube.qCalcCondition;\n }\n}\n\nexport default {\n onChangeCalcCond,\n};\n","const getStylingPanelDefinition = (bkgOptionsEnabled) => ({\n component: 'styling-panel',\n chartTitle: 'Object.Histogram',\n translation: 'LayerStyleEditor.component.styling',\n subtitle: 'LayerStyleEditor.component.styling',\n ref: 'components',\n useGeneral: true,\n useBackground: bkgOptionsEnabled,\n});\nexport default getStylingPanelDefinition;\n","import { getValue } from 'qlik-chart-modules';\nimport isInteger from '@qlik/common/extra/is-integer';\nimport histogramUtils from './histogram-utils';\nimport propsLogic from './histogram-properties-logic';\nimport getStylingPanelDefinition from './styling-panel-definition';\n\nconst maxCountMode = 'maxCount';\nconst sizeMode = 'size';\n\nfunction inAdvancedMode(data) {\n return !(data.bins && data.bins.auto);\n}\n\nfunction showBinCount(data) {\n return inAdvancedMode(data) && data.bins.binMode === maxCountMode;\n}\n\nexport default function propertyDefinition(env) {\n const { translator } = env;\n\n const stylingPanelEnabled = env?.flags?.isEnabled('SENSECLIENT_IM_2021_STYLINGPANEL_HISTOGRAM');\n const bkgOptionsEnabled = env?.flags?.isEnabled('SENSECLIENT_IM_2021_HISTOGRAM_BG');\n\n const measureAxis = {\n uses: 'axis.picasso.measureAxis',\n items: {\n label: {\n type: 'string',\n expression: 'optional',\n expressionType: 'StringExpression',\n ref: 'measureAxis.label',\n defaultValue: '',\n translation: 'Common.Label',\n placeholderTranslation: 'Visualization.Histogram.MeasureAxisLabel',\n },\n },\n };\n\n const dimensionAxis = {\n uses: 'axis.picasso.dimensionAxis',\n items: {\n othersGroup: {\n items: {\n label: {\n show: false, // SUI-2470\n },\n },\n },\n },\n };\n\n const theme = env.anything.sense.theme;\n const defaultColor = () => {\n const { primary } = theme.getDataColorSpecials();\n const palette = theme.getDataColorPickerPalettes()[0].colors;\n const index = palette.indexOf(primary);\n return { index: index === -1 ? Math.min(6, palette.length - 1) : index };\n };\n\n const colors = {\n translation: 'properties.colors',\n type: 'items',\n items: {\n colors: {\n classification: {\n section: 'color',\n tags: ['simple'],\n },\n type: 'items',\n items: {\n barColor: {\n ref: 'color.bar.paletteColor',\n translation: 'properties.histogram.barColor',\n type: 'object',\n component: 'color-picker',\n dualOutput: true,\n defaultValue: defaultColor,\n },\n },\n },\n },\n };\n\n const presentation = {\n type: 'items',\n translation: 'properties.presentation',\n items: {\n styleEditor: stylingPanelEnabled && getStylingPanelDefinition(bkgOptionsEnabled),\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: false,\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 simpleLabels = {\n items: {\n labels: {\n items: {\n header: {\n show(props) {\n return props.qHyperCubeDef.qDimensions?.length;\n },\n },\n pointLabels: {\n component: 'checkbox',\n ref: 'dataPoint.showLabels',\n type: 'boolean',\n translation: 'Simple.Label.Value',\n show(props) {\n return props.qHyperCubeDef.qDimensions?.length;\n },\n },\n dimensionTitle: {\n component: 'checkbox',\n ref: 'dimensionAxis.show',\n type: 'string',\n translation: 'Simple.Label.XAxis.Hide',\n defaultValue: 'all',\n show(props) {\n return props.qHyperCubeDef.qDimensions?.length;\n },\n convertFunctions: {\n get(getter, def, args, data) {\n return data.dimensionAxis.show === 'labels' || data.dimensionAxis.show === 'none';\n },\n set(value, setter, def, args, data) {\n data.dimensionAxis.show = value ? 'labels' : 'all';\n },\n },\n },\n measureTitle: {\n component: 'checkbox',\n ref: 'measureAxis.show',\n type: 'string',\n translation: 'Simple.Label.YAxis.Hide',\n defaultValue: 'all',\n show(props) {\n return props.qHyperCubeDef.qDimensions?.length;\n },\n convertFunctions: {\n get(getter, def, args, data) {\n return data.measureAxis.show === 'labels' || data.measureAxis.show === 'none';\n },\n set(value, setter, def, args, data) {\n data.measureAxis.show = value ? 'labels' : 'all';\n },\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 calcCond: {\n uses: 'calcCond',\n change: propsLogic.onChangeCalcCond,\n },\n },\n },\n refLines: {\n uses: 'reflines',\n items: {\n colorBackground: {\n show: false,\n },\n },\n },\n },\n };\n\n const dimensions = {\n translation: 'Common.Fields',\n alternativeTranslation: 'properties.alternative.fields',\n items: {\n dimensionLimits: {\n show: false,\n items: {\n otherMode: {\n readOnly: false,\n },\n otherSortMode: {\n show(itemData /* , handler */) {\n return getValue(itemData, 'qOtherTotalSpec.qOtherMode') === 'OTHER_COUNTED';\n },\n },\n otherCounted: {\n show(itemData /* , handler */) {\n return getValue(itemData, 'qOtherTotalSpec.qOtherMode') === 'OTHER_COUNTED';\n },\n },\n otherLimitMode: {\n show(itemData /* , handler */) {\n const limitMode = getValue(itemData, 'qOtherTotalSpec.qOtherMode');\n return limitMode === 'OTHER_ABS_LIMITED' || limitMode === 'OTHER_REL_LIMITED';\n },\n },\n otherLimit: {\n show(itemData /* , handler */) {\n const limitMode = getValue(itemData, 'qOtherTotalSpec.qOtherMode');\n return limitMode === 'OTHER_ABS_LIMITED' || limitMode === 'OTHER_REL_LIMITED';\n },\n },\n calculatedAgainstMessage: {\n show: true,\n label() {\n const measureName = translator.get('properties.histogram.staticMeasureName');\n return translator.get('Properties.DimensionLimits.CalculatedAgainst', measureName);\n },\n },\n },\n },\n others: {\n show: false,\n items: {\n suppressOther: {\n defaultValue: true,\n },\n },\n },\n },\n };\n\n const data = {\n uses: 'data',\n items: {\n dimensions,\n },\n };\n\n const customBinMode = {\n ref: 'bins.binMode',\n type: 'string',\n component: 'dropdown',\n options: [\n {\n value: maxCountMode,\n translation: 'Visualization.Histogram.Binning.NumberOfBinsOption',\n },\n {\n value: sizeMode,\n translation: 'Visualization.Histogram.Binning.BarWidthOption',\n },\n ],\n defaultValue: maxCountMode,\n show(data) {\n return inAdvancedMode(data);\n },\n };\n\n const bins = {\n translation: 'Visualization.Histogram.Bins',\n type: 'items',\n component: 'items',\n items: {\n auto: {\n ref: 'bins.auto',\n translation: 'Visualization.Histogram.Binning',\n component: 'switch',\n type: 'boolean',\n defaultValue: true,\n undefinedValue: false,\n options: [\n {\n value: true,\n translation: 'Visualization.Histogram.Binning.Auto',\n },\n {\n value: false,\n translation: 'Visualization.Histogram.Binning.Custom',\n },\n ],\n },\n autoMessage: {\n component: 'text',\n translation: 'Visualization.Histogram.Binning.AutoDescription',\n show(data /* , handler, args */) {\n return !inAdvancedMode(data);\n },\n },\n\n mode: customBinMode,\n\n binCount: {\n ref: 'bins.binCount',\n type: 'number',\n expression: 'optional',\n expressionType: 'ValueExpression',\n translation: 'Visualization.Histogram.Binning.BinCount',\n defaultValue: '',\n convertFunctions: {\n get(getter, definition, args) {\n const binCount = args.properties.bins.binCount;\n\n if (histogramUtils.isEmpty(binCount)) {\n return histogramUtils.getDerivedBinCount(args.layout);\n }\n\n return getter(null) || '';\n },\n set(value, setter, definition) {\n setter(definition.type, value, undefined);\n },\n },\n show: showBinCount,\n },\n binMessage: {\n component: 'text',\n translation: 'Visualization.Histogram.Binning.BinCountRounding',\n show(data /* , handler, args */) {\n const binCount = getValue(data, 'bins.binCount');\n const isExpression = typeof binCount === 'object';\n\n return (\n showBinCount(data) &&\n !histogramUtils.isEmpty(binCount) &&\n !isExpression &&\n !isInteger(binCount) &&\n binCount > 0\n );\n },\n },\n minBinMessage: {\n component: 'text',\n translation: 'Visualization.Histogram.Binning.BinCountMin',\n show(data) {\n const binCount = getValue(data, 'bins.binCount');\n\n return !!(showBinCount(data) && !histogramUtils.isEmpty(binCount) && binCount <= 0);\n },\n },\n binSize: {\n ref: 'bins.binSize',\n type: 'number',\n expression: 'optional',\n expressionType: 'ValueExpression',\n defaultValue: 10,\n show(data) {\n return inAdvancedMode(data) && data.bins.binMode === sizeMode;\n },\n translation: 'Visualization.Histogram.Binning.BinSize',\n },\n\n offset: {\n ref: 'bins.offset',\n type: 'number',\n expression: 'optional',\n expressionType: 'ValueExpression',\n show(data) {\n return inAdvancedMode(data) && data.bins.binMode === sizeMode;\n },\n translation: 'Visualization.Histogram.Binning.Offset',\n },\n\n distinct: {\n ref: 'bins.countDistinct',\n type: 'boolean',\n defaultValue: false,\n component: 'checkbox',\n translation: 'Visualization.Histogram.CountDistinct',\n },\n },\n };\n\n return {\n type: 'items',\n component: 'accordion',\n items: {\n data,\n bins,\n addons,\n settings,\n },\n };\n}\n","export default {\n type: 'items',\n component: 'accordion',\n items: {\n data: {\n uses: 'data',\n items: {\n dimensions: {\n translation: 'Common.Fields',\n },\n },\n },\n },\n};\n","/**\n * Implementation details\n */\n\nfunction getExportRawDataOptions(menu, cell, exportDialog) {\n menu.addItem({\n translation: 'contextMenu.export',\n tid: 'export',\n select() {\n exportDialog.show(cell.model, '/qUndoExclude/box/qHyperCubeDef');\n },\n });\n\n return Promise.resolve();\n}\n\nexport default {\n getExportRawDataOptions,\n};\n","import conversion from 'qlik-object-conversion';\nimport pp from './histogram-properties';\nimport exploreProperties from './histogram-explore-properties';\nimport histogramExport from './histogram-export';\nimport data from './histogram-data';\n\nexport default function ext(env) {\n if (!env.anything?.sense) {\n return undefined;\n }\n\n return {\n definition: pp(env),\n softDefinition: exploreProperties,\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, hypercubePath) => {\n const dataDefinition = data(env);\n extension.mapProperties();\n const defaultPropertyValues = {\n defaultDimension: extension.getDefaultDimensionProperties(),\n defaultMeasure: extension.getDefaultMeasureProperties(),\n };\n return conversion.hypercube.importProperties({\n exportFormat,\n initialProperties,\n dataDefinition,\n defaultPropertyValues,\n hypercubePath,\n });\n },\n exportProperties(propertyTree, hyperCubePath, viewDataMode) {\n return conversion.hypercube.exportProperties({ propertyTree, hyperCubePath, viewDataMode });\n },\n requireNumericDimension: true,\n exportTableProperties(propertyTree) {\n // the hypercube that will be used for \"building\" the table is under `qUndoExclude.box.qHyperCubeDef`\n const hypercubePath = 'qUndoExclude.box';\n return conversion.hypercube.exportProperties({ propertyTree, hypercubePath });\n },\n getExportRawDataOptions: histogramExport.getExportRawDataOptions,\n };\n}\n","import {\n useConstraints,\n useEffect,\n useElement,\n useModel,\n usePromise,\n useRenderState,\n useSelections,\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 useLasso from '@qlik/common/nebula/use-lasso';\nimport useResize from '@qlik/common/nebula/resize';\nimport useEnvironment from '@qlik/common/nebula/use-environment';\nimport setupSnapshot from '@qlik/common/nebula/snapshot';\n\nimport properties from './object-properties';\nimport data from './histogram-data';\nimport ChartView from './histogram-view';\nimport BackednAPi from './backend-api';\nimport ext from './ext';\n\nexport default function supernova(env) {\n locale(env.translator);\n const picasso = picassoSetup();\n const dataDefinition = data(env);\n\n return {\n qae: {\n properties,\n data: {\n targets: [dataDefinition],\n },\n },\n ext: ext(env),\n component() {\n const constraints = useConstraints();\n const element = useElement();\n const environment = useEnvironment();\n const lasso = useLasso();\n const model = useModel();\n const selections = useSelections();\n const layout = useStaleLayout();\n const renderState = useRenderState();\n\n const [instance, setInstance] = useState();\n\n useEffect(() => {\n const $element = $(element);\n const backendApi = new BackednAPi(model);\n const selectionsApi = selections;\n const view = new ChartView({\n $element,\n backendApi,\n environment,\n lasso,\n picasso,\n selectionsApi,\n renderState,\n });\n\n setInstance(view);\n\n return () => {\n view.destroy();\n };\n }, []);\n\n const [, error] = usePromise(async () => {\n if (!instance) {\n return;\n }\n instance.updateEnvironment(environment);\n instance.updateConstraints(constraints);\n\n // TODO: confim selection if triggered from engine (another websocket to the same session (browser tab))\n\n await instance.updateData(layout);\n await instance.paint();\n }, [layout, instance, environment]);\n if (error) {\n throw error;\n }\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 { useAction, useConstraints, useEffect, useLayout, useState } from '@nebula.js/stardust';\nimport lassoIcon from './lasso-icon';\n\nexport default function useSelect() {\n const constraints = useConstraints();\n const [enabled, setEnabled] = useState(false);\n const [active, setActive] = useState(false);\n const isInSelections = !!useLayout().qSelectionInfo.qInSelections;\n const [lasso] = useState(() => ({\n toggle() {\n setActive((a) => !a);\n },\n }));\n\n useEffect(() => {\n if (!constraints) {\n return;\n }\n\n setEnabled(!constraints.select && !constraints.active);\n }, [constraints]);\n\n useAction(\n () => ({\n key: 'lasso',\n label: 'Lasso',\n icon: lassoIcon,\n hidden: !enabled || !isInSelections,\n active,\n action() {\n setActive((a) => !a);\n },\n }),\n [isInSelections, active, enabled]\n );\n\n lasso.enabled = () => enabled;\n lasso.active = () => active;\n return lasso;\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","lassoIcon","shapes","type","attrs","d","BINNING_DEFAULTS","AUTO","BIN_COUNT","BIN_SIZE","LABEL","OFFSET","COUNT_DISTINCT","BIN_MODE","Object","freeze","properties","version","qHyperCubeDef","qDimensions","qMeasures","qMode","qAlwaysFullyExpanded","qSuppressZero","qSuppressMissing","bins","auto","binCount","binSize","offset","countDistinct","binMode","bar","paletteColor","index","dataPoint","showLabels","dimensionAxis","show","measureAxis","autoMinMax","max","min","minMax","spacing","gridlines","refLine","refLines","sorting","autoSort","showTitles","subtitle","footnote","data","env","translator","path","dimensions","description","get","measures","S","e","t","n","prototype","constructor","D","create","r","I","E","O","A","N","P","L","RegExp","T","j","F","R","H","V","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","z","rgb","formatHex","_","formatRgb","B","trim","toLowerCase","exec","length","parseInt","Y","W","U","Z","hasOwnProperty","NaN","K","g","b","opacity","G","arguments","$","J","X","isNaN","Math","round","toString","ee","Q","s","l","o","i","a","u","te","copy","assign","displayable","hex","formatHsl","brighter","pow","darker","ne","PI","re","oe","ie","ae","ue","le","he","me","de","ce","se","fe","pe","c","atan2","sqrt","cos","sin","ye","be","ft","split","dt","Number","St","TypeError","Dt","enumerable","configurable","writable","defineProperty","key","It","Et","value","Zt","children","Qt","rn","en","pop","Array","push","parent","depth","eachBefore","nn","tn","ge","gamma","count","eachAfter","each","reverse","sum","sort","ancestors","splice","descendants","leaves","links","source","target","En","On","exports","f","p","search","v","substring","join","m","y","x","charAt","match","toFixed","lastIndexOf","indexOf","In","An","replace","Nn","Pn","Ln","Tn","jn","Fn","Rn","Hn","Vn","zn","_n","toUpperCase","slice","Yn","Un","pattern","abbreviate","concat","substr","test","prefix","postfix","maxPrecision","percentage","numericPattern","numericRegex","groupTemp","decTemp","temp","localeInfo","thousandDelimiter","decimalDelimiter","patternSeparator","abbreviations","qNumericalAbbreviation","forEach","prepare","subtype","formatValue","_prepared","positive","isFunctional","negative","zero","floor","String","toExponential","Bn","keys","map","abs","q","w","toPrecision","ceil","log","$n","Qn","er","tr","nr","rr","or","qCalendarStrings","qLongDayNames","qDayNames","qLongMonthNames","qMonthNames","locale_days","locale_days_abbr","locale_months","locale_months_abbr","qTimeFmt","qDateFmt","qTimestampFmt","Date","getUTCHours","getUTCDay","year","getUTCFullYear","month","getUTCMonth","day","date","getUTCDate","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","UTC","getTime","getDay","ir","YY","YYY","def","M","MM","MMM","WW","WWW","call","fnTest","Class","extend","className","proto","_super","name","fn","tmp","ret","apply","Error","ctor","Function","idGen","getChar","charCode","val","charCodeAt","fromCharCode","base62","chr","id","random","generateId","SCROLLBAR_KEY","getAxisDock","direction","isRtl","getYAxisDock","getXAxisDock","yDockNearFar","axisDockUtil","getOppositeAxisDock","rangesOfLRgExp","rangesOfRRgExp","rangesOfALRgExp","isLtrChar","isRtlChar","rtlUtils","lrm","rlm","detectTextDirection","refLineUtil","lineSettings","options","_options$style","defaultSettings","line","stroke","theme","getColorPickerColor","strokeDasharray","lineType","lineLabelSettings","chartID","labelColor","labelFontSize","labelFontFamily","align","vAlign","text","fill","fontFamily","maxWidthPx","isVisible","undefined","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","measureAxisTitle","dimensionAxisTitle","gridLines","refLinesLabels","DEFAULT_CHART_ORIENTATION","DimensionMeasureChart","chartBuilder","opts","measureAxisProperties","dimensionAxisProperties","chartOrientation","orientation","CONSTANTS","isChartHorizontal","measureDirection","dimensionDirection","includeMeasureAxisComponent","includes","includeMeasureAxisTitleComponent","measureTitleText","includeDimensionAxisComponent","includeDimensionAxis","includeDimensionAxisTitleComponent","dimensionTitleText","includeGridlines","includeRefLines","some","interactionActions","measureAxisSettings","scale","forceBounds","showBounds","measureAxisOptions","getMeasureAxisOptions","addComponent","addMeasureAxisComponent","measureTitleSettings","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","dimension","viewSize","scrollSettings","scrollbarOptions","isHorizontal","scrollBarSettings","addInteractionActions","isEnabledFn","targetIsScrollbar","manager","startPoint","center","deltaX","deltaY","chart","componentsFromPoint","enable","events","tap","emit","panstart","pan","panend","pancancel","getScrollActions","isNavigationEnabledFn","addScrollbarComponent","axisDock","refLinesSettings","oob","lines","refLinesLabelsSettings","require","measureText","formatter","scales","measure","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","range","domain","trackBy","axis","axisLineStroke","titleFontSize","titleFill","labelsFill","labelsFontSize","titleFontFamily","labelsFontFamily","brush","trigger","consume","strokeWidth","labels","tiltAngle","maxEdgeBleed","maxSize","mode","axisSettings","active","measureScale","fields","expand","field","scaleSettings","dimensionScale","extract","props","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","components","comp","contexts","fillActive","bubbles","isStartBorder","binStart","binEnd","action","rangeArea","chartHeight","chartWidth","itemFill","itemFontSize","anchor","size","vertical","navigation","button","class","content","state","item","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","parseFloat","placements","position","justify","ChartBuilder","dockLayout","interactions","getComponent","filter","addPreset","ChartPresets","validateComponentKeys","msg","ALIGNMENT","CENTER","BOTTOM","DisclaimersConfig","DISCLAIMERS","alignment","default","util","getNoDataExistAttribute","qHyperCube","qSize","qcy","qcx","getLimitedDataAttribute","maxNbrOfDimensions","result","stackedDataPages","explicitLimitedData","qDataPages","paging","qMatrix","qStackedDataPages","qData","qSubNodes","qDimensionInfo","node","qDown","qArea","qHeight","getNegativeOrZeroValuesAttribute","supportNegative","qMeasureInfo","qMin","getOnlyNegativeOrZeroValuesAttribute","every","qMax","getOnlyNanDataAttribute","explicitOnlyNanData","getDataRangeIncludingZeroAttribute","supportRangeOverZero","measureInfo","len","explicitMinOn","explicitMaxOn","MAX_VALUE","hasDataRangeIncludingZero","applyAttributes","dataAttributes","config","NoDataExist","RequireNumericDimension","explicitRequireNumericDimension","LimitedData","NegativeOrZeroValues","OnlyNegativeOrZeroValues","OnlyNanData","DataRangeIncludingZero","Helper","disclaimersConfig","supportedDisclaimers","isValid","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","qTop","qLeft","qWidth","maxHeight","then","pages","hasValidData","paint","_disclaimerComponent$","getDisclaimerAttributes","disclaimerComponent","isSuppressingDisc","chartSettings","createChartSettings","errorMsg","console","error","updateChart","_painted","Promise","resolve","resize","addSnapshotChartSettings","freeResize","snapshotData","logicalSize","preserveAspectRatio","updateData","_destroyed","reject","permissions","isPartialData","_this$environment$app","_this$environment$app2","appLayout","qLocaleInfo","getValue","colorService","update","partialData","setAttribute","destroy","off","getViewState","isLassoDisabled","setSnapshotData","snapshotLayout","chartData","hasOwn","toStr","gOPD","getOwnPropertyDescriptor","isArray","arr","isPlainObject","obj","hasOwnConstructor","hasIsPrototypeOf","setProperty","newValue","getProperty","src","copyIsArray","clone","deep","getFieldAccessor","deps","cache","origin","fieldIdx","attrIdx","attrDimIdx","wrappedFields","attrDims","instance","attrExps","row","qAttrDims","qValues","qAttrExps","datumExtract","propCfg","cell","_ref","cellToValue","_ref2","mainCell","prop","rowIdx","sourceKey","targetProp","propCell","propCellFn","qRow","cfgs","dataItems","cube","raw","_typeof","normalizeConfig","main","propsArr","track","trackType","tracker","trackedItems","items","k","fieldValues","fieldLabels","cfg","itemData","collect","node_count","node_each","callback","current","next","node_eachBefore","nodes","node_eachAfter","node_sum","node_sort","compare","node_path","start","ancestor","leastCommonAncestor","aNodes","bNodes","node_ancestors","node_descendants","node_leaves","node_links","root","hierarchy","child","childs","Node","valued","defaultChildren","computeHeight","node_copy","copyData","keyPrefix","preroot","ambiguous","defaultId","defaultParentId","parentId","stratify","nodeId","nodeKey","nodeByKey","subpath","container","carr","_toConsumableArray","flattenTree","steps","arrIndexAtTargetDepth","treeAccessor","sourceDepth","targetDepth","findField","query","allFields","DIM_RX","M_RX","ATTR_EXPR_RX","ATTR_DIM_RX","getColumnOrder","qColumnOrder","getDimensionColumnOrder","ii","getFieldDepth","isFieldDimension","pseudoMeasureIndex","measureIdx","remainder","treeOrder","qEffectiveInterColumnSortOrder","columnOrder","fieldDepth","sourceDepthObject","targetDepthObject","valueFn","attrFn","nodeFn","_data$qAttrDims","_data$qAttrExps","doIt","_ref3","pCfg","coll","collStr","_loop","cells","accessor","valueAccessor","attrAccessor","reduce","reduceLabel","getHierarchy","rootPath","childNodes","picker","tree","getHierarchyForSMode","matrix","order","__root","__id","isNew","_cell$qElemNumber","qElemNumber","qElemNo","_objectSpread","__parent","attachPropsAccessors","_ref4","itemDepthObject","accessors","augment","propDefs","idx","_util$normalizeConfig","replicaDescendants","isTree","_getFieldAccessor","mapped","module","escapeRegExp","SIprefixes","radix","oct","dec","bin","rom","functional","prec","formatRadix","fradix","decimal","formatRoman","nThousands","numeral","formatFunctional","escape","flags","justStr","createRegExp","thousand","getAbbreviations","listSeparator","abbreviation","abbreviationTuple","preparePattern","parts","lastPart","regex","matchPrecisionResult","splitPattern","NumberFormatter","_classCallCheck","_createClass","prep","exponent","absValue","num","decimalPartPattern","abbr","sciValue","original","lowerAbbreviation","suggestedAbbrExponent","abbrArray","upperAbbreviation","wholePart","wholePartPattern","nDecimals","nZeroes","decimalPart","numberFormatFactory","_len","args","_key","memoize","func","cacher","_opts$size","_opts$multipleArgumen","multipleArguments","_opts$toKey","toKey","arg","counter","fifo","has","qType","qformat","memoized","bind","format","TYPES","INTEGER","NUMBER","FIXED_TO","MONEY","DATE","TIME","DATE_TIME","INTERVAL","DAYS","DAYS_ABBR","MONTHS","MONTHS_ABBR","SECONDS_PER_DAY","pad","parseDate","twelveFormat","getRemainder","parseIntervalDays","days","ms","parseInterval","units","someT","getMasks","inst","DateFormatter","qtype","_patternMap","info","_defineProperty","parsedDate","hasTwelveFlag","masks","masksArr","mask","dateTimeRegex","submask","dateFormatFactory","MS_PER_DAY","QlikTimeToDate","locale","li","nqt","createFromMetaInfo","meta","qNumFormat","timeFormat","qFmt","qThousandSep","qDecimalSep","isAuto","qIsAutoFormat","qThou","qDec","numberFormat","qField","values","fieldExtractor","sourceField","qValue","labelFn","qFallbackTitle","tags","qTags","createFields","parentKey","fieldKey","qNum","_cache$wrappedFields","_cache$wrappedFields2","_cache$allFields","_ref$config","virtualFields","extractionConfig","extractor","hierarchyConfig","_cache","qNodesOnDim","TExtractor","augmentTree","qTreeDataPages","SExtractor","dimAcc","measAcc","traverse","from","ff","override","LAYOUT_TO_PROP","HC_RX","TD_RX","SHORTEN_HC","SHORTEN_TD","extractFieldFromId","dimensionIdx","pathToCube","shortenizer","shortenPath","attrCol","hc","dim","qAttrExprInfo","meas","_slicedToArray","qBrush","_opts$orMode","byCells","primarySource","selections","methods","isActive","hasValues","brushes","ranges","multiRangeSelectTreeDataValues","qMeasureIx","qDimensionIx","qRange","qMinInclEq","qMaxInclEq","rangeSelectHyperCubeValues","selectHyperCubeContinuousRange","qDimIx","noOfLeftDims","qNoOfLeftDims","dimInterColSortIdx","selectPivotCells","validValues","qCol","selectHyperCubeCells","cols","params","method","orMode","initialize","qBrushHelper","selectionUtils","brushInterceptors","DIM_VALUE_NULL","DIM_VALUE_TOTAL","brushOnlyOne","activeBrushes","toggleOff","filterValues","lockedFields","lockedItems","brushItems","splitIndex","datasetName","fieldName","qLocked","itemsAreLocked","DEFAULT_OPTIONS","startOnEmptySelection","inactive","Selections","selectPaths","selectionContexts","selectionsApiRestoreHelper","propertiesToRestore","on","paths","added","removed","begin","PicassoQ","select","toggleValues","filterResult","itms","Actions","lastShift","shiftToggle","keyCode","shiftKey","toggle","confirmOrCancelSelection","event","cancel","confirm","register","listeners","sleep","deregister","removeListener","dependentComponents","setUp","tearDown","setUpBrush","selectionTrigger","ctrlKey","isSingleSelect","globalPropagation","selectionConsumer","createContext","fieldsLocked","dimFields","dataPath","areAllFieldsLocked","getFieldsLocked","intercept","setUpStart","setUpDone","removeInterceptor","pauseEngineCalls","resumeEngineCalls","run","document","addEventListener","onDeactivated","removeEventListener","unbindDeactivated","onActivated","unbindActivated","isOn","lassoState","allFieldsLocked","NoSelections","warn","SelectionHandler","TooltipActions","componentKey","tooltipKey","hasOpen","closeTooltip","isOpen","getAffectedShapes","openTooltip","toggleInterceptor","check","TooltipAction","formatting","formatMeasureValue","measureContent","isCustomFormatted","createContent","tooltipInfo","uniqueShapes","numberInExcess","numItems","localContent","rows","labelData","refPaths","isNullValue","currentNode","header","headerResolver","measureRows","measureRow","rowData","rowResolver","colorByData","getColorByDimData","unshift","rowCount","extractContent","renderSettings","_tooltipInfo$colorSer","_tooltipInfo$colorSer2","_shape$attrs","colorData","colorSettings","fieldType","ids","mapping","elemNoObj","othersIndex","getOthersIndex","TOOLTIP_CONTAINER_ID","TOOLTIP_CONTAINER_SELECTOR","appendTooltipContainer","querySelector","createElement","body","appendChild","tooltip","beforeMount","beforeUpdate","destroyed","elm","parentElement","childElementCount","removeChild","destroyTooltipContainer","appendTo","placement","arrow","background","hyphens","getDirection","labelTextAlign","headerStyle","fontWeight","colSpan","valueContent","symbolStyle","symbol","labelStyle","valueStyle","moreText","moreStyle","Tooltips","chartType","tooltipContexts","registerContext","treatAsDesktop","deRegContext","mouseLeave","attrDimPath","filterShapes","deviceType","createTooltip","uniques","filterDuplicateShapes","TooltipHandler","hash","generateHash","hashData","hashFromString","JSON","stringify","updateHash","qUndoExclude","hashCode","hashBuilder","getDefaultHashDataForHyperCube","hyperCubeDef","app","dfds","qLibraryId","libraryId","getMeasure","getProperties","qMeasure","qDef","getMeasureDataFromLibraryItem","all","getMeasureExpressions","measureExpressions","drillLevel","getDrillIndices","dimensionExpressions","getDimensionExpressions","dimensionInfo","qGroupFieldDefs","getDimensions","qGroupPos","JSONPatch","originalExtend","isObject","isUndef","isSpecialProperty","getParent","numPart","part","generate","newData","basePath","patches","generateValue","oldVal","tmpPath","op","newA","oldA","tmpIdx","findIndex","qInfo","qId","patchArray","patch","newValues","oldParent","createPatch","updateObject","SoftPropertyHandler","model","_model","setModel","saveSoftProperties","prevEffectiveProperties","effectiveProperties","qOp","qPath","applyPatches","async","propertiesPromise","effectivePromise","getEffectiveProperties","effective","qExtendsId","setProperties","clearSoftPatches","hardPropertiesChecker","canModifyHardProperties","qHasSoftPatches","qMeta","privileges","Save","saveDerivedProperties","prevProperties","InputValidator","validate","generateDerivedProperties","DerivedProperties","_generationInProgress","isDerivedUpToDate","Hash","updateDerivedProperties","layoutIsUpdated","addDefaultHyperCubeHash","HashBuilder","ExpressionWrapper","wrapExpression","expression","ExpressionReplacer","replaceExpressionTokens","tokenMappings","tokenIdentifiers","identifiers","tokenExpression","tokenString","returnExpression","string","isGlobal","isGrouped","escapedString","regexpString","ExpressionGenerator","generateExpression","template","mappings","explicitMappings","wrap","variations","variation","variationExpressions","assembleVariation","regExp","stringArray","HyperCubeGenerator","generateHyperCubeDef","knownMappings","dimensionIndices","measureIndices","returnPromise","spliceIdentifiedMatches","getMappingRegExp","getExpressionFromDimension","getExpressionFromMeasure","getKnownMappings","allMappings","generatedHyperCubeDef","dimensionTemplate","qFieldDefs","measureTemplate","getAllHyperCubeExpressions","getExpressionFromLibraryItem","drillIndex","qDim","matches","isNumeric","isFinite","isInteger","histogramUtils","getBinSize","getDerivedBinSize","getDerivedBinOffset","getDerivedBinCount","getBinOffset","isAutoBin","isCountDistinct","getBinMode","isEmpty","LOG10","NICE_NUMBERS1","NICE_NUMBERS2","LOOP_CONTROL_NUMBERS","getGoodNumber","niceNumbers","roundedFraction","magnitude","fraction","calculateNumEmptyBins","nbrOfBins","newMin","newMax","binSizeCalculator","calculateBinSize","validateInput","niceBinSize","delta","loop","rawBinSize","numEmptyBins","getBinCount","histogramMappings","getMappingValues","binOffset","binInfo","distinct","dimInfo","getBinInfo","getMappings","BinSize","Label","Offset","Distinct","cubesGenerator","generateHyperCubes","mappingValues","expressionsPromise","HyperCubeDefGenerator","boxCubeDefPromise","expressions","boxCubeDef","binCountExpr","qValueExpression","qExpr","setValue","qSortByNumeric","onComponentChecker","isOnComponentForRange","targets","selectionGesture","isOnComponentForLasso","gesturesParams","lassoGesture","isOnComponentForNavBtn","legendBrushKey","navBtnGesture","callLassoGesture","gesturesFns","Hammer","DIRECTION_ALL","threshold","lassoing","isSelectionEnabled","hitComp","handlers","selectionHandler","recognizeWith","scrollHandler","lassostart","switchTo","lassoBrushKey","clientX","pointers","clientY","doEmit","lassomove","lassoend","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","change","getItemSize","getScrollApi","move","dragmove","dragend","dragcancel","callNavBtnGesture","navBtnTap","btn","attr","getAttribute","DependentInteractions$1","clearKey","activeChart","newType","cont","onScrollUpdate","rangeClearTap","getMaxGlyphCountForDimAxis","qApprMaxGlyphCount","DimensionAxis","createSettings","maxGlyphCount","DimensionScale","isAutoMode","colorStruct","transparent","rgba","hexShort","hsl","hsla","Color","lcs","h_","rgb_","colorString","_invalid","_r","_g","_b","_a","CSSColors","_spaces","isInvalid","setAlpha","getAlpha","toRGB","toRGBA","toHex","toHSL","luma","toHSLA","toHSV","hsvComp","toHSVComponents","toNumber","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","BoxMarker","chartView","basicSelectionSettings","dimensionSelectionSettings","measureSelectionSettings","tooltipSettings","boxFillColor","brushTrigger","brushConsume","_tooltipHandler","box","chartStyleUtils","Infinity","minWidthPx","minWidth","whiskers","elemNo","ChartSettings","dimTitle","_selectionHandler","lockedDim","retrieveRangeSelStatus","dimInfos","getLockedDim","_dependentActions","DependentInteractions","include","boxMarkerSettings","binLabelSettings","rangeSelSettings","HistogramView","namespace","renderState","__do_not_use_findShapes","findShapes","_derivedProperties","updateConstraints","constraints","passive","selection","onlyNanData","qIsNull","isOnlyNanData","binMappings","binProperties","getHashData","restore","updateCache","pending","undoExclude","BackednAPi","setCacheOptions","maxStackedValues","getHyperCubeData","window","Symbol","toStringTag","__esModule","updated","previous","dimensionList","qName","qDerivedFieldData","qDerivedFieldLists","fieldList","fullAccumulation","fullRange","crossAllDimensions","modifier","dimensionAndFieldList","funcComp","valueComp","showExcludedValues","isFullRange","getNumDimensions","getExpressionWithExcludedComp","treatMissingAsNull","getRowNoComp","getNumStepComp","getAboveCompPrefix","getAboveCompSuffix","getAboveComp","getFunctionPrefix","getFunctionSuffix","getRangeComp","getAggrComp","getExcludedComp","needDimension","primaryDimension","accumulationDimension","getDimComp","qSortCriterias","qSortByExpression","qSortByAscii","simplifyExpression","extractInputExpression","outputExpression","initModifier","isApplicable","minDimensions","maxDimensions","getExpressionWithMarkers","canExtract","getDimDefWithWrapper","getFieldWithWrapper","iterator","C","disabled","translationKey","numDimensions","enableTotalsFunction","propertyPanelDef","translation","refFn","primaryDimensionTooltip","schemaIgnore","defaultValue","qGroupFallbackTitles","crossAllDimensionsTooltip","rangeFull","rangeCustom","rangeSteps","ext","support","modifiers","nullSuppression","showNull","inverted","CURRENT_SELECTION","SELECT_FIELD_VALUE","DISREGARD_SELECTION","ONE_DIMENSION","ALL_DIMENSIOANS","DISREGARD_ALL_DIMENSIONS","dimensionalScopeOneDimension","tooltipTranslation","dimensionalScopeOneDimensionTooltip","dimensionalScopeAllDimensions","dimensionalScopeAllDimensionsTooltip","dimensionalScopeDisregardAllDimensions","dimensionalScopeDisregardAllDimensionsTooltip","selectionScope","selectionScopeCurrentSelection","selectionScopeSpecificValue","selectionScopeTotal","dimensionalScope","updateModifier","modifierSelectionScope","modifierSelectionScopeTooltip","dropdownOnly","getFieldList","modifierDimensionalScope","modifierDimensionalScopeTooltip","supportTooltip","getDisregardSelectionComp","getFieldSelectionComp","getTotalComp","getSelectedDimComp","getExpression","getExpressionRef","getLibraryIdRef","getLibraryId","getLabelRef","getLabelExpressionRef","initBase","restoreBase","base","accumulation","movingAverage","difference","normalization","applyModifiers","cleanUpMeasure","qe","masterItemSubscriber","unsubscribe","hasActiveModifiers","getActiveModifier","De","isSupportedModifiers","isApplicableSupportedModifiers","modifierTypes","measureBase","limitedSorting","Se","Ne","ifEnableTotalsFunction","ve","isSnapshot","masterItem","isFirstTime","lastReloadTime","Me","Ee","Ve","Le","Oe","libraryIds","Ce","oldProperties","runUpdateIfChange","libraryItemsProps","we","Fe","newProperties","qLabel","qLabelExpression","quarantine","coloring","qAggrFunc","Ae","xe","Ie","getDimensionList","measureLibraryIds","dimensionLibraryIds","getDimension","Pe","enabled","listener","layoutSubscribe","subscribe","dispose","clearUndoBuffer","isAtomicValue","isOrderedSubset","indexAdded","indexRemoved","findItemByPropertyValue","findIndexByPropertyValue","addDimensions","exportFormat","excludedDimensions","addMeasures","excludedMeasures","setInterColumnSortOrder","qInterColumnSortOrder","interColumnSortOrder","copyProperties","updateLayoutExclude","qLayoutExclude","changed","to","storeMeasuresModifiers","store","parse","qv","othersLabel","importCommonProperties","visualization","copyPropertyIfExist","copyPropertyOrSetDefault","getDefaultDimension","cId","qNullSuppression","qOtherLabel","qOtherTotalSpec","qOtherLimitMode","qOtherMode","qOtherSortMode","qSuppressOther","getDefaultMeasure","numFormatFromTemplate","qTrendLines","newHyperCubeDef","defaultDimension","maxMeasures","minMeasures","defaultMeasure","getMaxMinDimensionMeasure","dataDefinition","createNewProperties","initialProperties","hypercubePath","shouldInitLayoutExclude","initLayoutExclude","updateDimensionsOnAdded","updateMeasuresOnAdded","restoreMeasuresModifiers","exportProperties","propertyTree","viewDataMode","qProperty","filters","qContextSetExpression","qDynamicScript","importProperties","defaultPropertyValues","extension","supportedFilters","isHCModifierSupported","qChildren","cellBackgroundColor","cellForegroundColor","colorByAlternative","colorByExpression","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","isDimension","attributeExpression","qExpression","matchMeasure","activeMeasureIndex","labelExpRef","colorMapRef","qSortBy","qAttributeDimensions","qAttributeExpressions","qFieldLabels","useMasterNumberFormat","byDimDef","activeDimensionIndex","byMeasureDef","changeProperty","getCanColorBy","byDimension","byMeasure","byMultiple","byExpression","shouldUpdateColorBy","canColorBy","autoColor","colorMode","updateColorBy","deleteTotalMode","qTotalMode","shouldAddColorByExpression","addColorByExpression","switchToAutoColor","shouldSwitchToColorPersistent","handleAutoMinMax","handleMeasuresAxis","measureType","measureAxes","series","marker","total","supportedAutoMinMax","arrayPath","quarantineName","arrayName","itemPath","unquarantine","quarantineAlternative","unquarantineAlternative","hypercube","colorChart","axisChart","quarantineProperty","unquarantineProperty","quarantineArrayProp","unquarantineArrayProp","conditionalColoring","conditionalShow","propsLogic","onChangeCalcCond","_data$qUndoExclude","_data$qUndoExclude$bo","baseCube","generatedCube","qCalcCond","qCalcCondition","getStylingPanelDefinition","bkgOptionsEnabled","chartTitle","useGeneral","useBackground","maxCountMode","sizeMode","inAdvancedMode","showBinCount","propertyDefinition","_env$flags","_env$flags2","stylingPanelEnabled","isEnabled","anything","sense","colors","classification","section","barColor","dualOutput","getDataColorSpecials","palette","getDataColorPickerPalettes","presentation","styleEditor","snapshot","tid","showGridLines","gridSpacing","simpleLabels","_props$qHyperCubeDef$","pointLabels","_props$qHyperCubeDef$2","dimensionTitle","_props$qHyperCubeDef$3","convertFunctions","getter","setter","measureTitle","_props$qHyperCubeDef$4","customBinMode","undefinedValue","autoMessage","expressionType","definition","binMessage","isExpression","minBinMessage","uses","alternativeTranslation","dimensionLimits","otherMode","readOnly","otherSortMode","otherCounted","otherLimitMode","limitMode","otherLimit","calculatedAgainstMessage","measureName","others","suppressOther","addons","dataHandling","calcCond","colorBackground","placeholderTranslation","othersGroup","exploreProperties","histogramExport","getExportRawDataOptions","menu","exportDialog","addItem","_env$anything","pp","softDefinition","cssScaling","export","exportData","sharing","viewData","mapProperties","getDefaultDimensionProperties","getDefaultMeasureProperties","conversion","hyperCubePath","requireNumericDimension","exportTableProperties","supernova","picassojs","prio","use","PicassoHammer","picassoSetup","qae","useConstraints","useElement","useApp","useAppLayout","useDeviceType","useOptions","useTheme","useTranslator","useMemo","language","useEnvironment","setEnabled","useState","setActive","isInSelections","useLayout","qSelectionInfo","qInSelections","useEffect","useAction","icon","hidden","useLasso","useModel","useSelections","useStaleLayout","useRenderState","setInstance","view","usePromise","useRect","useResize","onTakeSnapshot","useImperativeHandle"],"mappings":"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"}
|