@nebula.js/sn-histogram 0.34.2 → 0.35.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../chart-modules/common/picasso/plugins/event-area.js","../../../../chart-modules/common/picasso/disclaimer/disclaimer-component.jsx","../../../../chart-modules/common/nebula/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/find.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/iterator.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","../../../../chart-modules/common/extra/chart-style-component.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/nebula/use-environment.js","../../../../chart-modules/common/picasso/picasso-setup.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.59.0\n* Copyright (c) 2023 QlikTech International AB\n* Released under the MIT license.\n*/\n\nfunction e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?e(Object(r),!0).forEach((function(e){a(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):e(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function n(){n=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},i=\"function\"==typeof Symbol?Symbol:{},a=i.iterator||\"@@iterator\",l=i.asyncIterator||\"@@asyncIterator\",u=i.toStringTag||\"@@toStringTag\";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},\"\")}catch(e){c=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var i=t&&t.prototype instanceof p?t:p,a=Object.create(i.prototype),l=new C(r||[]);return o(a,\"_invoke\",{value:w(e,n,l)}),a}function f(e,t,n){try{return{type:\"normal\",arg:e.call(t,n)}}catch(e){return{type:\"throw\",arg:e}}}e.wrap=s;var d={};function p(){}function h(){}function m(){}var v={};c(v,a,(function(){return this}));var y=Object.getPrototypeOf,g=y&&y(y(D([])));g&&g!==t&&r.call(g,a)&&(v=g);var b=m.prototype=p.prototype=Object.create(v);function x(e){[\"next\",\"throw\",\"return\"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function q(e,t){function n(o,i,a,l){var u=f(e[o],e,i);if(\"throw\"!==u.type){var c=u.arg,s=c.value;return s&&\"object\"==typeof s&&r.call(s,\"__await\")?t.resolve(s.__await).then((function(e){n(\"next\",e,a,l)}),(function(e){n(\"throw\",e,a,l)})):t.resolve(s).then((function(e){c.value=e,a(c)}),(function(e){return n(\"throw\",e,a,l)}))}l(u.arg)}var i;o(this,\"_invoke\",{value:function(e,r){function o(){return new t((function(t,o){n(e,r,t,o)}))}return i=i?i.then(o,o):o()}})}function w(e,t,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var l=M(a,n);if(l){if(l===d)continue;return l}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var u=f(e,t,n);if(\"normal\"===u.type){if(r=n.done?\"completed\":\"suspendedYield\",u.arg===d)continue;return{value:u.arg,done:n.done}}\"throw\"===u.type&&(r=\"completed\",n.method=\"throw\",n.arg=u.arg)}}}function M(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,\"throw\"===n&&e.iterator.return&&(t.method=\"return\",t.arg=void 0,M(e,t),\"throw\"===t.method)||\"return\"!==n&&(t.method=\"throw\",t.arg=new TypeError(\"The iterator does not provide a '\"+n+\"' method\")),d;var o=f(r,e.iterator,t.arg);if(\"throw\"===o.type)return t.method=\"throw\",t.arg=o.arg,t.delegate=null,d;var i=o.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,\"return\"!==t.method&&(t.method=\"next\",t.arg=void 0),t.delegate=null,d):i:(t.method=\"throw\",t.arg=new TypeError(\"iterator result is not an object\"),t.delegate=null,d)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type=\"normal\",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:\"root\"}],e.forEach(k,this),this.reset(!0)}function D(e){if(e||\"\"===e){var t=e[a];if(t)return t.call(e);if(\"function\"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}throw new TypeError(typeof e+\" is not iterable\")}return h.prototype=m,o(b,\"constructor\",{value:m,configurable:!0}),o(m,\"constructor\",{value:h,configurable:!0}),h.displayName=c(m,u,\"GeneratorFunction\"),e.isGeneratorFunction=function(e){var t=\"function\"==typeof e&&e.constructor;return!!t&&(t===h||\"GeneratorFunction\"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,c(e,u,\"GeneratorFunction\")),e.prototype=Object.create(b),e},e.awrap=function(e){return{__await:e}},x(q.prototype),c(q.prototype,l,(function(){return this})),e.AsyncIterator=q,e.async=function(t,n,r,o,i){void 0===i&&(i=Promise);var a=new q(s(t,n,r,o),i);return e.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},x(b),c(b,u,\"Generator\"),c(b,a,(function(){return this})),c(b,\"toString\",(function(){return\"[object Generator]\"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=D,C.prototype={constructor:C,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(S),!e)for(var t in this)\"t\"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if(\"throw\"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(n,r){return a.type=\"throw\",a.arg=e,t.next=n,r&&(t.method=\"next\",t.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return n(\"end\");if(i.tryLoc<=this.prev){var l=r.call(i,\"catchLoc\"),u=r.call(i,\"finallyLoc\");if(l&&u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===e||\"continue\"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method=\"next\",this.next=i.finallyLoc,d):this.complete(a)},complete:function(e,t){if(\"throw\"===e.type)throw e.arg;return\"break\"===e.type||\"continue\"===e.type?this.next=e.arg:\"return\"===e.type?(this.rval=this.arg=e.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===e.type&&t&&(this.next=t),d},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),S(n),d}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;S(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(e,t,n){return this.delegate={iterator:D(e),resultName:t,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),d}},e}function r(e){return r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},r(e)}function o(e,t,n,r,o,i,a){try{var l=e[i](a),u=l.value}catch(e){return void n(e)}l.done?t(u):Promise.resolve(u).then(r,o)}function i(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function l(e){o(a,r,i,l,u,\"next\",e)}function u(e){o(a,r,i,l,u,\"throw\",e)}l(void 0)}))}}function a(e,t,n){return(t=function(e){var t=function(e,t){if(\"object\"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||\"default\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,a,l=[],u=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(e){c=!0,o=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(e,t)||s(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function c(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||s(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function s(e,t){if(e){if(\"string\"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function d(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var p=Object.prototype.hasOwnProperty,h=Object.prototype.toString,m=Object.defineProperty,v=Object.getOwnPropertyDescriptor,y=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===h.call(e)},g=function(e){if(!e||\"[object Object]\"!==h.call(e))return!1;var t,n=p.call(e,\"constructor\"),r=e.constructor&&e.constructor.prototype&&p.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!r)return!1;for(t in e);return void 0===t||p.call(e,t)},b=function(e,t){m&&\"__proto__\"===t.name?m(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},x=function(e,t){if(\"__proto__\"===t){if(!p.call(e,t))return;if(v)return v(e,t).value}return e[t]},q=function e(){var t,n,r,o,i,a,l=arguments[0],u=1,c=arguments.length,s=!1;for(\"boolean\"==typeof l&&(s=l,l=arguments[1]||{},u=2),(null==l||\"object\"!=typeof l&&\"function\"!=typeof l)&&(l={});u<c;++u)if(null!=(t=arguments[u]))for(n in t)r=x(l,n),l!==(o=x(t,n))&&(s&&o&&(g(o)||(i=y(o)))?(i?(i=!1,a=r&&y(r)?r:[]):a=r&&g(r)?r:{},b(l,{name:n,newValue:e(s,a,o)})):void 0!==o&&b(l,{name:n,newValue:o}));return l},w=d(q);function M(e,t){return{range:function(e){var n=e.resources,r=e.data,o=n.theme.palette(\"categorical\",0===t?r.items.length:t);return r.items.map((function(e){return o[e.value%o.length]}))},valueAccessor:e.value}}function k(e,t){return{range:function(e){var n=e.resources,r=e.data,o=n.theme.palette(\"categorical\",0===t?r.items.length:t);return r.items.map((function(e){return o[e.row.value%o.length]}))},valueAccessor:e.value}}function S(e,t,n,r,o){var i,a,l=o.byRow,u=o.byElemNo;if(r&&(t.input.persistent||e.hc.qDimensionInfo.length>1||void 0===n.activeDimensionIndex&&e.hc.qSize.qcy>(i=e.hc,(null===(a=i.qDataPages[0]||i.qStackedDataPages[0])||void 0===a?void 0:a.qArea.qHeight)||0)))return u(r,r.raw().qCardinal);if(r){var c=t.pic.extract({field:r.key(),trackBy:r.value}).length;return l(r,c)}return{}}function C(e,t){var n=e.hc.qDimensionInfo,r=t.input.byDimDef||{activeDimensionIndex:n.length-1};if(r.activeDimensionIndex>=0){var o=n[r.activeDimensionIndex];r=o.coloring&&o.coloring.colorMapRef?{type:\"libraryItem\",key:o.coloring.colorMapRef,activeDimensionIndex:r.activeDimensionIndex}:{activeDimensionIndex:r.activeDimensionIndex}}return r}function D(e,t){var n;return t.activeDimensionIndex>=0?n=e.pic.fields().filter((function(e){return\"dimension\"===e.type()}))[t.activeDimensionIndex]:\"libraryItem\"===t.type?!1===(n=t.key?e.pic.field((function(e){return e.raw().colorMapRef===t.key})):void 0)&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))):\"expression\"===t.type&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))),n}function I(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function O(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function E(){}var A=1/.7,N=\"\\\\s*([+-]?\\\\d+)\\\\s*\",L=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",T=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",P=/^#([0-9a-f]{3,8})$/,j=new RegExp(`^rgb\\\\(${N},${N},${N}\\\\)$`),F=new RegExp(`^rgb\\\\(${T},${T},${T}\\\\)$`),H=new RegExp(`^rgba\\\\(${N},${N},${N},${L}\\\\)$`),R=new RegExp(`^rgba\\\\(${T},${T},${T},${L}\\\\)$`),z=new RegExp(`^hsl\\\\(${L},${T},${T}\\\\)$`),V=new RegExp(`^hsla\\\\(${L},${T},${T},${L}\\\\)$`),_={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function B(){return this.rgb().formatHex()}function Y(){return this.rgb().formatRgb()}function $(e){var t,n;return e=(e+\"\").trim().toLowerCase(),(t=P.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?U(t):3===n?new X(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?K(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?K(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=j.exec(e))?new X(t[1],t[2],t[3],1):(t=F.exec(e))?new X(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=H.exec(e))?K(t[1],t[2],t[3],t[4]):(t=R.exec(e))?K(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=z.exec(e))?ne(t[1],t[2]/100,t[3]/100,1):(t=V.exec(e))?ne(t[1],t[2]/100,t[3]/100,t[4]):_.hasOwnProperty(e)?U(_[e]):\"transparent\"===e?new X(NaN,NaN,NaN,0):null}function U(e){return new X(e>>16&255,e>>8&255,255&e,1)}function K(e,t,n,r){return r<=0&&(e=t=n=NaN),new X(e,t,n,r)}function G(e){return e instanceof E||(e=$(e)),e?new X((e=e.rgb()).r,e.g,e.b,e.opacity):new X}function W(e,t,n,r){return 1===arguments.length?G(e):new X(e,t,n,null==r?1:r)}function X(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function Z(){return`#${te(this.r)}${te(this.g)}${te(this.b)}`}function J(){const e=Q(this.opacity);return`${1===e?\"rgb(\":\"rgba(\"}${ee(this.r)}, ${ee(this.g)}, ${ee(this.b)}${1===e?\")\":`, ${e})`}`}function Q(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ee(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function te(e){return((e=ee(e))<16?\"0\":\"\")+e.toString(16)}function ne(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new oe(e,t,n,r)}function re(e){if(e instanceof oe)return new oe(e.h,e.s,e.l,e.opacity);if(e instanceof E||(e=$(e)),!e)return new oe;if(e instanceof oe)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),a=NaN,l=i-o,u=(i+o)/2;return l?(a=t===i?(n-r)/l+6*(n<r):n===i?(r-t)/l+2:(t-n)/l+4,l/=u<.5?i+o:2-i-o,a*=60):l=u>0&&u<1?0:a,new oe(a,l,u,e.opacity)}function oe(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function ie(e){return(e=(e||0)%360)<0?e+360:e}function ae(e){return Math.max(0,Math.min(1,e||0))}function le(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}I(E,$,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:B,formatHex:B,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return re(this).formatHsl()},formatRgb:Y,toString:Y}),I(X,W,O(E,{brighter(e){return e=null==e?A:Math.pow(A,e),new X(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new X(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new X(ee(this.r),ee(this.g),ee(this.b),Q(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Z,formatHex:Z,formatHex8:function(){return`#${te(this.r)}${te(this.g)}${te(this.b)}${te(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:J,toString:J})),I(oe,(function(e,t,n,r){return 1===arguments.length?re(e):new oe(e,t,n,null==r?1:r)}),O(E,{brighter(e){return e=null==e?A:Math.pow(A,e),new oe(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new oe(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new X(le(e>=240?e-240:e+120,o,r),le(e,o,r),le(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new oe(ie(this.h),ae(this.s),ae(this.l),Q(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Q(this.opacity);return`${1===e?\"hsl(\":\"hsla(\"}${ie(this.h)}, ${100*ae(this.s)}%, ${100*ae(this.l)}%${1===e?\")\":`, ${e})`}`}}));const ue=Math.PI/180,ce=180/Math.PI,se=4/29,fe=6/29,de=3*fe*fe;function pe(e){if(e instanceof he)return new he(e.l,e.a,e.b,e.opacity);if(e instanceof qe)return we(e);e instanceof X||(e=G(e));var t,n,r=ge(e.r),o=ge(e.g),i=ge(e.b),a=me((.2225045*r+.7168786*o+.0606169*i)/1);return r===o&&o===i?t=n=a:(t=me((.4360747*r+.3850649*o+.1430804*i)/.96422),n=me((.0139322*r+.0971045*o+.7141733*i)/.82521)),new he(116*a-16,500*(t-a),200*(a-n),e.opacity)}function he(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}function me(e){return e>.008856451679035631?Math.pow(e,1/3):e/de+se}function ve(e){return e>fe?e*e*e:de*(e-se)}function ye(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function ge(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function be(e){if(e instanceof qe)return new qe(e.h,e.c,e.l,e.opacity);if(e instanceof he||(e=pe(e)),0===e.a&&0===e.b)return new qe(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*ce;return new qe(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function xe(e,t,n,r){return 1===arguments.length?be(e):new qe(e,t,n,null==r?1:r)}function qe(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function we(e){if(isNaN(e.h))return new he(e.l,0,0,e.opacity);var t=e.h*ue;return new he(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}I(he,(function(e,t,n,r){return 1===arguments.length?pe(e):new he(e,t,n,null==r?1:r)}),O(E,{brighter(e){return new he(this.l+18*(null==e?1:e),this.a,this.b,this.opacity)},darker(e){return new he(this.l-18*(null==e?1:e),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return new X(ye(3.1338561*(t=.96422*ve(t))-1.6168667*(e=1*ve(e))-.4906146*(n=.82521*ve(n))),ye(-.9787684*t+1.9161415*e+.033454*n),ye(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}})),I(qe,xe,O(E,{brighter(e){return new qe(this.h,this.c,this.l+18*(null==e?1:e),this.opacity)},darker(e){return new qe(this.h,this.c,this.l-18*(null==e?1:e),this.opacity)},rgb(){return we(this).rgb()}}));var Me=e=>()=>e;function ke(e){return 1==(e=+e)?Se:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):Me(isNaN(t)?n:t)}}function Se(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):Me(isNaN(e)?t:e)}var Ce=function e(t){var n=ke(t);function r(e,t){var r=n((e=W(e)).r,(t=W(t)).r),o=n(e.g,t.g),i=n(e.b,t.b),a=Se(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=o(t),e.b=i(t),e.opacity=a(t),e+\"\"}}return r.gamma=e,r}(1),De=/^class(-pyramid)?/,Ie=function(e,t,n,r){var o=void 0!==n.min?n.min:r.min(),i=void 0!==n.max?n.max:r.max(),a=o,l=i,u=t.limits,s={},f=\"percent\"===t.limitType?u.map((function(e){return o+(i-o)*e})):u,d=t.colors.map((function(t){return e.resolveUIColor(t)}));if(o=Math.min.apply(Math,[o].concat(c(f))),i=Math.max.apply(Math,[i].concat(c(f))),s.min=o,s.max=i,t.breakTypes&&-1===t.breakTypes.indexOf(!0))s.type=\"categorical\",Object.assign(s,function(e){var t=e.min,n=e.max,r=e.limits,o=e.range,i=[],a=[];if(r.length)if(r[r.length-1]<t)a.push(t,n),i.push(o[o.length-1],o[o.length-1],o[o.length-1]);else if(r[0]>n)a.push(t,n),i.push(o[0],o[0],o[0]);else{if(r[0]>t)a.push(t),i.push(o[0]);else{a.push(t);for(var l=0;l<r.length;l++)if(t<r[l]){i.push(o[l]);break}}for(var u=0;u<r.length;u++)t<r[u]&&r[u]<n&&(a.push(r[u]),i.push(o[u]));if(r[r.length-1]<n)a.push(n),i.push(o[r.length]),i.push(o[r.length]);else{a.push(n);for(var c=0;c<r.length;c++)if(r[c]>n){i.push(o[c]),i.push(o[c]);break}}}else i.push(o[0]);return{min:t,max:n,range:i,domain:a}}({min:\"percent\"===t.limitType?o:a,max:\"percent\"===t.limitType?i:l,range:d,limits:\"percent\"===t.limitType?f:u}));else if(t.breakTypes){var p=t.breakTypes;s.type=\"continuous\",s.domain=[o],s.range=[d[0]];for(var h=0;h<f.length;h+=1)if(p[h]){var m=d[h],v=d[h+1],y=Ce(m,v)(.5);s.range.push(y),s.domain.push(f[h]),h<f.length-1&&p[h+1]&&(s.range.push(d[h+1]),s.domain.push((f[h]+f[h+1])/2))}else s.range.push(d[h]),s.range.push(d[h+1]),s.domain.push(f[h]),s.domain.push(f[h]+Math.min(1e-6,(i-o)/1e6));s.range.push(d[d.length-1]),s.domain.push(i)}else s.domain=f,s.range=d;return s};function Oe(e,t,n,r,o){var i,a,l,u=0,c=[],s=(e-t)/(r+1);if(0===s)return 1;for(i=0;i<n.length;i+=1)a=.99*(n[i]-t),l=n[i]>e?Math.floor(e/s):n[i]<t?0:Math.floor(a/s),Number.isNaN(l)||(c[l]?c[l]+=1:c[l]=1);for(i=0;i<c.length;i+=1)c[i]&&(u+=1);return u<=r||u>=o?Math.max(u,r):Oe(e,t,n,r+1,o)}var Ee=function(e,t,n,r){var o,i,a=t.theme,l=t.hc,u=r.f,s={mode:\"field\",fieldType:\"measure\",field:u?u.key():void 0,reverse:n.input.reverseScheme||!1,type:\"continuous\",range:function(e){return e.resources.theme.palette(\"quant\")}},f=[],d=!0;if(u){if(Number.isNaN(+u.min())||Number.isNaN(+u.max()))return{invalid:!0};(d=!(\"S\"===(o=n.pic.raw()).qMode&&(o.qDataPages[0]&&o.qSize.qcy>o.qDataPages[0].qArea.qHeight||!o.qDataPages.length&&o.qSize.qcy>0)||\"K\"===o.qMode&&o.qStackedDataPages[0]&&o.qSize.qcy>o.qStackedDataPages[0].qArea.qHeight||\"T\"===o.qMode&&o.qSize.qcy>o.qTreeDataPages[0].qGroupSize))&&(f=n.pic.extract({field:0,props:{num:{field:u.key()},exclude:{fields:l.qDimensionInfo.map((function(e,t){return{field:\"qDimensionInfo/\".concat(t)}})),value:function(e){return Math.min.apply(Math,c(e))<0}}}}).filter((function(e){return e.value>=0&&!e.exclude.value})).map((function(e){return e.num.value})).filter((function(e){return\"number\"==typeof e})))}if(!1===n.input.autoMinMax){if(s.min=n.input.measureMin,s.max=n.input.measureMax,s.max<s.min)return{invalid:!0}}else if(u&&!d)s.min=u.min(),s.max=u.max();else if(u){if(!f.length)return{invalid:!0};s.min=Math.min.apply(Math,c(f)),s.max=Math.max.apply(Math,c(f))}if(n.input.measureScheme&&(s.palettes={quant:n.input.measureScheme}),a){var p=a.getDataColorScales().filter((function(e){return e.key===n.input.measureScheme}))[0];s.type=p&&De.test(p.type)?\"categorical\":\"continuous\",\"categorical\"===s.type&&(i=p.colors.some((function(e){return Array.isArray(e)}))?Math.max.apply(Math,c(p.colors.map((function(e){return e?e.length:0})))):p.colors.length)}if(\"categorical\"===s.type){for(var h=d?Oe(s.max,s.min,f,1,i):i,m=(s.max-s.min)/h,v=[],y=0;y<h+1;y+=1)v.push(s.min+m*y);s.domain=v,s.range=function(e){for(var t=e.resources.theme.palette(\"quant\",h),n=Math.max(1,Math.floor(t.length/h)),r=[],o=0;o<h;o+=1)r.push(t[o*n]);return[r[0]].concat(r,[r[r.length-1]])}}return s};function Ae(e,t){var n;return t.activeMeasureIndex>=0?n=e.pic.fields().filter((function(e){return\"measure\"===e.type()}))[t.activeMeasureIndex]:\"libraryItem\"===t.type?n=e.pic.field((function(e){return e.raw().colorMapRef===t.key&&void 0!==t.key})):\"expression\"===t.type&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))),n||(n=e.pic.field((function(e){return void 0!==e.raw().matchMeasure})))&&(n=e.pic.fields().filter((function(e){return\"measure\"===e.type()}))[n.raw().matchMeasure]),n}function Ne(e){var n,r=e.cm,o=e.defaults,i=e.index,a=e.input,l=e.pic;if(!a||!a.on)return null;var u=null!==(n=a.mode)&&void 0!==n?n:\"primary\";return\"primary\"===u?function(e,n,r){var o=r.primary;return void 0!==n.paletteColor&&n.paletteColor&&(o=e.resolveUIColor(n.paletteColor)),t(t({},r),{},{mode:\"constant\",type:\"constant\",primary:o})}(r,a,o):\"byExpression\"===u?function(e,n,r){var o=\"qMeasureInfo/\".concat(e,\"/\"),i=n.field((function(e){return e.id().startsWith(o)&&\"colorByMeasureExpression\"===e.raw().id})),a=i;return t(t({},r),{},a?{mode:\"field\",fieldType:\"expression\",field:i?i.key():void 0,type:\"color\"}:{mode:\"constant\",type:\"constant\",primary:r.nil})}(i,l,o):null}function Le(e){e.measureOverrides.every((function(e){return!e}))&&(e.measureOverrides=null)}function Te(e,t){for(var n=(null==t?void 0:t.domain)||[],r=(null==t?void 0:t.range)||[],o=[],i=0;i<e.length;++i){var a=e[i];if(\"constant\"===(null==a?void 0:a.mode)){var l=n.indexOf(i);-1===l?(n.push(i),r.push(a.primary)):r[l]=a.primary,e[i]=null}else if(a){o.push(i);var u=n.indexOf(i);-1!==u&&(n.splice(u,1),r.splice(u,1))}}return{domain:n,range:r,exclude:o}}function Pe(e,t,n,r){if(t.input&&!t.input.auto){if(\"byMeasure\"===t.input.mode)return function(e,t,n){var r=t.theme,o=t.hc,i=(arguments.length>3&&void 0!==arguments[3]?arguments[3]:{}).getCField,a=void 0===i?Ae:i,l=n.input.byMeasureDef||{activeMeasureIndex:0},u=a(n,l),c=Ee(0,{theme:r,hc:o},n,{f:u});if(c.invalid)return c;\"expression\"===l.type&&(l.activeMeasureIndex<0||void 0===l.activeMeasureIndex)&&(c.label=l.label,u&&\"color.altLabel\"===u.raw().labelExpRef&&(c.label=n.input.altLabel)),!c.label&&u&&(c.label=u.title());var s=l.activeMeasureIndex>=0?u:null;if(!s&&u&&void 0!==u.raw().matchMeasure&&u.raw().matchMeasure>-1&&(s=n.pic.fields().filter((function(e){return\"measure\"===e.type()}))[u.raw().matchMeasure]),n.input.useMeasureGradient&&\"libraryItem\"===l.type)if(s){var f=s.raw().coloring;f&&f.gradient&&w(c,Ie(e,f.gradient,c,s))}else c.auxiliary=l;return c}(e,n,t);if(\"byDimension\"===t.input.mode)return function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=r.getCDef,i=void 0===o?C:o,a=r.getCByField,l=void 0===a?D:a,u=r.getPersistence,c=void 0===u?S:u,s=i(t,n),f=l(n,s),d=f?f.raw():{},p=n&&n.pic?n.pic.raw():{};if(d.qError||d.qSize&&0===d.qSize.qcy&&!p.qHasOtherValues)return{invalid:!0};var h={mode:\"field\",fieldType:\"dimension\",type:\"categorical\",field:f?f.key():void 0,isFieldLocked:d.qLocked};return(\"expression\"===s.type||s.activeDimensionIndex<0)&&(h.label=s.label,\"color.altLabel\"===d.labelExpRef&&(h.label=n.input.altLabel)),!h.label&&f&&(h.label=f.title()),n.input.dimensionScheme&&(h.palettes={categorical:n.input.dimensionScheme}),n.input.useDimColVal&&\"libraryItem\"===s.type&&(h.auxiliary=s),w(h,c(t,n,s,f,{byRow:k,byElemNo:M})),h}(e,n,t);if(\"byExpression\"===t.input.mode)return function(e,t,n,r){var o=t.hc,i=t.theme,a=t.translator,l=n.pic.field((function(e){return\"colorByExpression\"===e.raw().id}));if(!l||!l.raw().qFallbackTitle&&!n.input.colorExpression||!(Number.isFinite(l.raw().qMin)&&Number.isFinite(l.raw().qMax)||n.input.expressionIsColor))return{mode:\"constant\",type:\"constant\",primary:r.nil};if(n.input.expressionIsColor)return{mode:\"field\",fieldType:\"expression\",field:l?l.key():void 0,type:\"color\"};var u=Ee(0,{hc:o,theme:i},n,{f:l});return u.invalid||(u.label=n.input.expressionLabel||a.get(\"Object.ChartTooltip.ColorExpression\")),u}(0,n,t,r);if(\"byMultiple\"===t.input.mode||\"primary\"===t.input.mode)return function(e,t,n,r){var o=t.hc,i=t.theme,a=t.translator,l=n.input.useBaseColors;if((\"byMultiple\"===n.input.mode||\"primary\"===n.input.mode&&\"measure\"===n.input.useBaseColors)&&o.qMeasureInfo.length>1&&(l=\"measure\"),\"measure\"===l){var u=[],c=[];\"measure\"===n.input.useBaseColors&&o.qMeasureInfo.forEach((function(t,n){if(t.baseColor||t.coloring&&t.coloring.baseColor){u.push(n);var o=e.resolveUIColor(t.baseColor||t.coloring.baseColor);\"none\"===o?c.push(r.primary):c.push(o)}}));var s=n.input.dimensionScheme?{categorical:n.input.dimensionScheme}:void 0,f=i?i.getDataColorPalettes()[0]:void 0;return\"measure\"===n.input.useBaseColors&&f&&(s={categorical:f.key}),{mode:\"measure\",type:\"categorical\",palettes:s,label:a?a.get(\"Common.Measures\"):void 0,explicit:u.length?{domain:u,range:c}:void 0}}if(\"dimension\"===l){var d=[],p=[];return o.qDimensionInfo.forEach((function(t,n){if(t.baseColor||t.coloring&&t.coloring.baseColor){d.push(n);var o=e.resolveUIColor(t.baseColor||t.coloring.baseColor);\"none\"===o?p.push(r.primary):p.push(o)}})),{mode:\"dimension\",type:\"categorical\",field:d.length?d[0]:void 0,explicit:d.length?{domain:d,range:p}:void 0}}var h=r.primary;if(void 0!==n.input.paletteColor)n.input.paletteColor&&(h=e.resolveUIColor(n.input.paletteColor));else{var m=n.input.singleColor;\"number\"!=typeof m||Number.isNaN(m)||(h=[\"#b0afae\",\"#7b7a78\",\"#545352\",\"#4477aa\",\"#7db8da\",\"#b6d7ea\",\"#46c646\",\"#f93f17\",\"#ffcf02\",\"#276e27\",\"#ffffff\",\"#000000\"][m])}return{mode:\"constant\",type:\"constant\",primary:h}}(e,n,t,r)}return{}}function je(e,t,n,r){var o,i=Pe(e,t,n,r);return null!==(o=t.input)&&void 0!==o&&o.measureOverrides?(i.measureOverrides=t.input.measureOverrides.map((function(n,o){return Ne({cm:e,input:n,defaults:r,index:o,pic:t.pic})})),function(e,t){var n,r,o,i=t.translator;if(Le(e),1===(null===(n=e.measureOverrides)||void 0===n?void 0:n.length))return e.measureOverrides[0];if(\"measure\"===e.mode&&e.measureOverrides&&(e.explicit=Te(e.measureOverrides,e.explicit),Le(e)),null!==(r=e.measureOverrides)&&void 0!==r&&r.every((function(e){return\"constant\"===(null==e?void 0:e.mode)}))){var a={mode:\"measure\",type:\"categorical\",label:null==i?void 0:i.get(\"Common.Measures\")};return a.explicit=Te(e.measureOverrides),a}return null!==(o=e.measureOverrides)&&void 0!==o&&o.every((function(e){return e}))?{invalid:!0,measureOverrides:e.measureOverrides}:e}(i,n)):i}function Fe(e){var n=t({hc:null,colorProps:null,layout:null,theme:null},e),r={},o={auto:function(){return{mode:\"primary\"}},getDimensionColorMap:function(){return Promise.reject()},getMeasure:function(){return Promise.reject()},getAttributeDimension:function(){return Promise.reject()}},i={auto:function(e){return e?(o.auto=e,i):o.auto},getDimensionColorMap:function(e){return e?(o.getDimensionColorMap=e,i):o.getDimensionColorMap},getAttributeDimension:function(e){return e?(o.getAttributeDimension=e,i):o.getAttributeDimension},getMeasure:function(e){return e?(o.getMeasure=e,i):o.getMeasure},set:function(e){var t;if(!e.colorProps)throw new Error('Missing \"colorProps\"');if(w(n,e),(r={pic:n.picasso.data(\"q\")({data:n.hc,config:{localeInfo:n.localeInfo}}),input:n.colorProps}).input.auto){var i=o.auto(e.layout);r.input=w(!0,{},r.input,i,{auto:!1});var a=n.theme?n.theme.getDataColorPalettes():[];a[0]&&(r.input.dimensionScheme=a[0].key);var l=0;r.input.byDimDef&&+r.input.byDimDef.activeDimensionIndex>=0&&(l=+r.input.byDimDef.activeDimensionIndex),n.hc&&n.hc.qDimensionInfo[l]&&n.hc.qDimensionInfo[l].coloring&&n.hc.qDimensionInfo[l].coloring.colorMapRef&&r.input.byDimDef&&(r.input.byDimDef.type=\"libraryItem\",r.input.byDimDef.key=n.hc.qDimensionInfo[l].coloring.colorMapRef)}null!==(t=r.input.measureOverrides)&&void 0!==t&&t.every((function(e){return!e||!e.on}))&&(r.input=w(!1,{},r.input,{measureOverrides:null}))},palettes:function(){if(!r.palettes){var e=n.theme,t=[];(e&&e.getDataColorPickerPalettes()||[]).forEach((function(e){t.push({key:\"ui\",colors:e.colors})})),r.palettes=t}return r.palettes},getAuxiliaryData:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"/qHyperCubeDef\";if(!e.auxiliary&&!/qAttrDimInfo/.test(e.field))return Promise.resolve();var r=e.auxiliary||{},i=r.key;if(\"measure\"===e.fieldType)return o.getMeasure(i,n).catch((function(){}));if(\"dimension\"===e.fieldType){var a=\"\".concat(t,\"/\").concat(e.field).replace(\"qDimensionInfo\",\"qDimensions\").replace(\"qAttrDimInfo\",\"qAttributeDimensions\");return Promise.all([/qAttrDimInfo/.test(e.field)?o.getAttributeDimension(a,n).catch((function(){})):Promise.resolve(),i?o.getDimensionColorMap(i,n).catch((function(){})):Promise.resolve()])}return Promise.resolve()},getAuxiliarySettings:function(e,o){var i=this;return e.auxiliary||/qAttrDimInfo/.test(e.field)?(this.palettes(),this.getAuxiliaryData(e,o).then((function(o){if(!o)return{};if(\"measure\"===e.fieldType){if(o.coloring&&o.coloring.gradient){var a=r.pic.field(e.field);return Ie(i,o.coloring.gradient,e,a)}return{}}if(\"dimension\"===e.fieldType){var l={nil:e.nil,others:e.others},u=o[0],c=o[1]?o[1].colorMap:null;if(u){var s=n.picasso.data(\"q\")({data:{qDimensionInfo:[r.pic.field(e.field).raw(),r.pic.field(e.field).raw()],qMeasureInfo:[],qDataPages:u,qInterColumnSortOrder:[0,1],qMode:\"S\"}});l.legendDataset=s}return c?function(e,n,r,o){var i=o.external,a=o.field,l=t({},e);w(l,M(a,a.raw().qCardinal));var u=i.theme?i.theme.getDataColorPalettes()[0]:null;return n.nul&&(l.nil=r.resolveUIColor(n.nul)),n.oth&&(l.others=r.resolveUIColor(n.oth)),n.usePal?(l.palettes={categorical:n.pal},u&&!n.pal&&(l.palettes.categorical=u.key,w(l,M(a)))):!1===n.autoFill&&n.single?l.range=[r.resolveUIColor(n.single)]:n.autoFill&&(u&&(l.palettes={categorical:u.key}),w(l,M(a))),n.colors&&n.colors.length&&(l.explicit=function(e,t,n){for(var r={},o=0;o<e.length;o+=1)r[e[o].value]=e[o].baseColor;var i=[];return{domain:function(e){var o=e.data,a=[];i=[];for(var l=0;l<o.items.length;l++){var u=o.items[l],c=(u.text||u).label;r[c]&&-1===a.indexOf(u.value)&&(a.push(u.value),i.push(t.resolveUIColor(r[c])))}return a.push(-3,-2),i.push(n.others),i.push(n.nil),a},range:function(){return i}}}(n.colors,r,l)),l}(l,c,i,{external:n,field:r.pic.field(e.field)}):l}return{}}))):Promise.resolve()},resolveUIColor:function(e){if(e.index<0||void 0===e.index)return e.color;if(void 0===r.uiPalette&&(r.uiPalette=this.palettes().filter((function(e){return\"ui\"===e.key}))[0]||!1),!r.uiPalette)return e.color;var t=\"none\"===r.uiPalette.colors[0]?e.index:e.index-1;return void 0===r.uiPalette.colors[t]?e.color:r.uiPalette.colors[t]},settings:function(){if(this.palettes(),!r.settings){var e={primary:\"steelblue\",others:\"#aaa\",nil:\"#ddd\"},o=n.theme;o&&(e=t(t({},e),o.getDataColorSpecials())),r.settings=w(e,je(this,r,n,e))}return r.settings}};return i}var He=function(e,t){var n=e.fieldType,r={};if(t)if(\"measure\"===n){var o=t.coloring;o&&(r.measureGradient=o.gradient)}else if(\"dimension\"===n){var i=t[0],a=t[1];i&&(r.legendDataPage=i),a&&(r.dimValsData=a.colorMap)}return r},Re=function(e){throw e.isHandled=!0,e},ze=function(e,t){var n=t.layout,r=t.app;return n&&n.snapshotData?n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.dimValsData?Promise.resolve({colorMap:n.snapshotData.content.chartData.dimValsData}):Promise.reject():r&&r.getObject?r.getObject(\"ColorMapModel_\".concat(e)).then((function(e){return e.getLayout()})):Promise.reject()},Ve=function(e,t){var n=t.layout,r=t.app;return n&&n.snapshotData?n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.measureGradient?Promise.resolve({coloring:{gradient:n.snapshotData.content.chartData.measureGradient}}):Promise.reject():r&&r.getMeasure?r.getMeasure(e).then((function(e){return e.getMeasure()})):Promise.reject()},_e=function(e,t){var n=t.layout,r=t.model,o=t.app;if(n&&n.snapshotData)return n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.legendDataPage?Promise.resolve(n.snapshotData.content.chartData.legendDataPage):Promise.reject();if(r&&r.session&&o){return r.getHyperCubeData(e,[{qHeight:100,qLeft:0,qTop:0,qWidth:2}]).catch(Re)}return Promise.reject()};function Be(e){var t=e.hc,n=e.source,r=e.coloring,o={data:{extract:[{source:\"dummy\",field:0,filter:function(){return o.expando=t.qDataPages[0]?t.qDataPages[0].qArea.qTop:0,!1}},{source:n,field:r.field,trackBy:r.valueAccessor,reduce:\"first\",props:{row:{reduce:function(){return o.expando++}},text:{value:function(e){return e.qText},reduce:\"first\"}}}]},expando:0};return o}function Ye(e){return function(t){return\"object\"===r(t.datum[e])?t.datum[e].value:void 0}}function $e(e){return\"object\"===r(e.datum.isNull)?e.datum.isNull.value:-2===e.datum.value}function Ue(e){return-3===e.datum.value}var Ke={TITLE:{COLOR:void 0,FONT_SIZE:\"16px\",FONT_FAMILY:\"'Source Sans Pro', 'Arial', 'sans-serif'\"},LABEL:{COLOR:void 0,FONT_SIZE:void 0,FONT_FAMILY:\"'Source Sans Pro', 'Arial', 'sans-serif'\"}};function Ge(e){var t=e.theme,n=e.key,r=e.styleOverrides,o={title:{color:Ke.TITLE.COLOR,fontSize:Ke.TITLE.FONT_SIZE,fontFamily:Ke.TITLE.FONT_FAMILY},label:{color:Ke.LABEL.COLOR,fontSize:Ke.LABEL.FONT_SIZE,fontFamily:Ke.LABEL.FONT_FAMILY}};if(!t&&!r)return o;var i=r||{},a=i.title,l=i.label,u=function(e){var t=e.theme,n=e.key;return function(e,r,o,i){return void 0!==e?e:t?t.getStyle(n,r,o):i}}({theme:t,key:n});return o.title.color=u(null==a?void 0:a.color,\"legend.title\",\"color\",Ke.TITLE.COLOR),o.title.fontSize=u(null==a?void 0:a.fontSize,\"legend.title\",\"fontSize\",Ke.TITLE.FONT_SIZE),o.title.fontFamily=u(null==a?void 0:a.fontFamily,\"legend.title\",\"fontFamily\",Ke.TITLE.FONT_FAMILY),o.label.color=u(null==l?void 0:l.color,\"legend.label\",\"color\",Ke.LABEL.COLOR),o.label.fontSize=u(null==l?void 0:l.fontSize,\"legend.label\",\"fontSize\",Ke.LABEL.FONT_SIZE),o.label.fontFamily=u(null==l?void 0:l.fontFamily,\"legend.label\",\"fontFamily\",Ke.LABEL.FONT_FAMILY),o}var We=function(e,t,n){var r=e&&e.dock||void 0;if(\"auto\"!==r)return r||\"right\";if(t){var o=t.element.getBoundingClientRect();if(o.height>o.width)return\"bottom\"}return n?\"left\":\"right\"},Xe=function(e,t,n){return!(n.invalid||\"color\"===n.type||\"measure\"===n.mode&&t.qMeasureInfo.length<=1||\"dimension\"===n.mode)&&(\"function\"==typeof e.show?e.show():!1!==e.show)};function Ze(e,t){var n=e.styleReference,r=e.styleOverrides,o=e.chart,i=e.rtl,a=t.legendProps,l=t.coloring,u=t.theme,c=t.hc,s=Ge({theme:u,key:n,styleOverrides:r});return{layout:{minimumLayoutMode:\"MEDIUM\",dock:We(a,o,i)},show:\"function\"==typeof a.show?function(){return Xe(a,c,l)}:Xe(a,c,l),renderer:\"svg\",mounted:function(e){e.childNodes[0].style.pointerEvents=\"none\",e.style.overflow=\"hidden\"},settings:{title:{show:!1!==a.showTitle,wordBreak:\"break-word\",maxLines:2,lineHeight:1.2,text:l.label||\"\",fill:s.title.color,fontSize:s.title.fontSize,fontFamily:s.title.fontFamily}}}}function Je(e,n,r){return\"categorical\"===n.coloring.type?function(e,n,r){var o=Ze(e,n);if(!o.show)return!1;var i,a=e.key,l=e.styleReference,u=e.styleOverrides,c=e.viewState,s=e.rtl,f=e.settings,d=e.style,p=n.scaleKey,h=n.theme,m=n.scales,v=Ge({theme:h,key:l,styleOverrides:u}),y=o.layout.dock,g=\"left\"===y||\"right\"===y?{maxLines:2,wordBreak:\"break-word\"}:{},b={up:\"M13.6,11 L2.4,11 C2.28954305,11 2.2,10.9104569 2.2,10.8 C2.2,10.756726 2.21403557,10.7146192 2.24,10.68 L7.84,3.21333333 C7.90627417,3.12496777 8.03163444,3.10705916 8.12,3.17333333 C8.13516113,3.18470418 8.14862915,3.1981722 8.16,3.21333333 L13.76,10.68 C13.8262742,10.7683656 13.8083656,10.8937258 13.72,10.96 C13.6853808,10.9859644 13.643274,11 13.6,11 Z\",down:\"M2.4,4 L13.6,4 C13.7104569,4 13.8,4.08954305 13.8,4.2 C13.8,4.24327404 13.7859644,4.28538077 13.76,4.32 L8.16,11.7866667 C8.09372583,11.8750322 7.96836556,11.8929408 7.88,11.8266667 C7.86483887,11.8152958 7.85137085,11.8018278 7.84,11.7866667 L2.24,4.32 C2.17372583,4.23163444 2.19163444,4.10627417 2.28,4.04 C2.31461923,4.01403557 2.35672596,4 2.4,4 Z\",left:\"M11,2.4 L11,13.6 C11,13.7104569 10.9104569,13.8 10.8,13.8 C10.756726,13.8 10.7146192,13.7859644 10.68,13.76 L3.21333333,8.16 C3.12496777,8.09372583 3.10705916,7.96836556 3.17333333,7.88 C3.18470418,7.86483887 3.1981722,7.85137085 3.21333333,7.84 L10.68,2.24 C10.7683656,2.17372583 10.8937258,2.19163444 10.96,2.28 C10.9859644,2.31461923 11,2.35672596 11,2.4 Z\",right:\"M4,13.6 L4,2.4 C4,2.28954305 4.08954305,2.2 4.2,2.2 C4.24327404,2.2 4.28538077,2.21403557 4.32,2.24 L11.7866667,7.84 C11.8750322,7.90627417 11.8929408,8.03163444 11.8266667,8.12 C11.8152958,8.13516113 11.8018278,8.14862915 11.7866667,8.16 L4.32,13.76 C4.23163444,13.8262742 4.10627417,13.8083656 4.04,13.72 C4.01403557,13.6853808 4,13.643274 4,13.6 Z\"};\"dimension\"===n.coloring.fieldType&&(i=function(e){return e.datum.value>=0||-3===e.datum.value});var x=\"\".concat(p,\"Legend\");return w(!0,o,{type:\"legend-cat\",key:\"\".concat(a,\"-cat\"),scale:x in m?x:p,settings:{layout:{scrollOffset:function(){return c?c.get(\"legendScrollOffset\"):void 0},size:-1!==[\"top\",\"bottom\"].indexOf(o.layout.dock)?2:1,direction:s?\"rtl\":\"ltr\",horizontal:20},item:{show:i,label:t({fill:v.label.color,fontSize:v.label.fontSize,fontFamily:v.label.fontFamily},g)},navigation:{disabled:r,button:{content:function(e,t){var n=t.direction;return e(\"i\",{style:{\"pointer-events\":\"none\",fontSize:\"12px\",display:\"inline-block\",fontStyle:\"normal\",lineHeight:\"0\",textAlign:\"center\",textTransform:\"none\",verticalAlign:\"-0.125em\",textRendering:\"optimizelegibility\",margin:\"0px\"}},[e(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"1em\",height:\"1em\",viewBox:\"0 0 16 16\",fill:\"currentColor\"},[e(\"path\",{d:b[n]})])])}}}},brush:{consume:[{context:\"selection\",data:[\"\",a],style:{inactive:{opacity:.3}}}]}},{settings:f,style:d})}(e,n,r):\"continuous\"===n.coloring.type&&function(e,t){var n,r=e.key,o=e.styleReference,i=e.styleOverrides,a=e.rtl,l=e.settings,u=e.style,c=t.scaleKey,s=t.theme,f=\"\".concat(c,\"Range\"),d=Ze(e,t);if(!d.show)return!1;var p=Ge({theme:s,key:o,styleOverrides:i}),h=d.layout.dock,m=\"right\"===h||\"left\"===h,v=null===(n=t.scales)||void 0===n?void 0:n[f];return m&&v&&(v.invert=!0),w(!0,d,{type:\"legend-seq\",key:\"\".concat(r,\"-seq\"),settings:{fill:c,major:f,length:1,tick:{fill:p.label.color,fontSize:p.label.fontSize,fontFamily:p.label.fontFamily},title:{anchor:!a||\"top\"!==d.layout.dock&&\"bottom\"!==d.layout.dock?void 0:\"right\",padding:parseFloat(d.settings.title.fontSize)||16}}},{settings:l,style:u})}(e,n)}function Qe(e,t,n){var r=[],o=[],i=Je(e,t,n&&n.navigationDisabled);return r.push(i),i&&\"legend-cat\"===i.type&&(o.push(function(e){var t=e.key,n=e.requireFailure,r=e.recognizeWith,o=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).actions;return{key:\"event:tap-\".concat(t),type:\"Tap\",requireFailure:n,recognizeWith:r,options:{event:\"legendtap\",interval:10,pointers:1,enable:function(e,n){var r;if(!n)return!0;if(null!=o&&null!==(r=o.interact)&&void 0!==r&&r.enabled&&!o.interact.enabled())return!1;if(!this.chart.componentsFromPoint({x:n.center.x,y:n.center.y}).some((function(e){return e.key===\"\".concat(t,\"-cat\")})))return!1;var i=n.srcEvent.target;return!!(i&&i.hasAttribute(\"data-action\")&&i.hasAttribute(\"data-component-key\"))||!(!i||!i.childNodes[0]||\"BUTTON\"!==i.childNodes[0].nodeName)}},events:{legendtap:function(e){e.preventDefault();var t=e.srcEvent.target;t&&t.hasAttribute(\"data-action\")&&t.hasAttribute(\"data-component-key\")&&this.chart.component(t.getAttribute(\"data-component-key\")).emit(t.getAttribute(\"data-action\"))}}}}(e,n)),o.push(function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.eventName,r=t.key,o=t.requireFailure,i=t.recognizeWith,l=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).actions;return{key:\"event:pan-\".concat(r),type:\"Pan\",requireFailure:o,recognizeWith:i,options:{event:n,pointers:1,threshold:10,enable:function(e,t){var o;return this.started===n||!t||!(null!=l&&null!==(o=l.interact)&&void 0!==o&&o.enabled&&!l.interact.enabled())&&this.chart.componentsFromPoint({x:t.center.x,y:t.center.y}).some((function(e){return e.key===\"\".concat(r,\"-cat\")}))}},events:(e={},a(e,\"\".concat(n,\"start\"),(function(e){e.preventDefault(),this.started!==n&&(this.started=n,this.chart.component(\"\".concat(r,\"-cat\")).emit(\"panstart\",e))})),a(e,\"\".concat(n,\"move\"),(function(e){e.preventDefault(),this.chart.component(\"\".concat(r,\"-cat\")).emit(\"panmove\",e)})),a(e,\"\".concat(n,\"end\"),(function(e){e.preventDefault(),this.chart.component(\"\".concat(r,\"-cat\")).emit(\"panend\",e),this.started=!1})),e)}}(e,n))),{interactions:o,components:r}}var et=function(e){return\"rgba(\".concat([(16711680&e)>>16,(65280&e)>>8,255&e,((4278190080&e)>>>24)/255].join(\",\"),\")\")};function tt(e){var n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.auto,n=Fe(e.resources).auto(t||function(){return{mode:\"byDimension\",persistent:!1,useDimColVal:!0,byDimDef:{activeDimensionIndex:0,type:\"expression\",label:\"\"}}}).getDimensionColorMap((function(e,t){var n=t.layout,r=t.app;return ze(e,{layout:n,app:r})})).getMeasure((function(e,t){var n=t.layout,r=t.app;return Ve(e,{layout:n,app:r})})).getAttributeDimension((function(e,t){var n=t.layout,r=t.model,o=t.app;return _e(e,{layout:n,model:r,app:o})}));return n.getSnapshotData=He,n}({resources:e}),r={},o={},i=function(e){return o.settings||(e||console.warn(\"settings() called before auxiliarySettings()\"),o.settings=n.settings()),o.settings},l={config:function(i){if(r=t({},i),o={},!r.key)throw new Error(\"Missing key\");n.set(t(t({},e),r))},auto:function(e){return e?(n.auto(e),l):n.auto()},getAuxiliarySettings:function(e){return o.auxiliarySettings?Promise.resolve(o.auxiliarySettings):n.getAuxiliarySettings(i(!0),e).then((function(e){return o.auxiliarySettings=e||{},o.settings=t(t({},o.settings),o.auxiliarySettings),o.scales=void 0,o.color=void 0,o.auxiliarySettings}))},getAuxiliaryData:function(){return n.getAuxiliaryData(i())},getSnapshotData:function(e){var t=i();return n.getAuxiliaryData(t,e).then((function(e){return n.getSnapshotData(t,e)}))},resolveUIColor:function(e){return n.resolveUIColor(e)},settings:function(){var e=i();return{mode:e.mode,type:e.type,label:e.label,field:e.field,fieldType:e.fieldType,nil:e.nil,others:e.others,primary:e.primary}},settingsForMeasure:function(e){var t,n=null===(t=i().measureOverrides)||void 0===t?void 0:t[e];return n||this.settings()},isSelectionLocked:function(e){var t=e.isMeasureSelectionLocked;return function(e,t){var n=t.isMeasureSelectionLocked;return\"field\"!==e.mode||(\"dimension\"===e.fieldType?e.isFieldLocked:\"measure\"!==e.fieldType||n)}(i(),{isMeasureSelectionLocked:t})},palettes:function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.colorProps,n=e.coloring,r=e.theme,o=[];if(n&&n.palettes&&r){var i=n.palettes.categorical||t.dimensionScheme,a=r.getDataColorPalettes().filter((function(e){return e.key===i}))[0]||r.getDataColorPalettes()[0];i&&a&&o.push({key:\"categorical\",colors:a.colors});var l=n.palettes.metric||t.measureScheme,u=r.getDataColorScales().filter((function(e){return e.key===l}))[0];if(u){var s=u.colors[0]?u.colors:[[]].concat(c(u.colors.slice(1)));s=Array.isArray(s[0])?s.map((function(e){return e.slice().reverse()})):s.slice().reverse(),o.push({key:\"quant\",colors:s})}}return o}({coloring:i(),colorProps:r.colorProps,theme:r.theme})},scales:function(){return o.scales=o.scales||function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.hc,r=e.coloring,o=e.rtl,i=e.key,a=e.source,l=e.picasso,u={},s=i;if(r){var f={override:!0,domain:r.explicit&&\"function\"==typeof r.explicit.domain?r.explicit.domain:[].concat(c((r.explicit||{}).domain||[]),[-3,-2]),range:r.explicit&&\"function\"==typeof r.explicit.range?r.explicit.range:[].concat(c((r.explicit||{}).range||[]),[r.others,r.nil])};if(\"field\"===r.mode){if(\"dimension\"===r.fieldType){var d,p=Be({hc:n,source:a,coloring:r}).data;if(r.legendDataset){var h=0,m={};l.data(\"q\")({data:n}).extract({field:r.field,trackBy:r.valueAccessor,reduce:function(e){var t=e[0];return m[t]=h++,e[0]}}),d={source:\"attrDim\",extract:{field:\"qDimensionInfo/0\",filter:function(e){return e.qElemNumber>=0},props:{row:{value:function(e){return m[e.qElemNumber]}}}}}}var v={data:p,range:r.range,domain:r.domain,explicit:f,type:\"categorical-color\",label:function(e){return e.datum.text&&e.datum.text.value?e.datum.text.value:e.datum.label}};u[s]=v,d&&(u[\"\".concat(s,\"Legend\")]=t(t({},v),{},{data:d})),n&&n.qHasOtherValues&&d&&((d||v.data).amend=[{label:n.qDimensionInfo[0].othersLabel,source:{key:\"qHyperCube\",field:\"qDimensionInfo/0\"},row:{value:-3},value:-3}])}else if(\"measure\"===r.fieldType){var y={data:{field:r.field},min:r.min,max:r.max};u[s]=w({},y,{type:\"categorical\"===r.type?\"threshold-color\":\"sequential-color\",range:r.range,domain:r.domain,invert:r.reverse}),\"sequential-color\"===u[s].type&&(u[\"\".concat(s,\"Range\")]=w({},y,{invert:!!o}))}else if(\"color\"!==r.type)throw new Error(\"UNUSED FIELD\")}else if(\"dimension\"===r.mode){var g={data:n.qDimensionInfo.map((function(e,t){return t})),label:function(e){return n.qDimensionInfo[e.datum.value].qFallbackTitle},explicit:f,type:\"categorical-color\"};u[s]=g}else if(\"measure\"===r.mode){var b={data:n.qMeasureInfo.map((function(e,t){return t})).filter((function(e){var t;return!(null!==(t=r.explicit)&&void 0!==t&&null!==(t=t.exclude)&&void 0!==t&&t.includes(e))})),label:function(e){return n.qMeasureInfo[e.datum.value].qFallbackTitle},explicit:f,type:\"categorical-color\"};u[s]=b}}return u}({hc:r.hc,coloring:i(),key:r.key,source:r.source,picasso:e.picasso}),o.scales},color:function(){return o.color=o.color||function(e){var t=e.coloring,n=e.scales,r=e.key,o=Ye(r),i=Ye(\"\".concat(r,\"IsAnOther\")),a=function(e,t){var r=e.fieldType,a=e.invalid,l=e.mode,u=e.nil,c=e.others,s=e.primary,f=e.type;return a?function(e){return Ue(e)||i(e)?c:u}:n[t]?function(e){return Ue(e)?c:$e(e)||-2===o(e)&&\"dimension\"===r||\"NaN\"===o(e)?u:i(e)?c:e.resources.scale(t)(o(e))||c}:\"constant\"===l?function(e){return Ue(e)||i(e)?c:$e(e)?u:s}:\"color\"===f?function(e){return Ue(e)||i(e)?c:$e(e)?u:o(e)||c}:null},l=a(t,r);if(t.measureOverrides){var u=Ye(\"\".concat(r,\"MeasureIdx\")),c=t.measureOverrides.map((function(e){return e&&a(e)}));return function(e){var t=u(e);return c[t]?c[t](e):l(e)}}return l}({coloring:i(),scales:this.scales(),key:r.key}),o.color},datumProps:function(e){return function(e){var t,n,r=e.hc,o=e.coloring,i=e.scales,l=e.key,u=e.addMeasureIx,c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,s=l,f=o.nil;\"field\"===o.mode&&o.field?t=o.field:i[l]&&\"field\"===o.mode&&(t=i[l].data.field||o.field),t?(n={field:t,reduce:\"first\"},\"color\"===o.type&&(n.value=function(e){return\"NaN\"!==e.qNum?et(e.qNum):e.qText&&$(e.qText)?e.qText:f})):\"dimension\"===o.mode?n=void 0!==o.field?o.field:r.qDimensionInfo.length-1:\"measure\"===o.mode&&(n=c);var d=a({},s,n);return r.qDimensionInfo.length>1&&(d[\"\".concat(s,\"IsAnOther\")]={fields:r.qDimensionInfo.map((function(e,t){return{field:\"qDimensionInfo/\".concat(t)}})),value:function(e){return-1!==e.indexOf(-3)}}),u&&(d[\"\".concat(s,\"MeasureIdx\")]=c),d}({coloring:this.settingsForMeasure(e),scales:this.scales(),key:r.key,hc:r.hc,addMeasureIx:i().measureOverrides},e)},data:function(){var e=i(),t={key:\"dummy\",data:[[\"field\"],[\"a\"]]};return e.legendDataset?[t,{type:\"q\",key:\"attrDim\",data:e.legendDataset.raw(),config:{localeInfo:r.localeInfo}}]:[t]},legend:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.eventName,n=e.key,o=e.viewState,a=e.chart,l=e.rtl,u=e.styleReference,c=void 0===u?\"object.legend\":u,s=e.styleOverrides,f=e.settings,d=void 0===f?{}:f,p=e.style,h=void 0===p?{}:p,m=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Qe({eventName:t,key:n,rtl:l,viewState:o,chart:a,styleReference:c,styleOverrides:s,settings:d,style:h},{legendProps:r.legendProps,scaleKey:r.key,coloring:i(),theme:r.theme,hc:r.hc,scales:this.scales()},m)}};return l}var nt=function(e){return e.baseColor||e.coloring&&e.coloring.baseColor};function rt(e){var t=e.qHyperCube,n=t.qDimensionInfo,r=t.qMeasureInfo,o=n.some(nt),i=r.some(nt),a=e.color.useBaseColors;return\"measure\"===a&&!i||\"dimension\"===a&&!o?\"off\":a}function ot(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t(t(t({},e),n),{},{colorProps:t(t({},e.colorProps),n.colorProps||{})});return r}var it=function(e){return e.baseColor||e.coloring&&e.coloring.baseColor};function at(e){var t,n=e.qHyperCube.qDimensionInfo.some(it),r=e.qHyperCube.qMeasureInfo.some(it),o=n?\"dimension\":void 0;return{mode:\"primary\",useBaseColors:null!==(t=null!=o?o:r?\"measure\":void 0)&&void 0!==t?t:\"off\",paletteColor:null}}var lt=function(){};function ut(e){var n,r,o,i,a=e.picasso,l=e.model,u=e.app,c=e.translator,s=e.layoutService,f=void 0===s?void 0:s,d=e.createConfig,p=void 0===d?lt:d,h=e.config,m=void 0===h?{}:h,v=e.custom,y=void 0===v?{}:v,g=m.localeInfo,b=m.key,x=m.theme,q=void 0===x?void 0:x,w=m.auto,M=void 0===w?void 0:w,k=m.definitionPath,S=null==f||null===(n=f.getLayout)||void 0===n?void 0:n.call(f),C={theme:q,key:b,localeInfo:g,layout:S,hc:null==f||null===(r=f.getHyperCube)||void 0===r?void 0:r.call(f),legendProps:null==f||null===(o=f.getLayoutValue)||void 0===o?void 0:o.call(f,\"legend\"),colorProps:t(t({},null==f||null===(i=f.getLayoutValue)||void 0===i?void 0:i.call(f,\"color\")),{},{useBaseColors:S?rt(S):void 0})},D=tt({picasso:a,model:l,app:u,translator:c,auto:M});!1!==M&&D.auto((function(e){return M?M({layout:e,defaultAuto:at}):at(e)}));var I=!1,O={getColor:function(){return D.color()},getPaletteColor:function(e){var t=e.index,n=e.color;return D.resolveUIColor({index:t,color:n})},getData:function(){return D.data()},getDatumProps:function(e){return D.datumProps(e)},getSnapshotData:function(){return D.getSnapshotData(k)},getSettingsForMeasure:function(e){return D.settingsForMeasure(e)},getSettings:function(){return D.settings()},getLegend:function(e,t){return D.legend(e,t)},getScales:function(){return D.scales()},getPalettes:function(){return D.palettes()},isSelectionLocked:function(e){var t=e.isMeasureSelectionLocked;return D.isSelectionLocked({isMeasureSelectionLocked:t})},isInitialized:function(){return I},custom:t({},y),initialize:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.createConfig,n=void 0===t?p:t,r=n({getUseBaseColors:rt}),o=ot(C,r);D.config(o);var i=D.getAuxiliarySettings(k).then((function(){I=!0}));return i}};return O}function ct(e){var t=e.chart,n=e.logicalSize;if(n)return n;var r=t?t.element.getBoundingClientRect():{};return{width:r.width,height:r.height}}var st=[{key:\"FULL\",size:{width:550,height:450}},{key:\"MEDIUM\",size:{width:400,height:220}},{key:\"SMALL\",size:{width:300,height:150}},{key:\"XSMALL\",size:{width:150,height:75}}];function ft(e){var t=e.width,n=e.height,r=st.filter((function(e){return t>=e.size.width&&n>=e.size.height})).shift();return r?r.key:\"SPARK\"}var dt={left:\"right\",right:\"left\",top:\"bottom\",bottom:\"top\",near:\"far\",far:\"near\"};function pt(e){var t=e.orientation,n=e.dock,r=e.btt,o=e.rtl,i=\"horizontal\"===t?function(e){return\"bottom\"===e||\"near\"===e?\"bottom\":\"top\"}(n):function(e,t){var n=\"left\"===e||\"near\"===e?\"left\":\"right\";return t?dt[n]:n}(n,o),a=function(e,t,n){return\"vertical\"===e?t?\"bottom\":\"top\":n?\"right\":\"left\"}(t,r,o);return{current:i,opposite:dt[i],start:a,end:dt[a]}}function ht(e){var n=e.chart,r=e.layoutService,o=e.config,i=void 0===o?{}:o,a=i.logicalSize,l=void 0!==a&&a,u=i.rtl,c=void 0!==u&&u,s={chart:{size:void 0,mode:void 0},x:{dock:void 0,opposite:void 0,size:void 0},y:{dock:void 0,opposite:void 0,size:void 0}},f={type:\"x-y\",config:t({},i),meta:s,update:function(e){s.chart.size={width:e.width,height:e.height},s.chart.mode=ft(e);var t=pt({orientation:\"horizontal\",dock:r.getLayoutValue(\"xAxis.dock\"),btt:!1,rtl:c}),n=t.current,o=t.opposite;s.x.dock=n,s.x.opposite=o,s.x.size=e.width;var i=pt({orientation:\"vertical\",dock:r.getLayoutValue(\"yAxis.dock\"),btt:!0,rtl:c}),a=i.current,l=i.opposite;s.y.dock=a,s.y.opposite=l,s.y.size=e.height}};return f.update(ct({chart:n,logicalSize:l})),f}var mt=\"vertical\",vt=\"horizontal\";function yt(e){var n=e.chart,r=e.layoutService,o=e.config,i=void 0===o?{}:o,a=e.typeConfig,l=void 0===a?{}:a,u=i.logicalSize,c=void 0!==u&&u,s=i.rtl,f=void 0!==s&&s,d=l.fallback===mt?mt:vt,p=!!l.invert,h=l.measureAxes||[{ref:\"measureAxis\",name:\"minor\"}],m={chart:{orientation:void 0,size:void 0,mode:void 0},major:{orientation:void 0,dock:void 0,opposite:void 0,size:void 0}},v={type:\"major-minor\",config:t({},i),meta:m,update:function(e){m.chart.orientation=r.getLayoutValue(\"orientation\",d),m.chart.size={width:e.width,height:e.height},m.chart.mode=ft(e),m.major.orientation=function(e){var t=e.layoutService,n=e.chartOrientation,r=e.invert;return t.meta.isContinuous?vt:r?n===mt?vt:mt:n}({layoutService:r,chartOrientation:m.chart.orientation,invert:p});var t=pt({orientation:m.major.orientation,dock:r.getLayoutValue(\"dimensionAxis.dock\"),btt:!1,rtl:f}),n=t.current,o=t.opposite;m.major.dock=n,m.major.opposite=o,m.major.size=m.major.orientation===mt?e.height:e.width,h.forEach((function(t){var n={};n.orientation=m.major.orientation===mt?vt:mt;var o=pt({orientation:n.orientation,dock:r.getLayoutValue(\"\".concat(t.ref,\".dock\")),btt:!0,rtl:f}),i=o.current,a=o.opposite,l=o.start,u=o.end;n.dock=i,n.opposite=a,n.start=l,n.end=u,n.size=n.orientation===mt?e.height:e.width,m[t.name]=n}))}};return v.update(ct({chart:n,logicalSize:c})),v}function gt(e){var t=e.chart,n=e.layoutService,r=e.config,o=void 0===r?{}:r,i=e.typeConfig,a=void 0===i?{}:i;return(\"x-y\"===a.type?ht:yt)({chart:t,layoutService:n,config:o,typeConfig:a})}function bt(e,t,n){if(void 0===e||void 0===t)return n;for(var r=t.split(\".\"),o=e,i=0;i<r.length;++i){var a=r[i];if(void 0===o[a])return n;o=o[a]}return o}var xt=[\"__proto__\",\"constructor\"];function qt(e,t,n){if(void 0!==e&&void 0!==t){var r=t.split(\".\"),o=r[r.length-1];if(!xt.some((function(e){return r.includes(e)}))){for(var i=e,a=0;a<r.length-1;++a){var l=r[a];void 0===i[l]&&(i[l]=Number.isNaN(+r[a+1])?{}:[]),i=i[l]}void 0!==n?i[o]=n:delete i[o]}}}function wt(){var e={};return{get:function(t){return e[t]},set:function(t,n){return e[t]=n,n},has:function(t){return t in e},remove:function(t){delete e[t]},empty:function(){e={}}}}function Mt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){return e},n=wt();return function(r){var o=t(r);return n.has(o)?n.get(o):n.set(o,e(r))}}function kt(e){var n=t({},e),r={},o={},i=!1,a={get:function(e){return n[e]},set:function(e,t){var a=n[e];!i&&r[e]?n[e]=r[e](t,a):n[e]=t,!i&&o[e]&&o[e](n[e],a)},preventSet:function(e,t){i=!0,a.set(e,t),i=!1},intercept:function(e,t){r[e]=t},onChanged:function(e,t){o[e]=t}};return a}function St(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50;return function(){for(var r=this,o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];var l=function(){return e.apply(r,i)};clearTimeout(t),t=setTimeout(l,n)}}function Ct(e){var t,n,r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,i=0;return function(){t=this;for(var a=arguments.length,l=new Array(a),u=0;u<a;u++)l[u]=arguments[u];n=l;var c=Date.now()-i,s=function(){i=Date.now(),r=0,e.apply(t,n)};r||(c>=o?s():r=setTimeout(s,o-c))}}var Dt={ERROR_CODES:[7005],DIMENSION:\"qDimensionInfo\",MEASURE:\"qMeasureInfo\"},It=function(e,t){return e[t].reduce((function(e,t,n){var r;return(r=t,Dt.ERROR_CODES.some((function(e){var t;return e===(null===(t=r.qError)||void 0===t?void 0:t.qErrorCode)})))?e.filtered.push(n):e.reduced.push(t),e}),{reduced:[],filtered:[]})};function Ot(e){var t;return((null==e||null===(t=e.qHyperCube)||void 0===t?void 0:t.qDimensionInfo)||[]).map((function(e){var t,n=null===(t=e.qCardinalities)||void 0===t?void 0:t.qHypercubeCardinal;if(n)return n;var r=e.qStateCounts||{},o=r.qLocked,i=void 0===o?0:o,a=r.qOption,l=void 0===a?0:a,u=r.qSelected;return i+l+(void 0===u?0:u)}))}function Et(e){switch(e.qHyperCube.qMode){case\"S\":return function(e){var t=e.qHyperCube.qSize;return{refs:{dataPages:\"qHyperCube.qDataPages\"},size:{x:t.qcx,y:t.qcy,dimensions:Ot(e)}}}(e);case\"K\":return function(e){var t=Ot(e);return{refs:{dataPages:\"qHyperCube.qStackedDataPages\"},size:{x:e.qHyperCube.qSize.qcx,y:t[0],dimensions:t}}}(e);case\"T\":return function(e){var t=Ot(e);return{refs:{dataPages:\"qHyperCube.qTreeDataPages\"},size:{x:e.qHyperCube.qSize.qcx,y:t[0],dimensions:t}}}(e);default:throw new Error(\"Mode not supported\")}}function At(e){var n=e.source,r=e.metaAdditionsFn,o=e.experimental,i=void 0===o?{filter:!1}:o,a=w(!0,{},n),l=i.filter?function(e){var t=e.qHyperCube,n=It(t,Dt.DIMENSION),r=n.reduced,o=n.filtered;t[Dt.DIMENSION]=r;var i=It(t,Dt.MEASURE),a=i.reduced,l=i.filtered;return t[Dt.MEASURE]=a,{dimensions:o,measures:l}}(a):{dimensions:[],measures:[]},u=Et(a),c=function(){var e=function(e){var n=e.layout,r=e.additionsFn,o=void 0===r?function(){return{}}:r,i=e.additionsProps,a=void 0===i?{}:i,l=n.qHyperCube,u=l.qDimensionInfo,c=l.qMeasureInfo,s=l.qMode,f=u.length,d=c.length,p=t({mode:{S:\"S\"===s,P:\"P\"===s,K:\"K\"===s,T:\"T\"===s},dimensionCount:f,measureCount:d,hasMultipleDimensions:f>1,hasMultipleMeasures:d>1,isOneDimensional:1===f,isTwoDimensional:2===f},a);return t(t({},p),o({layout:n,meta:p}))}({layout:a,additionsFn:r,additionsProps:{size:u.size}});return e.filteredFields=l,e},s={refs:t({},u.refs),meta:c(),getLayout:function(){return a},getLayoutValue:function(e,t){return bt(a,e,t)},setLayoutValue:function(e,t){qt(a,e,t),u=Et(a),s.meta=c()},getHyperCube:function(){return a.qHyperCube},getHyperCubeValue:function(e,t){return bt(a.qHyperCube,e,t)},setHyperCubeValue:function(e,t){qt(a.qHyperCube,e,t),u=Et(a),s.meta=c()},getDataPages:function(){return bt(a,u.refs.dataPages)},setDataPages:function(e){qt(a,u.refs.dataPages,e),s.meta=c()}};return s}function Nt(e){var t=e.originalArray,n=e.newArray,r=e.matchKey;return Array.isArray(t)&&t.length?(n.forEach((function(e){var n=-1;t.some((function(t,o){return t[r]&&t[r]===e[r]&&(n=o),n})),n>-1?t[n]=e:t.push(e)})),t):n}function Lt(e){var o=e.picassoInstance,a=e.plugins,l=e.pluginArgs,s=void 0===l?{}:l,f={initialized:!1,definitions:[]};return{initialize:function(){return i(n().mark((function e(){var l,u,d,p;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!f.initialized){e.next=2;break}return e.abrupt(\"return\");case 2:return u=Promise.all(a.filter((function(e){return\"custom-component\"===e.info.type})).map(function(){var e=i(n().mark((function e(i){var a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i.info.componentName){e.next=2;break}throw new Error(\"plugin-service: Custom component is missing componentName\");case 2:return e.next=4,i.fn(t({},s));case 4:if(\"object\"===r(a=e.sent)){e.next=7;break}throw new Error(\"plugin-service: Custom component needs to be an object\");case 7:o.component(i.info.componentName,a);case 8:case\"end\":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())),d=Promise.all(a.filter((function(e){return\"component-definition\"===e.info.type})).map((function(e){return e.fn(t({},s))}))),e.next=6,Promise.all([u,d]);case 6:p=e.sent,f.initialized=!0,(l=f.definitions).push.apply(l,c(p[1]));case 9:case\"end\":return e.stop()}}),e)})))()},extendComponents:function(e){return f.initialized?(f.definitions.filter(Boolean).forEach((function(t){var n=u(e.filter((function(e){return e.key&&e.key===t.key})),1)[0];if(n){var o=w(!0,{},n.brush);w(!0,n,t),t.brush&&(n.brush=function(e,t){return\"object\"===r(e)&&Object.keys(e).length?(Array.isArray(t.consume)&&(e.consume=Nt({originalArray:e.consume,newArray:t.consume,matchKey:\"context\"})),Array.isArray(t.trigger)&&(e.trigger=Nt({originalArray:e.trigger,newArray:t.trigger,matchKey:\"on\"})),e):t}(o,t.brush))}else e.push(t)})),e):e}}}function Tt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Pt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Tt(Object(n),!0).forEach((function(t){jt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Tt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function jt(e,t,n){return(t=function(e){var t=function(e,t){if(\"object\"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||\"default\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ft=Object.prototype.hasOwnProperty,Ht=Object.prototype.toString,Rt=Object.defineProperty,zt=Object.getOwnPropertyDescriptor,Vt=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===Ht.call(e)},_t=function(e){if(!e||\"[object Object]\"!==Ht.call(e))return!1;var t,n=Ft.call(e,\"constructor\"),r=e.constructor&&e.constructor.prototype&&Ft.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!r)return!1;for(t in e);return void 0===t||Ft.call(e,t)},Bt=function(e,t){Rt&&\"__proto__\"===t.name?Rt(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},Yt=function(e,t){if(\"__proto__\"===t){if(!Ft.call(e,t))return;if(zt)return zt(e,t).value}return e[t]},$t=function e(){var t,n,r,o,i,a,l=arguments[0],u=1,c=arguments.length,s=!1;for(\"boolean\"==typeof l&&(s=l,l=arguments[1]||{},u=2),(null==l||\"object\"!=typeof l&&\"function\"!=typeof l)&&(l={});u<c;++u)if(null!=(t=arguments[u]))for(n in t)r=Yt(l,n),l!==(o=Yt(t,n))&&(s&&o&&(_t(o)||(i=Vt(o)))?(i?(i=!1,a=r&&Vt(r)?r:[]):a=r&&_t(r)?r:{},Bt(l,{name:n,newValue:e(s,a,o)})):void 0!==o&&Bt(l,{name:n,newValue:o}));return l};function Ut(e,t,n,r){if(!e)return-1;const o=n.cache,i=e.origin?e.origin():null;i&&(e=i);let a=o.fields.indexOf(e),l=-1,u=-1;if(-1===a)for(let t=0;t<o.wrappedFields.length;t++)if(u=o.wrappedFields[t].attrDims.map((e=>e.instance)).indexOf(e),l=o.wrappedFields[t].attrExps.map((e=>e.instance)).indexOf(e),-1!==u||-1!==l){a=t;break}if(Array.isArray(r)&&r.some(((e,t)=>e!==t))){const e=r.indexOf(a);-1!==e&&(a=e)}return a-=t.qArea.qLeft,a<0||a>=t.qArea.qWidth?-1:u>=0?e=>e[a].qAttrDims.qValues[u]:l>=0?e=>e[a].qAttrExps.qValues[l]:e=>e[a]}function Kt(e,t,n){let{key:r}=n;const o={value:\"function\"==typeof e.value?e.value(t):void 0!==e.value?e.value:t};return o.label=\"function\"==typeof e.label?e.label(t):void 0!==e.label?String(e.label):String(o.value),e.field&&(o.source={key:r,field:e.field.key()}),o}function Gt(e){let{cache:t,f:n,mainCell:r,p:o,prop:i,page:a,rowIdx:l,row:u,sourceKey:c,target:s,targetProp:f,columnOrder:d}=e,p=r;if(o.field&&o.field!==n){const e=Ut(o.field,a,{cache:t},d);if(-1===e)return;p=$t({qRow:l},e(u))}s[f]=Kt(o,p,{key:c})}function Wt(e,t,n,r){const o=Array.isArray(e)?e:[e];let i=[];for(let e=0;e<o.length;e++)if(void 0!==o[e].field){const a=t.raw(),l=t.key(),u=\"object\"==typeof o[e].field?o[e].field:t.field(o[e].field),{props:c,main:s}=r.normalizeConfig(o[e],t),f=Object.keys(c),d=!!o[e].trackBy,p=typeof o[e].trackBy,h={},m=[],v=[];for(let t=0;t<a.qDataPages.length;t++){const i=Ut(u,a.qDataPages[t],{cache:n},a.qColumnOrder);if(-1!==i)for(let y=0;y<a.qDataPages[t].qMatrix.length;y++){const g=a.qDataPages[t].qArea.qTop+y,b=$t({qRow:g},i(a.qDataPages[t].qMatrix[y])),x=Kt(s,b,{key:l});if(!(s.filter&&!s.filter(b))){for(let e=0;e<f.length;e++){const r=c[f[e]];let o=r.fields||[r];r.fields&&(x[f[e]]=[]);for(let i=0;i<o.length;i++)Gt({cache:n,f:u,mainCell:b,p:o[i],prop:f[e],props:c,page:a.qDataPages[t],rowIdx:g,row:a.qDataPages[t].qMatrix[y],sourceKey:l,target:r.fields?x[f[e]]:x,targetProp:r.fields?i:f[e],columnOrder:a.qColumnOrder});if(r.fields){const t=x[f[e]].map((e=>e.value)),n=x[f[e]].map((e=>e.label));x[f[e]]={value:\"function\"==typeof r.value?r.value(t):void 0!==r.value?r.value:t,label:\"function\"==typeof r.label?r.label(n):void 0!==r.label?String(r.label):String(x[f[e]].value)}}}d&&r.track({cfg:o[e],itemData:b,obj:x,target:m,tracker:h,trackType:p}),v.push(x)}}}const y=d?r.collect(m,{main:s,propsArr:f,props:c}):v;i=[...i,...y]}return i}function Xt(e){var t=0,n=e.children,r=n&&n.length;if(r)for(;--r>=0;)t+=n[r].value;else t=1;e.value=t}function Zt(e,t){e instanceof Map?(e=[void 0,e],void 0===t&&(t=Qt)):void 0===t&&(t=Jt);for(var n,r,o,i,a,l=new nn(e),u=[l];n=u.pop();)if((o=t(n.data))&&(a=(o=Array.from(o)).length))for(n.children=o,i=a-1;i>=0;--i)u.push(r=o[i]=new nn(o[i])),r.parent=n,r.depth=n.depth+1;return l.eachBefore(tn)}function Jt(e){return e.children}function Qt(e){return Array.isArray(e)?e[1]:null}function en(e){void 0!==e.data.value&&(e.value=e.data.value),e.data=e.data.data}function tn(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function nn(e){this.data=e,this.depth=this.height=0,this.parent=null}function rn(e){return null==e?null:function(e){if(\"function\"!=typeof e)throw new Error;return e}(e)}nn.prototype=Zt.prototype={constructor:nn,count:function(){return this.eachAfter(Xt)},each:function(e,t){let n=-1;for(const r of this)e.call(t,r,++n,this);return this},eachAfter:function(e,t){for(var n,r,o,i=this,a=[i],l=[],u=-1;i=a.pop();)if(l.push(i),n=i.children)for(r=0,o=n.length;r<o;++r)a.push(n[r]);for(;i=l.pop();)e.call(t,i,++u,this);return this},eachBefore:function(e,t){for(var n,r,o=this,i=[o],a=-1;o=i.pop();)if(e.call(t,o,++a,this),n=o.children)for(r=n.length-1;r>=0;--r)i.push(n[r]);return this},find:function(e,t){let n=-1;for(const r of this)if(e.call(t,r,++n,this))return r},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,r=t.children,o=r&&r.length;--o>=0;)n+=r[o].value;t.value=n}))},sort:function(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))},path:function(e){for(var t=this,n=function(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),o=null;e=n.pop(),t=r.pop();for(;e===t;)o=e,e=n.pop(),t=r.pop();return o}(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var o=r.length;e!==n;)r.splice(o,0,e),e=e.parent;return r},ancestors:function(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t},descendants:function(){return Array.from(this)},leaves:function(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e},links:function(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t},copy:function(){return Zt(this).eachBefore(en)},[Symbol.iterator]:function*(){var e,t,n,r,o=this,i=[o];do{for(e=i.reverse(),i=[];o=e.pop();)if(yield o,t=o.children)for(n=0,r=t.length;n<r;++n)i.push(t[n])}while(i.length)}};var on={depth:-1},an={},ln={};function un(e){return e.id}function cn(e){return e.parentId}function sn(){var e,t=un,n=cn;function r(r){var o,i,a,l,u,c,s,f,d=Array.from(r),p=t,h=n,m=new Map;if(null!=e){const t=d.map(((t,n)=>function(e){let t=(e=`${e}`).length;dn(e,t-1)&&!dn(e,t-2)&&(e=e.slice(0,-1));return\"/\"===e[0]?e:`/${e}`}(e(t,n,r)))),n=t.map(fn),o=new Set(t).add(\"\");for(const e of n)o.has(e)||(o.add(e),t.push(e),n.push(fn(e)),d.push(ln));p=(e,n)=>t[n],h=(e,t)=>n[t]}for(a=0,o=d.length;a<o;++a)i=d[a],c=d[a]=new nn(i),null!=(s=p(i,a,r))&&(s+=\"\")&&(f=c.id=s,m.set(f,m.has(f)?an:c)),null!=(s=h(i,a,r))&&(s+=\"\")&&(c.parent=s);for(a=0;a<o;++a)if(s=(c=d[a]).parent){if(!(u=m.get(s)))throw new Error(\"missing: \"+s);if(u===an)throw new Error(\"ambiguous: \"+s);u.children?u.children.push(c):u.children=[c],c.parent=u}else{if(l)throw new Error(\"multiple roots\");l=c}if(!l)throw new Error(\"no root\");if(null!=e){for(;l.data===ln&&1===l.children.length;)l=l.children[0],--o;for(let e=d.length-1;e>=0&&(c=d[e],c.data===ln);--e)c.data=null}if(l.parent=on,l.eachBefore((function(e){e.depth=e.parent.depth+1,--o})).eachBefore(tn),l.parent=null,o>0)throw new Error(\"cycle\");return l}return r.id=function(e){return arguments.length?(t=rn(e),r):t},r.parentId=function(e){return arguments.length?(n=rn(e),r):n},r.path=function(t){return arguments.length?(e=rn(t),r):e},r}function fn(e){let t=e.length;if(t<2)return\"\";for(;--t>1&&!dn(e,t););return e.slice(0,t)}function dn(e,t){if(\"/\"===e[t]){let n=0;for(;t>0&&\"\\\\\"===e[--t];)++n;if(0==(1&n))return!0}return!1}function pn(e,t){\"/\"===e.charAt(0)&&(e=e.substring(1));const n=e.split(\"/\");let r,o=t;for(let e=0;e<n.length;e++){if(\"*\"===n[e]&&Array.isArray(o)){const t=[];r=n.slice(e+1).join(\"/\");for(let e=0;e<o.length;e++){let n=pn(r,o[e]);Array.isArray(n)?t.push(...n):t.push(n)}return t}if(!n[e]&&Array.isArray(o)){const t=new Array(o.length);r=n.slice(e+1).join(\"/\");for(let e=0;e<o.length;e++)t[e]=pn(r,o[e]);return t}n[e]in o&&(o=o[n[e]])}return o}function hn(e,t,n){let r=[];if(!e||!e.length)return r;if(t<=0){const t=n>=0?[e[n]]:e;r=[...r,...t]}else for(let o=0;o<e.length;o++)e[o].children&&e[o].children.length&&(r=[...r,...hn(e[o].children,t-1,n)]);return r}function mn(e,t,n){if(e===t)return e=>e;if(e>t){const n=Math.max(0,Math.min(100,e-t));return e=>{let t=e;for(let e=0;e<n;++e)t=t.parent;return t}}if(t>e){const r=Math.max(0,Math.min(100,t-e));return e=>hn(e.children,r-1,n)}return!1}function vn(e,t){let{cache:n}=t;if(\"number\"==typeof e)return n.fields[e];const r=n.allFields;if(\"function\"==typeof e){for(let t=0;t<r.length;t++)if(e(r[t]))return r[t];return!1}if(\"string\"==typeof e){for(let t=0;t<r.length;t++)if(r[t].key()===e||r[t].title()===e)return r[t]}else if(e&&-1!==r.indexOf(e))return e;throw Error(\"Field not found: \".concat(e))}const yn=/^qDimensionInfo(?:\\/(\\d+))?/,gn=/^\\/?qMeasureInfo\\/(\\d+)/,bn=/\\/qAttrExprInfo\\/(\\d+)/,xn=/\\/qAttrDimInfo\\/(\\d+)/;function qn(e){return(e.qColumnOrder&&e.qColumnOrder.length?e.qColumnOrder:e.qDimensionInfo.map(((e,t)=>t))).filter((t=>t<e.qDimensionInfo.length))}function wn(e,t){let{cube:n}=t;if(!e)return-1;let r=e.origin&&e.origin()?e.origin().key():e.key(),o=!1,i=-1,a=-1,l=-1,u=-1,c=-1,s=-1,f=r;const d=n.qEffectiveInterColumnSortOrder,p=qn(n);return yn.test(f)&&(o=!0,i=+yn.exec(f)[1],f=r.replace(yn,\"\")),gn.test(f)&&(\"K\"===n.qMode?c=+gn.exec(f)[1]:d&&-1!==d.indexOf(-1)?(c=+gn.exec(f)[1],s=0):s=+gn.exec(f)[1],f=f.replace(gn,\"\")),f&&(xn.exec(f)?l=+xn.exec(f)[1]:bn.exec(f)&&(a=+bn.exec(f)[1])),u=o?\"S\"===n.qMode?p[i]:d?d.indexOf(i):i:d&&-1!==d.indexOf(-1)?d.indexOf(-1):n.qDimensionInfo.length-(\"K\"===n.qMode?0:1),{fieldDepth:u+1,pseudoMeasureIndex:c,measureIdx:s,attrDimIdx:l,attrIdx:a}}function Mn(e,t){let n,r,o=mn(e.fieldDepth,t.fieldDepth,t.pseudoMeasureIndex);return n=t.measureIdx>=0?e=>e.data.qValues[t.measureIdx]:e=>e.data,t.attrDimIdx>=0?r=e=>{var n;return null==e||null===(n=e.qAttrDims)||void 0===n?void 0:n.qValues[t.attrDimIdx]}:t.attrIdx>=0&&(r=e=>{var n;return null==e||null===(n=e.qAttrExps)||void 0===n?void 0:n.qValues[t.attrIdx]}),{nodeFn:o,attrFn:r,valueFn:n}}function kn(e,t,n){let{key:r}=n;const o={value:\"function\"==typeof e.value?e.value(t):void 0!==e.value?e.value:t};return o.label=\"function\"==typeof e.label?e.label(t):void 0!==e.label?String(e.label):String(o.value),e.field&&(o.source={key:r,field:e.field.key()}),o}function Sn(e){let{propsArr:t,props:n,item:r,itemData:o,ret:i,sourceKey:a}=e;for(let e=0;e<t.length;e++){const l=n[t[e]],u=l.fields||[l];let c,s;l.fields&&(c=[],s=[]);for(let n=0;n<u.length;n++){const f=u[n];let d,p,h,m,v,y;if(\"primitive\"===f.type?(h=f.value,y=String(f.value)):(\"function\"==typeof f.value&&(d=e=>f.value(e,r)),\"function\"==typeof f.label&&(p=e=>f.label(e,r)),f.accessor?(m=f.accessor(r),Array.isArray(m)?(v=m.map(f.valueAccessor),f.attrAccessor&&(v=v.map(f.attrAccessor)),d&&(h=v.map(d),d=null),p&&(y=v.map(p),p=null),h=f.reduce?f.reduce(h):h,y=f.reduceLabel?f.reduceLabel(y,h):String(h)):(h=f.attrAccessor?f.attrAccessor(f.valueAccessor(m)):f.valueAccessor(m),y=h)):(h=o,y=o)),l.fields){const e=d?d(h):h;c.push(e),s.push(p&&null!=y?p(y):null!=y?y:String(e))}else{const n=d?d(h):h;i[t[e]]={value:n,label:p?p(y):null!=y?y:String(n)},f.field&&(i[t[e]].source={field:f.field.key(),key:a})}}c&&(i[t[e]]={value:\"function\"==typeof l.value?l.value(c,r):c,label:\"function\"==typeof l.label?l.label(s,r):s})}}const Cn=(e,t,n)=>{const r=\"K\"===e.qMode?\"/qStackedDataPages/*/qData\":\"/qTreeDataPages/*\",o=\"K\"===e.qMode?\"qSubNodes\":\"qNodes\",i=pn(r,e);return i&&i[0]?(t.tree=Zt(i[0],n.children||(e=>e[o])),t.tree):null};function Dn(e){const t=e.raw().qDataPages.length?e.raw().qDataPages[0].qMatrix:[],n=function(e){const t=e.raw().qColumnOrder,n=e.fields();return t&&t.length===n.length?t:n.map(((e,t)=>t))}(e),r=e.fields(),o=e.fields().filter((e=>\"dimension\"===e.type())).map((e=>n.indexOf(r.indexOf(e)))),i=e.fields().filter((e=>\"measure\"===e.type())).map((e=>n.indexOf(r.indexOf(e)))),a={__root:{__id:\"__root\",qValues:[]}};for(let e=0;e<t.length;e++){const n=t[e];let r=\"__root\",u=!1;for(let e=0;e<o.length;e++){var l;const t=n[o[e]],i=\"\".concat(r,\"__\").concat(null!==(l=t.qElemNumber)&&void 0!==l?l:t.qElemNo);a[i]||(a[i]=Pt({__id:i,__parent:r,qValues:[]},t),u=!0),r=i}if(u)for(let e=0;e<i.length;e++){const t=n[i[e]];a[r].qValues.push(t)}}const u=Object.keys(a).map((e=>a[e]));return sn().id((e=>e.__id)).parentId((e=>e.__parent))(u)}const In=e=>{let{propsArr:t,props:n,cube:r,cache:o,itemDepthObject:i,f:a}=e;for(let e=0;e<t.length;e++){const l=n[t[e]],u=l.fields?l.fields:[l];for(let e=0;e<u.length;e++){const t=u[e];if(t.field!==a){const e=Mn(i,wn(t.field,{cube:r,cache:o}));t.accessor=e.nodeFn,t.valueAccessor=e.valueFn,t.attrAccessor=e.attrFn}}}};function On(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;const o=t.raw(),i=t.key(),a=\"S\"===o.qMode?Dn(t):Cn(o,n,e);if(!a)return null;const l=a.height,u=[];for(let i=0;i<=l;i++){let a=null;if(i>0)if(\"S\"===o.qMode){let e=qn(o)[i-1];a=n.fields[e]}else{let e=o.qEffectiveInterColumnSortOrder[i-1];i>o.qEffectiveInterColumnSortOrder.length&&(e=o.qDimensionInfo.length),a=n.fields[e]}const{props:l,main:c}=r.normalizeConfig(Pt(Pt({},e),{},{field:a?a.key():void 0}),t),s=Object.keys(l);u[i]={propsArr:s,props:l,main:c};const f=a?wn(a,{cube:o,cache:n}):{fieldDepth:0};In({propsArr:s,props:l,cube:o,cache:n,itemDepthObject:f,f:a})}const c=a.copy(),s=c.descendants(),f=a.descendants();for(let e=0;e<f.length;e++){const t=u[f[e].depth].propsArr,n=u[f[e].depth].props,r=u[f[e].depth].main,o=s[e],a=o.data,l=kn(r,a,{key:i});Sn({propsArr:t,props:n,item:o,itemData:a,ret:l,sourceKey:i,isTree:!0}),f[e].data=l}return a}function En(e,t,n,r){const o=Array.isArray(e)?e:[e];let i=[];for(let a=0;a<o.length;a++)if(void 0!==o[a].field){const l=t.raw(),u=t.key();if(!Cn(l,n,e))continue;const c=\"object\"==typeof o[a].field?o[a].field:t.field(o[a].field),{props:s,main:f}=r.normalizeConfig(o[a],t),d=Object.keys(s),p=wn(c,{cube:l,cache:n}),{nodeFn:h,attrFn:m,valueFn:v}=Mn({fieldDepth:0},p);In({propsArr:d,props:s,cube:l,cache:n,itemDepthObject:p,f:c});const y=!!o[a].trackBy,g=typeof o[a].trackBy,b={},x=[],q=h(n.tree),w=[];for(let e=0;e<q.length;e++){const t=q[e],n=m?m(v(t)):v(t);if(f.filter&&!f.filter(n))continue;const i=kn(f,n,{key:u});Sn({propsArr:d,props:s,item:t,itemData:n,ret:i,sourceKey:u}),y&&r.track({cfg:o[a],itemData:n,obj:i,target:x,tracker:b,trackType:g}),w.push(i)}const M=y?r.collect(x,{main:f,propsArr:d,props:s}):w;i=[...i,...M]}return i}\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;var An,Nn,Ln=(An=function(e){\n/*! javascript-number-formatter - v1.1.11 - http://mottie.github.com/javascript-number-formatter/ * © ecava */\ne.exports=function(e,t){if(!e||isNaN(+t))return t;var n,r,o,i,a,l,u,c,s,f,d=e.length,p=e.search(/[0-9\\-\\+#]/),h=p>0?e.substring(0,p):\"\",m=e.split(\"\").reverse().join(\"\"),v=m.search(/[0-9\\-\\+#]/),y=d-v,g=e.substring(y,y+1),b=y+(\".\"===g||\",\"===g?1:0),x=v>0?e.substring(b,d):\"\";if(n=(t=\"-\"===(e=e.substring(p,b)).charAt(0)?-t:+t)<0?t=-t:0,o=(r=e.match(/[^\\d\\-\\+#]/g))&&r[r.length-1]||\".\",i=r&&r[1]&&r[0]||\",\",e=e.split(o),t=+(t=t.toFixed(e[1]&&e[1].length))+\"\",l=e[1]&&e[1].lastIndexOf(\"0\"),(!(c=t.split(\".\"))[1]||c[1]&&c[1].length<=l)&&(t=(+t).toFixed(l+1)),s=e[0].split(i),e[0]=s.join(\"\"),(a=e[0]&&e[0].indexOf(\"0\"))>-1)for(;c[0].length<e[0].length-a;)c[0]=\"0\"+c[0];else 0==+c[0]&&(c[0]=\"\");if((t=t.split(\".\"))[0]=c[0],u=s[1]&&s[s.length-1].length){for(m=\"\",y=(f=t[0]).length%u,d=f.length,b=0;b<d;b++)m+=f.charAt(b),!((b-y+1)%u)&&b<d-u&&(m+=i);t[0]=m}return t[1]=e[1]&&t[1]?o+t[1]:\"\",\"0\"!==(r=t.join(\"\"))&&\"\"!==r||(n=!1),h+(n?\"-\":\"\")+r+x}},An(Nn={exports:{}},Nn.exports),Nn.exports);function Tn(e){return e.replace(/[-[\\]/{}()*+?.\\\\^$|]/g,\"\\\\$&\")}const Pn={3:\"k\",6:\"M\",9:\"G\",12:\"T\",15:\"P\",18:\"E\",21:\"Z\",24:\"Y\",\"-3\":\"m\",\"-6\":\"μ\",\"-9\":\"n\",\"-12\":\"p\",\"-15\":\"f\",\"-18\":\"a\",\"-21\":\"z\",\"-24\":\"y\"},jn=/%\\)?$/,Fn=/^\\(r(0[2-9]|[12]\\d|3[0-6])\\)/i,Hn=/^\\(oct\\)/i,Rn=/^\\(dec\\)/i,zn=/^\\(hex\\)/i,Vn=/^\\(bin\\)/i,_n=/^\\(rom\\)/i,Bn=/^(\\(rom\\)|\\(bin\\)|\\(hex\\)|\\(dec\\)|\\(oct\\)|\\(r(0[2-9]|[12]\\d|3[0-6])\\))/i,Yn=/#|0/g;function $n(e,t,n,r){return e=e.toString(t),n[1]===n[1].toUpperCase()&&(e=e.toUpperCase()),e.length-e.indexOf(\".\")>10&&(e=e.slice(0,e.indexOf(\".\")+11)),e.replace(\".\",r||\".\")}function Un(e,t,n){let r;return Fn.test(t)?e=$n(e,Number(/\\d{2}/.exec(t)[0]),t,n):Hn.test(t)?e=$n(e,8,t,n):Rn.test(t)?e=$n(e,10,t,n):zn.test(t)?e=$n(e,16,t,n):Vn.test(t)?e=$n(e,2,t,n):_n.test(t)&&(r=\"\",e<0&&(r=\"-\",e=-e),0===(e=Math.floor(e))?e=\"0\":e<=5e5?(e=function(e,t){let n,r=\"\",o=Number(String(e).slice(-3)),i=(e-o)/1e3,a=[0,1,4,5,9,10,40,50,90,100,400,500,900].reverse(),l=[\"0\",\"I\",\"IV\",\"V\",\"IX\",\"X\",\"XL\",\"L\",\"XC\",\"C\",\"CD\",\"D\",\"CM\"].reverse();for(;o>0;)for(n=0;n<a.length;n++)if(a[n]<=o){r+=l[n],o-=a[n];break}for(n=0;n<i;n++)r=\"M\".concat(r);return t[1]!==t[1].toUpperCase()&&(r=r.toLowerCase()),r}(e,t),e=r+e):e=t+r+e.toExponential(0)),e}function Kn(e,t,n){const r=Tn(e);return n?r:new RegExp(r||\"\",t)}function Gn(e,t,n,r){let o,i,a,l,u,c,s,f,d,p=e.pattern;var h,m;r&&(e.abbreviate=!0),h=t,(m=n)&&(m=Tn(m)),h&&(h=Tn(h)),d=new RegExp(\"(?:[#0]+\".concat(h,\")?[#0]+(?:\").concat(m,\"[#0]+)?\")),a=p.match(d),a=a?a[0]:\"\",l=a?p.substr(0,p.indexOf(a)):p,u=a?p.substring(p.indexOf(a)+a.length):\"\",a||(a=p?\"#\":\"##########\"),t&&t===n&&(o=a.split(n),i=o.pop(),a=o.join(\"\")+n+i,t=\"\"),c=t,t=/,/.test(n)?\"¤\":\",\",c&&(a=a.replace(Kn(c,\"g\"),t)),s=n,n=\".\",s&&(a=a.replace(Kn(s,\"g\"),n)),f=a.match(/#/g),f=f?f.length:0;const v=p.split(s);let y;v[1]&&(y=v[1].match(Yn)),e.prefix=l||\"\",e.postfix=u||\"\",e.pattern=p,e.maxPrecision=y?y.length:2,e.percentage=jn.test(p),e.numericPattern=a||\"\",e.numericRegex=new RegExp(\"\".concat(Kn(t,null,!0),\"|\").concat(Kn(n,null,!0)),\"g\"),e.groupTemp=c,e.decTemp=s,e.t=t,e.d=n,e.temp=f}class Wn{constructor(e,t,n,r,o){this.localeInfo=e,this.pattern=t,this.thousandDelimiter=n||\",\",this.decimalDelimiter=r||\".\",this.type=o||\"numeric\",this.patternSeparator=\";\",this.abbreviations=function(e,t){if(!e||!e.qNumericalAbbreviation)return Pn;const n={};return e.qNumericalAbbreviation.split(t).forEach((e=>{let t=e.split(\":\");2===t.length&&(n[t[0]]=t[1])})),n}(e,this.patternSeparator),this.prepare()}clone(){const e=new Wn(this.localeInfo,this.pattern,this.thousandDelimiter,this.decimalDelimiter,this.type);return e.subtype=this.subtype,e}format(e,t,n,r){return this.prepare(t,n,r),this.formatValue(e)}prepare(e,t,n){let r;if(void 0===e&&(e=this.pattern),void 0===t&&(t=this.thousandDelimiter),void 0===n&&(n=this.decimalDelimiter),!e)return void(this._prepared={pattern:!1});this._prepared={positive:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"},negative:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"},zero:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"}},r=this._prepared,e=e.split(this.patternSeparator),r.positive.pattern=e[0],r.negative.pattern=e[1],r.zero.pattern=e[2],Bn.test(e[0])&&(r.positive.isFunctional=!0),e[1]?Bn.test(e[1])&&(r.negative.isFunctional=!0):r.negative=!1,e[2]?Bn.test(e[2])&&(r.zero.isFunctional=!0):r.zero=!1;const o=\"U\"===this.type;r.positive.isFunctional||Gn(r.positive,t,n,o),r.negative&&!r.negative.isFunctional&&Gn(r.negative,t,n,o),r.zero&&!r.zero.isFunctional&&Gn(r.zero,t,n,o)}formatValue(e){let t,n,r,o,i,a,l,u,c,s=this._prepared,f=\"\",d=\"\",p=e;if(isNaN(e))return\"\".concat(p);if(e=+e,!1===s.pattern)return e.toString();if(0===e&&s.zero)return s=s.zero,s.pattern;if(e<0&&s.negative?(s=s.negative,e=-e):s=s.positive,i=s.d,a=s.t,s.isFunctional)e=Un(e,s.pattern,i);else{if(s.percentage&&(e*=100),s.abbreviate){const t=Object.keys(this.abbreviations).map((e=>parseInt(e,10))).sort(((e,t)=>e-t));let r,o,i=t[0];for(l=0,n=Number(Number(e).toExponential().split(\"e\")[1]);i<=n&&l<t.length;)l++,i=t[l];l>0&&(r=t[l-1]),r&&n>0&&r>0?o=r:(n<0&&r<0||!r)&&(i<0&&i-n<=s.maxPrecision?o=i:r<=n&&!(i>0&&-n<=s.maxPrecision)&&(o=r)),o&&(f=this.abbreviations[o],e/=10**o)}if(r=Math.abs(e),t=s.temp,u=s.numericPattern,c=u.split(i)[1],\"I\"===this.type&&(e=Math.round(e)),o=e,c||\"#\"!==u.slice(-1)[0])if(r>=1e15||r>0&&r<=1e-14)e=r?r.toExponential(15).replace(/\\.?0+(?=e)/,\"\"):\"0\";else{const t=Number(e.toFixed(Math.min(20,c?c.length:0)).split(\".\")[0]);let n=u.split(i)[0];if(n+=i,e=Ln(n,t)||\"0\",c){const t=Math.max(0,Math.min(14,c.length)),n=c.replace(/#+$/,\"\").length;let o=(\"I\"===this.type?0:r%1+1e-15).toFixed(t).slice(2).replace(/0+$/,\"\");for(l=o.length;l<n;l++)o+=\"0\";o&&(e+=i+o)}else 0===t&&(o=0)}else if(r>=10**t||r<1||r<1e-4)0===e?e=\"0\":r<1e-4||r>=1e20?(e=(e=o.toExponential(Math.max(1,Math.min(14,t))-1)).replace(/\\.?0+(?=e)/,\"\"),d=\"\"):(e=e.toPrecision(Math.max(1,Math.min(14,t)))).indexOf(\".\")>=0&&(e=(e=e.replace(e.indexOf(\"e\")<0?/0+$/:/\\.?0+(?=e)/,\"\")).replace(\".\",i));else{for(u+=i,t=Math.max(0,Math.min(20,t-Math.ceil(Math.log(r)/Math.log(10)))),l=0;l<t;l++)u+=\"#\";e=Ln(u,e)}e=e.replace(s.numericRegex,(e=>e===a?s.groupTemp:e===i?s.decTemp:\"\")),o<0&&!/^-/.test(e)&&(e=\"-\".concat(e))}return s.prefix+e+d+f+s.postfix}static getStaticFormatter(){return{prepare(){},formatValue:e=>\"\".concat(e)}}}function Xn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{size:n=5e3,multipleArguments:r=!1,toKey:o=(e=>e)}=t;let i,a,l=Object.create(null),u=Object.create(null),c=0,s=0;return i=r?function(){return a=o(...arguments),i.has(a)?i.get(a):i.set(a,e(...arguments))}:t=>(a=o(t),i.has(a)?i.get(a):i.set(a,e(t))),i.set=(e,t)=>(c>=n&&(delete l[u[s]],delete u[s],c--,s++),l[e]=t,u[c]=e,c++,t),i.get=e=>l[e],i.has=e=>e in l,i.clear=()=>{l=Object.create(null),u=Object.create(null),c=0,s=0},i.size=()=>c,i}function Zn(e,t,n,r,o){const i=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return new Wn(...t)}(o,e,t,n,r),a=Xn(i.formatValue.bind(i),{toKey:e=>isNaN(e)?e:+e});function l(e){return a(e)}return l.format=function(e,t,n,r){return a.clear(),i.format(t,e,n,r)},l.pattern=function(e){return e&&(a.clear(),i.pattern=e,i.prepare()),i.pattern},l}const Jn=\"D\",Qn=\"T\",er=\"TS\",tr=\"IV\",nr=[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",\"Sunday\"],rr=[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sun\"],or=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],ir=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];function ar(e,t){for(let n=e.length;n<t;n++)e=\"0\".concat(e);return e}function lr(e){let t=e.toString().split(\".\");return t[1]?(t=Number(\"0.\".concat(t[1])),t):0}function ur(e,t){let n,r=function(e){const t=e,n=24*lr(t),r=60*lr(n),o=60*lr(r),i=1e3*lr(o);return{d:Math.floor(t),h:Math.floor(n),m:Math.floor(r),s:Math.floor(o),f:Math.round(i)}}(e),o=r.d,i=r.h,a=r.m,l=r.s,u=r.f,c=0;/w+|t+/gi.test(t)&&(n=new Date(Date.UTC(1899,11,30+Math.floor(e),0,0,Math.round(86400*(e-Math.floor(e))))),isNaN(n.getTime())&&(n=null)),/D+/gi.test(t)||(i+=24*o),/h+/gi.test(t)||(a+=60*i),/m+/gi.test(t)||(l+=60*a),/w+/gi.test(t)&&(c=n?n.getDay()-1:0,c<0&&(c=6));let s=\"\";return n&&(s=n.getUTCHours()>=12?\"pm\":\"am\"),{year:0,month:0,day:c,date:o,h:i,m:a,s:l,f:u,t:s}}class cr{constructor(e,t,n){const r=e||{};if(r.qCalendarStrings||(r.qCalendarStrings={qLongDayNames:nr,qDayNames:rr,qLongMonthNames:or,qMonthNames:ir}),this.localeInfo=r,this.locale_days=r.qCalendarStrings.qLongDayNames.slice(),this.locale_days_abbr=r.qCalendarStrings.qDayNames.slice(),this.locale_months=r.qCalendarStrings.qLongMonthNames.slice(),this.locale_months_abbr=r.qCalendarStrings.qMonthNames.slice(),!t){t={[Qn]:r.qTimeFmt||\"hh:mm:ss\",[Jn]:r.qDateFmt||\"YYYY-MM-DD\",[er]:r.qTimestampFmt||\"YYYY-MM-DD hh:mm:ss\"}[n]}this.pattern=t}clone(){const e=new cr(this.localeInfo,this.pattern);return e.subtype=this.subtype,e}format(e,t){t||(t=this.pattern?this.pattern:\"YYYY-MM-DD hh:mm:ss\"),t=t.replace(/\\[.+]|\\[|]/g,\"\");const n=/t+/gi.test(t);let r;e instanceof Date?r=function(e,t){let n=e.getUTCHours(),r=e.getUTCDay()-1;return t&&(n%=12,n||(n=12)),r<0&&(r=6),{year:e.getUTCFullYear(),month:e.getUTCMonth(),day:r,date:e.getUTCDate(),h:n,m:e.getUTCMinutes(),s:e.getUTCSeconds(),f:e.getUTCMilliseconds(),t:e.getUTCHours()>=12?\"pm\":\"am\"}}(e,n):(e<0&&(e=-e,t=\"-\".concat(t)),r=ur(e,t));const o=(i=this,a=r,{\"Y+|y+\":{Y:\"\".concat(Number(\"\".concat(a.year).slice(-2))),YY:ar(\"\".concat(a.year).slice(-2),2),YYY:ar(\"\".concat(a.year).slice(-3),3),def:e=>ar(\"\".concat(a.year),e.length)},\"M+\":{M:a.month+1,MM:ar(\"\".concat(a.month+1),2),MMM:i.locale_months_abbr[a.month],def:i.locale_months[a.month]},\"W+|w+\":{W:a.day,WW:ar(\"\".concat(a.day),2),WWW:i.locale_days_abbr[a.day],def:i.locale_days[a.day]},\"D+|d+\":{D:a.date,def:e=>ar(\"\".concat(a.date),e.length)},\"h+|H+\":{h:a.h,def:e=>ar(\"\".concat(a.h),e.length)},\"m+\":{m:a.m,def:e=>ar(\"\".concat(a.m),e.length)},\"s+|S+\":{s:a.s,def:e=>ar(\"\".concat(a.s),e.length)},\"f+|F+\":{def(e){let t=\"\".concat(a.f),n=e.length-t.length;if(n>0)for(let e=0;e<n;e++)t+=\"0\";else n<0&&(t=t.slice(0,e.length));return t}},\"t{1,2}|T{1,2}\":{def(e){let t=a.t;return e[0].toUpperCase()===e[0]&&(t=t.toUpperCase()),t=t.slice(0,e.length),t}}});var i,a;const l=[];for(const e in o)Object.prototype.hasOwnProperty.call(o,e)&&l.push(e);const u=new RegExp(l.join(\"|\"),\"g\");return t.replace(u,(e=>{let t,n,r;for(n in o)if(Object.prototype.hasOwnProperty.call(o,n)&&(t=new RegExp(n),t.test(e)))break;if(!t)return\"\";for(const t in o[n])if(t===e||t.toLowerCase()===e){r=o[n][t],void 0===r&&(r=o[n][t.toLowerCase()]);break}return void 0===r&&(r=o[n].def),\"function\"==typeof r&&(r=r(e)),r}))}}function sr(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return new cr(...t)}function fr(e){return new Date(Date.UTC(1899,11,30+Math.floor(e),0,0,0,Math.round(864e5*(e-Math.floor(e)))))}function dr(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"TS\",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=sr(n,e,t),o=Xn(r.format.bind(r),{toKey:e=>\"object\"==typeof e&&\"function\"==typeof e.getTime?e.getTime():e});function i(e){return t!==tr?fr(e):e}function a(e){return e=i(e),o(e)}return a.format=function(e,t){return o.clear(),t=i(t),r.format(t,e)},a.locale=function(n){return r=sr(n,e,t),o=Xn(r.format.bind(r),{toKey:e=>\"object\"==typeof e?e.getTime():e}),this},a.qtype=function(e){return void 0!==e&&(t=e,o.clear()),t},a}function pr(e,t){if(e&&e.qNumFormat&&-1!==[\"D\",\"T\",\"TS\",\"IV\"].indexOf(e.qNumFormat.qType))return dr(e.qNumFormat.qFmt,e.qNumFormat.qType,t);let n=\"#\",r=t&&void 0!==t.qThousandSep?t.qThousandSep:\",\",o=t&&void 0!==t.qDecimalSep?t.qDecimalSep:\".\",i=\"U\",a=e&&!!e.qIsAutoFormat;return e&&e.qNumFormat?(n=e.qNumFormat.qFmt||n,r=e.qNumFormat.qThou||r,o=e.qNumFormat.qDec||o,i=e.qNumFormat.qType||i,a=a&&-1===[\"M\"].indexOf(e.qNumFormat.qType)):a=!0,(a||\"U\"===i)&&(n=\"#\".concat(o,\"##\"),i=\"U\"),Zn(n,r,o,i,t)}function hr(){let e,{meta:t,id:n,key:r,localeInfo:o,fieldExtractor:i,value:a,type:l,sourceField:u}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const c=a||(\"dimension\"===l?e=>null==e?void 0:e.qElemNo:e=>null==e?void 0:e.qValue),s=e=>(null==e?void 0:e.qText)||\"\",f=\"dimension\"===l?\"first\":\"avg\",d=pr(t,o),p=\"dimension\"===l?\"first\":(e,t)=>d(t),h={id:()=>n,key:()=>r,raw:()=>t,title:()=>t.qFallbackTitle||t.label,type:()=>l,origin:()=>u,items:()=>(e||(e=i(h)),e),min:()=>t.qMin,max:()=>t.qMax,value:c,label:s,reduce:f,reduceLabel:p,formatter:()=>d,tags:()=>t.qTags};return h}function mr(e,t,n,r,o){return(t[e]||[]).map(((t,i)=>{const a=\"\".concat(r?\"\".concat(r,\"/\"):\"\").concat(e,\"/\").concat(i),l={instance:hr($t({id:\"\".concat(n?\"\".concat(n,\"/\"):\"\").concat(a),key:a,meta:t},o))};return l.attrDims=mr(\"qAttrDimInfo\",t,n,a,$t({},o,{value:e=>null==e?void 0:e.qElemNo,type:\"dimension\"})),l.attrExps=mr(\"qAttrExprInfo\",t,n,a,$t({},o,{value:e=>null==e?void 0:e.qNum,type:\"measure\"})),l.measures=mr(\"qMeasureInfo\",t,n,a,$t({},o,{value:e=>null==e?void 0:e.qValue,type:\"measure\"})),l}))}function vr(){let{key:e,data:t,config:n={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const r={fields:[],wrappedFields:[],allFields:[],virtualFields:[]},o=t;if(!o)throw new Error('Missing \"data\" input');if(!o.qDimensionInfo)throw new Error('The \"data\" input is not recognized as a hypercube');const i=vr.util,a={cache:r,cube:o,localeInfo:n.localeInfo,fieldExtractor:null,pages:null,hierarchy:()=>null,virtualFields:n.virtualFields},l={key:()=>e,raw:()=>o,field:e=>vn(e,a),fields:()=>r.fields.slice(),extract:e=>a.extractor(e,l,r,i),hierarchy:e=>a.hierarchy(e,l,r,i),_cache:()=>r};\"K\"===o.qMode||\"T\"===o.qMode||!o.qMode&&o.qNodesOnDim?(a.extractor=En,a.hierarchy=On,a.pages=\"K\"===o.qMode?o.qStackedDataPages:o.qTreeDataPages):\"S\"===o.qMode?(a.extractor=Wt,a.pages=o.qDataPages,a.hierarchy=On):a.extractor=()=>[],a.fieldExtractor=e=>a.extractor({field:e},l,r,i);const u=\"S\"===o.qMode?e=>e.qElemNumber:void 0,c=\"S\"===o.qMode?e=>e.qNum:void 0;r.wrappedFields.push(...mr(\"qDimensionInfo\",o,e,\"\",$t({},a,{value:u,type:\"dimension\"}))),r.wrappedFields.push(...mr(\"qMeasureInfo\",o,e,\"\",$t({},a,{value:c,type:\"measure\"}))),r.fields=r.wrappedFields.map((e=>e.instance));const s=e=>{e.forEach((e=>{r.allFields.push(e.instance),s(e.measures),s(e.attrDims),s(e.attrExps)}))};return s(r.wrappedFields),(n.virtualFields||[]).forEach((t=>{const n=l.field(t.from),o=hr(Pt({meta:n.raw(),id:\"\".concat(e,\"/\").concat(t.key),sourceField:n,fieldExtractor:e=>a.extractor({field:e},l,r,i),key:t.key,type:n.type(),localeInfo:a.localeInfo,value:n.value},t.override||{}));r.virtualFields.push(o)})),r.allFields.push(...r.virtualFields),l}const yr=[[\"qHyperCube\",\"qHyperCubeDef\"],[\"qTreeData\",\"qTreeDataDef\"],[\"qDimensionInfo\",\"qDimensions\"],[\"qMeasureInfo\",\"qMeasures\"],[\"qAttrDimInfo\",\"qAttributeDimensions\"],[\"qAttrExprInfo\",\"qAttributeExpressions\"]],gr=/\\/qDimensionInfo(?:\\/(\\d+))?/,br=/\\/qMeasureInfo\\/(\\d+)/,xr=/\\/qAttrDimInfo\\/(\\d+)(?:\\/(\\d+))?/,qr=/\\/qAttrExprInfo\\/(\\d+)/,wr=/\\/?qHyperCube/,Mr=/\\/?qTreeData/,kr=e=>\"\".concat(e.substr(0,e.indexOf(\"/qHyperCubeDef\")+14)),Sr=e=>\"\".concat(e.substr(0,e.indexOf(\"/qTreeDataDef\")+13));function Cr(e,t){let n=e,r=-1,o=-1,i=\"\",a=e=>e;wr.test(e)?(i=\"\".concat(n.substr(0,n.indexOf(\"qHyperCube\")+10)),a=kr):Mr.test(e)&&(i=\"\".concat(n.substr(0,n.indexOf(\"qTreeData\")+9)),a=Sr);let l=!0;if(gr.test(e)&&(r=+gr.exec(e)[1]),br.test(e)&&(o=+br.exec(e)[1]),xr.test(e)){o=-1,r=0;const e=+xr.exec(n)[2];isNaN(e)||(r=e,n=n.replace(/\\/\\d+$/,\"\")),l=!1}if(qr.test(e)){const e=o;if(t){o=0;const a=pn(i,t);o+=(a.qMeasureInfo||[]).length,r>-1?(o=a.qDimensionInfo.slice(0,r).reduce(((e,t)=>e+t.qAttrExprInfo.length),o),r=-1):(o=a.qDimensionInfo.reduce(((e,t)=>e+t.qAttrExprInfo.length),o),o=a.qMeasureInfo.slice(0,e).reduce(((e,t)=>e+t.qAttrExprInfo.length),o)),o+=+qr.exec(n)[1]}else r>-1?(r=-1,o=+qr.exec(n)[1]):o+=+qr.exec(n)[1]+1}return yr.forEach((e=>{let[t,r]=e;n=n.replace(t,r)})),l&&(n=a(n)),n&&\"/\"!==n[0]&&(n=\"/\".concat(n)),{measureIdx:o,dimensionIdx:r,path:n}}function Dr(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;const r=t.byCells,o=t.primarySource,i=[],a={},l=e.isActive();let u=!1;if(e.brushes().forEach((e=>{const t=Cr(e.id,n);if(\"range\"===e.type&&t.measureIdx>-1&&t.dimensionIdx>-1){const n=e.brush.ranges();n.length&&(u=!0,a.multiRangeSelectTreeDataValues||(a.multiRangeSelectTreeDataValues={path:t.path,ranges:[]}),n.forEach((e=>a.multiRangeSelectTreeDataValues.ranges.push({qMeasureIx:t.measureIdx,qDimensionIx:t.dimensionIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!0}}))))}else{if(\"range\"===e.type&&t.measureIdx>-1){const n=e.brush.ranges();n.length&&(u=!0,a.rangeSelectHyperCubeValues||(a.rangeSelectHyperCubeValues={path:t.path,ranges:[]}),n.forEach((e=>a.rangeSelectHyperCubeValues.ranges.push({qMeasureIx:t.measureIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!0}}))))}if(\"range\"===e.type&&t.dimensionIdx>-1){const n=e.brush.ranges();n.length&&(u=!0,a.selectHyperCubeContinuousRange||(a.selectHyperCubeContinuousRange={path:t.path,ranges:[]}),n.forEach((e=>a.selectHyperCubeContinuousRange.ranges.push({qDimIx:t.dimensionIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!1}}))))}if(\"value\"===e.type&&t.dimensionIdx>-1)if(r)if(n&&n.qHyperCube&&(\"P\"===n.qHyperCube.qMode||\"T\"===n.qHyperCube.qMode||\"K\"===n.qHyperCube.qMode)){const r=n.qHyperCube,i=r.qNoOfLeftDims,l=r.qEffectiveInterColumnSortOrder.indexOf(t.dimensionIdx);if(a.selectPivotCells||(a.selectPivotCells={path:t.path,cells:[]}),e.id===o||!o){const n=e.brush.values().map((e=>+e)).filter((e=>!isNaN(e)));(0===i||l>=i)&&i>-1?n.forEach((e=>{a.selectPivotCells.cells.push({qType:\"T\",qCol:e,qRow:l-i})})):n.forEach((e=>{a.selectPivotCells.cells.push({qType:\"L\",qCol:t.dimensionIdx,qRow:e})})),u=!!a.selectPivotCells.cells.length}}else a.selectHyperCubeCells||(a.selectHyperCubeCells={path:t.path,cols:[]}),a.selectHyperCubeCells.cols.push(t.dimensionIdx),e.id!==o&&(o||a.selectHyperCubeCells.values)||(a.selectHyperCubeCells.values=e.brush.values().map((e=>+e)).filter((e=>!isNaN(e))),u=!!a.selectHyperCubeCells.values.length);else{const n=e.brush.values().map((e=>+e)).filter((e=>!isNaN(e)));u=!!n.length,i.push({params:[t.path,t.dimensionIdx,n,!1],method:\"selectHyperCubeValues\"})}}})),!u&&l)return[{method:\"resetMadeSelections\",params:[]}];var c;a.rangeSelectHyperCubeValues&&i.push({method:\"rangeSelectHyperCubeValues\",params:[a.rangeSelectHyperCubeValues.path,a.rangeSelectHyperCubeValues.ranges,[],null===(c=t.orMode)||void 0===c||c]});return a.selectHyperCubeContinuousRange&&i.push({method:\"selectHyperCubeContinuousRange\",params:[a.selectHyperCubeContinuousRange.path,a.selectHyperCubeContinuousRange.ranges]}),a.selectHyperCubeCells&&i.push({method:\"selectHyperCubeCells\",params:[a.selectHyperCubeCells.path,a.selectHyperCubeCells.values,a.selectHyperCubeCells.cols]}),a.selectPivotCells&&i.push({method:\"selectPivotCells\",params:[a.selectPivotCells.path,a.selectPivotCells.cells]}),a.multiRangeSelectTreeDataValues&&i.push({method:\"multiRangeSelectTreeDataValues\",params:[a.multiRangeSelectTreeDataValues.path,a.multiRangeSelectTreeDataValues.ranges]}),i}function Ir(e){vr.util=e.data(\"matrix\").util,e.data(\"q\",vr),e.formatter(\"q-number\",Zn),e.formatter(\"q-time\",dr)}function Or(e){var t=bt(e.layout||{},e.path.split(\"/\").join(\".\"));if(!t)return!1;var n=t.qIsOneAndOnlyOne;return void 0!==n&&n}function Er(e){var t,n,r,o=e.selections,i=e.picassoSelections,a=e.layout,l={lockedDimensions:[],singleSelectDimensions:[]};null!=o&&null!==(t=o.isModal)&&void 0!==t&&t.call(o)&&o.confirm(),i.layout(a);var u=(null!==(n=null==a?void 0:a.qHyperCube)&&void 0!==n?n:{}).qDimensionInfo,c=void 0===u?[]:u;return l.lockedDimensions=c.map((function(e){return!!e.qLocked})),l.singleSelectDimensions=c.map((function(e,t){return Or({layout:a,path:\"qHyperCube/qDimensionInfo/\".concat(t)})})),l.singleSelectIndex=function(e){var t,n=((null==e?void 0:e.qHyperCube)||{}).qDimensionInfo,r=void 0===n?[]:n;return null!==(t=r.map((function(e,t){var n;return!(e.qLocked||(null===(n=e.qCardinalities)||void 0===n?void 0:n.qHypercubeCardinal)<=1)&&t})).filter((function(e){return\"number\"==typeof e}))[0])&&void 0!==t?t:Math.max(r.length-1,0)}(a),l.canSelect=0===c.length||c.some((function(e){return!e.qLocked})),l.dimensionLocked=!(null===(r=c[0])||void 0===r||!r.qLocked),l}function Ar(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(null==e||!e.length)return!1;var t=e.filter((function(e){return\"object\"===r(e.data)&&Array.isArray(e.data.fields)})).every((function(e){return e.data.fields.every((function(e){var t=e.raw();return!(!t.qLocked&&t.qCardinal)}))}));return t}function Nr(e){var t=e.brush,n=e.colorField,r=e.legendAlias,o=e.useLegendCube,i=void 0!==o&&o;!n||/qAttrDimInfo/.test(n)?(t.removeKeyAlias(\"attrDim/qDimensionInfo/0\"),r&&t.removeKeyAlias(r),t.addKeyAlias(\"attrDim/qDimensionInfo/0\",\"qHyperCube/\".concat(n))):i&&t.addKeyAlias(r,\"qHyperCube/\".concat(n))}Ir.qBrushHelper=Dr,Ir.selections=Dr;var Lr=\"Enter\",Tr=\"Escape\",Pr=\"Esc\",jr=\"Shift\";function Fr(e){var t=e.brush,n=e.getConfig;return{interceptor:function(e){var r=t.brushes(),o=n(),i=o.allowSimultaneous,a=o.layout,l=void 0===a?{}:a;r.forEach((function(n){var r,o,a;(\"range\"===n.type||null!==(r=e[0])&&void 0!==r&&r.key&&(null===(o=e[0])||void 0===o?void 0:o.key)!==n.id&&0!==i.indexOf(null===(a=e[0])||void 0===a?void 0:a.key))&&t.clear([])}));var u=e.filter((function(e){return-2!==e.value}));if(u.length>1){var s=function(e){var t=e.layout,n=void 0===t?{}:t,r=e.values,o=void 0===r?[]:r;if(null==o||!o.length)return[];var i=Array.from(new Set(o.map((function(e){return e.key})))),a=[];return i.forEach((function(e){var t=Or({layout:n,path:e}),r=o.filter((function(t){return t.key===e})),i=t?[r.pop()]:r;a.push.apply(a,c(i))})),a.filter(Boolean)}({layout:l,values:u});return s}return u},rangeInterceptor:function(e){var r=t.brushes(),o=n().allowSimultaneous;return r.filter((function(e){return\"value\"===e.type})).length?(t.clear([]),e):(r.forEach((function(n){var r=n.id===e[0].key||o.includes(n.id)&&o.includes(e[0].key);\"range\"!==n.type||r||t.clear([])})),e)}}}var Hr=function e(t,n){return n[t]?e(t+1,n):t},Rr=function(e,t){var n=t.reduce((function(e,t){return e[t]=!0,e}),{});return e.reduce((function(e,t,r){var o=Hr(r,n);return n[o]=!0,e[r]=o,e}),{})};function zr(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.layout,n=e.filtered,r=void 0===n?{}:n,o=(null==t?void 0:t.qHyperCube)||{},i=o.qDimensionInfo,a=void 0===i?[]:i,l=o.qMeasureInfo,u=void 0===l?[]:l;return{dimensions:Rr(a,r.dimensions||[]),measures:Rr(u,r.measures||[])}}var Vr=\"selectHyperCubeValues\",_r=\"selectHyperCubeContinuousRange\";function Br(e){var t=e.selection,n=e.fieldMap,r=t.method,o=t.params;if(r===Vr){var i=n.dimensions[o[1]];void 0!==i&&(o[1]=i)}r===_r&&o[1].forEach((function(e){var t=n.dimensions[e.qDimIx];void 0!==t&&(e.qDimIx=t)}));return t}var Yr=[],$r=0,Ur=function(e){var t=Yr.filter((function(e){var t;return null===(t=e.selections)||void 0===t?void 0:t.isActive()}));t.length&&(e.key===Lr?t.forEach((function(e){return e.selections.confirm()})):e.key!==Tr&&e.key!==Pr||t.forEach((function(e){return e.selections.cancel()})))},Kr=function(){document.addEventListener(\"keyup\",Ur)},Gr=function(){document.removeEventListener(\"keyup\",Ur)},Wr=function(e,t){Object.keys(t).forEach((function(n){e.on(n,t[n])}))},Xr=function(e,t){Object.keys(t).forEach((function(n){e.removeListener(n,t[n])}))};function Zr(e,t,n){if(t&&void 0!==n&&\"selectHyperCubeContinuousRange\"===e.method){var r=e.params;if(r&&r[1]&&r[1][0]){var o=r[1][0],i=o.qDimIx,a=o.qRange;\"undefined\"!==i&&a&&!1===a.qMaxInclEq&&a.qMax>=n&&(a.qMaxInclEq=!0)}}}function Jr(e){var t=e.chart,n=e.document,r=e.selectionInfo,o=e.eventName,i=e.componentName,a=e.brushName,l=void 0===a?\"selection\":a,u=e.emit,c=void 0===u?\"rangeClear\":u,s=r.event===o,f=n.querySelector(\"[data-key='\".concat(i,\"-edge-0']\"));if(s||!f)return!1;var d=t.component(i);return!!d&&(d.emit(c),\"string\"==typeof l&&t.brush(l).clear(),d)}function Qr(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.eventName,i=void 0===o?\"discreteRange\":o,a=e.componentName,l=void 0===a?\"discrete-range-brush\":a,u=e.cleared;return Jr({selectionInfo:t,chart:n,document:r,eventName:void 0!==u&&u?void 0:i,componentName:l,emit:\"areaClear\",brushName:e.brushName})}function eo(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.eventName,i=void 0===o?\"continuousRange\":o,a=e.componentName,l=void 0===a?\"continuous-range-brush\":a,u=e.cleared;return Jr({selectionInfo:t,chart:n,document:r,eventName:void 0!==u&&u?void 0:i,componentName:l,brushName:e.brushName})}function to(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.componentName,i=void 0===o?\"minor-range-brush\":o,a=e.eventName,l=void 0===a?\"minorRange\":a,u=e.cleared,c=void 0!==u&&u,s=e.brushName,f=Jr({selectionInfo:t,chart:n,document:r,eventName:c?void 0:l,componentName:i,brushName:void 0!==s&&s});if(f){var d=f.settings.settings,p=d.scale,h=d.brush,m=n.scale(p).data().fields.map((function(e){return e.id()})),v=n.brush(h),y=v.brushes().filter((function(e){return\"range\"===e.type&&m.some((function(t){return t===e.id}))}));v&&y.length&&y.forEach((function(e){v.removeRanges(e.brush.ranges().map((function(t){return{key:e.id,range:t}})))}))}}function no(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.selections,i=e.eventName,a=void 0===i?\"xAxis\":i,l=e.cleared;Jr({selectionInfo:t,chart:n,document:r,eventName:void 0!==l&&l?void 0:a,componentName:\"\".concat(a,\"-range-brush\"),emit:\"areaClear\",brushName:!1})&&o.clear()}function ro(e){var t=e.chart,n=e.selectionInfo,r=e.selections,o=e.events,i=void 0===o?[\"tap\"]:o,a=e.brushNames,l=void 0===a?[]:a;if(n&&i.includes(n.event)){var u=n.currentComponent;n.previousComponent!==u&&(r.clear(),l.forEach((function(e){return t.brush(e).end()})))}}function oo(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.selections,i=e.eventName,a=void 0===i?\"legendRange\":i,l=e.componentName,u=void 0===l?\"legend-range-brush\":l,c=e.cleared,s=void 0!==c&&c,f=e.brushName;Jr({selectionInfo:t,chart:n,document:r,eventName:s?void 0:a,componentName:u,brushName:void 0!==f&&f})&&o.clear()}var io=[\"chart\",\"document\",\"selections\",\"selectionInfo\"],ao=function(e){e.chart,e.document,e.selections,e.selectionInfo;var t=l(e,io);t.clearDiscrete(),t.clearContinuous(),t.clearMinor(),t.clearRange(),t.clearTap(),t.clearLegend()};function lo(e){var n=e.selectionEvents,r=e.selections,o=e.selectionInfo,i=e.clear,a=e.chart,l=e.document,u=n.start,c={selections:r,selectionInfo:o,chart:a,document:l},s=function(e){return Object.assign(o,e||{})},f=function(e){var n=e.event,r=e.components;return function(){return function(e){var n=e.selectionInfo,r=void 0===n?{}:n,o=e.setSelectionInfo,i=e.clear,a=e.event,l=e.components,u=void 0===l?[]:l;o(t(t({},r),{},{event:a,components:u.map((function(e){return e.key})).filter(Boolean)})),i()}({event:n,components:r,clear:i,chart:a,selectionInfo:o,setSelectionInfo:s})}};return\"function\"==typeof u?function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];u(t(t({defaultFunc:f({event:e,components:n}),setSelectionInfo:s,clear:i},c),{},{event:e,components:n}))}:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];f({event:e,components:t})()}}function uo(e){var t,n=e.lasso;null!=n&&null!==(t=n.active)&&void 0!==t&&t.call(n)&&(null==n||n.action(!1))}function co(e){var n,r=e.chart,o=e.selectionInfo,i=e.selectionActions,a=e.actions,l=void 0===a?{}:a,c=e.selections,s=e.selectionEvents;if(!1===i||!1===s)return function(){};var f=i.reset,d=void 0===f?uo:f,p=i.clear,h=!1!==p&&function(e){var n=e.clear,r=void 0===n?ao:n,o=e.selections,i=e.selectionInfo,a=e.chart;return function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).cleared,n={selections:o,selectionInfo:i,chart:a,document:document,cleared:e};return r(t({clearDiscrete:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Qr(t(t({},n),e))},clearContinuous:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return eo(t(t({},n),e))},clearMinor:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return to(t(t({},n),e))},clearRange:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return no(t(t({},n),e))},clearTap:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ro(t(t({},n),e))},clearLegend:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return oo(t(t({},n),e))}},n))}}({clear:p,selections:c,selectionInfo:o,chart:r}),m=function(e){var t=e.chart,n=e.actions,r=e.reset,o=e.clear,i=!1,a={deactivated:function(e){var t=(n||{}).lasso;r({e:e,lasso:void 0!==t&&t})},canceled:function(e){var i=(n||{}).lasso;r({e:e,lasso:void 0!==i&&i}),o({e:e,chart:t,document:document})},cleared:function(e){i||(i=!0,o({e:e,chart:t,document:document,cleared:!0}),i=!1)}};return!1===r&&delete a.deactivated,!1===o&&delete a.cleared,!1===r&&!1===o&&delete a.canceled,a}({chart:r,clear:h,reset:d,actions:l}),v={};Object.entries(m).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];v[n]=function(e,t){return t?function(n){return t({event:n,defaultFunc:e})}:e}(r,s[n])}));var y=lo({selectionEvents:s,selections:c,selectionInfo:o,clear:h,chart:r,document:document});return null==l||null===(n=l.select)||void 0===n||n.on(\"start\",y),Object.entries(v).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];null==c||c.on(n,r)})),function(){var e;null==l||null===(e=l.select)||void 0===e||e.removeListener(\"start\",y),Object.entries(v).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];null==c||c.removeListener(n,r)}))}}function so(e){var t=e.chart,n=e.selectionActions,r=e.brush,o=e.actions,i=e.selectionInfo,a=e.selections,l=e.selectionEvents,c=function(e){var t=e.brush,n=e.chart,r=e.selectionInfo,o=e.brushEvents,i=void 0===o?{}:o,a=Object.entries(i).map((function(e){var o=u(e,2),i=o[0],a=o[1],l=function(){return a({chart:n,selectionInfo:r})};return t.on(i,l),[i,l]}));return function(){a.forEach((function(e){var n=u(e,2),r=n[0],o=n[1];t.removeListener(r,o)}))}}({brush:r,chart:t,selectionInfo:i,brushEvents:e.brushEvents}),s=co({chart:t,selectionInfo:i,selectionActions:n,actions:o,selections:a,selectionEvents:l}),f=function(e){var t=e.actions;if(null==t||!t.lasso)return function(){};var n=!1,r=function(e){n||e.key!==jr||(t.lasso.action(!0),n=!0)},o=function(e){e.key===jr&&(t.lasso.action(!1),n=!1)};return document.addEventListener(\"keydown\",r),document.addEventListener(\"keyup\",o),function(){document.removeEventListener(\"keydown\",r),document.removeEventListener(\"keyup\",o)}}({actions:o});return function(){c(),s(),f()}}var fo=[{key:\"qHyperCube/qDimensionInfo/0:numeric\",includeMax:!1}];function po(e){var t=e.chart,n=e.actions,r=e.selections,o=e.picassoQ,i=e.config,a=i.allowSimultaneous,l=void 0!==a&&a,s=i.majorScale,f=void 0===s?void 0:s,d=i.selectionActions,p=void 0===d?{}:d,h=p.clear,m=p.reset,v=i.selectionEvents,y=void 0===v?{deactivated:void 0,canceled:void 0,cleared:void 0,start:void 0}:v,g=i.brushEvents,b=void 0===g?{}:g,x=i.brushName,q=void 0===x?\"selection\":x,w=i.brushMaxListeners,M=void 0===w?20:w,k=i.brushRanges,S=void 0!==k&&k,C=i.interceptors,D=void 0===C?{}:C,I=i.selectionsFn,O=void 0===I?o.selections:I,E=t.brush(q);if(\"number\"==typeof M&&E.setMaxListeners(M),S){var A=!0===S?fo:S;E.configure({ranges:A})}var N={canSelect:!0,getIsSelectionLocked:!1,isInnerDimensionLocked:!1,lockedDimensions:[],singleSelectIndex:0,selectionInfo:{colorField:void 0,components:[],event:void 0,currentComponent:void 0,previousComponent:void 0}},L=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.selections,r=t.brush,o=t.majorScale,i=t.actions,a=t.selectionsFn,l=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).path,u=void 0===l?\"/qHyperCubeDef\":l;if(!n)return{layout:function(){},filteredFields:function(){},allowSimultaneous:function(){},release:function(){}};var c=++$r,s=null,f={dimensions:[],measures:[]},d=[],p={};n.on=n.on.bind(n),n.isActive=n.isActive.bind(n),n.addListener=n.addListener.bind(n),n.removeListener=n.removeListener.bind(n);var h=Fr({brush:r,getConfig:function(){return{layout:s,allowSimultaneous:d}}}),m=h.rangeInterceptor,v=h.interceptor;r.intercept(\"set-ranges\",m),r.intercept(\"toggle-ranges\",m),r.intercept(\"toggle-values\",v),r.intercept(\"set-values\",v),r.intercept(\"add-values\",v),r.on(\"start\",(function(){return n.begin(u)}));var y={activate:function(){},deactivated:function(){return r.end()},cleared:function(){return r.clear()},canceled:function(){return r.end()}};Wr(n,y);var g=null==o||null===(e=o.max)||void 0===e?void 0:e.call(o);return null!=i&&i.select?(i.select.on(\"start\",(function(){var e;r.start(),\"function\"==typeof i.select.getBrushOptions&&(p=(e=i.select).getBrushOptions.apply(e,arguments))})),i.select.on(\"end\",(function(){var e=a(r,p,s),t=zr({layout:s,filtered:f});e.forEach((function(e){var r=Br({selection:e,fieldMap:t});Zr(r,i.select.brushSelectionIncludeMax,g),n.select(r)}))}))):r.on(\"update\",(function(){var e=a(r,p,s),t=zr({layout:s,filtered:f});e.forEach((function(e){n.select(Br({selection:e,fieldMap:t}))}))})),0===Yr.length&&Kr(),Yr.push({key:c,selections:n}),{layout:function(e){s=e},filteredFields:function(e){f=e},allowSimultaneous:function(e){d=e},release:function(){s=null;var e=Yr.indexOf(Yr.filter((function(e){return e.key===c}))[0]);-1!==e&&Yr.splice(e,1),Yr.length||Gr(),Xr(n,y)}}}({brush:E,majorScale:f,actions:n,selections:r,picassoQ:o,selectionsFn:O});!function(e){var t=e.brush,n=e.interceptors,r=void 0===n?{}:n;Object.entries(r).forEach((function(e){var n=u(e,2),r=n[0],o=n[1];(Array.isArray(o)?o:[o]).forEach((function(e){t.intercept(r,e)}))}))}({brush:E,interceptors:D});var T=so({chart:t,brush:E,actions:n,selections:r,selectionInfo:N.selectionInfo,selectionActions:{clear:h,reset:m},selectionEvents:y,brushEvents:b});if(l){var P=!0===l?c(Array(15)).map((function(e,t){return\"qHyperCube/qMeasureInfo/\".concat(t)})):l;L.allowSimultaneous(P)}return{unbindEvents:T,state:N,picassoSelections:L,brush:E}}var ho=[\"colorField\",\"useLegendCube\"];function mo(e){var n=e.chart,r=e.selections,o=e.actions,i=void 0!==o&&o,a=e.config,u=void 0===a?{}:a,c=po({chart:n,actions:i,selections:r,picassoQ:Ir,config:u}),s=c.unbindEvents,f=c.state,d=c.picassoSelections,p=c.brush,h=u.custom,m=void 0===h?{}:h,v=u.legendAlias,y=void 0===v?void 0:v,g=u.setBrushAliases,b=void 0===g?Nr:g;return{getIsDimensionLocked:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return f.lockedDimensions[e]},getIsSelectionLocked:function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return null!==(e=null==r||null===(t=r.isLocked)||void 0===t?void 0:t.call(r))&&void 0!==e?e:Ar(n)},getIsSingleSelect:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f.singleSelectIndex;return f.singleSelectDimensions[e]},getCanSelect:function(){return f.canSelect},getSelectionInfo:function(){return f.selectionInfo},setLayout:function(e){var t=Er({selections:r,picassoSelections:d,layout:e});Object.assign(f,t)},setFilteredFields:function(e){d.filteredFields(e)},setBrushAliases:function(e){var n=e.colorField,r=e.useLegendCube,o=void 0!==r&&r,i=l(e,ho),a=t({useLegendCube:o,colorField:n,brush:p,legendAlias:y},i);b(t(t({},a),{},{defaultFunc:function(){return Nr(a)}}))},destroy:function(){s(),d.release()},custom:t({},m)}}var vo=\"'Source Sans Pro', 'Arial', 'sans-serif'\",yo=\"#333333\",go=\"#595959\",bo=\"#737373\",xo=\"#cccccc\",qo=\"#e6e6e6\";function wo(e){var t={};return[].concat(c(e),c([[\"\",\"\",\"color\"],[\"object\",\"\",\"fontFamily\"],[\"object\",\"axis.label.name\",\"color\",go],[\"object\",\"axis.label.name\",\"fontFamily\",vo],[\"object\",\"axis.label.name\",\"fontSize\",\"12px\"],[\"object\",\"axis.line.major\",\"color\",xo],[\"object\",\"axis.line.minor\",\"color\",qo],[\"object\",\"axis.title\",\"color\"],[\"object\",\"axis.title\",\"fontFamily\",vo],[\"object\",\"axis.title\",\"fontSize\",\"13px\"],[\"object\",\"grid.line.highContrast\",\"color\",qo],[\"object\",\"grid.line.major\",\"color\",xo],[\"object\",\"grid.line.minor\",\"color\",qo],[\"object\",\"label.value\",\"color\",go],[\"object\",\"label.value\",\"fontFamily\",vo],[\"object\",\"label.value\",\"fontSize\",\"12px\"],[!1,\"label.value\",\"darkColor\",go],[!1,\"label.value\",\"lightColor\",qo],[\"object\",\"outOfRange\",\"color\",\"#999\"],[\"object\",\"legend.title\",\"color\",yo],[\"object\",\"legend.title\",\"fontFamily\",vo],[\"object\",\"legend.title\",\"fontSize\",\"15px\"],[\"object\",\"legend.label\",\"color\",go],[\"object\",\"legend.label\",\"fontFamily\",vo],[\"object\",\"legend.label\",\"fontSize\",\"13px\"],[\"object\",\"referenceLine.label.name\",\"color\",yo],[\"object\",\"referenceLine.label.name\",\"fontFamily\",vo],[\"object\",\"referenceLine.label.name\",\"fontSize\",\"12px\"],[\"object\",\"referenceLine.outOfBounds\",\"color\",qo],[\"object\",\"referenceLine.outOfBounds\",\"fontFamily\",vo],[\"object\",\"referenceLine.outOfBounds\",\"fontSize\",\"12px\"],[\"object\",\"referenceLine.outOfBounds\",\"backgroundColor\",bo,function(e){return\"transparent\"===e?bo:e}]])).reduce((function(e,n){var r=\"\".concat(n[0],\"-\").concat(n[1],\"-\").concat(n[2],\"}\");return t[r]||(t[r]=!0,e.push(n)),e}),[]).sort((function(e,t){return(e[0].split?e[0].split(\".\").length:0)-(t[0].split?t[0].split(\".\").length:0)}))}var Mo=function(e){return e};function ko(e){var t=e.theme,n=e.id,r=e.transform,o=e.extend,i=e.matrix,a={},l=r.reduce((function(e,t){var n=u(t,2),r=n[0],o=n[1];return e[r]=o,e}),{});return i.forEach((function(e){var r=u(e,5),o=r[0],i=r[1],c=r[2],s=r[3],f=r[4],d=void 0===f?function(e){return e}:f,p=function(e){var t=e.theme,n=e.base,r=e.path,o=e.attribute,i=e.defaultValue,a=void 0===i?void 0:i;if(!t||!1===n)return a;var l=t.getStyle(n,r,o);return void 0===l?a:l}({theme:t,base:\"object\"===o&&n?\"\".concat(\"object\",\".\").concat(n):o,path:i,attribute:c,defaultValue:s}),h=(l[\"\".concat(i,\".\").concat(c)]||Mo)(d(p));qt(a,[i,c].filter(Boolean).join(\".\"),h)})),o.forEach((function(e){var t=u(e,2),n=t[0],r=t[1];qt(a,n,r)})),a}function So(e){var t=e.theme,n=e.config,r=void 0===n?{}:n,o=r.id,i=r.resolve,a=void 0===i?[]:i,l=r.transform,u=void 0===l?[]:l,c=r.extend,s=void 0===c?[]:c,f={theme:t,matrix:wo(a),styles:void 0};return f.styles=ko({theme:t,id:o,transform:u,extend:s,matrix:f.matrix}),{getStyles:function(){return f.styles},getTheme:function(){return f.theme},setTheme:function(e){f.theme=e,f.styles=ko({theme:e,id:o,transform:u,extend:s,matrix:f.matrix})}}}var Co={NOOP:function(){},FALSE:function(){return!1},ARRAY:function(){return[]},OBJECT:function(){return{}}};var Do=\"chart-modules-tooltip\",Io=\"#\".concat(Do);function Oo(){if(!document.querySelector(Io)){var e=document.createElement(\"div\");e.id=Do,e.style.overflow=\"hidden\",e.style.position=\"fixed\",e.style.pointerEvents=\"none\",e.style.left=\"0px\",e.style.top=\"0px\",e.style.width=\"100%\",e.style.height=\"100%\",e.style.zIndex=1020,document.body.appendChild(e)}}function Eo(e){return{show:!0,key:e.key,type:\"tooltip\",layout:{displayOrder:3},beforeMount:function(){Oo()},beforeUpdate:function(){Oo()},destroyed:function(){var e;null!=(e=document.querySelector(Io))&&e.parentElement&&e.childElementCount<1&&e.parentElement.removeChild(e)},settings:{appendTo:function(){return document.querySelector(Io)},direction:e.rtl?\"rtl\":\"ltr\",duration:e.duration},style:{arrow:{color:\"#404040\"},content:{display:\"table\",\"border-spacing\":\"4px\",background:\"rgba(64, 64, 64, 0.9)\",opacity:\"1\",fontSize:\"13px\",fontFamily:\"'Source Sans Pro', 'Arial', 'sans-serif'\",\"empty-cells\":\"show\"},cell:{\"max-width\":\"180px\",\"word-break\":\"break-word\",\"word-wrap\":\"break-word\",\"overflow-wrap\":\"break-word\",hyphens:\"auto\"}}}}var Ao=\"position\";var No={bar:\"rect\",diamond:\"path\",point:\"circle\",square:\"rect\",triangle:\"path\",\"n-polygon\":\"path\",slice:\"path\"},Lo=function(e){return e.data.value},To=function(e){var t,n=e.data;return null==n||null===(t=n.major)||void 0===t?void 0:t.value};function Po(e){var t=e.chart,n=e.expando,r=e.nodes,o=e.collectConfig,i=e.collectibles,a=e.meta,l=o.from,s={chart:t,expando:n,nodes:r,collectConfig:o,collectibles:i,meta:a};switch(\"function\"==typeof l?\"custom\":l){case\"single\":return function(e){var t=u(e.nodes,1)[0];return[\"container\"===t.type&&t.children[0]||t]}(s);case\"position\":return function(e){var t=e.chart,n=e.collectibles,r=e.meta;return t.shapesAt(r.position.absolute,{components:n.map((function(e){return{key:e.key}}))})}(s);case\"dimension\":return function(e){var t=e.chart,n=e.nodes,r=e.collectConfig,o=e.collectibles,i=u(n,1)[0],a=r.filter,l=\"function\"==typeof a?a:function(){return!0},s=r.by,f=void 0===s?Lo:s;return o.reduce((function(e,n){var r=n.major,o=void 0===r?To:r,a=No[n.type]||n.type;return e.push.apply(e,c(t.findShapes(a).filter((function(e){return e.key===n.key&&e.data&&o({data:e.data})===f({data:i.data})})))),e}),[]).filter(l)}(s);case\"radius\":return function(e){var t=e.chart,n=e.nodes,r=e.collectConfig,o=e.collectibles,i=e.meta,a=u(n,1)[0].localBounds,l=r.distance,c=r.filter,s=\"function\"==typeof c?c:function(){return!0},f=o.map((function(e){return e.key}));return t.shapesAt({cx:i.position.absolute.x,cy:i.position.absolute.y,r:l||Math.max(a.width,a.height)},{components:f.map((function(e){return{key:e}}))}).filter(s)}(s);case\"custom\":return function(e){var t=e.chart,n=e.expando,r=e.nodes,o=e.collectConfig,i=e.meta;return o.from({chart:t,expando:n,nodes:r,meta:i})}(s);default:return[]}}var jo=Number.MAX_VALUE;function Fo(e){var t=e.nodes.reduce((function(e,t){var n=t.bounds;return e.xMin=Math.min(e.xMin,n.x,n.x+n.width),e.yMin=Math.min(e.yMin,n.y,n.y+n.height),e.xMax=Math.max(e.xMax,n.x,n.x+n.width),e.yMax=Math.max(e.yMax,n.y,n.y+n.height),e}),{xMin:jo,xMax:-jo,yMin:jo,yMax:-jo}),n=t.xMin,r=t.xMax,o=t.yMin;return{x:n,y:o,width:r-n,height:t.yMax-o}}function Ho(e){var t=e.chart,n=e.config,r=e.expando,o=e.placementConfig,i=e.hovered,a=e.collected,l=e.meta,s=function(e){for(var t=e.chart,n=e.config,r=e.expando,o=e.placementConfig,i=e.hovered,a=e.collected,l=e.meta,s=u(i,1)[0],f=Array.isArray(o)?o:[o],d={bounds:s.bounds,key:s.key},p=Fo({nodes:a}),h=0;h<f.length;h++){var m=f[h];if(\"function\"==typeof m){var v=m({chart:t,expando:r,hovered:i,collected:c(a),meta:l,collectedBounds:p,combineBounds:Fo});if(v)return v}if(\"trigger\"===m)return d;if(\"collectible\"===m){var y=n.main.placements.collectible;return{bounds:\"function\"==typeof y?y({collected:c(a)}):p,key:a[0].key}}}return d}({chart:t,config:n,expando:r,placementConfig:o,hovered:i,collected:a,meta:l}),f=s.bounds,d=s.key,p=u(a,1)[0].desc;return[{bounds:f,nodes:a,data:a.map((function(e){return e.data})),key:d,meta:l,desc:p}]}function Ro(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.nodes;if(!i.length)return[];var a=u(i,1)[0].key,l=n.main.collectibles;if(!l.length)return[];var c=n.main.triggers.find((function(e){return-1!==e.keys.indexOf(a)}))||{},s=c.collect,f=c.placement;if(!s||!s.from||!f)return[];var d={triggerer:a,position:o.get(Ao)},p=(Po({chart:t,expando:r,nodes:i,collectConfig:s,collectibles:l,meta:d})||[]).map((function(e){return e.children.length?e.children[0]:e}));return p.length?Ho({chart:t,config:n,expando:r,placementConfig:f,hovered:i,collected:p,meta:d}):[]}var zo=\"[־׀׃׆א-״߀-ߪߴ-ߵߺ-ࠕࠚࠤࠨ࠰-ࡘ࡞‏יִײַ-ﬨשׁ-ﭏ]\",Vo=\"[؈؋؍؛-ي٭-ٯٱ-ەۥ-ۦۮ-ۯۺ-܍ܐܒ-ܯݍ-ޥޱﭐ-ﴽﵐ-﷼ﹰ-ﻼ]\",_o=new RegExp(\"[A-Za-zªµºÀ-ÖØ-öø-ʸʻ-ˁː-ˑˠ-ˤˮͰ-ͳͶ-ͽΆΈ-ϵϷ-҂Ҋ-։ः-हऻऽ-ीॉ-ौॎ-ॐक़-ॡ।-ॿং-হঽ-ীে-ৌৎ-ৡ০-ৱ৴-৺ਃ-ਹਾ-ੀਖ਼-੯ੲ-ੴઃ-હઽ-ીૉ-ૌૐ-ૡ૦-૯ଂ-ହଽ-ାୀେ-ୌୗ-ୡ୦-୷ஃ-ிு-ௌௐ-௲ఁ-ఽు-ౄౘ-ౡ౦-౯౿-ಹಽ-ೋೕ-ೡ೦-ീെ-ൌൎ-ൡ൦-ෆා-ෑෘ-ะา-ำเ-ๆ๏-ະາ-ຳຽ-ໆ໐-༗༚-༴༶༸༾-ཬཿ྅ྈ-ྌ྾-࿅࿇-ာေးျ-ြဿ-ၗၚ-ၝၡ-ၰၵ-ႁႃ-ႄႇ-ႌႎ-ႜ႞-ፚ፠-ᎏᎠ-Ᏼᐁ-ᙿᚁ-ᚚᚠ-ᜑᜠ-ᜱ᜵-ᝑᝠ-ᝰក-ាើ-ៅះ-ៈ។-៚ៜ០-៩᠐-ᢨᢪ-ᤜᤣ-ᤦᤩ-ᤱᤳ-ᤸ᥆-᧚ᨀ-ᨖᨙ-ᩕᩗᩡᩣ-ᩤᩭ-ᩲ᪀-᪭ᬄ-ᬳᬵᬻᬽ-ᭁᭃ-᭪᭴-᭼ᮂ-ᮡᮦ-ᮧ᮪-ᯥᯧᯪ-ᯬᯮ᯲-ᰫᰴ-ᰵ᰻-᱿᳓᳡ᳩ-ᳬᳮ-ᶿḀ-ᾼιῂ-ῌῐ-Ίῠ-Ῥῲ-ῼ‎ⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎ-⅏Ⅰ-ↈ⌶-⍺⎕⒜-ⓩ⚬⠀-⣿Ⰰ-ⳤⳫ-ⳮⴀ-⵰ⶀ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ㆺㇰ-㈜㈠-㉏㉠-㉻㉿-㊰㋀-㋋㋐-㍶㍻-㏝㏠-㏾㐀-䶵一-ꒌꓐ-ꘌꘐ-ꙮꚀ-ꛯ꛲-꛷Ꜣ-ꞇ꞉-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠤꠧ꠰-꠷ꡀ-ꡳꢀ-ꣃ꣎-꣙ꣲ-ꤥ꤮-ꥆꥒ-ꥼꦃ-ꦲꦴ-ꦵꦺ-ꦻꦽ-ꨨꨯ-ꨰꨳ-ꨴꩀ-ꩂꩄ-ꩋꩍ-ꪯꪱꪵ-ꪶꪹ-ꪽꫀꫂ-ꯤꯦ-ꯧꯩ-꯬꯰-ﬗA-Za-zヲ-ᅵ]\"),Bo=new RegExp(zo),Yo=new RegExp(Vo),$o=function(e){return _o.test(e)},Uo=function(e){return Bo.test(e)||Yo.test(e)};function Ko(e){for(var t=e?e.length:0,n=0;n<t;n++){var r=e[n];if($o(r))return\"ltr\";if(Uo(r))return\"rtl\"}return\"ltr\"}function Go(e){var n=e.visibility;return{type:\"divider\",content:[{content:\"\",style:{\"background-image\":\"linear-gradient(transparent 8px, rgba(255, 255, 255, 0.4) 8px, rgba(255, 255, 255, 0.4) 9.2px, transparent 9.2px)\",height:\"17px\"},colspan:2}],visibility:t(t({},{count:!1}),n)}}function Wo(e){var n=e.config,r=e.h,o=e.context,i=e.nodes,a=e.property,l=e.filter,c=e.visibility,s=e.fillColor,f=n.rtl,d={type:\"color\",label:void 0,value:void 0,content:[],filter:l,visibility:t(t({},{count:!0}),c)},p=n.getColorSettings();if(\"color\"===p.type||!p.fieldType)return d;var h=u(i,1)[0];if(d.value=function(e){var t=e.config,n=e.context,r=e.property,o=e.node,i=o.data[r];if(i){if(-3===o.data.value)return o.data.label;var a=n.resources.dataset(i.source.key).field(i.source.field).formatter(),l=i.value,u=i.label,c=t.getColorSettings();if(a&&\"measure\"===c.fieldType)return Number.isNaN(+l)?\"-\":a(i.value);var s=u||l;return void 0===s||Number.isNaN(s)||\"NaN\"===s?\"-\":s}}({config:n,context:o,property:a,node:h}),void 0===d.value)return d;d.label=function(e){var t=e.config,n=e.context,r=e.property,o=e.node,i=t.getColorSettings();if(i.label)return i.label;var a=o.data[r];if(a&&\"color\"!==i.type){var l=n.resources.dataset,u=a.source,c=u.key,s=u.field;return l(c).field(s).title()}}({config:n,context:o,property:a,node:h});var m=null!=s?s:function(e){var t=e.node.attrs;return(null==t?void 0:t.fill)||\"#ddd\"}({node:h}),v=r(\"div\",{style:{display:\"inline-block\",width:10,height:10,\"background-color\":m,margin:\"0 8px\"}});return d.content.push({content:f?[\":\",d.label]:[d.label,\":\"],style:{\"text-align\":f?\"right\":\"left\",direction:Ko(d.label)}},{content:f?[d.value,v]:[v,d.value],style:{\"text-align\":f?\"left\":\"right\",\"vertical-align\":\"middle\",direction:Ko(d.value)}}),d}function Xo(e){var n=e.config,r=e.h,o=e.context,i={section:function(e){return function(e){return{type:\"section\",content:e.content}}({content:e.content})},text:function(e){var r=e.value,o=e.style,i=e.visibility;return function(e){var n=e.config,r=e.value,o=e.style,i=void 0===o?{}:o,a=i.bold,l=void 0!==a&&a,u=i.italic,c=void 0!==u&&u,s=e.visibility;return{type:\"text\",content:[{content:r,style:{\"font-weight\":l?\"bold\":\"normal\",\"font-style\":c?\"italic\":\"normal\",\"text-align\":n.rtl?\"right\":\"left\",direction:Ko(r)},colspan:2}],visibility:t(t({},{count:!0}),s)}}({config:n,value:r,style:o,visibility:i})},measure:function(e){var o=e.label,i=e.value,a=e.color,l=e.style,u=e.survive,c=e.visibility;return function(e){var n,r,o,i,a=e.config,l=e.h,u=e.label,c=e.value,s=e.color,f=e.style,d=e.survive,p=e.visibility,h=a.rtl,m=l(\"div\",{style:{display:\"inline-block\",width:10,height:10,\"background-color\":s,margin:\"0 8px\"}});return{type:\"measure\",label:u,value:c,content:[{content:h?[\":\",u]:[u,\":\"],style:{\"text-align\":h?\"right\":\"left\",\"font-weight\":null!=f&&null!==(n=f.label)&&void 0!==n&&n.bold?\"bold\":\"normal\",\"font-style\":null!=f&&null!==(r=f.label)&&void 0!==r&&r.italic?\"italic\":\"normal\",direction:Ko(u)}},{content:s?h?[c,m]:[m,c]:c,style:{\"text-align\":h?\"left\":\"right\",\"vertical-align\":\"middle\",\"font-weight\":null!=f&&null!==(o=f.value)&&void 0!==o&&o.bold?\"bold\":\"normal\",\"font-style\":null!=f&&null!==(i=f.value)&&void 0!==i&&i.italic?\"italic\":\"normal\",direction:Ko(c)}}],survive:t(t({},{color:!1,duplicate:!1}),d),visibility:t(t({},{count:!0}),p)}}({config:n,h:r,label:o,value:i,color:a,style:l,survive:u,visibility:c})},divider:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.visibility;return Go({visibility:t})},row:function(e){return function(e){var n=e.content,r=e.style,o=e.colspan,i=e.visibility;return{type:\"row\",content:[{content:n,style:r,colspan:o}],visibility:t(t({},{count:!0}),i)}}({content:e.content,style:e.style,colspan:e.colspan,visibility:e.visibility})},raw:function(e){return function(e){var n=e.value,r=e.visibility;return{type:\"raw\",content:n,visibility:t(t({},{count:!0}),r)}}({value:e.value,visibility:e.visibility})},color:function(e){var t=e.nodes,i=e.property,a=e.filter,l=void 0===a||a,u=e.visibility,c=e.fillColor;return Wo({config:n,h:r,context:o,nodes:t,property:i,filter:l,visibility:u,fillColor:c})}};return i}function Zo(e){var t=e.translator,n=e.config,r=e.context,o=e.templates,i=n.main.layout,a=i.rows,l=i.grouping,u=i.single,c=function(e){var t=e.limit,n=e.grouping,r=e.single,o={count:0,overflow:0,index:{started:void 0,group:void 0}};return{process:function(e){var i=e.visibility,a=e.index;if(r&&0!==a)return n?(o.index.started!==a&&o.index.group!==a&&(o.overflow++,o.index.group=a),!1):(o.overflow++,!1);if(o.count>=t){if(!n)return o.overflow++,!1;if(o.index.started!==a)return o.index.group!==a&&(o.overflow++,o.index.group=a),!1}return i.count&&o.count++,n&&(o.index.started=a),!0},overflow:function(){return o.overflow}}}({limit:a,grouping:l,single:\"function\"==typeof u?u({meta:r.node.meta,sections:o}):u}),s=o.reduce((function(e,t,n){var r=t.type,i=t.content;\"section\"===r&&(void 0===i?[]:i).forEach((function(t){c.process({visibility:t.visibility,index:n})&&e.push(t.content)}));var a=n===o.length-1;return\"divider\"!==r||a||c.process({visibility:t.visibility,index:n})&&e.push(t.content),e}),[]).filter((function(e){return e.length})),f=c.overflow();return f&&s.push(function(e){var t=e.translator,n=e.config,r=e.count,o=t?t.get(\"Object.ChartTooltip.NMore\",r):\"+\".concat(r,\" more\"),i=Ko(o);return[{content:o,style:{\"font-weight\":\"bold\",\"text-align\":n.rtl?\"right\":\"left\",direction:i},colspan:2}]}({translator:t,config:n,count:f})),s}function Jo(e){var n=e.chart,r=e.translator,o=e.config,i=e.expando,a=e.h,l=e.data,s=e.style,f=u(l,1)[0],d=function(e){var t=e.config,n=e.nodes.reduce((function(e,n){var r=t.main.getGroupByValue({data:n.data});return e[r]||(e[r]={sorting:Object.keys(e).length,items:[]}),e[r].items.push(n),e}),{});return Object.keys(n).map((function(e){return n[e]})).sort((function(e,t){return e.sorting-t.sorting})).map((function(e){return e.items}))}({config:o,nodes:f.node.nodes}),p=function(e){var t=e.chart,n=e.config,r=e.expando,o=e.h,i=e.context,a=e.groups,l=i.node.meta,u=i.resources,s=u.dataset,f=u.formatter,d=Xo({config:n,h:o,context:i}),p=function(e){var t=e.dataset;return{dataset:{title:function(e,n){return t(e).field(n).title()}}}}({dataset:s}),h=a.map((function(e){var t=d.section({content:c((n.main.section({expando:r,h:o,nodes:e,dataset:s,formatter:f,meta:l,create:d,util:p})||[]).filter((function(e){var t;return null===(t=e.content)||void 0===t?void 0:t.length}))).filter(Boolean)});return t.content=function(e){var t=e.config,n=e.content,r=n.find((function(e){return\"color\"===e.type&&e.filter})),o=r?n.filter((function(e){return\"measure\"!==e.type||e.survive.color||e.label!==r.label||e.value!==r.value})):n;return t.main.showDuplicateMeasures?o:o.reduce((function(e,t){var n=t.type,r=t.survive;if(\"measure\"!==n||r.duplicate)return e.filtered.push(t),e;var o=\"\".concat(t.label,\"-\").concat(t.value);return e.memory[o]||(e.memory[o]=!0,e.filtered.push(t)),e}),{memory:{},filtered:[]}).filtered}({config:n,content:t.content}),t}));return n.main.sections({chart:t,expando:r,h:o,nodes:i.node.nodes,dataset:s,formatter:f,meta:l,create:d,util:p,sections:h}),h.filter(Boolean)}({chart:n,config:o,expando:i,h:a,context:f,groups:d}),h=Zo({translator:r,config:o,h:a,context:f,templates:p});return h.length?function(e){var n=e.h,r=e.style;return e.rows.map((function(e){return n(\"tr\",{},e.map((function(e){var o={style:t(t({},r.cell||{}),e.style||{}),class:e.class};return e.colspan&&(o.colspan=e.colspan),n(\"td\",o,e.content)})))}))}({h:a,style:s,rows:h}):function(e){var t=e.h;return t(\"tr\",{},t(\"td\",{style:{fontStyle:\"italic\",opacity:.75}},\"Empty\"))}({h:a})}function Qo(e){var t=e.chart,n=e.translator,r=e.config,o=e.expando,i=e.internal;if(!r.main.key)return!1;var a=wt(),l=Eo({key:r.main.key,rtl:r.rtl,duration:r.duration}),u=r.main.events.tooltip,c=u.afterShow,s=u.afterHide,f=function(){var e=a.get(\"collected\");return{expando:o,nodes:e.nodes,meta:e.meta}};return w(!0,l,{settings:{filter:function(e){return Ro({chart:t,config:r,expando:o,internal:i,nodes:e})},extract:function(e){return a.set(\"collected\",e.node),e},content:function(e){var i=e.h,a=e.data,l=e.style;return Jo({chart:t,translator:n,config:r,expando:o,h:i,data:a,style:l})},placement:function(e){var t=e.nodes;return r.main.placement({meta:t[0].meta})},afterShow:function(){return c(f())},afterHide:function(){return s(f())}},style:{arrow:{color:r.style.background},content:r.style}})}function ei(e){var n=e.config,r=n.legend.keys;if(!r.tooltip||!r.component)return!1;if(\"categorical\"!==n.getColorSettings().type)return!1;var o=Eo({key:r.tooltip,rtl:n.rtl,duration:n.duration});return w(!0,o,{settings:{filter:function(e){return e.filter((function(e){return e.data&&e.key===r.component}))},extract:function(e){return e},content:function(e){var n=e.h,r=e.data;return[n(\"tr\",{},[n(\"td\",{style:t(t({},e.style.cell||{}),{\"font-weight\":\"bold\",\"text-align\":\"left\"}),colspan:2},r[0].node.data.label)])]},placement:\"pointer\"},style:{arrow:{color:n.style.background},content:n.style}})}function ti(e){var t=e.config.main.triggers.reduce((function(e,t){return t.keys.forEach((function(n){var r=t.distance||0;e.distance[n]=r,e.distances.includes(r)||e.distances.push(r),e.key[n]=!0,e.keys[r]||(e.keys[r]=[]),e.keys[r].push(n)})),e}),{distance:{},distances:[],key:{},keys:{}});return function(e){return e.components.filter((function(e){return t.key[e.key]})).reduce((function(e,n){e.any=!0,e.components.push(n.key);var r=t.distance[n.key];return 0===r?e.position.push(n.key):(e.distances.includes(r)||(e.distances.push(r),e.distanceKeys[r]=[]),e.distanceKeys[r].push(n.key)),e}),{any:!1,components:[],position:[],distances:[],distanceKeys:{}})}}var ni=function(){return!0};function ri(e){var t=e.config.main.triggers.reduce((function(e,t){var n=t.filter;return t.keys.forEach((function(t){e[t]=\"function\"==typeof n?n:ni})),e}),{});return function(e){var n=t[e.key];return!n||n(e)}}function oi(e){var t=e.chart,n=e.event,r=e.component,o={absolute:{x:0,y:0},relative:{x:0,y:0}},i=t.element.getBoundingClientRect(),a=i.left,l=i.top;o.absolute.x=(void 0===n.clientX?Math.floor(n.srcEvent.clientX):n.clientX)-a,o.absolute.y=(void 0===n.clientY?Math.floor(n.srcEvent.clientY):n.clientY)-l;var u=t.component(r);if(u){var c=u.rect.computedInner;o.relative.x=o.absolute.x-c.x,o.relative.y=o.absolute.y-c.y}return o}function ii(e){var t=e.chart,n=e.filter,r=e.hits,o=e.position,i=[];if(r.position.length&&i.push.apply(i,c(t.shapesAt(o.absolute,{components:r.position.map((function(e){return{key:e}}))}).filter(n))),!i.length&&r.distances.length){var a=[];r.distances.forEach((function(e){a.push.apply(a,c(t.shapesAt({cx:o.absolute.x,cy:o.absolute.y,r:e},{components:r.distanceKeys[e].map((function(e){return{key:e}}))}).filter(n)))})),a.length&&i.push(function(e){var t=e.nodes,n=e.origin,r=t.find((function(e){return\"path\"===e.type}));if(r)return r;var o=function(e){var t=Math.abs(n.x-(e.localBounds.x+e.localBounds.width/2)),r=Math.abs(n.y-(e.localBounds.y+e.localBounds.height/2));return Math.sqrt(t*t+r*r)};return t.slice(1).reduce((function(e,t){var n=o(t);return n<e.distance&&(e.distance=n,e.node=t),e}),{node:t[0],distance:o(t[0])}).node}({nodes:a,origin:o.relative}))}return i}function ai(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.facade,l=n.delay.tap,s=ti({config:n}),f=ri({config:n}),d=n.main.triggers.reduce((function(e,t){return e.push.apply(e,c(t.keys)),e}),[]);return{key:\"event:\".concat(\"tooltipTap\"),type:\"Tap\",options:{event:\"tooltipTap\",enable:function(e,r){return!r||!!n.enable({event:r})&&t.componentsFromPoint({x:r.center.x,y:r.center.y}).filter((function(e){return-1!==d.indexOf(e.key)})).length>0}},recognizeWith:\"tap\",events:a({},\"tooltipTap\",(function(e){if(e.preventDefault(),\"mouse\"!==e.pointerType&&!n.main.suppress({event:e})){var a=t.component(n.main.key);if(a&&a.show){var c=t.componentsFromPoint({x:e.center.x,y:e.center.y}),d=s({components:c});if(d.any){var p=u(d.components,1)[0],h=oi({chart:t,event:e,component:p});o.set(Ao,h);var m=ii({chart:t,filter:f,hits:d,position:h});if(m.length){var v=m[0].key;n.main.events.tooltip.beforeShow({expando:r,event:e,collectNodes:function(){return i.collectNodes({nodes:m})},meta:{triggerer:v,position:h}}).then((function(){a.emit(\"show\",e,{nodes:m,delay:l})})).catch((function(){}))}else a.emit(\"hide\")}else a.emit(\"hide\")}}}))}}function li(e){var t=e.config,n=e.expando,r=e.internal,o=e.facade,i=t.main.events.tooltip.beforeShow,a=t.delay.hover,l={ongoing:{},latest:void 0};return function(e){var t=e.event,u=e.tooltip,c=e.nodes,s=function(e){var t=e.nodes;return JSON.stringify(t.map((function(e){var t;return{key:e.key,bounds:e.bounds,value:null===(t=e.data)||void 0===t?void 0:t.value}})))}({nodes:c});if(!l.ongoing[s]){l.ongoing[s]=!0,l.latest=s;var f=c[0].key;i({expando:n,event:t,collectNodes:function(){return o.collectNodes({nodes:c})},meta:{triggerer:f,position:r.get(Ao)}}).then((function(){s===l.latest&&u.emit(\"show\",t,{nodes:c,delay:a})})).catch((function(){u.emit(\"show\")})).finally((function(){delete l.ongoing[s],s===l.latest&&(l.latest=void 0)}))}}}function ui(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.facade,a=ti({config:n}),l=ri({config:n}),c=li({config:n,expando:r,internal:o,facade:i}),s=[n.main.key,n.legend.keys.tooltip].filter(Boolean),f=function(){s.forEach((function(e){var n=t.component(e);null!=n&&n.show&&n.emit(\"hide\")}))};return{type:\"native\",events:{mousemove:function(e){if(n.enable({event:e})&&!n.main.suppress({event:e})){var r=t.componentsFromPoint({x:e.clientX,y:e.clientY}),i=t.component(n.main.key);if(i&&i.show){var s=a({components:r});if(s.any){var f=u(s.components,1)[0],d=oi({chart:t,event:e,component:f});o.set(Ao,d);var p=ii({chart:t,filter:l,hits:s,position:d});if(!p.length)return void i.emit(\"hide\");c({event:e,tooltip:i,nodes:p})}else i.emit(\"hide\")}var h=n.legend;if(h.keys.tooltip&&h.keys.component){var m=t.component(h.keys.tooltip);m&&m.show&&(r.some((function(e){return e.key===h.keys.component}))?m.emit(\"show\",e):m.emit(\"hide\"))}}},mouseup:function(e){2===e.button&&f()},mouseleave:function(){n.main.events.interaction.mouseleave({expando:r}),f()},wheel:function(){f()}}}}function ci(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=function(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal;return{collectNodes:function(e){var i=e.nodes,a=u(Ro({chart:t,config:n,expando:r,internal:o,nodes:i}),1)[0];return(void 0===a?{nodes:[]}:a).nodes}}}({chart:t,config:n,expando:r,internal:o});return{gestures:[ai({chart:t,config:n,expando:r,internal:o,facade:i})],native:ui({chart:t,config:n,expando:r,internal:o,facade:i})}}function si(e){var t=e.chart,n=e.translator,r=function(e){var t=e.config;return w(!0,{},{rtl:!1,enable:Co.FALSE,getColorSettings:Co.OBJECT,style:{fontSize:void 0,fontFamily:void 0,color:void 0,background:void 0},delay:{hover:500,tap:0},duration:8e3,main:{key:void 0,suppress:Co.FALSE,getGroupByValue:Co.NOOP,collectibles:[],triggers:[],placement:function(){return{type:\"bounds\"}},placements:{collectible:\"combine\"},showDuplicateMeasures:!1,layout:{rows:7,grouping:!1,single:!1},section:Co.ARRAY,sections:Co.NOOP,events:{tooltip:{beforeShow:function(){return Promise.resolve()},afterShow:Co.NOOP,afterHide:Co.NOOP},interaction:{mouseleave:Co.NOOP}}},legend:{keys:{tooltip:void 0,component:void 0}}},void 0===t?{}:t)}({config:e.config}),o=wt(),i=wt(),a={components:void 0,interactions:void 0};return{getComponents:function(){return a.components||(a.components=function(e){var t=e.chart,n=e.translator,r=e.config;return[Qo({chart:t,translator:n,config:r,expando:e.expando,internal:e.internal}),ei({config:r})].filter(Boolean)}({chart:t,translator:n,config:r,expando:o,internal:i})),a.components},getInteractions:function(){return a.interactions||(a.interactions=ci({chart:t,config:r,expando:o,internal:i})),a.interactions},expando:o}}var fi=\"AVERAGE\",di=\"LINEAR\",pi=\"POLYNOMIAL2\",hi=\"POLYNOMIAL3\",mi=\"POLYNOMIAL4\",vi=\"EXPONENTIAL\",yi=\"LOG\",gi=\"POWER\";function bi(e){var t=e.dimValue,n=e.value,r=e.qTrendLine,o=r.qType,i=r.qCoeff,a={x:t,y:i[2]*Math.pow(n,2)+i[1]*n+i[0]};switch(o){case pi:return a;case hi:return a.y+=i[3]*Math.pow(n,3),a;case mi:return a.y+=i[4]*Math.pow(n,4)+i[3]*Math.pow(n,3),a;default:return a}}var xi={average:function(e){return{x:e.dimValue,y:e.qTrendLine.qCoeff[0]}},linear:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:r.qCoeff[1]*n+r.qCoeff[0]}},polynomial2:bi,polynomial3:bi,polynomial4:bi,exponential:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:Math.exp(r.qCoeff[0]+n*r.qCoeff[1])}},log:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:r.qCoeff[1]+r.qCoeff[0]*Math.log(n)}},power:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:Math.pow(10,r.qCoeff[0]+r.qCoeff[1]*Math.log(n)*Math.LOG10E)}}};function qi(e,t){for(var n=xi[t.qType.toLowerCase()],r=Math.max(1,e/500),o=1/0,i=-1/0,a=0;a<e;a+=r){var l=n({dimValue:null,value:a+1,qTrendLine:t}).y;o=Math.min(l,o),i=Math.max(l,i)}return{min:o,max:i}}function wi(e){return xi[e.qType.toLowerCase()]}function Mi(e,t){return e.meta.isContinuous?function(e,t){return{generate:function(e,n,r){var o=[],i=wi(e),a=t({qTrendLine:e,measureIndex:r}),l=a.min,u=a.max,c=(u-l)/100;if(c>0){for(var s=function(t){var a=i({dimValue:t,value:t,qTrendLine:e});if(a.layerId=n,a.measureIndex=r,a.dimValue=t,e.flipXY){var l=a.x;a.x=a.y,a.y=l,a.dimValue=a.x}o.push(a)},f=l,d=l;d<=u;d+=c)s(d),f=d;f!==u&&s(u)}return o},calculate:function(e,t){return wi(e)({dimValue:t,value:t,qTrendLine:e})},findMinMax:function(e,t){var n=this.generate(t).map((function(e){return e.y}));return{min:Math.min.apply(Math,c(n)),max:Math.max.apply(Math,c(n))}}}}(0,t):e.meta.mode.K?function(e){return{generate:function(t,n,r){for(var o=[],i=e.getDataPages()[0],a=i.qData[0].qSubNodes,l=i.qArea.qTop,u=xi[t.qType.toLowerCase()],c=0;c<a.length;c++){var s=a[c],f=u({dimValue:s.qElemNo,value:c+l+1,qTrendLine:t});f.layerId=n,f.measureIndex=r,f.dimValue=s.qText,o.push(f)}return o},findMinMax:qi}}(e):function(e){return{generate:function(t,n,r){for(var o=[],i=e.getDataPages()[0],a=i.qMatrix,l=i.qArea.qTop,u=xi[t.qType.toLowerCase()],c=0;c<a.length;c++){var s=a[c][0],f=c+l+1,d=u({dimValue:s.qElemNumber,value:f,qTrendLine:t});d.layerId=n,d.measureIndex=r,d.dimValue=s.qText,o.push(d)}return o},calculate:function(e,t,n){return(0,xi[e.qType.toLowerCase()])({dimValue:n,value:t,qTrendLine:e})},findMinMax:qi}}(e)}var ki={TYPES:{AVERAGE:\"properties.trendlines.types.average\",LINEAR:\"properties.trendlines.types.linear\",POLYNOMIAL2:\"properties.trendlines.types.polynomial2\",POLYNOMIAL3:\"properties.trendlines.types.polynomial3\",POLYNOMIAL4:\"properties.trendlines.types.polynomial4\",EXPONENTIAL:\"properties.trendlines.types.exponential\",LOG:\"properties.trendlines.types.logarithmic\",POWER:\"properties.trendlines.types.power\"},STYLE:{DASHED:\"properties.trendlines.style.dashed\"},TYPE:\"properties.trendlines.type\",HEADER:\"properties.trendlines\",ADD_BUTTON:\"properties.trendlines.button.add\"},Si={color:\"#f93f17\",index:9},Ci={x:NaN,y:NaN,dimValue:NaN,layerId:NaN,measureIndex:NaN},Di=function(e){var t=e.layoutService,n=e.getMinMax,r=e.colorModel,o=e.chart,i=e.translator,a=e.keys.colorScale,l=e.isEnabled,u=void 0===l?function(){return!0}:l,s=[Ci],f=[],d=[],p=Mi(t,n);t.getLayoutValue(\"qHyperCube.qMeasureInfo\",[]).forEach((function(e,t){Array.isArray(e.qTrendLines)&&(f.push.apply(f,c(e.qTrendLines)),d.push.apply(d,c(e.qTrendLines.map((function(){return t})))))}));var h=Mt((function(e){var t=(f[e]||{}).style,n=r.settings();if(t.autoColor){if(\"measure\"===n.mode){var i=d[e],l=o.scale(a)(i);return function(e){return xe(e).l<70}(l)?function(e){var t=xe(e);return t.l<30?t.l+=15:t.l<50?t.l+=10:t.l+=5,t.toString()}(l):function(e){var t=xe(e);return t.l-=5,t.toString()}(l)}return r.resolveUIColor(Si)}return t.paletteColor?r.resolveUIColor(t.paletteColor):\"none\"}));return{query:{hasTrendLines:function(){return!!f.length&&u()},getData:function(){return s},getStroke:h,getLineDash:function(e){return(f[e]||{}).style.lineDash},getLabel:function(e){return(f[e]||{}).label},getExpression:function(e){var t=(f[e]||{}).qExpression;return f[e].flipXY&&(t=t.replace(/[xy]/g,(function(e){return\"x\"===e?\"y\":\"x\"}))),t},isFlipped:function(e){return f[e].flipXY},getType:function(e){var t=(f[e]||{}).qType;return i.get(ki.TYPES[t])},getMinMax:function(){var e=1/0,n=-1/0;return f.forEach((function(r){var o=p.findMinMax(t.meta.size.y,r);e=Math.min(o.min,e),n=Math.max(o.max,n)})),{min:e,max:n}},getCalculatedValue:function(e,t,n){var r=f[e];return p.calculate(r,t,n)}},command:{update:function(){s.length=0,f.forEach((function(e,t){var n=p.generate(e,t,d[t]);s.push.apply(s,c(n))}))}}}},Ii={source:\"trend\",extract:{field:\"x\",props:{minor:{field:\"y\"},layer:{field:\"layerId\"},measureIndex:{field:\"measureIndex\"},dimValue:{field:\"dimValue\"}}}},Oi=function(e){var t=e.meta;return t.isContinuous?function(e){return(0,e.scale)(e.datum.value)}:t.isGroupedByMeasure?function(e){var t=e.scale,n=e.datum;return t([n.value,n.measureIndex.value])+t.bandwidth()/2}:function(e){var t=e.scale;return t(e.datum.value)+t.bandwidth()/2}},Ei=function(e,t){var n=t.animations,r=t.layoutService,o=t.trendLineModel,i=t.orientation;if(!o.query.hasTrendLines())return[];var a=function(e,t){var n=e.trendlines,r=e.majorScale,o=e.minorScale,i=t.animations,a=t.trendLineModel,l=t.layoutService,u=t.orientation,c=Oi(l);return{key:n,type:\"line\",layout:{dock:\"center\"},data:Ii,animations:i,settings:{connect:!0,orientation:u,coordinates:{major:{scale:r,fn:c},minor:{scale:o},layerId:{ref:\"layer\"}},layers:{curve:\"monotone\",line:{strokeWidth:2,stroke:function(e){var t=e.datum;return a.query.getStroke(t.layer.value)},strokeDasharray:function(e){var t=e.datum;return a.query.getLineDash(t.layer.value)}}}}}}(e,{animations:n,trendLineModel:o,layoutService:r,orientation:i}),l=[a];if(e.tooltipOverlay){var u=function(e,t){var n=e.majorScale,r=e.minorScale,o=e.tooltipOverlay,i=t.layoutService,a=\"horizontal\"===t.orientation,l={scale:n,fn:Oi(i)},u={scale:r,ref:\"minor\"};return{key:o,type:\"point\",layout:{dock:\"center\"},data:Ii,settings:{x:a?l:u,y:a?u:l,opacity:0,size:1,sizeLimits:{maxPx:8,minPx:8}}}}(e,{layoutService:r,orientation:i});l.push(u)}return l},Ai=function(e){e.style.dashed?e.style.lineDash=\"8, 4\":e.style.lineDash=\"\"},Ni=function(e){Ai(e),e.qMultiDimMode=\"Sum\",e.qXColIx=0};function Li(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Ti(e){return Math.pow(e.x,2)+Math.pow(e.y,2)}function Pi(e,t,n){var r=Li(n,e),o=Li(t,e),i=Ti(o);if(0===i)return e;var a,l,u,c,s=(l=o,((a=r).x*l.x+a.y*l.y)/i);return s<=0?e:s>=1?t:function(e,t){return{x:e.x+t.x,y:e.y+t.y}}(e,(c=s,{x:(u=o).x*c,y:u.y*c}))}function ji(e){var t,n,r=e.keys,o=e.model,i=e.chart,a=e.pos,l=e.lineNode,u=o,c=i.component(r.trendlines),s=i.scale(r.majorScale),f=i.scale(r.minorScale),d=l.data.layer.value,p=function(e,t){var n=1/0,r=null;if(1===e.length)return e[0];for(var o=0;o<e.length-1;++o){var i=Pi(e[o],e[o+1],t),a=Ti(Li(i,t));a<n&&(n=a,r=i)}return r}(l.data.points.map((function(e){return{x:s(e.dimValue.value)*c.rect.computed.width,y:f(e.minor.value)*c.rect.computed.height}})),a);return u.query.isFlipped(d)?(n=f.invert(p.y/c.rect.computed.height),t=u.query.getCalculatedValue(d,n).y,p.x=s(t)*c.rect.computed.width):(t=s.invert(p.x/c.rect.computed.width),n=u.query.getCalculatedValue(d,t).y,p.y=f(n)*c.rect.computed.height),{key:l.key,children:[],data:{layer:d,x:t,y:n},bounds:{x:p.x,y:p.y,width:0,height:0}}}function Fi(e){var t=e.animations,n=e.chart,r=e.colorService,o=e.isEnabled,i=e.keys,a=void 0===i?{}:i,l=e.layoutService,u=e.orientation,c=e.translator,s=e.getMinMax;a.trendlines||(a.trendlines=\"trend-lines\");var f=Di({layoutService:l,getMinMax:s,colorModel:{settings:function(){return r.getSettings()},resolveUIColor:function(e){return r.getPaletteColor(e)}},chart:n,translator:c,keys:a,isEnabled:o});return{getComponents:function(){return Ei(a,{animations:t,layoutService:l,trendLineModel:f,orientation:u})},getData:function(){return f.query.hasTrendLines()?[{key:\"trend\",data:f.query.getData()}]:[]},collectNodes:function(e){var t=e.nodes,r=e.meta;return function(e){var t=e.keys,n=e.model,r=e.chart,o=e.nodes,i=e.meta;return o.length?[ji({keys:t,model:n,chart:r,pos:i.position.relative,lineNode:o[0]})]:[]}({keys:a,model:f,chart:n,nodes:t,meta:r})},getModel:function(){return f},update:function(){return f.command.update()}}}Fi.propertyPanelProperties=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.translator,n=function(e){var n=r(e.label);return\"string\"===n&&e.label?e.label:\"object\"===n?e.label.qStringExpression?e.label.qStringExpression.qExpr:e.label.qValueExpression.qExpr:t.get(ki.TYPES[e.qType])};return{type:\"array\",ref:\"qTrendLines\",titleTranslation:ki.HEADER,itemTitleRef:n,max:8,allowAdd:!0,allowRemove:!0,allowMove:!1,addTranslation:ki.ADD_BUTTON,add:Ni,items:{label:{ref:\"label\",type:\"string\",expression:\"optional\",translation:\"Common.Label\",defaultValue:\"\"},type:{ref:\"qType\",type:\"string\",component:\"dropdown\",translation:ki.TYPE,options:[{value:fi,translation:ki.TYPES.AVERAGE},{value:di,translation:ki.TYPES.LINEAR},{value:pi,translation:ki.TYPES.POLYNOMIAL2},{value:hi,translation:ki.TYPES.POLYNOMIAL3},{value:mi,translation:ki.TYPES.POLYNOMIAL4},{value:vi,translation:ki.TYPES.EXPONENTIAL},{value:yi,translation:ki.TYPES.LOG},{value:gi,translation:ki.TYPES.POWER}],defaultValue:fi},autoColor:{ref:\"style.autoColor\",type:\"boolean\",translation:\"properties.colors\",component:\"switch\",defaultValue:!0,options:[{value:!0,translation:\"Common.Auto\"},{value:!1,translation:\"Common.Custom\"}]},paletteColor:{ref:\"style.paletteColor\",translation:\"properties.color\",type:\"object\",component:\"color-picker\",dualOutput:!0,defaultValue:Si,show:function(e){return!e.style.autoColor}},dashed:{ref:\"style.dashed\",translation:ki.STYLE.DASHED,type:\"boolean\",defaultValue:!0,change:Ai}}}};var Hi=[\"American Typewriter, serif\",\"Andalé Mono, monospace\",\"Arial Black, sans-serif\",\"Arial, sans-serif\",\"Bradley Hand, cursive\",\"Brush Script MT, cursive\",\"Comic Sans MS, cursive\",\"Courier, monospace\",\"Didot, serif\",\"Georgia, serif\",\"Impact, sans-serif\",\"Lucida Console, monospace\",\"Luminari, fantasy\",\"Monaco, monospace\",\"QlikView Sans, sans-serif\",\"Source Sans Pro, sans-serif\",\"Tahoma, sans-serif\",\"Times New Roman, serif\",\"Trebuchet MS, sans-serif\",\"Verdana, sans-serif\"],Ri=[\"Abril Fatface, serif\",\"Bangers, fantasy\",\"Bebas Neue, sans serif\",\"EB Garamond, serif\",\"Fredoka One, fantasy\",\"Graduate, fantasy\",\"Gravitas One, serif\",\"Indie Flower, fantasy\",\"Inter, sans-serif\",\"Lobster, fantasy\",\"Montserrat, sans-serif\",\"Nixie One, sans-serif\",\"Noto Sans, sans-serif\",\"Open Sans, sans-serif\",\"PT Serif, serif\",\"Pacifico, cursive\",\"Permanent Marker, fantasy\",\"QlikView Sans, sans-serif\",\"Raleway, sans-serif\",\"Rammetto One, fantasy\",\"Roboto, sans-serif\",\"Source Sans Pro, sans-serif\",\"Titan One, fantasy\",\"Yanone Kaffeesatz, sans-serif\"];function zi(e){return null!=e&&e.isEnabled(\"PS_20852_WYSIWYG_FONT_SUPPORT\")?Ri:Hi}var Vi=function(e){return{value:e,label:e.charAt(0).toUpperCase()+e.slice(1),groupHeader:!1,disabled:!1,styles:{fontFamily:e}}};function _i(e){var t=e.theme,n=e.translator,r=e.defaultValue,o=e.flags,i=[],a=t.getStyle(\"\",\"\",\"fontFamilies\");return Array.isArray(a)&&a.length?i.push.apply(i,c(new Set([r].concat(c(a.map((function(e){return e.split(\",\").map((function(e){return e.trim()})).map((function(e){return e.replace(/\\s+/g,\" \").trim()})).filter(Boolean).join(\", \")}))))))):i.push(r),[{value:\"ThemeHeader\",label:n.get(\"properties.themeFonts\"),metaText:n.get(\"properties.theme\"),groupHeader:!0}].concat(c(i.map((function(e){return Vi(e)}))),[{value:\"DefaultHeader\",label:n.get(\"properties.allFonts\"),metaText:n.get(\"properties.default\"),groupHeader:!0}],c(zi(o).map((function(e){return Vi(e)}))))}function Bi(e){var t=e.theme,n=e.translator,r=e.id,o=e.path,i=e.flags,a=function(){return t.getStyle(r,o,\"fontFamily\")};return{getDefaultValue:function(){return a()},getOptions:function(){return _i({theme:t,translator:n,defaultValue:a(),flags:i})}}}var Yi=[\"10px\",\"11px\",\"12px\",\"13px\",\"14px\",\"15px\",\"16px\",\"17px\",\"18px\",\"19px\",\"20px\",\"21px\",\"22px\",\"23px\",\"24px\"],$i=function(e){return{value:e,label:e,groupHeader:!1,disabled:!1}};function Ui(e){var t=e.theme,n=e.translator,r=e.id,o=e.path,i=function(){return t.getStyle(r,o,\"fontSize\")};return{getDefaultValue:function(){return i()},getOptions:function(){return function(e){var t=e.theme,n=e.translator,r=e.defaultValue,o=[],i=t.getStyle(\"\",\"\",\"fontSizes\");return Array.isArray(i)&&i.length?o.push.apply(o,c(new Set([r].concat(c(i))))):o.push(r),[{value:\"ThemeHeader\",label:n.get(\"properties.themeFontSizes\"),metaText:n.get(\"properties.theme\"),groupHeader:!0}].concat(c(o.map((function(e){return $i(e)}))),[{value:\"DefaultHeader\",label:n.get(\"properties.allFontSizes\"),metaText:n.get(\"properties.default\"),groupHeader:!0}],c(Yi.map((function(e){return $i(e)}))))}({theme:t,translator:n,defaultValue:i()})}}}function Ki(e){var t=e.theme,n=e.translator,r=e.id,o=e.path;return{fontFamily:Bi({theme:t,translator:n,id:r,path:o,flags:e.flags}),fontSize:Ui({theme:t,translator:n,id:r,path:o})}}function Gi(e){var t=e.theme,n=e.translator,r=e.config,o=void 0===r?{}:r,i=e.flags,a=function(e){var t=e.config,n=void 0===t?{}:t,r=n.id,o=n.paths;return{id:void 0===r?\"object\":\"\".concat(\"object\",\".\").concat(r),paths:Array.isArray(o)?o:[]}}({config:o}),l=a.id,u=a.paths,c={};u.forEach((function(e){for(var r=e.split(\".\"),o=c,a=0;a<r.length;a++){var u=r[a];a===r.length-1?o[u]=Ki({theme:t,translator:n,id:l,path:e,flags:i}):void 0===o[u]&&(o[u]={}),o=o[u]}}));var s=function(e){for(var t=e.split(\".\"),n=c,r=0;r<t.length;r++){var o=t[r];if(void 0===n[o])throw new Error(\"font-resolver: Path '\".concat(e,\"' could not be resolved.\"));n=n[o]}return n};return c.getDefaultValue=function(e){return s(e).getDefaultValue()},c.getOptions=function(e){return s(e).getOptions()},c}export{wt as cache,ut as colorService,St as debouncer,gt as dockService,Gi as fontResolver,zi as getAvailableFonts,bt as getValue,At as layoutService,Mt as memoize,Lt as pluginService,mo as selectionService,qt as setValue,kt as storage,So as themeService,Ct as throttler,si as tooltipService,Fi as trendlinesService};\n","/* eslint-disable prefer-rest-params */\n/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\n\n/* Simple JavaScript Inheritance\n * By John Resig http://ejohn.org/\n * MIT Licensed.\n * Modified by Qliktech\n */\n// Inspired by base2 and Prototype\n\n/* eslint no-new-func:0,no-unused-vars:0 */\n\nconst fnTest = /xyz/.test(() => {\n let xyz;\n})\n ? /\\b_super\\b/\n : /.*/;\n\n/**\n * Helper module for creating subclasses (or rather prototypal inheritance) of superclasses.\n *\n * @class\n *\n * @example\n * var Animal = Class.extend( \"Animal\", {\n * init: function ( name ) {\n * this.name = name || \"Unnamed\";\n * },\n * say: function ( sound ) {\n * console.log( this.name + \" says \" + sound );\n * }\n * } );\n *\n * var Cat = Animal.extend( \"Cat\", {\n * say: function () {\n * this._super( \"Meouw\" );\n * }\n * } );\n *\n * var cat = new Cat( \"Gustaf\" );\n * cat.say(); => \"Gustaf says Meouw\"\n *\n * @example\n * var MyClass = Class.extend();\n *\n * var a = new MyClass();\n * console.log( a instanceof MyClass ) // => true\n * console.log( a.constructor.name ) // => Class\n *\n * @example\n * var MyClass = Class.extend( \"MyClass\" );\n *\n * var a = new MyClass();\n * console.log( a instanceof MyClass ) // => true\n * console.log( a.constructor.name ) // => MyClass\n *\n */\nconst Class = function () {};\n\n/**\n * This method is available inside each function defined on the prototype when using {@link module:assets/core/utils/class~Class.extend}.\n *\n * It will invoke the super class' method with the same name, but it's up to programmer to invoke it with the arguments needed.\n * @method module:assets/core/utils/class~Class#_super\n */\n\n/**\n * Create a new Class that inherits from this class\n * @param {String} [className=\"Class\"] The name of the new class constructor.\n * @param {Object} proto The prototype for the new class.\n */\nClass.extend = function extend(className, proto) {\n const _super = this.prototype;\n\n if (typeof className !== 'string') {\n proto = className;\n className = 'Class';\n }\n\n // Instantiate a base class (but only create the instance,\n // don't run the init constructor)\n const prototype = Object.create(this.prototype);\n\n // Copy the properties over onto the new prototype\n for (const name in proto) {\n // Check if we're overwriting an existing function\n prototype[name] =\n typeof proto[name] === 'function' && typeof _super[name] === 'function' && fnTest.test(proto[name])\n ? (function (name, fn) {\n return function () {\n const tmp = this._super;\n\n // Add a new ._super() method that is the same method\n // but on the super-class\n this._super = _super[name];\n\n // The method only need to be bound temporarily, so we\n // remove it when we're done executing\n const ret = fn.apply(this, arguments);\n this._super = tmp;\n\n return ret;\n };\n })(name, proto[name])\n : proto[name];\n }\n\n if (!/^[_a-z][_a-z\\d]*$/i.test(className)) {\n throw new Error('Invalid subclass name. Alphanumericals only.');\n }\n\n // The dummy class constructor\n const ctor = new Function(\n `return (function ${className}(){ typeof this.init === 'function' && this.init.apply(this, [].slice.call(arguments)) });`\n )();\n\n // Populate our constructed prototype object\n ctor.prototype = prototype;\n\n // Enforce the constructor to be what we expect\n ctor.prototype.constructor = ctor;\n\n // And make this class extendable\n ctor.extend = extend;\n\n return ctor;\n};\n\nexport default Class;\n","// private\nconst idGen = {\n getChar(value) {\n // 0 o O i I l\n const banned = [48, 111, 79, 105, 73, 108];\n let val = value;\n\n let charCode;\n if (val > 9) {\n charCode = 65 + val - 10;\n if (charCode > 90) {\n charCode += 6;\n }\n } else {\n val = `${val}`.charCodeAt(0);\n }\n return banned.indexOf(charCode) > -1 ? this.getChar(val + 1) : String.fromCharCode(charCode);\n },\n base62(value) {\n const chr = this.getChar(value % 62);\n const y = Math.floor(value / 62);\n return y > 0 ? this.base62(y) + chr : chr;\n },\n id() {\n const s = this.base62(Math.round(Math.random() * (1e13 - 1e11) + 1e11));\n return s.replace(/\\W/g, '');\n },\n};\n\nexport default function generateId() {\n return idGen.id();\n}\n","const SCROLLBAR_KEY = 'scrollbar';\n\nfunction getActions(isEnabledFn) {\n function targetIsScrollbar(manager, e) {\n if (!e || !isEnabledFn()) {\n return false;\n }\n const startPoint = {\n x: e.center.x - e.deltaX,\n y: e.center.y - e.deltaY,\n };\n const components = this.chart.componentsFromPoint(startPoint);\n return components.some((c) => c.settings.key === SCROLLBAR_KEY);\n }\n\n const tap = {\n // single tap\n type: 'Tap',\n options: {\n enable: targetIsScrollbar,\n },\n events: {\n tap(e) {\n this.chart.component(SCROLLBAR_KEY).emit('tap', e);\n },\n },\n };\n\n const pan = {\n type: 'Pan',\n options: {\n enable: targetIsScrollbar,\n },\n events: {\n panstart(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panStart', e);\n },\n pan(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panMove', e);\n },\n panend(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panEnd', e);\n },\n pancancel(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panCancel', e);\n },\n },\n };\n\n const actions = [tap, pan];\n return actions;\n}\n\nexport default getActions;\n","function getAxisDock(direction, dock, isRtl) {\n return direction === 'y' ? getYAxisDock(dock, isRtl) : getXAxisDock(dock);\n}\n\nfunction getOppositeAxisDock(direction, dock, isRtl) {\n const oppositeDock = dock === 'far' ? 'near' : 'far';\n return getAxisDock(direction, oppositeDock, isRtl);\n}\n\nfunction getYAxisDock(dock, isRtl) {\n const yDockNearFar = dock || 'near';\n return (isRtl && yDockNearFar === 'near') || (!isRtl && yDockNearFar === 'far') ? 'right' : 'left';\n}\n\nfunction getXAxisDock(dock) {\n return dock === 'far' ? 'top' : 'bottom';\n}\n\nexport default {\n getAxisDock,\n getOppositeAxisDock,\n getYAxisDock,\n};\n","// Source: https://en.wikipedia.org/wiki/Bi-directional_text and http://www.unicode.org/Public/6.0.0/ucd/UnicodeData.txt\n// 3 types of strong direction characters: L (strong left-to-right), R(strong right-to-left, Hebrew) and AL(strong right-to-left, Arabic language)\nconst rangesOfLChars =\n '[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u02BB-\\u02C1\\u02D0-\\u02D1\\u02E0-\\u02E4\\u02EE\\u0370-\\u0373\\u0376-\\u037D\\u0386\\u0388-\\u03F5\\u03F7-\\u0482\\u048A-\\u0589\\u0903-\\u0939\\u093B\\u093D-\\u0940\\u0949-\\u094C\\u094E-\\u0950\\u0958-\\u0961\\u0964-\\u097F\\u0982-\\u09B9\\u09BD-\\u09C0\\u09C7-\\u09CC\\u09CE-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09FA\\u0A03-\\u0A39\\u0A3E-\\u0A40\\u0A59-\\u0A6F\\u0A72-\\u0A74\\u0A83-\\u0AB9\\u0ABD-\\u0AC0\\u0AC9-\\u0ACC\\u0AD0-\\u0AE1\\u0AE6-\\u0AEF\\u0B02-\\u0B39\\u0B3D-\\u0B3E\\u0B40\\u0B47-\\u0B4C\\u0B57-\\u0B61\\u0B66-\\u0B77\\u0B83-\\u0BBF\\u0BC1-\\u0BCC\\u0BD0-\\u0BF2\\u0C01-\\u0C3D\\u0C41-\\u0C44\\u0C58-\\u0C61\\u0C66-\\u0C6F\\u0C7F-\\u0CB9\\u0CBD-\\u0CCB\\u0CD5-\\u0CE1\\u0CE6-\\u0D40\\u0D46-\\u0D4C\\u0D4E-\\u0D61\\u0D66-\\u0DC6\\u0DCF-\\u0DD1\\u0DD8-\\u0E30\\u0E32-\\u0E33\\u0E40-\\u0E46\\u0E4F-\\u0EB0\\u0EB2-\\u0EB3\\u0EBD-\\u0EC6\\u0ED0-\\u0F17\\u0F1A-\\u0F34\\u0F36\\u0F38\\u0F3E-\\u0F6C\\u0F7F\\u0F85\\u0F88-\\u0F8C\\u0FBE-\\u0FC5\\u0FC7-\\u102C\\u1031\\u1038\\u103B-\\u103C\\u103F-\\u1057\\u105A-\\u105D\\u1061-\\u1070\\u1075-\\u1081\\u1083-\\u1084\\u1087-\\u108C\\u108E-\\u109C\\u109E-\\u135A\\u1360-\\u138F\\u13A0-\\u13F4\\u1401-\\u167F\\u1681-\\u169A\\u16A0-\\u1711\\u1720-\\u1731\\u1735-\\u1751\\u1760-\\u1770\\u1780-\\u17B6\\u17BE-\\u17C5\\u17C7-\\u17C8\\u17D4-\\u17DA\\u17DC\\u17E0-\\u17E9\\u1810-\\u18A8\\u18AA-\\u191C\\u1923-\\u1926\\u1929-\\u1931\\u1933-\\u1938\\u1946-\\u19DA\\u1A00-\\u1A16\\u1A19-\\u1A55\\u1A57\\u1A61\\u1A63-\\u1A64\\u1A6D-\\u1A72\\u1A80-\\u1AAD\\u1B04-\\u1B33\\u1B35\\u1B3B\\u1B3D-\\u1B41\\u1B43-\\u1B6A\\u1B74-\\u1B7C\\u1B82-\\u1BA1\\u1BA6-\\u1BA7\\u1BAA-\\u1BE5\\u1BE7\\u1BEA-\\u1BEC\\u1BEE\\u1BF2-\\u1C2B\\u1C34-\\u1C35\\u1C3B-\\u1C7F\\u1CD3\\u1CE1\\u1CE9-\\u1CEC\\u1CEE-\\u1DBF\\u1E00-\\u1FBC\\u1FBE\\u1FC2-\\u1FCC\\u1FD0-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FFC\\u200E\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E-\\u214F\\u2160-\\u2188\\u2336-\\u237A\\u2395\\u249C-\\u24E9\\u26AC\\u2800-\\u28FF\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2D00-\\u2D70\\u2D80-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u31BA\\u31F0-\\u321C\\u3220-\\u324F\\u3260-\\u327B\\u327F-\\u32B0\\u32C0-\\u32CB\\u32D0-\\u3376\\u337B-\\u33DD\\u33E0-\\u33FE\\u3400-\\u4DB5\\u4E00-\\uA48C\\uA4D0-\\uA60C\\uA610-\\uA66E\\uA680-\\uA6EF\\uA6F2-\\uA6F7\\uA722-\\uA787\\uA789-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA824\\uA827\\uA830-\\uA837\\uA840-\\uA873\\uA880-\\uA8C3\\uA8CE-\\uA8D9\\uA8F2-\\uA925\\uA92E-\\uA946\\uA952-\\uA97C\\uA983-\\uA9B2\\uA9B4-\\uA9B5\\uA9BA-\\uA9BB\\uA9BD-\\uAA28\\uAA2F-\\uAA30\\uAA33-\\uAA34\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA4D-\\uAAAF\\uAAB1\\uAAB5-\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2-\\uABE4\\uABE6-\\uABE7\\uABE9-\\uABEC\\uABF0-\\uFB17\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFDC]';\nconst rangesOfRChars =\n '[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05F4\\u07C0-\\u07EA\\u07F4-\\u07F5\\u07FA-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u0858\\u085E\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB4F]';\nconst rangesOfALChars =\n '[\\u0608\\u060B\\u060D\\u061B-\\u064A\\u066D-\\u066F\\u0671-\\u06D5\\u06E5-\\u06E6\\u06EE-\\u06EF\\u06FA-\\u070D\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\uFB50-\\uFD3D\\uFD50-\\uFDFC\\uFE70-\\uFEFC]';\n// eslint-disable-next-line no-misleading-character-class\nconst rangesOfLRgExp = new RegExp(rangesOfLChars);\nconst rangesOfRRgExp = new RegExp(rangesOfRChars);\nconst rangesOfALRgExp = new RegExp(rangesOfALChars);\n\nconst // left-to-right marker\n lrm = String.fromCharCode(8206); // right-to-left marker\n\nconst rlm = String.fromCharCode(8207);\n\nfunction isLtrChar(c) {\n return rangesOfLRgExp.test(c);\n}\n\nfunction isRtlChar(c) {\n return rangesOfRRgExp.test(c) || rangesOfALRgExp.test(c);\n}\n\nfunction detectTextDirection(s) {\n const n = s ? s.length : 0;\n let i;\n let c;\n for (i = 0; i < n; i++) {\n c = s[i];\n if (isLtrChar(c)) {\n return 'ltr';\n }\n if (isRtlChar(c)) {\n return 'rtl';\n }\n }\n return 'ltr';\n}\n\nexport default {\n lrm,\n rlm,\n detectTextDirection,\n};\n","import extend from 'extend';\nimport RtlUtil from '../../../../extra/rtl-util';\n\n/**\n * Get Picasso settings for an individual ref-line.\n *\n * @param {*} settings Default settings for the ref-line\n * @param {*} lineColorIndex Chart builder options + paletteColor option\n */\nfunction lineSettings(settings, options) {\n const lineStroke =\n typeof options.paletteColor !== 'undefined'\n ? options.theme.getColorPickerColor(options.paletteColor)\n : 'transparent';\n const defaultSettings = {\n value: 0,\n line: {\n stroke: lineStroke,\n strokeDasharray: options?.style?.lineType,\n },\n };\n return extend(true, defaultSettings, settings || {});\n}\n\n/**\n * Get Picasso settings for an individual ref-line used to display label and OOB.\n *\n * @param {*} settings Default settings for the ref-line label\n * @param {*} options Chart builder options + paletteColor option\n */\nfunction lineLabelSettings(settings, options) {\n const chartID = options && options.chartID; // Should we validate if the parameter exists?\n let labelColor = options.theme.getStyle(chartID, 'referenceLine.label.name', 'color');\n const labelFontSize = options.theme.getStyle(chartID, 'referenceLine.label.name', 'fontSize');\n const labelFontFamily = options.theme.getStyle(chartID, 'referenceLine.label.name', 'fontFamily');\n\n if (options.paletteColor) {\n labelColor = options.theme.getColorPickerColor(options.paletteColor);\n } else if (!labelColor) {\n labelColor = 'transparent';\n }\n\n const defaultSettings = {\n value: 0,\n line: {\n stroke: 'transparent',\n },\n label: {\n align: 'center',\n vAlign: 'middle',\n text: '',\n fill: labelColor,\n fontFamily: labelFontFamily,\n fontSize: labelFontSize,\n maxWidthPx: 135,\n },\n };\n return extend(true, defaultSettings, settings || {});\n}\n\nconst isVisible = (refLine) =>\n refLine && refLine.show !== false && refLine.show !== 0 && refLine.show !== '0' && refLine.refLineExpr !== undefined;\n\nfunction getRefLineTitle({ refLine, label, valueString }) {\n if (refLine.showValue !== false) {\n if (refLine.showLabel !== false) {\n return `${label} ${RtlUtil.lrm}(${valueString})${RtlUtil.lrm}`;\n }\n return `${RtlUtil.lrm}(${valueString})${RtlUtil.lrm}`;\n }\n if (refLine.showLabel !== false) {\n return label;\n }\n return '';\n}\n\nexport default {\n lineSettings,\n lineLabelSettings,\n isVisible,\n getRefLineTitle,\n};\n","import DimensionMeasureChartLayoutSettings from './layout-settings';\n\nconst constants = {\n SHOW_AXIS_LABELS_OPTIONS: ['all', 'labels'], // show dim/measure axis labels when it matches one of this values\n SHOW_TITLE_OPTIONS: ['all', 'title'], // show the dimension/measure title when the show option matches one of these values\n HORIZONTAL: 'horizontal',\n VERTICAL: 'vertical',\n LAYOUTSETTINGS: DimensionMeasureChartLayoutSettings,\n};\n\nconstants.DEFAULT_CHART_ORIENTATION = constants.HORIZONTAL;\n\nexport default constants;\n","export default {\n lasso: {\n displayOrder: 10000,\n },\n rangeDim: {\n displayOrder: 10000,\n },\n rangeMeasure: {\n displayOrder: 10000,\n },\n rangeMinor: {\n displayOrder: 10000,\n },\n\n // SPARK\n scrollBar: {\n minimumLayoutMode: 'SPARK',\n prioOrder: -1,\n displayOrder: 100,\n },\n\n refLines: {\n layout: {\n minimumLayoutMode: 'SPARK',\n prioOrder: 60,\n displayOrder: 1110,\n },\n },\n\n // XMALL\n measureAxisTitle: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 30,\n displayOrder: 90,\n },\n dimensionAxisTitle: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 30,\n displayOrder: 90,\n },\n\n measureAxis: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 10,\n displayOrder: 80,\n },\n dimensionAxis: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 10,\n displayOrder: 80,\n },\n\n gridLines: {\n minimumLayoutMode: 'XSMALL',\n displayOrder: -100,\n },\n\n // SMALL\n refLinesLabels: {\n minimumLayoutMode: 'SMALL',\n prioOrder: 60,\n displayOrder: 0,\n },\n};\n","import extend from 'extend';\nimport generateId from '../../../../extra/generate-id';\nimport getScrollActions from '../../../scroll/scroll-actions';\nimport axisDockUtil from '../../components/util/axis-dock-util';\nimport refLineUtil from '../../components/util/ref-line-util';\nimport CONSTANTS from './constants';\n\nconst SENSE_PICASSO_SPACING_COEFFICIENT = 100;\n\nfunction DimensionMeasureChart(chartBuilder, opts) {\n const options = opts || {};\n\n const measureAxisProperties = options.measureAxisProperties || {};\n const dimensionAxisProperties = options.dimensionAxisProperties || {};\n const chartOrientation = options.orientation || CONSTANTS.DEFAULT_CHART_ORIENTATION;\n const isChartHorizontal = chartOrientation === CONSTANTS.HORIZONTAL;\n const measureDirection = isChartHorizontal ? 'x' : 'y';\n const dimensionDirection = isChartHorizontal ? 'y' : 'x';\n const SHOW_AXIS_LABELS_OPTIONS = CONSTANTS.SHOW_AXIS_LABELS_OPTIONS;\n const SHOW_TITLE_OPTIONS = CONSTANTS.SHOW_TITLE_OPTIONS;\n const includeMeasureAxisComponent = SHOW_AXIS_LABELS_OPTIONS.includes(measureAxisProperties.show);\n const includeMeasureAxisTitleComponent =\n !!options.measureTitleText && SHOW_TITLE_OPTIONS.includes(measureAxisProperties.show);\n const includeDimensionAxisComponent =\n options.includeDimensionAxis && SHOW_AXIS_LABELS_OPTIONS.includes(dimensionAxisProperties.show);\n const includeDimensionAxisTitleComponent =\n options.includeDimensionAxis &&\n !!options.dimensionTitleText &&\n SHOW_TITLE_OPTIONS.includes(dimensionAxisProperties.show);\n const includeGridlines = options.gridlines && !(!options.gridlines.auto && options.gridlines.spacing === 0);\n\n const includeRefLines = options.refLines && options.refLines.some((refLine) => refLine.show);\n\n const interactionActions = [];\n\n if (includeMeasureAxisComponent) {\n addMeasureAxisComponent(chartBuilder, options, measureDirection, measureAxisProperties);\n }\n\n if (includeMeasureAxisTitleComponent) {\n addMeasureAxisTitleComponent(chartBuilder, options, measureDirection);\n }\n\n addMeasureScale(chartBuilder, options, chartOrientation, measureAxisProperties);\n\n if (includeDimensionAxisComponent) {\n addDimensionAxisComponent(chartBuilder, options, dimensionDirection);\n }\n\n if (includeDimensionAxisTitleComponent) {\n addDimensionAxisTitleComponent(chartBuilder, options, dimensionDirection);\n }\n\n if (options.includeDimensionAxis) {\n addDimensionScale(chartBuilder, options, chartOrientation);\n }\n\n if (includeGridlines) {\n addGridlinesComponent(chartBuilder, options.gridlines, measureDirection);\n }\n\n if (options.hasNavigation) {\n addScrollbarComponent(chartBuilder, interactionActions, options, isChartHorizontal);\n }\n\n if (includeRefLines) {\n addRefLineComponent(chartBuilder, options, measureDirection, measureAxisProperties);\n }\n\n if (options.enableLasso && options.selectionsEnabled) {\n const lassoOptions = options.lasso || {};\n addLassoComponent(chartBuilder, lassoOptions);\n }\n\n if (options.enableDimRange && options.includeDimensionAxis && options.selectionsEnabled) {\n const rangeDimOptions = options.dimRange || {};\n const dimensionAxisOptions = getDimensionAxisOptions(options, dimensionDirection);\n addRangeDimComponent(chartBuilder, rangeDimOptions, isChartHorizontal, dimensionAxisOptions.dock, options.isRtl);\n }\n\n if (options.enableMeasureRange && options.selectionsEnabled) {\n const rangeMeasureOptions = options.measureRange || {};\n const measureAxisOptions = getMeasureAxisOptions(options, measureDirection);\n addRangeMeasureComponent(\n chartBuilder,\n rangeMeasureOptions,\n isChartHorizontal,\n measureAxisOptions.dock,\n options.isRtl\n );\n }\n\n if (options.enableAreaRange && options.selectionsEnabled) {\n const areaDimOptions = options.areaRange || {};\n const dimAreaAxisOptions = getDimensionAxisOptions(options, dimensionDirection);\n addRangeAreaComponent(chartBuilder, areaDimOptions, isChartHorizontal, dimAreaAxisOptions.dock, options.isRtl);\n }\n\n if (options.brushActions) {\n addInteractionActions(interactionActions, options.brushActions);\n }\n\n if (interactionActions.length) {\n addInteractionComponent(chartBuilder, interactionActions);\n }\n}\n\nexport default DimensionMeasureChart;\n\nfunction addInteractionComponent(chartBuilder, interactionActions) {\n return chartBuilder.addInteraction({}, { gestures: interactionActions });\n}\n\nfunction addInteractionActions(interactionActions, actions) {\n actions.forEach((a) => {\n interactionActions.push(a);\n });\n}\n\nfunction addMeasureScale(chartBuilder, options, chartOrientation, measureAxisProperties) {\n let measureScaleSettings = options.measureScaleSettings;\n\n const measureScaleOptions = {\n isRtl: options.isRtl,\n source: options.measureSource,\n orientation: chartOrientation,\n measureAxisProperties,\n };\n\n if (measureAxisProperties && measureAxisProperties.spacing > 0) {\n measureScaleSettings = extend(true, measureScaleSettings || {}, {\n component: {\n ticks: {\n distance: measureAxisProperties.spacing * SENSE_PICASSO_SPACING_COEFFICIENT,\n },\n },\n });\n }\n\n chartBuilder.addScale('measure-scale', measureScaleSettings, measureScaleOptions);\n}\n\nfunction addMeasureAxisComponent(chartBuilder, options, measureDirection, measureAxisProperties) {\n let measureAxisSettings = {\n scale: 'measure',\n settings: options.axisLabelStyle || {},\n forceBounds: measureAxisProperties && !measureAxisProperties.autoMinMax && measureAxisProperties.showBounds,\n };\n measureAxisSettings = extend(measureAxisSettings, CONSTANTS.LAYOUTSETTINGS.measureAxis);\n\n const measureAxisOptions = getMeasureAxisOptions(options, measureDirection);\n\n chartBuilder.addComponent(`${measureDirection}-axis`, measureAxisSettings, measureAxisOptions);\n}\n\nfunction addMeasureAxisTitleComponent(chartBuilder, options, measureDirection) {\n let measureTitleSettings = {\n text: options.measureTitleText,\n style: options.axisTitleStyle || {},\n };\n measureTitleSettings = extend(measureTitleSettings, CONSTANTS.LAYOUTSETTINGS.measureAxisTitle);\n\n const measureAxisOptions = getMeasureAxisTitleOptions(options, measureDirection);\n\n chartBuilder.addComponent(`${measureDirection}-axis-title`, measureTitleSettings, measureAxisOptions);\n}\n\nfunction addDimensionScale(chartBuilder, options, chartOrientation) {\n const dimensionScaleOptions = {\n isRtl: options.isRtl,\n source: options.dimensionSource,\n orientation: chartOrientation === CONSTANTS.HORIZONTAL ? CONSTANTS.VERTICAL : CONSTANTS.HORIZONTAL,\n };\n\n chartBuilder.addScale('dimension-scale', options.dimensionScaleSettings, dimensionScaleOptions);\n}\n\nfunction addDimensionAxisComponent(chartBuilder, options, dimensionDirection) {\n let dimensionAxisSettings = {\n scale: 'dimension',\n settings: options.axisLabelStyle || {},\n };\n dimensionAxisSettings = extend(dimensionAxisSettings, CONSTANTS.LAYOUTSETTINGS.dimensionAxis);\n\n const dimensionAxisOptions = getDimensionAxisOptions(options, dimensionDirection);\n\n extend(true, dimensionAxisSettings, options.dimensionAxisSettings || {});\n\n chartBuilder.addComponent(`${dimensionDirection}-axis`, dimensionAxisSettings, dimensionAxisOptions);\n}\n\nfunction addDimensionAxisTitleComponent(chartBuilder, options, dimensionDirection) {\n let dimensionAxisTitleSettings = {\n text: options.dimensionTitleText,\n style: options.axisTitleStyle || {},\n };\n dimensionAxisTitleSettings = extend(dimensionAxisTitleSettings, CONSTANTS.LAYOUTSETTINGS.dimensionAxisTitle);\n\n const dimensionAxisTitleOptions = getDimensionAxisTitleOptions(options, dimensionDirection);\n\n chartBuilder.addComponent(`${dimensionDirection}-axis-title`, dimensionAxisTitleSettings, dimensionAxisTitleOptions);\n}\n\nfunction addGridlinesComponent(chartBuilder, gridlinesOptions, measureDirection) {\n let gridlinesSettings = {\n ticks: {\n show: true,\n },\n minorTicks: {\n show: !gridlinesOptions.auto && !gridlinesOptions.auto && gridlinesOptions.spacing === 3,\n },\n };\n gridlinesSettings = extend(gridlinesSettings, CONSTANTS.LAYOUTSETTINGS.gridLines);\n\n gridlinesSettings[measureDirection] = { scale: 'measure' };\n\n chartBuilder.addComponent('grid-line', gridlinesSettings);\n}\n\nfunction addScrollbarComponent(chartBuilder, interactionActions, options, isChartHorizontal) {\n const settings = chartBuilder.getSettings();\n\n settings.scroll = {\n dimension: {\n viewSize: (options.scrollSettings && options.scrollSettings.viewSize) || 0,\n max: (options.scrollSettings && options.scrollSettings.max) || 0,\n },\n };\n\n const scrollbarOptions = {\n isRtl: options.isRtl,\n chartID: options.chartID,\n isHorizontal: !isChartHorizontal,\n };\n\n const scrollBarSettings = extend({}, CONSTANTS.LAYOUTSETTINGS.scrollBar);\n\n chartBuilder.addComponent('scrollbar', scrollBarSettings, scrollbarOptions);\n\n addInteractionActions(interactionActions, getScrollActions(options.isNavigationEnabledFn));\n}\n\n/*\n * Add \"ref-line\" component(s). Currently two \"ref-line\" components are used to reserve space for labels and\n * OOB markers outside of the data area. First component: shows the line(s) within the data area. Second component:\n * shows the label(s) and OOB marker(s).\n */\nfunction addRefLineComponent(chartBuilder, options, measureDirection, measureAxisProperties) {\n const axisDock = axisDockUtil.getAxisDock(measureDirection, measureAxisProperties.dock, options.isRtl);\n let refLinesSettings = {\n // First component\n key: 'ref-line',\n style: {\n oob: {\n show: false,\n },\n },\n lines: {\n x: [],\n y: [],\n },\n };\n refLinesSettings = extend(refLinesSettings, CONSTANTS.LAYOUTSETTINGS.refLines);\n\n let refLinesLabelsSettings = {\n // Second component\n // Use a unique key to force re-render of this component in Picasso.\n // This must be done because Picasso does not allow re-binding of functions (and shouldn't either).\n key: `ref-line-labels-${generateId()}`,\n require: ['renderer', 'chart'],\n dock: axisDockUtil.getOppositeAxisDock(measureDirection, measureAxisProperties.dock, options.isRtl),\n preferredSize() {\n if (measureDirection === 'x') {\n // Use constant component size if horizontal\n return 26;\n }\n\n // Adapt component size to the longest label if vertical\n const measureText = this.renderer.measureText;\n const formatter = this.chart.formatter({ data: chartBuilder.settings.scales.measure.data });\n const labelWidths = refLinesLabelsSettings.lines.y.map((line) => {\n const formattedValue = line.label.showValue !== false ? `(${formatter(line.value)})` : '';\n const text = `${line.label.text} ${formattedValue}`;\n const minimumText = line.label.text && formattedValue ? ` ${formattedValue}` : formattedValue;\n return {\n wanted: measureText({\n text,\n fontSize: line.fontSize,\n fontFamily: line.fontFamily,\n }).width,\n required: measureText({\n text: minimumText,\n fontSize: line.fontSize,\n fontFamily: line.fontFamily,\n }).width,\n };\n });\n\n const maxLabelWidth = labelWidths[0];\n for (let i = 1; i < labelWidths.length; i++) {\n if (labelWidths[i].wanted > maxLabelWidth.wanted) {\n maxLabelWidth.wanted = labelWidths[i].wanted;\n }\n if (labelWidths[i].required > maxLabelWidth.required) {\n maxLabelWidth.required = labelWidths[i].required;\n }\n }\n const labelPadding = 12;\n if (maxLabelWidth.required + labelPadding > 100) {\n return maxLabelWidth.required + labelPadding; // Always have space for the value\n }\n return Math.min(maxLabelWidth.wanted + labelPadding, 100); // Limit to 100 px width\n },\n lines: {\n x: [],\n y: [],\n },\n };\n refLinesLabelsSettings = extend(refLinesLabelsSettings, CONSTANTS.LAYOUTSETTINGS.refLinesLabels);\n\n options.refLines.forEach((refLine) => {\n if (!refLine.show) {\n return;\n }\n\n const expressionValue = refLine.refLineExpr && refLine.refLineExpr.value;\n const lineOptions = extend(true, {}, options, {\n paletteColor: refLine.paletteColor,\n style: refLine.style,\n chartID: chartBuilder.options.chartID,\n });\n\n // Add a line for each visible ref line\n const lineSettings = refLineUtil.lineSettings(\n {\n scale: 'measure',\n dir: measureDirection,\n value: expressionValue,\n },\n lineOptions\n );\n\n refLinesSettings.lines[measureDirection].push(lineSettings);\n\n // Add a label and an OOB marker for each visible ref line (using the second component)\n const lineLabelSettings = refLineUtil.lineLabelSettings(\n {\n scale: 'measure',\n value: expressionValue,\n label: {\n text: refLine.showLabel !== false ? refLine.label : '',\n showValue: refLine.showValue !== false,\n },\n },\n lineOptions\n );\n\n if (measureDirection === 'x') {\n lineLabelSettings.label.vAlign = axisDock === 'near' ? 1 : 0;\n } else {\n // y\n lineLabelSettings.label.align = axisDock === 'near' ? 0 : 1;\n }\n\n refLinesLabelsSettings.lines[measureDirection].push(lineLabelSettings);\n });\n\n chartBuilder.addComponent('ref-line', refLinesSettings, {});\n chartBuilder.addComponent('ref-line', refLinesLabelsSettings, {});\n}\n\n/**\n * Adds a lasso component to the chart builder\n * @param {ChartBuilder} chartBuilder\n * @param {object} options - lasso options\n * @param {string} options.brushKey - key used as context for lasso selection triggers\n * @param {string} options.brushComponent - target component key\n */\nfunction addLassoComponent(chartBuilder, options) {\n const lassoOptions = {\n brushKey: options.brushKey,\n brushComponents: options.brushComponents,\n brushData: options.brushData,\n };\n\n chartBuilder.addComponent('lasso', CONSTANTS.LAYOUTSETTINGS.lasso, lassoOptions);\n}\n/**\n * Adds a dimension range component to the chart builder\n * @param {any} chartBuilder\n * @param {object} options - range dim options\n * @param {string} options.brushKey - key used as context for range selection triggers\n * @param {string} options.brushAxis - target axis to perform range select on\n * @param {string} options.brushScale - Scale to use\n * @param {boolean} isChartHorizontal - Whether the chart is horizontal or not\n */\nfunction addRangeDimComponent(chartBuilder, options, isChartHorizontal, dock, isRtl) {\n let rangeDimSettings = {\n key: 'rangeDim',\n };\n\n rangeDimSettings = extend(rangeDimSettings, CONSTANTS.LAYOUTSETTINGS.rangeDim);\n\n const rangeDimOptions = {\n brushKey: options.brushKey,\n brushAxis: options.brushAxis,\n brushArea: options.brushArea,\n brushScale: options.brushScale,\n isHorizontal: !isChartHorizontal,\n dock,\n isRtl,\n };\n\n chartBuilder.addComponent('range', rangeDimSettings, rangeDimOptions);\n}\n\nfunction addRangeMeasureComponent(chartBuilder, options, isChartHorizontal, dock, isRtl) {\n let rangeMeasureSettings = {\n key: 'rangeMeasure',\n };\n\n rangeMeasureSettings = extend(rangeMeasureSettings, CONSTANTS.LAYOUTSETTINGS.rangeMeasure);\n\n const rangeMeasureOptions = {\n brushKey: options.brushKey,\n brushAxis: options.brushAxis,\n brushArea: options.brushArea,\n brushScale: options.brushScale,\n multiple: options.multiple,\n isHorizontal: isChartHorizontal,\n dock,\n isRtl,\n };\n\n chartBuilder.addComponent('range', rangeMeasureSettings, rangeMeasureOptions);\n}\n\nfunction addRangeAreaComponent(chartBuilder, options, isChartHorizontal, dock, isRtl) {\n let rangeMinorSettings = {\n key: 'rangeMinor',\n };\n\n rangeMinorSettings = extend(rangeMinorSettings, CONSTANTS.LAYOUTSETTINGS.rangeMinor);\n\n const rangeMeasureOptions = {\n brushKey: options.brushKey,\n brushAxis: options.brushAxis,\n brushData: options.brushData,\n brushArea: options.brushArea,\n brushComponents: options.brushComponents,\n brushScale: options.brushScale,\n multiple: options.multiple,\n isHorizontal: options.brushScale === 'measure' ? isChartHorizontal : !isChartHorizontal,\n dock,\n isRtl,\n chartInstance: options.chartInstance,\n };\n\n chartBuilder.addComponent('range-area', rangeMinorSettings, rangeMeasureOptions);\n}\n\nfunction getMeasureAxisOptions(options, measureDirection) {\n return {\n dock: options.measureAxisProperties && options.measureAxisProperties.dock,\n direction: measureDirection,\n isRtl: options.isRtl,\n };\n}\n\nfunction getMeasureAxisTitleOptions(options, measureDirection) {\n return getMeasureAxisOptions(options, measureDirection);\n}\n\nfunction getDimensionAxisOptions(options, dimensionDirection) {\n return {\n dock: options.dimensionAxisProperties && options.dimensionAxisProperties.dock,\n direction: dimensionDirection,\n isRtl: options.isRtl,\n };\n}\n\nfunction getDimensionAxisTitleOptions(options, dimensionDirection) {\n return getDimensionAxisOptions(options, dimensionDirection);\n}\n","import extend from 'extend';\n\nfunction scale(settings, opts) {\n const options = opts || {};\n const isHorizontal = !options.orientation || options.orientation === 'horizontal';\n const isRtl = !!options.isRtl;\n\n const defaultSettings = {\n name: options.name || 'scale',\n component: {\n invert: isHorizontal && isRtl,\n minorTicks: {\n count: 1,\n },\n range: options.range || undefined,\n domain: options.domain || undefined,\n trackBy: options.trackBy || 'id',\n },\n };\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nfunction measureScale(settings, opts) {\n const options = opts || {};\n let fields = options.source || [];\n if (typeof fields === 'string') {\n fields = [fields];\n }\n\n const defaultSettings = {\n name: 'measure',\n component: {\n expand: 0.1,\n data: {\n fields: fields.map((f) => ({\n field: f,\n })),\n },\n },\n };\n\n const measureAxisProperties = opts && opts.measureAxisProperties;\n\n if (measureAxisProperties && !measureAxisProperties.autoMinMax) {\n // explicit min max measure scale range\n if (['min', 'minMax'].includes(measureAxisProperties.minMax)) {\n defaultSettings.component.min = measureAxisProperties.min;\n }\n if (['max', 'minMax'].includes(measureAxisProperties.minMax)) {\n defaultSettings.component.max = measureAxisProperties.max;\n }\n }\n\n const measureSettings = extend(true, defaultSettings, settings || {});\n const scaleSettings = scale(measureSettings, opts);\n const hasInvertSettings = settings && settings.component && typeof settings.component.invert !== 'undefined';\n\n if (!hasInvertSettings && opts && opts.orientation === 'vertical') {\n scaleSettings.component.invert = !scaleSettings.component.invert;\n }\n\n return scaleSettings;\n}\n\nfunction dimensionScale(settings, opts) {\n const defaultSettings = {\n name: 'dimension',\n component: {\n trackBy: 'id',\n type: 'band',\n data: {\n extract: {\n field: (opts && opts.source) || '',\n props: {\n label(v) {\n return v.qText || '';\n }, // Map qText to handle both qElemNo and qElemNumber\n },\n },\n },\n label(v) {\n return v.datum.label.value;\n }, // Set qText as value from the mapping on r.92\n },\n };\n\n const dimensionSettings = extend(true, defaultSettings, settings || {});\n\n return scale(dimensionSettings, opts);\n}\n\nscale.measureScale = measureScale;\nscale.dimensionScale = dimensionScale;\n\nexport default scale;\n","import extend from 'extend';\nimport axisDockUtil from './util/axis-dock-util';\n\nfunction axis(settings, options) {\n const chartID = options && options.chartID; // Should we validate if the parameter exists?\n const dock = options && options.dock;\n const direction = options && options.direction;\n const isRtl = options && options.isRtl;\n\n const axisLineStroke = options.theme.getStyle(chartID, 'axis.line.major', 'color');\n const titleFontSize = options.theme.getStyle(chartID, 'axis.title', 'fontSize');\n const titleFill = options.theme.getStyle(chartID, 'axis.title', 'color');\n const labelsFill = options.theme.getStyle(chartID, 'axis.label.name', 'color');\n const labelsFontSize = options.theme.getStyle(chartID, 'axis.label.name', 'fontSize');\n const titleFontFamily = options.theme.getStyle(chartID, 'axis.title', 'fontFamily');\n const labelsFontFamily = options.theme.getStyle(chartID, 'axis.label.name', 'fontFamily');\n\n const defaultSettings = {\n key: 'axis',\n type: 'axis',\n dock: axisDockUtil.getAxisDock(direction, dock, isRtl),\n brush: { trigger: [], consume: [] },\n settings: {\n title: {\n fontSize: titleFontSize,\n fontFamily: titleFontFamily,\n fill: titleFill,\n },\n line: {\n show: true,\n strokeWidth: 1,\n stroke: axisLineStroke,\n },\n labels: {\n fill: labelsFill,\n fontSize: labelsFontSize,\n fontFamily: labelsFontFamily,\n tiltAngle: isRtl ? -40 : 40,\n maxEdgeBleed: 75,\n maxSize: 150,\n mode: 'auto',\n },\n ticks: {\n stroke: axisLineStroke,\n },\n minorTicks: {\n stroke: axisLineStroke,\n },\n },\n };\n const axisSettings = extend(true, {}, defaultSettings, settings || {});\n axisSettings.brush.consume.forEach((consume) => {\n consume.style.active.strokeWidth = 0;\n });\n return axisSettings;\n}\n\nfunction xAxis(settings, options) {\n const defaultSettings = {\n key: 'x-axis',\n scale: 'x',\n };\n const xAxisSettings = extend(true, defaultSettings, settings || {});\n return axis(xAxisSettings, options);\n}\n\nfunction yAxis(settings, options) {\n const dock = options && options.dock;\n const isRtl = options && options.isRtl;\n const defaultSettings = {\n key: 'y-axis',\n scale: 'y',\n dock: axisDockUtil.getYAxisDock(dock, isRtl),\n };\n const yAxisSettings = extend(true, defaultSettings, settings || {});\n return axis(yAxisSettings, options);\n}\n\naxis.xAxis = xAxis;\naxis.yAxis = yAxis;\n\nexport default axis;\n","import extend from 'extend';\nimport axisDockUtil from './util/axis-dock-util';\n\nfunction text(settings, options) {\n const chartID = options && options.chartID;\n const dock = options && options.dock;\n const direction = options && options.direction;\n const isRtl = options && options.isRtl;\n const titleFontSize = options.theme.getStyle(chartID, 'axis.title', 'fontSize');\n const titleFill = options.theme.getStyle(chartID, 'axis.title', 'color');\n const titleFontFamily = options.theme.getStyle(chartID, 'axis.title', 'fontFamily');\n\n const defaultSettings = {\n key: 'text',\n type: 'text',\n dock: axisDockUtil.getAxisDock(direction, dock, isRtl) || 'bottom',\n displayOrder: 0, // TODO: This can be removed when picasso set displayOrder for text component to 0. Currently picasso set it to 99.\n style: {\n text: {\n fontSize: titleFontSize,\n fontFamily: titleFontFamily,\n fill: titleFill,\n },\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nfunction xAxisTitle(settings, options) {\n const defaultSettings = {\n key: 'x-axis-title',\n };\n const xAxisTitleSettings = extend(true, defaultSettings, settings || {});\n return text(xAxisTitleSettings, options);\n}\n\nfunction yAxisTitle(settings, options) {\n const dock = options && options.dock;\n const isRtl = options && options.isRtl;\n const defaultSettings = {\n key: 'y-axis-title',\n dock: axisDockUtil.getYAxisDock(dock, isRtl) || 'left',\n };\n const yAxisTitleSettings = extend(true, defaultSettings, settings || {});\n return text(yAxisTitleSettings, options);\n}\n\ntext.xAxisTitle = xAxisTitle;\ntext.yAxisTitle = yAxisTitle;\n\nexport default text;\n","function getBublesAlign(isHorizontal, dock, isRtl) {\n let isAlignStart = (isHorizontal && dock !== 'far') || (!isHorizontal && dock === 'far');\n if (!isHorizontal && isRtl) {\n isAlignStart = !isAlignStart;\n }\n return isAlignStart ? 'start' : 'end';\n}\n\nfunction getDock(brushAxis, brushArea) {\n const dockTargets = [];\n let dockT;\n if (brushAxis) {\n dockTargets.push(`@${brushAxis}`);\n }\n if (brushArea) {\n dockTargets.push(`@${brushArea}`);\n }\n if (dockTargets.length) {\n dockT = dockTargets.join(',');\n }\n return dockT;\n}\n\nexport default {\n getBublesAlign,\n getDock,\n};\n","/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\nconst layoutModes = {\n SPARK: { width: 0, height: 0 },\n XSMALL: { width: 150, height: 75 },\n SMALL: { width: 300, height: 150 },\n MEDIUM: { width: 400, height: 220 },\n FULL: { width: 550, height: 450 },\n};\n\nfunction LayoutModes() {\n return layoutModes;\n}\n\nLayoutModes.getLayoutModeKeys = function () {\n const layoutModeKeys = [];\n let modeKey;\n\n for (modeKey in layoutModes) {\n layoutModeKeys.push(modeKey);\n }\n return layoutModeKeys;\n};\n\nexport default LayoutModes;\n","import extend from 'extend';\n\nfunction getLabel(context) {\n const end = context.data.end;\n const formatter = context.dataset(end.source.key).field(end.source.field).formatter();\n return formatter(end.value);\n}\n\nfunction labels(settings, options) {\n const chartID = options && options.chartID;\n const labelsFill = options.theme.getStyle(chartID, 'label.value', 'color');\n const labelsFontSize = options.theme.getStyle(chartID, 'label.value', 'fontSize');\n const labelsFontFamily = options.theme.getStyle(chartID, 'label.value', 'fontFamily');\n\n const defaultSettings = {\n key: 'labels',\n type: 'labels',\n displayOrder: 1,\n settings: {\n sources: [\n {\n component: 'box-marker', // Connects with the matching \"key:\" attribute in the visualizations\n selector: 'rect',\n strategy: {\n type: 'bar',\n settings: {\n direction: 'up',\n fontFamily: labelsFontFamily,\n fontSize: parseFloat(labelsFontSize),\n align: 0.5,\n labels: [\n {\n placements: [\n {\n position: 'outside',\n fill: labelsFill,\n justify: 0,\n },\n {\n position: 'inside',\n fill: settings && settings.settings.sources[0].strategy.settings.labels[0].placements[1].fill,\n justify: 1,\n },\n ],\n label: getLabel,\n },\n ],\n },\n },\n },\n ],\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default labels;\n","import extend from 'extend';\n\nconst directions = {\n left: 'left',\n right: 'right',\n up: 'top',\n down: 'bottom',\n};\n\nfunction legend(settings, options) {\n const chartID = options && options.chartID;\n const isRtl = options && options.isRtl;\n let dock = (options && options.dock) || 'auto';\n const show = options && options.show;\n\n if (dock === 'auto') {\n dock = options.chartHeight / options.chartWidth < 1 ? (isRtl ? 'left' : 'right') : 'bottom';\n }\n\n const titleFill = options.theme.getStyle(chartID, 'legend.title', 'color');\n const titleFontSize = options.theme.getStyle(chartID, 'legend.title', 'fontSize');\n const itemFill = options.theme.getStyle(chartID, 'legend.label', 'color');\n const itemFontSize = options.theme.getStyle(chartID, 'legend.label', 'fontSize');\n const titleFontFamily = options.theme.getStyle(chartID, 'legend.title', 'fontFamily');\n const itemFontFamily = options.theme.getStyle(chartID, 'legend.label', 'fontFamily');\n\n const defaultSettings = {\n key: 'legend',\n type: 'legend-cat',\n dock,\n show,\n\n scale: {\n type: 'color',\n },\n settings: {\n title: {\n anchor: 'middle',\n },\n layout: {\n direction: isRtl ? 'rtl' : 'ltr',\n size: dock === 'top' || dock === 'bottom' ? 2 : 1,\n vertical: dock === 'top' || dock === 'bottom' ? 16 : 8,\n },\n navigation: {\n button: {\n class: {\n 'lui-fade-button': true,\n },\n content(h, state) {\n const c = ['lui-button__icon', 'lui-icon', `lui-icon--triangle-${directions[state.direction]}`];\n return h('span', {\n style: {\n pointerEvents: 'none',\n },\n class: c.join(' '),\n });\n },\n },\n },\n },\n style: {\n item: {\n label: {\n fontSize: itemFontSize,\n fontFamily: itemFontFamily,\n fill: itemFill,\n lineHeight: 1,\n wordBreak: 'break-word',\n },\n margin: {\n top: 5,\n left: 10,\n right: 10,\n bottom: 10,\n },\n shape: {\n type: options.type ? options.type : 'square',\n size: (parseInt(itemFontSize, 10) * 3) / 4, // To make it consistent with non-picasso charts\n },\n },\n title: {\n show: options.showTitle,\n fontSize: titleFontSize,\n fontFamily: titleFontFamily,\n fill: titleFill,\n },\n },\n };\n return extend(true, {}, defaultSettings, settings);\n}\n\nexport default legend;\n","import extend from 'extend';\nimport ChartPresets from './chart-presets';\nimport scale from './scale';\nimport axis from './components/axis';\nimport boxMarker from './components/box-marker';\nimport eventArea from './components/event-area';\nimport gridLine from './components/grid-line';\nimport interaction from './components/interaction';\nimport pointMarker from './components/point-marker';\nimport scrollbar from './components/scrollbar';\nimport text from './components/text';\nimport lasso from './components/lasso';\nimport range from './components/range';\nimport refLine from './components/ref-line';\nimport layoutModes from './layout-modes';\nimport labels from './components/labels';\nimport categoricalLegend from './components/categorical-legend';\nimport sequentialLegend from './components/sequential-legend';\nimport rangeArea from './components/range-area';\n\nfunction createComponent(type, settings, options) {\n switch (type) {\n // Picasso components\n case 'scale':\n return scale(settings, options);\n case 'measure-scale':\n return scale.measureScale(settings, options);\n case 'dimension-scale':\n return scale.dimensionScale(settings, options);\n case 'axis':\n return axis(settings, options);\n case 'box-marker':\n return boxMarker(settings, options);\n case 'point-marker':\n return pointMarker(settings, options);\n case 'scrollbar':\n return scrollbar(settings, options);\n case 'text':\n return text(settings, options);\n case 'lasso':\n return lasso(settings, options);\n case 'range':\n return range(settings, options);\n case 'range-area':\n return rangeArea(settings, options);\n case 'categorical-legend':\n return categoricalLegend(settings, options);\n case 'sequential-legend':\n return sequentialLegend(settings, options);\n // Wrapepd picasso components\n case 'x-axis':\n return axis.xAxis(settings, options);\n case 'y-axis':\n return axis.yAxis(settings, options);\n case 'x-axis-title':\n return text.xAxisTitle(settings, options);\n case 'y-axis-title':\n return text.yAxisTitle(settings, options);\n case 'grid-line':\n return gridLine(settings, options);\n case 'interaction':\n return interaction(settings, options);\n case 'ref-line':\n return refLine(settings, options);\n // Custom components\n case 'event-area':\n return eventArea(settings, options);\n case 'labels':\n return labels(settings, options);\n default:\n return undefined;\n }\n}\n\nfunction ChartBuilder(options) {\n this.options = options || {};\n\n this.settings = {\n dockLayout: {\n layoutModes: layoutModes(),\n },\n components: [],\n scales: {},\n };\n}\n\nChartBuilder.prototype.addComponent = function addComponent(type, settings, options) {\n const extendedOptions = extend(true, {}, this.options, options || {});\n const component = createComponent(type, settings, extendedOptions);\n this.settings.components.push(component);\n return component;\n};\n\nChartBuilder.prototype.addInteraction = function addInteraction(settings, options) {\n const extendedOptions = extend(true, {}, this.options, options || {});\n const component = createComponent('interaction', settings, extendedOptions);\n if (!this.settings.interactions) {\n this.settings.interactions = [];\n }\n this.settings.interactions.push(component);\n return component;\n};\n\nChartBuilder.prototype.addScale = function addScale(type, settings, options) {\n const extendedOptions = extend(true, {}, this.options, options || {});\n const scale = createComponent(type, settings, extendedOptions);\n this.settings.scales[scale.name] = scale.component;\n};\n\nChartBuilder.prototype.getSettings = function getSettings() {\n return this.settings;\n};\n\nChartBuilder.prototype.getComponent = function getComponent(key) {\n return this.settings.components.filter((component) => component.key === key)[0];\n};\n\nChartBuilder.prototype.addPreset = function addPreset(type, options) {\n ChartPresets(type, this, options);\n};\n\nChartBuilder.validateComponentKeys = function validateComponentKeys(components) {\n const keys = {};\n return components\n .map((component) => {\n const key = component.key;\n if (!key) {\n return `Missing key for component ${component.type}`;\n }\n if (keys[key]) {\n return `Duplicate key for component ${component.type}`;\n }\n keys[key] = true;\n return null;\n })\n .filter((msg) => !!msg);\n};\n\n/*\n * Factory function\n */\nChartBuilder.create = function (options) {\n return new ChartBuilder(options);\n};\n\nChartBuilder.createComponent = createComponent;\n\nexport default ChartBuilder;\n","import extend from 'extend';\n\nfunction boxMarker(settings) {\n const defaultSettings = {\n key: 'box-marker',\n type: 'box-marker',\n settings: {\n minor: { scale: 'x' },\n orientation: 'horizontal',\n },\n brush: { trigger: [], consume: [] },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default boxMarker;\n","import extend from 'extend';\n\nfunction pointMarker(settings) {\n const defaultSettings = {\n key: 'point-marker',\n type: 'point-marker',\n settings: {},\n brush: { trigger: [], consume: [] },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default pointMarker;\n","import extend from 'extend';\n\nfunction scrollbar(settings, options) {\n const isRtl = options && options.isRtl;\n const chartID = options && options.chartID;\n const isHorizontal = options && options.isHorizontal;\n const defaultSettings = {\n key: 'scrollbar',\n type: 'scrollbar',\n scroll: 'dimension',\n dock: isHorizontal ? 'bottom' : isRtl ? 'left' : 'right',\n settings: {\n backgroundColor: options.theme.getStyle(chartID, '', 'backgroundColor'),\n invert: isRtl && isHorizontal,\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default scrollbar;\n","import extend from 'extend';\n\nfunction lasso(settings, options) {\n const brushKey = options && options.brushKey;\n const brushComponents = options && options.brushComponents ? options.brushComponents : [];\n const brushData = options && options.brushData ? options.brushData : ['elemNo'];\n\n const defaultSettings = {\n type: 'brush-lasso',\n key: 'lasso',\n displayOrder: 99,\n settings: {\n brush: {\n components: [],\n },\n lasso: {\n fill: 'rgba(0, 0, 0, 0)',\n stroke: 'rgba(102,102,102,1)',\n strokeWidth: 2,\n opacity: 1,\n strokeDasharray: null, // '10, 4',\n },\n startPoint: {\n r: 10,\n fill: 'rgba(0, 152, 69, 1)',\n strokeWidth: 0,\n opacity: 1,\n },\n },\n };\n\n brushComponents.forEach((comp) => {\n defaultSettings.settings.brush.components.push({\n contexts: brushKey ? [brushKey] : undefined,\n key: comp,\n data: brushData,\n });\n });\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default lasso;\n","import extend from 'extend';\nimport rangeUtil from './util/range-util';\n\nfunction range(settings, options) {\n const brushKey = options && options.brushKey;\n const brushAxis = options && options.brushAxis;\n const brushArea = options && options.brushArea;\n const brushScale = options && options.brushScale;\n const isHorizontal = options && options.isHorizontal;\n const dock = options && options.dock;\n const isRtl = options && options.isRtl;\n\n const defaultSettings = {\n type: 'brush-range',\n key: 'range',\n displayOrder: 99,\n dock: rangeUtil.getDock(brushAxis, brushArea),\n settings: {\n brush: brushKey,\n fill: 'rgba(0, 0, 0, 0)',\n scale: brushScale,\n multiple: options && options.multiple === false ? options.multiple : true,\n direction: isHorizontal ? 'horizontal' : 'vertical',\n target: {\n component: brushAxis,\n fill: 'rgba( 82, 204, 82, 0.2 )',\n fillActive: 'rgba(82, 204, 82, 0.4)',\n },\n bubbles: {\n align: rangeUtil.getBublesAlign(isHorizontal, dock, isRtl),\n },\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default range;\n","import extend from 'extend';\nimport rangeUtil from './util/range-util';\n\nfunction rangeArea(settings, options) {\n const brushKey = options && options.brushKey;\n const brushAxis = options && options.brushAxis;\n const brushComponents = options && options.brushComponents ? options.brushComponents : [];\n const brushData = options && options.brushData ? options.brushData : ['elemNo'];\n const brushArea = options && options.brushArea;\n const isHorizontal = options && options.isHorizontal;\n const dock = options && options.dock;\n const isRtl = options && options.isRtl;\n const chartInstance = options && options.chartInstance;\n let isStartBorder = true;\n\n const defaultSettings = {\n type: 'brush-area-dir',\n key: 'area',\n displayOrder: 99,\n dock: rangeUtil.getDock(brushAxis, brushArea),\n settings: {\n brush: {\n components: [],\n },\n direction: isHorizontal ? 'horizontal' : 'vertical',\n target: {\n component: brushAxis,\n fill: 'rgba( 82, 204, 82, 0.2 )',\n fillActive: 'rgba(82, 204, 82, 0.4)',\n },\n bubbles: {\n align: rangeUtil.getBublesAlign(isHorizontal, dock, isRtl),\n label(data) {\n if (isStartBorder) {\n isStartBorder = false;\n const formattedStartValue = chartInstance\n .dataset(data.binStart.source.key)\n .field(data.binStart.source.field)\n .formatter()(data.binStart.value);\n return formattedStartValue;\n }\n isStartBorder = true;\n const formattedEndValue = chartInstance\n .dataset(data.binEnd.source.key)\n .field(data.binEnd.source.field)\n .formatter()(data.binEnd.value);\n return formattedEndValue;\n },\n },\n multiple: options && options.multiple === false ? options.multiple : true,\n },\n };\n\n brushComponents.forEach((comp) => {\n defaultSettings.settings.brush.components.push({\n contexts: brushKey ? [brushKey] : undefined,\n key: comp,\n data: brushData,\n action: 'add',\n });\n });\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default rangeArea;\n","import extend from 'extend';\n\nfunction sequentialLegend(settings, options) {\n const chartID = options && options.chartID;\n const isRtl = options && options.isRtl;\n let dock = options.dock || 'auto';\n\n if (dock === 'auto') {\n dock = options.chartHeight < options.chartWidth ? (isRtl ? 'left' : 'right') : 'bottom';\n }\n\n const titleFill = options.theme.getStyle(chartID, 'legend.title', 'color');\n const titleFontSize = options.theme.getStyle(chartID, 'legend.title', 'fontSize');\n const titleFontFamily = options.theme.getStyle(chartID, 'legend.title', 'fontFamily');\n const tickFill = options.theme.getStyle(chartID, 'legend.label', 'color');\n const tickFontSize = options.theme.getStyle(chartID, 'legend.label', 'fontSize');\n const tickFontFamily = options.theme.getStyle(chartID, 'legend.label', 'fontFamily');\n\n function getAlignValue(word) {\n switch (word) {\n case 'left':\n return 0;\n case 'right':\n return 1;\n case 'middle':\n default:\n return 0.5;\n }\n }\n\n const defaultSettings = {\n key: 'seqlegend',\n type: 'legend-seq',\n dock,\n\n // Settings to position the legend outside of the axis\n displayOrder: 200,\n minimumLayoutMode: 'MEDIUM',\n prioOrder: 0,\n\n settings: {\n align: isRtl ? getAlignValue('right') : getAlignValue('left'),\n major: {\n invert: dock === 'left' || dock === 'right' || isRtl,\n },\n title: {\n show: options.showTitle,\n fontSize: titleFontSize,\n fontFamily: titleFontFamily,\n fill: titleFill,\n },\n tick: {\n fill: tickFill,\n fontSize: tickFontSize,\n fontFamily: tickFontFamily,\n },\n },\n };\n const finalSettings = extend(true, {}, defaultSettings, settings);\n return finalSettings;\n}\n\nexport default sequentialLegend;\n","import extend from 'extend';\n\nfunction gridLine(settings, options) {\n const chartID = options && options.chartID;\n\n const axisLineStroke = options.theme.getStyle(chartID, 'grid.line.major', 'color');\n\n const defaultSettings = {\n displayOrder: -1,\n key: 'grid-line',\n type: 'grid-line',\n x: null,\n y: null,\n ticks: {\n stroke: axisLineStroke,\n },\n minorTicks: {\n stroke: axisLineStroke,\n },\n };\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default gridLine;\n","import extend from 'extend';\n\nfunction interaction(settings, options) {\n const gestures = (options && options.gestures) || [];\n const defaultSettings = {\n type: 'hammer',\n key: 'hammered',\n gestures,\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default interaction;\n","import extend from 'extend';\n\nfunction refLine(settings, options) {\n const chartID = options && options.chartID; // Should we validate if the parameter exists?\n const oobColor = options.theme.getStyle(chartID, 'referenceLine.outOfBounds', 'color');\n const oobBackgroundColor = options.theme.getStyle(chartID, 'referenceLine.outOfBounds', 'backgroundColor');\n\n const defaultSettings = {\n key: 'ref-line',\n type: 'ref-line',\n dock: 'center',\n prioOrder: -1,\n lines: {\n x: [],\n y: [],\n },\n style: {\n oob: {\n width: 7,\n fill: oobBackgroundColor,\n text: {\n fill: oobColor,\n },\n padding: {\n x: 7,\n y: 5,\n },\n },\n },\n };\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default refLine;\n","import extend from 'extend';\n\nfunction eventArea(settings) {\n const defaultSettings = {\n type: 'event-area',\n key: 'event-area',\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default eventArea;\n","import DimensionMeasureChart from './presets/dimension-measure-chart/dimension-measure-chart';\n\nfunction ChartPresets(type, chartBuilder, options) {\n switch (type) {\n case 'dimension-measure-chart':\n DimensionMeasureChart(chartBuilder, options);\n break;\n default:\n throw Error('There is no chart preset with that type');\n }\n}\n\nexport default ChartPresets;\n","/**\n * Configuration for disclaimers\n *\n */\n\n/**\n * Placement on chart\n */\nconst ALIGNMENT = {\n CENTER: 0,\n BOTTOM: 1,\n};\n\n/**\n * Configuration of all disclaimers\n *\n * label - key for translation\n * alignment - Placement on chart\n * default - Supported by default. If 'false' the disclaimer needs to be set to 'true' in supportedDisclaimers to be valid\n */\nconst DISCLAIMERS = [\n {\n label: 'NoDataExist',\n alignment: ALIGNMENT.CENTER,\n default: true,\n },\n {\n label: 'RequireNumericDimension',\n alignment: ALIGNMENT.CENTER,\n default: false,\n },\n {\n label: 'OnlyNanData',\n alignment: ALIGNMENT.CENTER,\n default: true,\n },\n {\n label: 'OnlyNegativeOrZeroValues',\n alignment: ALIGNMENT.CENTER,\n default: false,\n },\n {\n label: 'LimitedData',\n alignment: ALIGNMENT.BOTTOM,\n default: false,\n },\n {\n label: 'OnlyNanColor',\n alignment: ALIGNMENT.BOTTOM,\n default: false,\n },\n {\n label: 'NegativeOrZeroValues',\n alignment: ALIGNMENT.BOTTOM,\n default: false,\n },\n {\n label: 'DataRangeIncludingZero',\n alignment: ALIGNMENT.BOTTOM,\n default: false,\n },\n];\n\nexport default {\n DISCLAIMERS,\n ALIGNMENT,\n};\n","/**\n * Disclaimer utility for setting attributes needed for the disclaimer component\n *\n * @exports objects.picasso/disclaimer/disclaimer-attributes-utils\n */\nimport DisclaimersConfig from './disclaimers-config';\n\n/**\n * Checks if the data range in measures and axis spans over the value 0\n * @ignore\n * @param measureAxis\n * @param measureInfo\n * @returns {boolean} True if the data range in any measure or the given axis spans over 0\n */\nfunction hasDataRangeIncludingZero(measureAxis, measureInfo) {\n const len = measureInfo.length;\n let i;\n let explicitMinOn;\n let explicitMaxOn;\n let min;\n let max;\n if (measureAxis) {\n explicitMinOn =\n !measureAxis.autoMinMax &&\n (measureAxis.minMax === 'min' || measureAxis.minMax === 'minMax') &&\n measureAxis.min !== null &&\n !Number.isNaN(+measureAxis.min);\n explicitMaxOn =\n !measureAxis.autoMinMax &&\n (measureAxis.minMax === 'max' || measureAxis.minMax === 'minMax') &&\n measureAxis.max !== null &&\n !Number.isNaN(+measureAxis.max);\n }\n min = Number.MAX_VALUE;\n max = -Number.MAX_VALUE;\n\n // return true if data contains zero\n for (i = 0; i < len; i++) {\n min = Math.min(min, measureInfo[i].qMin);\n max = Math.max(max, measureInfo[i].qMax);\n if (min <= 0 && max >= 0) {\n return true;\n }\n }\n\n // return true if axis explicits contains zero\n min = explicitMinOn ? measureAxis.min : min;\n max = explicitMaxOn ? measureAxis.max : max;\n return min <= 0 && max >= 0;\n}\n\nfunction hasSubNodes(stackedDataPages) {\n return (\n stackedDataPages && stackedDataPages[0] && stackedDataPages[0].qData[0] && stackedDataPages[0].qData[0].qSubNodes\n );\n}\n\nconst util = {\n getNoDataExistAttribute(qHyperCube) {\n return qHyperCube.qSize.qcy * qHyperCube.qSize.qcx === 0;\n },\n\n getLimitedDataAttribute(qHyperCube, opts) {\n let result = false;\n let maxNbrOfDimensions;\n if (!qHyperCube) {\n result = opts.explicitLimitedData === true;\n } else if (opts.explicitLimitedData !== undefined) {\n result = opts.explicitLimitedData === true;\n } else if (qHyperCube.qDataPages && qHyperCube.qDataPages[0]) {\n result = !opts.paging && qHyperCube.qSize.qcy > qHyperCube.qDataPages[0].qMatrix.length;\n } else if (hasSubNodes(qHyperCube.qStackedDataPages)) {\n maxNbrOfDimensions = opts.maxNbrOfDimensions ? opts.maxNbrOfDimensions : 2;\n if (qHyperCube.qDimensionInfo.length >= maxNbrOfDimensions) {\n result = qHyperCube.qStackedDataPages[0].qData[0].qSubNodes.some((node) => node.qDown > 0);\n } else {\n result =\n qHyperCube.qStackedDataPages[0].qData[0].qSubNodes.length < qHyperCube.qStackedDataPages[0].qArea.qHeight;\n }\n }\n return result;\n },\n\n getNegativeOrZeroValuesAttribute(qHyperCube, opts) {\n return !opts.supportNegative && qHyperCube.qMeasureInfo.some((measure) => measure.qMin <= 0);\n },\n\n getOnlyNegativeOrZeroValuesAttribute(qHyperCube, opts) {\n return (\n (!opts.supportNegative &&\n qHyperCube.qMeasureInfo.every((measure) => measure.qMax <= 0 && measure.qMax >= measure.qMin)) ||\n qHyperCube.qSize.qcy === 0\n );\n },\n\n getOnlyNanDataAttribute(qHyperCube, opts) {\n if (opts.explicitOnlyNanData !== undefined) {\n return opts.explicitOnlyNanData;\n }\n\n return qHyperCube.qMeasureInfo.every((measure) => measure.qMax < measure.qMin || measure.qMax === 'NaN');\n },\n\n getDataRangeIncludingZeroAttribute(data, opts) {\n return !opts.supportRangeOverZero && hasDataRangeIncludingZero(data.measureAxis, data.qHyperCube.qMeasureInfo);\n },\n\n /**\n * Apply attributes that configures disclaimers for a charts\n * @param {Object} options - Options\n * @param {Object} data - Layout data\n * @returns {Object}\n */\n applyAttributes(options, data) {\n const opts = options || {};\n const dataAttributes = {};\n\n opts.supportNegative = opts.supportNegative === undefined ? true : opts.supportNegative;\n opts.supportRangeOverZero = opts.supportRangeOverZero === undefined ? true : opts.supportRangeOverZero;\n\n DisclaimersConfig.DISCLAIMERS.forEach((config) => {\n dataAttributes[config.label] = false;\n });\n if (!data || !data.qHyperCube) {\n return dataAttributes;\n }\n dataAttributes.NoDataExist = this.getNoDataExistAttribute(data.qHyperCube);\n if (dataAttributes.NoDataExist) {\n return dataAttributes;\n }\n dataAttributes.RequireNumericDimension = opts.explicitRequireNumericDimension;\n if (dataAttributes.RequireNumericDimension) {\n return dataAttributes;\n }\n dataAttributes.LimitedData = this.getLimitedDataAttribute(data.qHyperCube, opts);\n dataAttributes.NegativeOrZeroValues = this.getNegativeOrZeroValuesAttribute(data.qHyperCube, opts);\n dataAttributes.OnlyNegativeOrZeroValues = this.getOnlyNegativeOrZeroValuesAttribute(data.qHyperCube, opts);\n dataAttributes.OnlyNanData = this.getOnlyNanDataAttribute(data.qHyperCube, opts);\n dataAttributes.DataRangeIncludingZero = this.getDataRangeIncludingZeroAttribute(data, opts);\n\n return dataAttributes;\n },\n};\nexport default util;\n","/**\n * Helper for disclaimer component\n *\n */\n\n/**\n * Create new Helper for disclaimer\n * @param disclaimersConfig {Array} List of disclaimer config objects\n * @param dataAttributes {Object} Config for which disclaimers that are valid to show\n * @param supportedDisclaimers {Object} Config for which disclaimers that are supported\n * @constructor\n */\nfunction Helper(disclaimersConfig, dataAttributes, supportedDisclaimers) {\n this.disclaimersConfig = disclaimersConfig;\n this.dataAttributes = dataAttributes;\n this.supportedDisclaimers = supportedDisclaimers;\n}\n\nfunction isValid(label, list) {\n return label && list && list[label];\n}\n\n/**\n * Returns true if disclaimer config is valid, supported and has an alignment\n * @param disclaimer {Object} Configuration for a disclaimer\n * @param alignment {Integer} Alignment value in disclaimers config\n * @returns {Boolean}\n */\nHelper.prototype.isValidAndSupported = function (disclaimer, alignment) {\n return (\n isValid(disclaimer.label, this.dataAttributes) &&\n (disclaimer.default || isValid(disclaimer.label, this.supportedDisclaimers)) &&\n alignment !== undefined &&\n disclaimer.alignment === alignment\n );\n};\n\n/**\n * Returns true if there are any valid disclaimers for an alignment\n * @param alignment {Integer} Alignment value in disclaimers config\n * @returns {Boolean}\n */\nHelper.prototype.isAnyValidDisclaimer = function (alignment) {\n let result = false;\n const self = this;\n this.disclaimersConfig.forEach((config) => {\n if (self.isValidAndSupported(config, alignment)) {\n result = true;\n }\n });\n return result;\n};\n\n/**\n * Gets all translated disclaimer messages for an alignment\n * @param alignment {Integer} Alignment value in disclaimers config\n * @param translator {Object} Translator component\n * @returns {string}\n */\nHelper.prototype.getMessage = function (alignment, translator) {\n let str = '';\n const self = this;\n if (translator) {\n this.disclaimersConfig.forEach((config) => {\n if (self.isValidAndSupported(config, alignment)) {\n str += `${translator.get(`Object.Disclaimer.${config.label}`)} `;\n }\n });\n }\n return str;\n};\n\nexport default Helper;\n","/**\n * Disclaimer component for Picasso base charts\n *\n * @exports objects.picasso/disclaimer/disclaimer\n */\n\nimport extend from 'extend';\nimport DisclaimersConfig from './disclaimers-config';\nimport AttributesUtil from './disclaimer-attributes-util';\nimport DisclaimerComponentHelper from './disclaimer-component-helper';\n\nDisclaimer.ERRORS = {\n SET: 'Calling Disclaimer.set() without attributes',\n DISPLAY: 'Calling Disclaimer.display() before attributes are applied',\n};\n\n/**\n * Create new disclaimer component\n * @param {Object} options - A reference to chart options\n * @constructor\n */\nfunction Disclaimer(environment) {\n this.environment = environment;\n this.clear();\n}\n\nDisclaimer._applyDefaultSupport = function (supportedDisclaimers, disclaimersConfig) {\n let supported = supportedDisclaimers;\n if (!supported) {\n supported = {};\n }\n disclaimersConfig.forEach((config) => {\n if (supported[config.label] === undefined) {\n supported[config.label] = config.default;\n }\n });\n return supported;\n};\n\nDisclaimer.prototype.getComponentSettings = function () {\n const { translator } = this.environment;\n const supportedDisclaimers = extend(true, {}, this.vizAttributes.supportedDisclaimers);\n const helper = new DisclaimerComponentHelper(\n DisclaimersConfig.DISCLAIMERS,\n this.dataAttributes,\n supportedDisclaimers\n );\n\n let message;\n let dock;\n if (helper.isAnyValidDisclaimer(DisclaimersConfig.ALIGNMENT.CENTER)) {\n message = helper.getMessage(DisclaimersConfig.ALIGNMENT.CENTER, translator);\n dock = 'center';\n } else if (helper.isAnyValidDisclaimer(DisclaimersConfig.ALIGNMENT.BOTTOM)) {\n message = helper.getMessage(DisclaimersConfig.ALIGNMENT.BOTTOM, translator);\n dock = 'bottom';\n } else {\n return undefined;\n }\n\n return {\n key: 'disclaimer',\n type: 'disclaimer',\n layout: {\n displayOrder: 1000,\n dock,\n },\n settings: {\n label: message,\n rtl: this.environment?.options?.direction === 'rtl',\n },\n };\n};\n\n/**\n * Set attributes that configures disclaimers for a charts\n * @param {Object} attributes - Disclaimer settings for a chart\n */\nDisclaimer.prototype.set = function (attributes) {\n this.clear();\n if (attributes) {\n this.vizAttributes = attributes;\n this.dataAttributes = AttributesUtil.applyAttributes(this.vizAttributes.options, this.vizAttributes.data);\n } else {\n throw new Error(Disclaimer.ERRORS.SET);\n }\n};\n\n/**\n * Clears disclaimer settings\n */\nDisclaimer.prototype.clear = function () {\n this.vizAttributes = null;\n this.dataAttributes = null;\n};\n\nexport default Disclaimer;\n","import extend from 'extend';\nimport { getValue } from 'qlik-chart-modules';\n\nimport Class from '../extra/class';\nimport ChartBuilder from './chart-builder/chart-builder';\nimport Disclaimer from './disclaimer/disclaimer';\n\nfunction getData(backendApi, hyperCube, rect) {\n let page = {\n qTop: 0,\n qLeft: 0,\n qWidth: hyperCube.qSize.qcx,\n qHeight: 10000 / hyperCube.qSize.qcx,\n };\n let dataPagesPath;\n\n if (rect) {\n const width = rect.width || hyperCube.qSize.qcx;\n const maxHeight = Math.floor(10000 / width);\n page = {\n qTop: rect.top || 0,\n qLeft: rect.left || 0,\n qWidth: width,\n qHeight: rect.height ? Math.min(rect.height, maxHeight) : maxHeight,\n };\n } else {\n page = {\n qTop: 0,\n qLeft: 0,\n qWidth: hyperCube.qSize.qcx,\n qHeight: 10000 / hyperCube.qSize.qcx,\n };\n }\n\n switch (hyperCube.qMode) {\n case 'K': // Stacked mode\n dataPagesPath = 'qStackedDataPages';\n break;\n case 'S': // Straight table mode\n default:\n dataPagesPath = 'qDataPages';\n break;\n }\n\n return backendApi.getData([page], null, hyperCube).then((pages) => {\n hyperCube[dataPagesPath] = pages;\n });\n}\n\nconst ChartView = Class.extend({\n init(picasso, $element, environment, backendApi, selectionsApi) {\n this.$element = $element;\n this.environment = environment;\n this.backendApi = backendApi;\n\n this._selectionsApi = selectionsApi;\n this._on = false;\n this._disclaimer = new Disclaimer(environment);\n this._dataPaths = ['qHyperCube'];\n\n const self = this;\n\n // Set properties that should be available in subclasses\n\n this.picassoElement = $element[0];\n this.picassoElement.className += ' picasso-chart';\n\n // Paint a visually empty Picasso chart containing an event-area component\n this.chartInstance = picasso.chart({\n element: this.picassoElement,\n settings: {\n components: [\n ChartBuilder.createComponent('event-area', {\n mounted(element) {\n // Mounted is run synchronously so this.dataAreaElem will be available in subclass constructors\n self.dataAreaElem = element;\n },\n }),\n ],\n },\n });\n },\n\n updateEnvironment(environment) {\n this.environment = environment;\n },\n\n isRtl() {\n return this.environment.options?.direction === 'rtl';\n },\n\n setDataPaths(dataPaths) {\n this._dataPaths = dataPaths;\n },\n\n getData(backendApi, hyperCube, rect) {\n return getData(backendApi, hyperCube, rect);\n },\n\n hasValidData() {\n return true;\n },\n\n paint() {\n // Use this.layout\n if (this.hasValidData()) {\n this._disclaimer.set(this.getDisclaimerAttributes(this.layout));\n const disclaimerComponent = this._disclaimer.getComponentSettings();\n const isSuppressingDisc = disclaimerComponent?.layout?.dock === 'center';\n\n const chartSettings = this.createChartSettings(this.layout);\n if (isSuppressingDisc) {\n chartSettings.components = [disclaimerComponent];\n } else if (disclaimerComponent) {\n chartSettings.components.push(disclaimerComponent);\n }\n ChartBuilder.validateComponentKeys(chartSettings.components).forEach((errorMsg) => {\n console.error(errorMsg);\n });\n\n this.updateChart(this.layout, chartSettings);\n this._painted = true;\n }\n return Promise.resolve();\n },\n\n resize() {\n // Use this.layout\n if (!this.layout) {\n // There are cases where resize is run before updateData, therefore layout is undefined\n return undefined;\n }\n return this.paint();\n },\n\n createChartSettings() {\n throw new Error('Subclass must implement \"createChartSettings\" function');\n },\n\n addSnapshotChartSettings(settings, layout) {\n const { freeResize } = this.environment.options;\n if (!freeResize && layout.snapshotData) {\n settings.dockLayout.logicalSize = {\n width: layout.snapshotData.content.size.w,\n height: layout.snapshotData.content.size.h,\n preserveAspectRatio: true,\n };\n }\n },\n\n updateData(layout) {\n // clone the layout so that updates ignored by suppressOnPaint does not affect it.\n if (this._destroyed) {\n return Promise.reject();\n }\n\n this.layout = extend(true, {}, layout);\n this.layout.permissions = layout.permissions;\n return Promise.resolve();\n },\n\n updateChart(layout, settings, isPartialData) {\n const localeInfo = this.environment.appLayout?.qLocaleInfo ?? {};\n const data = this._dataPaths.map((path) => ({\n type: 'q',\n key: path,\n config: {\n localeInfo,\n },\n data: getValue(layout, path.replace(/\\//g, '.')),\n }));\n if (this.colorService) {\n data.push(...this.colorService.getData());\n }\n\n this.chartInstance.update({\n data,\n settings,\n partialData: isPartialData,\n });\n\n const STATE_DATA_UPDATED = 2;\n this.picassoElement.setAttribute('data-state', STATE_DATA_UPDATED); // For integration test\n },\n\n destroy() {\n this._destroyed = true;\n this.off();\n this.chartInstance.destroy();\n },\n\n getViewState() {\n return {};\n },\n\n isLassoDisabled() {\n return true;\n },\n\n setSnapshotData(snapshotLayout) {\n if (!snapshotLayout.snapshotData) {\n snapshotLayout.snapshotData = {};\n }\n snapshotLayout.snapshotData.content = {\n // eslint-disable-line no-param-reassign\n chartData: {},\n size: {\n w: this.$element.width(),\n h: this.$element.height(),\n },\n };\n },\n\n getDisclaimerAttributes(layout) {\n return {\n data: layout,\n };\n },\n});\n\nexport default ChartView;\n","'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, columnOrder) {\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 if (Array.isArray(columnOrder) && columnOrder.some((el, i) => el !== i)) {\n const correctIndex = columnOrder.indexOf(fieldIdx);\n if (correctIndex !== -1) {\n fieldIdx = correctIndex;\n }\n }\n\n fieldIdx -= page.qArea.qLeft;\n\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, columnOrder }) {\n let propCell = mainCell;\n if (p.field && p.field !== f) {\n const propCellFn = getFieldAccessor(p.field, page, { cache }, columnOrder);\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 }, cube.qColumnOrder);\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 columnOrder: cube.qColumnOrder,\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, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\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 return Array.from(this);\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","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\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_find from \"./find.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\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[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 objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\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 find: node_find,\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 [Symbol.iterator]: node_iterator\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 {optional} from \"./accessors.js\";\nimport {Node, computeHeight} from \"./hierarchy/index.js\";\n\nvar preroot = {depth: -1},\n ambiguous = {},\n imputed = {};\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 path;\n\n function stratify(data) {\n var nodes = Array.from(data),\n currentId = id,\n currentParentId = parentId,\n n,\n d,\n i,\n root,\n parent,\n node,\n nodeId,\n nodeKey,\n nodeByKey = new Map;\n\n if (path != null) {\n const I = nodes.map((d, i) => normalize(path(d, i, data)));\n const P = I.map(parentof);\n const S = new Set(I).add(\"\");\n for (const i of P) {\n if (!S.has(i)) {\n S.add(i);\n I.push(i);\n P.push(parentof(i));\n nodes.push(imputed);\n }\n }\n currentId = (_, i) => I[i];\n currentParentId = (_, i) => P[i];\n }\n\n for (i = 0, n = nodes.length; i < n; ++i) {\n d = nodes[i], node = nodes[i] = new Node(d);\n if ((nodeId = currentId(d, i, data)) != null && (nodeId += \"\")) {\n nodeKey = node.id = nodeId;\n nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node);\n }\n if ((nodeId = currentParentId(d, i, data)) != null && (nodeId += \"\")) {\n node.parent = nodeId;\n }\n }\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (nodeId = node.parent) {\n parent = nodeByKey.get(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 } else {\n if (root) throw new Error(\"multiple roots\");\n root = node;\n }\n }\n\n if (!root) throw new Error(\"no root\");\n\n // When imputing internal nodes, only introduce roots if needed.\n // Then replace the imputed marker data with null.\n if (path != null) {\n while (root.data === imputed && root.children.length === 1) {\n root = root.children[0], --n;\n }\n for (let i = nodes.length - 1; i >= 0; --i) {\n node = nodes[i];\n if (node.data !== imputed) break;\n node.data = null;\n }\n }\n\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 = optional(x), stratify) : id;\n };\n\n stratify.parentId = function(x) {\n return arguments.length ? (parentId = optional(x), stratify) : parentId;\n };\n\n stratify.path = function(x) {\n return arguments.length ? (path = optional(x), stratify) : path;\n };\n\n return stratify;\n}\n\n// To normalize a path, we coerce to a string, strip the trailing slash if any\n// (as long as the trailing slash is not immediately preceded by another slash),\n// and add leading slash if missing.\nfunction normalize(path) {\n path = `${path}`;\n let i = path.length;\n if (slash(path, i - 1) && !slash(path, i - 2)) path = path.slice(0, -1);\n return path[0] === \"/\" ? path : `/${path}`;\n}\n\n// Walk backwards to find the first slash that is not the leading slash, e.g.:\n// \"/foo/bar\" ⇥ \"/foo\", \"/foo\" ⇥ \"/\", \"/\" ↦ \"\". (The root is special-cased\n// because the id of the root must be a truthy value.)\nfunction parentof(path) {\n let i = path.length;\n if (i < 2) return \"\";\n while (--i > 1) if (slash(path, i)) break;\n return path.slice(0, i);\n}\n\n// Slashes can be escaped; to determine whether a slash is a path delimiter, we\n// count the number of preceding backslashes escaping the forward slash: an odd\n// number indicates an escaped forward slash.\nfunction slash(path, i) {\n if (path[i] === \"/\") {\n let k = 0;\n while (i > 0 && path[--i] === \"\\\\\") ++k;\n if ((k & 1) === 0) return true;\n }\n return false;\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\nconst EPSILON = 1e-15; // To compensate floating error\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) + EPSILON)\n .toFixed(nDecimals)\n .slice(2)\n .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","const ChartStyleComponent = (fontResolver, theme, chartId) => {\n const propertyDefs = {};\n propertyDefs.getOptions = (key, ref) => {\n const getFontFamilyComponent = () => ({\n ref: `${ref}.fontFamily`,\n component: 'dropdown',\n options: () => fontResolver.getOptions(`${ref}.fontFamily`),\n defaultValue: () => fontResolver.getDefaultValue(`${ref}.fontFamily`),\n });\n\n const getFontSizeComponent = () => ({\n ref: `${ref}.fontSize`,\n component: 'dropdown',\n width: true,\n options: () => fontResolver.getOptions(`${ref}.fontSize`),\n defaultValue: () => fontResolver.getDefaultValue(`${ref}.fontSize`),\n });\n\n const getColorComponent = (theme, chartId) => ({\n ref: `${ref}.fontColor`,\n component: 'color-picker',\n width: false,\n defaultValue: () => {\n const color = theme.getStyle(chartId, `${ref}.color`, 'color');\n const palette = theme.getDataColorPickerPalettes()[0].colors;\n const index = palette.indexOf(color);\n return { color, index };\n },\n });\n\n const getFontWrapperComponent = (theme, chartId) => ({\n fontWrapper: {\n component: 'inline-wrapper',\n items: {\n fontSize: {\n ...getFontSizeComponent(),\n },\n fontColor: {\n ...getColorComponent(theme, chartId),\n },\n },\n },\n });\n return {\n labelSection: {\n component: 'items',\n ref: 'components',\n key,\n items: {\n fontFamily: {\n ...getFontFamilyComponent(),\n },\n ...getFontWrapperComponent(theme, chartId),\n },\n },\n };\n };\n return propertyDefs;\n};\n\nexport const getChartFontResolver = (theme, translator, chartId, createFontResolver, flags) =>\n createFontResolver({\n theme,\n translator,\n flags,\n config: {\n id: chartId,\n paths: ['axis.title', 'axis.label.name', 'label.value', 'legend.title', 'legend.label'],\n },\n });\n\nconst overrides = (key, layout) => (layout.components || []).find((c) => c.key === key);\n\nexport const getAxisTitleStyle = (chartId, theme, layout, flags) => {\n const axis = flags.isEnabled('CLIENT_IM_3364') ? overrides('axis', layout)?.axis : {};\n return {\n text: {\n fontFamily: axis?.title?.fontFamily || theme.getStyle(chartId, 'axis.title', 'fontFamily'),\n fontSize: axis?.title?.fontSize || theme.getStyle(chartId, 'axis.title', 'fontSize'),\n fill: axis?.title?.fontColor?.color || theme.getStyle(chartId, 'axis.title', 'color'),\n },\n };\n};\nexport const getAxisLabelStyle = (chartId, theme, layout, flags) => {\n const axis = flags.isEnabled('CLIENT_IM_3364') ? overrides('axis', layout)?.axis : {};\n return {\n labels: {\n fontFamily: axis?.label?.name?.fontFamily || theme.getStyle(chartId, 'axis.label.name', 'fontFamily'),\n fontSize: axis?.label?.name?.fontSize || theme.getStyle(chartId, 'axis.label.name', 'fontSize'),\n fill: axis?.label?.name?.fontColor?.color || theme.getStyle(chartId, 'axis.label.name', 'color'),\n },\n };\n};\n\nexport const getValueLabelStyle = (chartId, styles, layout, flags) => {\n const value = flags.isEnabled('CLIENT_IM_3364') ? overrides('value', layout)?.label : {};\n const fontFamily = value?.value?.fontFamily || styles.label.value.fontFamily;\n let fontSize = value?.value?.fontSize || styles.label.value.fontSize;\n fontSize = parseFloat(fontSize);\n const fill = value?.value?.fontColor?.color;\n return {\n fontFamily,\n fontSize,\n fill,\n };\n};\n\nexport const getLegendTitleStyle = (chartId, theme, layout, flags) => {\n const legend = flags.isEnabled('CLIENT_IM_3051') ? overrides('legend', layout)?.legend : {};\n return {\n fontFamily: legend?.title?.fontFamily || theme.getStyle(chartId, 'legend.title', 'fontFamily'),\n fontSize: legend?.title?.fontSize || theme.getStyle(chartId, 'legend.title', 'fontSize'),\n color: legend?.title?.fontColor?.color || theme.getStyle(chartId, 'legend.title', 'color'),\n };\n};\n\nexport const getLegendLabelStyle = (chartId, theme, layout, flags) => {\n const legend = flags.isEnabled('CLIENT_IM_3051') ? overrides('legend', layout)?.legend : {};\n return {\n fontFamily: legend?.label?.fontFamily || theme.getStyle(chartId, 'legend.label', 'fontFamily'),\n fontSize: legend?.label?.fontSize || theme.getStyle(chartId, 'legend.label', 'fontSize'),\n color: legend?.label?.fontColor?.color || theme.getStyle(chartId, 'legend.label', 'color'),\n };\n};\n\nexport default ChartStyleComponent;\n","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 { getValueLabelStyle } from '@qlik/common/extra/chart-style-component';\nimport Color from '@qlik/common/extra/color';\n\n//\n// Implementation details\n//\n\nfunction createLabelSettings(layout, themeService, chartId, flags) {\n const styles = themeService.getStyles();\n const valueLabelSettings = getValueLabelStyle(chartId, styles, layout, flags);\n const boxFillColor = valueLabelSettings.fill || styles.label.value.color;\n const getContrastColor = () => (ctx) =>\n Color.isDark(ctx.node.attrs.fill) ? styles.label.value.lightColor : styles.label.value.darkColor;\n return {\n settings: {\n sources: [\n {\n strategy: {\n settings: {\n ...valueLabelSettings,\n labels: [\n {\n placements: [\n { fill: boxFillColor },\n {\n fill:\n flags.isEnabled('CLIENT_IM_3364') && valueLabelSettings.fill\n ? boxFillColor\n : getContrastColor(),\n },\n ],\n },\n ],\n },\n },\n },\n ],\n },\n };\n}\n\nconst Label = {\n createSettings: createLabelSettings,\n};\n\nexport default Label;\n","import { getValue, themeService as createThemeService } from 'qlik-chart-modules';\nimport ChartBuilder from '@qlik/common/picasso/chart-builder/chart-builder';\nimport DependentInteractions from '@qlik/common/picasso/selections/dependent-interactions';\nimport { getAxisLabelStyle, getAxisTitleStyle } from '@qlik/common/extra/chart-style-component';\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 // Create components\n const chartBuilder = ChartBuilder.create({\n chartID,\n theme,\n isRtl,\n });\n const themeService = createThemeService({\n theme,\n config: {\n id: 'histogram',\n },\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 axisTitleStyle: getAxisTitleStyle(chartID, theme, layout, chartView.flags),\n axisLabelStyle: getAxisLabelStyle(chartID, theme, layout, chartView.flags),\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, themeService, chartID, chartView.flags);\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, flags, lasso, picasso, $element, backendApi, selectionsApi, renderState }) {\n this._super(picasso, $element, environment, backendApi, selectionsApi);\n\n this.flags = flags;\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&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return s(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function s(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function u(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return l(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function l(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function c(e,r,n){if(e){for(var t=0;t<e.length;t++)if(e[t][r]===n)return t;return-1}return-1}var p={isOrderedSubset:function(e,r){if(!(e&&r&&e.length&&r.length))return!1;var n=e.indexOf(r[0]);if(-1!==n){for(var t=0;t<r.length;t++){var o=e.indexOf(r[t]);if(n>o)return!1;n=o}return!0}return!1},indexAdded:function(e,r){var n;for(n=0;n<e.length;++n)e[n]>=0&&e[n]>=r&&++e[n];e.push(r)},indexRemoved:function(e,r){var n,t=0;for(n=0;n<e.length;++n)e[n]>r?--e[n]:e[n]===r&&(t=n);return e.splice(t,1),t},findItemByPropertyValue:function(e,r,n){if(e){for(var t=0;t<e.length;t++)if(e[t][r]===n)return e[t];return null}return null},findIndexByPropertyValue:c};var f=n(1),m=n.n(f);var d={addDimensions:function(e){var r,n=e.exportFormat,t=e.qHyperCubeDef,o=n.data[0];(r=o.dimensions).push.apply(r,a(t.qDimensions));var s,u=i.getValue(t,\"qLayoutExclude.qHyperCubeDef.qDimensions\");u&&(s=o.excludedDimensions).push.apply(s,a(u))},addMeasures:function(e){var r,n=e.exportFormat,t=e.qHyperCubeDef,o=n.data[0];(r=o.measures).push.apply(r,u(t.qMeasures));var a,s=i.getValue(t,\"qLayoutExclude.qHyperCubeDef.qMeasures\");s&&(a=o.excludedMeasures).push.apply(a,u(s))},setInterColumnSortOrder:function(e){var r=e.exportFormat,n=e.qHyperCubeDef,t=r.data[0];n.qInterColumnSortOrder||(n.qInterColumnSortOrder=[]),t.interColumnSortOrder=n.qInterColumnSortOrder.concat();var o=i.getValue(n,\"qLayoutExclude.qHyperCubeDef.qInterColumnSortOrder\");o&&p.isOrderedSubset(o,t.interColumnSortOrder)&&(t.interColumnSortOrder=o.concat())},copyProperties:function(e){var r=e.exportFormat,n=e.properties;Object.keys(n).forEach((function(e){r.properties[e]=n[e]}))},updateLayoutExclude:function(e){var r=e.exportFormat,n=e.properties;n.qLayoutExclude||(n.qLayoutExclude={}),n.qLayoutExclude.disabled&&(Object.keys(n.qLayoutExclude.disabled).forEach((function(e){r.properties.hasOwnProperty(e)||(r.properties[e]=n.qLayoutExclude.disabled[e])})),delete n.qLayoutExclude.disabled),n.qLayoutExclude.changed&&(!function(e){Object.keys(e.qLayoutExclude.changed).forEach((function(r){e.qLayoutExclude.changed[r].to===i.getValue(e,r)&&i.setValue(e,r,e.qLayoutExclude.changed[r].from)}))}(n),delete n.qLayoutExclude.changed),n.qLayoutExclude.quarantine&&!i.isEmpty(n.qLayoutExclude.quarantine)||delete n.qLayoutExclude},storeMeasuresModifiers:function(e){e.forEach((function(e){m.a.cleanUpMeasure(e),e.qDef.modifiers&&(e.store={modifiers:e.qDef.modifiers},delete e.qDef.modifiers)}))}};function y(e,r,n){var t,o,a=i.getValue(e,r);if(!i.isAtomicValue(a))try{if((o=(o=(t=JSON.stringify(a)).match(/:\\{/g))?o.length:0)>2)return;a=JSON.parse(t)}catch(e){return}i.getValue(e,\"qLayoutExclude.quarantine\")||i.setValue(e,\"qLayoutExclude.quarantine\",{});var s=i.getValue(e,\"qLayoutExclude.quarantine\");s[n]||(s[n]={}),s[n][r]=a}var q=n(0),b=n.n(q);function D(e,r){var n=b()(!0,{},r,e);return i.getValue(n,\"qOtherTotalSpec.qOtherCounted\")||i.setValue(n,\"qOtherTotalSpec.qOtherCounted\",{qv:\"10\"}),i.getValue(n,\"qOtherTotalSpec.qOtherLimit\")||i.setValue(n,\"qOtherTotalSpec.qOtherLimit\",{qv:\"0\"}),n.hasOwnProperty(\"othersLabel\")||(n.othersLabel=\"Others\"),n}function v(e,r){return b()(!0,{},r,e)}function g(e,r,n){return\"function\"==typeof e?e(r):Number.isNaN(+e)?n:e}var h=Math.pow(2,53)-1;function x(e){return function(e){if(Array.isArray(e))return E(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return E(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return E(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function E(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function A(e){return function(e){if(Array.isArray(e))return C(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return C(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return C(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function C(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}var I={importCommonProperties:function(e,r,n){var t=\"masterobject\"===i.getValue(r,\"properties.qInfo.qType\")?\"masterobject\":i.getValue(n,\"qInfo.qType\");i.setValue(e,\"qInfo.qType\",t),e.visualization=n.visualization},copyPropertyIfExist:function(e,r,n){r.hasOwnProperty(e)&&(n[e]=r[e])},copyPropertyOrSetDefault:function(e,r,n,t){r.hasOwnProperty(e)?n[e]=r[e]:n[e]=t},getDefaultDimension:function(){return{qDef:{autoSort:!0,cId:\"\",othersLabel:\"Others\"},qLibraryId:\"\",qNullSuppression:!1,qOtherLabel:\"Others\",qOtherTotalSpec:{qOtherLimitMode:\"OTHER_GE_LIMIT\",qOtherMode:\"OTHER_OFF\",qOtherSortMode:\"OTHER_SORT_DESCENDING\",qSuppressOther:!1}}},getDefaultMeasure:function(){return{qDef:{autoSort:!0,cId:\"\",numFormatFromTemplate:!0},qLibraryId:\"\",qTrendLines:[]}},addDimensions:function(e){var r,n=e.exportFormat,t=e.maxDimensions,o=e.minDimensions,i=e.newHyperCubeDef,a=e.defaultDimension,s=n.data[0];for(r=0;r<s.dimensions.length;++r){var u=D(s.dimensions[r],a);i.qDimensions.length<t?i.qDimensions.push(u):i.qLayoutExclude.qHyperCubeDef.qDimensions.push(u)}for(r=0;r<s.excludedDimensions.length;++r){var l=D(s.excludedDimensions[r],a);i.qDimensions.length<o?i.qDimensions.push(l):i.qLayoutExclude.qHyperCubeDef.qDimensions.push(l)}},addMeasures:function(e){var r,n=e.exportFormat,t=e.maxMeasures,o=e.minMeasures,i=e.newHyperCubeDef,a=e.defaultMeasure,s=n.data[0];for(r=0;r<s.measures.length;++r){var u=v(s.measures[r],a);i.qMeasures.length<t?i.qMeasures.push(u):i.qLayoutExclude.qHyperCubeDef.qMeasures.push(u)}for(r=0;r<s.excludedMeasures.length;++r){var l=v(s.excludedMeasures[r],a);i.qMeasures.length<o?i.qMeasures.push(l):i.qLayoutExclude.qHyperCubeDef.qMeasures.push(l)}},getMaxMinDimensionMeasure:function(e){var r=e.exportFormat,n=e.dataDefinition,t=void 0===n?{}:n,o=r.data[0],i=t.dimensions||{max:0},a=t.measures||{max:0},s=g(a.max,o.dimensions.length,h),u=g(a.min,o.dimensions.length,0);return{maxDimensions:g(i.max,s,h),minDimensions:g(i.min,u,0),maxMeasures:s,minMeasures:u}},setInterColumnSortOrder:function(e){var r=e.exportFormat,n=e.newHyperCubeDef,t=r.data[0],o=n.qDimensions.length+n.qMeasures.length;n.qInterColumnSortOrder=t.interColumnSortOrder.concat();var i=n.qInterColumnSortOrder.length;if(i!==o)for(n.qLayoutExclude&&(n.qLayoutExclude.qHyperCubeDef.qInterColumnSortOrder=t.interColumnSortOrder.concat());i!==o;)i<o?(p.indexAdded(n.qInterColumnSortOrder,i),++i):(--i,p.indexRemoved(n.qInterColumnSortOrder,i))},createNewProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=e.hypercubePath,o={qLayoutExclude:{disabled:{},quarantine:{}}};return Object.keys(r.properties).forEach((function(e){\"qLayoutExclude\"===e?r.properties[e].quarantine&&(o.qLayoutExclude.quarantine=b()(!0,{},r.properties[e].quarantine)):\"qHyperCubeDef\"===e&&t?i.setValue(o,\"\".concat(t,\".qHyperCubeDef\"),r.properties.qHyperCubeDef):n.hasOwnProperty(e)||-1!==[\"qMetaDef\",\"descriptionExpression\",\"labelExpression\"].indexOf(e)||function(e,r){return\"components\"===r&&Array.isArray(e[r])&&e[r].some((function(e){return\"general\"===e.key}))}(r.properties,e)?o[e]=r.properties[e]:o.qLayoutExclude.disabled[e]=r.properties[e]})),null===(o=b()(!0,{},n,o)).components&&(o.components=[]),o},shouldInitLayoutExclude:function(e){var r=e.exportFormat,n=e.maxDimensions,t=e.minDimensions,o=e.maxMeasures,i=e.minMeasures,a=r.data[0];return a.dimensions.length>n&&n>0||a.measures.length>o&&o>0||a.excludedDimensions.length>0&&a.dimensions.length+a.excludedDimensions.length>t||a.excludedMeasures.length>0&&a.measures.length+a.excludedMeasures.length>i||!o&&a.measures.length>0||!n&&a.dimensions.length>0},initLayoutExclude:function(e){var r=e.exportFormat,n=e.maxDimensions,t=e.minDimensions,o=e.maxMeasures,i=e.minMeasures,a=e.newHyperCubeDef,s=r.data[0];a.qLayoutExclude||(a.qLayoutExclude={}),a.qLayoutExclude.qHyperCubeDef||(a.qLayoutExclude.qHyperCubeDef={}),(s.dimensions.length>n&&n>0||s.excludedDimensions&&s.excludedDimensions.length&&s.dimensions.length+s.excludedDimensions.length>t)&&(a.qLayoutExclude.qHyperCubeDef.qDimensions||(a.qLayoutExclude.qHyperCubeDef.qDimensions=[])),(s.measures.length>o&&o>0||s.excludedMeasures&&s.excludedMeasures.length&&s.measures.length+s.excludedMeasures.length>i)&&(a.qLayoutExclude.qHyperCubeDef.qMeasures||(a.qLayoutExclude.qHyperCubeDef.qMeasures=[])),!o&&s.measures.length&&(a.qLayoutExclude.qHyperCubeDef.qMeasures||(a.qLayoutExclude.qHyperCubeDef.qMeasures=[])),!n&&s.dimensions.length&&(a.qLayoutExclude.qHyperCubeDef.qDimensions||(a.qLayoutExclude.qHyperCubeDef.qDimensions=[]))},updateDimensionsOnAdded:function(e){var r=e.newProperties,n=e.dataDefinition,t=e.hypercubePath;if(n.dimensions&&\"function\"==typeof n.dimensions.added){var o=i.getValue(r,t||\"\").qHyperCubeDef,a=x(o.qDimensions);o.qDimensions=[],a.forEach((function(e){o.qDimensions.push(e),n.dimensions.added(e,r)}))}},updateMeasuresOnAdded:function(e){var r=e.newProperties,n=e.dataDefinition,t=e.hypercubePath;if(n.measures&&\"function\"==typeof n.measures.added){var o=i.getValue(r,t||\"\").qHyperCubeDef,a=A(o.qMeasures);o.qMeasures=[],a.forEach((function(e){o.qMeasures.push(e),n.measures.added(e,r)}))}},restoreMeasuresModifiers:function(e){var r=e.measures,n=e.modifierTypes;r&&n&&m.a.isSupportedModifiers(n)&&r.forEach((function(e){e.store&&e.store.modifiers&&(e.qDef.modifiers=e.store.modifiers),delete e.store}))}};function M(e,r){var n=i.getValue(e,\"qLayoutExclude.quarantine\",{})[r];return!!n&&(Object.keys(n).forEach((function(r){i.setValue(e,r,n[r])})),delete e.qLayoutExclude.quarantine[r],!0)}var S={exportProperties:function(e){var r=e.propertyTree,n=e.hypercubePath,t=e.viewDataMode,o=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,r={data:[],properties:{}},n=0;n<e;++n)r.data.push({dimensions:[],measures:[],excludedDimensions:[],excludedMeasures:[],interColumnSortOrder:[]});return r}(),a=r.qProperty,s=i.getValue(a,n||\"\"),u=s.qHyperCubeDef;return u.qInterColumnSortOrder||(u.qInterColumnSortOrder=[]),d.addDimensions({exportFormat:o,qHyperCubeDef:u}),d.addMeasures({exportFormat:o,qHyperCubeDef:u}),d.setInterColumnSortOrder({exportFormat:o,qHyperCubeDef:u}),delete u.qLayoutExclude,d.copyProperties({exportFormat:o,properties:a}),n&&(o.properties.qHyperCubeDef=u,delete s.qHyperCubeDef),d.updateLayoutExclude({exportFormat:o,properties:a}),t||d.storeMeasuresModifiers(o.properties.qHyperCubeDef.qMeasures),Array.isArray(o.properties.filters)&&(y(o.properties,\"filters\",\"storedFilters\"),delete o.properties.filters),o.properties.qHyperCubeDef.qContextSetExpression&&(y(o.properties,\"qHyperCubeDef.qContextSetExpression\",\"storedFilters\"),o.properties.qHyperCubeDef.qContextSetExpression=\"\"),o.properties.qHyperCubeDef.qDynamicScript&&o.properties.qHyperCubeDef.qDynamicScript.length&&(y(o.properties,\"qHyperCubeDef.qDynamicScript\",\"dynamicScript\"),o.properties.qHyperCubeDef.qDynamicScript=[]),o},importProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=void 0===n?{}:n,o=e.dataDefinition,a=void 0===o?{}:o,s=e.defaultPropertyValues,u=void 0===s?{}:s,l=e.hypercubePath,c=e.extension,p=e.supportedFilters,f=void 0===p||p,m=e.isHCModifierSupported,d=void 0===m||m,y={qChildren:[]},q=I.createNewProperties({exportFormat:r,initialProperties:t,hypercubePath:l}),b=i.getValue(t,l||\"\").qHyperCubeDef,D=i.getValue(q,l||\"\").qHyperCubeDef,v=I.getMaxMinDimensionMeasure({exportFormat:r,dataDefinition:a}),g=v.maxDimensions,h=v.minDimensions,x=v.maxMeasures,E=v.minMeasures,A=u.defaultDimension,C=void 0===A?I.getDefaultDimension():A,S=u.defaultMeasure,L=void 0===S?I.getDefaultMeasure():S;D.qDimensions.length=0,D.qMeasures.length=0,I.shouldInitLayoutExclude({exportFormat:r,maxDimensions:g,minDimensions:h,maxMeasures:x,minMeasures:E})&&I.initLayoutExclude({exportFormat:r,maxDimensions:g,minDimensions:h,maxMeasures:x,minMeasures:E,newHyperCubeDef:D}),I.addDimensions({exportFormat:r,maxDimensions:g,minDimensions:h,newHyperCubeDef:D,defaultDimension:C}),I.addMeasures({exportFormat:r,maxMeasures:x,minMeasures:E,newHyperCubeDef:D,defaultMeasure:L}),I.updateDimensionsOnAdded({newProperties:q,dataDefinition:a,hypercubePath:l}),I.updateMeasuresOnAdded({newProperties:q,dataDefinition:a,hypercubePath:l}),I.setInterColumnSortOrder({exportFormat:r,newHyperCubeDef:D}),I.copyPropertyIfExist(\"qMaxStackedCells\",b,D),I.copyPropertyIfExist(\"qNoOfLeftDims\",b,D),I.copyPropertyOrSetDefault(\"qInitialDataFetch\",b,D,[{qTop:0,qLeft:0,qWidth:0,qHeight:0}]),I.copyPropertyOrSetDefault(\"qMode\",b,D,\"S\"),I.copyPropertyOrSetDefault(\"qReductionMode\",b,D,\"N\"),I.copyPropertyOrSetDefault(\"qSortbyYValue\",b,D),I.copyPropertyOrSetDefault(\"qIndentMode\",b,D),I.copyPropertyOrSetDefault(\"qShowTotalsAbove\",b,D),I.importCommonProperties(q,r,t),y.qProperty=q;var O=i.getValue(c||{},\"support.modifiers\");return I.restoreMeasuresModifiers({measures:D.qMeasures,modifierTypes:O}),f&&M(y.qProperty,\"storedFilters\"),\"S\"===D.qMode&&d&&M(y.qProperty,\"dynamicScript\"),y}},L={cellBackgroundColor:!0,cellForegroundColor:!0,colorByAlternative:!0,colorByExpression:!0,tooltip:!0,urlLabel:!0,url:!0};function O(e,r,n,t){r=r||[];var o=c(e,t,n),i=c(r,t,n);if(-1!==o&&-1===i){var a=e.splice(o,1);r.push(a[0])}return r}function P(e,r){return e.length!==r}var F={create:function(e,r){if(!e||!L[e])throw new Error(\"Attribute Expressions Util: ID required\");var n={};return r&&Object.keys(r).forEach((function(e){n[e]=r[e]})),n.id=e,n.qAttribute=!0,n},moveByIdFromGroup:function(e,r,n,t,o){n=n||\"qAttributeExpressions\",o=o||\"id\";for(var i=0;i<e.length;i++){var a=e[i][n],s=r.length;if(O(a,r,t,o),P(r,s))return r}return r},IDMAP:{CELL_BACKGROUND_COLOR:\"cellBackgroundColor\",CELL_FOREGROUND_COLOR:\"cellForegroundColor\",COLOR_BY_ALTERNATIVE:\"colorByAlternative\",COLOR_BY_EXPRESSION:\"colorByExpression\",TOOLTIP:\"tooltip\",CELL_LINK_LABEL:\"urlLabel\",CELL_LINK_URL:\"url\"}};var N={getNumDimensions:function(e){return i.getValue(e,\"qHyperCubeDef.qDimensions.length\",0)},getNumMeasures:function(e){return i.getValue(e,\"qHyperCubeDef.qMeasures.length\",0)},wrapFieldName:function(e){return e.split(\" \").length>1&&\"=\"!==e[0]&&\"[\"!==e[0]?\"[\".concat(e,\"]\"):e},getItemLabel:function(e){return e.label||e.name}},V={colorModeOptions:{primary:function(){return!0},dimension:function(e){return N.getNumDimensions(e)>0&&N.getNumMeasures(e)<=1},multiColor:function(e){return N.getNumMeasures(e)>1},measure:function(e){return N.getNumDimensions(e)>0},expression:function(e){return N.getNumMeasures(e)>=1}}},w={colorModeOptions:{primary:function(){return!0},dimension:function(){return!0},multiColor:function(){return!1},measure:function(){return!0},expression:function(e){return N.getNumMeasures(e)>=1}}},H={scatterplot:w,\"sn-scatter-plot\":w,piechart:{colorModeOptions:{primary:function(){return!0},dimension:function(){return!0},multiColor:function(){return!1},measure:function(){return!0},expression:function(e){return N.getNumMeasures(e)>=1}}},linechart:{colorModeOptions:{primary:function(){return!0},dimension:function(e){return N.getNumDimensions(e)>1},multiColor:function(e){return N.getNumMeasures(e)>1},measure:function(e){return N.getNumDimensions(e)<=1},expression:function(e){return N.getNumMeasures(e)>=1}}},map:{colorModeOptions:{primary:function(){return!0},dimension:function(e){return N.getNumDimensions(e)>=1},multiColor:function(e){return N.getNumMeasures(e)>1},measure:function(e){return N.getNumDimensions(e)>=1},expression:function(e){return N.getNumDimensions(e)>=1}}},distributionplot:{colorModeOptions:{primary:function(){return!0},dimension:function(){return!0},multiColor:function(){return!1},measure:function(){return!0},expression:function(e){return N.getNumDimensions(e)>=1}}}};function T(e,r,n){if(Array.isArray(e[r])){var t=p.findIndexByPropertyValue(e[r],\"id\",n);t>=0&&e[r].splice(t,1)}else e[r]=[]}function j(e,r){var n=F.IDMAP.COLOR_BY_ALTERNATIVE;e.forEach((function(e){T(e,\"qAttributeDimensions\",n),T(e,\"qAttributeExpressions\",n)})),r.forEach((function(e){T(e,\"qAttributeDimensions\",n),T(e,\"qAttributeExpressions\",n)}))}function _(e,r){if(r){var n=\"=\"===r.charAt(0);e.color.altLabel=n?{qStringExpression:{qExpr:r.substr(1)}}:r}}function R(e){var r=e.properties,n=e.isDimension,t=e.dimensions,o=e.excludedDimensions,a=e.measures,s=e.label;j(t,o);var u=t[t.length-1];if(u){var l=n?i.getValue(r,\"color.byDimDef\"):i.getValue(r,\"color.byMeasureDef\"),c=i.getValue(r,\"color.formatting.qNumFormat\"),f=i.getValue(r,\"color.formatting.isCustomFormatted\");if(l){var m=F.create(F.IDMAP.COLOR_BY_ALTERNATIVE);switch(l.type){case\"expression\":!function(e){var r=e.attributeExpression,n=e.label,t=e.item,o=e.isDimension,i=e.qNumFormat,a=e.isCustomFormatted;r.label=n||t.label,o?r.qDef=t.key:(r.qExpression=t.key,i&&(r.qNumFormat=i,r.isCustomFormatted=a)),r.matchMeasure=t.activeMeasureIndex,r.label&&\"=\"===r.label.charAt(0)&&(r.labelExpRef=\"color.altLabel\")}({attributeExpression:m,label:s,item:l,isDimension:n,qNumFormat:c,isCustomFormatted:f});break;case\"libraryItem\":!function(e){var r=e.attributeExpression,n=e.measures,t=e.item,o=e.isDimension,i=e.qNumFormat,a=e.isCustomFormatted;o||(r.matchMeasure=p.findIndexByPropertyValue(n,\"qLibraryId\",t.key),i&&(r.qNumFormat=i,r.isCustomFormatted=a)),void 0!==t.expression?r.qExpression=t.expression:r.qLibraryId=t.key,r.colorMapRef=t.key}({attributeExpression:m,measures:a,item:l,isDimension:n,qNumFormat:c,isCustomFormatted:f})}n?(m.qSortBy={qSortByAscii:1},u.qAttributeDimensions.push(m)):u.qAttributeExpressions.push(m)}}}function B(e,r,n,t){var o,i,a,s={};switch(e){case\"dimension\":n.qLibraryId?(s.type=\"dimension\",s.name=n.qLibraryId,s.id=n.qLibraryId):(s.type=\"field\",r?(s.name=n.label||n.qDef,s.id=n.qDef):(s.name=n.qDef.qFieldDefs[0],s.label=(a=n.qDef).qLabelExpression?a.qLabelExpression:a.qFieldLabels&&a.qFieldLabels[0]?a.qFieldLabels[0]:a.qFieldDefs[0]));break;case\"measure\":(o=function(e,r){return r?e.qLibraryId:m.a.measureBase.getLibraryId(e)}(n,r))?(s.type=\"measure\",s.name=o,s.id=o,(i=function(e,r){return m.a.hasActiveModifiers({measures:[e]})&&r?e.qDef.qDef:void 0}(n,t))&&(s.expression=i)):(s.type=\"expression\",r?(s.name=n.label||n.qExpression,s.id=n.qExpression):(s.name=n.qDef.qDef,s.label=function(e){var r=e.qDef;return r.qLabelExpression?r.qLabelExpression:r.qLabel?r.qLabel:r.qDef}(n)));break;default:throw new Error('columnType should be \"dimension\" or \"measure\"')}return s}var k={useMasterNumberFormat:function(e){e.quarantine={qNumFormat:e.qNumFormat||{},isCustomFormatted:e.isCustomFormatted||!1},e.qNumFormat=null,e.isCustomFormatted=void 0}};function U(e,r,n,t){var o=n?\"expression\":r.type,i=e.color,a=i.mode,s=N.getItemLabel(r);switch(_(e,s||\"\"),o){case\"field\":a=\"byDimension\",i.byDimDef={label:r.label||N.wrapFieldName(r.name),key:N.wrapFieldName(r.name),type:\"expression\",activeDimensionIndex:r.activeDimensionIndex};break;case\"expression\":a=\"byMeasure\",i.byMeasureDef={label:n||s,key:n||r.name,type:\"expression\",activeMeasureIndex:r.activeMeasureIndex};break;case\"dimension\":a=\"byDimension\",i.byDimDef={label:r.name,key:r.id,type:\"libraryItem\",activeDimensionIndex:r.activeDimensionIndex};break;case\"measure\":a=\"byMeasure\",i.byMeasureDef={label:r.name,key:r.id,expression:r.expression,type:\"libraryItem\",activeMeasureIndex:r.activeMeasureIndex},i.formatting&&k.useMasterNumberFormat(i.formatting)}t||(i.auto=!1,i.mode=a)}function G(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=n[function(e,r,n){var t=i.getValue(r,\"visualization\"),o=n.split(\".\"),a=Number(o[1]),s=i.getValue(r,\"layers.\".concat(a,\".type\"));return 2===e.length&&\"map\"===t&&\"point\"===s}(n,e,r)?0:n.length-1],o=F.IDMAP.COLOR_BY_ALTERNATIVE,a=p.findItemByPropertyValue(t.qAttributeDimensions,\"id\",o);return U(e,B(\"dimension\",!!a,a||t)),!!a}function W(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),o=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]),a=i.getValue(e,\"color.byDimDef\");if(a&&_(e,a.label),function(e){return!!(e&&e.activeDimensionIndex>-1)}(a))!function(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"color.byDimDef\");t.activeDimensionIndex=Math.min(t.activeDimensionIndex,n.length-1);var o=B(\"dimension\",!1,n[t.activeDimensionIndex]);o.activeDimensionIndex=t.activeDimensionIndex,U(e,o)}(e,r);else if(function(e){return!e||!e.key}(a)&&G(e,r))return;R({properties:e,isDimension:!0,dimensions:n,excludedDimensions:o,measures:t,label:i.getValue(e,\"color.byDimDef.label\")})}function $(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),o=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]),a=i.getValue(e,\"color.byMeasureDef\");if(a&&_(e,a.label),function(e){return!!(e&&e.activeMeasureIndex>-1)}(a))!function(e,r){var n=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),t=i.getValue(e,\"color.byMeasureDef\");if(t.activeMeasureIndex=Math.min(t.activeMeasureIndex,n.length-1),t.activeMeasureIndex>-1){var o=B(\"measure\",!1,n[t.activeMeasureIndex],!0);o.activeMeasureIndex=t.activeMeasureIndex,U(e,o)}}(e,r);else if(function(e,r){return(!e||!e.key)&&r.length>0}(a,t)&&function(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),o=n[n.length-1],a=F.IDMAP.COLOR_BY_ALTERNATIVE,s=p.findItemByPropertyValue(o.qAttributeExpressions,\"id\",a);return U(e,B(\"measure\",!!s,s||t[0])),!!s}(e,r))return;R({properties:e,isDimension:!1,dimensions:n,excludedDimensions:o,measures:t,label:i.getValue(e,\"color.byMeasureDef.label\")})}var z={changeProperty:function(e,r,n){i.setValue(e,r,n),i.isAtomicValue(n)&&function(e,r,n){var t=e.qLayoutExclude;t&&(t.changed||(t.changed={}),t.changed[r]={from:i.getValue(e,r),to:n})}(e,r,n)},getCanColorBy:function(e,r){var n={primary:!0};if(e){var t=(H[r]||V).colorModeOptions||V.colorModeOptions;n.byDimension=t.dimension(e),n.byMeasure=t.measure(e),n.byMultiple=t.multiColor(e),n.byExpression=t.expression(e)}return n},shouldUpdateColorBy:function(e){var r=e.canColorBy,n=e.autoColor,t=e.colorMode,o=e.dimensions;return!(r[t]&&!n&&(\"byDimension\"!==t&&\"byMeasure\"!==t||!o.length))},updateColorBy:function(e,r){var n=i.getValue(e,\"color.mode\"),t=i.getValue(e,\"color.auto\"),o=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),a=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),s=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]);t?j(o,s):function(e){var r=e.auto,n=e.colorMode,t=e.dimensions;return!r&&\"byDimension\"===n&&t.length>0}({auto:t,colorMode:n,dimensions:o})?W(e,r):function(e){var r=e.auto,n=e.colorMode,t=e.dimensions,o=e.measures,a=e.properties,s=i.getValue(a,\"visualization\");return!(r||\"byMeasure\"!==n||!t.length||\"map\"!==s&&!o.length)}({auto:t,colorMode:n,dimensions:o,measures:a,properties:e})?$(e,r):function(e,r){var n=i.getValue(e,\"color.mode\"),t=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),o=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),a=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]);\"byMultiple\"===n&&o.length<2&&i.setValue(e,\"color.mode\",\"primary\"),j(t,a)}(e,r)},deleteTotalMode:function(e){e.forEach((function(e){e.qOtherTotalSpec&&\"qTotalMode\"in e.qOtherTotalSpec&&delete e.qOtherTotalSpec.qTotalMode}))},shouldAddColorByExpression:function(e){var r=e.shouldUpdateColorBy,n=e.properties,t=i.getValue(n,\"qHyperCubeDef.qMeasures\",[]),o=i.getValue(n,\"color.mode\",\"\");return!r&&\"byExpression\"===o&&t.length>0},addColorByExpression:function(e){var r=i.getValue(e,\"qHyperCubeDef.qMeasures.0.qAttributeExpressions\",[]),n=i.getValue(e,\"color.colorExpression\",\"\");r.splice(0,0,{qExpression:n,id:\"colorByExpression\"}),i.setValue(e,\"qHyperCubeDef.qMeasures.0.qAttributeExpressions\",r)},switchToAutoColor:function(e){i.setValue(e,\"color.mode\",\"primary\"),i.setValue(e,\"color.auto\",!0)},shouldSwitchToColorPersistent:function(e){var r=i.getValue(e,\"qHyperCubeDef.qDimensions\",[]),n=i.getValue(e,\"color.persistent\",!1);return r.length>1&&!n}};var Y={exportProperties:function(e){var r=e.propertyTree,n=e.hypercubePath,t=e.viewDataMode,o=S.exportProperties({propertyTree:r,hypercubePath:n,viewDataMode:t}),i=o.data[0],a=i.dimensions.concat(i.excludedDimensions),s=i.measures.concat(i.excludedMeasures),u=F.IDMAP,l=u.COLOR_BY_ALTERNATIVE,c=u.COLOR_BY_EXPRESSION;return F.moveByIdFromGroup(a,[],\"qAttributeDimensions\",l),F.moveByIdFromGroup(a,[],\"qAttributeExpressions\",l),F.moveByIdFromGroup(s,[],\"qAttributeExpressions\",c),o},importProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=e.dataDefinition,o=e.defaultPropertyValues,a=e.hypercubePath,s=e.extension,u=e.supportedFilters,l=e.isHCModifierSupported,c=S.importProperties({exportFormat:r,initialProperties:n,dataDefinition:t,defaultPropertyValues:o,hypercubePath:a,extension:s,supportedFilters:u,isHCModifierSupported:l}),p=c.qProperty,f=i.getValue(p,\"visualization\"),m=i.getValue(p,\"qHyperCubeDef.qDimensions\",[]),d=i.getValue(p,\"color.mode\",\"\"),y=i.getValue(p,\"color.auto\",\"\"),q=z.getCanColorBy(p,f),b=z.shouldUpdateColorBy({canColorBy:q,autoColor:y,colorMode:d,dimensions:m});return q[d]?z.shouldAddColorByExpression({shouldUpdateColorBy:b,properties:p})&&z.addColorByExpression(p):z.switchToAutoColor(p),b&&z.updateColorBy(p,\"qHyperCubeDef.\"),z.shouldSwitchToColorPersistent(p)&&z.changeProperty(p,\"color.persistent\",!0),z.deleteTotalMode(m),c}};var J=[\"bar\",\"marker\",\"line\"];var K={handleAutoMinMax:function(e){var r=e.initialProperties,n=e.properties;r.measureAxis&&void 0===r.measureAxis.autoMinMax?M(n,\"unsupportedAutoMinMax\")||b()(n.measureAxis,r.measureAxis):M(n,\"supportedAutoMinMax\")||b()(n.measureAxis,r.measureAxis)},handleMeasuresAxis:function(e){var r,n=e.exportFormat,t=e.initialProperties,o=e.properties,i=e.measureType,a=o.qHyperCubeDef,s=o.measureAxis;if(function(e){var r=e.exportFormat,n=e.initialProperties;return!(!r.properties.measureAxes||n.measureAxes||!n.measureAxis||void 0===n.measureAxis.autoMinMax)}({exportFormat:n,initialProperties:t})){var u=function(e){var r=[];return e.qMeasures.length>0&&e.qMeasures.forEach((function(e){if(e.qDef.series){var n=e.qDef.series,t=n.type,o=n.axis;r[o]||(r[o]={axis:o,type:{line:0,marker:0,bar:0,total:0}}),J.includes(t)&&r[o].type[t]++,r[o].type.total++}})),r}(a);u.length?(i&&(r=u.filter((function(e){return e.type[i]>0})).sort((function(e,r){return r.type[i]-e.type[i]}))),r&&r.length||(r=u.sort((function(e,r){return r.type.total-e.type.total}))),r&&r[0]&&b()(s,n.properties.measureAxes[r[0].axis])):b()(s,n.properties.measureAxes[0])}},setInterColumnSortOrder:function(e){if(e.qDimensions.length>1){var r=e.qInterColumnSortOrder.indexOf(0);if(0!==r){var n=e.qInterColumnSortOrder[0];e.qInterColumnSortOrder[0]=0,e.qInterColumnSortOrder[r]=n}}}};var X={exportProperties:function(e){var r=e.propertyTree,n=e.hypercubePath,t=e.viewDataMode,o=e.supportedAutoMinMax,i=void 0===o||o,a=Y.exportProperties({propertyTree:r,hypercubePath:n,viewDataMode:t}),s=a.properties;return i?(y(s,\"measureAxis.min\",\"supportedAutoMinMax\"),y(s,\"measureAxis.max\",\"supportedAutoMinMax\")):(y(s,\"measureAxis.min\",\"unsupportedAutoMinMax\"),y(s,\"measureAxis.max\",\"unsupportedAutoMinMax\")),a},importProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=e.dataDefinition,o=e.defaultPropertyValues,i=e.hypercubePath,a=e.measureType,s=e.extension,u=e.supportedFilters,l=e.isHCModifierSupported,c=Y.importProperties({exportFormat:r,initialProperties:n,dataDefinition:t,defaultPropertyValues:o,hypercubePath:i,extension:s,supportedFilters:u,isHCModifierSupported:l}),p=c.qProperty;return K.handleAutoMinMax({initialProperties:n,properties:p}),K.handleMeasuresAxis({exportFormat:r,initialProperties:n,properties:p,measureType:a}),K.setInterColumnSortOrder(p.qHyperCubeDef),p.qHyperCubeDef.qColumnOrder=[],p.qHyperCubeDef.columnOrder=[],c}};function Q(e,r,n){return\"qLayoutExclude.quarantine.\".concat(e,\".\").concat(r,\".\").concat(n)}function Z(e){var r=e.properties,n=e.arrayPath,t=e.quarantineName,o=e.arrayName,a=e.itemPath;i.getValue(r,n,[]).forEach((function(e){return function(e){var r=e.properties,n=e.quarantineName,t=e.arrayName,o=e.item,a=e.itemPath,s=i.getValue(o,a);if(void 0!==s){var u=i.getValue(o,\"qDef.cId\");u||(u=i.generateId(),i.setValue(o,\"qDef.cId\",u));var l=Q(n,t,u);i.setValue(r,l,s),i.setValue(o,a,void 0)}}({properties:r,quarantineName:t,arrayName:o,item:e,itemPath:a})}))}function ee(e){var r=e.properties,n=e.arrayPath,t=e.quarantineName,o=e.arrayName,a=e.itemPath;i.getValue(r,n,[]).forEach((function(e){return function(e){var r=e.properties,n=e.quarantineName,t=e.arrayName,o=e.item,a=e.itemPath,s=i.getValue(o,\"qDef.cId\");if(s){var u=Q(n,t,s),l=i.getValue(r,u);void 0!==l&&(i.setValue(o,a,l),i.setValue(r,u,void 0))}}({properties:r,quarantineName:t,arrayName:o,item:e,itemPath:a})}))}var re={quarantine:function(e){Z({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",quarantineName:\"conditionalColoring\",arrayName:\"measures\",itemPath:\"qDef.conditionalColoring\"})},unquarantine:function(e){ee({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",itemPath:\"qDef.conditionalColoring\",arrayName:\"measures\",quarantineName:\"conditionalColoring\"})}};var ne={quarantine:function(e){Z({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",quarantineName:\"conditionalShowHide\",arrayName:\"measures\",itemPath:\"qCalcCondition\"}),Z({properties:e,arrayPath:\"qHyperCubeDef.qDimensions\",quarantineName:\"conditionalShowHide\",arrayName:\"dimensions\",itemPath:\"qCalcCondition\"})},unquarantine:function(e){ee({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",quarantineName:\"conditionalShowHide\",arrayName:\"measures\",itemPath:\"qCalcCondition\"}),ee({properties:e,arrayPath:\"qHyperCubeDef.qDimensions\",quarantineName:\"conditionalShowHide\",arrayName:\"dimensions\",itemPath:\"qCalcCondition\"})},quarantineAlternative:function(e){Z({properties:e,arrayPath:\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\",quarantineName:\"conditionalShowHide\",arrayName:\"alternativeMeasures\",itemPath:\"qCalcCondition\"}),Z({properties:e,arrayPath:\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qDimensions\",quarantineName:\"conditionalShowHide\",arrayName:\"alternativeDimensions\",itemPath:\"qCalcCondition\"})},unquarantineAlternative:function(e){ee({properties:e,arrayPath:\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\",quarantineName:\"conditionalShowHide\",arrayName:\"alternativeMeasures\",itemPath:\"qCalcCondition\"}),ee({properties:e,arrayPath:\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qDimensions\",quarantineName:\"conditionalShowHide\",arrayName:\"alternativeDimensions\",itemPath:\"qCalcCondition\"})}};r.default={hypercube:S,colorChart:Y,axisChart:X,quarantineProperty:y,unquarantineProperty:M,quarantineArrayProp:Z,unquarantineArrayProp:ee,conditionalColoring:re,conditionalShow:ne}}])}));","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, styleOptions, flags) => ({\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 items:\n flags && flags?.isEnabled('CLIENT_IM_3364')\n ? {\n axisTitleSection: {\n translation: 'properties.axis.title',\n component: 'panel-section',\n items: styleOptions.getOptions('axis', 'axis.title'),\n },\n axisLabelSection: {\n translation: 'properties.axis.label',\n component: 'panel-section',\n items: styleOptions.getOptions('axis', 'axis.label.name'),\n },\n valueLabelSection: {\n translation: 'properties.value.label',\n component: 'panel-section',\n items: styleOptions.getOptions('value', 'label.value'),\n },\n }\n : undefined,\n});\nexport default getStylingPanelDefinition;\n","import { fontResolver as createFontResolver, getValue } from 'qlik-chart-modules';\nimport isInteger from '@qlik/common/extra/is-integer';\nimport ChartStyleComponent, { getChartFontResolver } from '@qlik/common/extra/chart-style-component';\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, flags } = 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 const chartID = 'object.histogram';\n const fontResolver = getChartFontResolver(theme, translator, chartID, createFontResolver, flags);\n const styleOptions = ChartStyleComponent(fontResolver, theme, chartID);\n const presentation = {\n type: 'items',\n translation: 'properties.presentation',\n items: {\n styleEditor: stylingPanelEnabled && getStylingPanelDefinition(bkgOptionsEnabled, styleOptions, env?.flags),\n gridLines: {\n type: 'items',\n snapshot: {\n tid: 'property-gridLines',\n },\n items: {\n showGridLines: {\n ref: 'gridlines.auto',\n type: 'boolean',\n translation: 'properties.gridLine.spacing',\n component: 'switch',\n defaultValue: true,\n options: [\n {\n value: true,\n translation: 'Common.Auto',\n },\n {\n value: false,\n translation: 'Common.Custom',\n },\n ],\n },\n gridSpacing: {\n ref: 'gridlines.spacing',\n type: 'number',\n component: 'dropdown',\n defaultValue: 2,\n options: [\n {\n value: 0,\n translation: 'properties.gridLine.noLines',\n },\n {\n value: 2,\n translation: 'properties.gridLine.medium',\n },\n {\n value: 3,\n translation: 'properties.gridLine.narrow',\n },\n ],\n show(data) {\n return data.gridlines && !data.gridlines.auto;\n },\n },\n },\n },\n showLabels: {\n ref: 'dataPoint.showLabels',\n type: 'boolean',\n translation: 'properties.dataPoints.labelmode',\n component: 'switch',\n defaultValue: 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 useMemo,\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 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 renderer = environment.options.renderer;\n const picasso = useMemo(() => picassoSetup(renderer), [renderer]);\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 flags: env.flags,\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 { useApp, useAppLayout, useTranslator, useOptions, useMemo, useTheme, useDeviceType } from '@nebula.js/stardust';\n\nexport default function useEnvironment() {\n const app = useApp();\n const appLayout = useAppLayout();\n const deviceType = useDeviceType();\n const options = useOptions();\n const theme = useTheme();\n const translator = useTranslator();\n\n const environment = useMemo(\n () => ({\n app,\n appLayout,\n deviceType,\n options,\n theme,\n translator,\n }),\n [app, appLayout, options.direction, options.freeResize, translator.language(), theme.name(), deviceType]\n );\n\n return environment;\n}\n","import picassojs from 'picasso.js';\nimport PicassoQ from 'picasso-plugin-q';\nimport PicassoHammer from 'picasso-plugin-hammer';\nimport Hammer from 'hammerjs';\nimport eventArea from './plugins/event-area';\nimport disclaimer from './disclaimer/disclaimer-component.jsx';\n\nexport default function setup(renderer) {\n const picasso = picassojs();\n // default to use canvas renderer\n picasso.renderer.prio([renderer || 'canvas']);\n\n // TODO: investigate picasso warnings\n // if (DebugFlags.DEVELOPER) {\n // picasso.logger.level(picassojs.logger.LOG_LEVEL.WARN);\n // }\n\n picasso.use(PicassoQ);\n picasso.use(PicassoHammer(Hammer));\n picasso.use(eventArea);\n picasso.component('disclaimer', disclaimer);\n return picasso;\n}\n","import { 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","u","e","t","Array","isArray","n","Symbol","iterator","r","o","i","a","l","c","call","next","done","push","value","length","return","s","TypeError","f","from","prototype","toString","slice","constructor","name","test","p","hasOwnProperty","m","defineProperty","v","getOwnPropertyDescriptor","y","g","b","enumerable","configurable","newValue","writable","x","I","O","create","E","arguments","__esModule","default","A","N","L","T","P","j","RegExp","F","H","R","z","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","B","rgb","formatHex","Y","formatRgb","$","trim","toLowerCase","exec","parseInt","U","X","K","ne","NaN","G","opacity","W","Z","te","J","Q","ee","isNaN","Math","round","oe","re","ie","ae","le","copy","assign","displayable","hex","formatHex8","formatHsl","brighter","pow","darker","clamp","ue","PI","ce","se","fe","de","pe","he","qe","we","ge","me","ve","ye","cos","sin","atan2","sqrt","be","Me","Se","bt","split","ke","gamma","An","xt","qt","some","includes","Number","Xt","children","Zt","Map","Qt","Jt","nn","pop","parent","depth","eachBefore","tn","en","count","eachAfter","each","find","sum","sort","ancestors","splice","descendants","leaves","links","source","target","reverse","exports","search","substring","join","charAt","match","toFixed","lastIndexOf","indexOf","vo","yo","go","bo","xo","qo","wo","concat","reduce","Mo","ko","theme","id","extend","matrix","forEach","base","attribute","defaultValue","filter","Boolean","Hi","Ri","Vi","toUpperCase","groupHeader","disabled","styles","fontFamily","_i","flags","apply","Set","map","replace","metaText","isEnabled","zi","Bi","getDefaultValue","getOptions","Yi","$i","Ui","Ki","Gi","config","paths","Error","fnTest","Class","className","proto","_super","fn","tmp","ret","ctor","Function","idGen","getChar","charCode","val","charCodeAt","String","fromCharCode","base62","chr","floor","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","getColorPickerColor","strokeDasharray","lineType","lineLabelSettings","chartID","labelColor","labelFontSize","labelFontFamily","align","vAlign","text","fill","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","SENSE_PICASSO_SPACING_COEFFICIENT","DimensionMeasureChart","chartBuilder","opts","measureAxisProperties","dimensionAxisProperties","chartOrientation","orientation","CONSTANTS","isChartHorizontal","measureDirection","dimensionDirection","includeMeasureAxisComponent","includeMeasureAxisTitleComponent","measureTitleText","includeDimensionAxisComponent","includeDimensionAxis","includeDimensionAxisTitleComponent","dimensionTitleText","includeGridlines","includeRefLines","interactionActions","measureAxisSettings","scale","axisLabelStyle","forceBounds","showBounds","measureAxisOptions","getMeasureAxisOptions","addComponent","addMeasureAxisComponent","measureTitleSettings","axisTitleStyle","getMeasureAxisTitleOptions","addMeasureAxisTitleComponent","measureScaleSettings","measureScaleOptions","measureSource","ticks","distance","addScale","addMeasureScale","dimensionAxisSettings","dimensionAxisOptions","getDimensionAxisOptions","addDimensionAxisComponent","dimensionAxisTitleSettings","dimensionAxisTitleOptions","getDimensionAxisTitleOptions","addDimensionAxisTitleComponent","dimensionScaleOptions","dimensionSource","dimensionScaleSettings","addDimensionScale","gridlinesOptions","gridlinesSettings","minorTicks","addGridlinesComponent","hasNavigation","getSettings","scroll","dimension","viewSize","scrollSettings","scrollbarOptions","isHorizontal","scrollBarSettings","addInteractionActions","isEnabledFn","targetIsScrollbar","manager","startPoint","center","deltaX","deltaY","chart","componentsFromPoint","key","tap","enable","events","emit","pan","panstart","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","addPreset","ChartPresets","validateComponentKeys","keys","msg","ALIGNMENT","CENTER","BOTTOM","DisclaimersConfig","DISCLAIMERS","alignment","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","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","w","preserveAspectRatio","updateData","_destroyed","reject","permissions","isPartialData","_this$environment$app","_this$environment$app2","localeInfo","appLayout","qLocaleInfo","getValue","colorService","update","partialData","setAttribute","destroy","off","getViewState","isLassoDisabled","setSnapshotData","snapshotLayout","chartData","hasOwn","toStr","gOPD","arr","isPlainObject","obj","hasOwnConstructor","hasIsPrototypeOf","setProperty","getProperty","src","copyIsArray","clone","deep","getFieldAccessor","deps","columnOrder","cache","origin","fieldIdx","attrIdx","attrDimIdx","wrappedFields","attrDims","instance","attrExps","el","correctIndex","row","qAttrDims","qValues","qAttrExps","datumExtract","propCfg","cell","_ref","cellToValue","_ref2","mainCell","prop","rowIdx","sourceKey","targetProp","propCell","propCellFn","qRow","cfgs","dataItems","cube","raw","main","normalizeConfig","propsArr","track","trackType","tracker","trackedItems","items","qColumnOrder","k","fieldValues","fieldLabels","cfg","itemData","collect","node_count","node_each","callback","that","node_eachBefore","nodes","node_eachAfter","node_find","node_sum","node_sort","compare","node_path","start","ancestor","leastCommonAncestor","aNodes","bNodes","node_ancestors","node_descendants","node_leaves","node_links","root","node_iterator","current","hierarchy","mapChildren","objectChildren","child","childs","Node","computeHeight","node_copy","copyData","optional","preroot","ambiguous","imputed","defaultId","defaultParentId","parentId","stratify","nodeId","nodeKey","currentId","currentParentId","nodeByKey","normalize","parentof","S","has","slash","subpath","container","carr","flattenTree","steps","arrIndexAtTargetDepth","treeAccessor","sourceDepth","targetDepth","findField","query","allFields","DIM_RX","M_RX","ATTR_EXPR_RX","ATTR_DIM_RX","getColumnOrder","getDimensionColumnOrder","ii","getFieldDepth","isFieldDimension","fieldDepth","pseudoMeasureIndex","measureIdx","remainder","treeOrder","qEffectiveInterColumnSortOrder","sourceDepthObject","targetDepthObject","valueFn","attrFn","nodeFn","_data$qAttrDims","_data$qAttrExps","doIt","_ref3","pCfg","coll","collStr","cells","accessor","valueAccessor","attrAccessor","reduceLabel","getHierarchy","rootPath","childNodes","picker","tree","getHierarchyForSMode","order","__root","__id","isNew","_cell$qElemNumber","qElemNumber","qElemNo","_objectSpread","__parent","attachPropsAccessors","_ref4","itemDepthObject","accessors","augment","propDefs","idx","replicaDescendants","isTree","mapped","module","q","EPSILON","escapeRegExp","SIprefixes","percentage","radix","oct","dec","bin","rom","functional","prec","formatRadix","fradix","pattern","decimal","formatRoman","nThousands","numeral","formatFunctional","temp","toExponential","escape","justStr","createRegExp","thousand","getAbbreviations","listSeparator","qNumericalAbbreviation","abbreviations","abbreviation","abbreviationTuple","preparePattern","abbreviate","parts","lastPart","numericPattern","prefix","postfix","groupTemp","decTemp","regex","substr","splitPattern","matchPrecisionResult","maxPrecision","numericRegex","NumberFormatter","thousandDelimiter","decimalDelimiter","patternSeparator","prepare","subtype","format","formatValue","prep","_prepared","positive","isFunctional","negative","zero","exponent","absValue","num","decimalPartPattern","abbr","sciValue","original","abbrArray","lowerAbbreviation","suggestedAbbrExponent","upperAbbreviation","abs","wholePart","wholePartPattern","nDecimals","nZeroes","decimalPart","toPrecision","ceil","log","static","numberFormatFactory","_len","args","_key","memoize","func","multipleArguments","toKey","arg","cacher","counter","fifo","qType","qformat","memoized","bind","TYPES","INTEGER","NUMBER","FIXED_TO","MONEY","DATE","TIME","DATE_TIME","INTERVAL","DAYS","DAYS_ABBR","MONTHS","MONTHS_ABBR","SECONDS_PER_DAY","pad","parseDate","twelveFormat","getUTCHours","day","getUTCDay","year","getUTCFullYear","month","getUTCMonth","date","getUTCDate","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","getRemainder","parseIntervalDays","days","ms","parseInterval","units","Date","UTC","getTime","getDay","someT","getMasks","inst","YY","YYY","def","M","MM","MMM","locale_months_abbr","locale_months","WW","WWW","locale_days_abbr","locale_days","D","DateFormatter","qtype","info","qCalendarStrings","qLongDayNames","qDayNames","qLongMonthNames","qMonthNames","qTimeFmt","qDateFmt","qTimestampFmt","hasTwelveFlag","parsedDate","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","virtualFields","extractionConfig","extractor","hierarchyConfig","_cache","qNodesOnDim","TExtractor","augmentTree","qTreeDataPages","SExtractor","dimAcc","measAcc","traverse","ff","override","LAYOUT_TO_PROP","HC_RX","TD_RX","SHORTEN_HC","SHORTEN_TD","extractFieldFromId","dimensionIdx","pathToCube","shortenizer","shortenPath","attrCol","hc","dim","qAttrExprInfo","meas","qBrush","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","_opts$orMode","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","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","OTHERS_ELEMNO","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","isFunction","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","ChartStyleComponent","fontResolver","chartId","propertyDefs","getColorComponent","getDataColorPickerPalettes","colors","labelSection","getFontWrapperComponent","fontWrapper","fontColor","getChartFontResolver","createFontResolver","overrides","getAxisTitleStyle","_overrides","_axis$title","_axis$title2","_axis$title3","_axis$title3$fontColo","getAxisLabelStyle","_overrides2","_axis$label","_axis$label$name","_axis$label2","_axis$label2$name","_axis$label3","_axis$label3$name","_axis$label3$name$fon","MAX_GLYPH_COUNT","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","themeService","getStyles","valueLabelSettings","getValueLabelStyle","_overrides3","_value$value","_value$value2","_value$value3","_value$value3$fontCol","ctx","lightColor","darkColor","ChartSettings","dimTitle","getTheme","setTheme","createThemeService","_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","toStringTag","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","C","translationKey","numDimensions","enableTotalsFunction","propertyPanelDef","translation","refFn","primaryDimensionTooltip","schemaIgnore","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","accumulation","movingAverage","difference","normalization","applyModifiers","cleanUpMeasure","masterItemSubscriber","unsubscribe","hasActiveModifiers","getActiveModifier","De","isSupportedModifiers","isApplicableSupportedModifiers","modifierTypes","measureBase","limitedSorting","Ne","ifEnableTotalsFunction","isSnapshot","masterItem","isFirstTime","lastReloadTime","Ee","Ve","Le","Oe","libraryIds","Ce","oldProperties","runUpdateIfChange","libraryItemsProps","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","styleOptions","chartTitle","useGeneral","useBackground","axisTitleSection","axisLabelSection","valueLabelSection","maxCountMode","sizeMode","inAdvancedMode","showBinCount","propertyDefinition","_env$flags","_env$flags2","stylingPanelEnabled","anything","sense","classification","section","barColor","dualOutput","defaultColor","getDataColorSpecials","palette","presentation","styleEditor","snapshot","tid","showGridLines","gridSpacing","simpleLabels","_props$qHyperCubeDef$","pointLabels","_props$qHyperCubeDef$2","dimensionTitle","_props$qHyperCubeDef$3","convertFunctions","getter","setter","measureTitle","_props$qHyperCubeDef$4","uses","expressionType","placeholderTranslation","othersGroup","addons","dataHandling","calcCond","colorBackground","customBinMode","undefinedValue","autoMessage","definition","binMessage","isExpression","minBinMessage","alternativeTranslation","dimensionLimits","otherMode","readOnly","otherSortMode","otherCounted","otherLimitMode","limitMode","otherLimit","calculatedAgainstMessage","measureName","others","suppressOther","exploreProperties","histogramExport","getExportRawDataOptions","menu","exportDialog","addItem","_env$anything","pp","softDefinition","cssScaling","export","exportData","sharing","viewData","mapProperties","getDefaultDimensionProperties","getDefaultMeasureProperties","conversion","hyperCubePath","requireNumericDimension","exportTableProperties","supernova","qae","useConstraints","useElement","useApp","useAppLayout","useDeviceType","useOptions","useTheme","useTranslator","useMemo","language","useEnvironment","picassojs","prio","use","PicassoHammer","picassoSetup","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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","x_google_ignoreList":[7,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,122]}
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","../../../../node_modules/qlik-object-conversion/dist/conversion.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/util/get-text-renderer.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/find.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/iterator.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","../../../../chart-modules/common/extra/chart-style-component.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","../../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/nebula/use-environment.js","../../../../chart-modules/common/picasso/picasso-setup.js","../../../../chart-modules/common/nebula/use-lasso.js","../../../../chart-modules/common/nebula/snapshot.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","!function(e,r){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=r():\"function\"==typeof define&&define.amd?define([],r):\"object\"==typeof exports?exports.conversion=r():e.conversion=r()}(window,(function(){return function(e){var r={};function n(t){if(r[t])return r[t].exports;var o=r[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=r,n.d=function(e,r,t){n.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,r){if(1&r&&(e=n(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(n.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var o in e)n.d(t,o,function(r){return e[r]}.bind(null,o));return t},n.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(r,\"a\",r),r},n.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},n.p=\"/conversion/\",n(n.s=2)}([function(e,r,n){\"use strict\";var t=Object.prototype.hasOwnProperty,o=Object.prototype.toString,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,s=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===o.call(e)},u=function(e){if(!e||\"[object Object]\"!==o.call(e))return!1;var r,n=t.call(e,\"constructor\"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!i)return!1;for(r in e);return void 0===r||t.call(e,r)},l=function(e,r){i&&\"__proto__\"===r.name?i(e,r.name,{enumerable:!0,configurable:!0,value:r.newValue,writable:!0}):e[r.name]=r.newValue},c=function(e,r){if(\"__proto__\"===r){if(!t.call(e,r))return;if(a)return a(e,r).value}return e[r]};e.exports=function e(){var r,n,t,o,i,a,p=arguments[0],f=1,m=arguments.length,d=!1;for(\"boolean\"==typeof p&&(d=p,p=arguments[1]||{},f=2),(null==p||\"object\"!=typeof p&&\"function\"!=typeof p)&&(p={});f<m;++f)if(null!=(r=arguments[f]))for(n in r)t=c(p,n),p!==(o=c(r,n))&&(d&&o&&(u(o)||(i=s(o)))?(i?(i=!1,a=t&&s(t)?t:[]):a=t&&u(t)?t:{},l(p,{name:n,newValue:e(d,a,o)})):void 0!==o&&l(p,{name:n,newValue:o}));return p}},function(e,r,n){window,e.exports=function(e){var r={};function n(t){if(r[t])return r[t].exports;var o=r[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=r,n.d=function(e,r,t){n.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,r){if(1&r&&(e=n(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(n.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var o in e)n.d(t,o,function(r){return e[r]}.bind(null,o));return t},n.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(r,\"a\",r),r},n.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},n.p=\"/qlik-modifiers/\",n(n.s=1)}([function(e,r,n){\"use strict\";var t=Object.prototype.hasOwnProperty,o=Object.prototype.toString,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,s=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===o.call(e)},u=function(e){if(!e||\"[object Object]\"!==o.call(e))return!1;var r,n=t.call(e,\"constructor\"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!i)return!1;for(r in e);return void 0===r||t.call(e,r)},l=function(e,r){i&&\"__proto__\"===r.name?i(e,r.name,{enumerable:!0,configurable:!0,value:r.newValue,writable:!0}):e[r.name]=r.newValue},c=function(e,r){if(\"__proto__\"===r){if(!t.call(e,r))return;if(a)return a(e,r).value}return e[r]};e.exports=function e(){var r,n,t,o,i,a,p=arguments[0],f=1,m=arguments.length,d=!1;for(\"boolean\"==typeof p&&(d=p,p=arguments[1]||{},f=2),(null==p||\"object\"!=typeof p&&\"function\"!=typeof p)&&(p={});f<m;++f)if(null!=(r=arguments[f]))for(n in r)t=c(p,n),p!==(o=c(r,n))&&(d&&o&&(u(o)||(i=s(o)))?(i?(i=!1,a=t&&s(t)?t:[]):a=t&&u(t)?t:{},l(p,{name:n,newValue:e(d,a,o)})):void 0!==o&&l(p,{name:n,newValue:o}));return p}},function(e,r,n){\"use strict\";n.r(r);var t=n(0),o=n.n(t),i=function(e,r,n){if(!r)return!1;var t,o=r.split(\".\"),i=o[o.length-1],a=e;for(t=0;t<o.length-1;++t)void 0===a[o[t]]&&(a[o[t]]=Number.isNaN(+o[t+1])?{}:[]),a=a[o[t]];if(void 0!==n){var s=a[i];return a[i]=n,{updated:n,previous:s}}return delete a[i],!1},a=function(e,r,n){var t,o=r.split(\".\"),i=e;if(void 0===i)return n;for(t=0;t<o.length;++t){if(void 0===i[o[t]])return n;i=i[o[t]]}return i},s=\"\".concat(\" \",\"(\").concat(\" \"),u=\"\".concat(\" \",\")\").concat(\" \");function l(e){return s+e+u}function c(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(e.qLibraryId){var n=function(e,r){if(!r)return null;var n,t;for(n=0;n<r.length;n++)if((t=r[n]).qInfo.qId===e)return t;return null}(e.qLibraryId,r.dimensionList);return n&&n.qData.info[0].qTags.indexOf(\"$numeric\")>-1}var t=function(e,r){if(!r)return null;var n,t,o=function(e){var r=e.trim();\"=\"===r.charAt(0)&&(r=(r=r.substring(1)).trim());var n=r.length-1;return\"[\"===r.charAt(0)&&\"]\"===r.charAt(n)&&(r=(r=r.substring(1,n)).trim()),r}(e);for(n=0;n<r.length;n++){if((t=r[n]).qName===o)return t;if(t.qDerivedFieldData)for(var i=0;i<t.qDerivedFieldData.qDerivedFieldLists.length;++i)for(var a=t.qDerivedFieldData.qDerivedFieldLists[i],s=0;s<a.qFieldDefs.length;++s){var u=a.qFieldDefs[s];if(u.qName===o)return u}}return null}(e.qDef.qFieldDefs[0],r.fieldList);return t&&t.qTags.indexOf(\"$numeric\")>-1}function p(e){return!(!e.fullAccumulation&&!e.fullRange)}function f(e,r){var n=e.crossAllDimensions;return 2===r&&n?\"RowNo(Total)\":\"RowNo()\"}function m(e){var r=function(e){return e?(e=function(e){return e.replace(/\\/\\*[^]*?\\*\\//g,\"\")}(e=function(e){return e.replace(/\\/\\/(.*)$/gm,\"\")}(e))).trim():\"\"}(e).trim();return\"=\"===r.substring(0,1)?r.substring(1).trim():r}function d(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return\"[$(=Replace(GetObjectField(\".concat(e,\"),']',']]'))]\")}function y(e,r){var n=e.crossAllDimensions;return 2===r&&n?\"Above(Total \":\"Above(\"}function q(e){return void 0===e?\")\":\", 0, \".concat(e,\")\")}function b(e,r){return e?\"\".concat(r,'={\">=$(=Min(').concat(r,\"))<=$(=Max(\").concat(r,'))\"}'):\"\".concat(r,'={\"=Only({1}').concat(r,\")>='$(=MinString(\").concat(r,\"))' and Only({1}\").concat(r,\")<='$(=MaxString(\").concat(r,\"))'\\\"}\")}function D(e){var r=e.modifier,n=void 0===r?{}:r,t=e.dimensions,o=e.dimensionAndFieldList,i=e.funcComp,a=void 0===i?\"Sum\":i,s=e.valueComp,u=void 0===s?\"0\":s;if(!n.showExcludedValues)return\"\";if(t&&1===t.length){var l=b(c(t[0],o),d(0));return\"\".concat(a,\"({1<\").concat(l,\">}\").concat(u,\")\")}if(t&&2===t.length){var p=c(t[0],o),f=c(t[1],o),m=d(0),y=d(1),q=b(p,m),D=b(f,y);return\"\".concat(a,\"({1<\").concat(q,\",\").concat(D,\">}\").concat(u,\")\")}return\"\".concat(a,\"({1}\").concat(u,\")\")}function v(e){return\"\".concat(e,\"(\")}function g(e){var r=e.properties,n=e.layout;return a(r,\"qHyperCubeDef.qDimensions\",a(n,\"qHyperCube.qDimensionInfo\",[])).length}var h={isFullRange:p,getNumDimensions:g,getExpressionWithExcludedComp:function(e){var r=e.expression,n=e.modifier,t=e.dimensions,o=e.dimensionAndFieldList,i=e.treatMissingAsNull,a=l(m(r));if(!n.showExcludedValues)return a;var s=D({modifier:n,dimensions:t,dimensionAndFieldList:o}),u=i?\"\":\", 0\";if(t&&1===t.length){var c=d(0);return\"If(Count(\".concat(c,\") > 0, \").concat(a,\" + \").concat(s).concat(u,\")\")}if(t&&2===t.length){var p=d(0),f=d(1);return\"If(Count(\".concat(p,\") * Count(\").concat(f,\") > 0, \").concat(a,\" + \").concat(s).concat(u,\")\")}return a},getRowNoComp:f,getNumStepComp:function(e,r){if(!p(e)){var n=e.steps;return\"number\"!=typeof n||Number.isNaN(n)?6:n}return f(e,r)},getAboveCompPrefix:y,getAboveCompSuffix:q,getAboveComp:function(e,r,n,t){return y(e,r)+n+q(t)},getFunctionPrefix:v,getFunctionSuffix:function(){return\")\"},getRangeComp:function(e,r){return v(e)+r+\")\"},getAggrComp:function(e,r,n){return\"Aggr(\".concat(e,\", \").concat(r,\", \").concat(n,\")\")},getExcludedComp:D,needDimension:function(e){var r=e.modifier,n=e.properties,t=e.layout;return 0===function(e){return void 0===e.primaryDimension?e.accumulationDimension:e.primaryDimension}(r)&&2===g({properties:n,layout:t})},getDimComp:function(e,r){var n=function(e){return e[arguments.length>1&&void 0!==arguments[1]?arguments[1]:0].qDef.qSortCriterias[0]}(e,r),t=d(r);if(!n.qSortByExpression&&!n.qSortByNumeric&&!n.qSortByAscii)return t;var o=[\"Descending\",\"Ascending\"],i=n.qSortByNumeric?\"(Numeric, \".concat(o[(n.qSortByNumeric+1)/2],\")\"):\"\",a=n.qSortByAscii?\"(Text, \".concat(o[(n.qSortByAscii+1)/2],\")\"):\"\";return n.qSortByNumeric&&n.qSortByAscii?\"(\".concat(t,\", \").concat(i,\", \").concat(a,\")\"):n.qSortByNumeric?\"(\".concat(t,\", \").concat(i,\")\"):n.qSortByAscii?\"(\".concat(t,\", \").concat(a,\")\"):t},simplifyExpression:m,extractInputExpression:function(e){var r=e.outputExpression;if(e.modifier){var n=r.indexOf(s);if(-1!==n){var t=r.indexOf(u);if(-1!==t)return r.substring(n+s.length,t)}}},initModifier:function(e,r){Object.keys(r).forEach((function(n){void 0===e[n]&&(e[n]=r[n])}))},isNumeric:c,isApplicable:function(e){var r=e.properties,n=e.layout,t=e.minDimensions,o=void 0===t?1:t,i=e.maxDimensions,a=void 0===i?2:i;if(!r&&!n)return!0;var s=g({properties:r,layout:n});return s>=o&&s<=a},getExpressionWithMarkers:l,canExtract:function(e){var r=e.indexOf(s),n=e.indexOf(u);return r>-1&&n>-1&&r<n},getDimDefWithWrapper:d,getFieldWithWrapper:function(e){var r=e?e.replace(/]/g,\"]]\"):e;return\"[\".concat(r,\"]\")}};function x(e){return(x=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}var E=o.a.bind(null,!0),A={},C=Array.isArray;function I(e){return null!=e&&!Array.isArray(e)&&\"object\"===x(e)}function M(e){return void 0===e}function S(e,r){return\"function\"==typeof e[r]||\"$$\"===r.substring(0,2)||\"_\"===r.substring(0,1)}function L(e,r){var n,t=r.substring(1).split(\"/\").slice(0,-1);return t.forEach((function(r,o){if(o!==t.length){n=+r;var i=Number.isNaN(n)?{}:[];e[n||r]=M(e[n||r])?i:e[r],e=e[n||r]}})),e}function O(e,r){var n=!0;if(I(e)&&I(r))return Object.keys(e).length===Object.keys(r).length&&(Object.keys(e).forEach((function(t){O(e[t],r[t])||(n=!1)})),n);if(C(e)&&C(r)){if(e.length!==r.length)return!1;for(var t=0,o=e.length;t<o;t+=1)if(!O(e[t],r[t]))return!1;return!0}return e===r}A.generate=function(e,r,n){n=n||\"\";var t=[];return Object.keys(r).forEach((function(o){var i=function(e){return e?E({},{val:e}).val:e}(r[o]),a=e[o],s=\"\".concat(n,\"/\").concat(o);O(i,a)||S(r,o)||(M(a)?t.push({op:\"add\",path:s,value:i}):I(i)&&I(a)?t=t.concat(A.generate(a,i,s)):C(i)&&C(a)?t=t.concat(function(e,r,n){var t=[],o=e.slice(),i=-1;function a(e,r,n){if(e[n]&&M(e[n].qInfo))return null;if(e[n]&&e[n].qInfo.qId===r)return n;for(var t=0,o=e.length;t<o;t+=1)if(e[t]&&e[t].qInfo.qId===r)return t;return-1}if(O(r,o))return t;if(!M(r[0])&&M(r[0].qInfo))return t.push({op:\"replace\",path:n,value:r}),t;for(var s=o.length-1;s>=0;s-=1)-1===(i=a(r,o[s].qInfo&&o[s].qInfo.qId,s))?(t.push({op:\"remove\",path:\"\".concat(n,\"/\").concat(s)}),o.splice(s,1)):t=t.concat(A.generate(o[s],r[i],\"\".concat(n,\"/\").concat(s)));for(var u=0,l=r.length;u<l;u+=1)-1===(i=a(o,r[u].qInfo&&r[u].qInfo.qId))?(t.push({op:\"add\",path:\"\".concat(n,\"/\").concat(u),value:r[u]}),o.splice(u,0,r[u])):i!==u&&(t.push({op:\"move\",path:\"\".concat(n,\"/\").concat(u),from:\"\".concat(n,\"/\").concat(i)}),o.splice(u,0,o.splice(i,1)[0]));return t}(a,i,s)):t.push({op:\"replace\",path:\"\".concat(n,\"/\").concat(o),value:i}))})),Object.keys(e).forEach((function(o){M(r[o])&&!S(e,o)&&t.push({op:\"remove\",path:\"\".concat(n,\"/\").concat(o)})})),t},A.apply=function(e,r){r.forEach((function(r){var n,t=L(e,r.path),o=r.path.split(\"/\").splice(-1)[0],i=o&&Number.isNaN(+o)?t[o]:t[+o]||t,a=r.from?r.from.split(\"/\").splice(-1)[0]:null;if(\"/\"===r.path&&(t=null,i=e),\"add\"===r.op||\"replace\"===r.op)if(C(t))\"-\"===o&&(o=t.length),t.splice(+o,\"add\"===r.op?0:1,r.value);else if(C(i)&&C(r.value)){var s,u=r.value.slice();i.length=0,(s=i).push.apply(s,function(e){return function(e){if(Array.isArray(e)){for(var r=0,n=new Array(e.length);r<e.length;r++)n[r]=e[r];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}()}(u))}else if(I(i)&&I(r.value))n=i,Object.keys(n).forEach((function(e){Object.getOwnPropertyDescriptor(n,e).configurable&&!S(n,e)&&delete n[e]})),E(i,r.value);else{if(!t)throw new Error(\"Patchee is not an object we can patch\");t[o]=r.value}else if(\"move\"===r.op){var l=L(e,r.from);C(t)?t.splice(+o,0,l.splice(+a,1)[0]):(t[o]=l[a],delete l[a])}else\"remove\"===r.op&&(C(t)?t.splice(+o,1):delete t[o])}))},A.clone=function(e){return E({},e)},A.createPatch=function(e,r,n){var t={op:e.toLowerCase(),path:n};return\"move\"===t.op?t.from=r:void 0!==r&&(t.value=r),t},A.updateObject=function(e,r){Object.keys(e).length?A.apply(e,A.generate(e,r)):E(e,r)};var P=A,F=function(e,r,n){if(!e)return Promise.resolve();var t=P.generate(r,n);return o()(!0,r,n),t&&t.length?(t=t.map((function(e){return{qOp:e.op,qValue:JSON.stringify(e.value),qPath:e.path}})),e.applyPatches(t,!0)):Promise.resolve()},N=\"accumulation\";function V(e,r){var n=a(e,r);if(n)for(var t=0;t<n.length;t++)if(n[t].type===N)return n[t]}function w(e,r){var n=function(e,r){var n=a(e,r);if(!n)return-1;for(var t=0;t<n.length;t++)if(n[t].type===N)return t;return-1}(e,r);return n>-1?\"\".concat(r,\".\").concat(n):r}var H={type:\"accumulation\",disabled:!1,accumulationDimension:0,crossAllDimensions:!1,showExcludedValues:!0,fullAccumulation:!1,steps:6,outputExpression:\"\"},T={translationKey:\"properties.modifier.accumulation\",needDimension:h.needDimension,isApplicable:function(e){var r=e.properties,n=e.layout;return h.isApplicable({properties:r,layout:n,minDimensions:1,maxDimensions:2})},generateExpression:function(e){var r=e.expression,n=e.modifier,t=e.properties,o=e.layout,i=e.numDimensions,s=e.dimensionAndFieldList;if(!n)return r;var u=i;void 0===u&&(u=h.getNumDimensions({properties:t,layout:o}));var l=a(t,\"qHyperCubeDef.qDimensions\",[]),c=h.getExpressionWithExcludedComp({expression:r,modifier:n,dimensions:l,dimensionAndFieldList:s}),p=h.getNumStepComp(n,u),f=h.getAboveComp(n,u,c,p),m=h.getRangeComp(\"RangeSum\",f);if(h.needDimension({modifier:n,properties:t,layout:o})){var d=h.getDimComp(l,1),y=h.getDimComp(l,0),q=h.getAggrComp(m,d,y);m=n.showExcludedValues?h.getExcludedComp({modifier:n,dimensions:l,dimensionAndFieldList:s,valueComp:q}):q}return m},extractInputExpression:h.extractInputExpression,initModifier:function(e){h.initModifier(e,H)},enableTotalsFunction:function(){return!1},propertyPanelDef:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={type:\"items\",items:{disclaimer:{component:\"text\",translation:r.disclaimer||\"properties.modifier.accumulation.disclaimer\",show:function(e,r){return!h.isApplicable({properties:r.properties})}},settings:{type:\"items\",items:{primaryDimension:{refFn:function(r){return\"\".concat(w(r,e),\".accumulationDimension\")},type:\"integer\",translation:r.primaryDimension||\"properties.modifier.primaryDimension\",title:{translation:r.primaryDimensionTooltip||\"properties.modifier.accumulation.primaryDimension.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:1,options:function(e,r){return r.layout.qHyperCube.qDimensionInfo.map((function(e,r){return{value:r,label:e.qGroupFallbackTitles[0]}}))},show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},crossAllDimensions:{refFn:function(r){return\"\".concat(w(r,e),\".crossAllDimensions\")},type:\"boolean\",translation:r.crossAllDimensions||\"properties.modifier.crossAllDimensions\",title:{translation:r.crossAllDimensionsTooltip||\"properties.modifier.accumulation.crossAllDimensions.tooltip\"},schemaIgnore:!0,defaultValue:!1,show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},fullRange:{refFn:function(r){return\"\".concat(w(r,e),\".fullAccumulation\")},type:\"boolean\",translation:r.range||\"properties.modifier.range\",component:\"dropdown\",schemaIgnore:!0,defaultValue:!1,options:[{value:!0,translation:r.rangeFull||\"properties.modifier.range.full\"},{value:!1,translation:r.rangeCustom||\"properties.modifier.range.custom\"}]},steps:{refFn:function(r){return\"\".concat(w(r,e),\".steps\")},type:\"integer\",translation:r.rangeSteps||\"properties.modifier.range.steps\",schemaIgnore:!0,defaultValue:6,change:function(r){var n=V(r,e);if(n){var t=n.steps;n.steps=\"number\"!=typeof t||Number.isNaN(t)?6:Math.abs(t)}},show:function(r){var n=V(r,e);return n&&!n.fullAccumulation}},showExcludedValues:{refFn:function(r){return\"\".concat(w(r,e),\".showExcludedValues\")},type:\"boolean\",translation:r.showExcludedValues||\"properties.modifier.showExcludedValues\",schemaIgnore:!0,defaultValue:!0}},show:function(e,r){return h.isApplicable({properties:r.properties})}}},show:function(r,n,t){var o=t.ext.support.modifiers;if(!Array.isArray(o)||-1===o.indexOf(N))return!1;var i=V(r,e);return i&&!i.disabled}};return n}},j=\"movingAverage\";function _(e,r){var n=a(e,r);if(n)for(var t=0;t<n.length;t++)if(n[t].type===j)return n[t]}function R(e,r){var n=function(e,r){var n=a(e,r);if(!n)return-1;for(var t=0;t<n.length;t++)if(n[t].type===j)return t;return-1}(e,r);return n>-1?\"\".concat(r,\".\").concat(n):r}var B={type:\"movingAverage\",disabled:!1,primaryDimension:0,crossAllDimensions:!1,showExcludedValues:!0,fullRange:!1,steps:6,outputExpression:\"\",nullSuppression:!1},k={translationKey:\"properties.modifier.movingAverage\",needDimension:h.needDimension,isApplicable:function(e){var r=e.properties,n=e.layout;return h.isApplicable({properties:r,layout:n,minDimensions:1,maxDimensions:2})},generateExpression:function(e){var r,n=e.expression,t=e.modifier,o=e.properties,i=e.layout,s=e.numDimensions,u=e.dimensionAndFieldList;if(!t)return n;var l=s;void 0===l&&(l=h.getNumDimensions({properties:o,layout:i}));var c=a(o,\"qHyperCubeDef.qDimensions\",[]),p=t.showExcludedValues&&t.nullSuppression,f=h.getExpressionWithExcludedComp({expression:n,modifier:t,dimensions:c,dimensionAndFieldList:u,treatMissingAsNull:p}),m=h.getNumStepComp(t,l),d=h.getAboveComp(t,l,f,m);if(t.nullSuppression)r=h.getRangeComp(\"RangeAvg\",d);else{var y=h.getRangeComp(\"RangeSum\",d),q=function(e,r){var n=h.getRowNoComp(e,r);if(!h.isFullRange(e)){var t=e.steps,o=\"number\"!=typeof t||Number.isNaN(t)?6:t;return\"RangeMin(\".concat(o,\", \").concat(n,\")\")}return n}(t,l);r=\"\".concat(y,\" / \").concat(q)}var b=r;if(h.needDimension({modifier:t,properties:o,layout:i})){var D=h.getDimComp(c,1),v=h.getDimComp(c,0),g=h.getAggrComp(b,D,v);b=t.showExcludedValues?h.getExcludedComp({modifier:t,dimensions:c,dimensionAndFieldList:u,funcComp:\"Only\",valueComp:g}):g}return b},extractInputExpression:h.extractInputExpression,initModifier:function(e){h.initModifier(e,B)},enableTotalsFunction:function(){return!1},propertyPanelDef:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={type:\"items\",items:{disclaimer:{component:\"text\",translation:r.disclaimer||\"properties.modifier.movingAverage.disclaimer\",show:function(e,r){return!h.isApplicable({properties:r.properties})}},settings:{type:\"items\",items:{primaryDimension:{refFn:function(r){return\"\".concat(R(r,e),\".primaryDimension\")},type:\"integer\",translation:r.primaryDimension||\"properties.modifier.primaryDimension\",title:{translation:r.primaryDimensionTooltip||\"properties.modifier.movingAverage.primaryDimension.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:1,options:function(e,r){return r.layout.qHyperCube.qDimensionInfo.map((function(e,r){return{value:r,label:e.qGroupFallbackTitles[0]}}))},show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},crossAllDimensions:{refFn:function(r){return\"\".concat(R(r,e),\".crossAllDimensions\")},type:\"boolean\",translation:r.crossAllDimensions||\"properties.modifier.crossAllDimensions\",title:{translation:r.crossAllDimensionsTooltip||\"properties.modifier.movingAverage.crossAllDimensions.tooltip\"},schemaIgnore:!0,defaultValue:!1,show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},fullRange:{refFn:function(r){return\"\".concat(R(r,e),\".fullRange\")},type:\"boolean\",translation:r.range||\"properties.modifier.range\",component:\"dropdown\",schemaIgnore:!0,defaultValue:!1,options:[{value:!0,translation:r.rangeFull||\"properties.modifier.range.full\"},{value:!1,translation:r.rangeCustom||\"properties.modifier.range.custom\"}]},steps:{refFn:function(r){return\"\".concat(R(r,e),\".steps\")},type:\"integer\",translation:r.rangeSteps||\"properties.modifier.range.steps\",schemaIgnore:!0,defaultValue:6,change:function(r){var n=_(r,e);if(n){var t=n.steps;n.steps=\"number\"!=typeof t||Number.isNaN(t)?6:Math.abs(t)}},show:function(r){var n=_(r,e);return n&&!n.fullRange}},showExcludedValues:{refFn:function(r){return\"\".concat(R(r,e),\".showExcludedValues\")},type:\"boolean\",translation:r.showExcludedValues||\"properties.modifier.showExcludedValues\",schemaIgnore:!0,defaultValue:!0},nullSuppression:{refFn:function(r){return\"\".concat(R(r,e),\".nullSuppression\")},type:\"boolean\",translation:r.showNull||\"properties.dimensions.showNull\",schemaIgnore:!0,defaultValue:!1,inverted:!0}},show:function(e,r){return h.isApplicable({properties:r.properties})}}},show:function(r,n,t){var o=t.ext.support.modifiers;if(!Array.isArray(o)||-1===o.indexOf(j))return!1;var i=_(r,e);return i&&!i.disabled}};return n}},U=\"difference\";function G(e,r){var n=a(e,r);if(n)for(var t=0;t<n.length;t++)if(n[t].type===U)return n[t]}function W(e,r){var n=function(e,r){var n=a(e,r);if(!n)return-1;for(var t=0;t<n.length;t++)if(n[t].type===U)return t;return-1}(e,r);return n>-1?\"\".concat(r,\".\").concat(n):r}var $={type:\"difference\",disabled:!1,primaryDimension:0,crossAllDimensions:!1,showExcludedValues:!0,outputExpression:\"\"},z={translationKey:\"properties.modifier.difference\",needDimension:h.needDimension,isApplicable:function(e){var r=e.properties,n=e.layout;return h.isApplicable({properties:r,layout:n,minDimensions:1,maxDimensions:2})},extractInputExpression:h.extractInputExpression,generateExpression:function(e){var r=e.expression,n=e.modifier,t=e.properties,o=e.layout,i=e.numDimensions,s=e.dimensionAndFieldList;if(!n)return r;var u=i;void 0===u&&(u=h.getNumDimensions({properties:t,layout:o}));var l=a(t,\"qHyperCubeDef.qDimensions\",[]),c=h.getExpressionWithExcludedComp({expression:r,modifier:n,dimensions:l,dimensionAndFieldList:s}),p=h.getAboveComp(n,u,c),f=\"\".concat(c,\" - \").concat(p);if(h.needDimension({modifier:n,properties:t,layout:o})){var m=h.getDimComp(l,1),d=h.getDimComp(l,0),y=h.getAggrComp(f,m,d);f=n.showExcludedValues?h.getExcludedComp({modifier:n,dimensions:l,dimensionAndFieldList:s,funcComp:\"Only\",valueComp:y}):y}return f},initModifier:function(e){Object.keys($).forEach((function(r){void 0===e[r]&&(e[r]=$[r])}))},enableTotalsFunction:function(){return!1},propertyPanelDef:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={type:\"items\",items:{disclaimer:{component:\"text\",translation:r.disclaimer||\"properties.modifier.difference.disclaimer\",show:function(e,r){return!h.isApplicable({properties:r.properties})}},settings:{type:\"items\",items:{primaryDimension:{refFn:function(r){return\"\".concat(W(r,e),\".primaryDimension\")},type:\"integer\",translation:r.primaryDimension||\"properties.modifier.primaryDimension\",title:{translation:r.primaryDimensionTooltip||\"properties.modifier.difference.primaryDimension.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:1,options:function(e,r){return r.layout.qHyperCube.qDimensionInfo.map((function(e,r){return{value:r,label:e.qGroupFallbackTitles[0]}}))},show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},crossAllDimensions:{refFn:function(r){return\"\".concat(W(r,e),\".crossAllDimensions\")},type:\"boolean\",translation:r.crossAllDimensions||\"properties.modifier.crossAllDimensions\",title:{translation:r.crossAllDimensionsTooltip||\"properties.modifier.difference.crossAllDimensions.tooltip\"},schemaIgnore:!0,defaultValue:!1,show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},showExcludedValues:{refFn:function(r){return\"\".concat(W(r,e),\".showExcludedValues\")},type:\"boolean\",translation:r.showExcludedValues||\"properties.modifier.showExcludedValues\",schemaIgnore:!0,defaultValue:!0}},show:function(e,r){return h.isApplicable({properties:r.properties})}}},show:function(r,n,t){var o=t.ext.support.modifiers;if(!Array.isArray(o)||-1===o.indexOf(U))return!1;var i=G(r,e);return i&&!i.disabled}};return n}},Y={CURRENT_SELECTION:0,SELECT_FIELD_VALUE:1,DISREGARD_SELECTION:2},J={ONE_DIMENSION:0,ALL_DIMENSIOANS:1,DISREGARD_ALL_DIMENSIONS:2},K=\"normalization\";function X(e,r){var n=a(e,r);if(n)for(var t=0;t<n.length;t++)if(n[t].type===K)return n[t]}function Q(e,r){var n=function(e,r){var n=a(e,r);if(!n)return-1;for(var t=0;t<n.length;t++)if(n[t].type===K)return t;return-1}(e,r);return n>-1?\"\".concat(r,\".\").concat(n):r}function Z(e,r){for(var n=0;n<e.length;n++)if(e[n].value===r)return n;return-1}function ee(e,r,n,t){var o=r.layout.qHyperCube.qDimensionInfo.length,i=[{value:J.ONE_DIMENSION,translation:n.dimensionalScopeOneDimension||\"properties.modifier.dimensionalScope.respectOneDimension\",tooltipTranslation:n.dimensionalScopeOneDimensionTooltip||\"properties.modifier.dimensionalScope.respectOneDimension.tooltip\"},{value:J.ALL_DIMENSIOANS,translation:n.dimensionalScopeAllDimensions||\"properties.modifier.dimensionalScope.\".concat(2===o?\"respectAllDimensions\":\"respectDimension\"),tooltipTranslation:n.dimensionalScopeAllDimensionsTooltip||\"properties.modifier.dimensionalScope.\".concat(2===o?\"respectAllDimensions\":\"respectDimension\",\".tooltip\")},{value:J.DISREGARD_ALL_DIMENSIONS,translation:n.dimensionalScopeDisregardAllDimensions||\"properties.modifier.dimensionalScope.\".concat(2===o?\"disregardAllDimensions\":\"disregardDimension\"),tooltipTranslation:n.dimensionalScopeDisregardAllDimensionsTooltip||\"properties.modifier.dimensionalScope.\".concat(2===o?\"disregardAllDimensions\":\"disregardDimension\",\".tooltip\")}];return i=function(e,r,n){if(e<2){var t=Z(r,0);r.splice(t,1)}return r}(o,i),function(e,r,n){if(0===e){var t=Z(r,1);r.splice(t,1)}return r}(X(e,t).selectionScope,i)}function re(e,r,n){var t=[{value:Y.CURRENT_SELECTION,translation:r.selectionScopeCurrentSelection||\"properties.modifier.selectionScope.currentSelection\"},{value:Y.SELECT_FIELD_VALUE,translation:r.selectionScopeSpecificValue||\"properties.modifier.selectionScope.selectAField\"},{value:Y.DISREGARD_SELECTION,translation:r.selectionScopeTotal||\"properties.modifier.selectionScope.total\"}];return function(e,r,n){if(1===e){var t=Z(r,0);r.splice(t,1)}return r}(X(e,n).dimensionalScope,t)}var ne={type:\"normalization\",disabled:!1,primaryDimension:0,outputExpression:\"\",dimensionalScope:J.DISREGARD_ALL_DIMENSIONS,selectionScope:Y.DISREGARD_SELECTION};function te(e){return 2===e?\"{1}\":\"\"}function oe(e,r,n){return 1===e?\"{$<\".concat(h.getFieldWithWrapper(r),\"={'\").concat(n,\"'}>}\"):\"\"}function ie(e,r){return 0===e&&r>1||2===e?\"Total\":\"\"}function ae(e,r,n){return 0===e&&r>1?\"<\".concat(h.getDimDefWithWrapper(n),\">\"):\"\"}var se={translationKey:\"properties.modifier.normalization\",needDimension:function(){return!0},isApplicable:function(e){var r=e.properties,n=e.layout;return h.isApplicable({properties:r,layout:n,minDimensions:1,maxDimensions:2})},extractInputExpression:h.extractInputExpression,generateExpression:function(e){var r=e.expression,n=e.modifier,t=e.properties,o=e.layout,i=e.numDimensions,s=e.dimensionAndFieldList;if(!n)return r;var u=i;void 0===u&&(u=h.getNumDimensions({properties:t,layout:o}));var l=a(t,\"qHyperCubeDef.qDimensions\",[]),c=h.getExpressionWithExcludedComp({expression:r,modifier:n,dimensions:l,dimensionAndFieldList:s}),p=n.selectionScope,f=n.dimensionalScope;return function(e,r,n,t,o,i,a){var s=te(r),u=oe(r,n,t),l=\"\"===s&&\"\"===u?\"\":s||u,c=ie(o,i),p=ae(o,i,a),f=function(e){for(var r=[],n=0;n<e;n++)r[n]=h.getDimDefWithWrapper(n);return r.join(\", \")}(i);return\"\".concat(e,\"/ Sum(\").concat(l,\" \").concat(c).concat(p,\" Aggr(\").concat(l,\" \").concat(e,\", \").concat(f,\"))\")}(c,p,n.field,n.value,f,u,n.primaryDimension)},initModifier:function(e){Object.keys(ne).forEach((function(r){void 0===e[r]&&(e[r]=ne[r])}))},updateModifier:function(e,r){1===(r.qDimensions?r.qDimensions.length:0)&&0===e.dimensionalScope&&(e.dimensionalScope=2)},enableTotalsFunction:function(){return!0},propertyPanelDef:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={type:\"items\",items:{disclaimer:{component:\"text\",translation:r.disclaimer||\"properties.modifier.normalization.disclaimer\",show:function(e,r){return!h.isApplicable({properties:r.properties})}},settings:{type:\"items\",items:{selectionScope:{refFn:function(r){return\"\".concat(Q(r,e),\".selectionScope\")},type:\"string\",translation:r.modifierSelectionScope||\"properties.modifier.selectionScope\",title:{translation:r.modifierSelectionScopeTooltip||\"properties.modifier.selectionScope.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:Y.DISREGARD_SELECTION,options:function(n){return re(n,r,e)}},field:{refFn:function(r){return\"\".concat(Q(r,e),\".field\")},type:\"string\",component:\"expression-with-dropdown\",translation:\"Common.Field\",defaultValue:\"\",dropdownOnly:!0,options:function(e,r,n){return n.app.getFieldList().then((function(e){return e.map((function(e){return{label:e.qName,value:e.qName}}))}))},show:function(r){return X(r,e).selectionScope===Y.SELECT_FIELD_VALUE}},value:{refFn:function(r){return\"\".concat(Q(r,e),\".value\")},type:\"string\",ref:\"value\",component:\"string\",translation:\"properties.value\",expression:\"optional\",show:function(r){return X(r,e).selectionScope===Y.SELECT_FIELD_VALUE}},dimensionalScope:{refFn:function(r){return\"\".concat(Q(r,e),\".dimensionalScope\")},type:\"string\",translation:r.modifierDimensionalScope||\"properties.modifier.dimensionalScope\",title:{translation:r.modifierDimensionalScopeTooltip||\"properties.modifier.dimensionalScope.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:J.DISREGARD_ALL_DIMENSIONS,supportTooltip:!0,options:function(n,t){return ee(n,t,r,e)}},primaryDimension:{refFn:function(r){return\"\".concat(Q(r,e),\".primaryDimension\")},type:\"integer\",translation:r.primaryDimension||\"properties.modifier.primaryDimension\",title:{translation:r.primaryDimensionTooltip||\"properties.modifier.normalization.primaryDimension.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:1,options:function(e,r){return r.layout.qHyperCube.qDimensionInfo.map((function(e,r){return{value:r,label:e.qGroupFallbackTitles[0]}}))},show:function(r,n){return(X(r,e).dimensionalScope||0)===J.ONE_DIMENSION&&n.layout.qHyperCube.qDimensionInfo.length>1}}},show:function(e,r){return h.isApplicable({properties:r.properties})}}},show:function(r,n,t){var o=t.ext.support.modifiers;if(!Array.isArray(o)||-1===o.indexOf(K))return!1;var i=X(r,e);return i&&!i.disabled}};return n},getDisregardSelectionComp:te,getFieldSelectionComp:oe,getTotalComp:ie,getSelectedDimComp:ae},ue={getExpression:function(e){return a(e,\"qDef.base.qDef\")||a(e,\"qDef.qDef\")},getExpressionRef:function(e){return a(e,\"qDef.base.qDef\")?\"qDef.base.qDef\":\"qDef.qDef\"},getLibraryIdRef:function(e){return a(e,\"qDef.base.qLibraryId\")?\"qDef.base.qLibraryId\":\"qLibraryId\"},getLibraryId:function(e){return a(e,\"qDef.base.qLibraryId\")||a(e,\"qLibraryId\")},getLabelRef:function(e){return a(e,\"qDef.base\")?\"qDef.base.qLabel\":\"qDef.qLabel\"},getLabelExpressionRef:function(e){return a(e,\"qDef.base\")?\"qDef.base.qLabelExpression\":\"qDef.qLabelExpression\"}},le={initBase:function(e,r){(r||le.isValid(e))&&(i(e,\"qDef.base.qDef\",a(e,\"qDef.qDef\")),i(e,\"qDef.base.qLibraryId\",a(e,\"qLibraryId\")),i(e,\"qDef.base.qLabel\",a(e,\"qDef.qLabel\")),i(e,\"qDef.base.qLabelExpression\",a(e,\"qDef.qLabelExpression\")))},restoreBase:function(e){le.isValid(e)&&(i(e,\"qDef.qDef\",a(e,\"qDef.base.qDef\")),i(e,\"qLibraryId\",a(e,\"qDef.base.qLibraryId\")),i(e,\"qDef.qLabel\",a(e,\"qDef.base.qLabel\")),i(e,\"qDef.qLabelExpression\",a(e,\"qDef.base.qLabelExpression\")),a(e,\"qDef.qAggrFunc\")&&a(e,\"qDef.base.qAggrFunc\")&&i(e,\"qDef.qAggrFunc\",a(e,\"qDef.base.qAggrFunc\")),delete e.qDef.base)},isValid:function(e){var r=a(e,\"qDef.base.qDef\"),n=a(e,\"qDef.base.qLibraryId\");return void 0!==r||void 0!==n}},ce=le;function pe(e){return(pe=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}var fe={accumulation:T,movingAverage:k,difference:z,normalization:se},me=(r.default={modifiers:fe,apply:de,applyModifiers:ye,cleanUpMeasure:qe,destroy:function(e){e&&me[e.id]&&me[e.id].masterItemSubscriber&&(me[e.id].masterItemSubscriber&&me[e.id].masterItemSubscriber.unsubscribe(),delete me[e.id])},hasActiveModifiers:be,getActiveModifier:De,initBase:ce.initBase,isSupportedModifiers:function(e){return Array.isArray(e)&&e.some((function(e){return fe[e]}))},isApplicableSupportedModifiers:function(e){var r=e.modifierTypes,n=e.properties,t=e.layout;return Array.isArray(r)&&r.some((function(e){return fe[e]&&fe[e].isApplicable({properties:n,layout:t})}))},measureBase:ue,limitedSorting:function(e){var r=e.measures,n=e.properties,t=e.layout,o=!1,i=!1;return r.forEach((function(e){var r=he(e);Se({modifiers:r,properties:n,layout:t})&&(o=!0,i=i||Ne({modifiers:r,properties:n,layout:t}))})),o&&!i},ifEnableTotalsFunction:ve},{});function de(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.model,n=e.properties,t=e.isSnapshot,i=void 0!==t&&t,s=e.masterItem;me[r.id]=me[r.id]||{isFirstTime:!0};var u=me[r.id].isFirstTime;if(me[r.id].isFirstTime=!1,n&&\"object\"===pe(n))return ye({model:r,properties:n});var l=r?r.layout:void 0,c=a(l,\"qSelectionInfo.qInSelections\");if(i||c)return Promise.resolve(!1);var p=a(l,\"qHyperCube.qMeasureInfo\"),f=me[r.id].lastReloadTime;if(me[r.id].lastReloadTime=a(r,\"app.layout.qLastReloadTime\"),be({measures:p,layout:l})){var m=function(e){var r=e.measures,n=e.layout,t=e.lastReloadTime;return a(e.model,\"app.layout.qLastReloadTime\")!==t&&function(e){var r=e.measures,n=e.properties,t=e.layout;return!!Array.isArray(r)&&r.some((function(e){return Me({measure:e,properties:n,layout:t})}))}({measures:r,layout:n})}({measures:p,layout:l,model:r,lastReloadTime:f});return m||function(e){var r=e.measures,n=e.layout,t=e.masterItem,o=e.isFirstTime;return!!Array.isArray(r)&&(o||t||r.some((function(e){return function(e){var r=e.measure,n=e.layout;return Se({modifiers:he(r),layout:n})?!r.base:!!r.base}({measure:e,layout:n})})))}({measures:p,layout:l,masterItem:s,isFirstTime:u})?r.getEffectiveProperties().then((function(e){var n=o()(!0,{},e);Ee(n);var t=Ve(n);return Le({model:r}).then((function(o){return Oe({libraryIds:t,model:r}).then((function(t){return m&&function(e){var r=e.properties;ge(r).forEach((function(e){return function(e){var r=e.measure;if(Me({measure:r,properties:e.properties})){var n=0,t=r.qDef.modifiers;Array.isArray(t)&&t.forEach((function(e){if(\"object\"===pe(e)&&!e.disabled){if(n++,\"object\"!==pe(fe[e.type]))throw new Error('Modifier \"'.concat(e.type,'\" is not available'));if(n>1)throw new Error(\"More than 1 modifier on a measure! (not yet supported)\");var t=fe[e.type].extractInputExpression({outputExpression:r.qDef.qDef,modifier:e});void 0!==t&&Ce(r)&&h.simplifyExpression(r.qDef.base.qDef)!==h.simplifyExpression(t)&&(r.qDef.base.qDef=t)}}))}}({measure:e,properties:r})}))}({properties:n}),ye({model:r,oldProperties:e,properties:n,runUpdateIfChange:!0,masterItem:s,libraryItemsProps:t,dimensionAndFieldList:o})}))}))})):Promise.resolve(!1)}return function(e){return!!Array.isArray(e)&&e.some((function(e){return\"object\"===pe(e.base)}))}(p)?r.getEffectiveProperties().then((function(e){return function(e){var r=e.model,n=e.properties,t=Ve(n);return we({model:r,libraryIds:t}).then((function(){var e=o()(!0,{},n);return ge(n).forEach((function(e){return qe(e)})),Fe({oldProperties:e,newProperties:n,model:r})}))}({model:r,properties:e})})):Promise.resolve(!1)}function ye(e){var r=e.model,n=e.oldProperties,t=e.properties,i=e.measures,s=e.runUpdateIfChange,u=void 0!==s&&s,l=e.masterItem,c=e.libraryItemsProps,p=e.dimensionAndFieldList;void 0===n&&(n=u?o()(!0,{},t):t),Ee(t);var f=Ve(t);return we({model:r,libraryIds:f,masterItem:l}).then((function(){return function(e){var r=e.measures,n=e.properties,t=e.model,i=e.libraryItemsProps,s=e.dimensionAndFieldList;if(r||(r=ge(n)),!r.length)return Promise.resolve();if(!be({measures:r,properties:n}))return r.forEach((function(e){return qe(e)})),Promise.resolve();var u=i?void 0:Ve(n);return Le({model:t,dimensionAndFieldList:s}).then((function(e){return Oe({libraryIds:u,model:t,libraryItemsProps:i}).then((function(t){r.forEach((function(r){Se({modifiers:r.qDef.modifiers,properties:n})?(function(e){var r=e.measure,n=e.properties,t=e.libraryItemsProps,i=e.dimensionAndFieldList,s=0;ce.isValid(r)||ce.initBase(r,!0);var u=r.qDef,l=u.modifiers,c=u.base;Array.isArray(l)&&l.forEach((function(e){if(\"object\"===pe(e)&&!e.disabled){if(s++,\"object\"!==pe(fe[e.type]))throw new Error('Modifier \"'.concat(e.type,'\" is not available'));if(s>1)throw new Error(\"More than 1 modifier on a measure! (not yet supported)\");fe[e.type].initModifier(e);var u=r.qLibraryId||c&&c.qLibraryId;u?function(e){var r=e.measure,n=e.modifier,t=e.properties,i=e.dimensionAndFieldList,a=e.libraryItemsProps[e.libraryId],s=a.qMeasure.qDef,u=fe[n.type].generateExpression({expression:s,modifier:n,properties:t,dimensionAndFieldList:i});n.outputExpression=u,r.qDef.qDef=n.outputExpression,(r.qDef.qLabel||a.qMeasure.qLabel)&&(r.qDef.qLabel=a.qMeasure.qLabel),(r.qDef.qLabelExpression||a.qMeasure.qLabelExpression)&&(r.qDef.qLabelExpression=a.qMeasure.qLabelExpression),r.qDef.quarantine&&r.qDef.quarantine.qNumFormat&&a.qMeasure.qNumFormat&&(r.qDef.qNumFormat=a.qMeasure.qNumFormat,r.qDef.isCustomFormatted=a.qMeasure.isCustomFormatted),delete r.qLibraryId,r.qDef.coloring=a.qMeasure.coloring,n.base=o()(!0,{},r.qDef.base)}({measure:r,modifier:e,libraryId:u,properties:n,libraryItemsProps:t,dimensionAndFieldList:i}):function(e){var r=e.measure,n=e.modifier,t=e.properties,i=e.dimensionAndFieldList;\"function\"==typeof fe[n.type].updateModifier&&fe[n.type].updateModifier(n,t.qHyperCubeDef);var a=ue.getExpression(r),s=fe[n.type].generateExpression({expression:a,modifier:n,properties:t,dimensionAndFieldList:i});n.outputExpression=s,r.qDef.qDef=n.outputExpression,r.qDef.base.qLabelExpression?r.qDef.qLabelExpression=r.qDef.base.qLabelExpression:r.qDef.qLabel=r.qDef.base.qLabel||a,n.base=o()(!0,{},r.qDef.base)}({measure:r,modifier:e,properties:n,dimensionAndFieldList:i}),function(e){var r=a(e,\"qDef.qAggrFunc\");\"Expr\"!==r||ve(e)?\"None\"!==r?delete e.qDef.base.qAggrFunc:\"None\"===r&&ve(e)&&\"Expr\"===e.qDef.base.qAggrFunc&&(e.qDef.qAggrFunc=\"Expr\",delete e.qDef.base.qAggrFunc):(e.qDef.qAggrFunc=\"None\",e.qDef.base.qAggrFunc=\"Expr\")}(r)}}))}({measure:r,properties:n,libraryItemsProps:t,dimensionAndFieldList:e}),Ae(r)):qe(r)}))}))}))}({measures:i,properties:t,model:r,libraryItemsProps:c,dimensionAndFieldList:p}).then((function(){return u?Fe({oldProperties:n,newProperties:t,model:r}):Promise.resolve(!1)}))}))}function qe(e){!function(e){var r=he(e);return Array.isArray(r)&&r.some((function(e){return\"object\"===pe(e)&&!e.disabled&&!fe[e.type]}))}(e)?ce.restoreBase(e):delete e.qDef.base,e.qDef.coloring&&delete e.qDef.coloring,Ae(e)}function be(e){var r=e.measures,n=e.properties,t=e.layout;return!!Array.isArray(r)&&r.some((function(e){return Se({modifiers:he(e),properties:n,layout:t})}))}function De(e){var r=he(e);if(Array.isArray(r))for(var n=0;n<r.length;n++){var t=r[n];if(fe[t.type]&&!t.disabled)return t}}function ve(e){var r=De(e);return!r||fe[r.type].enableTotalsFunction(e)}function ge(e){return a(e,\"qHyperCubeDef.qMeasures\",[]).concat(a(e,\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\",[]))}function he(e){return e.modifiers||e.qDef&&e.qDef.modifiers}function xe(e){return a(e,\"outputExpression.qValueExpression.qExpr\")||a(e,\"outputExpression\")}function Ee(e){ge(e).forEach((function(e){return function(e){var r=De(e);r&&(void 0!==r.outputExpression&&xe(r)!==e.qDef.qDef?delete e.qDef.base:!ce.isValid(e)&&r.base&&(e.qDef.base=o()(!0,{},r.base)))}(e)}))}function Ae(e){var r=he(e);Array.isArray(r)&&r.forEach((function(r){\"object\"===pe(r)&&(r.disabled||!fe[r.type]&&xe(r)!==e.qDef.qDef)&&(r.disabled=!0,delete r.base)}))}function Ce(e){return e.base||e.qDef&&e.qDef.base}function Ie(e){var r=Ce(e);return e.qLibraryId||r&&r.qLibraryId}function Me(e){var r=e.measure,n=e.properties,t=e.layout;return!Ie(r)&&Se({modifiers:he(r),properties:n,layout:t})}function Se(e){var r=e.modifiers,n=e.properties,t=e.layout,o={};return Array.isArray(r)&&r.some((function(e){return!(\"object\"!==pe(e)||e.disabled||!fe[e.type])&&(void 0===o[e.type]&&(o[e.type]=fe[e.type].isApplicable({properties:n,layout:t})),o[e.type])}))}function Le(e){var r=e.model,n=e.dimensionAndFieldList;if(n)return Promise.resolve(n);var t=[],o={},i=r.app.getDimensionList().then((function(e){o.dimensionList=e}));t.push(i);var a=r.app.getFieldList().then((function(e){o.fieldList=e}));return t.push(a),Promise.all(t).then((function(){return o}))}function Oe(e){var r=e.libraryIds,n=e.model,t=e.libraryItemsProps;if(t)return Promise.resolve(t);var o=r.measureLibraryIds,i=r.dimensionLibraryIds,a={},s=[];return o.forEach((function(e){var r=n.app.getMeasure(e).then((function(r){return r.getProperties().then((function(r){a[e]=r}))}));s.push(r)})),i.forEach((function(e){var r=n.app.getDimension(e).then((function(r){return r.getProperties().then((function(r){a[e]=r}))}));s.push(r)})),Promise.all(s).then((function(){return a}))}function Pe(e,r){if(\"\"!==r||-1===[\"qFmt\",\"qDec\",\"qThou\"].indexOf(e))return r}function Fe(e){var r=e.oldProperties,n=e.newProperties,t=e.model,o=JSON.stringify(a(r,\"qHyperCubeDef.qMeasures\"),Pe)!==JSON.stringify(a(n,\"qHyperCubeDef.qMeasures\"),Pe)||JSON.stringify(a(r,\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\"),Pe)!==JSON.stringify(a(n,\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\"),Pe);return o?function(e){var r=e.model,n=e.oldProperties,t=e.newProperties,o=r.layout;return o&&!o.qHasSoftPatches&&!o.qExtendsId&&a(o,\"qMeta.privileges\",[]).indexOf(\"update\")>-1?r.setProperties(t):F(r,n,t)}({model:t,oldProperties:r,newProperties:n}).then((function(){return o})):Promise.resolve(o)}function Ne(e){var r=e.modifiers,n=e.properties,t=e.layout;return Array.isArray(r)&&r.some((function(e){return\"object\"===pe(e)&&!e.disabled&&fe[e.type]&&fe[e.type].needDimension({modifier:e,properties:n,layout:t})}))}function Ve(e){var r=ge(e),n=[],t=[],o=!1;return r.forEach((function(r){var t=he(r);if(Se({modifiers:t,properties:e})){var i=Ie(r);i&&n.push(i),o=o||Ne({modifiers:t,properties:e})}})),a(e,\"qHyperCubeDef.qDimensions\",[]).forEach((function(e){var r=e.qLibraryId;r&&t.push(r)})),{measureLibraryIds:n,dimensionLibraryIds:t}}function we(e){var r=e.model,n=e.libraryIds;return!e.masterItem&&n&&(n.measureLibraryIds.length||n.dimensionLibraryIds.length)?(me[r.id].masterItemSubscriber=me[r.id].masterItemSubscriber||function(e){var r=e.model,n=e.callback,t={},o={},i={},s={dimension:[\"qDim.qFieldDefs\"],measure:[\"qMeasure.qDef\",\"qMeasure.qLabel\",\"qMeasure.qLabelExpression\",\"qMeasure.coloring\",\"qMeasure.qNumFormat\",\"qMeasure.isCustomFormatted\"]};function u(e){var r={},n=a(e,\"qInfo.qType\");return n&&s[n]&&s[n].forEach((function(n){r[n]=a(e,n)})),JSON.stringify(r)}function l(e){var r=e.qInfo.qId;if(t[r]){var o=u(e);t[r].properties!==o&&(t[r].properties=o,\"function\"==typeof n&&t[r].enabled&&n(e)),t[r].enabled=!0}}function c(e,n){return r.app[n](e).then((function(r){t[e]={listener:r.layoutSubscribe(l),enabled:!1,properties:u(r.layout)}}))}return{subscribe:function(e){var n=e.measureLibraryIds,a=e.dimensionLibraryIds,s=[];return function(e){var r=e.dimensionLibraryIds;o={},e.measureLibraryIds.forEach((function(e){o[e]=!0})),i={},r.forEach((function(e){i[e]=!0}))}({measureLibraryIds:n,dimensionLibraryIds:a}),Object.keys(t).forEach((function(e){o[e]||i[e]||(t[e].listener.dispose(),delete t[e])})),r.app&&(Object.keys(o).forEach((function(e){o[e]&&!t[e]&&s.push(c(e,\"getMeasure\"))})),Object.keys(i).forEach((function(e){i[e]&&!t[e]&&s.push(c(e,\"getDimension\"))}))),Promise.all(s)},unsubscribe:function(){Object.keys(t).forEach((function(e){t[e].listener.dispose()})),t={}}}}({model:r,callback:function(e){return de({model:r,masterItem:e}).then((function(){return r.app.clearUndoBuffer()}))}}),me[r.id].masterItemSubscriber.subscribe(n)):Promise.resolve()}}])},function(e,r,n){\"use strict\";function t(e){var r=function e(r){var n,t=r;return t>9?(n=65+t-10)>90&&(n+=6):t=\"\".concat(t).charCodeAt(0),[48,111,79,105,73,108].indexOf(n)>-1?e(t+1):String.fromCharCode(n)}(e%62),n=Math.floor(e/62);return n>0?t(n)+r:r}function o(e){return(o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}n.r(r);var i={getValue:function(e,r,n){if(null==e||null==r)return n;for(var t=r.split(\".\"),o=e,i=0;i<t.length;++i){var a=t[i];if(\"\"!==a){if(void 0===o[a]||null===o[a])return n;o=o[a]}}return o},setValue:function(e,r,n){if(null!=e&&null!=r){for(var t=r.split(\".\"),o=t[t.length-1],i=e,a=0;a<t.length-1;++a){var s=t[a];void 0!==i[s]&&null!==i[s]||(i[s]=Number.isNaN(+t[a+1])?{}:[]),i=i[s]}void 0!==n?i[o]=n:delete i[o]}},isEmpty:function(e){return 0===Object.keys(e).length&&e.constructor===Object},isAtomicValue:function(e){return/boolean|number|string/.test(o(e))},generateId:function(){return t(Math.round(99e11*Math.random()+1e11)).replace(/\\W/g,\"\")}};function a(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return s(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function s(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function u(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return l(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function l(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function c(e,r,n){if(e){for(var t=0;t<e.length;t++)if(e[t][r]===n)return t;return-1}return-1}var p={isOrderedSubset:function(e,r){if(!(e&&r&&e.length&&r.length))return!1;var n=e.indexOf(r[0]);if(-1!==n){for(var t=0;t<r.length;t++){var o=e.indexOf(r[t]);if(n>o)return!1;n=o}return!0}return!1},indexAdded:function(e,r){var n;for(n=0;n<e.length;++n)e[n]>=0&&e[n]>=r&&++e[n];e.push(r)},indexRemoved:function(e,r){var n,t=0;for(n=0;n<e.length;++n)e[n]>r?--e[n]:e[n]===r&&(t=n);return e.splice(t,1),t},findItemByPropertyValue:function(e,r,n){if(e){for(var t=0;t<e.length;t++)if(e[t][r]===n)return e[t];return null}return null},findIndexByPropertyValue:c};var f=n(1),m=n.n(f);var d={addDimensions:function(e){var r,n=e.exportFormat,t=e.qHyperCubeDef,o=n.data[0];(r=o.dimensions).push.apply(r,a(t.qDimensions));var s,u=i.getValue(t,\"qLayoutExclude.qHyperCubeDef.qDimensions\");u&&(s=o.excludedDimensions).push.apply(s,a(u))},addMeasures:function(e){var r,n=e.exportFormat,t=e.qHyperCubeDef,o=n.data[0];(r=o.measures).push.apply(r,u(t.qMeasures));var a,s=i.getValue(t,\"qLayoutExclude.qHyperCubeDef.qMeasures\");s&&(a=o.excludedMeasures).push.apply(a,u(s))},setInterColumnSortOrder:function(e){var r=e.exportFormat,n=e.qHyperCubeDef,t=r.data[0];n.qInterColumnSortOrder||(n.qInterColumnSortOrder=[]),t.interColumnSortOrder=n.qInterColumnSortOrder.concat();var o=i.getValue(n,\"qLayoutExclude.qHyperCubeDef.qInterColumnSortOrder\");o&&p.isOrderedSubset(o,t.interColumnSortOrder)&&(t.interColumnSortOrder=o.concat())},copyProperties:function(e){var r=e.exportFormat,n=e.properties;Object.keys(n).forEach((function(e){r.properties[e]=n[e]}))},updateLayoutExclude:function(e){var r=e.exportFormat,n=e.properties;n.qLayoutExclude||(n.qLayoutExclude={}),n.qLayoutExclude.disabled&&(Object.keys(n.qLayoutExclude.disabled).forEach((function(e){r.properties.hasOwnProperty(e)||(r.properties[e]=n.qLayoutExclude.disabled[e])})),delete n.qLayoutExclude.disabled),n.qLayoutExclude.changed&&(!function(e){Object.keys(e.qLayoutExclude.changed).forEach((function(r){e.qLayoutExclude.changed[r].to===i.getValue(e,r)&&i.setValue(e,r,e.qLayoutExclude.changed[r].from)}))}(n),delete n.qLayoutExclude.changed),n.qLayoutExclude.quarantine&&!i.isEmpty(n.qLayoutExclude.quarantine)||delete n.qLayoutExclude},storeMeasuresModifiers:function(e){e.forEach((function(e){m.a.cleanUpMeasure(e),e.qDef.modifiers&&(e.store={modifiers:e.qDef.modifiers},delete e.qDef.modifiers)}))}};function y(e,r,n){var t,o,a=i.getValue(e,r);if(!i.isAtomicValue(a))try{if((o=(o=(t=JSON.stringify(a)).match(/:\\{/g))?o.length:0)>2)return;a=JSON.parse(t)}catch(e){return}i.getValue(e,\"qLayoutExclude.quarantine\")||i.setValue(e,\"qLayoutExclude.quarantine\",{});var s=i.getValue(e,\"qLayoutExclude.quarantine\");s[n]||(s[n]={}),s[n][r]=a}var q=n(0),b=n.n(q);function D(e,r){var n=b()(!0,{},r,e);return i.getValue(n,\"qOtherTotalSpec.qOtherCounted\")||i.setValue(n,\"qOtherTotalSpec.qOtherCounted\",{qv:\"10\"}),i.getValue(n,\"qOtherTotalSpec.qOtherLimit\")||i.setValue(n,\"qOtherTotalSpec.qOtherLimit\",{qv:\"0\"}),n.hasOwnProperty(\"othersLabel\")||(n.othersLabel=\"Others\"),n}function v(e,r){return b()(!0,{},r,e)}function g(e,r,n){return\"function\"==typeof e?e(r):Number.isNaN(+e)?n:e}var h=Math.pow(2,53)-1;function x(e){return function(e){if(Array.isArray(e))return E(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return E(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return E(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function E(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function A(e){return function(e){if(Array.isArray(e))return C(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return C(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return C(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function C(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}var I={importCommonProperties:function(e,r,n){var t=\"masterobject\"===i.getValue(r,\"properties.qInfo.qType\")?\"masterobject\":i.getValue(n,\"qInfo.qType\");i.setValue(e,\"qInfo.qType\",t),e.visualization=n.visualization},copyPropertyIfExist:function(e,r,n){r.hasOwnProperty(e)&&(n[e]=r[e])},copyPropertyOrSetDefault:function(e,r,n,t){r.hasOwnProperty(e)?n[e]=r[e]:n[e]=t},getDefaultDimension:function(){return{qDef:{autoSort:!0,cId:\"\",othersLabel:\"Others\"},qLibraryId:\"\",qNullSuppression:!1,qOtherLabel:\"Others\",qOtherTotalSpec:{qOtherLimitMode:\"OTHER_GE_LIMIT\",qOtherMode:\"OTHER_OFF\",qOtherSortMode:\"OTHER_SORT_DESCENDING\",qSuppressOther:!1}}},getDefaultMeasure:function(){return{qDef:{autoSort:!0,cId:\"\",numFormatFromTemplate:!0},qLibraryId:\"\",qTrendLines:[]}},addDimensions:function(e){var r,n=e.exportFormat,t=e.maxDimensions,o=e.minDimensions,i=e.newHyperCubeDef,a=e.defaultDimension,s=n.data[0];for(r=0;r<s.dimensions.length;++r){var u=D(s.dimensions[r],a);i.qDimensions.length<t?i.qDimensions.push(u):i.qLayoutExclude.qHyperCubeDef.qDimensions.push(u)}for(r=0;r<s.excludedDimensions.length;++r){var l=D(s.excludedDimensions[r],a);i.qDimensions.length<o?i.qDimensions.push(l):i.qLayoutExclude.qHyperCubeDef.qDimensions.push(l)}},addMeasures:function(e){var r,n=e.exportFormat,t=e.maxMeasures,o=e.minMeasures,i=e.newHyperCubeDef,a=e.defaultMeasure,s=n.data[0];for(r=0;r<s.measures.length;++r){var u=v(s.measures[r],a);i.qMeasures.length<t?i.qMeasures.push(u):i.qLayoutExclude.qHyperCubeDef.qMeasures.push(u)}for(r=0;r<s.excludedMeasures.length;++r){var l=v(s.excludedMeasures[r],a);i.qMeasures.length<o?i.qMeasures.push(l):i.qLayoutExclude.qHyperCubeDef.qMeasures.push(l)}},getMaxMinDimensionMeasure:function(e){var r=e.exportFormat,n=e.dataDefinition,t=void 0===n?{}:n,o=r.data[0],i=t.dimensions||{max:0},a=t.measures||{max:0},s=g(a.max,o.dimensions.length,h),u=g(a.min,o.dimensions.length,0);return{maxDimensions:g(i.max,s,h),minDimensions:g(i.min,u,0),maxMeasures:s,minMeasures:u}},setInterColumnSortOrder:function(e){var r=e.exportFormat,n=e.newHyperCubeDef,t=r.data[0],o=n.qDimensions.length+n.qMeasures.length;n.qInterColumnSortOrder=t.interColumnSortOrder.concat();var i=n.qInterColumnSortOrder.length;if(i!==o)for(n.qLayoutExclude&&(n.qLayoutExclude.qHyperCubeDef.qInterColumnSortOrder=t.interColumnSortOrder.concat());i!==o;)i<o?(p.indexAdded(n.qInterColumnSortOrder,i),++i):(--i,p.indexRemoved(n.qInterColumnSortOrder,i))},createNewProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=e.hypercubePath,o={qLayoutExclude:{disabled:{},quarantine:{}}};return Object.keys(r.properties).forEach((function(e){\"qLayoutExclude\"===e?r.properties[e].quarantine&&(o.qLayoutExclude.quarantine=b()(!0,{},r.properties[e].quarantine)):\"qHyperCubeDef\"===e&&t?i.setValue(o,\"\".concat(t,\".qHyperCubeDef\"),r.properties.qHyperCubeDef):n.hasOwnProperty(e)||-1!==[\"qMetaDef\",\"descriptionExpression\",\"labelExpression\"].indexOf(e)||function(e,r){return\"components\"===r&&Array.isArray(e[r])&&e[r].some((function(e){return\"general\"===e.key}))}(r.properties,e)?o[e]=r.properties[e]:o.qLayoutExclude.disabled[e]=r.properties[e]})),null===(o=b()(!0,{},n,o)).components&&(o.components=[]),o},shouldInitLayoutExclude:function(e){var r=e.exportFormat,n=e.maxDimensions,t=e.minDimensions,o=e.maxMeasures,i=e.minMeasures,a=r.data[0];return a.dimensions.length>n&&n>0||a.measures.length>o&&o>0||a.excludedDimensions.length>0&&a.dimensions.length+a.excludedDimensions.length>t||a.excludedMeasures.length>0&&a.measures.length+a.excludedMeasures.length>i||!o&&a.measures.length>0||!n&&a.dimensions.length>0},initLayoutExclude:function(e){var r=e.exportFormat,n=e.maxDimensions,t=e.minDimensions,o=e.maxMeasures,i=e.minMeasures,a=e.newHyperCubeDef,s=r.data[0];a.qLayoutExclude||(a.qLayoutExclude={}),a.qLayoutExclude.qHyperCubeDef||(a.qLayoutExclude.qHyperCubeDef={}),(s.dimensions.length>n&&n>0||s.excludedDimensions&&s.excludedDimensions.length&&s.dimensions.length+s.excludedDimensions.length>t)&&(a.qLayoutExclude.qHyperCubeDef.qDimensions||(a.qLayoutExclude.qHyperCubeDef.qDimensions=[])),(s.measures.length>o&&o>0||s.excludedMeasures&&s.excludedMeasures.length&&s.measures.length+s.excludedMeasures.length>i)&&(a.qLayoutExclude.qHyperCubeDef.qMeasures||(a.qLayoutExclude.qHyperCubeDef.qMeasures=[])),!o&&s.measures.length&&(a.qLayoutExclude.qHyperCubeDef.qMeasures||(a.qLayoutExclude.qHyperCubeDef.qMeasures=[])),!n&&s.dimensions.length&&(a.qLayoutExclude.qHyperCubeDef.qDimensions||(a.qLayoutExclude.qHyperCubeDef.qDimensions=[]))},updateDimensionsOnAdded:function(e){var r=e.newProperties,n=e.dataDefinition,t=e.hypercubePath;if(n.dimensions&&\"function\"==typeof n.dimensions.added){var o=i.getValue(r,t||\"\").qHyperCubeDef,a=x(o.qDimensions);o.qDimensions=[],a.forEach((function(e){o.qDimensions.push(e),n.dimensions.added(e,r)}))}},updateMeasuresOnAdded:function(e){var r=e.newProperties,n=e.dataDefinition,t=e.hypercubePath;if(n.measures&&\"function\"==typeof n.measures.added){var o=i.getValue(r,t||\"\").qHyperCubeDef,a=A(o.qMeasures);o.qMeasures=[],a.forEach((function(e){o.qMeasures.push(e),n.measures.added(e,r)}))}},restoreMeasuresModifiers:function(e){var r=e.measures,n=e.modifierTypes;r&&n&&m.a.isSupportedModifiers(n)&&r.forEach((function(e){e.store&&e.store.modifiers&&(e.qDef.modifiers=e.store.modifiers),delete e.store}))}};function M(e,r){var n=i.getValue(e,\"qLayoutExclude.quarantine\",{})[r];return!!n&&(Object.keys(n).forEach((function(r){i.setValue(e,r,n[r])})),delete e.qLayoutExclude.quarantine[r],!0)}var S={exportProperties:function(e){var r=e.propertyTree,n=e.hypercubePath,t=e.viewDataMode,o=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,r={data:[],properties:{}},n=0;n<e;++n)r.data.push({dimensions:[],measures:[],excludedDimensions:[],excludedMeasures:[],interColumnSortOrder:[]});return r}(),a=r.qProperty,s=i.getValue(a,n||\"\"),u=s.qHyperCubeDef;return u.qInterColumnSortOrder||(u.qInterColumnSortOrder=[]),d.addDimensions({exportFormat:o,qHyperCubeDef:u}),d.addMeasures({exportFormat:o,qHyperCubeDef:u}),d.setInterColumnSortOrder({exportFormat:o,qHyperCubeDef:u}),delete u.qLayoutExclude,d.copyProperties({exportFormat:o,properties:a}),n&&(o.properties.qHyperCubeDef=u,delete s.qHyperCubeDef),d.updateLayoutExclude({exportFormat:o,properties:a}),t||d.storeMeasuresModifiers(o.properties.qHyperCubeDef.qMeasures),Array.isArray(o.properties.filters)&&(y(o.properties,\"filters\",\"storedFilters\"),delete o.properties.filters),o.properties.qHyperCubeDef.qContextSetExpression&&(y(o.properties,\"qHyperCubeDef.qContextSetExpression\",\"storedFilters\"),o.properties.qHyperCubeDef.qContextSetExpression=\"\"),o.properties.qHyperCubeDef.qDynamicScript&&o.properties.qHyperCubeDef.qDynamicScript.length&&(y(o.properties,\"qHyperCubeDef.qDynamicScript\",\"dynamicScript\"),o.properties.qHyperCubeDef.qDynamicScript=[]),o},importProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=void 0===n?{}:n,o=e.dataDefinition,a=void 0===o?{}:o,s=e.defaultPropertyValues,u=void 0===s?{}:s,l=e.hypercubePath,c=e.extension,p=e.supportedFilters,f=void 0===p||p,m=e.isHCModifierSupported,d=void 0===m||m,y={qChildren:[]},q=I.createNewProperties({exportFormat:r,initialProperties:t,hypercubePath:l}),b=i.getValue(t,l||\"\").qHyperCubeDef,D=i.getValue(q,l||\"\").qHyperCubeDef,v=I.getMaxMinDimensionMeasure({exportFormat:r,dataDefinition:a}),g=v.maxDimensions,h=v.minDimensions,x=v.maxMeasures,E=v.minMeasures,A=u.defaultDimension,C=void 0===A?I.getDefaultDimension():A,S=u.defaultMeasure,L=void 0===S?I.getDefaultMeasure():S;D.qDimensions.length=0,D.qMeasures.length=0,I.shouldInitLayoutExclude({exportFormat:r,maxDimensions:g,minDimensions:h,maxMeasures:x,minMeasures:E})&&I.initLayoutExclude({exportFormat:r,maxDimensions:g,minDimensions:h,maxMeasures:x,minMeasures:E,newHyperCubeDef:D}),I.addDimensions({exportFormat:r,maxDimensions:g,minDimensions:h,newHyperCubeDef:D,defaultDimension:C}),I.addMeasures({exportFormat:r,maxMeasures:x,minMeasures:E,newHyperCubeDef:D,defaultMeasure:L}),I.updateDimensionsOnAdded({newProperties:q,dataDefinition:a,hypercubePath:l}),I.updateMeasuresOnAdded({newProperties:q,dataDefinition:a,hypercubePath:l}),I.setInterColumnSortOrder({exportFormat:r,newHyperCubeDef:D}),I.copyPropertyIfExist(\"qMaxStackedCells\",b,D),I.copyPropertyIfExist(\"qNoOfLeftDims\",b,D),I.copyPropertyOrSetDefault(\"qInitialDataFetch\",b,D,[{qTop:0,qLeft:0,qWidth:0,qHeight:0}]),I.copyPropertyOrSetDefault(\"qMode\",b,D,\"S\"),I.copyPropertyOrSetDefault(\"qReductionMode\",b,D,\"N\"),I.copyPropertyOrSetDefault(\"qSortbyYValue\",b,D),I.copyPropertyOrSetDefault(\"qIndentMode\",b,D),I.copyPropertyOrSetDefault(\"qShowTotalsAbove\",b,D),I.importCommonProperties(q,r,t),y.qProperty=q;var O=i.getValue(c||{},\"support.modifiers\");return I.restoreMeasuresModifiers({measures:D.qMeasures,modifierTypes:O}),f&&M(y.qProperty,\"storedFilters\"),\"S\"===D.qMode&&d&&M(y.qProperty,\"dynamicScript\"),y}},L={cellBackgroundColor:!0,cellForegroundColor:!0,colorByAlternative:!0,colorByExpression:!0,tooltip:!0,urlLabel:!0,url:!0};function O(e,r,n,t){r=r||[];var o=c(e,t,n),i=c(r,t,n);if(-1!==o&&-1===i){var a=e.splice(o,1);r.push(a[0])}return r}function P(e,r){return e.length!==r}var F={create:function(e,r){if(!e||!L[e])throw new Error(\"Attribute Expressions Util: ID required\");var n={};return r&&Object.keys(r).forEach((function(e){n[e]=r[e]})),n.id=e,n.qAttribute=!0,n},moveByIdFromGroup:function(e,r,n,t,o){n=n||\"qAttributeExpressions\",o=o||\"id\";for(var i=0;i<e.length;i++){var a=e[i][n],s=r.length;if(O(a,r,t,o),P(r,s))return r}return r},IDMAP:{CELL_BACKGROUND_COLOR:\"cellBackgroundColor\",CELL_FOREGROUND_COLOR:\"cellForegroundColor\",COLOR_BY_ALTERNATIVE:\"colorByAlternative\",COLOR_BY_EXPRESSION:\"colorByExpression\",TOOLTIP:\"tooltip\",CELL_LINK_LABEL:\"urlLabel\",CELL_LINK_URL:\"url\"}};var N={getNumDimensions:function(e){return i.getValue(e,\"qHyperCubeDef.qDimensions.length\",0)},getNumMeasures:function(e){return i.getValue(e,\"qHyperCubeDef.qMeasures.length\",0)},wrapFieldName:function(e){return e.split(\" \").length>1&&\"=\"!==e[0]&&\"[\"!==e[0]?\"[\".concat(e,\"]\"):e},getItemLabel:function(e){return e.label||e.name}},V={colorModeOptions:{primary:function(){return!0},dimension:function(e){return N.getNumDimensions(e)>0&&N.getNumMeasures(e)<=1},multiColor:function(e){return N.getNumMeasures(e)>1},measure:function(e){return N.getNumDimensions(e)>0},expression:function(e){return N.getNumMeasures(e)>=1}}},w={colorModeOptions:{primary:function(){return!0},dimension:function(){return!0},multiColor:function(){return!1},measure:function(){return!0},expression:function(e){return N.getNumMeasures(e)>=1}}},H={scatterplot:w,\"sn-scatter-plot\":w,piechart:{colorModeOptions:{primary:function(){return!0},dimension:function(){return!0},multiColor:function(){return!1},measure:function(){return!0},expression:function(e){return N.getNumMeasures(e)>=1}}},linechart:{colorModeOptions:{primary:function(){return!0},dimension:function(e){return N.getNumDimensions(e)>1},multiColor:function(e){return N.getNumMeasures(e)>1},measure:function(e){return N.getNumDimensions(e)<=1},expression:function(e){return N.getNumMeasures(e)>=1}}},map:{colorModeOptions:{primary:function(){return!0},dimension:function(e){return N.getNumDimensions(e)>=1},multiColor:function(e){return N.getNumMeasures(e)>1},measure:function(e){return N.getNumDimensions(e)>=1},expression:function(e){return N.getNumDimensions(e)>=1}}},distributionplot:{colorModeOptions:{primary:function(){return!0},dimension:function(){return!0},multiColor:function(){return!1},measure:function(){return!0},expression:function(e){return N.getNumDimensions(e)>=1}}}};function T(e,r,n){if(Array.isArray(e[r])){var t=p.findIndexByPropertyValue(e[r],\"id\",n);t>=0&&e[r].splice(t,1)}else e[r]=[]}function j(e,r){var n=F.IDMAP.COLOR_BY_ALTERNATIVE;e.forEach((function(e){T(e,\"qAttributeDimensions\",n),T(e,\"qAttributeExpressions\",n)})),r.forEach((function(e){T(e,\"qAttributeDimensions\",n),T(e,\"qAttributeExpressions\",n)}))}function _(e,r){if(r){var n=\"=\"===r.charAt(0);e.color.altLabel=n?{qStringExpression:{qExpr:r.substr(1)}}:r}}function R(e){var r=e.properties,n=e.isDimension,t=e.dimensions,o=e.excludedDimensions,a=e.measures,s=e.label;j(t,o);var u=t[t.length-1];if(u){var l=n?i.getValue(r,\"color.byDimDef\"):i.getValue(r,\"color.byMeasureDef\"),c=i.getValue(r,\"color.formatting.qNumFormat\"),f=i.getValue(r,\"color.formatting.isCustomFormatted\");if(l){var m=F.create(F.IDMAP.COLOR_BY_ALTERNATIVE);switch(l.type){case\"expression\":!function(e){var r=e.attributeExpression,n=e.label,t=e.item,o=e.isDimension,i=e.qNumFormat,a=e.isCustomFormatted;r.label=n||t.label,o?r.qDef=t.key:(r.qExpression=t.key,i&&(r.qNumFormat=i,r.isCustomFormatted=a)),r.matchMeasure=t.activeMeasureIndex,r.label&&\"=\"===r.label.charAt(0)&&(r.labelExpRef=\"color.altLabel\")}({attributeExpression:m,label:s,item:l,isDimension:n,qNumFormat:c,isCustomFormatted:f});break;case\"libraryItem\":!function(e){var r=e.attributeExpression,n=e.measures,t=e.item,o=e.isDimension,i=e.qNumFormat,a=e.isCustomFormatted;o||(r.matchMeasure=p.findIndexByPropertyValue(n,\"qLibraryId\",t.key),i&&(r.qNumFormat=i,r.isCustomFormatted=a)),void 0!==t.expression?r.qExpression=t.expression:r.qLibraryId=t.key,r.colorMapRef=t.key}({attributeExpression:m,measures:a,item:l,isDimension:n,qNumFormat:c,isCustomFormatted:f})}n?(m.qSortBy={qSortByAscii:1},u.qAttributeDimensions.push(m)):u.qAttributeExpressions.push(m)}}}function B(e,r,n,t){var o,i,a,s={};switch(e){case\"dimension\":n.qLibraryId?(s.type=\"dimension\",s.name=n.qLibraryId,s.id=n.qLibraryId):(s.type=\"field\",r?(s.name=n.label||n.qDef,s.id=n.qDef):(s.name=n.qDef.qFieldDefs[0],s.label=(a=n.qDef).qLabelExpression?a.qLabelExpression:a.qFieldLabels&&a.qFieldLabels[0]?a.qFieldLabels[0]:a.qFieldDefs[0]));break;case\"measure\":(o=function(e,r){return r?e.qLibraryId:m.a.measureBase.getLibraryId(e)}(n,r))?(s.type=\"measure\",s.name=o,s.id=o,(i=function(e,r){return m.a.hasActiveModifiers({measures:[e]})&&r?e.qDef.qDef:void 0}(n,t))&&(s.expression=i)):(s.type=\"expression\",r?(s.name=n.label||n.qExpression,s.id=n.qExpression):(s.name=n.qDef.qDef,s.label=function(e){var r=e.qDef;return r.qLabelExpression?r.qLabelExpression:r.qLabel?r.qLabel:r.qDef}(n)));break;default:throw new Error('columnType should be \"dimension\" or \"measure\"')}return s}var k={useMasterNumberFormat:function(e){e.quarantine={qNumFormat:e.qNumFormat||{},isCustomFormatted:e.isCustomFormatted||!1},e.qNumFormat=null,e.isCustomFormatted=void 0}};function U(e,r,n,t){var o=n?\"expression\":r.type,i=e.color,a=i.mode,s=N.getItemLabel(r);switch(_(e,s||\"\"),o){case\"field\":a=\"byDimension\",i.byDimDef={label:r.label||N.wrapFieldName(r.name),key:N.wrapFieldName(r.name),type:\"expression\",activeDimensionIndex:r.activeDimensionIndex};break;case\"expression\":a=\"byMeasure\",i.byMeasureDef={label:n||s,key:n||r.name,type:\"expression\",activeMeasureIndex:r.activeMeasureIndex};break;case\"dimension\":a=\"byDimension\",i.byDimDef={label:r.name,key:r.id,type:\"libraryItem\",activeDimensionIndex:r.activeDimensionIndex};break;case\"measure\":a=\"byMeasure\",i.byMeasureDef={label:r.name,key:r.id,expression:r.expression,type:\"libraryItem\",activeMeasureIndex:r.activeMeasureIndex},i.formatting&&k.useMasterNumberFormat(i.formatting)}t||(i.auto=!1,i.mode=a)}function G(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=n[function(e,r,n){var t=i.getValue(r,\"visualization\"),o=n.split(\".\"),a=Number(o[1]),s=i.getValue(r,\"layers.\".concat(a,\".type\"));return 2===e.length&&\"map\"===t&&\"point\"===s}(n,e,r)?0:n.length-1],o=F.IDMAP.COLOR_BY_ALTERNATIVE,a=p.findItemByPropertyValue(t.qAttributeDimensions,\"id\",o);return U(e,B(\"dimension\",!!a,a||t)),!!a}function W(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),o=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]),a=i.getValue(e,\"color.byDimDef\");if(a&&_(e,a.label),function(e){return!!(e&&e.activeDimensionIndex>-1)}(a))!function(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"color.byDimDef\");t.activeDimensionIndex=Math.min(t.activeDimensionIndex,n.length-1);var o=B(\"dimension\",!1,n[t.activeDimensionIndex]);o.activeDimensionIndex=t.activeDimensionIndex,U(e,o)}(e,r);else if(function(e){return!e||!e.key}(a)&&G(e,r))return;R({properties:e,isDimension:!0,dimensions:n,excludedDimensions:o,measures:t,label:i.getValue(e,\"color.byDimDef.label\")})}function $(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),o=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]),a=i.getValue(e,\"color.byMeasureDef\");if(a&&_(e,a.label),function(e){return!!(e&&e.activeMeasureIndex>-1)}(a))!function(e,r){var n=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),t=i.getValue(e,\"color.byMeasureDef\");if(t.activeMeasureIndex=Math.min(t.activeMeasureIndex,n.length-1),t.activeMeasureIndex>-1){var o=B(\"measure\",!1,n[t.activeMeasureIndex],!0);o.activeMeasureIndex=t.activeMeasureIndex,U(e,o)}}(e,r);else if(function(e,r){return(!e||!e.key)&&r.length>0}(a,t)&&function(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),o=n[n.length-1],a=F.IDMAP.COLOR_BY_ALTERNATIVE,s=p.findItemByPropertyValue(o.qAttributeExpressions,\"id\",a);return U(e,B(\"measure\",!!s,s||t[0])),!!s}(e,r))return;R({properties:e,isDimension:!1,dimensions:n,excludedDimensions:o,measures:t,label:i.getValue(e,\"color.byMeasureDef.label\")})}var z={changeProperty:function(e,r,n){i.setValue(e,r,n),i.isAtomicValue(n)&&function(e,r,n){var t=e.qLayoutExclude;t&&(t.changed||(t.changed={}),t.changed[r]={from:i.getValue(e,r),to:n})}(e,r,n)},getCanColorBy:function(e,r){var n={primary:!0};if(e){var t=(H[r]||V).colorModeOptions||V.colorModeOptions;n.byDimension=t.dimension(e),n.byMeasure=t.measure(e),n.byMultiple=t.multiColor(e),n.byExpression=t.expression(e)}return n},shouldUpdateColorBy:function(e){var r=e.canColorBy,n=e.autoColor,t=e.colorMode,o=e.dimensions;return!(r[t]&&!n&&(\"byDimension\"!==t&&\"byMeasure\"!==t||!o.length))},updateColorBy:function(e,r){var n=i.getValue(e,\"color.mode\"),t=i.getValue(e,\"color.auto\"),o=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),a=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),s=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]);t?j(o,s):function(e){var r=e.auto,n=e.colorMode,t=e.dimensions;return!r&&\"byDimension\"===n&&t.length>0}({auto:t,colorMode:n,dimensions:o})?W(e,r):function(e){var r=e.auto,n=e.colorMode,t=e.dimensions,o=e.measures,a=e.properties,s=i.getValue(a,\"visualization\");return!(r||\"byMeasure\"!==n||!t.length||\"map\"!==s&&!o.length)}({auto:t,colorMode:n,dimensions:o,measures:a,properties:e})?$(e,r):function(e,r){var n=i.getValue(e,\"color.mode\"),t=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),o=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),a=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]);\"byMultiple\"===n&&o.length<2&&i.setValue(e,\"color.mode\",\"primary\"),j(t,a)}(e,r)},deleteTotalMode:function(e){e.forEach((function(e){e.qOtherTotalSpec&&\"qTotalMode\"in e.qOtherTotalSpec&&delete e.qOtherTotalSpec.qTotalMode}))},shouldAddColorByExpression:function(e){var r=e.shouldUpdateColorBy,n=e.properties,t=i.getValue(n,\"qHyperCubeDef.qMeasures\",[]),o=i.getValue(n,\"color.mode\",\"\");return!r&&\"byExpression\"===o&&t.length>0},addColorByExpression:function(e){var r=i.getValue(e,\"qHyperCubeDef.qMeasures.0.qAttributeExpressions\",[]),n=i.getValue(e,\"color.colorExpression\",\"\");r.splice(0,0,{qExpression:n,id:\"colorByExpression\"}),i.setValue(e,\"qHyperCubeDef.qMeasures.0.qAttributeExpressions\",r)},switchToAutoColor:function(e){i.setValue(e,\"color.mode\",\"primary\"),i.setValue(e,\"color.auto\",!0)},shouldSwitchToColorPersistent:function(e){var r=i.getValue(e,\"qHyperCubeDef.qDimensions\",[]),n=i.getValue(e,\"color.persistent\",!1);return r.length>1&&!n}};var Y={exportProperties:function(e){var r=e.propertyTree,n=e.hypercubePath,t=e.viewDataMode,o=S.exportProperties({propertyTree:r,hypercubePath:n,viewDataMode:t}),i=o.data[0],a=i.dimensions.concat(i.excludedDimensions),s=i.measures.concat(i.excludedMeasures),u=F.IDMAP,l=u.COLOR_BY_ALTERNATIVE,c=u.COLOR_BY_EXPRESSION;return F.moveByIdFromGroup(a,[],\"qAttributeDimensions\",l),F.moveByIdFromGroup(a,[],\"qAttributeExpressions\",l),F.moveByIdFromGroup(s,[],\"qAttributeExpressions\",c),o},importProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=e.dataDefinition,o=e.defaultPropertyValues,a=e.hypercubePath,s=e.extension,u=e.supportedFilters,l=e.isHCModifierSupported,c=S.importProperties({exportFormat:r,initialProperties:n,dataDefinition:t,defaultPropertyValues:o,hypercubePath:a,extension:s,supportedFilters:u,isHCModifierSupported:l}),p=c.qProperty,f=i.getValue(p,\"visualization\"),m=i.getValue(p,\"qHyperCubeDef.qDimensions\",[]),d=i.getValue(p,\"color.mode\",\"\"),y=i.getValue(p,\"color.auto\",\"\"),q=z.getCanColorBy(p,f),b=z.shouldUpdateColorBy({canColorBy:q,autoColor:y,colorMode:d,dimensions:m});return q[d]?z.shouldAddColorByExpression({shouldUpdateColorBy:b,properties:p})&&z.addColorByExpression(p):z.switchToAutoColor(p),b&&z.updateColorBy(p,\"qHyperCubeDef.\"),z.shouldSwitchToColorPersistent(p)&&z.changeProperty(p,\"color.persistent\",!0),z.deleteTotalMode(m),c}};var J=[\"bar\",\"marker\",\"line\"];var K={handleAutoMinMax:function(e){var r=e.initialProperties,n=e.properties;r.measureAxis&&void 0===r.measureAxis.autoMinMax?M(n,\"unsupportedAutoMinMax\")||b()(n.measureAxis,r.measureAxis):M(n,\"supportedAutoMinMax\")||b()(n.measureAxis,r.measureAxis)},handleMeasuresAxis:function(e){var r,n=e.exportFormat,t=e.initialProperties,o=e.properties,i=e.measureType,a=o.qHyperCubeDef,s=o.measureAxis;if(function(e){var r=e.exportFormat,n=e.initialProperties;return!(!r.properties.measureAxes||n.measureAxes||!n.measureAxis||void 0===n.measureAxis.autoMinMax)}({exportFormat:n,initialProperties:t})){var u=function(e){var r=[];return e.qMeasures.length>0&&e.qMeasures.forEach((function(e){if(e.qDef.series){var n=e.qDef.series,t=n.type,o=n.axis;r[o]||(r[o]={axis:o,type:{line:0,marker:0,bar:0,total:0}}),J.includes(t)&&r[o].type[t]++,r[o].type.total++}})),r}(a);u.length?(i&&(r=u.filter((function(e){return e.type[i]>0})).sort((function(e,r){return r.type[i]-e.type[i]}))),r&&r.length||(r=u.sort((function(e,r){return r.type.total-e.type.total}))),r&&r[0]&&b()(s,n.properties.measureAxes[r[0].axis])):b()(s,n.properties.measureAxes[0])}},setInterColumnSortOrder:function(e){if(e.qDimensions.length>1){var r=e.qInterColumnSortOrder.indexOf(0);if(0!==r){var n=e.qInterColumnSortOrder[0];e.qInterColumnSortOrder[0]=0,e.qInterColumnSortOrder[r]=n}}}};var X={exportProperties:function(e){var r=e.propertyTree,n=e.hypercubePath,t=e.viewDataMode,o=e.supportedAutoMinMax,i=void 0===o||o,a=Y.exportProperties({propertyTree:r,hypercubePath:n,viewDataMode:t}),s=a.properties;return i?(y(s,\"measureAxis.min\",\"supportedAutoMinMax\"),y(s,\"measureAxis.max\",\"supportedAutoMinMax\")):(y(s,\"measureAxis.min\",\"unsupportedAutoMinMax\"),y(s,\"measureAxis.max\",\"unsupportedAutoMinMax\")),a},importProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=e.dataDefinition,o=e.defaultPropertyValues,i=e.hypercubePath,a=e.measureType,s=e.extension,u=e.supportedFilters,l=e.isHCModifierSupported,c=Y.importProperties({exportFormat:r,initialProperties:n,dataDefinition:t,defaultPropertyValues:o,hypercubePath:i,extension:s,supportedFilters:u,isHCModifierSupported:l}),p=c.qProperty;return K.handleAutoMinMax({initialProperties:n,properties:p}),K.handleMeasuresAxis({exportFormat:r,initialProperties:n,properties:p,measureType:a}),K.setInterColumnSortOrder(p.qHyperCubeDef),p.qHyperCubeDef.qColumnOrder=[],p.qHyperCubeDef.columnOrder=[],c}};function Q(e,r,n){return\"qLayoutExclude.quarantine.\".concat(e,\".\").concat(r,\".\").concat(n)}function Z(e){var r=e.properties,n=e.arrayPath,t=e.quarantineName,o=e.arrayName,a=e.itemPath;i.getValue(r,n,[]).forEach((function(e){return function(e){var r=e.properties,n=e.quarantineName,t=e.arrayName,o=e.item,a=e.itemPath,s=i.getValue(o,a);if(void 0!==s){var u=i.getValue(o,\"qDef.cId\");u||(u=i.generateId(),i.setValue(o,\"qDef.cId\",u));var l=Q(n,t,u);i.setValue(r,l,s),i.setValue(o,a,void 0)}}({properties:r,quarantineName:t,arrayName:o,item:e,itemPath:a})}))}function ee(e){var r=e.properties,n=e.arrayPath,t=e.quarantineName,o=e.arrayName,a=e.itemPath;i.getValue(r,n,[]).forEach((function(e){return function(e){var r=e.properties,n=e.quarantineName,t=e.arrayName,o=e.item,a=e.itemPath,s=i.getValue(o,\"qDef.cId\");if(s){var u=Q(n,t,s),l=i.getValue(r,u);void 0!==l&&(i.setValue(o,a,l),i.setValue(r,u,void 0))}}({properties:r,quarantineName:t,arrayName:o,item:e,itemPath:a})}))}var re={quarantine:function(e){Z({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",quarantineName:\"conditionalColoring\",arrayName:\"measures\",itemPath:\"qDef.conditionalColoring\"})},unquarantine:function(e){ee({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",itemPath:\"qDef.conditionalColoring\",arrayName:\"measures\",quarantineName:\"conditionalColoring\"})}};var ne={quarantine:function(e){Z({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",quarantineName:\"conditionalShowHide\",arrayName:\"measures\",itemPath:\"qCalcCondition\"}),Z({properties:e,arrayPath:\"qHyperCubeDef.qDimensions\",quarantineName:\"conditionalShowHide\",arrayName:\"dimensions\",itemPath:\"qCalcCondition\"})},unquarantine:function(e){ee({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",quarantineName:\"conditionalShowHide\",arrayName:\"measures\",itemPath:\"qCalcCondition\"}),ee({properties:e,arrayPath:\"qHyperCubeDef.qDimensions\",quarantineName:\"conditionalShowHide\",arrayName:\"dimensions\",itemPath:\"qCalcCondition\"})},quarantineAlternative:function(e){Z({properties:e,arrayPath:\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\",quarantineName:\"conditionalShowHide\",arrayName:\"alternativeMeasures\",itemPath:\"qCalcCondition\"}),Z({properties:e,arrayPath:\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qDimensions\",quarantineName:\"conditionalShowHide\",arrayName:\"alternativeDimensions\",itemPath:\"qCalcCondition\"})},unquarantineAlternative:function(e){ee({properties:e,arrayPath:\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\",quarantineName:\"conditionalShowHide\",arrayName:\"alternativeMeasures\",itemPath:\"qCalcCondition\"}),ee({properties:e,arrayPath:\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qDimensions\",quarantineName:\"conditionalShowHide\",arrayName:\"alternativeDimensions\",itemPath:\"qCalcCondition\"})}};r.default={hypercube:S,colorChart:Y,axisChart:X,quarantineProperty:y,unquarantineProperty:M,quarantineArrayProp:Z,unquarantineArrayProp:ee,conditionalColoring:re,conditionalShow:ne}}])}));","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.59.0\n* Copyright (c) 2023 QlikTech International AB\n* Released under the MIT license.\n*/\n\nfunction e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?e(Object(r),!0).forEach((function(e){a(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):e(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function n(){n=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},i=\"function\"==typeof Symbol?Symbol:{},a=i.iterator||\"@@iterator\",l=i.asyncIterator||\"@@asyncIterator\",u=i.toStringTag||\"@@toStringTag\";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},\"\")}catch(e){c=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var i=t&&t.prototype instanceof p?t:p,a=Object.create(i.prototype),l=new C(r||[]);return o(a,\"_invoke\",{value:w(e,n,l)}),a}function f(e,t,n){try{return{type:\"normal\",arg:e.call(t,n)}}catch(e){return{type:\"throw\",arg:e}}}e.wrap=s;var d={};function p(){}function h(){}function m(){}var v={};c(v,a,(function(){return this}));var y=Object.getPrototypeOf,g=y&&y(y(D([])));g&&g!==t&&r.call(g,a)&&(v=g);var b=m.prototype=p.prototype=Object.create(v);function x(e){[\"next\",\"throw\",\"return\"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function q(e,t){function n(o,i,a,l){var u=f(e[o],e,i);if(\"throw\"!==u.type){var c=u.arg,s=c.value;return s&&\"object\"==typeof s&&r.call(s,\"__await\")?t.resolve(s.__await).then((function(e){n(\"next\",e,a,l)}),(function(e){n(\"throw\",e,a,l)})):t.resolve(s).then((function(e){c.value=e,a(c)}),(function(e){return n(\"throw\",e,a,l)}))}l(u.arg)}var i;o(this,\"_invoke\",{value:function(e,r){function o(){return new t((function(t,o){n(e,r,t,o)}))}return i=i?i.then(o,o):o()}})}function w(e,t,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var l=M(a,n);if(l){if(l===d)continue;return l}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var u=f(e,t,n);if(\"normal\"===u.type){if(r=n.done?\"completed\":\"suspendedYield\",u.arg===d)continue;return{value:u.arg,done:n.done}}\"throw\"===u.type&&(r=\"completed\",n.method=\"throw\",n.arg=u.arg)}}}function M(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,\"throw\"===n&&e.iterator.return&&(t.method=\"return\",t.arg=void 0,M(e,t),\"throw\"===t.method)||\"return\"!==n&&(t.method=\"throw\",t.arg=new TypeError(\"The iterator does not provide a '\"+n+\"' method\")),d;var o=f(r,e.iterator,t.arg);if(\"throw\"===o.type)return t.method=\"throw\",t.arg=o.arg,t.delegate=null,d;var i=o.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,\"return\"!==t.method&&(t.method=\"next\",t.arg=void 0),t.delegate=null,d):i:(t.method=\"throw\",t.arg=new TypeError(\"iterator result is not an object\"),t.delegate=null,d)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type=\"normal\",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:\"root\"}],e.forEach(k,this),this.reset(!0)}function D(e){if(e||\"\"===e){var t=e[a];if(t)return t.call(e);if(\"function\"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}throw new TypeError(typeof e+\" is not iterable\")}return h.prototype=m,o(b,\"constructor\",{value:m,configurable:!0}),o(m,\"constructor\",{value:h,configurable:!0}),h.displayName=c(m,u,\"GeneratorFunction\"),e.isGeneratorFunction=function(e){var t=\"function\"==typeof e&&e.constructor;return!!t&&(t===h||\"GeneratorFunction\"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,c(e,u,\"GeneratorFunction\")),e.prototype=Object.create(b),e},e.awrap=function(e){return{__await:e}},x(q.prototype),c(q.prototype,l,(function(){return this})),e.AsyncIterator=q,e.async=function(t,n,r,o,i){void 0===i&&(i=Promise);var a=new q(s(t,n,r,o),i);return e.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},x(b),c(b,u,\"Generator\"),c(b,a,(function(){return this})),c(b,\"toString\",(function(){return\"[object Generator]\"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=D,C.prototype={constructor:C,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(S),!e)for(var t in this)\"t\"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if(\"throw\"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(n,r){return a.type=\"throw\",a.arg=e,t.next=n,r&&(t.method=\"next\",t.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return n(\"end\");if(i.tryLoc<=this.prev){var l=r.call(i,\"catchLoc\"),u=r.call(i,\"finallyLoc\");if(l&&u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===e||\"continue\"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method=\"next\",this.next=i.finallyLoc,d):this.complete(a)},complete:function(e,t){if(\"throw\"===e.type)throw e.arg;return\"break\"===e.type||\"continue\"===e.type?this.next=e.arg:\"return\"===e.type?(this.rval=this.arg=e.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===e.type&&t&&(this.next=t),d},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),S(n),d}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;S(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(e,t,n){return this.delegate={iterator:D(e),resultName:t,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),d}},e}function r(e){return r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},r(e)}function o(e,t,n,r,o,i,a){try{var l=e[i](a),u=l.value}catch(e){return void n(e)}l.done?t(u):Promise.resolve(u).then(r,o)}function i(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function l(e){o(a,r,i,l,u,\"next\",e)}function u(e){o(a,r,i,l,u,\"throw\",e)}l(void 0)}))}}function a(e,t,n){return(t=function(e){var t=function(e,t){if(\"object\"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||\"default\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,a,l=[],u=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(e){c=!0,o=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(e,t)||s(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function c(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||s(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function s(e,t){if(e){if(\"string\"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function d(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var p=Object.prototype.hasOwnProperty,h=Object.prototype.toString,m=Object.defineProperty,v=Object.getOwnPropertyDescriptor,y=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===h.call(e)},g=function(e){if(!e||\"[object Object]\"!==h.call(e))return!1;var t,n=p.call(e,\"constructor\"),r=e.constructor&&e.constructor.prototype&&p.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!r)return!1;for(t in e);return void 0===t||p.call(e,t)},b=function(e,t){m&&\"__proto__\"===t.name?m(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},x=function(e,t){if(\"__proto__\"===t){if(!p.call(e,t))return;if(v)return v(e,t).value}return e[t]},q=function e(){var t,n,r,o,i,a,l=arguments[0],u=1,c=arguments.length,s=!1;for(\"boolean\"==typeof l&&(s=l,l=arguments[1]||{},u=2),(null==l||\"object\"!=typeof l&&\"function\"!=typeof l)&&(l={});u<c;++u)if(null!=(t=arguments[u]))for(n in t)r=x(l,n),l!==(o=x(t,n))&&(s&&o&&(g(o)||(i=y(o)))?(i?(i=!1,a=r&&y(r)?r:[]):a=r&&g(r)?r:{},b(l,{name:n,newValue:e(s,a,o)})):void 0!==o&&b(l,{name:n,newValue:o}));return l},w=d(q);function M(e,t){return{range:function(e){var n=e.resources,r=e.data,o=n.theme.palette(\"categorical\",0===t?r.items.length:t);return r.items.map((function(e){return o[e.value%o.length]}))},valueAccessor:e.value}}function k(e,t){return{range:function(e){var n=e.resources,r=e.data,o=n.theme.palette(\"categorical\",0===t?r.items.length:t);return r.items.map((function(e){return o[e.row.value%o.length]}))},valueAccessor:e.value}}function S(e,t,n,r,o){var i,a,l=o.byRow,u=o.byElemNo;if(r&&(t.input.persistent||e.hc.qDimensionInfo.length>1||void 0===n.activeDimensionIndex&&e.hc.qSize.qcy>(i=e.hc,(null===(a=i.qDataPages[0]||i.qStackedDataPages[0])||void 0===a?void 0:a.qArea.qHeight)||0)))return u(r,r.raw().qCardinal);if(r){var c=t.pic.extract({field:r.key(),trackBy:r.value}).length;return l(r,c)}return{}}function C(e,t){var n=e.hc.qDimensionInfo,r=t.input.byDimDef||{activeDimensionIndex:n.length-1};if(r.activeDimensionIndex>=0){var o=n[r.activeDimensionIndex];r=o.coloring&&o.coloring.colorMapRef?{type:\"libraryItem\",key:o.coloring.colorMapRef,activeDimensionIndex:r.activeDimensionIndex}:{activeDimensionIndex:r.activeDimensionIndex}}return r}function D(e,t){var n;return t.activeDimensionIndex>=0?n=e.pic.fields().filter((function(e){return\"dimension\"===e.type()}))[t.activeDimensionIndex]:\"libraryItem\"===t.type?!1===(n=t.key?e.pic.field((function(e){return e.raw().colorMapRef===t.key})):void 0)&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))):\"expression\"===t.type&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))),n}function I(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function O(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function E(){}var A=1/.7,N=\"\\\\s*([+-]?\\\\d+)\\\\s*\",L=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",T=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",P=/^#([0-9a-f]{3,8})$/,j=new RegExp(`^rgb\\\\(${N},${N},${N}\\\\)$`),F=new RegExp(`^rgb\\\\(${T},${T},${T}\\\\)$`),H=new RegExp(`^rgba\\\\(${N},${N},${N},${L}\\\\)$`),R=new RegExp(`^rgba\\\\(${T},${T},${T},${L}\\\\)$`),z=new RegExp(`^hsl\\\\(${L},${T},${T}\\\\)$`),V=new RegExp(`^hsla\\\\(${L},${T},${T},${L}\\\\)$`),_={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function B(){return this.rgb().formatHex()}function Y(){return this.rgb().formatRgb()}function $(e){var t,n;return e=(e+\"\").trim().toLowerCase(),(t=P.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?U(t):3===n?new X(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?K(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?K(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=j.exec(e))?new X(t[1],t[2],t[3],1):(t=F.exec(e))?new X(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=H.exec(e))?K(t[1],t[2],t[3],t[4]):(t=R.exec(e))?K(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=z.exec(e))?ne(t[1],t[2]/100,t[3]/100,1):(t=V.exec(e))?ne(t[1],t[2]/100,t[3]/100,t[4]):_.hasOwnProperty(e)?U(_[e]):\"transparent\"===e?new X(NaN,NaN,NaN,0):null}function U(e){return new X(e>>16&255,e>>8&255,255&e,1)}function K(e,t,n,r){return r<=0&&(e=t=n=NaN),new X(e,t,n,r)}function G(e){return e instanceof E||(e=$(e)),e?new X((e=e.rgb()).r,e.g,e.b,e.opacity):new X}function W(e,t,n,r){return 1===arguments.length?G(e):new X(e,t,n,null==r?1:r)}function X(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function Z(){return`#${te(this.r)}${te(this.g)}${te(this.b)}`}function J(){const e=Q(this.opacity);return`${1===e?\"rgb(\":\"rgba(\"}${ee(this.r)}, ${ee(this.g)}, ${ee(this.b)}${1===e?\")\":`, ${e})`}`}function Q(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ee(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function te(e){return((e=ee(e))<16?\"0\":\"\")+e.toString(16)}function ne(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new oe(e,t,n,r)}function re(e){if(e instanceof oe)return new oe(e.h,e.s,e.l,e.opacity);if(e instanceof E||(e=$(e)),!e)return new oe;if(e instanceof oe)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),a=NaN,l=i-o,u=(i+o)/2;return l?(a=t===i?(n-r)/l+6*(n<r):n===i?(r-t)/l+2:(t-n)/l+4,l/=u<.5?i+o:2-i-o,a*=60):l=u>0&&u<1?0:a,new oe(a,l,u,e.opacity)}function oe(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function ie(e){return(e=(e||0)%360)<0?e+360:e}function ae(e){return Math.max(0,Math.min(1,e||0))}function le(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}I(E,$,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:B,formatHex:B,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return re(this).formatHsl()},formatRgb:Y,toString:Y}),I(X,W,O(E,{brighter(e){return e=null==e?A:Math.pow(A,e),new X(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new X(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new X(ee(this.r),ee(this.g),ee(this.b),Q(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Z,formatHex:Z,formatHex8:function(){return`#${te(this.r)}${te(this.g)}${te(this.b)}${te(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:J,toString:J})),I(oe,(function(e,t,n,r){return 1===arguments.length?re(e):new oe(e,t,n,null==r?1:r)}),O(E,{brighter(e){return e=null==e?A:Math.pow(A,e),new oe(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new oe(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new X(le(e>=240?e-240:e+120,o,r),le(e,o,r),le(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new oe(ie(this.h),ae(this.s),ae(this.l),Q(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Q(this.opacity);return`${1===e?\"hsl(\":\"hsla(\"}${ie(this.h)}, ${100*ae(this.s)}%, ${100*ae(this.l)}%${1===e?\")\":`, ${e})`}`}}));const ue=Math.PI/180,ce=180/Math.PI,se=4/29,fe=6/29,de=3*fe*fe;function pe(e){if(e instanceof he)return new he(e.l,e.a,e.b,e.opacity);if(e instanceof qe)return we(e);e instanceof X||(e=G(e));var t,n,r=ge(e.r),o=ge(e.g),i=ge(e.b),a=me((.2225045*r+.7168786*o+.0606169*i)/1);return r===o&&o===i?t=n=a:(t=me((.4360747*r+.3850649*o+.1430804*i)/.96422),n=me((.0139322*r+.0971045*o+.7141733*i)/.82521)),new he(116*a-16,500*(t-a),200*(a-n),e.opacity)}function he(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}function me(e){return e>.008856451679035631?Math.pow(e,1/3):e/de+se}function ve(e){return e>fe?e*e*e:de*(e-se)}function ye(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function ge(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function be(e){if(e instanceof qe)return new qe(e.h,e.c,e.l,e.opacity);if(e instanceof he||(e=pe(e)),0===e.a&&0===e.b)return new qe(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*ce;return new qe(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function xe(e,t,n,r){return 1===arguments.length?be(e):new qe(e,t,n,null==r?1:r)}function qe(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function we(e){if(isNaN(e.h))return new he(e.l,0,0,e.opacity);var t=e.h*ue;return new he(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}I(he,(function(e,t,n,r){return 1===arguments.length?pe(e):new he(e,t,n,null==r?1:r)}),O(E,{brighter(e){return new he(this.l+18*(null==e?1:e),this.a,this.b,this.opacity)},darker(e){return new he(this.l-18*(null==e?1:e),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return new X(ye(3.1338561*(t=.96422*ve(t))-1.6168667*(e=1*ve(e))-.4906146*(n=.82521*ve(n))),ye(-.9787684*t+1.9161415*e+.033454*n),ye(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}})),I(qe,xe,O(E,{brighter(e){return new qe(this.h,this.c,this.l+18*(null==e?1:e),this.opacity)},darker(e){return new qe(this.h,this.c,this.l-18*(null==e?1:e),this.opacity)},rgb(){return we(this).rgb()}}));var Me=e=>()=>e;function ke(e){return 1==(e=+e)?Se:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):Me(isNaN(t)?n:t)}}function Se(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):Me(isNaN(e)?t:e)}var Ce=function e(t){var n=ke(t);function r(e,t){var r=n((e=W(e)).r,(t=W(t)).r),o=n(e.g,t.g),i=n(e.b,t.b),a=Se(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=o(t),e.b=i(t),e.opacity=a(t),e+\"\"}}return r.gamma=e,r}(1),De=/^class(-pyramid)?/,Ie=function(e,t,n,r){var o=void 0!==n.min?n.min:r.min(),i=void 0!==n.max?n.max:r.max(),a=o,l=i,u=t.limits,s={},f=\"percent\"===t.limitType?u.map((function(e){return o+(i-o)*e})):u,d=t.colors.map((function(t){return e.resolveUIColor(t)}));if(o=Math.min.apply(Math,[o].concat(c(f))),i=Math.max.apply(Math,[i].concat(c(f))),s.min=o,s.max=i,t.breakTypes&&-1===t.breakTypes.indexOf(!0))s.type=\"categorical\",Object.assign(s,function(e){var t=e.min,n=e.max,r=e.limits,o=e.range,i=[],a=[];if(r.length)if(r[r.length-1]<t)a.push(t,n),i.push(o[o.length-1],o[o.length-1],o[o.length-1]);else if(r[0]>n)a.push(t,n),i.push(o[0],o[0],o[0]);else{if(r[0]>t)a.push(t),i.push(o[0]);else{a.push(t);for(var l=0;l<r.length;l++)if(t<r[l]){i.push(o[l]);break}}for(var u=0;u<r.length;u++)t<r[u]&&r[u]<n&&(a.push(r[u]),i.push(o[u]));if(r[r.length-1]<n)a.push(n),i.push(o[r.length]),i.push(o[r.length]);else{a.push(n);for(var c=0;c<r.length;c++)if(r[c]>n){i.push(o[c]),i.push(o[c]);break}}}else i.push(o[0]);return{min:t,max:n,range:i,domain:a}}({min:\"percent\"===t.limitType?o:a,max:\"percent\"===t.limitType?i:l,range:d,limits:\"percent\"===t.limitType?f:u}));else if(t.breakTypes){var p=t.breakTypes;s.type=\"continuous\",s.domain=[o],s.range=[d[0]];for(var h=0;h<f.length;h+=1)if(p[h]){var m=d[h],v=d[h+1],y=Ce(m,v)(.5);s.range.push(y),s.domain.push(f[h]),h<f.length-1&&p[h+1]&&(s.range.push(d[h+1]),s.domain.push((f[h]+f[h+1])/2))}else s.range.push(d[h]),s.range.push(d[h+1]),s.domain.push(f[h]),s.domain.push(f[h]+Math.min(1e-6,(i-o)/1e6));s.range.push(d[d.length-1]),s.domain.push(i)}else s.domain=f,s.range=d;return s};function Oe(e,t,n,r,o){var i,a,l,u=0,c=[],s=(e-t)/(r+1);if(0===s)return 1;for(i=0;i<n.length;i+=1)a=.99*(n[i]-t),l=n[i]>e?Math.floor(e/s):n[i]<t?0:Math.floor(a/s),Number.isNaN(l)||(c[l]?c[l]+=1:c[l]=1);for(i=0;i<c.length;i+=1)c[i]&&(u+=1);return u<=r||u>=o?Math.max(u,r):Oe(e,t,n,r+1,o)}var Ee=function(e,t,n,r){var o,i,a=t.theme,l=t.hc,u=r.f,s={mode:\"field\",fieldType:\"measure\",field:u?u.key():void 0,reverse:n.input.reverseScheme||!1,type:\"continuous\",range:function(e){return e.resources.theme.palette(\"quant\")}},f=[],d=!0;if(u){if(Number.isNaN(+u.min())||Number.isNaN(+u.max()))return{invalid:!0};(d=!(\"S\"===(o=n.pic.raw()).qMode&&(o.qDataPages[0]&&o.qSize.qcy>o.qDataPages[0].qArea.qHeight||!o.qDataPages.length&&o.qSize.qcy>0)||\"K\"===o.qMode&&o.qStackedDataPages[0]&&o.qSize.qcy>o.qStackedDataPages[0].qArea.qHeight||\"T\"===o.qMode&&o.qSize.qcy>o.qTreeDataPages[0].qGroupSize))&&(f=n.pic.extract({field:0,props:{num:{field:u.key()},exclude:{fields:l.qDimensionInfo.map((function(e,t){return{field:\"qDimensionInfo/\".concat(t)}})),value:function(e){return Math.min.apply(Math,c(e))<0}}}}).filter((function(e){return e.value>=0&&!e.exclude.value})).map((function(e){return e.num.value})).filter((function(e){return\"number\"==typeof e})))}if(!1===n.input.autoMinMax){if(s.min=n.input.measureMin,s.max=n.input.measureMax,s.max<s.min)return{invalid:!0}}else if(u&&!d)s.min=u.min(),s.max=u.max();else if(u){if(!f.length)return{invalid:!0};s.min=Math.min.apply(Math,c(f)),s.max=Math.max.apply(Math,c(f))}if(n.input.measureScheme&&(s.palettes={quant:n.input.measureScheme}),a){var p=a.getDataColorScales().filter((function(e){return e.key===n.input.measureScheme}))[0];s.type=p&&De.test(p.type)?\"categorical\":\"continuous\",\"categorical\"===s.type&&(i=p.colors.some((function(e){return Array.isArray(e)}))?Math.max.apply(Math,c(p.colors.map((function(e){return e?e.length:0})))):p.colors.length)}if(\"categorical\"===s.type){for(var h=d?Oe(s.max,s.min,f,1,i):i,m=(s.max-s.min)/h,v=[],y=0;y<h+1;y+=1)v.push(s.min+m*y);s.domain=v,s.range=function(e){for(var t=e.resources.theme.palette(\"quant\",h),n=Math.max(1,Math.floor(t.length/h)),r=[],o=0;o<h;o+=1)r.push(t[o*n]);return[r[0]].concat(r,[r[r.length-1]])}}return s};function Ae(e,t){var n;return t.activeMeasureIndex>=0?n=e.pic.fields().filter((function(e){return\"measure\"===e.type()}))[t.activeMeasureIndex]:\"libraryItem\"===t.type?n=e.pic.field((function(e){return e.raw().colorMapRef===t.key&&void 0!==t.key})):\"expression\"===t.type&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))),n||(n=e.pic.field((function(e){return void 0!==e.raw().matchMeasure})))&&(n=e.pic.fields().filter((function(e){return\"measure\"===e.type()}))[n.raw().matchMeasure]),n}function Ne(e){var n,r=e.cm,o=e.defaults,i=e.index,a=e.input,l=e.pic;if(!a||!a.on)return null;var u=null!==(n=a.mode)&&void 0!==n?n:\"primary\";return\"primary\"===u?function(e,n,r){var o=r.primary;return void 0!==n.paletteColor&&n.paletteColor&&(o=e.resolveUIColor(n.paletteColor)),t(t({},r),{},{mode:\"constant\",type:\"constant\",primary:o})}(r,a,o):\"byExpression\"===u?function(e,n,r){var o=\"qMeasureInfo/\".concat(e,\"/\"),i=n.field((function(e){return e.id().startsWith(o)&&\"colorByMeasureExpression\"===e.raw().id})),a=i;return t(t({},r),{},a?{mode:\"field\",fieldType:\"expression\",field:i?i.key():void 0,type:\"color\"}:{mode:\"constant\",type:\"constant\",primary:r.nil})}(i,l,o):null}function Le(e){e.measureOverrides.every((function(e){return!e}))&&(e.measureOverrides=null)}function Te(e,t){for(var n=(null==t?void 0:t.domain)||[],r=(null==t?void 0:t.range)||[],o=[],i=0;i<e.length;++i){var a=e[i];if(\"constant\"===(null==a?void 0:a.mode)){var l=n.indexOf(i);-1===l?(n.push(i),r.push(a.primary)):r[l]=a.primary,e[i]=null}else if(a){o.push(i);var u=n.indexOf(i);-1!==u&&(n.splice(u,1),r.splice(u,1))}}return{domain:n,range:r,exclude:o}}function Pe(e,t,n,r){if(t.input&&!t.input.auto){if(\"byMeasure\"===t.input.mode)return function(e,t,n){var r=t.theme,o=t.hc,i=(arguments.length>3&&void 0!==arguments[3]?arguments[3]:{}).getCField,a=void 0===i?Ae:i,l=n.input.byMeasureDef||{activeMeasureIndex:0},u=a(n,l),c=Ee(0,{theme:r,hc:o},n,{f:u});if(c.invalid)return c;\"expression\"===l.type&&(l.activeMeasureIndex<0||void 0===l.activeMeasureIndex)&&(c.label=l.label,u&&\"color.altLabel\"===u.raw().labelExpRef&&(c.label=n.input.altLabel)),!c.label&&u&&(c.label=u.title());var s=l.activeMeasureIndex>=0?u:null;if(!s&&u&&void 0!==u.raw().matchMeasure&&u.raw().matchMeasure>-1&&(s=n.pic.fields().filter((function(e){return\"measure\"===e.type()}))[u.raw().matchMeasure]),n.input.useMeasureGradient&&\"libraryItem\"===l.type)if(s){var f=s.raw().coloring;f&&f.gradient&&w(c,Ie(e,f.gradient,c,s))}else c.auxiliary=l;return c}(e,n,t);if(\"byDimension\"===t.input.mode)return function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=r.getCDef,i=void 0===o?C:o,a=r.getCByField,l=void 0===a?D:a,u=r.getPersistence,c=void 0===u?S:u,s=i(t,n),f=l(n,s),d=f?f.raw():{},p=n&&n.pic?n.pic.raw():{};if(d.qError||d.qSize&&0===d.qSize.qcy&&!p.qHasOtherValues)return{invalid:!0};var h={mode:\"field\",fieldType:\"dimension\",type:\"categorical\",field:f?f.key():void 0,isFieldLocked:d.qLocked};return(\"expression\"===s.type||s.activeDimensionIndex<0)&&(h.label=s.label,\"color.altLabel\"===d.labelExpRef&&(h.label=n.input.altLabel)),!h.label&&f&&(h.label=f.title()),n.input.dimensionScheme&&(h.palettes={categorical:n.input.dimensionScheme}),n.input.useDimColVal&&\"libraryItem\"===s.type&&(h.auxiliary=s),w(h,c(t,n,s,f,{byRow:k,byElemNo:M})),h}(e,n,t);if(\"byExpression\"===t.input.mode)return function(e,t,n,r){var o=t.hc,i=t.theme,a=t.translator,l=n.pic.field((function(e){return\"colorByExpression\"===e.raw().id}));if(!l||!l.raw().qFallbackTitle&&!n.input.colorExpression||!(Number.isFinite(l.raw().qMin)&&Number.isFinite(l.raw().qMax)||n.input.expressionIsColor))return{mode:\"constant\",type:\"constant\",primary:r.nil};if(n.input.expressionIsColor)return{mode:\"field\",fieldType:\"expression\",field:l?l.key():void 0,type:\"color\"};var u=Ee(0,{hc:o,theme:i},n,{f:l});return u.invalid||(u.label=n.input.expressionLabel||a.get(\"Object.ChartTooltip.ColorExpression\")),u}(0,n,t,r);if(\"byMultiple\"===t.input.mode||\"primary\"===t.input.mode)return function(e,t,n,r){var o=t.hc,i=t.theme,a=t.translator,l=n.input.useBaseColors;if((\"byMultiple\"===n.input.mode||\"primary\"===n.input.mode&&\"measure\"===n.input.useBaseColors)&&o.qMeasureInfo.length>1&&(l=\"measure\"),\"measure\"===l){var u=[],c=[];\"measure\"===n.input.useBaseColors&&o.qMeasureInfo.forEach((function(t,n){if(t.baseColor||t.coloring&&t.coloring.baseColor){u.push(n);var o=e.resolveUIColor(t.baseColor||t.coloring.baseColor);\"none\"===o?c.push(r.primary):c.push(o)}}));var s=n.input.dimensionScheme?{categorical:n.input.dimensionScheme}:void 0,f=i?i.getDataColorPalettes()[0]:void 0;return\"measure\"===n.input.useBaseColors&&f&&(s={categorical:f.key}),{mode:\"measure\",type:\"categorical\",palettes:s,label:a?a.get(\"Common.Measures\"):void 0,explicit:u.length?{domain:u,range:c}:void 0}}if(\"dimension\"===l){var d=[],p=[];return o.qDimensionInfo.forEach((function(t,n){if(t.baseColor||t.coloring&&t.coloring.baseColor){d.push(n);var o=e.resolveUIColor(t.baseColor||t.coloring.baseColor);\"none\"===o?p.push(r.primary):p.push(o)}})),{mode:\"dimension\",type:\"categorical\",field:d.length?d[0]:void 0,explicit:d.length?{domain:d,range:p}:void 0}}var h=r.primary;if(void 0!==n.input.paletteColor)n.input.paletteColor&&(h=e.resolveUIColor(n.input.paletteColor));else{var m=n.input.singleColor;\"number\"!=typeof m||Number.isNaN(m)||(h=[\"#b0afae\",\"#7b7a78\",\"#545352\",\"#4477aa\",\"#7db8da\",\"#b6d7ea\",\"#46c646\",\"#f93f17\",\"#ffcf02\",\"#276e27\",\"#ffffff\",\"#000000\"][m])}return{mode:\"constant\",type:\"constant\",primary:h}}(e,n,t,r)}return{}}function je(e,t,n,r){var o,i=Pe(e,t,n,r);return null!==(o=t.input)&&void 0!==o&&o.measureOverrides?(i.measureOverrides=t.input.measureOverrides.map((function(n,o){return Ne({cm:e,input:n,defaults:r,index:o,pic:t.pic})})),function(e,t){var n,r,o,i=t.translator;if(Le(e),1===(null===(n=e.measureOverrides)||void 0===n?void 0:n.length))return e.measureOverrides[0];if(\"measure\"===e.mode&&e.measureOverrides&&(e.explicit=Te(e.measureOverrides,e.explicit),Le(e)),null!==(r=e.measureOverrides)&&void 0!==r&&r.every((function(e){return\"constant\"===(null==e?void 0:e.mode)}))){var a={mode:\"measure\",type:\"categorical\",label:null==i?void 0:i.get(\"Common.Measures\")};return a.explicit=Te(e.measureOverrides),a}return null!==(o=e.measureOverrides)&&void 0!==o&&o.every((function(e){return e}))?{invalid:!0,measureOverrides:e.measureOverrides}:e}(i,n)):i}function Fe(e){var n=t({hc:null,colorProps:null,layout:null,theme:null},e),r={},o={auto:function(){return{mode:\"primary\"}},getDimensionColorMap:function(){return Promise.reject()},getMeasure:function(){return Promise.reject()},getAttributeDimension:function(){return Promise.reject()}},i={auto:function(e){return e?(o.auto=e,i):o.auto},getDimensionColorMap:function(e){return e?(o.getDimensionColorMap=e,i):o.getDimensionColorMap},getAttributeDimension:function(e){return e?(o.getAttributeDimension=e,i):o.getAttributeDimension},getMeasure:function(e){return e?(o.getMeasure=e,i):o.getMeasure},set:function(e){var t;if(!e.colorProps)throw new Error('Missing \"colorProps\"');if(w(n,e),(r={pic:n.picasso.data(\"q\")({data:n.hc,config:{localeInfo:n.localeInfo}}),input:n.colorProps}).input.auto){var i=o.auto(e.layout);r.input=w(!0,{},r.input,i,{auto:!1});var a=n.theme?n.theme.getDataColorPalettes():[];a[0]&&(r.input.dimensionScheme=a[0].key);var l=0;r.input.byDimDef&&+r.input.byDimDef.activeDimensionIndex>=0&&(l=+r.input.byDimDef.activeDimensionIndex),n.hc&&n.hc.qDimensionInfo[l]&&n.hc.qDimensionInfo[l].coloring&&n.hc.qDimensionInfo[l].coloring.colorMapRef&&r.input.byDimDef&&(r.input.byDimDef.type=\"libraryItem\",r.input.byDimDef.key=n.hc.qDimensionInfo[l].coloring.colorMapRef)}null!==(t=r.input.measureOverrides)&&void 0!==t&&t.every((function(e){return!e||!e.on}))&&(r.input=w(!1,{},r.input,{measureOverrides:null}))},palettes:function(){if(!r.palettes){var e=n.theme,t=[];(e&&e.getDataColorPickerPalettes()||[]).forEach((function(e){t.push({key:\"ui\",colors:e.colors})})),r.palettes=t}return r.palettes},getAuxiliaryData:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"/qHyperCubeDef\";if(!e.auxiliary&&!/qAttrDimInfo/.test(e.field))return Promise.resolve();var r=e.auxiliary||{},i=r.key;if(\"measure\"===e.fieldType)return o.getMeasure(i,n).catch((function(){}));if(\"dimension\"===e.fieldType){var a=\"\".concat(t,\"/\").concat(e.field).replace(\"qDimensionInfo\",\"qDimensions\").replace(\"qAttrDimInfo\",\"qAttributeDimensions\");return Promise.all([/qAttrDimInfo/.test(e.field)?o.getAttributeDimension(a,n).catch((function(){})):Promise.resolve(),i?o.getDimensionColorMap(i,n).catch((function(){})):Promise.resolve()])}return Promise.resolve()},getAuxiliarySettings:function(e,o){var i=this;return e.auxiliary||/qAttrDimInfo/.test(e.field)?(this.palettes(),this.getAuxiliaryData(e,o).then((function(o){if(!o)return{};if(\"measure\"===e.fieldType){if(o.coloring&&o.coloring.gradient){var a=r.pic.field(e.field);return Ie(i,o.coloring.gradient,e,a)}return{}}if(\"dimension\"===e.fieldType){var l={nil:e.nil,others:e.others},u=o[0],c=o[1]?o[1].colorMap:null;if(u){var s=n.picasso.data(\"q\")({data:{qDimensionInfo:[r.pic.field(e.field).raw(),r.pic.field(e.field).raw()],qMeasureInfo:[],qDataPages:u,qInterColumnSortOrder:[0,1],qMode:\"S\"}});l.legendDataset=s}return c?function(e,n,r,o){var i=o.external,a=o.field,l=t({},e);w(l,M(a,a.raw().qCardinal));var u=i.theme?i.theme.getDataColorPalettes()[0]:null;return n.nul&&(l.nil=r.resolveUIColor(n.nul)),n.oth&&(l.others=r.resolveUIColor(n.oth)),n.usePal?(l.palettes={categorical:n.pal},u&&!n.pal&&(l.palettes.categorical=u.key,w(l,M(a)))):!1===n.autoFill&&n.single?l.range=[r.resolveUIColor(n.single)]:n.autoFill&&(u&&(l.palettes={categorical:u.key}),w(l,M(a))),n.colors&&n.colors.length&&(l.explicit=function(e,t,n){for(var r={},o=0;o<e.length;o+=1)r[e[o].value]=e[o].baseColor;var i=[];return{domain:function(e){var o=e.data,a=[];i=[];for(var l=0;l<o.items.length;l++){var u=o.items[l],c=(u.text||u).label;r[c]&&-1===a.indexOf(u.value)&&(a.push(u.value),i.push(t.resolveUIColor(r[c])))}return a.push(-3,-2),i.push(n.others),i.push(n.nil),a},range:function(){return i}}}(n.colors,r,l)),l}(l,c,i,{external:n,field:r.pic.field(e.field)}):l}return{}}))):Promise.resolve()},resolveUIColor:function(e){if(e.index<0||void 0===e.index)return e.color;if(void 0===r.uiPalette&&(r.uiPalette=this.palettes().filter((function(e){return\"ui\"===e.key}))[0]||!1),!r.uiPalette)return e.color;var t=\"none\"===r.uiPalette.colors[0]?e.index:e.index-1;return void 0===r.uiPalette.colors[t]?e.color:r.uiPalette.colors[t]},settings:function(){if(this.palettes(),!r.settings){var e={primary:\"steelblue\",others:\"#aaa\",nil:\"#ddd\"},o=n.theme;o&&(e=t(t({},e),o.getDataColorSpecials())),r.settings=w(e,je(this,r,n,e))}return r.settings}};return i}var He=function(e,t){var n=e.fieldType,r={};if(t)if(\"measure\"===n){var o=t.coloring;o&&(r.measureGradient=o.gradient)}else if(\"dimension\"===n){var i=t[0],a=t[1];i&&(r.legendDataPage=i),a&&(r.dimValsData=a.colorMap)}return r},Re=function(e){throw e.isHandled=!0,e},ze=function(e,t){var n=t.layout,r=t.app;return n&&n.snapshotData?n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.dimValsData?Promise.resolve({colorMap:n.snapshotData.content.chartData.dimValsData}):Promise.reject():r&&r.getObject?r.getObject(\"ColorMapModel_\".concat(e)).then((function(e){return e.getLayout()})):Promise.reject()},Ve=function(e,t){var n=t.layout,r=t.app;return n&&n.snapshotData?n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.measureGradient?Promise.resolve({coloring:{gradient:n.snapshotData.content.chartData.measureGradient}}):Promise.reject():r&&r.getMeasure?r.getMeasure(e).then((function(e){return e.getMeasure()})):Promise.reject()},_e=function(e,t){var n=t.layout,r=t.model,o=t.app;if(n&&n.snapshotData)return n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.legendDataPage?Promise.resolve(n.snapshotData.content.chartData.legendDataPage):Promise.reject();if(r&&r.session&&o){return r.getHyperCubeData(e,[{qHeight:100,qLeft:0,qTop:0,qWidth:2}]).catch(Re)}return Promise.reject()};function Be(e){var t=e.hc,n=e.source,r=e.coloring,o={data:{extract:[{source:\"dummy\",field:0,filter:function(){return o.expando=t.qDataPages[0]?t.qDataPages[0].qArea.qTop:0,!1}},{source:n,field:r.field,trackBy:r.valueAccessor,reduce:\"first\",props:{row:{reduce:function(){return o.expando++}},text:{value:function(e){return e.qText},reduce:\"first\"}}}]},expando:0};return o}function Ye(e){return function(t){return\"object\"===r(t.datum[e])?t.datum[e].value:void 0}}function $e(e){return\"object\"===r(e.datum.isNull)?e.datum.isNull.value:-2===e.datum.value}function Ue(e){return-3===e.datum.value}var Ke={TITLE:{COLOR:void 0,FONT_SIZE:\"16px\",FONT_FAMILY:\"'Source Sans Pro', 'Arial', 'sans-serif'\"},LABEL:{COLOR:void 0,FONT_SIZE:void 0,FONT_FAMILY:\"'Source Sans Pro', 'Arial', 'sans-serif'\"}};function Ge(e){var t=e.theme,n=e.key,r=e.styleOverrides,o={title:{color:Ke.TITLE.COLOR,fontSize:Ke.TITLE.FONT_SIZE,fontFamily:Ke.TITLE.FONT_FAMILY},label:{color:Ke.LABEL.COLOR,fontSize:Ke.LABEL.FONT_SIZE,fontFamily:Ke.LABEL.FONT_FAMILY}};if(!t&&!r)return o;var i=r||{},a=i.title,l=i.label,u=function(e){var t=e.theme,n=e.key;return function(e,r,o,i){return void 0!==e?e:t?t.getStyle(n,r,o):i}}({theme:t,key:n});return o.title.color=u(null==a?void 0:a.color,\"legend.title\",\"color\",Ke.TITLE.COLOR),o.title.fontSize=u(null==a?void 0:a.fontSize,\"legend.title\",\"fontSize\",Ke.TITLE.FONT_SIZE),o.title.fontFamily=u(null==a?void 0:a.fontFamily,\"legend.title\",\"fontFamily\",Ke.TITLE.FONT_FAMILY),o.label.color=u(null==l?void 0:l.color,\"legend.label\",\"color\",Ke.LABEL.COLOR),o.label.fontSize=u(null==l?void 0:l.fontSize,\"legend.label\",\"fontSize\",Ke.LABEL.FONT_SIZE),o.label.fontFamily=u(null==l?void 0:l.fontFamily,\"legend.label\",\"fontFamily\",Ke.LABEL.FONT_FAMILY),o}var We=function(e,t,n){var r=e&&e.dock||void 0;if(\"auto\"!==r)return r||\"right\";if(t){var o=t.element.getBoundingClientRect();if(o.height>o.width)return\"bottom\"}return n?\"left\":\"right\"},Xe=function(e,t,n){return!(n.invalid||\"color\"===n.type||\"measure\"===n.mode&&t.qMeasureInfo.length<=1||\"dimension\"===n.mode)&&(\"function\"==typeof e.show?e.show():!1!==e.show)};function Ze(e,t){var n=e.styleReference,r=e.styleOverrides,o=e.chart,i=e.rtl,a=t.legendProps,l=t.coloring,u=t.theme,c=t.hc,s=Ge({theme:u,key:n,styleOverrides:r});return{layout:{minimumLayoutMode:\"MEDIUM\",dock:We(a,o,i)},show:\"function\"==typeof a.show?function(){return Xe(a,c,l)}:Xe(a,c,l),renderer:\"svg\",mounted:function(e){e.childNodes[0].style.pointerEvents=\"none\",e.style.overflow=\"hidden\"},settings:{title:{show:!1!==a.showTitle,wordBreak:\"break-word\",maxLines:2,lineHeight:1.2,text:l.label||\"\",fill:s.title.color,fontSize:s.title.fontSize,fontFamily:s.title.fontFamily}}}}function Je(e,n,r){return\"categorical\"===n.coloring.type?function(e,n,r){var o=Ze(e,n);if(!o.show)return!1;var i,a=e.key,l=e.styleReference,u=e.styleOverrides,c=e.viewState,s=e.rtl,f=e.settings,d=e.style,p=n.scaleKey,h=n.theme,m=n.scales,v=Ge({theme:h,key:l,styleOverrides:u}),y=o.layout.dock,g=\"left\"===y||\"right\"===y?{maxLines:2,wordBreak:\"break-word\"}:{},b={up:\"M13.6,11 L2.4,11 C2.28954305,11 2.2,10.9104569 2.2,10.8 C2.2,10.756726 2.21403557,10.7146192 2.24,10.68 L7.84,3.21333333 C7.90627417,3.12496777 8.03163444,3.10705916 8.12,3.17333333 C8.13516113,3.18470418 8.14862915,3.1981722 8.16,3.21333333 L13.76,10.68 C13.8262742,10.7683656 13.8083656,10.8937258 13.72,10.96 C13.6853808,10.9859644 13.643274,11 13.6,11 Z\",down:\"M2.4,4 L13.6,4 C13.7104569,4 13.8,4.08954305 13.8,4.2 C13.8,4.24327404 13.7859644,4.28538077 13.76,4.32 L8.16,11.7866667 C8.09372583,11.8750322 7.96836556,11.8929408 7.88,11.8266667 C7.86483887,11.8152958 7.85137085,11.8018278 7.84,11.7866667 L2.24,4.32 C2.17372583,4.23163444 2.19163444,4.10627417 2.28,4.04 C2.31461923,4.01403557 2.35672596,4 2.4,4 Z\",left:\"M11,2.4 L11,13.6 C11,13.7104569 10.9104569,13.8 10.8,13.8 C10.756726,13.8 10.7146192,13.7859644 10.68,13.76 L3.21333333,8.16 C3.12496777,8.09372583 3.10705916,7.96836556 3.17333333,7.88 C3.18470418,7.86483887 3.1981722,7.85137085 3.21333333,7.84 L10.68,2.24 C10.7683656,2.17372583 10.8937258,2.19163444 10.96,2.28 C10.9859644,2.31461923 11,2.35672596 11,2.4 Z\",right:\"M4,13.6 L4,2.4 C4,2.28954305 4.08954305,2.2 4.2,2.2 C4.24327404,2.2 4.28538077,2.21403557 4.32,2.24 L11.7866667,7.84 C11.8750322,7.90627417 11.8929408,8.03163444 11.8266667,8.12 C11.8152958,8.13516113 11.8018278,8.14862915 11.7866667,8.16 L4.32,13.76 C4.23163444,13.8262742 4.10627417,13.8083656 4.04,13.72 C4.01403557,13.6853808 4,13.643274 4,13.6 Z\"};\"dimension\"===n.coloring.fieldType&&(i=function(e){return e.datum.value>=0||-3===e.datum.value});var x=\"\".concat(p,\"Legend\");return w(!0,o,{type:\"legend-cat\",key:\"\".concat(a,\"-cat\"),scale:x in m?x:p,settings:{layout:{scrollOffset:function(){return c?c.get(\"legendScrollOffset\"):void 0},size:-1!==[\"top\",\"bottom\"].indexOf(o.layout.dock)?2:1,direction:s?\"rtl\":\"ltr\",horizontal:20},item:{show:i,label:t({fill:v.label.color,fontSize:v.label.fontSize,fontFamily:v.label.fontFamily},g)},navigation:{disabled:r,button:{content:function(e,t){var n=t.direction;return e(\"i\",{style:{\"pointer-events\":\"none\",fontSize:\"12px\",display:\"inline-block\",fontStyle:\"normal\",lineHeight:\"0\",textAlign:\"center\",textTransform:\"none\",verticalAlign:\"-0.125em\",textRendering:\"optimizelegibility\",margin:\"0px\"}},[e(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"1em\",height:\"1em\",viewBox:\"0 0 16 16\",fill:\"currentColor\"},[e(\"path\",{d:b[n]})])])}}}},brush:{consume:[{context:\"selection\",data:[\"\",a],style:{inactive:{opacity:.3}}}]}},{settings:f,style:d})}(e,n,r):\"continuous\"===n.coloring.type&&function(e,t){var n,r=e.key,o=e.styleReference,i=e.styleOverrides,a=e.rtl,l=e.settings,u=e.style,c=t.scaleKey,s=t.theme,f=\"\".concat(c,\"Range\"),d=Ze(e,t);if(!d.show)return!1;var p=Ge({theme:s,key:o,styleOverrides:i}),h=d.layout.dock,m=\"right\"===h||\"left\"===h,v=null===(n=t.scales)||void 0===n?void 0:n[f];return m&&v&&(v.invert=!0),w(!0,d,{type:\"legend-seq\",key:\"\".concat(r,\"-seq\"),settings:{fill:c,major:f,length:1,tick:{fill:p.label.color,fontSize:p.label.fontSize,fontFamily:p.label.fontFamily},title:{anchor:!a||\"top\"!==d.layout.dock&&\"bottom\"!==d.layout.dock?void 0:\"right\",padding:parseFloat(d.settings.title.fontSize)||16}}},{settings:l,style:u})}(e,n)}function Qe(e,t,n){var r=[],o=[],i=Je(e,t,n&&n.navigationDisabled);return r.push(i),i&&\"legend-cat\"===i.type&&(o.push(function(e){var t=e.key,n=e.requireFailure,r=e.recognizeWith,o=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).actions;return{key:\"event:tap-\".concat(t),type:\"Tap\",requireFailure:n,recognizeWith:r,options:{event:\"legendtap\",interval:10,pointers:1,enable:function(e,n){var r;if(!n)return!0;if(null!=o&&null!==(r=o.interact)&&void 0!==r&&r.enabled&&!o.interact.enabled())return!1;if(!this.chart.componentsFromPoint({x:n.center.x,y:n.center.y}).some((function(e){return e.key===\"\".concat(t,\"-cat\")})))return!1;var i=n.srcEvent.target;return!!(i&&i.hasAttribute(\"data-action\")&&i.hasAttribute(\"data-component-key\"))||!(!i||!i.childNodes[0]||\"BUTTON\"!==i.childNodes[0].nodeName)}},events:{legendtap:function(e){e.preventDefault();var t=e.srcEvent.target;t&&t.hasAttribute(\"data-action\")&&t.hasAttribute(\"data-component-key\")&&this.chart.component(t.getAttribute(\"data-component-key\")).emit(t.getAttribute(\"data-action\"))}}}}(e,n)),o.push(function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.eventName,r=t.key,o=t.requireFailure,i=t.recognizeWith,l=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).actions;return{key:\"event:pan-\".concat(r),type:\"Pan\",requireFailure:o,recognizeWith:i,options:{event:n,pointers:1,threshold:10,enable:function(e,t){var o;return this.started===n||!t||!(null!=l&&null!==(o=l.interact)&&void 0!==o&&o.enabled&&!l.interact.enabled())&&this.chart.componentsFromPoint({x:t.center.x,y:t.center.y}).some((function(e){return e.key===\"\".concat(r,\"-cat\")}))}},events:(e={},a(e,\"\".concat(n,\"start\"),(function(e){e.preventDefault(),this.started!==n&&(this.started=n,this.chart.component(\"\".concat(r,\"-cat\")).emit(\"panstart\",e))})),a(e,\"\".concat(n,\"move\"),(function(e){e.preventDefault(),this.chart.component(\"\".concat(r,\"-cat\")).emit(\"panmove\",e)})),a(e,\"\".concat(n,\"end\"),(function(e){e.preventDefault(),this.chart.component(\"\".concat(r,\"-cat\")).emit(\"panend\",e),this.started=!1})),e)}}(e,n))),{interactions:o,components:r}}var et=function(e){return\"rgba(\".concat([(16711680&e)>>16,(65280&e)>>8,255&e,((4278190080&e)>>>24)/255].join(\",\"),\")\")};function tt(e){var n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.auto,n=Fe(e.resources).auto(t||function(){return{mode:\"byDimension\",persistent:!1,useDimColVal:!0,byDimDef:{activeDimensionIndex:0,type:\"expression\",label:\"\"}}}).getDimensionColorMap((function(e,t){var n=t.layout,r=t.app;return ze(e,{layout:n,app:r})})).getMeasure((function(e,t){var n=t.layout,r=t.app;return Ve(e,{layout:n,app:r})})).getAttributeDimension((function(e,t){var n=t.layout,r=t.model,o=t.app;return _e(e,{layout:n,model:r,app:o})}));return n.getSnapshotData=He,n}({resources:e}),r={},o={},i=function(e){return o.settings||(e||console.warn(\"settings() called before auxiliarySettings()\"),o.settings=n.settings()),o.settings},l={config:function(i){if(r=t({},i),o={},!r.key)throw new Error(\"Missing key\");n.set(t(t({},e),r))},auto:function(e){return e?(n.auto(e),l):n.auto()},getAuxiliarySettings:function(e){return o.auxiliarySettings?Promise.resolve(o.auxiliarySettings):n.getAuxiliarySettings(i(!0),e).then((function(e){return o.auxiliarySettings=e||{},o.settings=t(t({},o.settings),o.auxiliarySettings),o.scales=void 0,o.color=void 0,o.auxiliarySettings}))},getAuxiliaryData:function(){return n.getAuxiliaryData(i())},getSnapshotData:function(e){var t=i();return n.getAuxiliaryData(t,e).then((function(e){return n.getSnapshotData(t,e)}))},resolveUIColor:function(e){return n.resolveUIColor(e)},settings:function(){var e=i();return{mode:e.mode,type:e.type,label:e.label,field:e.field,fieldType:e.fieldType,nil:e.nil,others:e.others,primary:e.primary}},settingsForMeasure:function(e){var t,n=null===(t=i().measureOverrides)||void 0===t?void 0:t[e];return n||this.settings()},isSelectionLocked:function(e){var t=e.isMeasureSelectionLocked;return function(e,t){var n=t.isMeasureSelectionLocked;return\"field\"!==e.mode||(\"dimension\"===e.fieldType?e.isFieldLocked:\"measure\"!==e.fieldType||n)}(i(),{isMeasureSelectionLocked:t})},palettes:function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.colorProps,n=e.coloring,r=e.theme,o=[];if(n&&n.palettes&&r){var i=n.palettes.categorical||t.dimensionScheme,a=r.getDataColorPalettes().filter((function(e){return e.key===i}))[0]||r.getDataColorPalettes()[0];i&&a&&o.push({key:\"categorical\",colors:a.colors});var l=n.palettes.metric||t.measureScheme,u=r.getDataColorScales().filter((function(e){return e.key===l}))[0];if(u){var s=u.colors[0]?u.colors:[[]].concat(c(u.colors.slice(1)));s=Array.isArray(s[0])?s.map((function(e){return e.slice().reverse()})):s.slice().reverse(),o.push({key:\"quant\",colors:s})}}return o}({coloring:i(),colorProps:r.colorProps,theme:r.theme})},scales:function(){return o.scales=o.scales||function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.hc,r=e.coloring,o=e.rtl,i=e.key,a=e.source,l=e.picasso,u={},s=i;if(r){var f={override:!0,domain:r.explicit&&\"function\"==typeof r.explicit.domain?r.explicit.domain:[].concat(c((r.explicit||{}).domain||[]),[-3,-2]),range:r.explicit&&\"function\"==typeof r.explicit.range?r.explicit.range:[].concat(c((r.explicit||{}).range||[]),[r.others,r.nil])};if(\"field\"===r.mode){if(\"dimension\"===r.fieldType){var d,p=Be({hc:n,source:a,coloring:r}).data;if(r.legendDataset){var h=0,m={};l.data(\"q\")({data:n}).extract({field:r.field,trackBy:r.valueAccessor,reduce:function(e){var t=e[0];return m[t]=h++,e[0]}}),d={source:\"attrDim\",extract:{field:\"qDimensionInfo/0\",filter:function(e){return e.qElemNumber>=0},props:{row:{value:function(e){return m[e.qElemNumber]}}}}}}var v={data:p,range:r.range,domain:r.domain,explicit:f,type:\"categorical-color\",label:function(e){return e.datum.text&&e.datum.text.value?e.datum.text.value:e.datum.label}};u[s]=v,d&&(u[\"\".concat(s,\"Legend\")]=t(t({},v),{},{data:d})),n&&n.qHasOtherValues&&d&&((d||v.data).amend=[{label:n.qDimensionInfo[0].othersLabel,source:{key:\"qHyperCube\",field:\"qDimensionInfo/0\"},row:{value:-3},value:-3}])}else if(\"measure\"===r.fieldType){var y={data:{field:r.field},min:r.min,max:r.max};u[s]=w({},y,{type:\"categorical\"===r.type?\"threshold-color\":\"sequential-color\",range:r.range,domain:r.domain,invert:r.reverse}),\"sequential-color\"===u[s].type&&(u[\"\".concat(s,\"Range\")]=w({},y,{invert:!!o}))}else if(\"color\"!==r.type)throw new Error(\"UNUSED FIELD\")}else if(\"dimension\"===r.mode){var g={data:n.qDimensionInfo.map((function(e,t){return t})),label:function(e){return n.qDimensionInfo[e.datum.value].qFallbackTitle},explicit:f,type:\"categorical-color\"};u[s]=g}else if(\"measure\"===r.mode){var b={data:n.qMeasureInfo.map((function(e,t){return t})).filter((function(e){var t;return!(null!==(t=r.explicit)&&void 0!==t&&null!==(t=t.exclude)&&void 0!==t&&t.includes(e))})),label:function(e){return n.qMeasureInfo[e.datum.value].qFallbackTitle},explicit:f,type:\"categorical-color\"};u[s]=b}}return u}({hc:r.hc,coloring:i(),key:r.key,source:r.source,picasso:e.picasso}),o.scales},color:function(){return o.color=o.color||function(e){var t=e.coloring,n=e.scales,r=e.key,o=Ye(r),i=Ye(\"\".concat(r,\"IsAnOther\")),a=function(e,t){var r=e.fieldType,a=e.invalid,l=e.mode,u=e.nil,c=e.others,s=e.primary,f=e.type;return a?function(e){return Ue(e)||i(e)?c:u}:n[t]?function(e){return Ue(e)?c:$e(e)||-2===o(e)&&\"dimension\"===r||\"NaN\"===o(e)?u:i(e)?c:e.resources.scale(t)(o(e))||c}:\"constant\"===l?function(e){return Ue(e)||i(e)?c:$e(e)?u:s}:\"color\"===f?function(e){return Ue(e)||i(e)?c:$e(e)?u:o(e)||c}:null},l=a(t,r);if(t.measureOverrides){var u=Ye(\"\".concat(r,\"MeasureIdx\")),c=t.measureOverrides.map((function(e){return e&&a(e)}));return function(e){var t=u(e);return c[t]?c[t](e):l(e)}}return l}({coloring:i(),scales:this.scales(),key:r.key}),o.color},datumProps:function(e){return function(e){var t,n,r=e.hc,o=e.coloring,i=e.scales,l=e.key,u=e.addMeasureIx,c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,s=l,f=o.nil;\"field\"===o.mode&&o.field?t=o.field:i[l]&&\"field\"===o.mode&&(t=i[l].data.field||o.field),t?(n={field:t,reduce:\"first\"},\"color\"===o.type&&(n.value=function(e){return\"NaN\"!==e.qNum?et(e.qNum):e.qText&&$(e.qText)?e.qText:f})):\"dimension\"===o.mode?n=void 0!==o.field?o.field:r.qDimensionInfo.length-1:\"measure\"===o.mode&&(n=c);var d=a({},s,n);return r.qDimensionInfo.length>1&&(d[\"\".concat(s,\"IsAnOther\")]={fields:r.qDimensionInfo.map((function(e,t){return{field:\"qDimensionInfo/\".concat(t)}})),value:function(e){return-1!==e.indexOf(-3)}}),u&&(d[\"\".concat(s,\"MeasureIdx\")]=c),d}({coloring:this.settingsForMeasure(e),scales:this.scales(),key:r.key,hc:r.hc,addMeasureIx:i().measureOverrides},e)},data:function(){var e=i(),t={key:\"dummy\",data:[[\"field\"],[\"a\"]]};return e.legendDataset?[t,{type:\"q\",key:\"attrDim\",data:e.legendDataset.raw(),config:{localeInfo:r.localeInfo}}]:[t]},legend:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.eventName,n=e.key,o=e.viewState,a=e.chart,l=e.rtl,u=e.styleReference,c=void 0===u?\"object.legend\":u,s=e.styleOverrides,f=e.settings,d=void 0===f?{}:f,p=e.style,h=void 0===p?{}:p,m=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Qe({eventName:t,key:n,rtl:l,viewState:o,chart:a,styleReference:c,styleOverrides:s,settings:d,style:h},{legendProps:r.legendProps,scaleKey:r.key,coloring:i(),theme:r.theme,hc:r.hc,scales:this.scales()},m)}};return l}var nt=function(e){return e.baseColor||e.coloring&&e.coloring.baseColor};function rt(e){var t=e.qHyperCube,n=t.qDimensionInfo,r=t.qMeasureInfo,o=n.some(nt),i=r.some(nt),a=e.color.useBaseColors;return\"measure\"===a&&!i||\"dimension\"===a&&!o?\"off\":a}function ot(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t(t(t({},e),n),{},{colorProps:t(t({},e.colorProps),n.colorProps||{})});return r}var it=function(e){return e.baseColor||e.coloring&&e.coloring.baseColor};function at(e){var t,n=e.qHyperCube.qDimensionInfo.some(it),r=e.qHyperCube.qMeasureInfo.some(it),o=n?\"dimension\":void 0;return{mode:\"primary\",useBaseColors:null!==(t=null!=o?o:r?\"measure\":void 0)&&void 0!==t?t:\"off\",paletteColor:null}}var lt=function(){};function ut(e){var n,r,o,i,a=e.picasso,l=e.model,u=e.app,c=e.translator,s=e.layoutService,f=void 0===s?void 0:s,d=e.createConfig,p=void 0===d?lt:d,h=e.config,m=void 0===h?{}:h,v=e.custom,y=void 0===v?{}:v,g=m.localeInfo,b=m.key,x=m.theme,q=void 0===x?void 0:x,w=m.auto,M=void 0===w?void 0:w,k=m.definitionPath,S=null==f||null===(n=f.getLayout)||void 0===n?void 0:n.call(f),C={theme:q,key:b,localeInfo:g,layout:S,hc:null==f||null===(r=f.getHyperCube)||void 0===r?void 0:r.call(f),legendProps:null==f||null===(o=f.getLayoutValue)||void 0===o?void 0:o.call(f,\"legend\"),colorProps:t(t({},null==f||null===(i=f.getLayoutValue)||void 0===i?void 0:i.call(f,\"color\")),{},{useBaseColors:S?rt(S):void 0})},D=tt({picasso:a,model:l,app:u,translator:c,auto:M});!1!==M&&D.auto((function(e){return M?M({layout:e,defaultAuto:at}):at(e)}));var I=!1,O={getColor:function(){return D.color()},getPaletteColor:function(e){var t=e.index,n=e.color;return D.resolveUIColor({index:t,color:n})},getData:function(){return D.data()},getDatumProps:function(e){return D.datumProps(e)},getSnapshotData:function(){return D.getSnapshotData(k)},getSettingsForMeasure:function(e){return D.settingsForMeasure(e)},getSettings:function(){return D.settings()},getLegend:function(e,t){return D.legend(e,t)},getScales:function(){return D.scales()},getPalettes:function(){return D.palettes()},isSelectionLocked:function(e){var t=e.isMeasureSelectionLocked;return D.isSelectionLocked({isMeasureSelectionLocked:t})},isInitialized:function(){return I},custom:t({},y),initialize:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.createConfig,n=void 0===t?p:t,r=n({getUseBaseColors:rt}),o=ot(C,r);D.config(o);var i=D.getAuxiliarySettings(k).then((function(){I=!0}));return i}};return O}function ct(e){var t=e.chart,n=e.logicalSize;if(n)return n;var r=t?t.element.getBoundingClientRect():{};return{width:r.width,height:r.height}}var st=[{key:\"FULL\",size:{width:550,height:450}},{key:\"MEDIUM\",size:{width:400,height:220}},{key:\"SMALL\",size:{width:300,height:150}},{key:\"XSMALL\",size:{width:150,height:75}}];function ft(e){var t=e.width,n=e.height,r=st.filter((function(e){return t>=e.size.width&&n>=e.size.height})).shift();return r?r.key:\"SPARK\"}var dt={left:\"right\",right:\"left\",top:\"bottom\",bottom:\"top\",near:\"far\",far:\"near\"};function pt(e){var t=e.orientation,n=e.dock,r=e.btt,o=e.rtl,i=\"horizontal\"===t?function(e){return\"bottom\"===e||\"near\"===e?\"bottom\":\"top\"}(n):function(e,t){var n=\"left\"===e||\"near\"===e?\"left\":\"right\";return t?dt[n]:n}(n,o),a=function(e,t,n){return\"vertical\"===e?t?\"bottom\":\"top\":n?\"right\":\"left\"}(t,r,o);return{current:i,opposite:dt[i],start:a,end:dt[a]}}function ht(e){var n=e.chart,r=e.layoutService,o=e.config,i=void 0===o?{}:o,a=i.logicalSize,l=void 0!==a&&a,u=i.rtl,c=void 0!==u&&u,s={chart:{size:void 0,mode:void 0},x:{dock:void 0,opposite:void 0,size:void 0},y:{dock:void 0,opposite:void 0,size:void 0}},f={type:\"x-y\",config:t({},i),meta:s,update:function(e){s.chart.size={width:e.width,height:e.height},s.chart.mode=ft(e);var t=pt({orientation:\"horizontal\",dock:r.getLayoutValue(\"xAxis.dock\"),btt:!1,rtl:c}),n=t.current,o=t.opposite;s.x.dock=n,s.x.opposite=o,s.x.size=e.width;var i=pt({orientation:\"vertical\",dock:r.getLayoutValue(\"yAxis.dock\"),btt:!0,rtl:c}),a=i.current,l=i.opposite;s.y.dock=a,s.y.opposite=l,s.y.size=e.height}};return f.update(ct({chart:n,logicalSize:l})),f}var mt=\"vertical\",vt=\"horizontal\";function yt(e){var n=e.chart,r=e.layoutService,o=e.config,i=void 0===o?{}:o,a=e.typeConfig,l=void 0===a?{}:a,u=i.logicalSize,c=void 0!==u&&u,s=i.rtl,f=void 0!==s&&s,d=l.fallback===mt?mt:vt,p=!!l.invert,h=l.measureAxes||[{ref:\"measureAxis\",name:\"minor\"}],m={chart:{orientation:void 0,size:void 0,mode:void 0},major:{orientation:void 0,dock:void 0,opposite:void 0,size:void 0}},v={type:\"major-minor\",config:t({},i),meta:m,update:function(e){m.chart.orientation=r.getLayoutValue(\"orientation\",d),m.chart.size={width:e.width,height:e.height},m.chart.mode=ft(e),m.major.orientation=function(e){var t=e.layoutService,n=e.chartOrientation,r=e.invert;return t.meta.isContinuous?vt:r?n===mt?vt:mt:n}({layoutService:r,chartOrientation:m.chart.orientation,invert:p});var t=pt({orientation:m.major.orientation,dock:r.getLayoutValue(\"dimensionAxis.dock\"),btt:!1,rtl:f}),n=t.current,o=t.opposite;m.major.dock=n,m.major.opposite=o,m.major.size=m.major.orientation===mt?e.height:e.width,h.forEach((function(t){var n={};n.orientation=m.major.orientation===mt?vt:mt;var o=pt({orientation:n.orientation,dock:r.getLayoutValue(\"\".concat(t.ref,\".dock\")),btt:!0,rtl:f}),i=o.current,a=o.opposite,l=o.start,u=o.end;n.dock=i,n.opposite=a,n.start=l,n.end=u,n.size=n.orientation===mt?e.height:e.width,m[t.name]=n}))}};return v.update(ct({chart:n,logicalSize:c})),v}function gt(e){var t=e.chart,n=e.layoutService,r=e.config,o=void 0===r?{}:r,i=e.typeConfig,a=void 0===i?{}:i;return(\"x-y\"===a.type?ht:yt)({chart:t,layoutService:n,config:o,typeConfig:a})}function bt(e,t,n){if(void 0===e||void 0===t)return n;for(var r=t.split(\".\"),o=e,i=0;i<r.length;++i){var a=r[i];if(void 0===o[a])return n;o=o[a]}return o}var xt=[\"__proto__\",\"constructor\"];function qt(e,t,n){if(void 0!==e&&void 0!==t){var r=t.split(\".\"),o=r[r.length-1];if(!xt.some((function(e){return r.includes(e)}))){for(var i=e,a=0;a<r.length-1;++a){var l=r[a];void 0===i[l]&&(i[l]=Number.isNaN(+r[a+1])?{}:[]),i=i[l]}void 0!==n?i[o]=n:delete i[o]}}}function wt(){var e={};return{get:function(t){return e[t]},set:function(t,n){return e[t]=n,n},has:function(t){return t in e},remove:function(t){delete e[t]},empty:function(){e={}}}}function Mt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){return e},n=wt();return function(r){var o=t(r);return n.has(o)?n.get(o):n.set(o,e(r))}}function kt(e){var n=t({},e),r={},o={},i=!1,a={get:function(e){return n[e]},set:function(e,t){var a=n[e];!i&&r[e]?n[e]=r[e](t,a):n[e]=t,!i&&o[e]&&o[e](n[e],a)},preventSet:function(e,t){i=!0,a.set(e,t),i=!1},intercept:function(e,t){r[e]=t},onChanged:function(e,t){o[e]=t}};return a}function St(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50;return function(){for(var r=this,o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];var l=function(){return e.apply(r,i)};clearTimeout(t),t=setTimeout(l,n)}}function Ct(e){var t,n,r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,i=0;return function(){t=this;for(var a=arguments.length,l=new Array(a),u=0;u<a;u++)l[u]=arguments[u];n=l;var c=Date.now()-i,s=function(){i=Date.now(),r=0,e.apply(t,n)};r||(c>=o?s():r=setTimeout(s,o-c))}}var Dt={ERROR_CODES:[7005],DIMENSION:\"qDimensionInfo\",MEASURE:\"qMeasureInfo\"},It=function(e,t){return e[t].reduce((function(e,t,n){var r;return(r=t,Dt.ERROR_CODES.some((function(e){var t;return e===(null===(t=r.qError)||void 0===t?void 0:t.qErrorCode)})))?e.filtered.push(n):e.reduced.push(t),e}),{reduced:[],filtered:[]})};function Ot(e){var t;return((null==e||null===(t=e.qHyperCube)||void 0===t?void 0:t.qDimensionInfo)||[]).map((function(e){var t,n=null===(t=e.qCardinalities)||void 0===t?void 0:t.qHypercubeCardinal;if(n)return n;var r=e.qStateCounts||{},o=r.qLocked,i=void 0===o?0:o,a=r.qOption,l=void 0===a?0:a,u=r.qSelected;return i+l+(void 0===u?0:u)}))}function Et(e){switch(e.qHyperCube.qMode){case\"S\":return function(e){var t=e.qHyperCube.qSize;return{refs:{dataPages:\"qHyperCube.qDataPages\"},size:{x:t.qcx,y:t.qcy,dimensions:Ot(e)}}}(e);case\"K\":return function(e){var t=Ot(e);return{refs:{dataPages:\"qHyperCube.qStackedDataPages\"},size:{x:e.qHyperCube.qSize.qcx,y:t[0],dimensions:t}}}(e);case\"T\":return function(e){var t=Ot(e);return{refs:{dataPages:\"qHyperCube.qTreeDataPages\"},size:{x:e.qHyperCube.qSize.qcx,y:t[0],dimensions:t}}}(e);default:throw new Error(\"Mode not supported\")}}function At(e){var n=e.source,r=e.metaAdditionsFn,o=e.experimental,i=void 0===o?{filter:!1}:o,a=w(!0,{},n),l=i.filter?function(e){var t=e.qHyperCube,n=It(t,Dt.DIMENSION),r=n.reduced,o=n.filtered;t[Dt.DIMENSION]=r;var i=It(t,Dt.MEASURE),a=i.reduced,l=i.filtered;return t[Dt.MEASURE]=a,{dimensions:o,measures:l}}(a):{dimensions:[],measures:[]},u=Et(a),c=function(){var e=function(e){var n=e.layout,r=e.additionsFn,o=void 0===r?function(){return{}}:r,i=e.additionsProps,a=void 0===i?{}:i,l=n.qHyperCube,u=l.qDimensionInfo,c=l.qMeasureInfo,s=l.qMode,f=u.length,d=c.length,p=t({mode:{S:\"S\"===s,P:\"P\"===s,K:\"K\"===s,T:\"T\"===s},dimensionCount:f,measureCount:d,hasMultipleDimensions:f>1,hasMultipleMeasures:d>1,isOneDimensional:1===f,isTwoDimensional:2===f},a);return t(t({},p),o({layout:n,meta:p}))}({layout:a,additionsFn:r,additionsProps:{size:u.size}});return e.filteredFields=l,e},s={refs:t({},u.refs),meta:c(),getLayout:function(){return a},getLayoutValue:function(e,t){return bt(a,e,t)},setLayoutValue:function(e,t){qt(a,e,t),u=Et(a),s.meta=c()},getHyperCube:function(){return a.qHyperCube},getHyperCubeValue:function(e,t){return bt(a.qHyperCube,e,t)},setHyperCubeValue:function(e,t){qt(a.qHyperCube,e,t),u=Et(a),s.meta=c()},getDataPages:function(){return bt(a,u.refs.dataPages)},setDataPages:function(e){qt(a,u.refs.dataPages,e),s.meta=c()}};return s}function Nt(e){var t=e.originalArray,n=e.newArray,r=e.matchKey;return Array.isArray(t)&&t.length?(n.forEach((function(e){var n=-1;t.some((function(t,o){return t[r]&&t[r]===e[r]&&(n=o),n})),n>-1?t[n]=e:t.push(e)})),t):n}function Lt(e){var o=e.picassoInstance,a=e.plugins,l=e.pluginArgs,s=void 0===l?{}:l,f={initialized:!1,definitions:[]};return{initialize:function(){return i(n().mark((function e(){var l,u,d,p;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!f.initialized){e.next=2;break}return e.abrupt(\"return\");case 2:return u=Promise.all(a.filter((function(e){return\"custom-component\"===e.info.type})).map(function(){var e=i(n().mark((function e(i){var a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i.info.componentName){e.next=2;break}throw new Error(\"plugin-service: Custom component is missing componentName\");case 2:return e.next=4,i.fn(t({},s));case 4:if(\"object\"===r(a=e.sent)){e.next=7;break}throw new Error(\"plugin-service: Custom component needs to be an object\");case 7:o.component(i.info.componentName,a);case 8:case\"end\":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())),d=Promise.all(a.filter((function(e){return\"component-definition\"===e.info.type})).map((function(e){return e.fn(t({},s))}))),e.next=6,Promise.all([u,d]);case 6:p=e.sent,f.initialized=!0,(l=f.definitions).push.apply(l,c(p[1]));case 9:case\"end\":return e.stop()}}),e)})))()},extendComponents:function(e){return f.initialized?(f.definitions.filter(Boolean).forEach((function(t){var n=u(e.filter((function(e){return e.key&&e.key===t.key})),1)[0];if(n){var o=w(!0,{},n.brush);w(!0,n,t),t.brush&&(n.brush=function(e,t){return\"object\"===r(e)&&Object.keys(e).length?(Array.isArray(t.consume)&&(e.consume=Nt({originalArray:e.consume,newArray:t.consume,matchKey:\"context\"})),Array.isArray(t.trigger)&&(e.trigger=Nt({originalArray:e.trigger,newArray:t.trigger,matchKey:\"on\"})),e):t}(o,t.brush))}else e.push(t)})),e):e}}}function Tt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Pt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Tt(Object(n),!0).forEach((function(t){jt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Tt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function jt(e,t,n){return(t=function(e){var t=function(e,t){if(\"object\"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||\"default\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ft=Object.prototype.hasOwnProperty,Ht=Object.prototype.toString,Rt=Object.defineProperty,zt=Object.getOwnPropertyDescriptor,Vt=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===Ht.call(e)},_t=function(e){if(!e||\"[object Object]\"!==Ht.call(e))return!1;var t,n=Ft.call(e,\"constructor\"),r=e.constructor&&e.constructor.prototype&&Ft.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!r)return!1;for(t in e);return void 0===t||Ft.call(e,t)},Bt=function(e,t){Rt&&\"__proto__\"===t.name?Rt(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},Yt=function(e,t){if(\"__proto__\"===t){if(!Ft.call(e,t))return;if(zt)return zt(e,t).value}return e[t]},$t=function e(){var t,n,r,o,i,a,l=arguments[0],u=1,c=arguments.length,s=!1;for(\"boolean\"==typeof l&&(s=l,l=arguments[1]||{},u=2),(null==l||\"object\"!=typeof l&&\"function\"!=typeof l)&&(l={});u<c;++u)if(null!=(t=arguments[u]))for(n in t)r=Yt(l,n),l!==(o=Yt(t,n))&&(s&&o&&(_t(o)||(i=Vt(o)))?(i?(i=!1,a=r&&Vt(r)?r:[]):a=r&&_t(r)?r:{},Bt(l,{name:n,newValue:e(s,a,o)})):void 0!==o&&Bt(l,{name:n,newValue:o}));return l};function Ut(e,t,n,r){if(!e)return-1;const o=n.cache,i=e.origin?e.origin():null;i&&(e=i);let a=o.fields.indexOf(e),l=-1,u=-1;if(-1===a)for(let t=0;t<o.wrappedFields.length;t++)if(u=o.wrappedFields[t].attrDims.map((e=>e.instance)).indexOf(e),l=o.wrappedFields[t].attrExps.map((e=>e.instance)).indexOf(e),-1!==u||-1!==l){a=t;break}if(Array.isArray(r)&&r.some(((e,t)=>e!==t))){const e=r.indexOf(a);-1!==e&&(a=e)}return a-=t.qArea.qLeft,a<0||a>=t.qArea.qWidth?-1:u>=0?e=>e[a].qAttrDims.qValues[u]:l>=0?e=>e[a].qAttrExps.qValues[l]:e=>e[a]}function Kt(e,t,n){let{key:r}=n;const o={value:\"function\"==typeof e.value?e.value(t):void 0!==e.value?e.value:t};return o.label=\"function\"==typeof e.label?e.label(t):void 0!==e.label?String(e.label):String(o.value),e.field&&(o.source={key:r,field:e.field.key()}),o}function Gt(e){let{cache:t,f:n,mainCell:r,p:o,prop:i,page:a,rowIdx:l,row:u,sourceKey:c,target:s,targetProp:f,columnOrder:d}=e,p=r;if(o.field&&o.field!==n){const e=Ut(o.field,a,{cache:t},d);if(-1===e)return;p=$t({qRow:l},e(u))}s[f]=Kt(o,p,{key:c})}function Wt(e,t,n,r){const o=Array.isArray(e)?e:[e];let i=[];for(let e=0;e<o.length;e++)if(void 0!==o[e].field){const a=t.raw(),l=t.key(),u=\"object\"==typeof o[e].field?o[e].field:t.field(o[e].field),{props:c,main:s}=r.normalizeConfig(o[e],t),f=Object.keys(c),d=!!o[e].trackBy,p=typeof o[e].trackBy,h={},m=[],v=[];for(let t=0;t<a.qDataPages.length;t++){const i=Ut(u,a.qDataPages[t],{cache:n},a.qColumnOrder);if(-1!==i)for(let y=0;y<a.qDataPages[t].qMatrix.length;y++){const g=a.qDataPages[t].qArea.qTop+y,b=$t({qRow:g},i(a.qDataPages[t].qMatrix[y])),x=Kt(s,b,{key:l});if(!(s.filter&&!s.filter(b))){for(let e=0;e<f.length;e++){const r=c[f[e]];let o=r.fields||[r];r.fields&&(x[f[e]]=[]);for(let i=0;i<o.length;i++)Gt({cache:n,f:u,mainCell:b,p:o[i],prop:f[e],props:c,page:a.qDataPages[t],rowIdx:g,row:a.qDataPages[t].qMatrix[y],sourceKey:l,target:r.fields?x[f[e]]:x,targetProp:r.fields?i:f[e],columnOrder:a.qColumnOrder});if(r.fields){const t=x[f[e]].map((e=>e.value)),n=x[f[e]].map((e=>e.label));x[f[e]]={value:\"function\"==typeof r.value?r.value(t):void 0!==r.value?r.value:t,label:\"function\"==typeof r.label?r.label(n):void 0!==r.label?String(r.label):String(x[f[e]].value)}}}d&&r.track({cfg:o[e],itemData:b,obj:x,target:m,tracker:h,trackType:p}),v.push(x)}}}const y=d?r.collect(m,{main:s,propsArr:f,props:c}):v;i=[...i,...y]}return i}function Xt(e){var t=0,n=e.children,r=n&&n.length;if(r)for(;--r>=0;)t+=n[r].value;else t=1;e.value=t}function Zt(e,t){e instanceof Map?(e=[void 0,e],void 0===t&&(t=Qt)):void 0===t&&(t=Jt);for(var n,r,o,i,a,l=new nn(e),u=[l];n=u.pop();)if((o=t(n.data))&&(a=(o=Array.from(o)).length))for(n.children=o,i=a-1;i>=0;--i)u.push(r=o[i]=new nn(o[i])),r.parent=n,r.depth=n.depth+1;return l.eachBefore(tn)}function Jt(e){return e.children}function Qt(e){return Array.isArray(e)?e[1]:null}function en(e){void 0!==e.data.value&&(e.value=e.data.value),e.data=e.data.data}function tn(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function nn(e){this.data=e,this.depth=this.height=0,this.parent=null}function rn(e){return null==e?null:function(e){if(\"function\"!=typeof e)throw new Error;return e}(e)}nn.prototype=Zt.prototype={constructor:nn,count:function(){return this.eachAfter(Xt)},each:function(e,t){let n=-1;for(const r of this)e.call(t,r,++n,this);return this},eachAfter:function(e,t){for(var n,r,o,i=this,a=[i],l=[],u=-1;i=a.pop();)if(l.push(i),n=i.children)for(r=0,o=n.length;r<o;++r)a.push(n[r]);for(;i=l.pop();)e.call(t,i,++u,this);return this},eachBefore:function(e,t){for(var n,r,o=this,i=[o],a=-1;o=i.pop();)if(e.call(t,o,++a,this),n=o.children)for(r=n.length-1;r>=0;--r)i.push(n[r]);return this},find:function(e,t){let n=-1;for(const r of this)if(e.call(t,r,++n,this))return r},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,r=t.children,o=r&&r.length;--o>=0;)n+=r[o].value;t.value=n}))},sort:function(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))},path:function(e){for(var t=this,n=function(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),o=null;e=n.pop(),t=r.pop();for(;e===t;)o=e,e=n.pop(),t=r.pop();return o}(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var o=r.length;e!==n;)r.splice(o,0,e),e=e.parent;return r},ancestors:function(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t},descendants:function(){return Array.from(this)},leaves:function(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e},links:function(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t},copy:function(){return Zt(this).eachBefore(en)},[Symbol.iterator]:function*(){var e,t,n,r,o=this,i=[o];do{for(e=i.reverse(),i=[];o=e.pop();)if(yield o,t=o.children)for(n=0,r=t.length;n<r;++n)i.push(t[n])}while(i.length)}};var on={depth:-1},an={},ln={};function un(e){return e.id}function cn(e){return e.parentId}function sn(){var e,t=un,n=cn;function r(r){var o,i,a,l,u,c,s,f,d=Array.from(r),p=t,h=n,m=new Map;if(null!=e){const t=d.map(((t,n)=>function(e){let t=(e=`${e}`).length;dn(e,t-1)&&!dn(e,t-2)&&(e=e.slice(0,-1));return\"/\"===e[0]?e:`/${e}`}(e(t,n,r)))),n=t.map(fn),o=new Set(t).add(\"\");for(const e of n)o.has(e)||(o.add(e),t.push(e),n.push(fn(e)),d.push(ln));p=(e,n)=>t[n],h=(e,t)=>n[t]}for(a=0,o=d.length;a<o;++a)i=d[a],c=d[a]=new nn(i),null!=(s=p(i,a,r))&&(s+=\"\")&&(f=c.id=s,m.set(f,m.has(f)?an:c)),null!=(s=h(i,a,r))&&(s+=\"\")&&(c.parent=s);for(a=0;a<o;++a)if(s=(c=d[a]).parent){if(!(u=m.get(s)))throw new Error(\"missing: \"+s);if(u===an)throw new Error(\"ambiguous: \"+s);u.children?u.children.push(c):u.children=[c],c.parent=u}else{if(l)throw new Error(\"multiple roots\");l=c}if(!l)throw new Error(\"no root\");if(null!=e){for(;l.data===ln&&1===l.children.length;)l=l.children[0],--o;for(let e=d.length-1;e>=0&&(c=d[e],c.data===ln);--e)c.data=null}if(l.parent=on,l.eachBefore((function(e){e.depth=e.parent.depth+1,--o})).eachBefore(tn),l.parent=null,o>0)throw new Error(\"cycle\");return l}return r.id=function(e){return arguments.length?(t=rn(e),r):t},r.parentId=function(e){return arguments.length?(n=rn(e),r):n},r.path=function(t){return arguments.length?(e=rn(t),r):e},r}function fn(e){let t=e.length;if(t<2)return\"\";for(;--t>1&&!dn(e,t););return e.slice(0,t)}function dn(e,t){if(\"/\"===e[t]){let n=0;for(;t>0&&\"\\\\\"===e[--t];)++n;if(0==(1&n))return!0}return!1}function pn(e,t){\"/\"===e.charAt(0)&&(e=e.substring(1));const n=e.split(\"/\");let r,o=t;for(let e=0;e<n.length;e++){if(\"*\"===n[e]&&Array.isArray(o)){const t=[];r=n.slice(e+1).join(\"/\");for(let e=0;e<o.length;e++){let n=pn(r,o[e]);Array.isArray(n)?t.push(...n):t.push(n)}return t}if(!n[e]&&Array.isArray(o)){const t=new Array(o.length);r=n.slice(e+1).join(\"/\");for(let e=0;e<o.length;e++)t[e]=pn(r,o[e]);return t}n[e]in o&&(o=o[n[e]])}return o}function hn(e,t,n){let r=[];if(!e||!e.length)return r;if(t<=0){const t=n>=0?[e[n]]:e;r=[...r,...t]}else for(let o=0;o<e.length;o++)e[o].children&&e[o].children.length&&(r=[...r,...hn(e[o].children,t-1,n)]);return r}function mn(e,t,n){if(e===t)return e=>e;if(e>t){const n=Math.max(0,Math.min(100,e-t));return e=>{let t=e;for(let e=0;e<n;++e)t=t.parent;return t}}if(t>e){const r=Math.max(0,Math.min(100,t-e));return e=>hn(e.children,r-1,n)}return!1}function vn(e,t){let{cache:n}=t;if(\"number\"==typeof e)return n.fields[e];const r=n.allFields;if(\"function\"==typeof e){for(let t=0;t<r.length;t++)if(e(r[t]))return r[t];return!1}if(\"string\"==typeof e){for(let t=0;t<r.length;t++)if(r[t].key()===e||r[t].title()===e)return r[t]}else if(e&&-1!==r.indexOf(e))return e;throw Error(\"Field not found: \".concat(e))}const yn=/^qDimensionInfo(?:\\/(\\d+))?/,gn=/^\\/?qMeasureInfo\\/(\\d+)/,bn=/\\/qAttrExprInfo\\/(\\d+)/,xn=/\\/qAttrDimInfo\\/(\\d+)/;function qn(e){return(e.qColumnOrder&&e.qColumnOrder.length?e.qColumnOrder:e.qDimensionInfo.map(((e,t)=>t))).filter((t=>t<e.qDimensionInfo.length))}function wn(e,t){let{cube:n}=t;if(!e)return-1;let r=e.origin&&e.origin()?e.origin().key():e.key(),o=!1,i=-1,a=-1,l=-1,u=-1,c=-1,s=-1,f=r;const d=n.qEffectiveInterColumnSortOrder,p=qn(n);return yn.test(f)&&(o=!0,i=+yn.exec(f)[1],f=r.replace(yn,\"\")),gn.test(f)&&(\"K\"===n.qMode?c=+gn.exec(f)[1]:d&&-1!==d.indexOf(-1)?(c=+gn.exec(f)[1],s=0):s=+gn.exec(f)[1],f=f.replace(gn,\"\")),f&&(xn.exec(f)?l=+xn.exec(f)[1]:bn.exec(f)&&(a=+bn.exec(f)[1])),u=o?\"S\"===n.qMode?p[i]:d?d.indexOf(i):i:d&&-1!==d.indexOf(-1)?d.indexOf(-1):n.qDimensionInfo.length-(\"K\"===n.qMode?0:1),{fieldDepth:u+1,pseudoMeasureIndex:c,measureIdx:s,attrDimIdx:l,attrIdx:a}}function Mn(e,t){let n,r,o=mn(e.fieldDepth,t.fieldDepth,t.pseudoMeasureIndex);return n=t.measureIdx>=0?e=>e.data.qValues[t.measureIdx]:e=>e.data,t.attrDimIdx>=0?r=e=>{var n;return null==e||null===(n=e.qAttrDims)||void 0===n?void 0:n.qValues[t.attrDimIdx]}:t.attrIdx>=0&&(r=e=>{var n;return null==e||null===(n=e.qAttrExps)||void 0===n?void 0:n.qValues[t.attrIdx]}),{nodeFn:o,attrFn:r,valueFn:n}}function kn(e,t,n){let{key:r}=n;const o={value:\"function\"==typeof e.value?e.value(t):void 0!==e.value?e.value:t};return o.label=\"function\"==typeof e.label?e.label(t):void 0!==e.label?String(e.label):String(o.value),e.field&&(o.source={key:r,field:e.field.key()}),o}function Sn(e){let{propsArr:t,props:n,item:r,itemData:o,ret:i,sourceKey:a}=e;for(let e=0;e<t.length;e++){const l=n[t[e]],u=l.fields||[l];let c,s;l.fields&&(c=[],s=[]);for(let n=0;n<u.length;n++){const f=u[n];let d,p,h,m,v,y;if(\"primitive\"===f.type?(h=f.value,y=String(f.value)):(\"function\"==typeof f.value&&(d=e=>f.value(e,r)),\"function\"==typeof f.label&&(p=e=>f.label(e,r)),f.accessor?(m=f.accessor(r),Array.isArray(m)?(v=m.map(f.valueAccessor),f.attrAccessor&&(v=v.map(f.attrAccessor)),d&&(h=v.map(d),d=null),p&&(y=v.map(p),p=null),h=f.reduce?f.reduce(h):h,y=f.reduceLabel?f.reduceLabel(y,h):String(h)):(h=f.attrAccessor?f.attrAccessor(f.valueAccessor(m)):f.valueAccessor(m),y=h)):(h=o,y=o)),l.fields){const e=d?d(h):h;c.push(e),s.push(p&&null!=y?p(y):null!=y?y:String(e))}else{const n=d?d(h):h;i[t[e]]={value:n,label:p?p(y):null!=y?y:String(n)},f.field&&(i[t[e]].source={field:f.field.key(),key:a})}}c&&(i[t[e]]={value:\"function\"==typeof l.value?l.value(c,r):c,label:\"function\"==typeof l.label?l.label(s,r):s})}}const Cn=(e,t,n)=>{const r=\"K\"===e.qMode?\"/qStackedDataPages/*/qData\":\"/qTreeDataPages/*\",o=\"K\"===e.qMode?\"qSubNodes\":\"qNodes\",i=pn(r,e);return i&&i[0]?(t.tree=Zt(i[0],n.children||(e=>e[o])),t.tree):null};function Dn(e){const t=e.raw().qDataPages.length?e.raw().qDataPages[0].qMatrix:[],n=function(e){const t=e.raw().qColumnOrder,n=e.fields();return t&&t.length===n.length?t:n.map(((e,t)=>t))}(e),r=e.fields(),o=e.fields().filter((e=>\"dimension\"===e.type())).map((e=>n.indexOf(r.indexOf(e)))),i=e.fields().filter((e=>\"measure\"===e.type())).map((e=>n.indexOf(r.indexOf(e)))),a={__root:{__id:\"__root\",qValues:[]}};for(let e=0;e<t.length;e++){const n=t[e];let r=\"__root\",u=!1;for(let e=0;e<o.length;e++){var l;const t=n[o[e]],i=\"\".concat(r,\"__\").concat(null!==(l=t.qElemNumber)&&void 0!==l?l:t.qElemNo);a[i]||(a[i]=Pt({__id:i,__parent:r,qValues:[]},t),u=!0),r=i}if(u)for(let e=0;e<i.length;e++){const t=n[i[e]];a[r].qValues.push(t)}}const u=Object.keys(a).map((e=>a[e]));return sn().id((e=>e.__id)).parentId((e=>e.__parent))(u)}const In=e=>{let{propsArr:t,props:n,cube:r,cache:o,itemDepthObject:i,f:a}=e;for(let e=0;e<t.length;e++){const l=n[t[e]],u=l.fields?l.fields:[l];for(let e=0;e<u.length;e++){const t=u[e];if(t.field!==a){const e=Mn(i,wn(t.field,{cube:r,cache:o}));t.accessor=e.nodeFn,t.valueAccessor=e.valueFn,t.attrAccessor=e.attrFn}}}};function On(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;const o=t.raw(),i=t.key(),a=\"S\"===o.qMode?Dn(t):Cn(o,n,e);if(!a)return null;const l=a.height,u=[];for(let i=0;i<=l;i++){let a=null;if(i>0)if(\"S\"===o.qMode){let e=qn(o)[i-1];a=n.fields[e]}else{let e=o.qEffectiveInterColumnSortOrder[i-1];i>o.qEffectiveInterColumnSortOrder.length&&(e=o.qDimensionInfo.length),a=n.fields[e]}const{props:l,main:c}=r.normalizeConfig(Pt(Pt({},e),{},{field:a?a.key():void 0}),t),s=Object.keys(l);u[i]={propsArr:s,props:l,main:c};const f=a?wn(a,{cube:o,cache:n}):{fieldDepth:0};In({propsArr:s,props:l,cube:o,cache:n,itemDepthObject:f,f:a})}const c=a.copy(),s=c.descendants(),f=a.descendants();for(let e=0;e<f.length;e++){const t=u[f[e].depth].propsArr,n=u[f[e].depth].props,r=u[f[e].depth].main,o=s[e],a=o.data,l=kn(r,a,{key:i});Sn({propsArr:t,props:n,item:o,itemData:a,ret:l,sourceKey:i,isTree:!0}),f[e].data=l}return a}function En(e,t,n,r){const o=Array.isArray(e)?e:[e];let i=[];for(let a=0;a<o.length;a++)if(void 0!==o[a].field){const l=t.raw(),u=t.key();if(!Cn(l,n,e))continue;const c=\"object\"==typeof o[a].field?o[a].field:t.field(o[a].field),{props:s,main:f}=r.normalizeConfig(o[a],t),d=Object.keys(s),p=wn(c,{cube:l,cache:n}),{nodeFn:h,attrFn:m,valueFn:v}=Mn({fieldDepth:0},p);In({propsArr:d,props:s,cube:l,cache:n,itemDepthObject:p,f:c});const y=!!o[a].trackBy,g=typeof o[a].trackBy,b={},x=[],q=h(n.tree),w=[];for(let e=0;e<q.length;e++){const t=q[e],n=m?m(v(t)):v(t);if(f.filter&&!f.filter(n))continue;const i=kn(f,n,{key:u});Sn({propsArr:d,props:s,item:t,itemData:n,ret:i,sourceKey:u}),y&&r.track({cfg:o[a],itemData:n,obj:i,target:x,tracker:b,trackType:g}),w.push(i)}const M=y?r.collect(x,{main:f,propsArr:d,props:s}):w;i=[...i,...M]}return i}\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;var An,Nn,Ln=(An=function(e){\n/*! javascript-number-formatter - v1.1.11 - http://mottie.github.com/javascript-number-formatter/ * © ecava */\ne.exports=function(e,t){if(!e||isNaN(+t))return t;var n,r,o,i,a,l,u,c,s,f,d=e.length,p=e.search(/[0-9\\-\\+#]/),h=p>0?e.substring(0,p):\"\",m=e.split(\"\").reverse().join(\"\"),v=m.search(/[0-9\\-\\+#]/),y=d-v,g=e.substring(y,y+1),b=y+(\".\"===g||\",\"===g?1:0),x=v>0?e.substring(b,d):\"\";if(n=(t=\"-\"===(e=e.substring(p,b)).charAt(0)?-t:+t)<0?t=-t:0,o=(r=e.match(/[^\\d\\-\\+#]/g))&&r[r.length-1]||\".\",i=r&&r[1]&&r[0]||\",\",e=e.split(o),t=+(t=t.toFixed(e[1]&&e[1].length))+\"\",l=e[1]&&e[1].lastIndexOf(\"0\"),(!(c=t.split(\".\"))[1]||c[1]&&c[1].length<=l)&&(t=(+t).toFixed(l+1)),s=e[0].split(i),e[0]=s.join(\"\"),(a=e[0]&&e[0].indexOf(\"0\"))>-1)for(;c[0].length<e[0].length-a;)c[0]=\"0\"+c[0];else 0==+c[0]&&(c[0]=\"\");if((t=t.split(\".\"))[0]=c[0],u=s[1]&&s[s.length-1].length){for(m=\"\",y=(f=t[0]).length%u,d=f.length,b=0;b<d;b++)m+=f.charAt(b),!((b-y+1)%u)&&b<d-u&&(m+=i);t[0]=m}return t[1]=e[1]&&t[1]?o+t[1]:\"\",\"0\"!==(r=t.join(\"\"))&&\"\"!==r||(n=!1),h+(n?\"-\":\"\")+r+x}},An(Nn={exports:{}},Nn.exports),Nn.exports);function Tn(e){return e.replace(/[-[\\]/{}()*+?.\\\\^$|]/g,\"\\\\$&\")}const Pn={3:\"k\",6:\"M\",9:\"G\",12:\"T\",15:\"P\",18:\"E\",21:\"Z\",24:\"Y\",\"-3\":\"m\",\"-6\":\"μ\",\"-9\":\"n\",\"-12\":\"p\",\"-15\":\"f\",\"-18\":\"a\",\"-21\":\"z\",\"-24\":\"y\"},jn=/%\\)?$/,Fn=/^\\(r(0[2-9]|[12]\\d|3[0-6])\\)/i,Hn=/^\\(oct\\)/i,Rn=/^\\(dec\\)/i,zn=/^\\(hex\\)/i,Vn=/^\\(bin\\)/i,_n=/^\\(rom\\)/i,Bn=/^(\\(rom\\)|\\(bin\\)|\\(hex\\)|\\(dec\\)|\\(oct\\)|\\(r(0[2-9]|[12]\\d|3[0-6])\\))/i,Yn=/#|0/g;function $n(e,t,n,r){return e=e.toString(t),n[1]===n[1].toUpperCase()&&(e=e.toUpperCase()),e.length-e.indexOf(\".\")>10&&(e=e.slice(0,e.indexOf(\".\")+11)),e.replace(\".\",r||\".\")}function Un(e,t,n){let r;return Fn.test(t)?e=$n(e,Number(/\\d{2}/.exec(t)[0]),t,n):Hn.test(t)?e=$n(e,8,t,n):Rn.test(t)?e=$n(e,10,t,n):zn.test(t)?e=$n(e,16,t,n):Vn.test(t)?e=$n(e,2,t,n):_n.test(t)&&(r=\"\",e<0&&(r=\"-\",e=-e),0===(e=Math.floor(e))?e=\"0\":e<=5e5?(e=function(e,t){let n,r=\"\",o=Number(String(e).slice(-3)),i=(e-o)/1e3,a=[0,1,4,5,9,10,40,50,90,100,400,500,900].reverse(),l=[\"0\",\"I\",\"IV\",\"V\",\"IX\",\"X\",\"XL\",\"L\",\"XC\",\"C\",\"CD\",\"D\",\"CM\"].reverse();for(;o>0;)for(n=0;n<a.length;n++)if(a[n]<=o){r+=l[n],o-=a[n];break}for(n=0;n<i;n++)r=\"M\".concat(r);return t[1]!==t[1].toUpperCase()&&(r=r.toLowerCase()),r}(e,t),e=r+e):e=t+r+e.toExponential(0)),e}function Kn(e,t,n){const r=Tn(e);return n?r:new RegExp(r||\"\",t)}function Gn(e,t,n,r){let o,i,a,l,u,c,s,f,d,p=e.pattern;var h,m;r&&(e.abbreviate=!0),h=t,(m=n)&&(m=Tn(m)),h&&(h=Tn(h)),d=new RegExp(\"(?:[#0]+\".concat(h,\")?[#0]+(?:\").concat(m,\"[#0]+)?\")),a=p.match(d),a=a?a[0]:\"\",l=a?p.substr(0,p.indexOf(a)):p,u=a?p.substring(p.indexOf(a)+a.length):\"\",a||(a=p?\"#\":\"##########\"),t&&t===n&&(o=a.split(n),i=o.pop(),a=o.join(\"\")+n+i,t=\"\"),c=t,t=/,/.test(n)?\"¤\":\",\",c&&(a=a.replace(Kn(c,\"g\"),t)),s=n,n=\".\",s&&(a=a.replace(Kn(s,\"g\"),n)),f=a.match(/#/g),f=f?f.length:0;const v=p.split(s);let y;v[1]&&(y=v[1].match(Yn)),e.prefix=l||\"\",e.postfix=u||\"\",e.pattern=p,e.maxPrecision=y?y.length:2,e.percentage=jn.test(p),e.numericPattern=a||\"\",e.numericRegex=new RegExp(\"\".concat(Kn(t,null,!0),\"|\").concat(Kn(n,null,!0)),\"g\"),e.groupTemp=c,e.decTemp=s,e.t=t,e.d=n,e.temp=f}class Wn{constructor(e,t,n,r,o){this.localeInfo=e,this.pattern=t,this.thousandDelimiter=n||\",\",this.decimalDelimiter=r||\".\",this.type=o||\"numeric\",this.patternSeparator=\";\",this.abbreviations=function(e,t){if(!e||!e.qNumericalAbbreviation)return Pn;const n={};return e.qNumericalAbbreviation.split(t).forEach((e=>{let t=e.split(\":\");2===t.length&&(n[t[0]]=t[1])})),n}(e,this.patternSeparator),this.prepare()}clone(){const e=new Wn(this.localeInfo,this.pattern,this.thousandDelimiter,this.decimalDelimiter,this.type);return e.subtype=this.subtype,e}format(e,t,n,r){return this.prepare(t,n,r),this.formatValue(e)}prepare(e,t,n){let r;if(void 0===e&&(e=this.pattern),void 0===t&&(t=this.thousandDelimiter),void 0===n&&(n=this.decimalDelimiter),!e)return void(this._prepared={pattern:!1});this._prepared={positive:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"},negative:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"},zero:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"}},r=this._prepared,e=e.split(this.patternSeparator),r.positive.pattern=e[0],r.negative.pattern=e[1],r.zero.pattern=e[2],Bn.test(e[0])&&(r.positive.isFunctional=!0),e[1]?Bn.test(e[1])&&(r.negative.isFunctional=!0):r.negative=!1,e[2]?Bn.test(e[2])&&(r.zero.isFunctional=!0):r.zero=!1;const o=\"U\"===this.type;r.positive.isFunctional||Gn(r.positive,t,n,o),r.negative&&!r.negative.isFunctional&&Gn(r.negative,t,n,o),r.zero&&!r.zero.isFunctional&&Gn(r.zero,t,n,o)}formatValue(e){let t,n,r,o,i,a,l,u,c,s=this._prepared,f=\"\",d=\"\",p=e;if(isNaN(e))return\"\".concat(p);if(e=+e,!1===s.pattern)return e.toString();if(0===e&&s.zero)return s=s.zero,s.pattern;if(e<0&&s.negative?(s=s.negative,e=-e):s=s.positive,i=s.d,a=s.t,s.isFunctional)e=Un(e,s.pattern,i);else{if(s.percentage&&(e*=100),s.abbreviate){const t=Object.keys(this.abbreviations).map((e=>parseInt(e,10))).sort(((e,t)=>e-t));let r,o,i=t[0];for(l=0,n=Number(Number(e).toExponential().split(\"e\")[1]);i<=n&&l<t.length;)l++,i=t[l];l>0&&(r=t[l-1]),r&&n>0&&r>0?o=r:(n<0&&r<0||!r)&&(i<0&&i-n<=s.maxPrecision?o=i:r<=n&&!(i>0&&-n<=s.maxPrecision)&&(o=r)),o&&(f=this.abbreviations[o],e/=10**o)}if(r=Math.abs(e),t=s.temp,u=s.numericPattern,c=u.split(i)[1],\"I\"===this.type&&(e=Math.round(e)),o=e,c||\"#\"!==u.slice(-1)[0])if(r>=1e15||r>0&&r<=1e-14)e=r?r.toExponential(15).replace(/\\.?0+(?=e)/,\"\"):\"0\";else{const t=Number(e.toFixed(Math.min(20,c?c.length:0)).split(\".\")[0]);let n=u.split(i)[0];if(n+=i,e=Ln(n,t)||\"0\",c){const t=Math.max(0,Math.min(14,c.length)),n=c.replace(/#+$/,\"\").length;let o=(\"I\"===this.type?0:r%1+1e-15).toFixed(t).slice(2).replace(/0+$/,\"\");for(l=o.length;l<n;l++)o+=\"0\";o&&(e+=i+o)}else 0===t&&(o=0)}else if(r>=10**t||r<1||r<1e-4)0===e?e=\"0\":r<1e-4||r>=1e20?(e=(e=o.toExponential(Math.max(1,Math.min(14,t))-1)).replace(/\\.?0+(?=e)/,\"\"),d=\"\"):(e=e.toPrecision(Math.max(1,Math.min(14,t)))).indexOf(\".\")>=0&&(e=(e=e.replace(e.indexOf(\"e\")<0?/0+$/:/\\.?0+(?=e)/,\"\")).replace(\".\",i));else{for(u+=i,t=Math.max(0,Math.min(20,t-Math.ceil(Math.log(r)/Math.log(10)))),l=0;l<t;l++)u+=\"#\";e=Ln(u,e)}e=e.replace(s.numericRegex,(e=>e===a?s.groupTemp:e===i?s.decTemp:\"\")),o<0&&!/^-/.test(e)&&(e=\"-\".concat(e))}return s.prefix+e+d+f+s.postfix}static getStaticFormatter(){return{prepare(){},formatValue:e=>\"\".concat(e)}}}function Xn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{size:n=5e3,multipleArguments:r=!1,toKey:o=(e=>e)}=t;let i,a,l=Object.create(null),u=Object.create(null),c=0,s=0;return i=r?function(){return a=o(...arguments),i.has(a)?i.get(a):i.set(a,e(...arguments))}:t=>(a=o(t),i.has(a)?i.get(a):i.set(a,e(t))),i.set=(e,t)=>(c>=n&&(delete l[u[s]],delete u[s],c--,s++),l[e]=t,u[c]=e,c++,t),i.get=e=>l[e],i.has=e=>e in l,i.clear=()=>{l=Object.create(null),u=Object.create(null),c=0,s=0},i.size=()=>c,i}function Zn(e,t,n,r,o){const i=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return new Wn(...t)}(o,e,t,n,r),a=Xn(i.formatValue.bind(i),{toKey:e=>isNaN(e)?e:+e});function l(e){return a(e)}return l.format=function(e,t,n,r){return a.clear(),i.format(t,e,n,r)},l.pattern=function(e){return e&&(a.clear(),i.pattern=e,i.prepare()),i.pattern},l}const Jn=\"D\",Qn=\"T\",er=\"TS\",tr=\"IV\",nr=[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",\"Sunday\"],rr=[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sun\"],or=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],ir=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];function ar(e,t){for(let n=e.length;n<t;n++)e=\"0\".concat(e);return e}function lr(e){let t=e.toString().split(\".\");return t[1]?(t=Number(\"0.\".concat(t[1])),t):0}function ur(e,t){let n,r=function(e){const t=e,n=24*lr(t),r=60*lr(n),o=60*lr(r),i=1e3*lr(o);return{d:Math.floor(t),h:Math.floor(n),m:Math.floor(r),s:Math.floor(o),f:Math.round(i)}}(e),o=r.d,i=r.h,a=r.m,l=r.s,u=r.f,c=0;/w+|t+/gi.test(t)&&(n=new Date(Date.UTC(1899,11,30+Math.floor(e),0,0,Math.round(86400*(e-Math.floor(e))))),isNaN(n.getTime())&&(n=null)),/D+/gi.test(t)||(i+=24*o),/h+/gi.test(t)||(a+=60*i),/m+/gi.test(t)||(l+=60*a),/w+/gi.test(t)&&(c=n?n.getDay()-1:0,c<0&&(c=6));let s=\"\";return n&&(s=n.getUTCHours()>=12?\"pm\":\"am\"),{year:0,month:0,day:c,date:o,h:i,m:a,s:l,f:u,t:s}}class cr{constructor(e,t,n){const r=e||{};if(r.qCalendarStrings||(r.qCalendarStrings={qLongDayNames:nr,qDayNames:rr,qLongMonthNames:or,qMonthNames:ir}),this.localeInfo=r,this.locale_days=r.qCalendarStrings.qLongDayNames.slice(),this.locale_days_abbr=r.qCalendarStrings.qDayNames.slice(),this.locale_months=r.qCalendarStrings.qLongMonthNames.slice(),this.locale_months_abbr=r.qCalendarStrings.qMonthNames.slice(),!t){t={[Qn]:r.qTimeFmt||\"hh:mm:ss\",[Jn]:r.qDateFmt||\"YYYY-MM-DD\",[er]:r.qTimestampFmt||\"YYYY-MM-DD hh:mm:ss\"}[n]}this.pattern=t}clone(){const e=new cr(this.localeInfo,this.pattern);return e.subtype=this.subtype,e}format(e,t){t||(t=this.pattern?this.pattern:\"YYYY-MM-DD hh:mm:ss\"),t=t.replace(/\\[.+]|\\[|]/g,\"\");const n=/t+/gi.test(t);let r;e instanceof Date?r=function(e,t){let n=e.getUTCHours(),r=e.getUTCDay()-1;return t&&(n%=12,n||(n=12)),r<0&&(r=6),{year:e.getUTCFullYear(),month:e.getUTCMonth(),day:r,date:e.getUTCDate(),h:n,m:e.getUTCMinutes(),s:e.getUTCSeconds(),f:e.getUTCMilliseconds(),t:e.getUTCHours()>=12?\"pm\":\"am\"}}(e,n):(e<0&&(e=-e,t=\"-\".concat(t)),r=ur(e,t));const o=(i=this,a=r,{\"Y+|y+\":{Y:\"\".concat(Number(\"\".concat(a.year).slice(-2))),YY:ar(\"\".concat(a.year).slice(-2),2),YYY:ar(\"\".concat(a.year).slice(-3),3),def:e=>ar(\"\".concat(a.year),e.length)},\"M+\":{M:a.month+1,MM:ar(\"\".concat(a.month+1),2),MMM:i.locale_months_abbr[a.month],def:i.locale_months[a.month]},\"W+|w+\":{W:a.day,WW:ar(\"\".concat(a.day),2),WWW:i.locale_days_abbr[a.day],def:i.locale_days[a.day]},\"D+|d+\":{D:a.date,def:e=>ar(\"\".concat(a.date),e.length)},\"h+|H+\":{h:a.h,def:e=>ar(\"\".concat(a.h),e.length)},\"m+\":{m:a.m,def:e=>ar(\"\".concat(a.m),e.length)},\"s+|S+\":{s:a.s,def:e=>ar(\"\".concat(a.s),e.length)},\"f+|F+\":{def(e){let t=\"\".concat(a.f),n=e.length-t.length;if(n>0)for(let e=0;e<n;e++)t+=\"0\";else n<0&&(t=t.slice(0,e.length));return t}},\"t{1,2}|T{1,2}\":{def(e){let t=a.t;return e[0].toUpperCase()===e[0]&&(t=t.toUpperCase()),t=t.slice(0,e.length),t}}});var i,a;const l=[];for(const e in o)Object.prototype.hasOwnProperty.call(o,e)&&l.push(e);const u=new RegExp(l.join(\"|\"),\"g\");return t.replace(u,(e=>{let t,n,r;for(n in o)if(Object.prototype.hasOwnProperty.call(o,n)&&(t=new RegExp(n),t.test(e)))break;if(!t)return\"\";for(const t in o[n])if(t===e||t.toLowerCase()===e){r=o[n][t],void 0===r&&(r=o[n][t.toLowerCase()]);break}return void 0===r&&(r=o[n].def),\"function\"==typeof r&&(r=r(e)),r}))}}function sr(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return new cr(...t)}function fr(e){return new Date(Date.UTC(1899,11,30+Math.floor(e),0,0,0,Math.round(864e5*(e-Math.floor(e)))))}function dr(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"TS\",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=sr(n,e,t),o=Xn(r.format.bind(r),{toKey:e=>\"object\"==typeof e&&\"function\"==typeof e.getTime?e.getTime():e});function i(e){return t!==tr?fr(e):e}function a(e){return e=i(e),o(e)}return a.format=function(e,t){return o.clear(),t=i(t),r.format(t,e)},a.locale=function(n){return r=sr(n,e,t),o=Xn(r.format.bind(r),{toKey:e=>\"object\"==typeof e?e.getTime():e}),this},a.qtype=function(e){return void 0!==e&&(t=e,o.clear()),t},a}function pr(e,t){if(e&&e.qNumFormat&&-1!==[\"D\",\"T\",\"TS\",\"IV\"].indexOf(e.qNumFormat.qType))return dr(e.qNumFormat.qFmt,e.qNumFormat.qType,t);let n=\"#\",r=t&&void 0!==t.qThousandSep?t.qThousandSep:\",\",o=t&&void 0!==t.qDecimalSep?t.qDecimalSep:\".\",i=\"U\",a=e&&!!e.qIsAutoFormat;return e&&e.qNumFormat?(n=e.qNumFormat.qFmt||n,r=e.qNumFormat.qThou||r,o=e.qNumFormat.qDec||o,i=e.qNumFormat.qType||i,a=a&&-1===[\"M\"].indexOf(e.qNumFormat.qType)):a=!0,(a||\"U\"===i)&&(n=\"#\".concat(o,\"##\"),i=\"U\"),Zn(n,r,o,i,t)}function hr(){let e,{meta:t,id:n,key:r,localeInfo:o,fieldExtractor:i,value:a,type:l,sourceField:u}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const c=a||(\"dimension\"===l?e=>null==e?void 0:e.qElemNo:e=>null==e?void 0:e.qValue),s=e=>(null==e?void 0:e.qText)||\"\",f=\"dimension\"===l?\"first\":\"avg\",d=pr(t,o),p=\"dimension\"===l?\"first\":(e,t)=>d(t),h={id:()=>n,key:()=>r,raw:()=>t,title:()=>t.qFallbackTitle||t.label,type:()=>l,origin:()=>u,items:()=>(e||(e=i(h)),e),min:()=>t.qMin,max:()=>t.qMax,value:c,label:s,reduce:f,reduceLabel:p,formatter:()=>d,tags:()=>t.qTags};return h}function mr(e,t,n,r,o){return(t[e]||[]).map(((t,i)=>{const a=\"\".concat(r?\"\".concat(r,\"/\"):\"\").concat(e,\"/\").concat(i),l={instance:hr($t({id:\"\".concat(n?\"\".concat(n,\"/\"):\"\").concat(a),key:a,meta:t},o))};return l.attrDims=mr(\"qAttrDimInfo\",t,n,a,$t({},o,{value:e=>null==e?void 0:e.qElemNo,type:\"dimension\"})),l.attrExps=mr(\"qAttrExprInfo\",t,n,a,$t({},o,{value:e=>null==e?void 0:e.qNum,type:\"measure\"})),l.measures=mr(\"qMeasureInfo\",t,n,a,$t({},o,{value:e=>null==e?void 0:e.qValue,type:\"measure\"})),l}))}function vr(){let{key:e,data:t,config:n={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const r={fields:[],wrappedFields:[],allFields:[],virtualFields:[]},o=t;if(!o)throw new Error('Missing \"data\" input');if(!o.qDimensionInfo)throw new Error('The \"data\" input is not recognized as a hypercube');const i=vr.util,a={cache:r,cube:o,localeInfo:n.localeInfo,fieldExtractor:null,pages:null,hierarchy:()=>null,virtualFields:n.virtualFields},l={key:()=>e,raw:()=>o,field:e=>vn(e,a),fields:()=>r.fields.slice(),extract:e=>a.extractor(e,l,r,i),hierarchy:e=>a.hierarchy(e,l,r,i),_cache:()=>r};\"K\"===o.qMode||\"T\"===o.qMode||!o.qMode&&o.qNodesOnDim?(a.extractor=En,a.hierarchy=On,a.pages=\"K\"===o.qMode?o.qStackedDataPages:o.qTreeDataPages):\"S\"===o.qMode?(a.extractor=Wt,a.pages=o.qDataPages,a.hierarchy=On):a.extractor=()=>[],a.fieldExtractor=e=>a.extractor({field:e},l,r,i);const u=\"S\"===o.qMode?e=>e.qElemNumber:void 0,c=\"S\"===o.qMode?e=>e.qNum:void 0;r.wrappedFields.push(...mr(\"qDimensionInfo\",o,e,\"\",$t({},a,{value:u,type:\"dimension\"}))),r.wrappedFields.push(...mr(\"qMeasureInfo\",o,e,\"\",$t({},a,{value:c,type:\"measure\"}))),r.fields=r.wrappedFields.map((e=>e.instance));const s=e=>{e.forEach((e=>{r.allFields.push(e.instance),s(e.measures),s(e.attrDims),s(e.attrExps)}))};return s(r.wrappedFields),(n.virtualFields||[]).forEach((t=>{const n=l.field(t.from),o=hr(Pt({meta:n.raw(),id:\"\".concat(e,\"/\").concat(t.key),sourceField:n,fieldExtractor:e=>a.extractor({field:e},l,r,i),key:t.key,type:n.type(),localeInfo:a.localeInfo,value:n.value},t.override||{}));r.virtualFields.push(o)})),r.allFields.push(...r.virtualFields),l}const yr=[[\"qHyperCube\",\"qHyperCubeDef\"],[\"qTreeData\",\"qTreeDataDef\"],[\"qDimensionInfo\",\"qDimensions\"],[\"qMeasureInfo\",\"qMeasures\"],[\"qAttrDimInfo\",\"qAttributeDimensions\"],[\"qAttrExprInfo\",\"qAttributeExpressions\"]],gr=/\\/qDimensionInfo(?:\\/(\\d+))?/,br=/\\/qMeasureInfo\\/(\\d+)/,xr=/\\/qAttrDimInfo\\/(\\d+)(?:\\/(\\d+))?/,qr=/\\/qAttrExprInfo\\/(\\d+)/,wr=/\\/?qHyperCube/,Mr=/\\/?qTreeData/,kr=e=>\"\".concat(e.substr(0,e.indexOf(\"/qHyperCubeDef\")+14)),Sr=e=>\"\".concat(e.substr(0,e.indexOf(\"/qTreeDataDef\")+13));function Cr(e,t){let n=e,r=-1,o=-1,i=\"\",a=e=>e;wr.test(e)?(i=\"\".concat(n.substr(0,n.indexOf(\"qHyperCube\")+10)),a=kr):Mr.test(e)&&(i=\"\".concat(n.substr(0,n.indexOf(\"qTreeData\")+9)),a=Sr);let l=!0;if(gr.test(e)&&(r=+gr.exec(e)[1]),br.test(e)&&(o=+br.exec(e)[1]),xr.test(e)){o=-1,r=0;const e=+xr.exec(n)[2];isNaN(e)||(r=e,n=n.replace(/\\/\\d+$/,\"\")),l=!1}if(qr.test(e)){const e=o;if(t){o=0;const a=pn(i,t);o+=(a.qMeasureInfo||[]).length,r>-1?(o=a.qDimensionInfo.slice(0,r).reduce(((e,t)=>e+t.qAttrExprInfo.length),o),r=-1):(o=a.qDimensionInfo.reduce(((e,t)=>e+t.qAttrExprInfo.length),o),o=a.qMeasureInfo.slice(0,e).reduce(((e,t)=>e+t.qAttrExprInfo.length),o)),o+=+qr.exec(n)[1]}else r>-1?(r=-1,o=+qr.exec(n)[1]):o+=+qr.exec(n)[1]+1}return yr.forEach((e=>{let[t,r]=e;n=n.replace(t,r)})),l&&(n=a(n)),n&&\"/\"!==n[0]&&(n=\"/\".concat(n)),{measureIdx:o,dimensionIdx:r,path:n}}function Dr(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;const r=t.byCells,o=t.primarySource,i=[],a={},l=e.isActive();let u=!1;if(e.brushes().forEach((e=>{const t=Cr(e.id,n);if(\"range\"===e.type&&t.measureIdx>-1&&t.dimensionIdx>-1){const n=e.brush.ranges();n.length&&(u=!0,a.multiRangeSelectTreeDataValues||(a.multiRangeSelectTreeDataValues={path:t.path,ranges:[]}),n.forEach((e=>a.multiRangeSelectTreeDataValues.ranges.push({qMeasureIx:t.measureIdx,qDimensionIx:t.dimensionIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!0}}))))}else{if(\"range\"===e.type&&t.measureIdx>-1){const n=e.brush.ranges();n.length&&(u=!0,a.rangeSelectHyperCubeValues||(a.rangeSelectHyperCubeValues={path:t.path,ranges:[]}),n.forEach((e=>a.rangeSelectHyperCubeValues.ranges.push({qMeasureIx:t.measureIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!0}}))))}if(\"range\"===e.type&&t.dimensionIdx>-1){const n=e.brush.ranges();n.length&&(u=!0,a.selectHyperCubeContinuousRange||(a.selectHyperCubeContinuousRange={path:t.path,ranges:[]}),n.forEach((e=>a.selectHyperCubeContinuousRange.ranges.push({qDimIx:t.dimensionIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!1}}))))}if(\"value\"===e.type&&t.dimensionIdx>-1)if(r)if(n&&n.qHyperCube&&(\"P\"===n.qHyperCube.qMode||\"T\"===n.qHyperCube.qMode||\"K\"===n.qHyperCube.qMode)){const r=n.qHyperCube,i=r.qNoOfLeftDims,l=r.qEffectiveInterColumnSortOrder.indexOf(t.dimensionIdx);if(a.selectPivotCells||(a.selectPivotCells={path:t.path,cells:[]}),e.id===o||!o){const n=e.brush.values().map((e=>+e)).filter((e=>!isNaN(e)));(0===i||l>=i)&&i>-1?n.forEach((e=>{a.selectPivotCells.cells.push({qType:\"T\",qCol:e,qRow:l-i})})):n.forEach((e=>{a.selectPivotCells.cells.push({qType:\"L\",qCol:t.dimensionIdx,qRow:e})})),u=!!a.selectPivotCells.cells.length}}else a.selectHyperCubeCells||(a.selectHyperCubeCells={path:t.path,cols:[]}),a.selectHyperCubeCells.cols.push(t.dimensionIdx),e.id!==o&&(o||a.selectHyperCubeCells.values)||(a.selectHyperCubeCells.values=e.brush.values().map((e=>+e)).filter((e=>!isNaN(e))),u=!!a.selectHyperCubeCells.values.length);else{const n=e.brush.values().map((e=>+e)).filter((e=>!isNaN(e)));u=!!n.length,i.push({params:[t.path,t.dimensionIdx,n,!1],method:\"selectHyperCubeValues\"})}}})),!u&&l)return[{method:\"resetMadeSelections\",params:[]}];var c;a.rangeSelectHyperCubeValues&&i.push({method:\"rangeSelectHyperCubeValues\",params:[a.rangeSelectHyperCubeValues.path,a.rangeSelectHyperCubeValues.ranges,[],null===(c=t.orMode)||void 0===c||c]});return a.selectHyperCubeContinuousRange&&i.push({method:\"selectHyperCubeContinuousRange\",params:[a.selectHyperCubeContinuousRange.path,a.selectHyperCubeContinuousRange.ranges]}),a.selectHyperCubeCells&&i.push({method:\"selectHyperCubeCells\",params:[a.selectHyperCubeCells.path,a.selectHyperCubeCells.values,a.selectHyperCubeCells.cols]}),a.selectPivotCells&&i.push({method:\"selectPivotCells\",params:[a.selectPivotCells.path,a.selectPivotCells.cells]}),a.multiRangeSelectTreeDataValues&&i.push({method:\"multiRangeSelectTreeDataValues\",params:[a.multiRangeSelectTreeDataValues.path,a.multiRangeSelectTreeDataValues.ranges]}),i}function Ir(e){vr.util=e.data(\"matrix\").util,e.data(\"q\",vr),e.formatter(\"q-number\",Zn),e.formatter(\"q-time\",dr)}function Or(e){var t=bt(e.layout||{},e.path.split(\"/\").join(\".\"));if(!t)return!1;var n=t.qIsOneAndOnlyOne;return void 0!==n&&n}function Er(e){var t,n,r,o=e.selections,i=e.picassoSelections,a=e.layout,l={lockedDimensions:[],singleSelectDimensions:[]};null!=o&&null!==(t=o.isModal)&&void 0!==t&&t.call(o)&&o.confirm(),i.layout(a);var u=(null!==(n=null==a?void 0:a.qHyperCube)&&void 0!==n?n:{}).qDimensionInfo,c=void 0===u?[]:u;return l.lockedDimensions=c.map((function(e){return!!e.qLocked})),l.singleSelectDimensions=c.map((function(e,t){return Or({layout:a,path:\"qHyperCube/qDimensionInfo/\".concat(t)})})),l.singleSelectIndex=function(e){var t,n=((null==e?void 0:e.qHyperCube)||{}).qDimensionInfo,r=void 0===n?[]:n;return null!==(t=r.map((function(e,t){var n;return!(e.qLocked||(null===(n=e.qCardinalities)||void 0===n?void 0:n.qHypercubeCardinal)<=1)&&t})).filter((function(e){return\"number\"==typeof e}))[0])&&void 0!==t?t:Math.max(r.length-1,0)}(a),l.canSelect=0===c.length||c.some((function(e){return!e.qLocked})),l.dimensionLocked=!(null===(r=c[0])||void 0===r||!r.qLocked),l}function Ar(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(null==e||!e.length)return!1;var t=e.filter((function(e){return\"object\"===r(e.data)&&Array.isArray(e.data.fields)})).every((function(e){return e.data.fields.every((function(e){var t=e.raw();return!(!t.qLocked&&t.qCardinal)}))}));return t}function Nr(e){var t=e.brush,n=e.colorField,r=e.legendAlias,o=e.useLegendCube,i=void 0!==o&&o;!n||/qAttrDimInfo/.test(n)?(t.removeKeyAlias(\"attrDim/qDimensionInfo/0\"),r&&t.removeKeyAlias(r),t.addKeyAlias(\"attrDim/qDimensionInfo/0\",\"qHyperCube/\".concat(n))):i&&t.addKeyAlias(r,\"qHyperCube/\".concat(n))}Ir.qBrushHelper=Dr,Ir.selections=Dr;var Lr=\"Enter\",Tr=\"Escape\",Pr=\"Esc\",jr=\"Shift\";function Fr(e){var t=e.brush,n=e.getConfig;return{interceptor:function(e){var r=t.brushes(),o=n(),i=o.allowSimultaneous,a=o.layout,l=void 0===a?{}:a;r.forEach((function(n){var r,o,a;(\"range\"===n.type||null!==(r=e[0])&&void 0!==r&&r.key&&(null===(o=e[0])||void 0===o?void 0:o.key)!==n.id&&0!==i.indexOf(null===(a=e[0])||void 0===a?void 0:a.key))&&t.clear([])}));var u=e.filter((function(e){return-2!==e.value}));if(u.length>1){var s=function(e){var t=e.layout,n=void 0===t?{}:t,r=e.values,o=void 0===r?[]:r;if(null==o||!o.length)return[];var i=Array.from(new Set(o.map((function(e){return e.key})))),a=[];return i.forEach((function(e){var t=Or({layout:n,path:e}),r=o.filter((function(t){return t.key===e})),i=t?[r.pop()]:r;a.push.apply(a,c(i))})),a.filter(Boolean)}({layout:l,values:u});return s}return u},rangeInterceptor:function(e){var r=t.brushes(),o=n().allowSimultaneous;return r.filter((function(e){return\"value\"===e.type})).length?(t.clear([]),e):(r.forEach((function(n){var r=n.id===e[0].key||o.includes(n.id)&&o.includes(e[0].key);\"range\"!==n.type||r||t.clear([])})),e)}}}var Hr=function e(t,n){return n[t]?e(t+1,n):t},Rr=function(e,t){var n=t.reduce((function(e,t){return e[t]=!0,e}),{});return e.reduce((function(e,t,r){var o=Hr(r,n);return n[o]=!0,e[r]=o,e}),{})};function zr(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.layout,n=e.filtered,r=void 0===n?{}:n,o=(null==t?void 0:t.qHyperCube)||{},i=o.qDimensionInfo,a=void 0===i?[]:i,l=o.qMeasureInfo,u=void 0===l?[]:l;return{dimensions:Rr(a,r.dimensions||[]),measures:Rr(u,r.measures||[])}}var Vr=\"selectHyperCubeValues\",_r=\"selectHyperCubeContinuousRange\";function Br(e){var t=e.selection,n=e.fieldMap,r=t.method,o=t.params;if(r===Vr){var i=n.dimensions[o[1]];void 0!==i&&(o[1]=i)}r===_r&&o[1].forEach((function(e){var t=n.dimensions[e.qDimIx];void 0!==t&&(e.qDimIx=t)}));return t}var Yr=[],$r=0,Ur=function(e){var t=Yr.filter((function(e){var t;return null===(t=e.selections)||void 0===t?void 0:t.isActive()}));t.length&&(e.key===Lr?t.forEach((function(e){return e.selections.confirm()})):e.key!==Tr&&e.key!==Pr||t.forEach((function(e){return e.selections.cancel()})))},Kr=function(){document.addEventListener(\"keyup\",Ur)},Gr=function(){document.removeEventListener(\"keyup\",Ur)},Wr=function(e,t){Object.keys(t).forEach((function(n){e.on(n,t[n])}))},Xr=function(e,t){Object.keys(t).forEach((function(n){e.removeListener(n,t[n])}))};function Zr(e,t,n){if(t&&void 0!==n&&\"selectHyperCubeContinuousRange\"===e.method){var r=e.params;if(r&&r[1]&&r[1][0]){var o=r[1][0],i=o.qDimIx,a=o.qRange;\"undefined\"!==i&&a&&!1===a.qMaxInclEq&&a.qMax>=n&&(a.qMaxInclEq=!0)}}}function Jr(e){var t=e.chart,n=e.document,r=e.selectionInfo,o=e.eventName,i=e.componentName,a=e.brushName,l=void 0===a?\"selection\":a,u=e.emit,c=void 0===u?\"rangeClear\":u,s=r.event===o,f=n.querySelector(\"[data-key='\".concat(i,\"-edge-0']\"));if(s||!f)return!1;var d=t.component(i);return!!d&&(d.emit(c),\"string\"==typeof l&&t.brush(l).clear(),d)}function Qr(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.eventName,i=void 0===o?\"discreteRange\":o,a=e.componentName,l=void 0===a?\"discrete-range-brush\":a,u=e.cleared;return Jr({selectionInfo:t,chart:n,document:r,eventName:void 0!==u&&u?void 0:i,componentName:l,emit:\"areaClear\",brushName:e.brushName})}function eo(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.eventName,i=void 0===o?\"continuousRange\":o,a=e.componentName,l=void 0===a?\"continuous-range-brush\":a,u=e.cleared;return Jr({selectionInfo:t,chart:n,document:r,eventName:void 0!==u&&u?void 0:i,componentName:l,brushName:e.brushName})}function to(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.componentName,i=void 0===o?\"minor-range-brush\":o,a=e.eventName,l=void 0===a?\"minorRange\":a,u=e.cleared,c=void 0!==u&&u,s=e.brushName,f=Jr({selectionInfo:t,chart:n,document:r,eventName:c?void 0:l,componentName:i,brushName:void 0!==s&&s});if(f){var d=f.settings.settings,p=d.scale,h=d.brush,m=n.scale(p).data().fields.map((function(e){return e.id()})),v=n.brush(h),y=v.brushes().filter((function(e){return\"range\"===e.type&&m.some((function(t){return t===e.id}))}));v&&y.length&&y.forEach((function(e){v.removeRanges(e.brush.ranges().map((function(t){return{key:e.id,range:t}})))}))}}function no(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.selections,i=e.eventName,a=void 0===i?\"xAxis\":i,l=e.cleared;Jr({selectionInfo:t,chart:n,document:r,eventName:void 0!==l&&l?void 0:a,componentName:\"\".concat(a,\"-range-brush\"),emit:\"areaClear\",brushName:!1})&&o.clear()}function ro(e){var t=e.chart,n=e.selectionInfo,r=e.selections,o=e.events,i=void 0===o?[\"tap\"]:o,a=e.brushNames,l=void 0===a?[]:a;if(n&&i.includes(n.event)){var u=n.currentComponent;n.previousComponent!==u&&(r.clear(),l.forEach((function(e){return t.brush(e).end()})))}}function oo(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.selections,i=e.eventName,a=void 0===i?\"legendRange\":i,l=e.componentName,u=void 0===l?\"legend-range-brush\":l,c=e.cleared,s=void 0!==c&&c,f=e.brushName;Jr({selectionInfo:t,chart:n,document:r,eventName:s?void 0:a,componentName:u,brushName:void 0!==f&&f})&&o.clear()}var io=[\"chart\",\"document\",\"selections\",\"selectionInfo\"],ao=function(e){e.chart,e.document,e.selections,e.selectionInfo;var t=l(e,io);t.clearDiscrete(),t.clearContinuous(),t.clearMinor(),t.clearRange(),t.clearTap(),t.clearLegend()};function lo(e){var n=e.selectionEvents,r=e.selections,o=e.selectionInfo,i=e.clear,a=e.chart,l=e.document,u=n.start,c={selections:r,selectionInfo:o,chart:a,document:l},s=function(e){return Object.assign(o,e||{})},f=function(e){var n=e.event,r=e.components;return function(){return function(e){var n=e.selectionInfo,r=void 0===n?{}:n,o=e.setSelectionInfo,i=e.clear,a=e.event,l=e.components,u=void 0===l?[]:l;o(t(t({},r),{},{event:a,components:u.map((function(e){return e.key})).filter(Boolean)})),i()}({event:n,components:r,clear:i,chart:a,selectionInfo:o,setSelectionInfo:s})}};return\"function\"==typeof u?function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];u(t(t({defaultFunc:f({event:e,components:n}),setSelectionInfo:s,clear:i},c),{},{event:e,components:n}))}:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];f({event:e,components:t})()}}function uo(e){var t,n=e.lasso;null!=n&&null!==(t=n.active)&&void 0!==t&&t.call(n)&&(null==n||n.action(!1))}function co(e){var n,r=e.chart,o=e.selectionInfo,i=e.selectionActions,a=e.actions,l=void 0===a?{}:a,c=e.selections,s=e.selectionEvents;if(!1===i||!1===s)return function(){};var f=i.reset,d=void 0===f?uo:f,p=i.clear,h=!1!==p&&function(e){var n=e.clear,r=void 0===n?ao:n,o=e.selections,i=e.selectionInfo,a=e.chart;return function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).cleared,n={selections:o,selectionInfo:i,chart:a,document:document,cleared:e};return r(t({clearDiscrete:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Qr(t(t({},n),e))},clearContinuous:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return eo(t(t({},n),e))},clearMinor:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return to(t(t({},n),e))},clearRange:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return no(t(t({},n),e))},clearTap:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ro(t(t({},n),e))},clearLegend:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return oo(t(t({},n),e))}},n))}}({clear:p,selections:c,selectionInfo:o,chart:r}),m=function(e){var t=e.chart,n=e.actions,r=e.reset,o=e.clear,i=!1,a={deactivated:function(e){var t=(n||{}).lasso;r({e:e,lasso:void 0!==t&&t})},canceled:function(e){var i=(n||{}).lasso;r({e:e,lasso:void 0!==i&&i}),o({e:e,chart:t,document:document})},cleared:function(e){i||(i=!0,o({e:e,chart:t,document:document,cleared:!0}),i=!1)}};return!1===r&&delete a.deactivated,!1===o&&delete a.cleared,!1===r&&!1===o&&delete a.canceled,a}({chart:r,clear:h,reset:d,actions:l}),v={};Object.entries(m).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];v[n]=function(e,t){return t?function(n){return t({event:n,defaultFunc:e})}:e}(r,s[n])}));var y=lo({selectionEvents:s,selections:c,selectionInfo:o,clear:h,chart:r,document:document});return null==l||null===(n=l.select)||void 0===n||n.on(\"start\",y),Object.entries(v).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];null==c||c.on(n,r)})),function(){var e;null==l||null===(e=l.select)||void 0===e||e.removeListener(\"start\",y),Object.entries(v).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];null==c||c.removeListener(n,r)}))}}function so(e){var t=e.chart,n=e.selectionActions,r=e.brush,o=e.actions,i=e.selectionInfo,a=e.selections,l=e.selectionEvents,c=function(e){var t=e.brush,n=e.chart,r=e.selectionInfo,o=e.brushEvents,i=void 0===o?{}:o,a=Object.entries(i).map((function(e){var o=u(e,2),i=o[0],a=o[1],l=function(){return a({chart:n,selectionInfo:r})};return t.on(i,l),[i,l]}));return function(){a.forEach((function(e){var n=u(e,2),r=n[0],o=n[1];t.removeListener(r,o)}))}}({brush:r,chart:t,selectionInfo:i,brushEvents:e.brushEvents}),s=co({chart:t,selectionInfo:i,selectionActions:n,actions:o,selections:a,selectionEvents:l}),f=function(e){var t=e.actions;if(null==t||!t.lasso)return function(){};var n=!1,r=function(e){n||e.key!==jr||(t.lasso.action(!0),n=!0)},o=function(e){e.key===jr&&(t.lasso.action(!1),n=!1)};return document.addEventListener(\"keydown\",r),document.addEventListener(\"keyup\",o),function(){document.removeEventListener(\"keydown\",r),document.removeEventListener(\"keyup\",o)}}({actions:o});return function(){c(),s(),f()}}var fo=[{key:\"qHyperCube/qDimensionInfo/0:numeric\",includeMax:!1}];function po(e){var t=e.chart,n=e.actions,r=e.selections,o=e.picassoQ,i=e.config,a=i.allowSimultaneous,l=void 0!==a&&a,s=i.majorScale,f=void 0===s?void 0:s,d=i.selectionActions,p=void 0===d?{}:d,h=p.clear,m=p.reset,v=i.selectionEvents,y=void 0===v?{deactivated:void 0,canceled:void 0,cleared:void 0,start:void 0}:v,g=i.brushEvents,b=void 0===g?{}:g,x=i.brushName,q=void 0===x?\"selection\":x,w=i.brushMaxListeners,M=void 0===w?20:w,k=i.brushRanges,S=void 0!==k&&k,C=i.interceptors,D=void 0===C?{}:C,I=i.selectionsFn,O=void 0===I?o.selections:I,E=t.brush(q);if(\"number\"==typeof M&&E.setMaxListeners(M),S){var A=!0===S?fo:S;E.configure({ranges:A})}var N={canSelect:!0,getIsSelectionLocked:!1,isInnerDimensionLocked:!1,lockedDimensions:[],singleSelectIndex:0,selectionInfo:{colorField:void 0,components:[],event:void 0,currentComponent:void 0,previousComponent:void 0}},L=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.selections,r=t.brush,o=t.majorScale,i=t.actions,a=t.selectionsFn,l=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).path,u=void 0===l?\"/qHyperCubeDef\":l;if(!n)return{layout:function(){},filteredFields:function(){},allowSimultaneous:function(){},release:function(){}};var c=++$r,s=null,f={dimensions:[],measures:[]},d=[],p={};n.on=n.on.bind(n),n.isActive=n.isActive.bind(n),n.addListener=n.addListener.bind(n),n.removeListener=n.removeListener.bind(n);var h=Fr({brush:r,getConfig:function(){return{layout:s,allowSimultaneous:d}}}),m=h.rangeInterceptor,v=h.interceptor;r.intercept(\"set-ranges\",m),r.intercept(\"toggle-ranges\",m),r.intercept(\"toggle-values\",v),r.intercept(\"set-values\",v),r.intercept(\"add-values\",v),r.on(\"start\",(function(){return n.begin(u)}));var y={activate:function(){},deactivated:function(){return r.end()},cleared:function(){return r.clear()},canceled:function(){return r.end()}};Wr(n,y);var g=null==o||null===(e=o.max)||void 0===e?void 0:e.call(o);return null!=i&&i.select?(i.select.on(\"start\",(function(){var e;r.start(),\"function\"==typeof i.select.getBrushOptions&&(p=(e=i.select).getBrushOptions.apply(e,arguments))})),i.select.on(\"end\",(function(){var e=a(r,p,s),t=zr({layout:s,filtered:f});e.forEach((function(e){var r=Br({selection:e,fieldMap:t});Zr(r,i.select.brushSelectionIncludeMax,g),n.select(r)}))}))):r.on(\"update\",(function(){var e=a(r,p,s),t=zr({layout:s,filtered:f});e.forEach((function(e){n.select(Br({selection:e,fieldMap:t}))}))})),0===Yr.length&&Kr(),Yr.push({key:c,selections:n}),{layout:function(e){s=e},filteredFields:function(e){f=e},allowSimultaneous:function(e){d=e},release:function(){s=null;var e=Yr.indexOf(Yr.filter((function(e){return e.key===c}))[0]);-1!==e&&Yr.splice(e,1),Yr.length||Gr(),Xr(n,y)}}}({brush:E,majorScale:f,actions:n,selections:r,picassoQ:o,selectionsFn:O});!function(e){var t=e.brush,n=e.interceptors,r=void 0===n?{}:n;Object.entries(r).forEach((function(e){var n=u(e,2),r=n[0],o=n[1];(Array.isArray(o)?o:[o]).forEach((function(e){t.intercept(r,e)}))}))}({brush:E,interceptors:D});var T=so({chart:t,brush:E,actions:n,selections:r,selectionInfo:N.selectionInfo,selectionActions:{clear:h,reset:m},selectionEvents:y,brushEvents:b});if(l){var P=!0===l?c(Array(15)).map((function(e,t){return\"qHyperCube/qMeasureInfo/\".concat(t)})):l;L.allowSimultaneous(P)}return{unbindEvents:T,state:N,picassoSelections:L,brush:E}}var ho=[\"colorField\",\"useLegendCube\"];function mo(e){var n=e.chart,r=e.selections,o=e.actions,i=void 0!==o&&o,a=e.config,u=void 0===a?{}:a,c=po({chart:n,actions:i,selections:r,picassoQ:Ir,config:u}),s=c.unbindEvents,f=c.state,d=c.picassoSelections,p=c.brush,h=u.custom,m=void 0===h?{}:h,v=u.legendAlias,y=void 0===v?void 0:v,g=u.setBrushAliases,b=void 0===g?Nr:g;return{getIsDimensionLocked:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return f.lockedDimensions[e]},getIsSelectionLocked:function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return null!==(e=null==r||null===(t=r.isLocked)||void 0===t?void 0:t.call(r))&&void 0!==e?e:Ar(n)},getIsSingleSelect:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f.singleSelectIndex;return f.singleSelectDimensions[e]},getCanSelect:function(){return f.canSelect},getSelectionInfo:function(){return f.selectionInfo},setLayout:function(e){var t=Er({selections:r,picassoSelections:d,layout:e});Object.assign(f,t)},setFilteredFields:function(e){d.filteredFields(e)},setBrushAliases:function(e){var n=e.colorField,r=e.useLegendCube,o=void 0!==r&&r,i=l(e,ho),a=t({useLegendCube:o,colorField:n,brush:p,legendAlias:y},i);b(t(t({},a),{},{defaultFunc:function(){return Nr(a)}}))},destroy:function(){s(),d.release()},custom:t({},m)}}var vo=\"'Source Sans Pro', 'Arial', 'sans-serif'\",yo=\"#333333\",go=\"#595959\",bo=\"#737373\",xo=\"#cccccc\",qo=\"#e6e6e6\";function wo(e){var t={};return[].concat(c(e),c([[\"\",\"\",\"color\"],[\"object\",\"\",\"fontFamily\"],[\"object\",\"axis.label.name\",\"color\",go],[\"object\",\"axis.label.name\",\"fontFamily\",vo],[\"object\",\"axis.label.name\",\"fontSize\",\"12px\"],[\"object\",\"axis.line.major\",\"color\",xo],[\"object\",\"axis.line.minor\",\"color\",qo],[\"object\",\"axis.title\",\"color\"],[\"object\",\"axis.title\",\"fontFamily\",vo],[\"object\",\"axis.title\",\"fontSize\",\"13px\"],[\"object\",\"grid.line.highContrast\",\"color\",qo],[\"object\",\"grid.line.major\",\"color\",xo],[\"object\",\"grid.line.minor\",\"color\",qo],[\"object\",\"label.value\",\"color\",go],[\"object\",\"label.value\",\"fontFamily\",vo],[\"object\",\"label.value\",\"fontSize\",\"12px\"],[!1,\"label.value\",\"darkColor\",go],[!1,\"label.value\",\"lightColor\",qo],[\"object\",\"outOfRange\",\"color\",\"#999\"],[\"object\",\"legend.title\",\"color\",yo],[\"object\",\"legend.title\",\"fontFamily\",vo],[\"object\",\"legend.title\",\"fontSize\",\"15px\"],[\"object\",\"legend.label\",\"color\",go],[\"object\",\"legend.label\",\"fontFamily\",vo],[\"object\",\"legend.label\",\"fontSize\",\"13px\"],[\"object\",\"referenceLine.label.name\",\"color\",yo],[\"object\",\"referenceLine.label.name\",\"fontFamily\",vo],[\"object\",\"referenceLine.label.name\",\"fontSize\",\"12px\"],[\"object\",\"referenceLine.outOfBounds\",\"color\",qo],[\"object\",\"referenceLine.outOfBounds\",\"fontFamily\",vo],[\"object\",\"referenceLine.outOfBounds\",\"fontSize\",\"12px\"],[\"object\",\"referenceLine.outOfBounds\",\"backgroundColor\",bo,function(e){return\"transparent\"===e?bo:e}]])).reduce((function(e,n){var r=\"\".concat(n[0],\"-\").concat(n[1],\"-\").concat(n[2],\"}\");return t[r]||(t[r]=!0,e.push(n)),e}),[]).sort((function(e,t){return(e[0].split?e[0].split(\".\").length:0)-(t[0].split?t[0].split(\".\").length:0)}))}var Mo=function(e){return e};function ko(e){var t=e.theme,n=e.id,r=e.transform,o=e.extend,i=e.matrix,a={},l=r.reduce((function(e,t){var n=u(t,2),r=n[0],o=n[1];return e[r]=o,e}),{});return i.forEach((function(e){var r=u(e,5),o=r[0],i=r[1],c=r[2],s=r[3],f=r[4],d=void 0===f?function(e){return e}:f,p=function(e){var t=e.theme,n=e.base,r=e.path,o=e.attribute,i=e.defaultValue,a=void 0===i?void 0:i;if(!t||!1===n)return a;var l=t.getStyle(n,r,o);return void 0===l?a:l}({theme:t,base:\"object\"===o&&n?\"\".concat(\"object\",\".\").concat(n):o,path:i,attribute:c,defaultValue:s}),h=(l[\"\".concat(i,\".\").concat(c)]||Mo)(d(p));qt(a,[i,c].filter(Boolean).join(\".\"),h)})),o.forEach((function(e){var t=u(e,2),n=t[0],r=t[1];qt(a,n,r)})),a}function So(e){var t=e.theme,n=e.config,r=void 0===n?{}:n,o=r.id,i=r.resolve,a=void 0===i?[]:i,l=r.transform,u=void 0===l?[]:l,c=r.extend,s=void 0===c?[]:c,f={theme:t,matrix:wo(a),styles:void 0};return f.styles=ko({theme:t,id:o,transform:u,extend:s,matrix:f.matrix}),{getStyles:function(){return f.styles},getTheme:function(){return f.theme},setTheme:function(e){f.theme=e,f.styles=ko({theme:e,id:o,transform:u,extend:s,matrix:f.matrix})}}}var Co={NOOP:function(){},FALSE:function(){return!1},ARRAY:function(){return[]},OBJECT:function(){return{}}};var Do=\"chart-modules-tooltip\",Io=\"#\".concat(Do);function Oo(){if(!document.querySelector(Io)){var e=document.createElement(\"div\");e.id=Do,e.style.overflow=\"hidden\",e.style.position=\"fixed\",e.style.pointerEvents=\"none\",e.style.left=\"0px\",e.style.top=\"0px\",e.style.width=\"100%\",e.style.height=\"100%\",e.style.zIndex=1020,document.body.appendChild(e)}}function Eo(e){return{show:!0,key:e.key,type:\"tooltip\",layout:{displayOrder:3},beforeMount:function(){Oo()},beforeUpdate:function(){Oo()},destroyed:function(){var e;null!=(e=document.querySelector(Io))&&e.parentElement&&e.childElementCount<1&&e.parentElement.removeChild(e)},settings:{appendTo:function(){return document.querySelector(Io)},direction:e.rtl?\"rtl\":\"ltr\",duration:e.duration},style:{arrow:{color:\"#404040\"},content:{display:\"table\",\"border-spacing\":\"4px\",background:\"rgba(64, 64, 64, 0.9)\",opacity:\"1\",fontSize:\"13px\",fontFamily:\"'Source Sans Pro', 'Arial', 'sans-serif'\",\"empty-cells\":\"show\"},cell:{\"max-width\":\"180px\",\"word-break\":\"break-word\",\"word-wrap\":\"break-word\",\"overflow-wrap\":\"break-word\",hyphens:\"auto\"}}}}var Ao=\"position\";var No={bar:\"rect\",diamond:\"path\",point:\"circle\",square:\"rect\",triangle:\"path\",\"n-polygon\":\"path\",slice:\"path\"},Lo=function(e){return e.data.value},To=function(e){var t,n=e.data;return null==n||null===(t=n.major)||void 0===t?void 0:t.value};function Po(e){var t=e.chart,n=e.expando,r=e.nodes,o=e.collectConfig,i=e.collectibles,a=e.meta,l=o.from,s={chart:t,expando:n,nodes:r,collectConfig:o,collectibles:i,meta:a};switch(\"function\"==typeof l?\"custom\":l){case\"single\":return function(e){var t=u(e.nodes,1)[0];return[\"container\"===t.type&&t.children[0]||t]}(s);case\"position\":return function(e){var t=e.chart,n=e.collectibles,r=e.meta;return t.shapesAt(r.position.absolute,{components:n.map((function(e){return{key:e.key}}))})}(s);case\"dimension\":return function(e){var t=e.chart,n=e.nodes,r=e.collectConfig,o=e.collectibles,i=u(n,1)[0],a=r.filter,l=\"function\"==typeof a?a:function(){return!0},s=r.by,f=void 0===s?Lo:s;return o.reduce((function(e,n){var r=n.major,o=void 0===r?To:r,a=No[n.type]||n.type;return e.push.apply(e,c(t.findShapes(a).filter((function(e){return e.key===n.key&&e.data&&o({data:e.data})===f({data:i.data})})))),e}),[]).filter(l)}(s);case\"radius\":return function(e){var t=e.chart,n=e.nodes,r=e.collectConfig,o=e.collectibles,i=e.meta,a=u(n,1)[0].localBounds,l=r.distance,c=r.filter,s=\"function\"==typeof c?c:function(){return!0},f=o.map((function(e){return e.key}));return t.shapesAt({cx:i.position.absolute.x,cy:i.position.absolute.y,r:l||Math.max(a.width,a.height)},{components:f.map((function(e){return{key:e}}))}).filter(s)}(s);case\"custom\":return function(e){var t=e.chart,n=e.expando,r=e.nodes,o=e.collectConfig,i=e.meta;return o.from({chart:t,expando:n,nodes:r,meta:i})}(s);default:return[]}}var jo=Number.MAX_VALUE;function Fo(e){var t=e.nodes.reduce((function(e,t){var n=t.bounds;return e.xMin=Math.min(e.xMin,n.x,n.x+n.width),e.yMin=Math.min(e.yMin,n.y,n.y+n.height),e.xMax=Math.max(e.xMax,n.x,n.x+n.width),e.yMax=Math.max(e.yMax,n.y,n.y+n.height),e}),{xMin:jo,xMax:-jo,yMin:jo,yMax:-jo}),n=t.xMin,r=t.xMax,o=t.yMin;return{x:n,y:o,width:r-n,height:t.yMax-o}}function Ho(e){var t=e.chart,n=e.config,r=e.expando,o=e.placementConfig,i=e.hovered,a=e.collected,l=e.meta,s=function(e){for(var t=e.chart,n=e.config,r=e.expando,o=e.placementConfig,i=e.hovered,a=e.collected,l=e.meta,s=u(i,1)[0],f=Array.isArray(o)?o:[o],d={bounds:s.bounds,key:s.key},p=Fo({nodes:a}),h=0;h<f.length;h++){var m=f[h];if(\"function\"==typeof m){var v=m({chart:t,expando:r,hovered:i,collected:c(a),meta:l,collectedBounds:p,combineBounds:Fo});if(v)return v}if(\"trigger\"===m)return d;if(\"collectible\"===m){var y=n.main.placements.collectible;return{bounds:\"function\"==typeof y?y({collected:c(a)}):p,key:a[0].key}}}return d}({chart:t,config:n,expando:r,placementConfig:o,hovered:i,collected:a,meta:l}),f=s.bounds,d=s.key,p=u(a,1)[0].desc;return[{bounds:f,nodes:a,data:a.map((function(e){return e.data})),key:d,meta:l,desc:p}]}function Ro(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.nodes;if(!i.length)return[];var a=u(i,1)[0].key,l=n.main.collectibles;if(!l.length)return[];var c=n.main.triggers.find((function(e){return-1!==e.keys.indexOf(a)}))||{},s=c.collect,f=c.placement;if(!s||!s.from||!f)return[];var d={triggerer:a,position:o.get(Ao)},p=(Po({chart:t,expando:r,nodes:i,collectConfig:s,collectibles:l,meta:d})||[]).map((function(e){return e.children.length?e.children[0]:e}));return p.length?Ho({chart:t,config:n,expando:r,placementConfig:f,hovered:i,collected:p,meta:d}):[]}var zo=\"[־׀׃׆א-״߀-ߪߴ-ߵߺ-ࠕࠚࠤࠨ࠰-ࡘ࡞‏יִײַ-ﬨשׁ-ﭏ]\",Vo=\"[؈؋؍؛-ي٭-ٯٱ-ەۥ-ۦۮ-ۯۺ-܍ܐܒ-ܯݍ-ޥޱﭐ-ﴽﵐ-﷼ﹰ-ﻼ]\",_o=new RegExp(\"[A-Za-zªµºÀ-ÖØ-öø-ʸʻ-ˁː-ˑˠ-ˤˮͰ-ͳͶ-ͽΆΈ-ϵϷ-҂Ҋ-։ः-हऻऽ-ीॉ-ौॎ-ॐक़-ॡ।-ॿং-হঽ-ীে-ৌৎ-ৡ০-ৱ৴-৺ਃ-ਹਾ-ੀਖ਼-੯ੲ-ੴઃ-હઽ-ીૉ-ૌૐ-ૡ૦-૯ଂ-ହଽ-ାୀେ-ୌୗ-ୡ୦-୷ஃ-ிு-ௌௐ-௲ఁ-ఽు-ౄౘ-ౡ౦-౯౿-ಹಽ-ೋೕ-ೡ೦-ീെ-ൌൎ-ൡ൦-ෆා-ෑෘ-ะา-ำเ-ๆ๏-ະາ-ຳຽ-ໆ໐-༗༚-༴༶༸༾-ཬཿ྅ྈ-ྌ྾-࿅࿇-ာေးျ-ြဿ-ၗၚ-ၝၡ-ၰၵ-ႁႃ-ႄႇ-ႌႎ-ႜ႞-ፚ፠-ᎏᎠ-Ᏼᐁ-ᙿᚁ-ᚚᚠ-ᜑᜠ-ᜱ᜵-ᝑᝠ-ᝰក-ាើ-ៅះ-ៈ។-៚ៜ០-៩᠐-ᢨᢪ-ᤜᤣ-ᤦᤩ-ᤱᤳ-ᤸ᥆-᧚ᨀ-ᨖᨙ-ᩕᩗᩡᩣ-ᩤᩭ-ᩲ᪀-᪭ᬄ-ᬳᬵᬻᬽ-ᭁᭃ-᭪᭴-᭼ᮂ-ᮡᮦ-ᮧ᮪-ᯥᯧᯪ-ᯬᯮ᯲-ᰫᰴ-ᰵ᰻-᱿᳓᳡ᳩ-ᳬᳮ-ᶿḀ-ᾼιῂ-ῌῐ-Ίῠ-Ῥῲ-ῼ‎ⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎ-⅏Ⅰ-ↈ⌶-⍺⎕⒜-ⓩ⚬⠀-⣿Ⰰ-ⳤⳫ-ⳮⴀ-⵰ⶀ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ㆺㇰ-㈜㈠-㉏㉠-㉻㉿-㊰㋀-㋋㋐-㍶㍻-㏝㏠-㏾㐀-䶵一-ꒌꓐ-ꘌꘐ-ꙮꚀ-ꛯ꛲-꛷Ꜣ-ꞇ꞉-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠤꠧ꠰-꠷ꡀ-ꡳꢀ-ꣃ꣎-꣙ꣲ-ꤥ꤮-ꥆꥒ-ꥼꦃ-ꦲꦴ-ꦵꦺ-ꦻꦽ-ꨨꨯ-ꨰꨳ-ꨴꩀ-ꩂꩄ-ꩋꩍ-ꪯꪱꪵ-ꪶꪹ-ꪽꫀꫂ-ꯤꯦ-ꯧꯩ-꯬꯰-ﬗA-Za-zヲ-ᅵ]\"),Bo=new RegExp(zo),Yo=new RegExp(Vo),$o=function(e){return _o.test(e)},Uo=function(e){return Bo.test(e)||Yo.test(e)};function Ko(e){for(var t=e?e.length:0,n=0;n<t;n++){var r=e[n];if($o(r))return\"ltr\";if(Uo(r))return\"rtl\"}return\"ltr\"}function Go(e){var n=e.visibility;return{type:\"divider\",content:[{content:\"\",style:{\"background-image\":\"linear-gradient(transparent 8px, rgba(255, 255, 255, 0.4) 8px, rgba(255, 255, 255, 0.4) 9.2px, transparent 9.2px)\",height:\"17px\"},colspan:2}],visibility:t(t({},{count:!1}),n)}}function Wo(e){var n=e.config,r=e.h,o=e.context,i=e.nodes,a=e.property,l=e.filter,c=e.visibility,s=e.fillColor,f=n.rtl,d={type:\"color\",label:void 0,value:void 0,content:[],filter:l,visibility:t(t({},{count:!0}),c)},p=n.getColorSettings();if(\"color\"===p.type||!p.fieldType)return d;var h=u(i,1)[0];if(d.value=function(e){var t=e.config,n=e.context,r=e.property,o=e.node,i=o.data[r];if(i){if(-3===o.data.value)return o.data.label;var a=n.resources.dataset(i.source.key).field(i.source.field).formatter(),l=i.value,u=i.label,c=t.getColorSettings();if(a&&\"measure\"===c.fieldType)return Number.isNaN(+l)?\"-\":a(i.value);var s=u||l;return void 0===s||Number.isNaN(s)||\"NaN\"===s?\"-\":s}}({config:n,context:o,property:a,node:h}),void 0===d.value)return d;d.label=function(e){var t=e.config,n=e.context,r=e.property,o=e.node,i=t.getColorSettings();if(i.label)return i.label;var a=o.data[r];if(a&&\"color\"!==i.type){var l=n.resources.dataset,u=a.source,c=u.key,s=u.field;return l(c).field(s).title()}}({config:n,context:o,property:a,node:h});var m=null!=s?s:function(e){var t=e.node.attrs;return(null==t?void 0:t.fill)||\"#ddd\"}({node:h}),v=r(\"div\",{style:{display:\"inline-block\",width:10,height:10,\"background-color\":m,margin:\"0 8px\"}});return d.content.push({content:f?[\":\",d.label]:[d.label,\":\"],style:{\"text-align\":f?\"right\":\"left\",direction:Ko(d.label)}},{content:f?[d.value,v]:[v,d.value],style:{\"text-align\":f?\"left\":\"right\",\"vertical-align\":\"middle\",direction:Ko(d.value)}}),d}function Xo(e){var n=e.config,r=e.h,o=e.context,i={section:function(e){return function(e){return{type:\"section\",content:e.content}}({content:e.content})},text:function(e){var r=e.value,o=e.style,i=e.visibility;return function(e){var n=e.config,r=e.value,o=e.style,i=void 0===o?{}:o,a=i.bold,l=void 0!==a&&a,u=i.italic,c=void 0!==u&&u,s=e.visibility;return{type:\"text\",content:[{content:r,style:{\"font-weight\":l?\"bold\":\"normal\",\"font-style\":c?\"italic\":\"normal\",\"text-align\":n.rtl?\"right\":\"left\",direction:Ko(r)},colspan:2}],visibility:t(t({},{count:!0}),s)}}({config:n,value:r,style:o,visibility:i})},measure:function(e){var o=e.label,i=e.value,a=e.color,l=e.style,u=e.survive,c=e.visibility;return function(e){var n,r,o,i,a=e.config,l=e.h,u=e.label,c=e.value,s=e.color,f=e.style,d=e.survive,p=e.visibility,h=a.rtl,m=l(\"div\",{style:{display:\"inline-block\",width:10,height:10,\"background-color\":s,margin:\"0 8px\"}});return{type:\"measure\",label:u,value:c,content:[{content:h?[\":\",u]:[u,\":\"],style:{\"text-align\":h?\"right\":\"left\",\"font-weight\":null!=f&&null!==(n=f.label)&&void 0!==n&&n.bold?\"bold\":\"normal\",\"font-style\":null!=f&&null!==(r=f.label)&&void 0!==r&&r.italic?\"italic\":\"normal\",direction:Ko(u)}},{content:s?h?[c,m]:[m,c]:c,style:{\"text-align\":h?\"left\":\"right\",\"vertical-align\":\"middle\",\"font-weight\":null!=f&&null!==(o=f.value)&&void 0!==o&&o.bold?\"bold\":\"normal\",\"font-style\":null!=f&&null!==(i=f.value)&&void 0!==i&&i.italic?\"italic\":\"normal\",direction:Ko(c)}}],survive:t(t({},{color:!1,duplicate:!1}),d),visibility:t(t({},{count:!0}),p)}}({config:n,h:r,label:o,value:i,color:a,style:l,survive:u,visibility:c})},divider:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.visibility;return Go({visibility:t})},row:function(e){return function(e){var n=e.content,r=e.style,o=e.colspan,i=e.visibility;return{type:\"row\",content:[{content:n,style:r,colspan:o}],visibility:t(t({},{count:!0}),i)}}({content:e.content,style:e.style,colspan:e.colspan,visibility:e.visibility})},raw:function(e){return function(e){var n=e.value,r=e.visibility;return{type:\"raw\",content:n,visibility:t(t({},{count:!0}),r)}}({value:e.value,visibility:e.visibility})},color:function(e){var t=e.nodes,i=e.property,a=e.filter,l=void 0===a||a,u=e.visibility,c=e.fillColor;return Wo({config:n,h:r,context:o,nodes:t,property:i,filter:l,visibility:u,fillColor:c})}};return i}function Zo(e){var t=e.translator,n=e.config,r=e.context,o=e.templates,i=n.main.layout,a=i.rows,l=i.grouping,u=i.single,c=function(e){var t=e.limit,n=e.grouping,r=e.single,o={count:0,overflow:0,index:{started:void 0,group:void 0}};return{process:function(e){var i=e.visibility,a=e.index;if(r&&0!==a)return n?(o.index.started!==a&&o.index.group!==a&&(o.overflow++,o.index.group=a),!1):(o.overflow++,!1);if(o.count>=t){if(!n)return o.overflow++,!1;if(o.index.started!==a)return o.index.group!==a&&(o.overflow++,o.index.group=a),!1}return i.count&&o.count++,n&&(o.index.started=a),!0},overflow:function(){return o.overflow}}}({limit:a,grouping:l,single:\"function\"==typeof u?u({meta:r.node.meta,sections:o}):u}),s=o.reduce((function(e,t,n){var r=t.type,i=t.content;\"section\"===r&&(void 0===i?[]:i).forEach((function(t){c.process({visibility:t.visibility,index:n})&&e.push(t.content)}));var a=n===o.length-1;return\"divider\"!==r||a||c.process({visibility:t.visibility,index:n})&&e.push(t.content),e}),[]).filter((function(e){return e.length})),f=c.overflow();return f&&s.push(function(e){var t=e.translator,n=e.config,r=e.count,o=t?t.get(\"Object.ChartTooltip.NMore\",r):\"+\".concat(r,\" more\"),i=Ko(o);return[{content:o,style:{\"font-weight\":\"bold\",\"text-align\":n.rtl?\"right\":\"left\",direction:i},colspan:2}]}({translator:t,config:n,count:f})),s}function Jo(e){var n=e.chart,r=e.translator,o=e.config,i=e.expando,a=e.h,l=e.data,s=e.style,f=u(l,1)[0],d=function(e){var t=e.config,n=e.nodes.reduce((function(e,n){var r=t.main.getGroupByValue({data:n.data});return e[r]||(e[r]={sorting:Object.keys(e).length,items:[]}),e[r].items.push(n),e}),{});return Object.keys(n).map((function(e){return n[e]})).sort((function(e,t){return e.sorting-t.sorting})).map((function(e){return e.items}))}({config:o,nodes:f.node.nodes}),p=function(e){var t=e.chart,n=e.config,r=e.expando,o=e.h,i=e.context,a=e.groups,l=i.node.meta,u=i.resources,s=u.dataset,f=u.formatter,d=Xo({config:n,h:o,context:i}),p=function(e){var t=e.dataset;return{dataset:{title:function(e,n){return t(e).field(n).title()}}}}({dataset:s}),h=a.map((function(e){var t=d.section({content:c((n.main.section({expando:r,h:o,nodes:e,dataset:s,formatter:f,meta:l,create:d,util:p})||[]).filter((function(e){var t;return null===(t=e.content)||void 0===t?void 0:t.length}))).filter(Boolean)});return t.content=function(e){var t=e.config,n=e.content,r=n.find((function(e){return\"color\"===e.type&&e.filter})),o=r?n.filter((function(e){return\"measure\"!==e.type||e.survive.color||e.label!==r.label||e.value!==r.value})):n;return t.main.showDuplicateMeasures?o:o.reduce((function(e,t){var n=t.type,r=t.survive;if(\"measure\"!==n||r.duplicate)return e.filtered.push(t),e;var o=\"\".concat(t.label,\"-\").concat(t.value);return e.memory[o]||(e.memory[o]=!0,e.filtered.push(t)),e}),{memory:{},filtered:[]}).filtered}({config:n,content:t.content}),t}));return n.main.sections({chart:t,expando:r,h:o,nodes:i.node.nodes,dataset:s,formatter:f,meta:l,create:d,util:p,sections:h}),h.filter(Boolean)}({chart:n,config:o,expando:i,h:a,context:f,groups:d}),h=Zo({translator:r,config:o,h:a,context:f,templates:p});return h.length?function(e){var n=e.h,r=e.style;return e.rows.map((function(e){return n(\"tr\",{},e.map((function(e){var o={style:t(t({},r.cell||{}),e.style||{}),class:e.class};return e.colspan&&(o.colspan=e.colspan),n(\"td\",o,e.content)})))}))}({h:a,style:s,rows:h}):function(e){var t=e.h;return t(\"tr\",{},t(\"td\",{style:{fontStyle:\"italic\",opacity:.75}},\"Empty\"))}({h:a})}function Qo(e){var t=e.chart,n=e.translator,r=e.config,o=e.expando,i=e.internal;if(!r.main.key)return!1;var a=wt(),l=Eo({key:r.main.key,rtl:r.rtl,duration:r.duration}),u=r.main.events.tooltip,c=u.afterShow,s=u.afterHide,f=function(){var e=a.get(\"collected\");return{expando:o,nodes:e.nodes,meta:e.meta}};return w(!0,l,{settings:{filter:function(e){return Ro({chart:t,config:r,expando:o,internal:i,nodes:e})},extract:function(e){return a.set(\"collected\",e.node),e},content:function(e){var i=e.h,a=e.data,l=e.style;return Jo({chart:t,translator:n,config:r,expando:o,h:i,data:a,style:l})},placement:function(e){var t=e.nodes;return r.main.placement({meta:t[0].meta})},afterShow:function(){return c(f())},afterHide:function(){return s(f())}},style:{arrow:{color:r.style.background},content:r.style}})}function ei(e){var n=e.config,r=n.legend.keys;if(!r.tooltip||!r.component)return!1;if(\"categorical\"!==n.getColorSettings().type)return!1;var o=Eo({key:r.tooltip,rtl:n.rtl,duration:n.duration});return w(!0,o,{settings:{filter:function(e){return e.filter((function(e){return e.data&&e.key===r.component}))},extract:function(e){return e},content:function(e){var n=e.h,r=e.data;return[n(\"tr\",{},[n(\"td\",{style:t(t({},e.style.cell||{}),{\"font-weight\":\"bold\",\"text-align\":\"left\"}),colspan:2},r[0].node.data.label)])]},placement:\"pointer\"},style:{arrow:{color:n.style.background},content:n.style}})}function ti(e){var t=e.config.main.triggers.reduce((function(e,t){return t.keys.forEach((function(n){var r=t.distance||0;e.distance[n]=r,e.distances.includes(r)||e.distances.push(r),e.key[n]=!0,e.keys[r]||(e.keys[r]=[]),e.keys[r].push(n)})),e}),{distance:{},distances:[],key:{},keys:{}});return function(e){return e.components.filter((function(e){return t.key[e.key]})).reduce((function(e,n){e.any=!0,e.components.push(n.key);var r=t.distance[n.key];return 0===r?e.position.push(n.key):(e.distances.includes(r)||(e.distances.push(r),e.distanceKeys[r]=[]),e.distanceKeys[r].push(n.key)),e}),{any:!1,components:[],position:[],distances:[],distanceKeys:{}})}}var ni=function(){return!0};function ri(e){var t=e.config.main.triggers.reduce((function(e,t){var n=t.filter;return t.keys.forEach((function(t){e[t]=\"function\"==typeof n?n:ni})),e}),{});return function(e){var n=t[e.key];return!n||n(e)}}function oi(e){var t=e.chart,n=e.event,r=e.component,o={absolute:{x:0,y:0},relative:{x:0,y:0}},i=t.element.getBoundingClientRect(),a=i.left,l=i.top;o.absolute.x=(void 0===n.clientX?Math.floor(n.srcEvent.clientX):n.clientX)-a,o.absolute.y=(void 0===n.clientY?Math.floor(n.srcEvent.clientY):n.clientY)-l;var u=t.component(r);if(u){var c=u.rect.computedInner;o.relative.x=o.absolute.x-c.x,o.relative.y=o.absolute.y-c.y}return o}function ii(e){var t=e.chart,n=e.filter,r=e.hits,o=e.position,i=[];if(r.position.length&&i.push.apply(i,c(t.shapesAt(o.absolute,{components:r.position.map((function(e){return{key:e}}))}).filter(n))),!i.length&&r.distances.length){var a=[];r.distances.forEach((function(e){a.push.apply(a,c(t.shapesAt({cx:o.absolute.x,cy:o.absolute.y,r:e},{components:r.distanceKeys[e].map((function(e){return{key:e}}))}).filter(n)))})),a.length&&i.push(function(e){var t=e.nodes,n=e.origin,r=t.find((function(e){return\"path\"===e.type}));if(r)return r;var o=function(e){var t=Math.abs(n.x-(e.localBounds.x+e.localBounds.width/2)),r=Math.abs(n.y-(e.localBounds.y+e.localBounds.height/2));return Math.sqrt(t*t+r*r)};return t.slice(1).reduce((function(e,t){var n=o(t);return n<e.distance&&(e.distance=n,e.node=t),e}),{node:t[0],distance:o(t[0])}).node}({nodes:a,origin:o.relative}))}return i}function ai(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.facade,l=n.delay.tap,s=ti({config:n}),f=ri({config:n}),d=n.main.triggers.reduce((function(e,t){return e.push.apply(e,c(t.keys)),e}),[]);return{key:\"event:\".concat(\"tooltipTap\"),type:\"Tap\",options:{event:\"tooltipTap\",enable:function(e,r){return!r||!!n.enable({event:r})&&t.componentsFromPoint({x:r.center.x,y:r.center.y}).filter((function(e){return-1!==d.indexOf(e.key)})).length>0}},recognizeWith:\"tap\",events:a({},\"tooltipTap\",(function(e){if(e.preventDefault(),\"mouse\"!==e.pointerType&&!n.main.suppress({event:e})){var a=t.component(n.main.key);if(a&&a.show){var c=t.componentsFromPoint({x:e.center.x,y:e.center.y}),d=s({components:c});if(d.any){var p=u(d.components,1)[0],h=oi({chart:t,event:e,component:p});o.set(Ao,h);var m=ii({chart:t,filter:f,hits:d,position:h});if(m.length){var v=m[0].key;n.main.events.tooltip.beforeShow({expando:r,event:e,collectNodes:function(){return i.collectNodes({nodes:m})},meta:{triggerer:v,position:h}}).then((function(){a.emit(\"show\",e,{nodes:m,delay:l})})).catch((function(){}))}else a.emit(\"hide\")}else a.emit(\"hide\")}}}))}}function li(e){var t=e.config,n=e.expando,r=e.internal,o=e.facade,i=t.main.events.tooltip.beforeShow,a=t.delay.hover,l={ongoing:{},latest:void 0};return function(e){var t=e.event,u=e.tooltip,c=e.nodes,s=function(e){var t=e.nodes;return JSON.stringify(t.map((function(e){var t;return{key:e.key,bounds:e.bounds,value:null===(t=e.data)||void 0===t?void 0:t.value}})))}({nodes:c});if(!l.ongoing[s]){l.ongoing[s]=!0,l.latest=s;var f=c[0].key;i({expando:n,event:t,collectNodes:function(){return o.collectNodes({nodes:c})},meta:{triggerer:f,position:r.get(Ao)}}).then((function(){s===l.latest&&u.emit(\"show\",t,{nodes:c,delay:a})})).catch((function(){u.emit(\"show\")})).finally((function(){delete l.ongoing[s],s===l.latest&&(l.latest=void 0)}))}}}function ui(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.facade,a=ti({config:n}),l=ri({config:n}),c=li({config:n,expando:r,internal:o,facade:i}),s=[n.main.key,n.legend.keys.tooltip].filter(Boolean),f=function(){s.forEach((function(e){var n=t.component(e);null!=n&&n.show&&n.emit(\"hide\")}))};return{type:\"native\",events:{mousemove:function(e){if(n.enable({event:e})&&!n.main.suppress({event:e})){var r=t.componentsFromPoint({x:e.clientX,y:e.clientY}),i=t.component(n.main.key);if(i&&i.show){var s=a({components:r});if(s.any){var f=u(s.components,1)[0],d=oi({chart:t,event:e,component:f});o.set(Ao,d);var p=ii({chart:t,filter:l,hits:s,position:d});if(!p.length)return void i.emit(\"hide\");c({event:e,tooltip:i,nodes:p})}else i.emit(\"hide\")}var h=n.legend;if(h.keys.tooltip&&h.keys.component){var m=t.component(h.keys.tooltip);m&&m.show&&(r.some((function(e){return e.key===h.keys.component}))?m.emit(\"show\",e):m.emit(\"hide\"))}}},mouseup:function(e){2===e.button&&f()},mouseleave:function(){n.main.events.interaction.mouseleave({expando:r}),f()},wheel:function(){f()}}}}function ci(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=function(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal;return{collectNodes:function(e){var i=e.nodes,a=u(Ro({chart:t,config:n,expando:r,internal:o,nodes:i}),1)[0];return(void 0===a?{nodes:[]}:a).nodes}}}({chart:t,config:n,expando:r,internal:o});return{gestures:[ai({chart:t,config:n,expando:r,internal:o,facade:i})],native:ui({chart:t,config:n,expando:r,internal:o,facade:i})}}function si(e){var t=e.chart,n=e.translator,r=function(e){var t=e.config;return w(!0,{},{rtl:!1,enable:Co.FALSE,getColorSettings:Co.OBJECT,style:{fontSize:void 0,fontFamily:void 0,color:void 0,background:void 0},delay:{hover:500,tap:0},duration:8e3,main:{key:void 0,suppress:Co.FALSE,getGroupByValue:Co.NOOP,collectibles:[],triggers:[],placement:function(){return{type:\"bounds\"}},placements:{collectible:\"combine\"},showDuplicateMeasures:!1,layout:{rows:7,grouping:!1,single:!1},section:Co.ARRAY,sections:Co.NOOP,events:{tooltip:{beforeShow:function(){return Promise.resolve()},afterShow:Co.NOOP,afterHide:Co.NOOP},interaction:{mouseleave:Co.NOOP}}},legend:{keys:{tooltip:void 0,component:void 0}}},void 0===t?{}:t)}({config:e.config}),o=wt(),i=wt(),a={components:void 0,interactions:void 0};return{getComponents:function(){return a.components||(a.components=function(e){var t=e.chart,n=e.translator,r=e.config;return[Qo({chart:t,translator:n,config:r,expando:e.expando,internal:e.internal}),ei({config:r})].filter(Boolean)}({chart:t,translator:n,config:r,expando:o,internal:i})),a.components},getInteractions:function(){return a.interactions||(a.interactions=ci({chart:t,config:r,expando:o,internal:i})),a.interactions},expando:o}}var fi=\"AVERAGE\",di=\"LINEAR\",pi=\"POLYNOMIAL2\",hi=\"POLYNOMIAL3\",mi=\"POLYNOMIAL4\",vi=\"EXPONENTIAL\",yi=\"LOG\",gi=\"POWER\";function bi(e){var t=e.dimValue,n=e.value,r=e.qTrendLine,o=r.qType,i=r.qCoeff,a={x:t,y:i[2]*Math.pow(n,2)+i[1]*n+i[0]};switch(o){case pi:return a;case hi:return a.y+=i[3]*Math.pow(n,3),a;case mi:return a.y+=i[4]*Math.pow(n,4)+i[3]*Math.pow(n,3),a;default:return a}}var xi={average:function(e){return{x:e.dimValue,y:e.qTrendLine.qCoeff[0]}},linear:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:r.qCoeff[1]*n+r.qCoeff[0]}},polynomial2:bi,polynomial3:bi,polynomial4:bi,exponential:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:Math.exp(r.qCoeff[0]+n*r.qCoeff[1])}},log:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:r.qCoeff[1]+r.qCoeff[0]*Math.log(n)}},power:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:Math.pow(10,r.qCoeff[0]+r.qCoeff[1]*Math.log(n)*Math.LOG10E)}}};function qi(e,t){for(var n=xi[t.qType.toLowerCase()],r=Math.max(1,e/500),o=1/0,i=-1/0,a=0;a<e;a+=r){var l=n({dimValue:null,value:a+1,qTrendLine:t}).y;o=Math.min(l,o),i=Math.max(l,i)}return{min:o,max:i}}function wi(e){return xi[e.qType.toLowerCase()]}function Mi(e,t){return e.meta.isContinuous?function(e,t){return{generate:function(e,n,r){var o=[],i=wi(e),a=t({qTrendLine:e,measureIndex:r}),l=a.min,u=a.max,c=(u-l)/100;if(c>0){for(var s=function(t){var a=i({dimValue:t,value:t,qTrendLine:e});if(a.layerId=n,a.measureIndex=r,a.dimValue=t,e.flipXY){var l=a.x;a.x=a.y,a.y=l,a.dimValue=a.x}o.push(a)},f=l,d=l;d<=u;d+=c)s(d),f=d;f!==u&&s(u)}return o},calculate:function(e,t){return wi(e)({dimValue:t,value:t,qTrendLine:e})},findMinMax:function(e,t){var n=this.generate(t).map((function(e){return e.y}));return{min:Math.min.apply(Math,c(n)),max:Math.max.apply(Math,c(n))}}}}(0,t):e.meta.mode.K?function(e){return{generate:function(t,n,r){for(var o=[],i=e.getDataPages()[0],a=i.qData[0].qSubNodes,l=i.qArea.qTop,u=xi[t.qType.toLowerCase()],c=0;c<a.length;c++){var s=a[c],f=u({dimValue:s.qElemNo,value:c+l+1,qTrendLine:t});f.layerId=n,f.measureIndex=r,f.dimValue=s.qText,o.push(f)}return o},findMinMax:qi}}(e):function(e){return{generate:function(t,n,r){for(var o=[],i=e.getDataPages()[0],a=i.qMatrix,l=i.qArea.qTop,u=xi[t.qType.toLowerCase()],c=0;c<a.length;c++){var s=a[c][0],f=c+l+1,d=u({dimValue:s.qElemNumber,value:f,qTrendLine:t});d.layerId=n,d.measureIndex=r,d.dimValue=s.qText,o.push(d)}return o},calculate:function(e,t,n){return(0,xi[e.qType.toLowerCase()])({dimValue:n,value:t,qTrendLine:e})},findMinMax:qi}}(e)}var ki={TYPES:{AVERAGE:\"properties.trendlines.types.average\",LINEAR:\"properties.trendlines.types.linear\",POLYNOMIAL2:\"properties.trendlines.types.polynomial2\",POLYNOMIAL3:\"properties.trendlines.types.polynomial3\",POLYNOMIAL4:\"properties.trendlines.types.polynomial4\",EXPONENTIAL:\"properties.trendlines.types.exponential\",LOG:\"properties.trendlines.types.logarithmic\",POWER:\"properties.trendlines.types.power\"},STYLE:{DASHED:\"properties.trendlines.style.dashed\"},TYPE:\"properties.trendlines.type\",HEADER:\"properties.trendlines\",ADD_BUTTON:\"properties.trendlines.button.add\"},Si={color:\"#f93f17\",index:9},Ci={x:NaN,y:NaN,dimValue:NaN,layerId:NaN,measureIndex:NaN},Di=function(e){var t=e.layoutService,n=e.getMinMax,r=e.colorModel,o=e.chart,i=e.translator,a=e.keys.colorScale,l=e.isEnabled,u=void 0===l?function(){return!0}:l,s=[Ci],f=[],d=[],p=Mi(t,n);t.getLayoutValue(\"qHyperCube.qMeasureInfo\",[]).forEach((function(e,t){Array.isArray(e.qTrendLines)&&(f.push.apply(f,c(e.qTrendLines)),d.push.apply(d,c(e.qTrendLines.map((function(){return t})))))}));var h=Mt((function(e){var t=(f[e]||{}).style,n=r.settings();if(t.autoColor){if(\"measure\"===n.mode){var i=d[e],l=o.scale(a)(i);return function(e){return xe(e).l<70}(l)?function(e){var t=xe(e);return t.l<30?t.l+=15:t.l<50?t.l+=10:t.l+=5,t.toString()}(l):function(e){var t=xe(e);return t.l-=5,t.toString()}(l)}return r.resolveUIColor(Si)}return t.paletteColor?r.resolveUIColor(t.paletteColor):\"none\"}));return{query:{hasTrendLines:function(){return!!f.length&&u()},getData:function(){return s},getStroke:h,getLineDash:function(e){return(f[e]||{}).style.lineDash},getLabel:function(e){return(f[e]||{}).label},getExpression:function(e){var t=(f[e]||{}).qExpression;return f[e].flipXY&&(t=t.replace(/[xy]/g,(function(e){return\"x\"===e?\"y\":\"x\"}))),t},isFlipped:function(e){return f[e].flipXY},getType:function(e){var t=(f[e]||{}).qType;return i.get(ki.TYPES[t])},getMinMax:function(){var e=1/0,n=-1/0;return f.forEach((function(r){var o=p.findMinMax(t.meta.size.y,r);e=Math.min(o.min,e),n=Math.max(o.max,n)})),{min:e,max:n}},getCalculatedValue:function(e,t,n){var r=f[e];return p.calculate(r,t,n)}},command:{update:function(){s.length=0,f.forEach((function(e,t){var n=p.generate(e,t,d[t]);s.push.apply(s,c(n))}))}}}},Ii={source:\"trend\",extract:{field:\"x\",props:{minor:{field:\"y\"},layer:{field:\"layerId\"},measureIndex:{field:\"measureIndex\"},dimValue:{field:\"dimValue\"}}}},Oi=function(e){var t=e.meta;return t.isContinuous?function(e){return(0,e.scale)(e.datum.value)}:t.isGroupedByMeasure?function(e){var t=e.scale,n=e.datum;return t([n.value,n.measureIndex.value])+t.bandwidth()/2}:function(e){var t=e.scale;return t(e.datum.value)+t.bandwidth()/2}},Ei=function(e,t){var n=t.animations,r=t.layoutService,o=t.trendLineModel,i=t.orientation;if(!o.query.hasTrendLines())return[];var a=function(e,t){var n=e.trendlines,r=e.majorScale,o=e.minorScale,i=t.animations,a=t.trendLineModel,l=t.layoutService,u=t.orientation,c=Oi(l);return{key:n,type:\"line\",layout:{dock:\"center\"},data:Ii,animations:i,settings:{connect:!0,orientation:u,coordinates:{major:{scale:r,fn:c},minor:{scale:o},layerId:{ref:\"layer\"}},layers:{curve:\"monotone\",line:{strokeWidth:2,stroke:function(e){var t=e.datum;return a.query.getStroke(t.layer.value)},strokeDasharray:function(e){var t=e.datum;return a.query.getLineDash(t.layer.value)}}}}}}(e,{animations:n,trendLineModel:o,layoutService:r,orientation:i}),l=[a];if(e.tooltipOverlay){var u=function(e,t){var n=e.majorScale,r=e.minorScale,o=e.tooltipOverlay,i=t.layoutService,a=\"horizontal\"===t.orientation,l={scale:n,fn:Oi(i)},u={scale:r,ref:\"minor\"};return{key:o,type:\"point\",layout:{dock:\"center\"},data:Ii,settings:{x:a?l:u,y:a?u:l,opacity:0,size:1,sizeLimits:{maxPx:8,minPx:8}}}}(e,{layoutService:r,orientation:i});l.push(u)}return l},Ai=function(e){e.style.dashed?e.style.lineDash=\"8, 4\":e.style.lineDash=\"\"},Ni=function(e){Ai(e),e.qMultiDimMode=\"Sum\",e.qXColIx=0};function Li(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Ti(e){return Math.pow(e.x,2)+Math.pow(e.y,2)}function Pi(e,t,n){var r=Li(n,e),o=Li(t,e),i=Ti(o);if(0===i)return e;var a,l,u,c,s=(l=o,((a=r).x*l.x+a.y*l.y)/i);return s<=0?e:s>=1?t:function(e,t){return{x:e.x+t.x,y:e.y+t.y}}(e,(c=s,{x:(u=o).x*c,y:u.y*c}))}function ji(e){var t,n,r=e.keys,o=e.model,i=e.chart,a=e.pos,l=e.lineNode,u=o,c=i.component(r.trendlines),s=i.scale(r.majorScale),f=i.scale(r.minorScale),d=l.data.layer.value,p=function(e,t){var n=1/0,r=null;if(1===e.length)return e[0];for(var o=0;o<e.length-1;++o){var i=Pi(e[o],e[o+1],t),a=Ti(Li(i,t));a<n&&(n=a,r=i)}return r}(l.data.points.map((function(e){return{x:s(e.dimValue.value)*c.rect.computed.width,y:f(e.minor.value)*c.rect.computed.height}})),a);return u.query.isFlipped(d)?(n=f.invert(p.y/c.rect.computed.height),t=u.query.getCalculatedValue(d,n).y,p.x=s(t)*c.rect.computed.width):(t=s.invert(p.x/c.rect.computed.width),n=u.query.getCalculatedValue(d,t).y,p.y=f(n)*c.rect.computed.height),{key:l.key,children:[],data:{layer:d,x:t,y:n},bounds:{x:p.x,y:p.y,width:0,height:0}}}function Fi(e){var t=e.animations,n=e.chart,r=e.colorService,o=e.isEnabled,i=e.keys,a=void 0===i?{}:i,l=e.layoutService,u=e.orientation,c=e.translator,s=e.getMinMax;a.trendlines||(a.trendlines=\"trend-lines\");var f=Di({layoutService:l,getMinMax:s,colorModel:{settings:function(){return r.getSettings()},resolveUIColor:function(e){return r.getPaletteColor(e)}},chart:n,translator:c,keys:a,isEnabled:o});return{getComponents:function(){return Ei(a,{animations:t,layoutService:l,trendLineModel:f,orientation:u})},getData:function(){return f.query.hasTrendLines()?[{key:\"trend\",data:f.query.getData()}]:[]},collectNodes:function(e){var t=e.nodes,r=e.meta;return function(e){var t=e.keys,n=e.model,r=e.chart,o=e.nodes,i=e.meta;return o.length?[ji({keys:t,model:n,chart:r,pos:i.position.relative,lineNode:o[0]})]:[]}({keys:a,model:f,chart:n,nodes:t,meta:r})},getModel:function(){return f},update:function(){return f.command.update()}}}Fi.propertyPanelProperties=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.translator,n=function(e){var n=r(e.label);return\"string\"===n&&e.label?e.label:\"object\"===n?e.label.qStringExpression?e.label.qStringExpression.qExpr:e.label.qValueExpression.qExpr:t.get(ki.TYPES[e.qType])};return{type:\"array\",ref:\"qTrendLines\",titleTranslation:ki.HEADER,itemTitleRef:n,max:8,allowAdd:!0,allowRemove:!0,allowMove:!1,addTranslation:ki.ADD_BUTTON,add:Ni,items:{label:{ref:\"label\",type:\"string\",expression:\"optional\",translation:\"Common.Label\",defaultValue:\"\"},type:{ref:\"qType\",type:\"string\",component:\"dropdown\",translation:ki.TYPE,options:[{value:fi,translation:ki.TYPES.AVERAGE},{value:di,translation:ki.TYPES.LINEAR},{value:pi,translation:ki.TYPES.POLYNOMIAL2},{value:hi,translation:ki.TYPES.POLYNOMIAL3},{value:mi,translation:ki.TYPES.POLYNOMIAL4},{value:vi,translation:ki.TYPES.EXPONENTIAL},{value:yi,translation:ki.TYPES.LOG},{value:gi,translation:ki.TYPES.POWER}],defaultValue:fi},autoColor:{ref:\"style.autoColor\",type:\"boolean\",translation:\"properties.colors\",component:\"switch\",defaultValue:!0,options:[{value:!0,translation:\"Common.Auto\"},{value:!1,translation:\"Common.Custom\"}]},paletteColor:{ref:\"style.paletteColor\",translation:\"properties.color\",type:\"object\",component:\"color-picker\",dualOutput:!0,defaultValue:Si,show:function(e){return!e.style.autoColor}},dashed:{ref:\"style.dashed\",translation:ki.STYLE.DASHED,type:\"boolean\",defaultValue:!0,change:Ai}}}};var Hi=[\"American Typewriter, serif\",\"Andalé Mono, monospace\",\"Arial Black, sans-serif\",\"Arial, sans-serif\",\"Bradley Hand, cursive\",\"Brush Script MT, cursive\",\"Comic Sans MS, cursive\",\"Courier, monospace\",\"Didot, serif\",\"Georgia, serif\",\"Impact, sans-serif\",\"Lucida Console, monospace\",\"Luminari, fantasy\",\"Monaco, monospace\",\"QlikView Sans, sans-serif\",\"Source Sans Pro, sans-serif\",\"Tahoma, sans-serif\",\"Times New Roman, serif\",\"Trebuchet MS, sans-serif\",\"Verdana, sans-serif\"],Ri=[\"Abril Fatface, serif\",\"Bangers, fantasy\",\"Bebas Neue, sans serif\",\"EB Garamond, serif\",\"Fredoka One, fantasy\",\"Graduate, fantasy\",\"Gravitas One, serif\",\"Indie Flower, fantasy\",\"Inter, sans-serif\",\"Lobster, fantasy\",\"Montserrat, sans-serif\",\"Nixie One, sans-serif\",\"Noto Sans, sans-serif\",\"Open Sans, sans-serif\",\"PT Serif, serif\",\"Pacifico, cursive\",\"Permanent Marker, fantasy\",\"QlikView Sans, sans-serif\",\"Raleway, sans-serif\",\"Rammetto One, fantasy\",\"Roboto, sans-serif\",\"Source Sans Pro, sans-serif\",\"Titan One, fantasy\",\"Yanone Kaffeesatz, sans-serif\"];function zi(e){return null!=e&&e.isEnabled(\"PS_20852_WYSIWYG_FONT_SUPPORT\")?Ri:Hi}var Vi=function(e){return{value:e,label:e.charAt(0).toUpperCase()+e.slice(1),groupHeader:!1,disabled:!1,styles:{fontFamily:e}}};function _i(e){var t=e.theme,n=e.translator,r=e.defaultValue,o=e.flags,i=[],a=t.getStyle(\"\",\"\",\"fontFamilies\");return Array.isArray(a)&&a.length?i.push.apply(i,c(new Set([r].concat(c(a.map((function(e){return e.split(\",\").map((function(e){return e.trim()})).map((function(e){return e.replace(/\\s+/g,\" \").trim()})).filter(Boolean).join(\", \")}))))))):i.push(r),[{value:\"ThemeHeader\",label:n.get(\"properties.themeFonts\"),metaText:n.get(\"properties.theme\"),groupHeader:!0}].concat(c(i.map((function(e){return Vi(e)}))),[{value:\"DefaultHeader\",label:n.get(\"properties.allFonts\"),metaText:n.get(\"properties.default\"),groupHeader:!0}],c(zi(o).map((function(e){return Vi(e)}))))}function Bi(e){var t=e.theme,n=e.translator,r=e.id,o=e.path,i=e.flags,a=function(){return t.getStyle(r,o,\"fontFamily\")};return{getDefaultValue:function(){return a()},getOptions:function(){return _i({theme:t,translator:n,defaultValue:a(),flags:i})}}}var Yi=[\"10px\",\"11px\",\"12px\",\"13px\",\"14px\",\"15px\",\"16px\",\"17px\",\"18px\",\"19px\",\"20px\",\"21px\",\"22px\",\"23px\",\"24px\"],$i=function(e){return{value:e,label:e,groupHeader:!1,disabled:!1}};function Ui(e){var t=e.theme,n=e.translator,r=e.id,o=e.path,i=function(){return t.getStyle(r,o,\"fontSize\")};return{getDefaultValue:function(){return i()},getOptions:function(){return function(e){var t=e.theme,n=e.translator,r=e.defaultValue,o=[],i=t.getStyle(\"\",\"\",\"fontSizes\");return Array.isArray(i)&&i.length?o.push.apply(o,c(new Set([r].concat(c(i))))):o.push(r),[{value:\"ThemeHeader\",label:n.get(\"properties.themeFontSizes\"),metaText:n.get(\"properties.theme\"),groupHeader:!0}].concat(c(o.map((function(e){return $i(e)}))),[{value:\"DefaultHeader\",label:n.get(\"properties.allFontSizes\"),metaText:n.get(\"properties.default\"),groupHeader:!0}],c(Yi.map((function(e){return $i(e)}))))}({theme:t,translator:n,defaultValue:i()})}}}function Ki(e){var t=e.theme,n=e.translator,r=e.id,o=e.path;return{fontFamily:Bi({theme:t,translator:n,id:r,path:o,flags:e.flags}),fontSize:Ui({theme:t,translator:n,id:r,path:o})}}function Gi(e){var t=e.theme,n=e.translator,r=e.config,o=void 0===r?{}:r,i=e.flags,a=function(e){var t=e.config,n=void 0===t?{}:t,r=n.id,o=n.paths;return{id:void 0===r?\"object\":\"\".concat(\"object\",\".\").concat(r),paths:Array.isArray(o)?o:[]}}({config:o}),l=a.id,u=a.paths,c={};u.forEach((function(e){for(var r=e.split(\".\"),o=c,a=0;a<r.length;a++){var u=r[a];a===r.length-1?o[u]=Ki({theme:t,translator:n,id:l,path:e,flags:i}):void 0===o[u]&&(o[u]={}),o=o[u]}}));var s=function(e){for(var t=e.split(\".\"),n=c,r=0;r<t.length;r++){var o=t[r];if(void 0===n[o])throw new Error(\"font-resolver: Path '\".concat(e,\"' could not be resolved.\"));n=n[o]}return n};return c.getDefaultValue=function(e){return s(e).getDefaultValue()},c.getOptions=function(e){return s(e).getOptions()},c}export{wt as cache,ut as colorService,St as debouncer,gt as dockService,Gi as fontResolver,zi as getAvailableFonts,bt as getValue,At as layoutService,Mt as memoize,Lt as pluginService,mo as selectionService,qt as setValue,kt as storage,So as themeService,Ct as throttler,si as tooltipService,Fi as trendlinesService};\n","/* eslint-disable prefer-rest-params */\n/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\n\n/* Simple JavaScript Inheritance\n * By John Resig http://ejohn.org/\n * MIT Licensed.\n * Modified by Qliktech\n */\n// Inspired by base2 and Prototype\n\n/* eslint no-new-func:0,no-unused-vars:0 */\n\nconst fnTest = /xyz/.test(() => {\n let xyz;\n})\n ? /\\b_super\\b/\n : /.*/;\n\n/**\n * Helper module for creating subclasses (or rather prototypal inheritance) of superclasses.\n *\n * @class\n *\n * @example\n * var Animal = Class.extend( \"Animal\", {\n * init: function ( name ) {\n * this.name = name || \"Unnamed\";\n * },\n * say: function ( sound ) {\n * console.log( this.name + \" says \" + sound );\n * }\n * } );\n *\n * var Cat = Animal.extend( \"Cat\", {\n * say: function () {\n * this._super( \"Meouw\" );\n * }\n * } );\n *\n * var cat = new Cat( \"Gustaf\" );\n * cat.say(); => \"Gustaf says Meouw\"\n *\n * @example\n * var MyClass = Class.extend();\n *\n * var a = new MyClass();\n * console.log( a instanceof MyClass ) // => true\n * console.log( a.constructor.name ) // => Class\n *\n * @example\n * var MyClass = Class.extend( \"MyClass\" );\n *\n * var a = new MyClass();\n * console.log( a instanceof MyClass ) // => true\n * console.log( a.constructor.name ) // => MyClass\n *\n */\nconst Class = function () {};\n\n/**\n * This method is available inside each function defined on the prototype when using {@link module:assets/core/utils/class~Class.extend}.\n *\n * It will invoke the super class' method with the same name, but it's up to programmer to invoke it with the arguments needed.\n * @method module:assets/core/utils/class~Class#_super\n */\n\n/**\n * Create a new Class that inherits from this class\n * @param {String} [className=\"Class\"] The name of the new class constructor.\n * @param {Object} proto The prototype for the new class.\n */\nClass.extend = function extend(className, proto) {\n const _super = this.prototype;\n\n if (typeof className !== 'string') {\n proto = className;\n className = 'Class';\n }\n\n // Instantiate a base class (but only create the instance,\n // don't run the init constructor)\n const prototype = Object.create(this.prototype);\n\n // Copy the properties over onto the new prototype\n for (const name in proto) {\n // Check if we're overwriting an existing function\n prototype[name] =\n typeof proto[name] === 'function' && typeof _super[name] === 'function' && fnTest.test(proto[name])\n ? (function (name, fn) {\n return function () {\n const tmp = this._super;\n\n // Add a new ._super() method that is the same method\n // but on the super-class\n this._super = _super[name];\n\n // The method only need to be bound temporarily, so we\n // remove it when we're done executing\n const ret = fn.apply(this, arguments);\n this._super = tmp;\n\n return ret;\n };\n })(name, proto[name])\n : proto[name];\n }\n\n if (!/^[_a-z][_a-z\\d]*$/i.test(className)) {\n throw new Error('Invalid subclass name. Alphanumericals only.');\n }\n\n // The dummy class constructor\n const ctor = new Function(\n `return (function ${className}(){ typeof this.init === 'function' && this.init.apply(this, [].slice.call(arguments)) });`\n )();\n\n // Populate our constructed prototype object\n ctor.prototype = prototype;\n\n // Enforce the constructor to be what we expect\n ctor.prototype.constructor = ctor;\n\n // And make this class extendable\n ctor.extend = extend;\n\n return ctor;\n};\n\nexport default Class;\n","// private\nconst idGen = {\n getChar(value) {\n // 0 o O i I l\n const banned = [48, 111, 79, 105, 73, 108];\n let val = value;\n\n let charCode;\n if (val > 9) {\n charCode = 65 + val - 10;\n if (charCode > 90) {\n charCode += 6;\n }\n } else {\n val = `${val}`.charCodeAt(0);\n }\n return banned.indexOf(charCode) > -1 ? this.getChar(val + 1) : String.fromCharCode(charCode);\n },\n base62(value) {\n const chr = this.getChar(value % 62);\n const y = Math.floor(value / 62);\n return y > 0 ? this.base62(y) + chr : chr;\n },\n id() {\n const s = this.base62(Math.round(Math.random() * (1e13 - 1e11) + 1e11));\n return s.replace(/\\W/g, '');\n },\n};\n\nexport default function generateId() {\n return idGen.id();\n}\n","const SCROLLBAR_KEY = 'scrollbar';\n\nfunction getActions(isEnabledFn) {\n function targetIsScrollbar(manager, e) {\n if (!e || !isEnabledFn()) {\n return false;\n }\n const startPoint = {\n x: e.center.x - e.deltaX,\n y: e.center.y - e.deltaY,\n };\n const components = this.chart.componentsFromPoint(startPoint);\n return components.some((c) => c.settings.key === SCROLLBAR_KEY);\n }\n\n const tap = {\n // single tap\n type: 'Tap',\n options: {\n enable: targetIsScrollbar,\n },\n events: {\n tap(e) {\n this.chart.component(SCROLLBAR_KEY).emit('tap', e);\n },\n },\n };\n\n const pan = {\n type: 'Pan',\n options: {\n enable: targetIsScrollbar,\n },\n events: {\n panstart(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panStart', e);\n },\n pan(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panMove', e);\n },\n panend(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panEnd', e);\n },\n pancancel(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panCancel', e);\n },\n },\n };\n\n const actions = [tap, pan];\n return actions;\n}\n\nexport default getActions;\n","function getAxisDock(direction, dock, isRtl) {\n return direction === 'y' ? getYAxisDock(dock, isRtl) : getXAxisDock(dock);\n}\n\nfunction getOppositeAxisDock(direction, dock, isRtl) {\n const oppositeDock = dock === 'far' ? 'near' : 'far';\n return getAxisDock(direction, oppositeDock, isRtl);\n}\n\nfunction getYAxisDock(dock, isRtl) {\n const yDockNearFar = dock || 'near';\n return (isRtl && yDockNearFar === 'near') || (!isRtl && yDockNearFar === 'far') ? 'right' : 'left';\n}\n\nfunction getXAxisDock(dock) {\n return dock === 'far' ? 'top' : 'bottom';\n}\n\nexport default {\n getAxisDock,\n getOppositeAxisDock,\n getYAxisDock,\n};\n","// Source: https://en.wikipedia.org/wiki/Bi-directional_text and http://www.unicode.org/Public/6.0.0/ucd/UnicodeData.txt\n// 3 types of strong direction characters: L (strong left-to-right), R(strong right-to-left, Hebrew) and AL(strong right-to-left, Arabic language)\nconst rangesOfLChars =\n '[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u02BB-\\u02C1\\u02D0-\\u02D1\\u02E0-\\u02E4\\u02EE\\u0370-\\u0373\\u0376-\\u037D\\u0386\\u0388-\\u03F5\\u03F7-\\u0482\\u048A-\\u0589\\u0903-\\u0939\\u093B\\u093D-\\u0940\\u0949-\\u094C\\u094E-\\u0950\\u0958-\\u0961\\u0964-\\u097F\\u0982-\\u09B9\\u09BD-\\u09C0\\u09C7-\\u09CC\\u09CE-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09FA\\u0A03-\\u0A39\\u0A3E-\\u0A40\\u0A59-\\u0A6F\\u0A72-\\u0A74\\u0A83-\\u0AB9\\u0ABD-\\u0AC0\\u0AC9-\\u0ACC\\u0AD0-\\u0AE1\\u0AE6-\\u0AEF\\u0B02-\\u0B39\\u0B3D-\\u0B3E\\u0B40\\u0B47-\\u0B4C\\u0B57-\\u0B61\\u0B66-\\u0B77\\u0B83-\\u0BBF\\u0BC1-\\u0BCC\\u0BD0-\\u0BF2\\u0C01-\\u0C3D\\u0C41-\\u0C44\\u0C58-\\u0C61\\u0C66-\\u0C6F\\u0C7F-\\u0CB9\\u0CBD-\\u0CCB\\u0CD5-\\u0CE1\\u0CE6-\\u0D40\\u0D46-\\u0D4C\\u0D4E-\\u0D61\\u0D66-\\u0DC6\\u0DCF-\\u0DD1\\u0DD8-\\u0E30\\u0E32-\\u0E33\\u0E40-\\u0E46\\u0E4F-\\u0EB0\\u0EB2-\\u0EB3\\u0EBD-\\u0EC6\\u0ED0-\\u0F17\\u0F1A-\\u0F34\\u0F36\\u0F38\\u0F3E-\\u0F6C\\u0F7F\\u0F85\\u0F88-\\u0F8C\\u0FBE-\\u0FC5\\u0FC7-\\u102C\\u1031\\u1038\\u103B-\\u103C\\u103F-\\u1057\\u105A-\\u105D\\u1061-\\u1070\\u1075-\\u1081\\u1083-\\u1084\\u1087-\\u108C\\u108E-\\u109C\\u109E-\\u135A\\u1360-\\u138F\\u13A0-\\u13F4\\u1401-\\u167F\\u1681-\\u169A\\u16A0-\\u1711\\u1720-\\u1731\\u1735-\\u1751\\u1760-\\u1770\\u1780-\\u17B6\\u17BE-\\u17C5\\u17C7-\\u17C8\\u17D4-\\u17DA\\u17DC\\u17E0-\\u17E9\\u1810-\\u18A8\\u18AA-\\u191C\\u1923-\\u1926\\u1929-\\u1931\\u1933-\\u1938\\u1946-\\u19DA\\u1A00-\\u1A16\\u1A19-\\u1A55\\u1A57\\u1A61\\u1A63-\\u1A64\\u1A6D-\\u1A72\\u1A80-\\u1AAD\\u1B04-\\u1B33\\u1B35\\u1B3B\\u1B3D-\\u1B41\\u1B43-\\u1B6A\\u1B74-\\u1B7C\\u1B82-\\u1BA1\\u1BA6-\\u1BA7\\u1BAA-\\u1BE5\\u1BE7\\u1BEA-\\u1BEC\\u1BEE\\u1BF2-\\u1C2B\\u1C34-\\u1C35\\u1C3B-\\u1C7F\\u1CD3\\u1CE1\\u1CE9-\\u1CEC\\u1CEE-\\u1DBF\\u1E00-\\u1FBC\\u1FBE\\u1FC2-\\u1FCC\\u1FD0-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FFC\\u200E\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E-\\u214F\\u2160-\\u2188\\u2336-\\u237A\\u2395\\u249C-\\u24E9\\u26AC\\u2800-\\u28FF\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2D00-\\u2D70\\u2D80-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u31BA\\u31F0-\\u321C\\u3220-\\u324F\\u3260-\\u327B\\u327F-\\u32B0\\u32C0-\\u32CB\\u32D0-\\u3376\\u337B-\\u33DD\\u33E0-\\u33FE\\u3400-\\u4DB5\\u4E00-\\uA48C\\uA4D0-\\uA60C\\uA610-\\uA66E\\uA680-\\uA6EF\\uA6F2-\\uA6F7\\uA722-\\uA787\\uA789-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA824\\uA827\\uA830-\\uA837\\uA840-\\uA873\\uA880-\\uA8C3\\uA8CE-\\uA8D9\\uA8F2-\\uA925\\uA92E-\\uA946\\uA952-\\uA97C\\uA983-\\uA9B2\\uA9B4-\\uA9B5\\uA9BA-\\uA9BB\\uA9BD-\\uAA28\\uAA2F-\\uAA30\\uAA33-\\uAA34\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA4D-\\uAAAF\\uAAB1\\uAAB5-\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2-\\uABE4\\uABE6-\\uABE7\\uABE9-\\uABEC\\uABF0-\\uFB17\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFDC]';\nconst rangesOfRChars =\n '[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05F4\\u07C0-\\u07EA\\u07F4-\\u07F5\\u07FA-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u0858\\u085E\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB4F]';\nconst rangesOfALChars =\n '[\\u0608\\u060B\\u060D\\u061B-\\u064A\\u066D-\\u066F\\u0671-\\u06D5\\u06E5-\\u06E6\\u06EE-\\u06EF\\u06FA-\\u070D\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\uFB50-\\uFD3D\\uFD50-\\uFDFC\\uFE70-\\uFEFC]';\n// eslint-disable-next-line no-misleading-character-class\nconst rangesOfLRgExp = new RegExp(rangesOfLChars);\nconst rangesOfRRgExp = new RegExp(rangesOfRChars);\nconst rangesOfALRgExp = new RegExp(rangesOfALChars);\n\nconst // left-to-right marker\n lrm = String.fromCharCode(8206); // right-to-left marker\n\nconst rlm = String.fromCharCode(8207);\n\nfunction isLtrChar(c) {\n return rangesOfLRgExp.test(c);\n}\n\nfunction isRtlChar(c) {\n return rangesOfRRgExp.test(c) || rangesOfALRgExp.test(c);\n}\n\nfunction detectTextDirection(s) {\n const n = s ? s.length : 0;\n let i;\n let c;\n for (i = 0; i < n; i++) {\n c = s[i];\n if (isLtrChar(c)) {\n return 'ltr';\n }\n if (isRtlChar(c)) {\n return 'rtl';\n }\n }\n return 'ltr';\n}\n\nexport default {\n lrm,\n rlm,\n detectTextDirection,\n};\n","import extend from 'extend';\nimport RtlUtil from '../../../../extra/rtl-util';\n\n/**\n * Get Picasso settings for an individual ref-line.\n *\n * @param {*} settings Default settings for the ref-line\n * @param {*} lineColorIndex Chart builder options + paletteColor option\n */\nfunction lineSettings(settings, options) {\n const lineStroke =\n typeof options.paletteColor !== 'undefined'\n ? options.theme.getColorPickerColor(options.paletteColor)\n : 'transparent';\n const defaultSettings = {\n value: 0,\n line: {\n stroke: lineStroke,\n strokeDasharray: options?.style?.lineType,\n },\n };\n return extend(true, defaultSettings, settings || {});\n}\n\n/**\n * Get Picasso settings for an individual ref-line used to display label and OOB.\n *\n * @param {*} settings Default settings for the ref-line label\n * @param {*} options Chart builder options + paletteColor option\n */\nfunction lineLabelSettings(settings, options) {\n const chartID = options && options.chartID; // Should we validate if the parameter exists?\n let labelColor = options.theme.getStyle(chartID, 'referenceLine.label.name', 'color');\n const labelFontSize = options.theme.getStyle(chartID, 'referenceLine.label.name', 'fontSize');\n const labelFontFamily = options.theme.getStyle(chartID, 'referenceLine.label.name', 'fontFamily');\n\n if (options.paletteColor) {\n labelColor = options.theme.getColorPickerColor(options.paletteColor);\n } else if (!labelColor) {\n labelColor = 'transparent';\n }\n\n const defaultSettings = {\n value: 0,\n line: {\n stroke: 'transparent',\n },\n label: {\n align: 'center',\n vAlign: 'middle',\n text: '',\n fill: labelColor,\n fontFamily: labelFontFamily,\n fontSize: labelFontSize,\n maxWidthPx: 135,\n },\n };\n return extend(true, defaultSettings, settings || {});\n}\n\nconst isVisible = (refLine) =>\n refLine && refLine.show !== false && refLine.show !== 0 && refLine.show !== '0' && refLine.refLineExpr !== undefined;\n\nfunction getRefLineTitle({ refLine, label, valueString }) {\n if (refLine.showValue !== false) {\n if (refLine.showLabel !== false) {\n return `${label} ${RtlUtil.lrm}(${valueString})${RtlUtil.lrm}`;\n }\n return `${RtlUtil.lrm}(${valueString})${RtlUtil.lrm}`;\n }\n if (refLine.showLabel !== false) {\n return label;\n }\n return '';\n}\n\nexport default {\n lineSettings,\n lineLabelSettings,\n isVisible,\n getRefLineTitle,\n};\n","import DimensionMeasureChartLayoutSettings from './layout-settings';\n\nconst constants = {\n SHOW_AXIS_LABELS_OPTIONS: ['all', 'labels'], // show dim/measure axis labels when it matches one of this values\n SHOW_TITLE_OPTIONS: ['all', 'title'], // show the dimension/measure title when the show option matches one of these values\n HORIZONTAL: 'horizontal',\n VERTICAL: 'vertical',\n LAYOUTSETTINGS: DimensionMeasureChartLayoutSettings,\n};\n\nconstants.DEFAULT_CHART_ORIENTATION = constants.HORIZONTAL;\n\nexport default constants;\n","export default {\n lasso: {\n displayOrder: 10000,\n },\n rangeDim: {\n displayOrder: 10000,\n },\n rangeMeasure: {\n displayOrder: 10000,\n },\n rangeMinor: {\n displayOrder: 10000,\n },\n\n // SPARK\n scrollBar: {\n minimumLayoutMode: 'SPARK',\n prioOrder: -1,\n displayOrder: 100,\n },\n\n refLines: {\n layout: {\n minimumLayoutMode: 'SPARK',\n prioOrder: 60,\n displayOrder: 1110,\n },\n },\n\n // XMALL\n measureAxisTitle: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 30,\n displayOrder: 90,\n },\n dimensionAxisTitle: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 30,\n displayOrder: 90,\n },\n\n measureAxis: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 10,\n displayOrder: 80,\n },\n dimensionAxis: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 10,\n displayOrder: 80,\n },\n\n gridLines: {\n minimumLayoutMode: 'XSMALL',\n displayOrder: -100,\n },\n\n // SMALL\n refLinesLabels: {\n minimumLayoutMode: 'SMALL',\n prioOrder: 60,\n displayOrder: 0,\n },\n};\n","import extend from 'extend';\nimport generateId from '../../../../extra/generate-id';\nimport getScrollActions from '../../../scroll/scroll-actions';\nimport axisDockUtil from '../../components/util/axis-dock-util';\nimport refLineUtil from '../../components/util/ref-line-util';\nimport CONSTANTS from './constants';\n\nconst SENSE_PICASSO_SPACING_COEFFICIENT = 100;\n\nfunction DimensionMeasureChart(chartBuilder, opts) {\n const options = opts || {};\n\n const measureAxisProperties = options.measureAxisProperties || {};\n const dimensionAxisProperties = options.dimensionAxisProperties || {};\n const chartOrientation = options.orientation || CONSTANTS.DEFAULT_CHART_ORIENTATION;\n const isChartHorizontal = chartOrientation === CONSTANTS.HORIZONTAL;\n const measureDirection = isChartHorizontal ? 'x' : 'y';\n const dimensionDirection = isChartHorizontal ? 'y' : 'x';\n const SHOW_AXIS_LABELS_OPTIONS = CONSTANTS.SHOW_AXIS_LABELS_OPTIONS;\n const SHOW_TITLE_OPTIONS = CONSTANTS.SHOW_TITLE_OPTIONS;\n const includeMeasureAxisComponent = SHOW_AXIS_LABELS_OPTIONS.includes(measureAxisProperties.show);\n const includeMeasureAxisTitleComponent =\n !!options.measureTitleText && SHOW_TITLE_OPTIONS.includes(measureAxisProperties.show);\n const includeDimensionAxisComponent =\n options.includeDimensionAxis && SHOW_AXIS_LABELS_OPTIONS.includes(dimensionAxisProperties.show);\n const includeDimensionAxisTitleComponent =\n options.includeDimensionAxis &&\n !!options.dimensionTitleText &&\n SHOW_TITLE_OPTIONS.includes(dimensionAxisProperties.show);\n const includeGridlines = options.gridlines && !(!options.gridlines.auto && options.gridlines.spacing === 0);\n\n const includeRefLines = options.refLines && options.refLines.some((refLine) => refLine.show);\n\n const interactionActions = [];\n\n if (includeMeasureAxisComponent) {\n addMeasureAxisComponent(chartBuilder, options, measureDirection, measureAxisProperties);\n }\n\n if (includeMeasureAxisTitleComponent) {\n addMeasureAxisTitleComponent(chartBuilder, options, measureDirection);\n }\n\n addMeasureScale(chartBuilder, options, chartOrientation, measureAxisProperties);\n\n if (includeDimensionAxisComponent) {\n addDimensionAxisComponent(chartBuilder, options, dimensionDirection);\n }\n\n if (includeDimensionAxisTitleComponent) {\n addDimensionAxisTitleComponent(chartBuilder, options, dimensionDirection);\n }\n\n if (options.includeDimensionAxis) {\n addDimensionScale(chartBuilder, options, chartOrientation);\n }\n\n if (includeGridlines) {\n addGridlinesComponent(chartBuilder, options.gridlines, measureDirection);\n }\n\n if (options.hasNavigation) {\n addScrollbarComponent(chartBuilder, interactionActions, options, isChartHorizontal);\n }\n\n if (includeRefLines) {\n addRefLineComponent(chartBuilder, options, measureDirection, measureAxisProperties);\n }\n\n if (options.enableLasso && options.selectionsEnabled) {\n const lassoOptions = options.lasso || {};\n addLassoComponent(chartBuilder, lassoOptions);\n }\n\n if (options.enableDimRange && options.includeDimensionAxis && options.selectionsEnabled) {\n const rangeDimOptions = options.dimRange || {};\n const dimensionAxisOptions = getDimensionAxisOptions(options, dimensionDirection);\n addRangeDimComponent(chartBuilder, rangeDimOptions, isChartHorizontal, dimensionAxisOptions.dock, options.isRtl);\n }\n\n if (options.enableMeasureRange && options.selectionsEnabled) {\n const rangeMeasureOptions = options.measureRange || {};\n const measureAxisOptions = getMeasureAxisOptions(options, measureDirection);\n addRangeMeasureComponent(\n chartBuilder,\n rangeMeasureOptions,\n isChartHorizontal,\n measureAxisOptions.dock,\n options.isRtl\n );\n }\n\n if (options.enableAreaRange && options.selectionsEnabled) {\n const areaDimOptions = options.areaRange || {};\n const dimAreaAxisOptions = getDimensionAxisOptions(options, dimensionDirection);\n addRangeAreaComponent(chartBuilder, areaDimOptions, isChartHorizontal, dimAreaAxisOptions.dock, options.isRtl);\n }\n\n if (options.brushActions) {\n addInteractionActions(interactionActions, options.brushActions);\n }\n\n if (interactionActions.length) {\n addInteractionComponent(chartBuilder, interactionActions);\n }\n}\n\nexport default DimensionMeasureChart;\n\nfunction addInteractionComponent(chartBuilder, interactionActions) {\n return chartBuilder.addInteraction({}, { gestures: interactionActions });\n}\n\nfunction addInteractionActions(interactionActions, actions) {\n actions.forEach((a) => {\n interactionActions.push(a);\n });\n}\n\nfunction addMeasureScale(chartBuilder, options, chartOrientation, measureAxisProperties) {\n let measureScaleSettings = options.measureScaleSettings;\n\n const measureScaleOptions = {\n isRtl: options.isRtl,\n source: options.measureSource,\n orientation: chartOrientation,\n measureAxisProperties,\n };\n\n if (measureAxisProperties && measureAxisProperties.spacing > 0) {\n measureScaleSettings = extend(true, measureScaleSettings || {}, {\n component: {\n ticks: {\n distance: measureAxisProperties.spacing * SENSE_PICASSO_SPACING_COEFFICIENT,\n },\n },\n });\n }\n\n chartBuilder.addScale('measure-scale', measureScaleSettings, measureScaleOptions);\n}\n\nfunction addMeasureAxisComponent(chartBuilder, options, measureDirection, measureAxisProperties) {\n let measureAxisSettings = {\n scale: 'measure',\n settings: options.axisLabelStyle || {},\n forceBounds: measureAxisProperties && !measureAxisProperties.autoMinMax && measureAxisProperties.showBounds,\n };\n measureAxisSettings = extend(measureAxisSettings, CONSTANTS.LAYOUTSETTINGS.measureAxis);\n\n const measureAxisOptions = getMeasureAxisOptions(options, measureDirection);\n\n chartBuilder.addComponent(`${measureDirection}-axis`, measureAxisSettings, measureAxisOptions);\n}\n\nfunction addMeasureAxisTitleComponent(chartBuilder, options, measureDirection) {\n let measureTitleSettings = {\n text: options.measureTitleText,\n style: options.axisTitleStyle || {},\n };\n measureTitleSettings = extend(measureTitleSettings, CONSTANTS.LAYOUTSETTINGS.measureAxisTitle);\n\n const measureAxisOptions = getMeasureAxisTitleOptions(options, measureDirection);\n\n chartBuilder.addComponent(`${measureDirection}-axis-title`, measureTitleSettings, measureAxisOptions);\n}\n\nfunction addDimensionScale(chartBuilder, options, chartOrientation) {\n const dimensionScaleOptions = {\n isRtl: options.isRtl,\n source: options.dimensionSource,\n orientation: chartOrientation === CONSTANTS.HORIZONTAL ? CONSTANTS.VERTICAL : CONSTANTS.HORIZONTAL,\n };\n\n chartBuilder.addScale('dimension-scale', options.dimensionScaleSettings, dimensionScaleOptions);\n}\n\nfunction addDimensionAxisComponent(chartBuilder, options, dimensionDirection) {\n let dimensionAxisSettings = {\n scale: 'dimension',\n settings: options.axisLabelStyle || {},\n };\n dimensionAxisSettings = extend(dimensionAxisSettings, CONSTANTS.LAYOUTSETTINGS.dimensionAxis);\n\n const dimensionAxisOptions = getDimensionAxisOptions(options, dimensionDirection);\n\n extend(true, dimensionAxisSettings, options.dimensionAxisSettings || {});\n\n chartBuilder.addComponent(`${dimensionDirection}-axis`, dimensionAxisSettings, dimensionAxisOptions);\n}\n\nfunction addDimensionAxisTitleComponent(chartBuilder, options, dimensionDirection) {\n let dimensionAxisTitleSettings = {\n text: options.dimensionTitleText,\n style: options.axisTitleStyle || {},\n };\n dimensionAxisTitleSettings = extend(dimensionAxisTitleSettings, CONSTANTS.LAYOUTSETTINGS.dimensionAxisTitle);\n\n const dimensionAxisTitleOptions = getDimensionAxisTitleOptions(options, dimensionDirection);\n\n chartBuilder.addComponent(`${dimensionDirection}-axis-title`, dimensionAxisTitleSettings, dimensionAxisTitleOptions);\n}\n\nfunction addGridlinesComponent(chartBuilder, gridlinesOptions, measureDirection) {\n let gridlinesSettings = {\n ticks: {\n show: true,\n },\n minorTicks: {\n show: !gridlinesOptions.auto && !gridlinesOptions.auto && gridlinesOptions.spacing === 3,\n },\n };\n gridlinesSettings = extend(gridlinesSettings, CONSTANTS.LAYOUTSETTINGS.gridLines);\n\n gridlinesSettings[measureDirection] = { scale: 'measure' };\n\n chartBuilder.addComponent('grid-line', gridlinesSettings);\n}\n\nfunction addScrollbarComponent(chartBuilder, interactionActions, options, isChartHorizontal) {\n const settings = chartBuilder.getSettings();\n\n settings.scroll = {\n dimension: {\n viewSize: (options.scrollSettings && options.scrollSettings.viewSize) || 0,\n max: (options.scrollSettings && options.scrollSettings.max) || 0,\n },\n };\n\n const scrollbarOptions = {\n isRtl: options.isRtl,\n chartID: options.chartID,\n isHorizontal: !isChartHorizontal,\n };\n\n const scrollBarSettings = extend({}, CONSTANTS.LAYOUTSETTINGS.scrollBar);\n\n chartBuilder.addComponent('scrollbar', scrollBarSettings, scrollbarOptions);\n\n addInteractionActions(interactionActions, getScrollActions(options.isNavigationEnabledFn));\n}\n\n/*\n * Add \"ref-line\" component(s). Currently two \"ref-line\" components are used to reserve space for labels and\n * OOB markers outside of the data area. First component: shows the line(s) within the data area. Second component:\n * shows the label(s) and OOB marker(s).\n */\nfunction addRefLineComponent(chartBuilder, options, measureDirection, measureAxisProperties) {\n const axisDock = axisDockUtil.getAxisDock(measureDirection, measureAxisProperties.dock, options.isRtl);\n let refLinesSettings = {\n // First component\n key: 'ref-line',\n style: {\n oob: {\n show: false,\n },\n },\n lines: {\n x: [],\n y: [],\n },\n };\n refLinesSettings = extend(refLinesSettings, CONSTANTS.LAYOUTSETTINGS.refLines);\n\n let refLinesLabelsSettings = {\n // Second component\n // Use a unique key to force re-render of this component in Picasso.\n // This must be done because Picasso does not allow re-binding of functions (and shouldn't either).\n key: `ref-line-labels-${generateId()}`,\n require: ['renderer', 'chart'],\n dock: axisDockUtil.getOppositeAxisDock(measureDirection, measureAxisProperties.dock, options.isRtl),\n preferredSize() {\n if (measureDirection === 'x') {\n // Use constant component size if horizontal\n return 26;\n }\n\n // Adapt component size to the longest label if vertical\n const measureText = this.renderer.measureText;\n const formatter = this.chart.formatter({ data: chartBuilder.settings.scales.measure.data });\n const labelWidths = refLinesLabelsSettings.lines.y.map((line) => {\n const formattedValue = line.label.showValue !== false ? `(${formatter(line.value)})` : '';\n const text = `${line.label.text} ${formattedValue}`;\n const minimumText = line.label.text && formattedValue ? ` ${formattedValue}` : formattedValue;\n return {\n wanted: measureText({\n text,\n fontSize: line.fontSize,\n fontFamily: line.fontFamily,\n }).width,\n required: measureText({\n text: minimumText,\n fontSize: line.fontSize,\n fontFamily: line.fontFamily,\n }).width,\n };\n });\n\n const maxLabelWidth = labelWidths[0];\n for (let i = 1; i < labelWidths.length; i++) {\n if (labelWidths[i].wanted > maxLabelWidth.wanted) {\n maxLabelWidth.wanted = labelWidths[i].wanted;\n }\n if (labelWidths[i].required > maxLabelWidth.required) {\n maxLabelWidth.required = labelWidths[i].required;\n }\n }\n const labelPadding = 12;\n if (maxLabelWidth.required + labelPadding > 100) {\n return maxLabelWidth.required + labelPadding; // Always have space for the value\n }\n return Math.min(maxLabelWidth.wanted + labelPadding, 100); // Limit to 100 px width\n },\n lines: {\n x: [],\n y: [],\n },\n };\n refLinesLabelsSettings = extend(refLinesLabelsSettings, CONSTANTS.LAYOUTSETTINGS.refLinesLabels);\n\n options.refLines.forEach((refLine) => {\n if (!refLine.show) {\n return;\n }\n\n const expressionValue = refLine.refLineExpr && refLine.refLineExpr.value;\n const lineOptions = extend(true, {}, options, {\n paletteColor: refLine.paletteColor,\n style: refLine.style,\n chartID: chartBuilder.options.chartID,\n });\n\n // Add a line for each visible ref line\n const lineSettings = refLineUtil.lineSettings(\n {\n scale: 'measure',\n dir: measureDirection,\n value: expressionValue,\n },\n lineOptions\n );\n\n refLinesSettings.lines[measureDirection].push(lineSettings);\n\n // Add a label and an OOB marker for each visible ref line (using the second component)\n const lineLabelSettings = refLineUtil.lineLabelSettings(\n {\n scale: 'measure',\n value: expressionValue,\n label: {\n text: refLine.showLabel !== false ? refLine.label : '',\n showValue: refLine.showValue !== false,\n },\n },\n lineOptions\n );\n\n if (measureDirection === 'x') {\n lineLabelSettings.label.vAlign = axisDock === 'near' ? 1 : 0;\n } else {\n // y\n lineLabelSettings.label.align = axisDock === 'near' ? 0 : 1;\n }\n\n refLinesLabelsSettings.lines[measureDirection].push(lineLabelSettings);\n });\n\n chartBuilder.addComponent('ref-line', refLinesSettings, {});\n chartBuilder.addComponent('ref-line', refLinesLabelsSettings, {});\n}\n\n/**\n * Adds a lasso component to the chart builder\n * @param {ChartBuilder} chartBuilder\n * @param {object} options - lasso options\n * @param {string} options.brushKey - key used as context for lasso selection triggers\n * @param {string} options.brushComponent - target component key\n */\nfunction addLassoComponent(chartBuilder, options) {\n const lassoOptions = {\n brushKey: options.brushKey,\n brushComponents: options.brushComponents,\n brushData: options.brushData,\n };\n\n chartBuilder.addComponent('lasso', CONSTANTS.LAYOUTSETTINGS.lasso, lassoOptions);\n}\n/**\n * Adds a dimension range component to the chart builder\n * @param {any} chartBuilder\n * @param {object} options - range dim options\n * @param {string} options.brushKey - key used as context for range selection triggers\n * @param {string} options.brushAxis - target axis to perform range select on\n * @param {string} options.brushScale - Scale to use\n * @param {boolean} isChartHorizontal - Whether the chart is horizontal or not\n */\nfunction addRangeDimComponent(chartBuilder, options, isChartHorizontal, dock, isRtl) {\n let rangeDimSettings = {\n key: 'rangeDim',\n };\n\n rangeDimSettings = extend(rangeDimSettings, CONSTANTS.LAYOUTSETTINGS.rangeDim);\n\n const rangeDimOptions = {\n brushKey: options.brushKey,\n brushAxis: options.brushAxis,\n brushArea: options.brushArea,\n brushScale: options.brushScale,\n isHorizontal: !isChartHorizontal,\n dock,\n isRtl,\n };\n\n chartBuilder.addComponent('range', rangeDimSettings, rangeDimOptions);\n}\n\nfunction addRangeMeasureComponent(chartBuilder, options, isChartHorizontal, dock, isRtl) {\n let rangeMeasureSettings = {\n key: 'rangeMeasure',\n };\n\n rangeMeasureSettings = extend(rangeMeasureSettings, CONSTANTS.LAYOUTSETTINGS.rangeMeasure);\n\n const rangeMeasureOptions = {\n brushKey: options.brushKey,\n brushAxis: options.brushAxis,\n brushArea: options.brushArea,\n brushScale: options.brushScale,\n multiple: options.multiple,\n isHorizontal: isChartHorizontal,\n dock,\n isRtl,\n };\n\n chartBuilder.addComponent('range', rangeMeasureSettings, rangeMeasureOptions);\n}\n\nfunction addRangeAreaComponent(chartBuilder, options, isChartHorizontal, dock, isRtl) {\n let rangeMinorSettings = {\n key: 'rangeMinor',\n };\n\n rangeMinorSettings = extend(rangeMinorSettings, CONSTANTS.LAYOUTSETTINGS.rangeMinor);\n\n const rangeMeasureOptions = {\n brushKey: options.brushKey,\n brushAxis: options.brushAxis,\n brushData: options.brushData,\n brushArea: options.brushArea,\n brushComponents: options.brushComponents,\n brushScale: options.brushScale,\n multiple: options.multiple,\n isHorizontal: options.brushScale === 'measure' ? isChartHorizontal : !isChartHorizontal,\n dock,\n isRtl,\n chartInstance: options.chartInstance,\n };\n\n chartBuilder.addComponent('range-area', rangeMinorSettings, rangeMeasureOptions);\n}\n\nfunction getMeasureAxisOptions(options, measureDirection) {\n return {\n dock: options.measureAxisProperties && options.measureAxisProperties.dock,\n direction: measureDirection,\n isRtl: options.isRtl,\n };\n}\n\nfunction getMeasureAxisTitleOptions(options, measureDirection) {\n return getMeasureAxisOptions(options, measureDirection);\n}\n\nfunction getDimensionAxisOptions(options, dimensionDirection) {\n return {\n dock: options.dimensionAxisProperties && options.dimensionAxisProperties.dock,\n direction: dimensionDirection,\n isRtl: options.isRtl,\n };\n}\n\nfunction getDimensionAxisTitleOptions(options, dimensionDirection) {\n return getDimensionAxisOptions(options, dimensionDirection);\n}\n","import extend from 'extend';\n\nfunction scale(settings, opts) {\n const options = opts || {};\n const isHorizontal = !options.orientation || options.orientation === 'horizontal';\n const isRtl = !!options.isRtl;\n\n const defaultSettings = {\n name: options.name || 'scale',\n component: {\n invert: isHorizontal && isRtl,\n minorTicks: {\n count: 1,\n },\n range: options.range || undefined,\n domain: options.domain || undefined,\n trackBy: options.trackBy || 'id',\n },\n };\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nfunction measureScale(settings, opts) {\n const options = opts || {};\n let fields = options.source || [];\n if (typeof fields === 'string') {\n fields = [fields];\n }\n\n const defaultSettings = {\n name: 'measure',\n component: {\n expand: 0.1,\n data: {\n fields: fields.map((f) => ({\n field: f,\n })),\n },\n },\n };\n\n const measureAxisProperties = opts && opts.measureAxisProperties;\n\n if (measureAxisProperties && !measureAxisProperties.autoMinMax) {\n // explicit min max measure scale range\n if (['min', 'minMax'].includes(measureAxisProperties.minMax)) {\n defaultSettings.component.min = measureAxisProperties.min;\n }\n if (['max', 'minMax'].includes(measureAxisProperties.minMax)) {\n defaultSettings.component.max = measureAxisProperties.max;\n }\n }\n\n const measureSettings = extend(true, defaultSettings, settings || {});\n const scaleSettings = scale(measureSettings, opts);\n const hasInvertSettings = settings && settings.component && typeof settings.component.invert !== 'undefined';\n\n if (!hasInvertSettings && opts && opts.orientation === 'vertical') {\n scaleSettings.component.invert = !scaleSettings.component.invert;\n }\n\n return scaleSettings;\n}\n\nfunction dimensionScale(settings, opts) {\n const defaultSettings = {\n name: 'dimension',\n component: {\n trackBy: 'id',\n type: 'band',\n data: {\n extract: {\n field: (opts && opts.source) || '',\n props: {\n label(v) {\n return v.qText || '';\n }, // Map qText to handle both qElemNo and qElemNumber\n },\n },\n },\n label(v) {\n return v.datum.label.value;\n }, // Set qText as value from the mapping on r.92\n },\n };\n\n const dimensionSettings = extend(true, defaultSettings, settings || {});\n\n return scale(dimensionSettings, opts);\n}\n\nscale.measureScale = measureScale;\nscale.dimensionScale = dimensionScale;\n\nexport default scale;\n","export default function getTextRenderer(flags) {\n if (!flags?.isEnabled?.('IM_5791_SVG_LABEL_RENDERING')) {\n return undefined;\n }\n\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ? undefined : 'svg';\n}\n","import extend from 'extend';\nimport axisDockUtil from './util/axis-dock-util';\nimport getTextRenderer from './util/get-text-renderer';\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 renderer: getTextRenderer(options.flags),\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';\nimport getTextRenderer from './util/get-text-renderer';\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 renderer: getTextRenderer(options.flags),\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';\nimport getTextRenderer from './util/get-text-renderer';\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 renderer: getTextRenderer(options.flags),\n dock,\n show,\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, columnOrder) {\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 if (Array.isArray(columnOrder) && columnOrder.some((el, i) => el !== i)) {\n const correctIndex = columnOrder.indexOf(fieldIdx);\n if (correctIndex !== -1) {\n fieldIdx = correctIndex;\n }\n }\n\n fieldIdx -= page.qArea.qLeft;\n\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, columnOrder }) {\n let propCell = mainCell;\n if (p.field && p.field !== f) {\n const propCellFn = getFieldAccessor(p.field, page, { cache }, columnOrder);\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 }, cube.qColumnOrder);\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 columnOrder: cube.qColumnOrder,\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, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\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 return Array.from(this);\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","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\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_find from \"./find.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\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[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 objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\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 find: node_find,\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 [Symbol.iterator]: node_iterator\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 {optional} from \"./accessors.js\";\nimport {Node, computeHeight} from \"./hierarchy/index.js\";\n\nvar preroot = {depth: -1},\n ambiguous = {},\n imputed = {};\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 path;\n\n function stratify(data) {\n var nodes = Array.from(data),\n currentId = id,\n currentParentId = parentId,\n n,\n d,\n i,\n root,\n parent,\n node,\n nodeId,\n nodeKey,\n nodeByKey = new Map;\n\n if (path != null) {\n const I = nodes.map((d, i) => normalize(path(d, i, data)));\n const P = I.map(parentof);\n const S = new Set(I).add(\"\");\n for (const i of P) {\n if (!S.has(i)) {\n S.add(i);\n I.push(i);\n P.push(parentof(i));\n nodes.push(imputed);\n }\n }\n currentId = (_, i) => I[i];\n currentParentId = (_, i) => P[i];\n }\n\n for (i = 0, n = nodes.length; i < n; ++i) {\n d = nodes[i], node = nodes[i] = new Node(d);\n if ((nodeId = currentId(d, i, data)) != null && (nodeId += \"\")) {\n nodeKey = node.id = nodeId;\n nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node);\n }\n if ((nodeId = currentParentId(d, i, data)) != null && (nodeId += \"\")) {\n node.parent = nodeId;\n }\n }\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (nodeId = node.parent) {\n parent = nodeByKey.get(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 } else {\n if (root) throw new Error(\"multiple roots\");\n root = node;\n }\n }\n\n if (!root) throw new Error(\"no root\");\n\n // When imputing internal nodes, only introduce roots if needed.\n // Then replace the imputed marker data with null.\n if (path != null) {\n while (root.data === imputed && root.children.length === 1) {\n root = root.children[0], --n;\n }\n for (let i = nodes.length - 1; i >= 0; --i) {\n node = nodes[i];\n if (node.data !== imputed) break;\n node.data = null;\n }\n }\n\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 = optional(x), stratify) : id;\n };\n\n stratify.parentId = function(x) {\n return arguments.length ? (parentId = optional(x), stratify) : parentId;\n };\n\n stratify.path = function(x) {\n return arguments.length ? (path = optional(x), stratify) : path;\n };\n\n return stratify;\n}\n\n// To normalize a path, we coerce to a string, strip the trailing slash if any\n// (as long as the trailing slash is not immediately preceded by another slash),\n// and add leading slash if missing.\nfunction normalize(path) {\n path = `${path}`;\n let i = path.length;\n if (slash(path, i - 1) && !slash(path, i - 2)) path = path.slice(0, -1);\n return path[0] === \"/\" ? path : `/${path}`;\n}\n\n// Walk backwards to find the first slash that is not the leading slash, e.g.:\n// \"/foo/bar\" ⇥ \"/foo\", \"/foo\" ⇥ \"/\", \"/\" ↦ \"\". (The root is special-cased\n// because the id of the root must be a truthy value.)\nfunction parentof(path) {\n let i = path.length;\n if (i < 2) return \"\";\n while (--i > 1) if (slash(path, i)) break;\n return path.slice(0, i);\n}\n\n// Slashes can be escaped; to determine whether a slash is a path delimiter, we\n// count the number of preceding backslashes escaping the forward slash: an odd\n// number indicates an escaped forward slash.\nfunction slash(path, i) {\n if (path[i] === \"/\") {\n let k = 0;\n while (i > 0 && path[--i] === \"\\\\\") ++k;\n if ((k & 1) === 0) return true;\n }\n return false;\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\nconst EPSILON = 1e-15; // To compensate floating error\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) + EPSILON)\n .toFixed(nDecimals)\n .slice(2)\n .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","const ChartStyleComponent = (fontResolver, theme, chartId) => {\n const propertyDefs = {};\n propertyDefs.getOptions = (key, ref) => {\n const getFontFamilyComponent = () => ({\n ref: `${ref}.fontFamily`,\n component: 'dropdown',\n options: () => fontResolver.getOptions(`${ref}.fontFamily`),\n defaultValue: () => fontResolver.getDefaultValue(`${ref}.fontFamily`),\n });\n\n const getFontSizeComponent = () => ({\n ref: `${ref}.fontSize`,\n component: 'dropdown',\n width: true,\n options: () => fontResolver.getOptions(`${ref}.fontSize`),\n defaultValue: () => fontResolver.getDefaultValue(`${ref}.fontSize`),\n });\n\n const getColorComponent = (theme, chartId) => ({\n ref: `${ref}.fontColor`,\n component: 'color-picker',\n width: false,\n defaultValue: () => {\n const color = theme.getStyle(chartId, `${ref}.color`, 'color');\n const palette = theme.getDataColorPickerPalettes()[0].colors;\n const index = palette.indexOf(color);\n return { color, index };\n },\n });\n\n const getFontWrapperComponent = (theme, chartId) => ({\n fontWrapper: {\n component: 'inline-wrapper',\n items: {\n fontSize: {\n ...getFontSizeComponent(),\n },\n fontColor: {\n ...getColorComponent(theme, chartId),\n },\n },\n },\n });\n return {\n labelSection: {\n component: 'items',\n ref: 'components',\n key,\n items: {\n fontFamily: {\n ...getFontFamilyComponent(),\n },\n ...getFontWrapperComponent(theme, chartId),\n },\n },\n };\n };\n return propertyDefs;\n};\n\nexport const getChartFontResolver = (theme, translator, chartId, createFontResolver, flags) =>\n createFontResolver({\n theme,\n translator,\n flags,\n config: {\n id: chartId,\n paths: ['axis.title', 'axis.label.name', 'label.value', 'legend.title', 'legend.label'],\n },\n });\n\nconst overrides = (key, layout) => (layout.components || []).find((c) => c.key === key);\n\nexport const getAxisTitleStyle = (chartId, theme, layout, flags) => {\n const axis = flags.isEnabled('CLIENT_IM_3364') ? overrides('axis', layout)?.axis : {};\n return {\n text: {\n fontFamily: axis?.title?.fontFamily || theme.getStyle(chartId, 'axis.title', 'fontFamily'),\n fontSize: axis?.title?.fontSize || theme.getStyle(chartId, 'axis.title', 'fontSize'),\n fill: axis?.title?.fontColor?.color || theme.getStyle(chartId, 'axis.title', 'color'),\n },\n };\n};\nexport const getAxisLabelStyle = (chartId, theme, layout, flags) => {\n const axis = flags.isEnabled('CLIENT_IM_3364') ? overrides('axis', layout)?.axis : {};\n return {\n labels: {\n fontFamily: axis?.label?.name?.fontFamily || theme.getStyle(chartId, 'axis.label.name', 'fontFamily'),\n fontSize: axis?.label?.name?.fontSize || theme.getStyle(chartId, 'axis.label.name', 'fontSize'),\n fill: axis?.label?.name?.fontColor?.color || theme.getStyle(chartId, 'axis.label.name', 'color'),\n },\n };\n};\n\nexport const getValueLabelStyle = (chartId, styles, layout, flags) => {\n const value = flags.isEnabled('CLIENT_IM_3364') ? overrides('value', layout)?.label : {};\n const fontFamily = value?.value?.fontFamily || styles.label.value.fontFamily;\n let fontSize = value?.value?.fontSize || styles.label.value.fontSize;\n fontSize = parseFloat(fontSize);\n const fill = value?.value?.fontColor?.color;\n return {\n fontFamily,\n fontSize,\n fill,\n };\n};\n\nexport const getLegendTitleStyle = (chartId, theme, layout, flags) => {\n const legend = flags.isEnabled('CLIENT_IM_3051') ? overrides('legend', layout)?.legend : {};\n return {\n fontFamily: legend?.title?.fontFamily || theme.getStyle(chartId, 'legend.title', 'fontFamily'),\n fontSize: legend?.title?.fontSize || theme.getStyle(chartId, 'legend.title', 'fontSize'),\n color: legend?.title?.fontColor?.color || theme.getStyle(chartId, 'legend.title', 'color'),\n };\n};\n\nexport const getLegendLabelStyle = (chartId, theme, layout, flags) => {\n const legend = flags.isEnabled('CLIENT_IM_3051') ? overrides('legend', layout)?.legend : {};\n return {\n fontFamily: legend?.label?.fontFamily || theme.getStyle(chartId, 'legend.label', 'fontFamily'),\n fontSize: legend?.label?.fontSize || theme.getStyle(chartId, 'legend.label', 'fontSize'),\n color: legend?.label?.fontColor?.color || theme.getStyle(chartId, 'legend.label', 'color'),\n };\n};\n\nexport default ChartStyleComponent;\n","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 { getValueLabelStyle } from '@qlik/common/extra/chart-style-component';\nimport Color from '@qlik/common/extra/color';\n\n//\n// Implementation details\n//\n\nfunction createLabelSettings(layout, themeService, chartId, flags) {\n const styles = themeService.getStyles();\n const valueLabelSettings = getValueLabelStyle(chartId, styles, layout, flags);\n const boxFillColor = valueLabelSettings.fill || styles.label.value.color;\n const getContrastColor = () => (ctx) =>\n Color.isDark(ctx.node.attrs.fill) ? styles.label.value.lightColor : styles.label.value.darkColor;\n return {\n settings: {\n sources: [\n {\n strategy: {\n settings: {\n ...valueLabelSettings,\n labels: [\n {\n placements: [\n { fill: boxFillColor },\n {\n fill:\n flags.isEnabled('CLIENT_IM_3364') && valueLabelSettings.fill\n ? boxFillColor\n : getContrastColor(),\n },\n ],\n },\n ],\n },\n },\n },\n ],\n },\n };\n}\n\nconst Label = {\n createSettings: createLabelSettings,\n};\n\nexport default Label;\n","import { getValue, themeService as createThemeService } from 'qlik-chart-modules';\nimport ChartBuilder from '@qlik/common/picasso/chart-builder/chart-builder';\nimport DependentInteractions from '@qlik/common/picasso/selections/dependent-interactions';\nimport { getAxisLabelStyle, getAxisTitleStyle } from '@qlik/common/extra/chart-style-component';\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 // Create components\n const chartBuilder = ChartBuilder.create({\n chartID,\n theme,\n isRtl,\n flags: chartView.flags,\n });\n const themeService = createThemeService({\n theme,\n config: {\n id: 'histogram',\n },\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 axisTitleStyle: getAxisTitleStyle(chartID, theme, layout, chartView.flags),\n axisLabelStyle: getAxisLabelStyle(chartID, theme, layout, chartView.flags),\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, themeService, chartID, chartView.flags);\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, flags, lasso, picasso, $element, backendApi, selectionsApi, renderState }) {\n this._super(picasso, $element, environment, backendApi, selectionsApi);\n\n this.flags = flags;\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 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, styleOptions, flags) => ({\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 items:\n flags && flags?.isEnabled('CLIENT_IM_3364')\n ? {\n axisTitleSection: {\n translation: 'properties.axis.title',\n component: 'panel-section',\n items: styleOptions.getOptions('axis', 'axis.title'),\n },\n axisLabelSection: {\n translation: 'properties.axis.label',\n component: 'panel-section',\n items: styleOptions.getOptions('axis', 'axis.label.name'),\n },\n valueLabelSection: {\n translation: 'properties.value.label',\n component: 'panel-section',\n items: styleOptions.getOptions('value', 'label.value'),\n },\n }\n : undefined,\n});\nexport default getStylingPanelDefinition;\n","import { fontResolver as createFontResolver, getValue } from 'qlik-chart-modules';\nimport isInteger from '@qlik/common/extra/is-integer';\nimport ChartStyleComponent, { getChartFontResolver } from '@qlik/common/extra/chart-style-component';\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, flags } = 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 const chartID = 'object.histogram';\n const fontResolver = getChartFontResolver(theme, translator, chartID, createFontResolver, flags);\n const styleOptions = ChartStyleComponent(fontResolver, theme, chartID);\n const presentation = {\n type: 'items',\n translation: 'properties.presentation',\n items: {\n styleEditor: stylingPanelEnabled && getStylingPanelDefinition(bkgOptionsEnabled, styleOptions, env?.flags),\n gridLines: {\n type: 'items',\n snapshot: {\n tid: 'property-gridLines',\n },\n items: {\n showGridLines: {\n ref: 'gridlines.auto',\n type: 'boolean',\n translation: 'properties.gridLine.spacing',\n component: 'switch',\n defaultValue: true,\n options: [\n {\n value: true,\n translation: 'Common.Auto',\n },\n {\n value: false,\n translation: 'Common.Custom',\n },\n ],\n },\n gridSpacing: {\n ref: 'gridlines.spacing',\n type: 'number',\n component: 'dropdown',\n defaultValue: 2,\n options: [\n {\n value: 0,\n translation: 'properties.gridLine.noLines',\n },\n {\n value: 2,\n translation: 'properties.gridLine.medium',\n },\n {\n value: 3,\n translation: 'properties.gridLine.narrow',\n },\n ],\n show(data) {\n return data.gridlines && !data.gridlines.auto;\n },\n },\n },\n },\n showLabels: {\n ref: 'dataPoint.showLabels',\n type: 'boolean',\n translation: 'properties.dataPoints.labelmode',\n component: 'switch',\n defaultValue: 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\nconst VIEW_DATA_HYPERCUBE_PATH = 'qUndoExclude.box';\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({\n propertyTree,\n hyperCubePath: viewDataMode ? VIEW_DATA_HYPERCUBE_PATH : hyperCubePath,\n viewDataMode,\n });\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 = VIEW_DATA_HYPERCUBE_PATH;\n return conversion.hypercube.exportProperties({ propertyTree, hypercubePath, viewData: true });\n },\n getExportRawDataOptions: histogramExport.getExportRawDataOptions,\n };\n}\n","import {\n useConstraints,\n useEffect,\n useElement,\n useMemo,\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';\nimport conversion from 'qlik-object-conversion';\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 dataDefinition = data(env);\n\n return {\n qae: {\n properties,\n data: {\n targets: [dataDefinition],\n },\n exportProperties: ({ propertyTree, hypercubePath, viewDataMode }) =>\n conversion.hypercube.exportProperties({\n propertyTree,\n hypercubePath: viewDataMode ? 'qUndoExclude.box' : hypercubePath,\n }),\n },\n ext: ext(env),\n component() {\n const constraints = useConstraints();\n const element = useElement();\n const environment = useEnvironment();\n const renderer = environment.options.renderer;\n const picasso = useMemo(() => picassoSetup(renderer), [renderer]);\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 flags: env.flags,\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 { useApp, useAppLayout, useTranslator, useOptions, useMemo, useTheme, useDeviceType } from '@nebula.js/stardust';\n\nexport default function useEnvironment() {\n const app = useApp();\n const appLayout = useAppLayout();\n const deviceType = useDeviceType();\n const options = useOptions();\n const theme = useTheme();\n const translator = useTranslator();\n\n const environment = useMemo(\n () => ({\n app,\n appLayout,\n deviceType,\n options,\n theme,\n translator,\n }),\n [app, appLayout, options.direction, options.freeResize, translator.language(), theme.name(), deviceType]\n );\n\n return environment;\n}\n","import picassojs from 'picasso.js';\nimport PicassoQ from 'picasso-plugin-q';\nimport PicassoHammer from 'picasso-plugin-hammer';\nimport Hammer from 'hammerjs';\nimport eventArea from './plugins/event-area';\nimport disclaimer from './disclaimer/disclaimer-component.jsx';\n\nexport default function setup(renderer) {\n const picasso = picassojs();\n // default to use canvas renderer\n picasso.renderer.prio([renderer || 'canvas']);\n\n // TODO: investigate picasso warnings\n // if (DebugFlags.DEVELOPER) {\n // picasso.logger.level(picassojs.logger.LOG_LEVEL.WARN);\n // }\n\n picasso.use(PicassoQ);\n picasso.use(PicassoHammer(Hammer));\n picasso.use(eventArea);\n picasso.component('disclaimer', disclaimer);\n return picasso;\n}\n","import { 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 { 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","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","window","exports","e","r","n","t","o","i","l","call","m","c","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","__esModule","create","bind","default","prototype","hasOwnProperty","p","s","toString","a","getOwnPropertyDescriptor","Array","isArray","u","constructor","name","configurable","newValue","writable","arguments","f","length","split","Number","isNaN","updated","previous","concat","qLibraryId","qInfo","qId","dimensionList","qData","info","qTags","indexOf","trim","charAt","substring","qName","qDerivedFieldData","qDerivedFieldLists","qFieldDefs","qDef","fieldList","fullAccumulation","fullRange","crossAllDimensions","replace","y","q","b","D","modifier","dimensions","dimensionAndFieldList","funcComp","valueComp","showExcludedValues","v","g","properties","isFullRange","getNumDimensions","getExpressionWithExcludedComp","expression","treatMissingAsNull","getRowNoComp","getNumStepComp","steps","getAboveCompPrefix","getAboveCompSuffix","getAboveComp","getFunctionPrefix","getFunctionSuffix","getRangeComp","getAggrComp","getExcludedComp","needDimension","primaryDimension","accumulationDimension","getDimComp","qSortCriterias","qSortByExpression","qSortByNumeric","qSortByAscii","simplifyExpression","extractInputExpression","outputExpression","initModifier","keys","forEach","isNumeric","isApplicable","minDimensions","maxDimensions","getExpressionWithMarkers","canExtract","getDimDefWithWrapper","getFieldWithWrapper","x","iterator","E","A","C","I","M","S","L","slice","O","generate","val","push","op","path","splice","from","apply","TypeError","Error","clone","createPatch","toLowerCase","updateObject","P","F","Promise","resolve","map","qOp","qValue","JSON","stringify","qPath","applyPatches","N","V","w","H","disabled","T","translationKey","generateExpression","numDimensions","enableTotalsFunction","propertyPanelDef","items","translation","show","refFn","primaryDimensionTooltip","schemaIgnore","defaultValue","options","qHyperCube","qDimensionInfo","qGroupFallbackTitles","crossAllDimensionsTooltip","range","rangeFull","rangeCustom","rangeSteps","change","Math","abs","ext","support","modifiers","j","_","R","B","nullSuppression","k","showNull","inverted","U","G","W","$","z","Y","CURRENT_SELECTION","SELECT_FIELD_VALUE","DISREGARD_SELECTION","J","ONE_DIMENSION","ALL_DIMENSIOANS","DISREGARD_ALL_DIMENSIONS","K","X","Q","Z","ee","dimensionalScopeOneDimension","tooltipTranslation","dimensionalScopeOneDimensionTooltip","dimensionalScopeAllDimensions","dimensionalScopeAllDimensionsTooltip","dimensionalScopeDisregardAllDimensions","dimensionalScopeDisregardAllDimensionsTooltip","selectionScope","re","selectionScopeCurrentSelection","selectionScopeSpecificValue","selectionScopeTotal","dimensionalScope","ne","te","oe","ie","ae","se","join","field","updateModifier","qDimensions","modifierSelectionScope","modifierSelectionScopeTooltip","dropdownOnly","app","getFieldList","then","modifierDimensionalScope","modifierDimensionalScopeTooltip","supportTooltip","getDisregardSelectionComp","getFieldSelectionComp","getTotalComp","getSelectedDimComp","ue","getExpression","getExpressionRef","getLibraryIdRef","getLibraryId","getLabelRef","getLabelExpressionRef","le","initBase","isValid","restoreBase","base","ce","pe","fe","accumulation","movingAverage","difference","normalization","me","de","applyModifiers","ye","cleanUpMeasure","qe","destroy","id","masterItemSubscriber","unsubscribe","hasActiveModifiers","be","getActiveModifier","De","isSupportedModifiers","some","isApplicableSupportedModifiers","modifierTypes","measureBase","limitedSorting","measures","he","Se","Ne","ifEnableTotalsFunction","ve","model","isSnapshot","masterItem","isFirstTime","lastReloadTime","Me","measure","getEffectiveProperties","Ee","Ve","Le","Oe","libraryIds","ge","Ce","oldProperties","runUpdateIfChange","libraryItemsProps","we","Fe","newProperties","libraryId","qMeasure","qLabel","qLabelExpression","quarantine","qNumFormat","isCustomFormatted","coloring","qHyperCubeDef","qAggrFunc","Ae","xe","Ie","getDimensionList","all","measureLibraryIds","dimensionLibraryIds","getMeasure","getProperties","getDimension","Pe","qHasSoftPatches","qExtendsId","setProperties","callback","dimension","enabled","listener","layoutSubscribe","subscribe","dispose","clearUndoBuffer","charCodeAt","String","fromCharCode","floor","getValue","setValue","isEmpty","isAtomicValue","test","generateId","round","random","isOrderedSubset","indexAdded","indexRemoved","findItemByPropertyValue","findIndexByPropertyValue","addDimensions","exportFormat","data","excludedDimensions","addMeasures","qMeasures","excludedMeasures","setInterColumnSortOrder","qInterColumnSortOrder","interColumnSortOrder","copyProperties","updateLayoutExclude","qLayoutExclude","changed","to","storeMeasuresModifiers","store","match","parse","qv","othersLabel","pow","importCommonProperties","visualization","copyPropertyIfExist","copyPropertyOrSetDefault","getDefaultDimension","autoSort","cId","qNullSuppression","qOtherLabel","qOtherTotalSpec","qOtherLimitMode","qOtherMode","qOtherSortMode","qSuppressOther","getDefaultMeasure","numFormatFromTemplate","qTrendLines","newHyperCubeDef","defaultDimension","maxMeasures","minMeasures","defaultMeasure","getMaxMinDimensionMeasure","dataDefinition","max","min","createNewProperties","initialProperties","hypercubePath","key","components","shouldInitLayoutExclude","initLayoutExclude","updateDimensionsOnAdded","added","updateMeasuresOnAdded","restoreMeasuresModifiers","exportProperties","propertyTree","viewDataMode","qProperty","filters","qContextSetExpression","qDynamicScript","importProperties","defaultPropertyValues","extension","supportedFilters","isHCModifierSupported","qChildren","qTop","qLeft","qWidth","qHeight","qMode","cellBackgroundColor","cellForegroundColor","colorByAlternative","colorByExpression","tooltip","urlLabel","url","qAttribute","moveByIdFromGroup","IDMAP","CELL_BACKGROUND_COLOR","CELL_FOREGROUND_COLOR","COLOR_BY_ALTERNATIVE","COLOR_BY_EXPRESSION","TOOLTIP","CELL_LINK_LABEL","CELL_LINK_URL","getNumMeasures","wrapFieldName","getItemLabel","colorModeOptions","primary","multiColor","scatterplot","piechart","linechart","distributionplot","altLabel","qStringExpression","qExpr","substr","isDimension","attributeExpression","item","qExpression","matchMeasure","activeMeasureIndex","labelExpRef","colorMapRef","qSortBy","qAttributeDimensions","qAttributeExpressions","qFieldLabels","useMasterNumberFormat","mode","byDimDef","activeDimensionIndex","byMeasureDef","formatting","auto","changeProperty","getCanColorBy","byDimension","byMeasure","byMultiple","byExpression","shouldUpdateColorBy","canColorBy","autoColor","colorMode","updateColorBy","deleteTotalMode","qTotalMode","shouldAddColorByExpression","addColorByExpression","switchToAutoColor","shouldSwitchToColorPersistent","handleAutoMinMax","measureAxis","autoMinMax","handleMeasuresAxis","measureType","measureAxes","series","axis","line","marker","bar","total","includes","filter","sort","supportedAutoMinMax","qColumnOrder","columnOrder","arrayPath","quarantineName","arrayName","itemPath","unquarantine","quarantineAlternative","unquarantineAlternative","hypercube","colorChart","axisChart","quarantineProperty","unquarantineProperty","quarantineArrayProp","unquarantineArrayProp","conditionalColoring","conditionalShow","BINNING_DEFAULTS","AUTO","BIN_COUNT","BIN_SIZE","LABEL","OFFSET","COUNT_DISTINCT","BIN_MODE","freeze","version","qAlwaysFullyExpanded","qSuppressZero","qSuppressMissing","bins","binCount","binSize","offset","countDistinct","binMode","paletteColor","index","dataPoint","showLabels","dimensionAxis","minMax","spacing","gridlines","refLine","refLines","sorting","showTitles","subtitle","footnote","env","translator","description","next","done","return","RegExp","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","rgb","formatHex","formatRgb","exec","parseInt","NaN","opacity","copy","assign","displayable","hex","formatHex8","formatHsl","brighter","darker","clamp","PI","cos","sin","atan2","sqrt","bt","ke","gamma","An","xt","qt","Xt","children","Zt","Map","Qt","Jt","nn","pop","parent","depth","eachBefore","tn","en","count","eachAfter","each","find","sum","ancestors","descendants","leaves","links","source","target","reverse","search","toFixed","lastIndexOf","vo","yo","go","bo","xo","qo","wo","reduce","Mo","ko","theme","extend","matrix","attribute","Boolean","Hi","Ri","Vi","toUpperCase","groupHeader","styles","fontFamily","_i","flags","Set","metaText","isEnabled","zi","Bi","getDefaultValue","getOptions","Yi","$i","Ui","Ki","Gi","config","paths","fnTest","Class","className","proto","_super","fn","tmp","ret","ctor","Function","idGen","getChar","charCode","base62","chr","SCROLLBAR_KEY","getAxisDock","direction","isRtl","getYAxisDock","getXAxisDock","yDockNearFar","axisDockUtil","getOppositeAxisDock","rangesOfLRgExp","rangesOfRRgExp","rangesOfALRgExp","isLtrChar","isRtlChar","rtlUtils","lrm","rlm","detectTextDirection","refLineUtil","lineSettings","_options$style","defaultSettings","stroke","getColorPickerColor","strokeDasharray","lineType","lineLabelSettings","chartID","labelColor","labelFontSize","labelFontFamily","align","vAlign","text","fill","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","SENSE_PICASSO_SPACING_COEFFICIENT","DimensionMeasureChart","chartBuilder","opts","measureAxisProperties","dimensionAxisProperties","chartOrientation","orientation","CONSTANTS","isChartHorizontal","measureDirection","dimensionDirection","includeMeasureAxisComponent","includeMeasureAxisTitleComponent","measureTitleText","includeDimensionAxisComponent","includeDimensionAxis","includeDimensionAxisTitleComponent","dimensionTitleText","includeGridlines","includeRefLines","interactionActions","measureAxisSettings","scale","axisLabelStyle","forceBounds","showBounds","measureAxisOptions","getMeasureAxisOptions","addComponent","addMeasureAxisComponent","measureTitleSettings","axisTitleStyle","getMeasureAxisTitleOptions","addMeasureAxisTitleComponent","measureScaleSettings","measureScaleOptions","measureSource","ticks","distance","addScale","addMeasureScale","dimensionAxisSettings","dimensionAxisOptions","getDimensionAxisOptions","addDimensionAxisComponent","dimensionAxisTitleSettings","dimensionAxisTitleOptions","getDimensionAxisTitleOptions","addDimensionAxisTitleComponent","dimensionScaleOptions","dimensionSource","dimensionScaleSettings","addDimensionScale","gridlinesOptions","gridlinesSettings","minorTicks","addGridlinesComponent","hasNavigation","getSettings","scroll","viewSize","scrollSettings","scrollbarOptions","isHorizontal","scrollBarSettings","addInteractionActions","isEnabledFn","targetIsScrollbar","manager","startPoint","center","deltaX","deltaY","chart","componentsFromPoint","tap","enable","events","emit","pan","panstart","panend","pancancel","getScrollActions","isNavigationEnabledFn","addScrollbarComponent","axisDock","refLinesSettings","oob","lines","refLinesLabelsSettings","require","measureText","formatter","scales","labelWidths","formattedValue","minimumText","wanted","required","maxLabelWidth","labelPadding","expressionValue","lineOptions","addRefLineComponent","enableLasso","selectionsEnabled","lassoOptions","brushKey","brushComponents","brushData","addLassoComponent","enableDimRange","rangeDimSettings","rangeDimOptions","brushAxis","brushArea","brushScale","addRangeDimComponent","dimRange","enableMeasureRange","rangeMeasureSettings","rangeMeasureOptions","multiple","addRangeMeasureComponent","measureRange","enableAreaRange","rangeMinorSettings","chartInstance","addRangeAreaComponent","areaRange","brushActions","addInteraction","gestures","addInteractionComponent","actions","invert","domain","trackBy","getTextRenderer","_flags$isEnabled","navigator","userAgent","axisLineStroke","titleFontSize","titleFill","labelsFill","labelsFontSize","titleFontFamily","labelsFontFamily","brush","trigger","consume","strokeWidth","labels","tiltAngle","maxEdgeBleed","maxSize","axisSettings","active","measureScale","fields","expand","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","comp","contexts","fillActive","bubbles","isStartBorder","binStart","binEnd","action","rangeArea","chartHeight","chartWidth","itemFill","itemFontSize","itemFontFamily","anchor","size","vertical","navigation","button","class","content","state","lineHeight","wordBreak","margin","top","bottom","shape","showTitle","categoricalLegend","tickFill","tickFontSize","tickFontFamily","getAlignValue","word","major","tick","sequentialLegend","gridLine","interaction","oobColor","oobBackgroundColor","padding","eventArea","sources","selector","strategy","parseFloat","placements","position","justify","ChartBuilder","dockLayout","interactions","getComponent","addPreset","ChartPresets","validateComponentKeys","msg","ALIGNMENT","CENTER","BOTTOM","DisclaimersConfig","DISCLAIMERS","alignment","util","getNoDataExistAttribute","qSize","qcy","qcx","getLimitedDataAttribute","maxNbrOfDimensions","result","stackedDataPages","explicitLimitedData","qDataPages","paging","qMatrix","qStackedDataPages","qSubNodes","node","qDown","qArea","getNegativeOrZeroValuesAttribute","supportNegative","qMeasureInfo","qMin","getOnlyNegativeOrZeroValuesAttribute","every","qMax","getOnlyNanDataAttribute","explicitOnlyNanData","getDataRangeIncludingZeroAttribute","supportRangeOverZero","measureInfo","len","explicitMinOn","explicitMaxOn","MAX_VALUE","hasDataRangeIncludingZero","applyAttributes","dataAttributes","NoDataExist","RequireNumericDimension","explicitRequireNumericDimension","LimitedData","NegativeOrZeroValues","OnlyNegativeOrZeroValues","OnlyNanData","DataRangeIncludingZero","Helper","disclaimersConfig","supportedDisclaimers","list","Disclaimer","environment","clear","isValidAndSupported","isAnyValidDisclaimer","self","getMessage","str","ERRORS","SET","DISPLAY","_applyDefaultSupport","supported","getComponentSettings","_this$environment","_this$environment$opt","vizAttributes","helper","DisclaimerComponentHelper","message","set","attributes","AttributesUtil","ChartView","picasso","$element","backendApi","selectionsApi","_selectionsApi","_on","_disclaimer","_dataPaths","picassoElement","dataAreaElem","updateEnvironment","setDataPaths","dataPaths","getData","hyperCube","dataPagesPath","page","maxHeight","pages","hasValidData","paint","_disclaimerComponent$","getDisclaimerAttributes","disclaimerComponent","isSuppressingDisc","chartSettings","createChartSettings","errorMsg","console","error","updateChart","_painted","resize","addSnapshotChartSettings","freeResize","snapshotData","logicalSize","preserveAspectRatio","updateData","_destroyed","reject","permissions","isPartialData","_this$environment$app","_this$environment$app2","localeInfo","appLayout","qLocaleInfo","colorService","update","partialData","setAttribute","off","getViewState","isLassoDisabled","setSnapshotData","snapshotLayout","chartData","hasOwn","toStr","gOPD","arr","isPlainObject","obj","hasOwnConstructor","hasIsPrototypeOf","setProperty","getProperty","src","copyIsArray","deep","getFieldAccessor","deps","cache","origin","fieldIdx","attrIdx","attrDimIdx","wrappedFields","attrDims","instance","attrExps","el","correctIndex","row","qAttrDims","qValues","qAttrExps","datumExtract","propCfg","cell","_ref","cellToValue","_ref2","mainCell","prop","rowIdx","sourceKey","targetProp","propCell","propCellFn","qRow","cfgs","dataItems","cube","raw","main","normalizeConfig","propsArr","track","trackType","tracker","trackedItems","fieldValues","fieldLabels","cfg","itemData","collect","node_count","node_each","that","node_eachBefore","nodes","node_eachAfter","node_find","node_sum","node_sort","compare","node_path","start","ancestor","leastCommonAncestor","aNodes","bNodes","node_ancestors","node_descendants","node_leaves","node_links","root","node_iterator","current","hierarchy","mapChildren","objectChildren","child","childs","Node","computeHeight","node_copy","copyData","optional","preroot","ambiguous","imputed","defaultId","defaultParentId","parentId","stratify","nodeId","nodeKey","currentId","currentParentId","nodeByKey","normalize","parentof","has","slash","subpath","container","carr","flattenTree","arrIndexAtTargetDepth","treeAccessor","sourceDepth","targetDepth","findField","query","allFields","DIM_RX","M_RX","ATTR_EXPR_RX","ATTR_DIM_RX","getColumnOrder","getDimensionColumnOrder","ii","getFieldDepth","isFieldDimension","fieldDepth","pseudoMeasureIndex","measureIdx","remainder","treeOrder","qEffectiveInterColumnSortOrder","sourceDepthObject","targetDepthObject","valueFn","attrFn","nodeFn","_data$qAttrDims","_data$qAttrExps","doIt","_ref3","pCfg","coll","collStr","cells","accessor","valueAccessor","attrAccessor","reduceLabel","getHierarchy","rootPath","childNodes","picker","tree","getHierarchyForSMode","order","__root","__id","isNew","_cell$qElemNumber","qElemNumber","qElemNo","_objectSpread","__parent","attachPropsAccessors","_ref4","itemDepthObject","accessors","augment","propDefs","idx","replicaDescendants","isTree","mapped","module","EPSILON","escapeRegExp","SIprefixes","percentage","radix","oct","dec","bin","rom","functional","prec","formatRadix","fradix","pattern","decimal","formatRoman","nThousands","numeral","formatFunctional","temp","toExponential","escape","justStr","createRegExp","thousand","getAbbreviations","listSeparator","qNumericalAbbreviation","abbreviations","abbreviation","abbreviationTuple","preparePattern","abbreviate","parts","lastPart","numericPattern","prefix","postfix","groupTemp","decTemp","regex","splitPattern","matchPrecisionResult","maxPrecision","numericRegex","NumberFormatter","thousandDelimiter","decimalDelimiter","patternSeparator","prepare","subtype","format","formatValue","prep","_prepared","positive","isFunctional","negative","zero","exponent","absValue","num","decimalPartPattern","abbr","sciValue","original","abbrArray","lowerAbbreviation","suggestedAbbrExponent","upperAbbreviation","wholePart","wholePartPattern","nDecimals","nZeroes","decimalPart","toPrecision","ceil","log","static","numberFormatFactory","_len","args","_key","memoize","func","multipleArguments","toKey","arg","cacher","counter","fifo","qType","qformat","memoized","TYPES","INTEGER","NUMBER","FIXED_TO","MONEY","DATE","TIME","DATE_TIME","INTERVAL","DAYS","DAYS_ABBR","MONTHS","MONTHS_ABBR","SECONDS_PER_DAY","pad","parseDate","twelveFormat","getUTCHours","day","getUTCDay","year","getUTCFullYear","month","getUTCMonth","date","getUTCDate","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","getRemainder","parseIntervalDays","days","ms","parseInterval","units","Date","UTC","getTime","getDay","someT","getMasks","inst","YY","YYY","def","MM","MMM","locale_months_abbr","locale_months","WW","WWW","locale_days_abbr","locale_days","DateFormatter","qtype","qCalendarStrings","qLongDayNames","qDayNames","qLongMonthNames","qMonthNames","qTimeFmt","qDateFmt","qTimestampFmt","hasTwelveFlag","parsedDate","masks","masksArr","mask","dateTimeRegex","submask","dateFormatFactory","MS_PER_DAY","QlikTimeToDate","locale","li","nqt","createFromMetaInfo","meta","timeFormat","qFmt","qThousandSep","qDecimalSep","isAuto","qIsAutoFormat","qThou","qDec","numberFormat","qField","values","fieldExtractor","sourceField","labelFn","qFallbackTitle","tags","createFields","parentKey","fieldKey","qNum","virtualFields","extractionConfig","extractor","hierarchyConfig","_cache","qNodesOnDim","TExtractor","augmentTree","qTreeDataPages","SExtractor","dimAcc","measAcc","traverse","ff","override","LAYOUT_TO_PROP","HC_RX","TD_RX","SHORTEN_HC","SHORTEN_TD","extractFieldFromId","dimensionIdx","pathToCube","shortenizer","shortenPath","attrCol","hc","dim","qAttrExprInfo","meas","qBrush","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","_opts$orMode","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","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","formatMeasureValue","measureContent","OTHERS_ELEMNO","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","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","updateHash","qUndoExclude","hashCode","hashBuilder","getDefaultHashDataForHyperCube","hyperCubeDef","dfds","getMeasureDataFromLibraryItem","getMeasureExpressions","measureExpressions","drillLevel","getDrillIndices","dimensionExpressions","getDimensionExpressions","dimensionInfo","qGroupFieldDefs","getDimensions","qGroupPos","JSONPatch","originalExtend","isObject","isUndef","isFunction","isSpecialProperty","getParent","numPart","part","newData","basePath","patches","generateValue","oldVal","tmpPath","newA","oldA","tmpIdx","findIndex","patchArray","patch","newValues","oldParent","SoftPropertyHandler","_model","setModel","saveSoftProperties","prevEffectiveProperties","effectiveProperties","async","propertiesPromise","effectivePromise","effective","clearSoftPatches","hardPropertiesChecker","canModifyHardProperties","qMeta","privileges","Save","saveDerivedProperties","prevProperties","InputValidator","validate","generateDerivedProperties","DerivedProperties","_generationInProgress","isDerivedUpToDate","Hash","updateDerivedProperties","layoutIsUpdated","addDefaultHyperCubeHash","HashBuilder","ExpressionWrapper","wrapExpression","ExpressionReplacer","replaceExpressionTokens","tokenMappings","tokenIdentifiers","identifiers","tokenExpression","tokenString","returnExpression","string","isGlobal","isGrouped","escapedString","regexpString","ExpressionGenerator","template","mappings","explicitMappings","wrap","variations","variation","variationExpressions","assembleVariation","regExp","stringArray","HyperCubeGenerator","generateHyperCubeDef","knownMappings","dimensionIndices","measureIndices","returnPromise","spliceIdentifiedMatches","getMappingRegExp","getExpressionFromDimension","getExpressionFromMeasure","getKnownMappings","allMappings","generatedHyperCubeDef","dimensionTemplate","measureTemplate","getAllHyperCubeExpressions","getExpressionFromLibraryItem","drillIndex","qDim","matches","isFinite","isInteger","histogramUtils","getBinSize","getDerivedBinSize","getDerivedBinOffset","getDerivedBinCount","getBinOffset","isAutoBin","isCountDistinct","getBinMode","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","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","getItemSize","getScrollApi","move","dragmove","dragend","dragcancel","callNavBtnGesture","navBtnTap","btn","attr","getAttribute","DependentInteractions$1","clearKey","activeChart","newType","cont","onScrollUpdate","rangeClearTap","ChartStyleComponent","fontResolver","chartId","propertyDefs","getColorComponent","getDataColorPickerPalettes","colors","labelSection","getFontWrapperComponent","fontWrapper","fontColor","getChartFontResolver","createFontResolver","overrides","getAxisTitleStyle","_overrides","_axis$title","_axis$title2","_axis$title3","_axis$title3$fontColo","getAxisLabelStyle","_overrides2","_axis$label","_axis$label$name","_axis$label2","_axis$label2$name","_axis$label3","_axis$label3$name","_axis$label3$name$fon","MAX_GLYPH_COUNT","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","themeService","getStyles","valueLabelSettings","getValueLabelStyle","_overrides3","_value$value","_value$value2","_value$value3","_value$value3$fontCol","ctx","lightColor","darkColor","ChartSettings","dimTitle","getTheme","setTheme","createThemeService","_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","propsLogic","onChangeCalcCond","_data$qUndoExclude","_data$qUndoExclude$bo","baseCube","generatedCube","qCalcCond","qCalcCondition","getStylingPanelDefinition","bkgOptionsEnabled","styleOptions","chartTitle","useGeneral","useBackground","axisTitleSection","axisLabelSection","valueLabelSection","maxCountMode","sizeMode","inAdvancedMode","showBinCount","propertyDefinition","_env$flags","_env$flags2","stylingPanelEnabled","anything","sense","classification","section","barColor","dualOutput","defaultColor","getDataColorSpecials","palette","presentation","styleEditor","snapshot","tid","showGridLines","gridSpacing","simpleLabels","_props$qHyperCubeDef$","pointLabels","_props$qHyperCubeDef$2","dimensionTitle","_props$qHyperCubeDef$3","convertFunctions","getter","setter","measureTitle","_props$qHyperCubeDef$4","uses","expressionType","placeholderTranslation","othersGroup","addons","dataHandling","calcCond","colorBackground","customBinMode","undefinedValue","autoMessage","definition","binMessage","isExpression","minBinMessage","alternativeTranslation","dimensionLimits","otherMode","readOnly","otherSortMode","otherCounted","otherLimitMode","limitMode","otherLimit","calculatedAgainstMessage","measureName","others","suppressOther","exploreProperties","histogramExport","getExportRawDataOptions","menu","exportDialog","addItem","VIEW_DATA_HYPERCUBE_PATH","_env$anything","pp","softDefinition","cssScaling","export","exportData","sharing","viewData","mapProperties","getDefaultDimensionProperties","getDefaultMeasureProperties","conversion","hyperCubePath","requireNumericDimension","exportTableProperties","supernova","qae","useConstraints","useElement","useApp","useAppLayout","useDeviceType","useOptions","useTheme","useTranslator","useMemo","language","useEnvironment","picassojs","prio","use","PicassoHammer","picassoSetup","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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","x_google_ignoreList":[3,7,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75]}