@nebula.js/sn-histogram 0.33.1 → 0.34.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/picasso/picasso-setup.js","../../../../chart-modules/common/nebula/use-environment.js","../../../../chart-modules/common/nebula/use-lasso.js","../../../../chart-modules/common/nebula/resize.js"],"sourcesContent":["export default function init(Picasso) {\n // Transparent component, placed on top of the data area and used to register event on\n Picasso.component('event-area', {\n mounted(element) {\n element.classList.add('event-area');\n element.style.pointerEvents = 'auto';\n element.style.zIndex = 1;\n },\n render() {\n const nodes = [];\n return nodes;\n },\n });\n}\n","/** @jsx h */\n\nfunction getStyle(dock, rect) {\n const style = {\n pointerEvents: 'auto',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: '#7b7a78',\n fontStyle: 'italic',\n fontSize: '13px',\n };\n\n switch (dock) {\n case 'left':\n style.width = `${rect.height}px`;\n style.transform = `rotate(-90deg) translate(-${rect.height}px, 0)`;\n style.transformOrigin = 'top left';\n break;\n\n case 'right':\n style.width = `${rect.height}px`;\n style.transform = `rotate(90deg) translate(0, -${rect.width}px)`;\n style.transformOrigin = 'top left';\n break;\n\n case 'center':\n style.width = `${rect.width}px`;\n style.height = `${rect.height}px`;\n style.color = '#595959';\n style.fontStyle = 'normal';\n style.fontSize = '1.2em';\n style.textAlign = 'center';\n break;\n\n default:\n case 'top':\n case 'bottom':\n style.justifyContent = 'flex-start';\n style.alignItems = 'flex-start';\n break;\n }\n return style;\n}\n\nexport default {\n renderer: 'dom',\n disableTriggers: true,\n preferredSize: function preferredSize() {\n return 22;\n },\n render(h) {\n const {\n settings: { label, rtl },\n layout: { dock },\n } = this.settings;\n const dir = (dock === 'top' || dock === 'bottom') && rtl ? 'rtl' : 'ltr';\n const style = getStyle(dock, this.rect);\n\n const modifiedLabel = dock === 'center' ? label : `* ${label}`;\n\n const spanStyle = dock !== 'center' ? { overflow: 'hidden', whiteSpace: 'nowrap', textOverflow: 'ellipsis' } : {};\n\n return (\n <div style={style} dir={dir}>\n <span ref={this.alignToRef} style={spanStyle} title={modifiedLabel}>\n {modifiedLabel}\n </span>\n </div>\n );\n },\n};\n","const lassoIcon = {\n shapes: [\n {\n type: 'path',\n attrs: {\n d: 'M15.9488039,5.20769129 C16.0487326,6.70662306 15.3492311,8.30548361 14.050157,9.30477145 C12.651154,10.5039169 10.8524359,10.8037032 8.85386017,10.4039881 L7.3549284,10.0042729 L5.75606786,9.70448659 C5.75606786,9.90434416 5.65613907,10.0042729 5.4562815,10.2041305 C5.05656637,10.6038456 4.55692244,10.8037032 4.05727852,10.8037032 C3.75749217,10.8037032 3.45770582,10.7037744 3.15791946,10.6038456 C3.05799068,10.903632 3.15791946,11.2034184 3.45770582,11.7030623 C5.05656637,14.0014243 3.85742095,15.9000712 3.75749217,16 L2.2585604,15.3004985 C2.2585604,15.2005697 2.95806189,14.0014243 1.95877405,12.6024213 C1.6589877,12.0028486 1.15934378,11.0035608 1.55905891,10.0042729 C1.6589877,9.80441537 1.75891648,9.6045578 1.95877405,9.40470024 C1.6589877,8.90505631 1.55905891,8.30548361 1.85884527,7.7059109 C1.55905891,7.40612455 1.25927256,7.1063382 1.15934378,6.70662306 C0.859557424,5.90719279 0.959486209,4.5081898 1.6589877,3.30904439 C1.95877405,2.6095429 2.55834676,2.0099702 3.15791946,1.51032628 C3.95734974,0.91075357 4.95663758,0.610967217 6.15578299,0.311180864 C9.05371774,-0.388320626 11.9516525,0.111323295 13.9502282,1.61025506 C15.1493736,2.50961412 15.8488751,3.80868831 15.9488039,5.20769129 Z M13.0508691,8.10562604 C13.8502994,7.40612455 14.3499433,6.40683671 14.3499433,5.30762008 C14.2500145,4.20840345 13.550513,3.40897318 12.9509403,2.90932926 C12.1515101,2.40968533 11.252151,2.0099702 10.1529344,1.81011263 C8.95378895,1.61025506 7.75464354,1.71018384 6.45556935,1.91004141 C4.75678001,2.30975655 3.65756338,3.00925804 3.05799068,4.10847467 C2.55834676,5.00783373 2.65827554,5.90719279 2.75820433,6.20697914 C2.75820433,6.30690792 2.85813311,6.40683671 3.05799068,6.40683671 C3.15791946,6.40683671 3.25784825,6.40683671 3.35777703,6.40683671 C3.45770582,6.40683671 3.45770582,6.40683671 3.45770582,6.40683671 L3.5576346,6.40683671 L3.65756338,6.40683671 C4.65685123,6.40683671 5.4562815,6.90648063 5.85599664,7.80583969 L5.85599664,8.00569726 C6.35564056,8.10562604 7.05514205,8.30548361 7.75464354,8.50534118 L9.25357531,8.90505631 C10.0530056,9.0049851 10.7525071,9.0049851 11.4520086,8.80512753 C12.0515813,8.70519875 12.5512252,8.40541239 13.0508691,8.10562604 Z',\n },\n },\n ],\n};\n\nexport default lassoIcon;\n","import { onTakeSnapshot, useImperativeHandle } from '@nebula.js/stardust';\n\nconst setupSnapshot = (chartInstance) => {\n onTakeSnapshot((layout) => {\n if (!chartInstance) {\n return undefined;\n }\n\n return chartInstance.setSnapshotData(layout);\n });\n\n useImperativeHandle(\n () => ({\n getViewState() {\n if (!chartInstance) {\n return undefined;\n }\n return chartInstance.getViewState();\n },\n }),\n [chartInstance]\n );\n};\n\nexport default setupSnapshot;\n","const BINNING_DEFAULTS = {\n AUTO: true, // True means we calculate the BIN_SIZE to generate BIN_COUNT number of bins\n BIN_COUNT: 10, // The number of bins the user wants when AUTO = true\n BIN_SIZE: 10, // The size(width) of the bins the user wants when AUTO = false\n LABEL: 'x', // The label parameter to the Class function\n OFFSET: 0, // The offset parameter to the Class function\n COUNT_DISTINCT: false, // True means we only count distinct values\n BIN_MODE: 'maxCount', // \"maxCount\" means that we can only adjust the maximum amount of bins. \"size\" mean that we can adjust the width and offset\n};\n\nObject.freeze(BINNING_DEFAULTS);\n\nexport default BINNING_DEFAULTS;\n","import BINNING_DEFAULTS from './binning-defaults';\n\n/**\n * Color information structure. Holds the actual color and index in palette.\n * @typedef {object} paletteColor\n * @property {string} color - Color as hex string (mandatory if index: -1)\n * @property {number} index - Index in palette\n */\n\n/**\n * Styling settings for reference line\n * @typedef {object} refLineStyle\n * @property {number} [lineThickness=2] Set the thickness for this reference line.\n * @property {string} [lineType=''] Set the dash type for this reference line.\n */\n\n/**\n * @typedef {object} refLine\n * @property {boolean|ValueExpression} show=true Set to true to display this reference line.\n * @property {string} label Reference line label.\n * @property {boolean} [showLabel=true] Set to true to show the label of this reference line.\n * @property {boolean} [showValue=true] Set to true to show the value of this reference line.\n * @property {paletteColor} paletteColor\n * @property {refLineStyle} [style] - Styling settings for reference line\n * @property {boolean} [coloredBackground=false] Set to true to fill the label and/or value of this reference line with this color\n */\n\n/**\n * @namespace properties\n * @entry\n */\nconst properties = {\n /**\n * Current version of this generic object definition.\n * @type {string}\n * @default\n */\n version: process.env.PACKAGE_VERSION,\n\n /**\n * Extends `HyperCubeDef`, see Engine API: `HyperCubeDef`.\n * @extends {HyperCubeDef}\n */\n qHyperCubeDef: {\n qDimensions: [],\n qMeasures: [],\n qMode: 'S',\n qAlwaysFullyExpanded: true,\n qSuppressZero: false,\n qSuppressMissing: true,\n },\n /**\n * Bin settings.\n * @type {object}\n */\n bins: {\n /**\n * Auto mode generates a nice looking histogram without special parameters.\n * @type {boolean}\n * @default\n */\n auto: BINNING_DEFAULTS.AUTO,\n /**\n * Number of bars to be displayed, used when binMode is set to 'maxCount'.\n * @type {number}\n * @default\n */\n binCount: '',\n /**\n * The width of the bars, used when binMode is set to 'size'.\n * @type {number}\n * @default\n */\n binSize: BINNING_DEFAULTS.BIN_SIZE,\n /**\n * Used to know where to start displaying bars on x-axis.\n * @type {number}\n * @default\n */\n offset: BINNING_DEFAULTS.OFFSET,\n /**\n * Shows unique values.\n * @type {boolean}\n * @default\n */\n countDistinct: BINNING_DEFAULTS.COUNT_DISTINCT,\n /**\n * MaxCount - Able to adjust the maximum number of bars to be displayed. size - Able to adjust size of bars and offset from x-axis.\n * @type {string}\n * @default\n */\n binMode: BINNING_DEFAULTS.BIN_MODE,\n },\n /**\n * Color settings.\n * @type {object}\n */\n color: {\n /**\n * @type {object}\n */\n bar: {\n /**\n * The paletteColor object is used to define the bar color.\n * @type {paletteColor}\n * @default { index: 6 }\n */\n paletteColor: {\n index: 6,\n color: '#4477aa',\n },\n },\n },\n /**\n * Data points\n * @type {object}\n */\n dataPoint: {\n /**\n * Show labels on bars\n * @type {boolean}\n * @default\n */\n showLabels: false,\n },\n /**\n * Dimension axis settings.\n * @type {object}\n */\n dimensionAxis: {\n /**\n * Axis docking position\n * @type {'near'|'far'}\n * @default \"near\"\n */\n dock: 'near',\n /**\n * Label orientation\n * @type {'auto'}\n * @default\n */\n label: 'auto',\n /**\n * Labels and title\n * @type {'all'|'labels'|'title'|'none'}\n */\n show: 'all',\n },\n /**\n * Measure axis settings.\n * @type {object}\n */\n measureAxis: {\n /**\n * Automatic max/min\n * @type {boolean}\n * @default\n */\n autoMinMax: true,\n /**\n * Axis docking position\n * @type {'near'|'far'}\n * @default \"near\"\n */\n dock: 'near',\n /**\n * Label to show on the measure axis, if left empty it defaults to 'Frequency'\n * @type {(string|StringExpression)=}\n * @default\n */\n label: '',\n /**\n * Axis max value. `\"autoMinMax\"` must be set to false and `\"minMax\"`\n * must be set to `\"max\"` or `\"minMax\"` to use this property\n * @type {number|ValueExpression}\n * @default\n */\n max: 10,\n /**\n * Axis min value. `\"autoMinMax\"` must be set to false and `\"minMax\"`\n * must be set to `\"min\"` or `\"minMax\"` to use this property\n * @type {number|ValueExpression}\n * @default\n */\n min: 0,\n /**\n * Set custom max/min\n * @type {'min'|'max'|'minMax'}\n * @default \"min\"\n */\n minMax: 'min',\n /**\n * Labels and title\n * @type {'all'|'labels'|'title'|'none'}\n * @default \"all\"\n */\n show: 'all',\n /**\n * Axis scale\n * @type {number}\n * @default\n */\n spacing: 1,\n },\n /**\n * Grid lines settings.\n * @type {object}\n */\n gridlines: {\n /**\n * Automatic grid line spacing.\n * @type {boolean}\n * @default\n */\n auto: true,\n /**\n * Grid line spacing. Used only when auto is set to false.\n * @type {0|2|3}\n * @default\n */\n spacing: 2,\n },\n /**\n * Reference lines settings\n * @type {object}\n */\n refLine: {\n /**\n * Array of measure based reference line definitions\n * @type {refLine[]}\n */\n refLines: [],\n },\n /**\n * Wrapper for sorting properties which will be set on the outer dimension.\n * @type {object}\n */\n sorting: {\n /**\n * Sort automatically\n * @type {true}\n * @default\n */\n autoSort: true,\n },\n /**\n * Show title for the visualization.\n * @type {boolean=}\n * @default\n */\n showTitles: true,\n /**\n * Visualization subtitle.\n * @type {(string|StringExpression)=}\n * @default\n */\n subtitle: '',\n /**\n * Visualization title.\n * @type {(string|StringExpression)=}\n * @default\n */\n title: '',\n /**\n * Visualization footnote.\n * @type {(string|StringExpression)=}\n * @default\n */\n footnote: '',\n};\n\nexport default properties;\n","export default function data(env) {\n const { translator } = env;\n\n const dimensions = {\n min: 1,\n max: 1,\n description() {\n return translator.get('Visualization.Histogram.Binning');\n },\n };\n const measures = {\n min: 0,\n max: 0,\n };\n return {\n path: '/qHyperCubeDef',\n dimensions,\n measures,\n };\n}\n","/*\n* qlik-chart-modules v0.52.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:q(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 v(){}var m={};c(m,a,(function(){return this}));var y=Object.getPrototypeOf,g=y&&y(y(D([])));g&&g!==t&&r.call(g,a)&&(m=g);var b=v.prototype=p.prototype=Object.create(m);function x(e){[\"next\",\"throw\",\"return\"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function w(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 q(e,t,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return I()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var l=k(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 k(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,k(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 M(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(M,this),this.reset(!0)}function D(e){if(e){var t=e[a];if(t)return t.call(e);if(\"function\"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:I}}function I(){return{value:void 0,done:!0}}return h.prototype=v,o(b,\"constructor\",{value:v,configurable:!0}),o(v,\"constructor\",{value:h,configurable:!0}),h.displayName=c(v,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,v):(e.__proto__=v,c(e,u,\"GeneratorFunction\")),e.prototype=Object.create(b),e},e.awrap=function(e){return{__await:e}},x(w.prototype),c(w.prototype,l,(function(){return this})),e.AsyncIterator=w,e.async=function(t,n,r,o,i){void 0===i&&(i=Promise);var a=new w(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}var d=Object.prototype.hasOwnProperty,p=Object.prototype.toString,h=Object.defineProperty,v=Object.getOwnPropertyDescriptor,m=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===p.call(e)},y=function(e){if(!e||\"[object Object]\"!==p.call(e))return!1;var t,n=d.call(e,\"constructor\"),r=e.constructor&&e.constructor.prototype&&d.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!r)return!1;for(t in e);return void 0===t||d.call(e,t)},g=function(e,t){h&&\"__proto__\"===t.name?h(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},b=function(e,t){if(\"__proto__\"===t){if(!d.call(e,t))return;if(v)return v(e,t).value}return e[t]},x=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=b(l,n),l!==(o=b(t,n))&&(s&&o&&(y(o)||(i=m(o)))?(i?(i=!1,a=r&&m(r)?r:[]):a=r&&y(r)?r:{},g(l,{name:n,newValue:e(s,a,o)})):void 0!==o&&g(l,{name:n,newValue:o}));return l};function w(e,t){return{range:function(e){var n=e.resources,r=e.data,o=n.theme.palette(\"categorical\",0===t?r.items.length:t);return r.items.map((function(e){return o[e.value%o.length]}))},valueAccessor:e.value}}function q(e,t){return{range:function(e){var n=e.resources,r=e.data,o=n.theme.palette(\"categorical\",0===t?r.items.length:t);return r.items.map((function(e){return o[e.row.value%o.length]}))},valueAccessor:e.value}}function k(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 M(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 S(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 C(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function D(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function I(){}var O=1/.7,E=\"\\\\s*([+-]?\\\\d+)\\\\s*\",A=\"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",N=\"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",L=/^#([0-9a-f]{3,8})$/,T=new RegExp(\"^rgb\\\\(\"+[E,E,E]+\"\\\\)$\"),P=new RegExp(\"^rgb\\\\(\"+[N,N,N]+\"\\\\)$\"),j=new RegExp(\"^rgba\\\\(\"+[E,E,E,A]+\"\\\\)$\"),F=new RegExp(\"^rgba\\\\(\"+[N,N,N,A]+\"\\\\)$\"),R=new RegExp(\"^hsl\\\\(\"+[A,N,N]+\"\\\\)$\"),H=new RegExp(\"^hsla\\\\(\"+[A,N,N,A]+\"\\\\)$\"),z={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 V(){return this.rgb().formatHex()}function _(){return this.rgb().formatRgb()}function B(e){var t,n;return e=(e+\"\").trim().toLowerCase(),(t=L.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?$(t):3===n?new G(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?Y(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?Y(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=T.exec(e))?new G(t[1],t[2],t[3],1):(t=P.exec(e))?new G(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=j.exec(e))?Y(t[1],t[2],t[3],t[4]):(t=F.exec(e))?Y(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=R.exec(e))?J(t[1],t[2]/100,t[3]/100,1):(t=H.exec(e))?J(t[1],t[2]/100,t[3]/100,t[4]):z.hasOwnProperty(e)?$(z[e]):\"transparent\"===e?new G(NaN,NaN,NaN,0):null}function $(e){return new G(e>>16&255,e>>8&255,255&e,1)}function Y(e,t,n,r){return r<=0&&(e=t=n=NaN),new G(e,t,n,r)}function U(e){return e instanceof I||(e=B(e)),e?new G((e=e.rgb()).r,e.g,e.b,e.opacity):new G}function K(e,t,n,r){return 1===arguments.length?U(e):new G(e,t,n,null==r?1:r)}function G(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function W(){return\"#\"+Z(this.r)+Z(this.g)+Z(this.b)}function X(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?\"rgb(\":\"rgba(\")+Math.max(0,Math.min(255,Math.round(this.r)||0))+\", \"+Math.max(0,Math.min(255,Math.round(this.g)||0))+\", \"+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===e?\")\":\", \"+e+\")\")}function Z(e){return((e=Math.max(0,Math.min(255,Math.round(e)||0)))<16?\"0\":\"\")+e.toString(16)}function J(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new ee(e,t,n,r)}function Q(e){if(e instanceof ee)return new ee(e.h,e.s,e.l,e.opacity);if(e instanceof I||(e=B(e)),!e)return new ee;if(e instanceof ee)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),a=NaN,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 ee(a,l,u,e.opacity)}function ee(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function te(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}function ne(e){return function(){return e}}function re(e){return 1==(e=+e)?oe: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):ne(isNaN(t)?n:t)}}function oe(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):ne(isNaN(e)?t:e)}C(I,B,{copy:function(e){return Object.assign(new this.constructor,this,e)},displayable:function(){return this.rgb().displayable()},hex:V,formatHex:V,formatHsl:function(){return Q(this).formatHsl()},formatRgb:_,toString:_}),C(G,K,D(I,{brighter:function(e){return e=null==e?O:Math.pow(O,e),new G(this.r*e,this.g*e,this.b*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new G(this.r*e,this.g*e,this.b*e,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:W,formatHex:W,formatRgb:X,toString:X})),C(ee,(function(e,t,n,r){return 1===arguments.length?Q(e):new ee(e,t,n,null==r?1:r)}),D(I,{brighter:function(e){return e=null==e?O:Math.pow(O,e),new ee(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new ee(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new G(te(e>=240?e-240:e+120,o,r),te(e,o,r),te(e<120?e+240:e-120,o,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?\"hsl(\":\"hsla(\")+(this.h||0)+\", \"+100*(this.s||0)+\"%, \"+100*(this.l||0)+\"%\"+(1===e?\")\":\", \"+e+\")\")}}));var ie=function e(t){var n=re(t);function r(e,t){var r=n((e=K(e)).r,(t=K(t)).r),o=n(e.g,t.g),i=n(e.b,t.b),a=oe(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),ae=/^class(-pyramid)?/,le=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 v=d[h],m=d[h+1],y=ie(v,m)(.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 ue(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):ue(e,t,n,r+1,o)}var ce=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&&ae.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?ue(s.max,s.min,f,1,i):i,v=(s.max-s.min)/h,m=[],y=0;y<h+1;y+=1)m.push(s.min+v*y);s.domain=m,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 se(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 fe(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 de(e){e.measureOverrides.every((function(e){return!e}))&&(e.measureOverrides=null)}function pe(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 he(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?se:i,l=n.input.byMeasureDef||{activeMeasureIndex:0},u=a(n,l),c=ce(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&&x(c,le(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?M:o,a=r.getCByField,l=void 0===a?S:a,u=r.getPersistence,c=void 0===u?k: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),x(h,c(t,n,s,f,{byRow:q,byElemNo:w})),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=ce(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 v=n.input.singleColor;\"number\"!=typeof v||Number.isNaN(v)||(h=[\"#b0afae\",\"#7b7a78\",\"#545352\",\"#4477aa\",\"#7db8da\",\"#b6d7ea\",\"#46c646\",\"#f93f17\",\"#ffcf02\",\"#276e27\",\"#ffffff\",\"#000000\"][v])}return{mode:\"constant\",type:\"constant\",primary:h}}(e,n,t,r)}return{}}function ve(e,t,n,r){var o,i=he(e,t,n,r);return null!==(o=t.input)&&void 0!==o&&o.measureOverrides?(i.measureOverrides=t.input.measureOverrides.map((function(n,o){return fe({cm:e,input:n,defaults:r,index:o,pic:t.pic})})),function(e,t){var n,r,o,i=t.translator;if(de(e),1===(null===(n=e.measureOverrides)||void 0===n?void 0:n.length))return e.measureOverrides[0];if(\"measure\"===e.mode&&e.measureOverrides&&(e.explicit=pe(e.measureOverrides,e.explicit),de(e)),null!==(r=e.measureOverrides)&&void 0!==r&&r.every((function(e){return\"constant\"===(null==e?void 0:e.mode)}))){var a={mode:\"measure\",type:\"categorical\",label:null==i?void 0:i.get(\"Common.Measures\")};return a.explicit=pe(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 me(e){var n=t({hc:null,colorProps:null,layout:null,theme:null},e),r={},o={auto:function(){return{mode:\"primary\"}},getDimensionColorMap:function(){return Promise.reject()},getMeasure:function(){return Promise.reject()},getAttributeDimension:function(){return Promise.reject()}},i={auto:function(e){return e?(o.auto=e,i):o.auto},getDimensionColorMap:function(e){return e?(o.getDimensionColorMap=e,i):o.getDimensionColorMap},getAttributeDimension:function(e){return e?(o.getAttributeDimension=e,i):o.getAttributeDimension},getMeasure:function(e){return e?(o.getMeasure=e,i):o.getMeasure},set:function(e){var t;if(!e.colorProps)throw new Error('Missing \"colorProps\"');if(x(n,e),(r={pic:n.picasso.data(\"q\")({data:n.hc,config:{localeInfo:n.localeInfo}}),input:n.colorProps}).input.auto){var i=o.auto(e.layout);r.input=x(!0,{},r.input,i,{auto:!1});var a=n.theme?n.theme.getDataColorPalettes():[];a[0]&&(r.input.dimensionScheme=a[0].key);var 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=x(!1,{},r.input,{measureOverrides:null}))},palettes:function(){if(!r.palettes){var e=n.theme,t=[];(e&&e.getDataColorPickerPalettes()||[]).forEach((function(e){t.push({key:\"ui\",colors:e.colors})})),r.palettes=t}return r.palettes},getAuxiliaryData:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"/qHyperCubeDef\";if(!e.auxiliary&&!/qAttrDimInfo/.test(e.field))return Promise.resolve();var r=e.auxiliary||{},i=r.key;if(\"measure\"===e.fieldType)return o.getMeasure(i,n).catch((function(){}));if(\"dimension\"===e.fieldType){var a=\"\".concat(t,\"/\").concat(e.field).replace(\"qDimensionInfo\",\"qDimensions\").replace(\"qAttrDimInfo\",\"qAttributeDimensions\");return Promise.all([/qAttrDimInfo/.test(e.field)?o.getAttributeDimension(a,n).catch((function(){})):Promise.resolve(),i?o.getDimensionColorMap(i,n).catch((function(){})):Promise.resolve()])}return Promise.resolve()},getAuxiliarySettings:function(e,o){var i=this;return e.auxiliary||/qAttrDimInfo/.test(e.field)?(this.palettes(),this.getAuxiliaryData(e,o).then((function(o){if(!o)return{};if(\"measure\"===e.fieldType){if(o.coloring&&o.coloring.gradient){var a=r.pic.field(e.field);return le(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);x(l,w(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,x(l,w(a)))):!1===n.autoFill&&n.single?l.range=[r.resolveUIColor(n.single)]:n.autoFill&&(u&&(l.palettes={categorical:u.key}),x(l,w(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=x(e,ve(this,r,n,e))}return r.settings}};return i}var ye=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},ge=function(e){throw e.isHandled=!0,e},be=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()},xe=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()},we=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(ge)}return Promise.reject()};function qe(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 ke(e){return function(t){return\"object\"===r(t.datum[e])?t.datum[e].value:void 0}}function Me(e){return\"object\"===r(e.datum.isNull)?e.datum.isNull.value:-2===e.datum.value}function Se(e){return-3===e.datum.value}var Ce={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 De(e){var t=e.theme,n=e.key,r=e.styleOverrides,o={title:{color:Ce.TITLE.COLOR,fontSize:Ce.TITLE.FONT_SIZE,fontFamily:Ce.TITLE.FONT_FAMILY},label:{color:Ce.LABEL.COLOR,fontSize:Ce.LABEL.FONT_SIZE,fontFamily:Ce.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\",Ce.TITLE.COLOR),o.title.fontSize=u(null==a?void 0:a.fontSize,\"legend.title\",\"fontSize\",Ce.TITLE.FONT_SIZE),o.title.fontFamily=u(null==a?void 0:a.fontFamily,\"legend.title\",\"fontFamily\",Ce.TITLE.FONT_FAMILY),o.label.color=u(null==l?void 0:l.color,\"legend.label\",\"color\",Ce.LABEL.COLOR),o.label.fontSize=u(null==l?void 0:l.fontSize,\"legend.label\",\"fontSize\",Ce.LABEL.FONT_SIZE),o.label.fontFamily=u(null==l?void 0:l.fontFamily,\"legend.label\",\"fontFamily\",Ce.LABEL.FONT_FAMILY),o}var Ie=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\"},Oe=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 Ee(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=De({theme:u,key:n,styleOverrides:r});return{layout:{minimumLayoutMode:\"MEDIUM\",dock:Ie(a,o,i)},show:\"function\"==typeof a.show?function(){return Oe(a,c,l)}:Oe(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 Ae(e,n,r){return\"categorical\"===n.coloring.type?function(e,n,r){var o=Ee(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,v=n.scales,m=De({theme:h,key:l,styleOverrides:u}),y=o.layout.dock,g=\"left\"===y||\"right\"===y?{maxLines:3,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 w=\"\".concat(p,\"Legend\");return x(!0,o,{type:\"legend-cat\",key:\"\".concat(a,\"-cat\"),scale:w in v?w: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:m.label.color,fontSize:m.label.fontSize,fontFamily:m.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=Ee(e,t);if(!d.show)return!1;var p=De({theme:s,key:o,styleOverrides:i}),h=d.layout.dock,v=\"right\"===h||\"left\"===h,m=null===(n=t.scales)||void 0===n?void 0:n[f];return v&&m&&(m.invert=!0),x(!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 Ne(e,t,n){var r=[],o=[],i=Ae(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}}function Le(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Te(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Pe(){}var je=1/.7,Fe=\"\\\\s*([+-]?\\\\d+)\\\\s*\",Re=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",He=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",ze=/^#([0-9a-f]{3,8})$/,Ve=new RegExp(`^rgb\\\\(${Fe},${Fe},${Fe}\\\\)$`),_e=new RegExp(`^rgb\\\\(${He},${He},${He}\\\\)$`),Be=new RegExp(`^rgba\\\\(${Fe},${Fe},${Fe},${Re}\\\\)$`),$e=new RegExp(`^rgba\\\\(${He},${He},${He},${Re}\\\\)$`),Ye=new RegExp(`^hsl\\\\(${Re},${He},${He}\\\\)$`),Ue=new RegExp(`^hsla\\\\(${Re},${He},${He},${Re}\\\\)$`),Ke={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 Ge(){return this.rgb().formatHex()}function We(){return this.rgb().formatRgb()}function Xe(e){var t,n;return e=(e+\"\").trim().toLowerCase(),(t=ze.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?Ze(t):3===n?new et(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?Je(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?Je(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=Ve.exec(e))?new et(t[1],t[2],t[3],1):(t=_e.exec(e))?new et(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=Be.exec(e))?Je(t[1],t[2],t[3],t[4]):(t=$e.exec(e))?Je(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Ye.exec(e))?at(t[1],t[2]/100,t[3]/100,1):(t=Ue.exec(e))?at(t[1],t[2]/100,t[3]/100,t[4]):Ke.hasOwnProperty(e)?Ze(Ke[e]):\"transparent\"===e?new et(NaN,NaN,NaN,0):null}function Ze(e){return new et(e>>16&255,e>>8&255,255&e,1)}function Je(e,t,n,r){return r<=0&&(e=t=n=NaN),new et(e,t,n,r)}function Qe(e){return e instanceof Pe||(e=Xe(e)),e?new et((e=e.rgb()).r,e.g,e.b,e.opacity):new et}function et(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function tt(){return`#${it(this.r)}${it(this.g)}${it(this.b)}`}function nt(){const e=rt(this.opacity);return`${1===e?\"rgb(\":\"rgba(\"}${ot(this.r)}, ${ot(this.g)}, ${ot(this.b)}${1===e?\")\":`, ${e})`}`}function rt(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ot(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function it(e){return((e=ot(e))<16?\"0\":\"\")+e.toString(16)}function at(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new ut(e,t,n,r)}function lt(e){if(e instanceof ut)return new ut(e.h,e.s,e.l,e.opacity);if(e instanceof Pe||(e=Xe(e)),!e)return new ut;if(e instanceof ut)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 ut(a,l,u,e.opacity)}function ut(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function ct(e){return(e=(e||0)%360)<0?e+360:e}function st(e){return Math.max(0,Math.min(1,e||0))}function ft(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}Le(Pe,Xe,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Ge,formatHex:Ge,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return lt(this).formatHsl()},formatRgb:We,toString:We}),Le(et,(function(e,t,n,r){return 1===arguments.length?Qe(e):new et(e,t,n,null==r?1:r)}),Te(Pe,{brighter(e){return e=null==e?je:Math.pow(je,e),new et(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new et(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new et(ot(this.r),ot(this.g),ot(this.b),rt(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:tt,formatHex:tt,formatHex8:function(){return`#${it(this.r)}${it(this.g)}${it(this.b)}${it(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:nt,toString:nt})),Le(ut,(function(e,t,n,r){return 1===arguments.length?lt(e):new ut(e,t,n,null==r?1:r)}),Te(Pe,{brighter(e){return e=null==e?je:Math.pow(je,e),new ut(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new ut(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 et(ft(e>=240?e-240:e+120,o,r),ft(e,o,r),ft(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new ut(ct(this.h),st(this.s),st(this.l),rt(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=rt(this.opacity);return`${1===e?\"hsl(\":\"hsla(\"}${ct(this.h)}, ${100*st(this.s)}%, ${100*st(this.l)}%${1===e?\")\":`, ${e})`}`}}));const dt=Math.PI/180,pt=180/Math.PI,ht=4/29,vt=6/29,mt=3*vt*vt;function yt(e){if(e instanceof gt)return new gt(e.l,e.a,e.b,e.opacity);if(e instanceof St)return Ct(e);e instanceof et||(e=Qe(e));var t,n,r=qt(e.r),o=qt(e.g),i=qt(e.b),a=bt((.2225045*r+.7168786*o+.0606169*i)/1);return r===o&&o===i?t=n=a:(t=bt((.4360747*r+.3850649*o+.1430804*i)/.96422),n=bt((.0139322*r+.0971045*o+.7141733*i)/.82521)),new gt(116*a-16,500*(t-a),200*(a-n),e.opacity)}function gt(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}function bt(e){return e>.008856451679035631?Math.pow(e,1/3):e/mt+ht}function xt(e){return e>vt?e*e*e:mt*(e-ht)}function wt(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function qt(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function kt(e){if(e instanceof St)return new St(e.h,e.c,e.l,e.opacity);if(e instanceof gt||(e=yt(e)),0===e.a&&0===e.b)return new St(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*pt;return new St(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function Mt(e,t,n,r){return 1===arguments.length?kt(e):new St(e,t,n,null==r?1:r)}function St(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function Ct(e){if(isNaN(e.h))return new gt(e.l,0,0,e.opacity);var t=e.h*dt;return new gt(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}Le(gt,(function(e,t,n,r){return 1===arguments.length?yt(e):new gt(e,t,n,null==r?1:r)}),Te(Pe,{brighter(e){return new gt(this.l+18*(null==e?1:e),this.a,this.b,this.opacity)},darker(e){return new gt(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 et(wt(3.1338561*(t=.96422*xt(t))-1.6168667*(e=1*xt(e))-.4906146*(n=.82521*xt(n))),wt(-.9787684*t+1.9161415*e+.033454*n),wt(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}})),Le(St,Mt,Te(Pe,{brighter(e){return new St(this.h,this.c,this.l+18*(null==e?1:e),this.opacity)},darker(e){return new St(this.h,this.c,this.l-18*(null==e?1:e),this.opacity)},rgb(){return Ct(this).rgb()}}));var Dt=function(e){return\"rgba(\".concat([(16711680&e)>>16,(65280&e)>>8,255&e,((4278190080&e)>>>24)/255].join(\",\"),\")\")};function It(e){var n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.auto,n=me(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 be(e,{layout:n,app:r})})).getMeasure((function(e,t){var n=t.layout,r=t.app;return xe(e,{layout:n,app:r})})).getAttributeDimension((function(e,t){var n=t.layout,r=t.model,o=t.app;return we(e,{layout:n,model:r,app:o})}));return n.getSnapshotData=ye,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=qe({hc:n,source:a,coloring:r}).data;if(r.legendDataset){var h=0,v={};l.data(\"q\")({data:n}).extract({field:r.field,trackBy:r.valueAccessor,reduce:function(e){var t=e[0];return v[t]=h++,e[0]}}),d={source:\"attrDim\",extract:{field:\"qDimensionInfo/0\",filter:function(e){return e.qElemNumber>=0},props:{row:{value:function(e){return v[e.qElemNumber]}}}}}}var m={data:p,range:r.range,domain:r.domain,explicit:f,type:\"categorical-color\",label:function(e){return e.datum.text&&e.datum.text.value?e.datum.text.value:e.datum.label}};u[s]=m,d&&(u[\"\".concat(s,\"Legend\")]=t(t({},m),{},{data:d})),n&&n.qHasOtherValues&&d&&((d||m.data).amend=[{label:n.qDimensionInfo[0].othersLabel,source:{key:\"qHyperCube\",field:\"qDimensionInfo/0\"},row:{value:-3},value:-3}])}else if(\"measure\"===r.fieldType){var y={data:{field:r.field},min:r.min,max:r.max};u[s]=x({},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\")]=x({},y,{invert:!!o}))}else if(\"color\"!==r.type)throw new Error(\"UNUSED FIELD\")}else if(\"dimension\"===r.mode){var g={data:n.qDimensionInfo.map((function(e,t){return t})),label:function(e){return n.qDimensionInfo[e.datum.value].qFallbackTitle},explicit:f,type:\"categorical-color\"};u[s]=g}else if(\"measure\"===r.mode){var b={data:n.qMeasureInfo.map((function(e,t){return t})).filter((function(e){var t,n;return!(null!==(t=r.explicit)&&void 0!==t&&null!==(n=t.exclude)&&void 0!==n&&n.includes(e))})),label:function(e){return n.qMeasureInfo[e.datum.value].qFallbackTitle},explicit:f,type:\"categorical-color\"};u[s]=b}}return u}({hc:r.hc,coloring:i(),key:r.key,source:r.source,picasso:e.picasso}),o.scales},color:function(){return o.color=o.color||function(e){var t=e.coloring,n=e.scales,r=e.key,o=ke(r),i=ke(\"\".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 Se(e)||i(e)?c:u}:n[t]?function(e){return Se(e)?c:Me(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 Se(e)||i(e)?c:Me(e)?u:s}:\"color\"===f?function(e){return Se(e)||i(e)?c:Me(e)?u:o(e)||c}:null},l=a(t,r);if(t.measureOverrides){var u=ke(\"\".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?Dt(e.qNum):e.qText&&Xe(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,v=arguments.length>1?arguments[1]:void 0;return Ne({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()},v)}};return l}var Ot=function(e){return e.baseColor||e.coloring&&e.coloring.baseColor};function Et(e){var t=e.qHyperCube,n=t.qDimensionInfo,r=t.qMeasureInfo,o=n.some(Ot),i=r.some(Ot),a=e.color.useBaseColors;return\"measure\"===a&&!i||\"dimension\"===a&&!o?\"off\":a}function At(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 Nt=function(e){return e.baseColor||e.coloring&&e.coloring.baseColor};function Lt(e){var t,n=e.qHyperCube.qDimensionInfo.some(Nt),r=e.qHyperCube.qMeasureInfo.some(Nt),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 Tt=function(){};function Pt(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?Tt:d,h=e.config,v=void 0===h?{}:h,m=e.custom,y=void 0===m?{}:m,g=v.localeInfo,b=v.key,x=v.theme,w=void 0===x?void 0:x,q=v.auto,k=void 0===q?void 0:q,M=v.definitionPath,S=null==f||null===(n=f.getLayout)||void 0===n?void 0:n.call(f),C={theme:w,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?Et(S):void 0})},D=It({picasso:a,model:l,app:u,translator:c,auto:k});!1!==k&&D.auto((function(e){return k?k({layout:e,defaultAuto:Lt}):Lt(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(M)},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:Et}),o=At(C,r);D.config(o);var i=D.getAuxiliarySettings(M).then((function(){I=!0}));return i}};return O}function jt(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 Ft=[{key:\"FULL\",size:{width:550,height:450}},{key:\"MEDIUM\",size:{width:400,height:220}},{key:\"SMALL\",size:{width:300,height:150}},{key:\"XSMALL\",size:{width:150,height:75}}];function Rt(e){var t=e.width,n=e.height,r=Ft.filter((function(e){return t>=e.size.width&&n>=e.size.height})).shift();return r?r.key:\"SPARK\"}var Ht={left:\"right\",right:\"left\",top:\"bottom\",bottom:\"top\",near:\"far\",far:\"near\"};function zt(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?Ht[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:Ht[i],start:a,end:Ht[a]}}function Vt(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=Rt(e);var t=zt({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=zt({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(jt({chart:n,logicalSize:l})),f}var _t=\"vertical\",Bt=\"horizontal\";function $t(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===_t?_t:Bt,p=!!l.invert,h=l.measureAxes||[{ref:\"measureAxis\",name:\"minor\"}],v={chart:{orientation:void 0,size:void 0,mode:void 0},major:{orientation:void 0,dock:void 0,opposite:void 0,size:void 0}},m={type:\"major-minor\",config:t({},i),meta:v,update:function(e){v.chart.orientation=r.getLayoutValue(\"orientation\",d),v.chart.size={width:e.width,height:e.height},v.chart.mode=Rt(e),v.major.orientation=function(e){var t=e.layoutService,n=e.chartOrientation,r=e.invert;return t.meta.isContinuous?Bt:r?n===_t?Bt:_t:n}({layoutService:r,chartOrientation:v.chart.orientation,invert:p});var t=zt({orientation:v.major.orientation,dock:r.getLayoutValue(\"dimensionAxis.dock\"),btt:!1,rtl:f}),n=t.current,o=t.opposite;v.major.dock=n,v.major.opposite=o,v.major.size=v.major.orientation===_t?e.height:e.width,h.forEach((function(t){var n={};n.orientation=v.major.orientation===_t?Bt:_t;var o=zt({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===_t?e.height:e.width,v[t.name]=n}))}};return m.update(jt({chart:n,logicalSize:c})),m}function Yt(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?Vt:$t)({chart:t,layoutService:n,config:o,typeConfig:a})}function Ut(e,t,n){if(void 0===e||void 0===t)return n;for(var r=t.split(\".\"),o=e,i=0;i<r.length;++i){var a=r[i];if(void 0===o[a])return n;o=o[a]}return o}function Kt(e,t,n){if(void 0!==e&&void 0!==t){for(var r=t.split(\".\"),o=r[r.length-1],i=e,a=0;a<r.length-1;++a){var 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 Gt(){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 Wt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){return e},n=Gt();return function(r){var o=t(r);return n.has(o)?n.get(o):n.set(o,e(r))}}function Xt(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 Zt(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 Jt(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 Qt={ERROR_CODES:[7005],DIMENSION:\"qDimensionInfo\",MEASURE:\"qMeasureInfo\"},en=function(e,t){return e[t].reduce((function(e,t,n){var r;return(r=t,Qt.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 tn(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 nn(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:tn(e)}}}(e);case\"K\":return function(e){var t=tn(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=tn(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 rn(e){var n=e.source,r=e.metaAdditionsFn,o=e.experimental,i=void 0===o?{filter:!1}:o,a=x(!0,{},n),l=i.filter?function(e){var t=e.qHyperCube,n=en(t,Qt.DIMENSION),r=n.reduced,o=n.filtered;t[Qt.DIMENSION]=r;var i=en(t,Qt.MEASURE),a=i.reduced,l=i.filtered;return t[Qt.MEASURE]=a,{dimensions:o,measures:l}}(a):{dimensions:[],measures:[]},u=nn(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 Ut(a,e,t)},setLayoutValue:function(e,t){Kt(a,e,t),u=nn(a),s.meta=c()},getHyperCube:function(){return a.qHyperCube},getHyperCubeValue:function(e,t){return Ut(a.qHyperCube,e,t)},setHyperCubeValue:function(e,t){Kt(a.qHyperCube,e,t),u=nn(a),s.meta=c()},getDataPages:function(){return Ut(a,u.refs.dataPages)},setDataPages:function(e){Kt(a,u.refs.dataPages,e),s.meta=c()}};return s}function on(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 an(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=x(!0,{},n.brush);x(!0,n,t),t.brush&&(n.brush=function(e,t){return\"object\"===r(e)&&Object.keys(e).length?(Array.isArray(t.consume)&&(e.consume=on({originalArray:e.consume,newArray:t.consume,matchKey:\"context\"})),Array.isArray(t.trigger)&&(e.trigger=on({originalArray:e.trigger,newArray:t.trigger,matchKey:\"on\"})),e):t}(o,t.brush))}else e.push(t)})),e):e}}}function ln(e){return ln=\"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},ln(e)}function un(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function cn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function sn(e,t,n){return t&&cn(e.prototype,t),n&&cn(e,n),e}function fn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function dn(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 pn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?dn(Object(n),!0).forEach((function(t){fn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):dn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function hn(e,t){return hn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},hn(e,t)}function vn(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function mn(e,t,n){return mn=vn()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&hn(o,n.prototype),o},mn.apply(null,arguments)}function yn(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(\"undefined\"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,l=e[Symbol.iterator]();!(r=(a=l.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==l.return||l.return()}finally{if(o)throw i}}return n}(e,t)||bn(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 gn(e){return function(e){if(Array.isArray(e))return xn(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||bn(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 bn(e,t){if(e){if(\"string\"==typeof e)return xn(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)?xn(e,t):void 0}}function xn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var wn=Object.prototype.hasOwnProperty,qn=Object.prototype.toString,kn=Object.defineProperty,Mn=Object.getOwnPropertyDescriptor,Sn=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===qn.call(e)},Cn=function(e){if(!e||\"[object Object]\"!==qn.call(e))return!1;var t,n=wn.call(e,\"constructor\"),r=e.constructor&&e.constructor.prototype&&wn.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!r)return!1;for(t in e);return void 0===t||wn.call(e,t)},Dn=function(e,t){kn&&\"__proto__\"===t.name?kn(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},In=function(e,t){if(\"__proto__\"===t){if(!wn.call(e,t))return;if(Mn)return Mn(e,t).value}return e[t]},On=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=In(l,n),l!==(o=In(t,n))&&(s&&o&&(Cn(o)||(i=Sn(o)))?(i?(i=!1,a=r&&Sn(r)?r:[]):a=r&&Cn(r)?r:{},Dn(l,{name:n,newValue:e(s,a,o)})):void 0!==o&&Dn(l,{name:n,newValue:o}));return l};function En(e,t,n){if(!e)return-1;var r=n.cache,o=e.origin?e.origin():null;o&&(e=o);var i=r.fields.indexOf(e),a=-1,l=-1;if(-1===i)for(var u=0;u<r.wrappedFields.length;u++)if(l=r.wrappedFields[u].attrDims.map((function(e){return e.instance})).indexOf(e),a=r.wrappedFields[u].attrExps.map((function(e){return e.instance})).indexOf(e),-1!==l||-1!==a){i=u;break}return(i-=t.qArea.qLeft)<0||i>=t.qArea.qWidth?-1:l>=0?function(e){return e[i].qAttrDims.qValues[l]}:a>=0?function(e){return e[i].qAttrExps.qValues[a]}:function(e){return e[i]}}function An(e,t,n){var r=n.key,o={value:\"function\"==typeof e.value?e.value(t):void 0!==e.value?e.value:t};return o.label=\"function\"==typeof e.label?e.label(t):void 0!==e.label?String(e.label):String(o.value),e.field&&(o.source={key:r,field:e.field.key()}),o}function Nn(e){var t=e.cache,n=e.f,r=e.mainCell,o=e.p;e.prop;var i=e.page,a=e.rowIdx,l=e.row,u=e.sourceKey,c=e.target,s=e.targetProp,f=r;if(o.field&&o.field!==n){var d=En(o.field,i,{cache:t});if(-1===d)return;f=On({qRow:a},d(l))}c[s]=An(o,f,{key:u})}function Ln(e,t,n,r){for(var o=Array.isArray(e)?e:[e],i=[],a=0;a<o.length;a++)if(void 0!==o[a].field){for(var l=t.raw(),u=t.key(),c=\"object\"===ln(o[a].field)?o[a].field:t.field(o[a].field),s=r.normalizeConfig(o[a],t),f=s.props,d=s.main,p=Object.keys(f),h=!!o[a].trackBy,v=ln(o[a].trackBy),m={},y=[],g=[],b=0;b<l.qDataPages.length;b++){var x=En(c,l.qDataPages[b],{cache:n});if(-1!==x)for(var w=0;w<l.qDataPages[b].qMatrix.length;w++){var q=l.qDataPages[b].qArea.qTop+w,k=On({qRow:q},x(l.qDataPages[b].qMatrix[w])),M=An(d,k,{key:u});if(!(d.filter&&!d.filter(k))){for(var S=0;S<p.length;S++){var C=f[p[S]],D=C.fields||[C];C.fields&&(M[p[S]]=[]);for(var I=0;I<D.length;I++)Nn({cache:n,f:c,mainCell:k,p:D[I],prop:p[S],props:f,page:l.qDataPages[b],rowIdx:q,row:l.qDataPages[b].qMatrix[w],sourceKey:u,target:C.fields?M[p[S]]:M,targetProp:C.fields?I:p[S]});if(C.fields){var O=M[p[S]].map((function(e){return e.value})),E=M[p[S]].map((function(e){return e.label}));M[p[S]]={value:\"function\"==typeof C.value?C.value(O):void 0!==C.value?C.value:O,label:\"function\"==typeof C.label?C.label(E):void 0!==C.label?String(C.label):String(M[p[S]].value)}}}h&&r.track({cfg:o[a],itemData:k,obj:M,target:y,tracker:m,trackType:v}),g.push(M)}}}h?i.push.apply(i,gn(r.collect(y,{main:d,propsArr:p,props:f}))):i.push.apply(i,g)}return i}function Tn(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 Pn(e,t){var n,r,o,i,a,l=new Hn(e),u=+e.value&&(l.value=e.value),c=[l];for(null==t&&(t=jn);n=c.pop();)if(u&&(n.value=+n.data.value),(o=t(n.data))&&(a=o.length))for(n.children=new Array(a),i=a-1;i>=0;--i)c.push(r=n.children[i]=new Hn(o[i])),r.parent=n,r.depth=n.depth+1;return l.eachBefore(Rn)}function jn(e){return e.children}function Fn(e){e.data=e.data.data}function Rn(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function Hn(e){this.data=e,this.depth=this.height=0,this.parent=null}function zn(e){if(\"function\"!=typeof e)throw new Error;return e}Hn.prototype=Pn.prototype={constructor:Hn,count:function(){return this.eachAfter(Tn)},each:function(e){var t,n,r,o,i=this,a=[i];do{for(t=a.reverse(),a=[];i=t.pop();)if(e(i),n=i.children)for(r=0,o=n.length;r<o;++r)a.push(n[r])}while(a.length);return this},eachAfter:function(e){for(var t,n,r,o=this,i=[o],a=[];o=i.pop();)if(a.push(o),t=o.children)for(n=0,r=t.length;n<r;++n)i.push(t[n]);for(;o=a.pop();)e(o);return this},eachBefore:function(e){for(var t,n,r=this,o=[r];r=o.pop();)if(e(r),t=r.children)for(n=t.length-1;n>=0;--n)o.push(t[n]);return this},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,r=t.children,o=r&&r.length;--o>=0;)n+=r[o].value;t.value=n}))},sort:function(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))},path:function(e){for(var t=this,n=function(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),o=null;e=n.pop(),t=r.pop();for(;e===t;)o=e,e=n.pop(),t=r.pop();return o}(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var o=r.length;e!==n;)r.splice(o,0,e),e=e.parent;return r},ancestors:function(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t},descendants:function(){var e=[];return this.each((function(t){e.push(t)})),e},leaves:function(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e},links:function(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t},copy:function(){return Pn(this).eachBefore(Fn)}};var Vn={depth:-1},_n={};function Bn(e){return e.id}function $n(e){return e.parentId}function Yn(e,t){\"/\"===e.charAt(0)&&(e=e.substring(1));for(var n,r=e.split(\"/\"),o=t,i=0;i<r.length;i++){if(\"*\"===r[i]&&Array.isArray(o)){var a=[];n=r.slice(i+1).join(\"/\");for(var l=0;l<o.length;l++){var u=Yn(n,o[l]);Array.isArray(u)?a.push.apply(a,gn(u)):a.push(u)}return a}if(!r[i]&&Array.isArray(o)){var c=new Array(o.length);n=r.slice(i+1).join(\"/\");for(var s=0;s<o.length;s++)c[s]=Yn(n,o[s]);return c}r[i]in o&&(o=o[r[i]])}return o}function Un(e,t,n){var r=[];if(!e||!e.length)return r;if(t<=0){var o=n>=0?[e[n]]:e;r.push.apply(r,gn(o))}else for(var i=0;i<e.length;i++)e[i].children&&e[i].children.length&&r.push.apply(r,gn(Un(e[i].children,t-1,n)));return r}function Kn(e,t,n){if(e===t)return function(e){return e};if(e>t){var r=Math.max(0,Math.min(100,e-t)),o=gn(Array(r)).map(String.prototype.valueOf,\"parent\").join(\".\");return Function(\"node\",\"return node.\".concat(o,\";\"))}if(t>e){var i=Math.max(0,Math.min(100,t-e));return function(e){return Un(e.children,i-1,n)}}return!1}function Gn(e,t){var n=t.cache;if(\"number\"==typeof e)return n.fields[e];var r=n.allFields;if(\"function\"==typeof e){for(var o=0;o<r.length;o++)if(e(r[o]))return r[o];return!1}if(\"string\"==typeof e){for(var i=0;i<r.length;i++)if(r[i].key()===e||r[i].title()===e)return r[i]}else if(e&&-1!==r.indexOf(e))return e;throw Error(\"Field not found: \".concat(e))}var Wn=/^qDimensionInfo(?:\\/(\\d+))?/,Xn=/^\\/?qMeasureInfo\\/(\\d+)/,Zn=/\\/qAttrExprInfo\\/(\\d+)/,Jn=/\\/qAttrDimInfo\\/(\\d+)/;function Qn(e){return(e.qColumnOrder&&e.qColumnOrder.length?e.qColumnOrder:e.qDimensionInfo.map((function(e,t){return t}))).filter((function(t){return t<e.qDimensionInfo.length}))}function er(e,t){var n=t.cube;if(!e)return-1;var r=e.origin&&e.origin()?e.origin().key():e.key(),o=!1,i=-1,a=-1,l=-1,u=-1,c=-1,s=r,f=n.qEffectiveInterColumnSortOrder,d=Qn(n);return Wn.test(s)&&(o=!0,i=+Wn.exec(s)[1],s=r.replace(Wn,\"\")),Xn.test(s)&&(\"K\"===n.qMode?u=+Xn.exec(s)[1]:f&&-1!==f.indexOf(-1)?(u=+Xn.exec(s)[1],c=0):c=+Xn.exec(s)[1],s=s.replace(Xn,\"\")),s&&(Jn.exec(s)?l=+Jn.exec(s)[1]:Zn.exec(s)&&(a=+Zn.exec(s)[1])),{fieldDepth:(o?\"S\"===n.qMode?d[i]:f?f.indexOf(i):i:f&&-1!==f.indexOf(-1)?f.indexOf(-1):n.qDimensionInfo.length-(\"K\"===n.qMode?0:1))+1,pseudoMeasureIndex:u,measureIdx:c,attrDimIdx:l,attrIdx:a}}function tr(e,t){var n,r,o=Kn(e.fieldDepth,t.fieldDepth,t.pseudoMeasureIndex);return n=t.measureIdx>=0?function(e){return e.data.qValues[t.measureIdx]}:function(e){return e.data},t.attrDimIdx>=0?r=function(e){var n;return null==e||null===(n=e.qAttrDims)||void 0===n?void 0:n.qValues[t.attrDimIdx]}:t.attrIdx>=0&&(r=function(e){var n;return null==e||null===(n=e.qAttrExps)||void 0===n?void 0:n.qValues[t.attrIdx]}),{nodeFn:o,attrFn:r,valueFn:n}}function nr(e,t,n){var r=n.key,o={value:\"function\"==typeof e.value?e.value(t):void 0!==e.value?e.value:t};return o.label=\"function\"==typeof e.label?e.label(t):void 0!==e.label?String(e.label):String(o.value),e.field&&(o.source={key:r,field:e.field.key()}),o}function rr(e){for(var t=e.propsArr,n=e.props,r=e.item,o=e.itemData,i=e.ret,a=e.sourceKey,l=0;l<t.length;l++){var u=n[t[l]],c=u.fields||[u],s=void 0,f=void 0;u.fields&&(s=[],f=[]);for(var d=function(e){var n=c[e],d=void 0,p=void 0,h=void 0,v=void 0,m=void 0,y=void 0;if(\"primitive\"===n.type?(h=n.value,y=String(n.value)):(\"function\"==typeof n.value&&(d=function(e){return n.value(e,r)}),\"function\"==typeof n.label&&(p=function(e){return n.label(e,r)}),n.accessor?(v=n.accessor(r),Array.isArray(v)?(m=v.map(n.valueAccessor),n.attrAccessor&&(m=m.map(n.attrAccessor)),d&&(h=m.map(d),d=null),p&&(y=m.map(p),p=null),h=n.reduce?n.reduce(h):h,y=n.reduceLabel?n.reduceLabel(y,h):String(h)):y=h=n.attrAccessor?n.attrAccessor(n.valueAccessor(v)):n.valueAccessor(v)):(h=o,y=o)),u.fields){var g=d?d(h):h;s.push(g),f.push(p&&null!=y?p(y):null!=y?y:String(g))}else{var b=d?d(h):h;i[t[l]]={value:b,label:p?p(y):null!=y?y:String(b)},n.field&&(i[t[l]].source={field:n.field.key(),key:a})}},p=0;p<c.length;p++)d(p);s&&(i[t[l]]={value:\"function\"==typeof u.value?u.value(s,r):s,label:\"function\"==typeof u.label?u.label(f,r):f})}}var or=function(e,t,n){var r=\"K\"===e.qMode?\"/qStackedDataPages/*/qData\":\"/qTreeDataPages/*\",o=\"K\"===e.qMode?\"qSubNodes\":\"qNodes\",i=Yn(r,e);return i&&i[0]?(t.tree=Pn(i[0],n.children||function(e){return e[o]}),t.tree):null};function ir(e){for(var t=e.raw().qDataPages.length?e.raw().qDataPages[0].qMatrix:[],n=function(e){var t=e.raw().qColumnOrder,n=e.fields();return t&&t.length===n.length?t:n.map((function(e,t){return t}))}(e),r=e.fields(),o=e.fields().filter((function(e){return\"dimension\"===e.type()})).map((function(e){return n.indexOf(r.indexOf(e))})),i=e.fields().filter((function(e){return\"measure\"===e.type()})).map((function(e){return n.indexOf(r.indexOf(e))})),a={__root:{__id:\"__root\",qValues:[]}},l=0;l<t.length;l++){for(var u=t[l],c=\"__root\",s=!1,f=0;f<o.length;f++){var d=u[o[f]],p=\"\".concat(c,\"__\").concat(d.qText);a[p]||(a[p]=pn({__id:p,__parent:c,qValues:[]},d),s=!0),c=p}if(s)for(var h=0;h<i.length;h++){var v=u[i[h]];a[c].qValues.push(v)}}var m=Object.keys(a).map((function(e){return a[e]})),y=function(){var e=Bn,t=$n;function n(n){var r,o,i,a,l,u,c,s=n.length,f=new Array(s),d={};for(o=0;o<s;++o)r=n[o],l=f[o]=new Hn(r),null!=(u=e(r,o,n))&&(u+=\"\")&&(d[c=\"$\"+(l.id=u)]=c in d?_n:l);for(o=0;o<s;++o)if(l=f[o],null!=(u=t(n[o],o,n))&&(u+=\"\")){if(!(a=d[\"$\"+u]))throw new Error(\"missing: \"+u);if(a===_n)throw new Error(\"ambiguous: \"+u);a.children?a.children.push(l):a.children=[l],l.parent=a}else{if(i)throw new Error(\"multiple roots\");i=l}if(!i)throw new Error(\"no root\");if(i.parent=Vn,i.eachBefore((function(e){e.depth=e.parent.depth+1,--s})).eachBefore(Rn),i.parent=null,s>0)throw new Error(\"cycle\");return i}return n.id=function(t){return arguments.length?(e=zn(t),n):e},n.parentId=function(e){return arguments.length?(t=zn(e),n):t},n}().id((function(e){return e.__id})).parentId((function(e){return e.__parent}))(m);return y}var ar=function(e){for(var t=e.propsArr,n=e.props,r=e.cube,o=e.cache,i=e.itemDepthObject,a=e.f,l=0;l<t.length;l++)for(var u=n[t[l]],c=u.fields?u.fields:[u],s=0;s<c.length;s++){var f=c[s];if(f.field!==a){var d=tr(i,er(f.field,{cube:r,cache:o}));f.accessor=d.nodeFn,f.valueAccessor=d.valueFn,f.attrAccessor=d.attrFn}}};function lr(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,o=t.raw(),i=t.key(),a=\"S\"===o.qMode?ir(t):or(o,n,e);if(!a)return null;for(var l=a.height,u=[],c=0;c<=l;c++){var s=null;if(c>0)if(\"S\"===o.qMode){var f=Qn(o),d=f[c-1];s=n.fields[d]}else{var p=o.qEffectiveInterColumnSortOrder[c-1];c>o.qEffectiveInterColumnSortOrder.length&&(p=o.qDimensionInfo.length),s=n.fields[p]}var h=r.normalizeConfig(pn(pn({},e),{},{field:s?s.key():void 0}),t),v=h.props,m=h.main,y=Object.keys(v);u[c]={propsArr:y,props:v,main:m};var g=s?er(s,{cube:o,cache:n}):{fieldDepth:0};ar({propsArr:y,props:v,cube:o,cache:n,itemDepthObject:g,f:s})}for(var b=a.copy(),x=b.descendants(),w=a.descendants(),q=0;q<w.length;q++){var k=u[w[q].depth].propsArr,M=u[w[q].depth].props,S=u[w[q].depth].main,C=x[q],D=C.data,I=nr(S,D,{key:i});rr({propsArr:k,props:M,item:C,itemData:D,ret:I,sourceKey:i,isTree:!0}),w[q].data=I}return a}function ur(e,t,n,r){for(var o=Array.isArray(e)?e:[e],i=[],a=0;a<o.length;a++)if(void 0!==o[a].field){var l=t.raw(),u=t.key();if(!or(l,n,e))continue;var c=\"object\"===ln(o[a].field)?o[a].field:t.field(o[a].field),s=r.normalizeConfig(o[a],t),f=s.props,d=s.main,p=Object.keys(f),h=er(c,{cube:l,cache:n}),v=tr({fieldDepth:0},h),m=v.nodeFn,y=v.attrFn,g=v.valueFn;ar({propsArr:p,props:f,cube:l,cache:n,itemDepthObject:h,f:c});for(var b=!!o[a].trackBy,x=ln(o[a].trackBy),w={},q=[],k=m(n.tree),M=[],S=0;S<k.length;S++){var C=k[S],D=y?y(g(C)):g(C);if(!(d.filter&&!d.filter(D))){var I=nr(d,D,{key:u});rr({propsArr:p,props:f,item:C,itemData:D,ret:I,sourceKey:u}),b&&r.track({cfg:o[a],itemData:D,obj:I,target:q,tracker:w,trackType:x}),M.push(I)}}b?i.push.apply(i,gn(r.collect(q,{main:d,propsArr:p,props:f}))):i.push.apply(i,M)}return i}\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;var cr,sr,fr=(cr=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):\"\",v=e.split(\"\").reverse().join(\"\"),m=v.search(/[0-9\\-\\+#]/),y=d-m,g=e.substring(y,y+1),b=y+(\".\"===g||\",\"===g?1:0),x=m>0?e.substring(b,d):\"\";if(n=(t=\"-\"===(e=e.substring(p,b)).charAt(0)?-t:+t)<0?t=-t:0,o=(r=e.match(/[^\\d\\-\\+#]/g))&&r[r.length-1]||\".\",i=r&&r[1]&&r[0]||\",\",e=e.split(o),t=+(t=t.toFixed(e[1]&&e[1].length))+\"\",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(v=\"\",y=(f=t[0]).length%u,d=f.length,b=0;b<d;b++)v+=f.charAt(b),!((b-y+1)%u)&&b<d-u&&(v+=i);t[0]=v}return t[1]=e[1]&&t[1]?o+t[1]:\"\",\"0\"!==(r=t.join(\"\"))&&\"\"!==r||(n=!1),h+(n?\"-\":\"\")+r+x}},cr(sr={exports:{}},sr.exports),sr.exports);function dr(e){return e.replace(/[-[\\]/{}()*+?.\\\\^$|]/g,\"\\\\$&\")}var pr={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\"},hr=/%$/,vr=/^\\(r(0[2-9]|[12]\\d|3[0-6])\\)/i,mr=/^\\(oct\\)/i,yr=/^\\(dec\\)/i,gr=/^\\(hex\\)/i,br=/^\\(bin\\)/i,xr=/^\\(rom\\)/i,wr=/^(\\(rom\\)|\\(bin\\)|\\(hex\\)|\\(dec\\)|\\(oct\\)|\\(r(0[2-9]|[12]\\d|3[0-6])\\))/i,qr=/#|0/g;function kr(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 Mr(e,t,n){var r;return vr.test(t)?e=kr(e,Number(/\\d{2}/.exec(t)[0]),t,n):mr.test(t)?e=kr(e,8,t,n):yr.test(t)?e=kr(e,10,t,n):gr.test(t)?e=kr(e,16,t,n):br.test(t)?e=kr(e,2,t,n):xr.test(t)&&(r=\"\",e<0&&(r=\"-\",e=-e),0===(e=Math.floor(e))?e=\"0\":e<=5e5?(e=function(e,t){for(var n,r=\"\",o=Number(String(e).slice(-3)),i=(e-o)/1e3,a=[0,1,4,5,9,10,40,50,90,100,400,500,900].reverse(),l=[\"0\",\"I\",\"IV\",\"V\",\"IX\",\"X\",\"XL\",\"L\",\"XC\",\"C\",\"CD\",\"D\",\"CM\"].reverse();o>0;)for(n=0;n<a.length;n++)if(a[n]<=o){r+=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 Sr(e,t,n){var r=dr(e);return n?r:new RegExp(r||\"\",t)}function Cr(e,t,n){var r,o,i,a,l,u,c,s,f,d,p,h=e.pattern;h.indexOf(\"A\")>=0&&(h=h.replace(\"A\",\"\"),e.abbreviate=!0),d=t,(p=n)&&(p=dr(p)),d&&(d=dr(d)),f=new RegExp(\"(?:[#0]+\".concat(d,\")?[#0]+(?:\").concat(p,\"[#0]+)?\")),a=(i=(i=h.match(f))?i[0]:\"\")?h.substr(0,h.indexOf(i)):h,l=i?h.substring(h.indexOf(i)+i.length):\"\",i||(i=h?\"#\":\"##########\"),t&&t===n&&(o=(r=i.split(n)).pop(),i=r.join(\"\")+n+o,t=\"\"),u=t,t=/,/.test(n)?\"¤\":\",\",u&&(i=i.replace(Sr(u,\"g\"),t)),c=n,n=\".\",c&&(i=i.replace(Sr(c,\"g\"),n)),s=(s=i.match(/#/g))?s.length:0;var v,m=h.split(c);m[1]&&(v=m[1].match(qr)),e.prefix=a||\"\",e.postfix=l||\"\",e.pattern=h,e.maxPrecision=v?v.length:2,e.percentage=hr.test(h),e.numericPattern=i||\"\",e.numericRegex=new RegExp(\"\".concat(Sr(t,null,!0),\"|\").concat(Sr(n,null,!0)),\"g\"),e.groupTemp=u,e.decTemp=c,e.t=t,e.d=n,e.temp=s}var Dr=function(){function e(t,n,r,o,i){un(this,e),this.localeInfo=t,this.pattern=n,this.thousandDelimiter=r||\",\",this.decimalDelimiter=o||\".\",this.type=i||\"numeric\",this.patternSeparator=\";\",this.abbreviations=function(e,t){if(!e||!e.qNumericalAbbreviation)return pr;var n={};return e.qNumericalAbbreviation.split(t).forEach((function(e){var t=e.split(\":\");2===t.length&&(n[t[0]]=t[1])})),n}(t,this.patternSeparator),this.prepare()}return sn(e,[{key:\"clone\",value:function(){var t=new e(this.localeInfo,this.pattern,this.thousandDelimiter,this.decimalDelimiter,this.type);return t.subtype=this.subtype,t}},{key:\"format\",value:function(e,t,n,r){return this.prepare(t,n,r),this.formatValue(e)}},{key:\"prepare\",value:function(e,t,n){var r;void 0===e&&(e=this.pattern),void 0===t&&(t=this.thousandDelimiter),void 0===n&&(n=this.decimalDelimiter),e?(this._prepared={positive:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"},negative:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"},zero:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"}},r=this._prepared,e=e.split(this.patternSeparator),r.positive.pattern=e[0],r.negative.pattern=e[1],r.zero.pattern=e[2],wr.test(e[0])&&(r.positive.isFunctional=!0),e[1]?wr.test(e[1])&&(r.negative.isFunctional=!0):r.negative=!1,e[2]?wr.test(e[2])&&(r.zero.isFunctional=!0):r.zero=!1,r.positive.isFunctional||Cr(r.positive,t,n),r.negative&&!r.negative.isFunctional&&Cr(r.negative,t,n),r.zero&&!r.zero.isFunctional&&Cr(r.zero,t,n)):this._prepared={pattern:!1}}},{key:\"formatValue\",value:function(e){var 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).pattern;if(e<0&&s.negative?(s=s.negative,e=-e):s=s.positive,i=s.d,a=s.t,s.isFunctional)e=Mr(e,s.pattern,i);else{if(s.percentage&&(e*=100),s.abbreviate){var h,v,m=Object.keys(this.abbreviations).map((function(e){return parseInt(e,10)})).sort((function(e,t){return e-t})),y=m[0];for(l=0,n=Number(Number(e).toExponential().split(\"e\")[1]);y<=n&&l<m.length;)y=m[++l];l>0&&(h=m[l-1]),h&&n>0&&h>0?v=h:(n<0&&h<0||!h)&&(y<0&&y-n<=s.maxPrecision?v=y:h<=n&&!(y>0&&-n<=s.maxPrecision)&&(v=h)),v&&(f=this.abbreviations[v],e/=Math.pow(10,v))}if(r=Math.abs(e),t=s.temp,c=(u=s.numericPattern).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{var g=Number(e.toFixed(Math.min(20,c?c.length:0)).split(\".\")[0]),b=u.split(i)[0];if(e=fr(b+=i,g)||\"0\",c){var x=Math.max(0,Math.min(14,c.length)),w=c.replace(/#+$/,\"\").length,q=(\"I\"===this.type?0:r%1).toFixed(x).slice(2).replace(/0+$/,\"\");for(l=q.length;l<w;l++)q+=\"0\";q&&(e+=i+q)}else 0===g&&(o=0)}else if(r>=Math.pow(10,t)||r<1||r<1e-4)0===e?e=\"0\":r<1e-4||r>=1e20?(e=(e=o.toExponential(Math.max(1,Math.min(14,t))-1)).replace(/\\.?0+(?=e)/,\"\"),d=\"\"):(e=e.toPrecision(Math.max(1,Math.min(14,t)))).indexOf(\".\")>=0&&(e=(e=e.replace(e.indexOf(\"e\")<0?/0+$/:/\\.?0+(?=e)/,\"\")).replace(\".\",i));else{for(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=fr(u,e)}e=e.replace(s.numericRegex,(function(e){return e===a?s.groupTemp:e===i?s.decTemp:\"\"})),o<0&&!/^-/.test(e)&&(e=\"-\".concat(e))}return s.prefix+e+d+f+s.postfix}}],[{key:\"getStaticFormatter\",value:function(){return{prepare:function(){},formatValue:function(e){return\"\".concat(e)}}}}]),e}();function Ir(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.size,i=void 0===o?5e3:o,a=r.multipleArguments,l=void 0!==a&&a,u=r.toKey,c=void 0===u?function(e){return e}:u,s=Object.create(null),f=Object.create(null),d=0,p=0;return t=l?function(){return n=c.apply(void 0,arguments),t.has(n)?t.get(n):t.set(n,e.apply(void 0,arguments))}:function(r){return n=c(r),t.has(n)?t.get(n):t.set(n,e(r))},t.set=function(e,t){return d>=i&&(delete s[f[p]],delete f[p],d--,p++),s[e]=t,f[d]=e,d++,t},t.get=function(e){return s[e]},t.has=function(e){return e in s},t.clear=function(){s=Object.create(null),f=Object.create(null),d=0,p=0},t.size=function(){return d},t}function Or(e,t,n,r,o){var i=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return mn(Dr,t)}(o,e,t,n,r),a=Ir(i.formatValue.bind(i),{toKey:function(e){return 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}var Er=\"D\",Ar=\"T\",Nr=\"TS\",Lr=\"IV\",Tr=[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",\"Sunday\"],Pr=[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sun\"],jr=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],Fr=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];function Rr(e,t){for(var n=e.length;n<t;n++)e=\"0\".concat(e);return e}function Hr(e){var t=e.toString().split(\".\");return t[1]?t=Number(\"0.\".concat(t[1])):0}function zr(e,t){var n,r=function(e){var t=e,n=24*Hr(t),r=60*Hr(n),o=60*Hr(r),i=1e3*Hr(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)<0&&(c=6);var s=\"\";return n&&(s=n.getUTCHours()>=12?\"pm\":\"am\"),{year:0,month:0,day:c,date:o,h:i,m:a,s:l,f:u,t:s}}var Vr=function(){function e(t,n,r){un(this,e);var o,i=t||{};(i.qCalendarStrings||(i.qCalendarStrings={qLongDayNames:Tr,qDayNames:Pr,qLongMonthNames:jr,qMonthNames:Fr}),this.localeInfo=i,this.locale_days=i.qCalendarStrings.qLongDayNames.slice(),this.locale_days_abbr=i.qCalendarStrings.qDayNames.slice(),this.locale_months=i.qCalendarStrings.qLongMonthNames.slice(),this.locale_months_abbr=i.qCalendarStrings.qMonthNames.slice(),n)||(n=(fn(o={},Ar,i.qTimeFmt||\"hh:mm:ss\"),fn(o,Er,i.qDateFmt||\"YYYY-MM-DD\"),fn(o,Nr,i.qTimestampFmt||\"YYYY-MM-DD hh:mm:ss\"),o)[r]);this.pattern=n}return sn(e,[{key:\"clone\",value:function(){var t=new e(this.localeInfo,this.pattern);return t.subtype=this.subtype,t}},{key:\"format\",value:function(e,t){t||(t=this.pattern?this.pattern:\"YYYY-MM-DD hh:mm:ss\"),t=t.replace(/\\[.+]|\\[|]/g,\"\");var n,r,o,i,a,l=/t+/gi.test(t);e instanceof Date?(o=l,i=(r=e).getUTCHours(),a=r.getUTCDay()-1,o&&((i%=12)||(i=12)),a<0&&(a=6),n={year:r.getUTCFullYear(),month:r.getUTCMonth(),day:a,date:r.getUTCDate(),h:i,m:r.getUTCMinutes(),s:r.getUTCSeconds(),f:r.getUTCMilliseconds(),t:r.getUTCHours()>=12?\"pm\":\"am\"}):(e<0&&(e=-e,t=\"-\".concat(t)),n=zr(e,t));var u=function(e,t){return{\"Y+|y+\":{Y:\"\".concat(Number(\"\".concat(t.year).slice(-2))),YY:Rr(\"\".concat(t.year).slice(-2),2),YYY:Rr(\"\".concat(t.year).slice(-3),3),def:function(e){return Rr(\"\".concat(t.year),e.length)}},\"M+\":{M:t.month+1,MM:Rr(\"\".concat(t.month+1),2),MMM:e.locale_months_abbr[t.month],def:e.locale_months[t.month]},\"W+|w+\":{W:t.day,WW:Rr(\"\".concat(t.day),2),WWW:e.locale_days_abbr[t.day],def:e.locale_days[t.day]},\"D+|d+\":{D:t.date,def:function(e){return Rr(\"\".concat(t.date),e.length)}},\"h+|H+\":{h:t.h,def:function(e){return Rr(\"\".concat(t.h),e.length)}},\"m+\":{m:t.m,def:function(e){return Rr(\"\".concat(t.m),e.length)}},\"s+|S+\":{s:t.s,def:function(e){return Rr(\"\".concat(t.s),e.length)}},\"f+|F+\":{def:function(e){var n=\"\".concat(t.f),r=e.length-n.length;if(r>0)for(var o=0;o<r;o++)n+=\"0\";else r<0&&(n=n.slice(0,e.length));return n}},\"t{1,2}|T{1,2}\":{def:function(e){var n=t.t;return e[0].toUpperCase()===e[0]&&(n=n.toUpperCase()),n.slice(0,e.length)}}}}(this,n),c=[];for(var s in u)Object.prototype.hasOwnProperty.call(u,s)&&c.push(s);var f=new RegExp(c.join(\"|\"),\"g\"),d=t.replace(f,(function(e){var t,n,r;for(n in u)if(Object.prototype.hasOwnProperty.call(u,n)&&(t=new RegExp(n)).test(e))break;if(!t)return\"\";for(var o in u[n])if(o===e||o.toLowerCase()===e){void 0===(r=u[n][o])&&(r=u[n][o.toLowerCase()]);break}return void 0===r&&(r=u[n].def),\"function\"==typeof r&&(r=r(e)),r}));return d}}]),e}();function _r(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return mn(Vr,t)}function Br(e){return new Date(Date.UTC(1899,11,30+Math.floor(e),0,0,0,Math.round(864e5*(e-Math.floor(e)))))}function $r(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"TS\",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=_r(n,e,t),o=Ir(r.format.bind(r),{toKey:function(e){return\"object\"===ln(e)&&\"function\"==typeof e.getTime?e.getTime():e}});function i(e){return t!==Lr?Br(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=_r(n,e,t),o=Ir(r.format.bind(r),{toKey:function(e){return\"object\"===ln(e)?e.getTime():e}}),this},a.qtype=function(e){return void 0!==e&&(t=e,o.clear()),t},a}function Yr(e,t){if(e&&e.qNumFormat&&-1!==[\"D\",\"T\",\"TS\",\"IV\"].indexOf(e.qNumFormat.qType))return $r(e.qNumFormat.qFmt,e.qNumFormat.qType,t);var n=\"#\",r=t&&void 0!==t.qThousandSep?t.qThousandSep:\",\",o=t&&void 0!==t.qDecimalSep?t.qDecimalSep:\".\",i=\"U\",a=e&&!!e.qIsAutoFormat;return e&&e.qNumFormat?(n=e.qNumFormat.qFmt||n,r=e.qNumFormat.qThou||r,o=e.qNumFormat.qDec||o,i=e.qNumFormat.qType||i,a=a&&-1===[\"M\"].indexOf(e.qNumFormat.qType)):a=!0,(a||\"U\"===i)&&(n=\"#\".concat(o,\"##A\"),i=\"U\"),Or(n,r,o,i,t)}function Ur(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.meta,r=t.id,o=t.key,i=t.localeInfo,a=t.fieldExtractor,l=t.value,u=t.type,c=t.sourceField,s=l||(\"dimension\"===u?function(e){return e.qElemNo}:function(e){return e.qValue}),f=function(e){return e.qText||\"\"},d=\"dimension\"===u?\"first\":\"avg\",p=Yr(n,i),h=\"dimension\"===u?\"first\":function(e,t){return p(t)},v={id:function(){return r},key:function(){return o},raw:function(){return n},title:function(){return n.qFallbackTitle||n.label},type:function(){return u},origin:function(){return c},items:function(){return e||(e=a(v)),e},min:function(){return n.qMin},max:function(){return n.qMax},value:s,label:f,reduce:d,reduceLabel:h,formatter:function(){return p},tags:function(){return n.qTags}};return v}function Kr(e,t,n,r,o){return(t[e]||[]).map((function(t,i){var a=\"\".concat(r?\"\".concat(r,\"/\"):\"\").concat(e,\"/\").concat(i),l={instance:Ur(On({id:\"\".concat(n?\"\".concat(n,\"/\"):\"\").concat(a),key:a,meta:t},o))};return l.attrDims=Kr(\"qAttrDimInfo\",t,n,a,On({},o,{value:function(e){return e.qElemNo},type:\"dimension\"})),l.attrExps=Kr(\"qAttrExprInfo\",t,n,a,On({},o,{value:function(e){return e.qNum},type:\"measure\"})),l.measures=Kr(\"qMeasureInfo\",t,n,a,On({},o,{value:function(e){return e.qValue},type:\"measure\"})),l}))}function Gr(){var e,t,n,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=r.key,i=r.data,a=r.config,l=void 0===a?{}:a,u={fields:[],wrappedFields:[],allFields:[],virtualFields:[]},c=i;if(!c)throw new Error('Missing \"data\" input');if(!c.qDimensionInfo)throw new Error('The \"data\" input is not recognized as a hypercube');var s=Gr.util,f={cache:u,cube:c,localeInfo:l.localeInfo,fieldExtractor:null,pages:null,hierarchy:function(){return null},virtualFields:l.virtualFields},d={key:function(){return o},raw:function(){return c},field:function(e){return Gn(e,f)},fields:function(){return u.fields.slice()},extract:function(e){return f.extractor(e,d,u,s)},hierarchy:function(e){return f.hierarchy(e,d,u,s)},_cache:function(){return u}};\"K\"===c.qMode||\"T\"===c.qMode||!c.qMode&&c.qNodesOnDim?(f.extractor=ur,f.hierarchy=lr,f.pages=\"K\"===c.qMode?c.qStackedDataPages:c.qTreeDataPages):\"S\"===c.qMode?(f.extractor=Ln,f.pages=c.qDataPages,f.hierarchy=lr):f.extractor=function(){return[]},f.fieldExtractor=function(e){return f.extractor({field:e},d,u,s)};var p=\"S\"===c.qMode?function(e){return e.qElemNumber}:void 0,h=\"S\"===c.qMode?function(e){return e.qNum}:void 0;(e=u.wrappedFields).push.apply(e,gn(Kr(\"qDimensionInfo\",c,o,\"\",On({},f,{value:p,type:\"dimension\"})))),(t=u.wrappedFields).push.apply(t,gn(Kr(\"qMeasureInfo\",c,o,\"\",On({},f,{value:h,type:\"measure\"})))),u.fields=u.wrappedFields.map((function(e){return e.instance}));var v=function e(t){t.forEach((function(t){u.allFields.push(t.instance),e(t.measures),e(t.attrDims),e(t.attrExps)}))};return v(u.wrappedFields),(l.virtualFields||[]).forEach((function(e){var t=d.field(e.from),n=Ur(pn({meta:t.raw(),id:\"\".concat(o,\"/\").concat(e.key),sourceField:t,fieldExtractor:function(e){return f.extractor({field:e},d,u,s)},key:e.key,type:t.type(),localeInfo:f.localeInfo,value:t.value},e.override||{}));u.virtualFields.push(n)})),(n=u.allFields).push.apply(n,gn(u.virtualFields)),d}var Wr=[[\"qHyperCube\",\"qHyperCubeDef\"],[\"qTreeData\",\"qTreeDataDef\"],[\"qDimensionInfo\",\"qDimensions\"],[\"qMeasureInfo\",\"qMeasures\"],[\"qAttrDimInfo\",\"qAttributeDimensions\"],[\"qAttrExprInfo\",\"qAttributeExpressions\"]],Xr=/\\/qDimensionInfo(?:\\/(\\d+))?/,Zr=/\\/qMeasureInfo\\/(\\d+)/,Jr=/\\/qAttrDimInfo\\/(\\d+)(?:\\/(\\d+))?/,Qr=/\\/qAttrExprInfo\\/(\\d+)/,eo=/\\/?qHyperCube/,to=/\\/?qTreeData/,no=function(e){return\"\".concat(e.substr(0,e.indexOf(\"/qHyperCubeDef\")+14))},ro=function(e){return\"\".concat(e.substr(0,e.indexOf(\"/qTreeDataDef\")+13))};function oo(e,t){var n=e,r=-1,o=-1,i=\"\",a=function(e){return e};eo.test(e)?(i=\"\".concat(n.substr(0,n.indexOf(\"qHyperCube\")+10)),a=no):to.test(e)&&(i=\"\".concat(n.substr(0,n.indexOf(\"qTreeData\")+9)),a=ro);var l=!0;if(Xr.test(e)&&(r=+Xr.exec(e)[1]),Zr.test(e)&&(o=+Zr.exec(e)[1]),Jr.test(e)){o=-1,r=0;var u=+Jr.exec(n)[2];isNaN(u)||(r=u,n=n.replace(/\\/\\d+$/,\"\")),l=!1}if(Qr.test(e)){var c=o;if(t){o=0;var s=Yn(i,t);o+=(s.qMeasureInfo||[]).length,r>-1?(o=s.qDimensionInfo.slice(0,r).reduce((function(e,t){return e+t.qAttrExprInfo.length}),o),r=-1):(o=s.qDimensionInfo.reduce((function(e,t){return e+t.qAttrExprInfo.length}),o),o=s.qMeasureInfo.slice(0,c).reduce((function(e,t){return e+t.qAttrExprInfo.length}),o)),o+=+Qr.exec(n)[1]}else r>-1?(r=-1,o=+Qr.exec(n)[1]):o+=+Qr.exec(n)[1]+1}return Wr.forEach((function(e){var t=yn(e,2),r=t[0],o=t[1];n=n.replace(r,o)})),l&&(n=a(n)),n&&\"/\"!==n[0]&&(n=\"/\".concat(n)),{measureIdx:o,dimensionIdx:r,path:n}}function io(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,o=n.byCells,i=n.primarySource,a=[],l={},u=e.isActive(),c=!1;if(e.brushes().forEach((function(e){var t=oo(e.id,r);if(\"range\"===e.type&&t.measureIdx>-1&&t.dimensionIdx>-1){var n=e.brush.ranges();n.length&&(c=!0,l.multiRangeSelectTreeDataValues||(l.multiRangeSelectTreeDataValues={path:t.path,ranges:[]}),n.forEach((function(e){return l.multiRangeSelectTreeDataValues.ranges.push({qMeasureIx:t.measureIdx,qDimensionIx:t.dimensionIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!0}})})))}else{if(\"range\"===e.type&&t.measureIdx>-1){var u=e.brush.ranges();u.length&&(c=!0,l.rangeSelectHyperCubeValues||(l.rangeSelectHyperCubeValues={path:t.path,ranges:[]}),u.forEach((function(e){return l.rangeSelectHyperCubeValues.ranges.push({qMeasureIx:t.measureIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!0}})})))}if(\"range\"===e.type&&t.dimensionIdx>-1){var s=e.brush.ranges();s.length&&(c=!0,l.selectHyperCubeContinuousRange||(l.selectHyperCubeContinuousRange={path:t.path,ranges:[]}),s.forEach((function(e){return l.selectHyperCubeContinuousRange.ranges.push({qDimIx:t.dimensionIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!1}})})))}if(\"value\"===e.type&&t.dimensionIdx>-1)if(o)if(r&&r.qHyperCube&&(\"P\"===r.qHyperCube.qMode||\"T\"===r.qHyperCube.qMode||\"K\"===r.qHyperCube.qMode)){var f=r.qHyperCube,d=f.qNoOfLeftDims,p=f.qEffectiveInterColumnSortOrder.indexOf(t.dimensionIdx);if(l.selectPivotCells||(l.selectPivotCells={path:t.path,cells:[]}),e.id===i||!i){var h=e.brush.values().map((function(e){return+e})).filter((function(e){return!isNaN(e)}));(0===d||p>=d)&&d>-1?h.forEach((function(e){l.selectPivotCells.cells.push({qType:\"T\",qCol:e,qRow:p-d})})):h.forEach((function(e){l.selectPivotCells.cells.push({qType:\"L\",qCol:t.dimensionIdx,qRow:e})})),c=!!l.selectPivotCells.cells.length}}else l.selectHyperCubeCells||(l.selectHyperCubeCells={path:t.path,cols:[]}),l.selectHyperCubeCells.cols.push(t.dimensionIdx),e.id!==i&&(i||l.selectHyperCubeCells.values)||(l.selectHyperCubeCells.values=e.brush.values().map((function(e){return+e})).filter((function(e){return!isNaN(e)})),c=!!l.selectHyperCubeCells.values.length);else{var v=e.brush.values().map((function(e){return+e})).filter((function(e){return!isNaN(e)}));c=!!v.length,a.push({params:[t.path,t.dimensionIdx,v,!1],method:\"selectHyperCubeValues\"})}}})),!c&&u)return[{method:\"resetMadeSelections\",params:[]}];l.rangeSelectHyperCubeValues&&a.push({method:\"rangeSelectHyperCubeValues\",params:[l.rangeSelectHyperCubeValues.path,l.rangeSelectHyperCubeValues.ranges,[],null===(t=n.orMode)||void 0===t||t]});return l.selectHyperCubeContinuousRange&&a.push({method:\"selectHyperCubeContinuousRange\",params:[l.selectHyperCubeContinuousRange.path,l.selectHyperCubeContinuousRange.ranges]}),l.selectHyperCubeCells&&a.push({method:\"selectHyperCubeCells\",params:[l.selectHyperCubeCells.path,l.selectHyperCubeCells.values,l.selectHyperCubeCells.cols]}),l.selectPivotCells&&a.push({method:\"selectPivotCells\",params:[l.selectPivotCells.path,l.selectPivotCells.cells]}),l.multiRangeSelectTreeDataValues&&a.push({method:\"multiRangeSelectTreeDataValues\",params:[l.multiRangeSelectTreeDataValues.path,l.multiRangeSelectTreeDataValues.ranges]}),a}function ao(e){Gr.util=e.data(\"matrix\").util,e.data(\"q\",Gr),e.formatter(\"q-number\",Or),e.formatter(\"q-time\",$r)}function lo(e){var t=Ut(e.layout||{},e.path.split(\"/\").join(\".\"));if(!t)return!1;var n=t.qIsOneAndOnlyOne;return void 0!==n&&n}function uo(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 lo({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 co(){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 so(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))}ao.qBrushHelper=io,ao.selections=io;var fo=\"Enter\",po=\"Escape\",ho=\"Esc\",vo=\"Shift\";function mo(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=lo({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 yo=function e(t,n){return n[t]?e(t+1,n):t},go=function(e,t){var n=t.reduce((function(e,t){return e[t]=!0,e}),{});return e.reduce((function(e,t,r){var o=yo(r,n);return n[o]=!0,e[r]=o,e}),{})};function bo(){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:go(a,r.dimensions||[]),measures:go(u,r.measures||[])}}var xo=\"selectHyperCubeValues\",wo=\"selectHyperCubeContinuousRange\";function qo(e){var t=e.selection,n=e.fieldMap,r=t.method,o=t.params;if(r===xo){var i=n.dimensions[o[1]];void 0!==i&&(o[1]=i)}r===wo&&o[1].forEach((function(e){var t=n.dimensions[e.qDimIx];void 0!==t&&(e.qDimIx=t)}));return t}var ko=[],Mo=0,So=function(e){var t=ko.filter((function(e){var t;return null===(t=e.selections)||void 0===t?void 0:t.isActive()}));t.length&&(e.key===fo?t.forEach((function(e){return e.selections.confirm()})):e.key!==po&&e.key!==ho||t.forEach((function(e){return e.selections.cancel()})))},Co=function(){document.addEventListener(\"keyup\",So)},Do=function(){document.removeEventListener(\"keyup\",So)},Io=function(e,t){Object.keys(t).forEach((function(n){e.on(n,t[n])}))},Oo=function(e,t){Object.keys(t).forEach((function(n){e.removeListener(n,t[n])}))};function Eo(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 Ao(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 No(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 Ao({selectionInfo:t,chart:n,document:r,eventName:void 0!==u&&u?void 0:i,componentName:l,emit:\"areaClear\",brushName:e.brushName})}function Lo(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 Ao({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=Ao({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,v=n.scale(p).data().fields.map((function(e){return e.id()})),m=n.brush(h),y=m.brushes().filter((function(e){return\"range\"===e.type&&v.some((function(t){return t===e.id}))}));m&&y.length&&y.forEach((function(e){m.removeRanges(e.brush.ranges().map((function(t){return{key:e.id,range:t}})))}))}}function Po(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;Ao({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 jo(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 Fo(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;Ao({selectionInfo:t,chart:n,document:r,eventName:s?void 0:a,componentName:u,brushName:void 0!==f&&f})&&o.clear()}var Ro=[\"chart\",\"document\",\"selections\",\"selectionInfo\"],Ho=function(e){e.chart,e.document,e.selections,e.selectionInfo;var t=l(e,Ro);t.clearDiscrete(),t.clearContinuous(),t.clearMinor(),t.clearRange(),t.clearTap(),t.clearLegend()};function zo(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 Vo(e){var t,n=e.lasso;null!=n&&null!==(t=n.active)&&void 0!==t&&t.call(n)&&(null==n||n.action(!1))}function _o(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=(l||{}).lasso,d=void 0!==f&&f,p=i.reset,h=void 0===p?Vo:p,v=i.clear,m=!1!==v&&function(e){var n=e.clear,r=void 0===n?Ho: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 No(t(t({},n),e))},clearContinuous:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Lo(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 Po(t(t({},n),e))},clearTap:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return jo(t(t({},n),e))},clearLegend:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Fo(t(t({},n),e))}},n))}}({clear:v,selections:c,selectionInfo:o,chart:r}),y=function(e){var t=e.chart,n=e.lasso,r=e.reset,o=e.clear,i=!1,a={deactivated:function(e){r({e:e,lasso:n})},canceled:function(e){r({e:e,lasso:n}),o({e:e,chart:t,document:document})},cleared:function(e){i||(i=!0,o({e:e,chart:t,document:document,cleared:!0}),i=!1)}};return!1===r&&delete a.deactivated,!1===o&&delete a.cleared,!1===r&&!1===o&&delete a.canceled,a}({chart:r,clear:m,reset:h,lasso:d}),g={};Object.entries(y).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];g[n]=function(e,t){return t?function(n){return t({event:n,defaultFunc:e})}:e}(r,s[n])}));var b=zo({selectionEvents:s,selections:c,selectionInfo:o,clear:m,chart:r,document:document});return null==l||null===(n=l.select)||void 0===n||n.on(\"start\",b),Object.entries(g).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\",b),Object.entries(g).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];null==c||c.removeListener(n,r)}))}}function Bo(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=_o({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!==vo||(t.lasso.action(!0),n=!0)},o=function(e){e.key===vo&&(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 $o=[{key:\"qHyperCube/qDimensionInfo/0:numeric\",includeMax:!1}];function Yo(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=(d=void 0===d?{}:d).clear,h=d.reset,v=i.selectionEvents,m=void 0===v?{deactivated:void 0,canceled:void 0,cleared:void 0,start:void 0}:v,y=i.brushEvents,g=void 0===y?{}:y,b=i.brushName,x=void 0===b?\"selection\":b,w=i.brushMaxListeners,q=void 0===w?20:w,k=i.brushRanges,M=void 0!==k&&k,S=i.interceptors,C=void 0===S?{}:S,D=i.selectionsFn,I=void 0===D?o.selections:D,O=t.brush(x);if(\"number\"==typeof q&&O.setMaxListeners(q),M){var E=!0===M?$o:M;O.configure({ranges:E})}var A={canSelect:!0,getIsSelectionLocked:!1,isInnerDimensionLocked:!1,lockedDimensions:[],singleSelectIndex:0,selectionInfo:{colorField:void 0,components:[],event:void 0,currentComponent:void 0,previousComponent:void 0}},N=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.selections,r=t.brush,o=t.majorScale,i=t.actions,a=t.selectionsFn,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=++Mo,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=mo({brush:r,getConfig:function(){return{layout:s,allowSimultaneous:d}}}),v=h.rangeInterceptor,m=h.interceptor;r.intercept(\"set-ranges\",v),r.intercept(\"toggle-ranges\",v),r.intercept(\"toggle-values\",m),r.intercept(\"set-values\",m),r.intercept(\"add-values\",m),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()}};Io(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=bo({layout:s,filtered:f});e.forEach((function(e){var r=qo({selection:e,fieldMap:t});Eo(r,i.select.brushSelectionIncludeMax,g),n.select(r)}))}))):r.on(\"update\",(function(){var e=a(r,p,s),t=bo({layout:s,filtered:f});e.forEach((function(e){n.select(qo({selection:e,fieldMap:t}))}))})),0===ko.length&&Co(),ko.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=ko.indexOf(ko.filter((function(e){return e.key===c}))[0]);-1!==e&&ko.splice(e,1),ko.length||Do(),Oo(n,y)}}}({brush:O,majorScale:f,actions:n,selections:r,picassoQ:o,selectionsFn:I});!function(e){var t=e.brush,n=e.interceptors,r=void 0===n?{}:n;Object.entries(r).forEach((function(e){var n=u(e,2),r=n[0],o=n[1];(Array.isArray(o)?o:[o]).forEach((function(e){t.intercept(r,e)}))}))}({brush:O,interceptors:C});var L=Bo({chart:t,brush:O,actions:n,selections:r,selectionInfo:A.selectionInfo,selectionActions:{clear:p,reset:h},selectionEvents:m,brushEvents:g});if(l){var T=!0===l?c(Array(15)).map((function(e,t){return\"qHyperCube/qMeasureInfo/\".concat(t)})):l;N.allowSimultaneous(T)}return{unbindEvents:L,state:A,picassoSelections:N,brush:O}}var Uo=[\"colorField\",\"useLegendCube\"];function Ko(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=Yo({chart:n,actions:i,selections:r,picassoQ:ao,config:u}),s=c.unbindEvents,f=c.state,d=c.picassoSelections,p=c.brush,h=u.custom,v=void 0===h?{}:h,m=u.legendAlias,y=void 0===m?void 0:m,g=u.setBrushAliases,b=void 0===g?so: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:co(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=uo({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,Uo),a=t({useLegendCube:o,colorField:n,brush:p,legendAlias:y},i);b(t(t({},a),{},{defaultFunc:function(){return so(a)}}))},destroy:function(){s(),d.release()},custom:t({},v)}}var Go=\"'Source Sans Pro', 'Arial', 'sans-serif'\",Wo=\"#333333\",Xo=\"#595959\",Zo=\"#737373\",Jo=\"#cccccc\",Qo=\"#e6e6e6\";function ei(e){var t={};return[].concat(c(e),c([[\"\",\"\",\"color\"],[\"object\",\"\",\"fontFamily\"],[\"object\",\"axis.label.name\",\"color\",Xo],[\"object\",\"axis.label.name\",\"fontFamily\",Go],[\"object\",\"axis.label.name\",\"fontSize\",\"12px\"],[\"object\",\"axis.line.major\",\"color\",Jo],[\"object\",\"axis.line.minor\",\"color\",Qo],[\"object\",\"axis.title\",\"color\"],[\"object\",\"axis.title\",\"fontFamily\",Go],[\"object\",\"axis.title\",\"fontSize\",\"13px\"],[\"object\",\"grid.line.highContrast\",\"color\",Qo],[\"object\",\"grid.line.major\",\"color\",Jo],[\"object\",\"grid.line.minor\",\"color\",Qo],[\"object\",\"label.value\",\"color\",Xo],[\"object\",\"label.value\",\"fontFamily\",Go],[\"object\",\"label.value\",\"fontSize\",\"12px\"],[!1,\"label.value\",\"darkColor\",Xo],[!1,\"label.value\",\"lightColor\",Qo],[\"object\",\"outOfRange\",\"color\",\"#999\"],[\"object\",\"referenceLine.label.name\",\"color\",Wo],[\"object\",\"referenceLine.label.name\",\"fontFamily\",Go],[\"object\",\"referenceLine.label.name\",\"fontSize\",\"12px\"],[\"object\",\"referenceLine.outOfBounds\",\"color\",Qo],[\"object\",\"referenceLine.outOfBounds\",\"fontFamily\",Go],[\"object\",\"referenceLine.outOfBounds\",\"fontSize\",\"12px\"],[\"object\",\"referenceLine.outOfBounds\",\"backgroundColor\",Zo,function(e){return\"transparent\"===e?Zo: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 ti=function(e){return e};function ni(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)]||ti)(d(p));Kt(a,[i,c].filter(Boolean).join(\".\"),h)})),o.forEach((function(e){var t=u(e,2),n=t[0],r=t[1];Kt(a,n,r)})),a}function ri(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:ei(a),styles:void 0};return f.styles=ni({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=ni({theme:e,id:o,transform:u,extend:s,matrix:f.matrix})}}}var oi={NOOP:function(){},FALSE:function(){return!1},ARRAY:function(){return[]},OBJECT:function(){return{}}};var ii=\"chart-modules-tooltip\",ai=\"#\".concat(ii);function li(){if(!document.querySelector(ai)){var e=document.createElement(\"div\");e.id=ii,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 ui(e){return{show:!0,key:e.key,type:\"tooltip\",layout:{displayOrder:3},beforeMount:function(){li()},beforeUpdate:function(){li()},destroyed:function(){var e;null!=(e=document.querySelector(ai))&&e.parentElement&&e.childElementCount<1&&e.parentElement.removeChild(e)},settings:{appendTo:function(){return document.querySelector(ai)},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 ci=\"position\";var si={bar:\"rect\",diamond:\"path\",point:\"circle\",square:\"rect\",triangle:\"path\",\"n-polygon\":\"path\",slice:\"path\"},fi=function(e){return e.data.value},di=function(e){var t,n=e.data;return null==n||null===(t=n.major)||void 0===t?void 0:t.value};function pi(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?fi:s;return o.reduce((function(e,n){var r=n.major,o=void 0===r?di:r,a=si[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 hi=Number.MAX_VALUE;function vi(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:hi,xMax:-hi,yMin:hi,yMax:-hi}),n=t.xMin,r=t.xMax,o=t.yMin;return{x:n,y:o,width:r-n,height:t.yMax-o}}function mi(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=vi({nodes:a}),h=0;h<f.length;h++){var v=f[h];if(\"function\"==typeof v){var m=v({chart:t,expando:r,hovered:i,collected:c(a),meta:l,collectedBounds:p,combineBounds:vi});if(m)return m}if(\"trigger\"===v)return d;if(\"collectible\"===v){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 yi(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(ci)},p=(pi({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?mi({chart:t,config:n,expando:r,placementConfig:f,hovered:i,collected:p,meta:d}):[]}var gi=\"[־׀׃׆א-״߀-ߪߴ-ߵߺ-ࠕࠚࠤࠨ࠰-ࡘ࡞‏יִײַ-ﬨשׁ-ﭏ]\",bi=\"[؈؋؍؛-ي٭-ٯٱ-ەۥ-ۦۮ-ۯۺ-܍ܐܒ-ܯݍ-ޥޱﭐ-ﴽﵐ-﷼ﹰ-ﻼ]\",xi=new RegExp(\"[A-Za-zªµºÀ-ÖØ-öø-ʸʻ-ˁː-ˑˠ-ˤˮͰ-ͳͶ-ͽΆΈ-ϵϷ-҂Ҋ-։ः-हऻऽ-ीॉ-ौॎ-ॐक़-ॡ।-ॿং-হঽ-ীে-ৌৎ-ৡ০-ৱ৴-৺ਃ-ਹਾ-ੀਖ਼-੯ੲ-ੴઃ-હઽ-ીૉ-ૌૐ-ૡ૦-૯ଂ-ହଽ-ାୀେ-ୌୗ-ୡ୦-୷ஃ-ிு-ௌௐ-௲ఁ-ఽు-ౄౘ-ౡ౦-౯౿-ಹಽ-ೋೕ-ೡ೦-ീെ-ൌൎ-ൡ൦-ෆා-ෑෘ-ะา-ำเ-ๆ๏-ະາ-ຳຽ-ໆ໐-༗༚-༴༶༸༾-ཬཿ྅ྈ-ྌ྾-࿅࿇-ာေးျ-ြဿ-ၗၚ-ၝၡ-ၰၵ-ႁႃ-ႄႇ-ႌႎ-ႜ႞-ፚ፠-ᎏᎠ-Ᏼᐁ-ᙿᚁ-ᚚᚠ-ᜑᜠ-ᜱ᜵-ᝑᝠ-ᝰក-ាើ-ៅះ-ៈ។-៚ៜ០-៩᠐-ᢨᢪ-ᤜᤣ-ᤦᤩ-ᤱᤳ-ᤸ᥆-᧚ᨀ-ᨖᨙ-ᩕᩗᩡᩣ-ᩤᩭ-ᩲ᪀-᪭ᬄ-ᬳᬵᬻᬽ-ᭁᭃ-᭪᭴-᭼ᮂ-ᮡᮦ-ᮧ᮪-ᯥᯧᯪ-ᯬᯮ᯲-ᰫᰴ-ᰵ᰻-᱿᳓᳡ᳩ-ᳬᳮ-ᶿḀ-ᾼιῂ-ῌῐ-Ίῠ-Ῥῲ-ῼ‎ⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎ-⅏Ⅰ-ↈ⌶-⍺⎕⒜-ⓩ⚬⠀-⣿Ⰰ-ⳤⳫ-ⳮⴀ-⵰ⶀ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ㆺㇰ-㈜㈠-㉏㉠-㉻㉿-㊰㋀-㋋㋐-㍶㍻-㏝㏠-㏾㐀-䶵一-ꒌꓐ-ꘌꘐ-ꙮꚀ-ꛯ꛲-꛷Ꜣ-ꞇ꞉-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠤꠧ꠰-꠷ꡀ-ꡳꢀ-ꣃ꣎-꣙ꣲ-ꤥ꤮-ꥆꥒ-ꥼꦃ-ꦲꦴ-ꦵꦺ-ꦻꦽ-ꨨꨯ-ꨰꨳ-ꨴꩀ-ꩂꩄ-ꩋꩍ-ꪯꪱꪵ-ꪶꪹ-ꪽꫀꫂ-ꯤꯦ-ꯧꯩ-꯬꯰-ﬗA-Za-zヲ-ᅵ]\"),wi=new RegExp(gi),qi=new RegExp(bi),ki=function(e){return xi.test(e)},Mi=function(e){return wi.test(e)||qi.test(e)};function Si(e){for(var t=e?e.length:0,n=0;n<t;n++){var r=e[n];if(ki(r))return\"ltr\";if(Mi(r))return\"rtl\"}return\"ltr\"}function Ci(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 Di(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 v=null!=s?s:function(e){var t=e.node.attrs;return(null==t?void 0:t.fill)||\"#ddd\"}({node:h}),m=r(\"div\",{style:{display:\"inline-block\",width:10,height:10,\"background-color\":v,margin:\"0 8px\"}});return d.content.push({content:f?[\":\",d.label]:[d.label,\":\"],style:{\"text-align\":f?\"right\":\"left\",direction:Si(d.label)}},{content:f?[d.value,m]:[m,d.value],style:{\"text-align\":f?\"left\":\"right\",\"vertical-align\":\"middle\",direction:Si(d.value)}}),d}function Ii(e){var n=e.config,r=e.h,o=e.context,i={section:function(e){return function(e){return{type:\"section\",content:e.content}}({content:e.content})},text:function(e){var r=e.value,o=e.style,i=e.visibility;return function(e){var n=e.config,r=e.value,o=e.style,i=(o=void 0===o?{}:o).bold,a=void 0!==i&&i,l=o.italic,u=void 0!==l&&l,c=e.visibility;return{type:\"text\",content:[{content:r,style:{\"font-weight\":a?\"bold\":\"normal\",\"font-style\":u?\"italic\":\"normal\",\"text-align\":n.rtl?\"right\":\"left\",direction:Si(r)},colspan:2}],visibility:t(t({},{count:!0}),c)}}({config:n,value:r,style:o,visibility:i})},measure:function(e){var o=e.label,i=e.value,a=e.color,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,v=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:Si(u)}},{content:s?h?[c,v]:[v,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:Si(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 Ci({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 Di({config:n,h:r,context:o,nodes:t,property:i,filter:l,visibility:u,fillColor:c})}};return i}function Oi(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=Si(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 Ei(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=Ii({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=Oi({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 Ai(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=Gt(),l=ui({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 x(!0,l,{settings:{filter:function(e){return yi({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 Ei({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 Ni(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=ui({key:r.tooltip,rtl:n.rtl,duration:n.duration});return x(!0,o,{settings:{filter:function(e){return e.filter((function(e){return e.data&&e.key===r.component}))},extract:function(e){return e},content:function(e){var n=e.h,r=e.data;return[n(\"tr\",{},[n(\"td\",{style:t(t({},e.style.cell||{}),{\"font-weight\":\"bold\",\"text-align\":\"left\"}),colspan:2},r[0].node.data.label)])]},placement:\"pointer\"},style:{arrow:{color:n.style.background},content:n.style}})}function Li(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 Ti=function(){return!0};function Pi(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:Ti})),e}),{});return function(e){var n=t[e.key];return!n||n(e)}}function ji(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 Fi(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 Ri(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.facade,l=n.delay.tap,s=Li({config:n}),f=Pi({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=ji({chart:t,event:e,component:p});o.set(ci,h);var v=Fi({chart:t,filter:f,hits:d,position:h});if(v.length){var m=v[0].key;n.main.events.tooltip.beforeShow({expando:r,event:e,collectNodes:function(){return i.collectNodes({nodes:v})},meta:{triggerer:m,position:h}}).then((function(){a.emit(\"show\",e,{nodes:v,delay:l})})).catch((function(){}))}else a.emit(\"hide\")}else a.emit(\"hide\")}}}))}}function Hi(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(ci)}}).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 zi(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.facade,a=Li({config:n}),l=Pi({config:n}),c=Hi({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=ji({chart:t,event:e,component:f});o.set(ci,d);var p=Fi({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 v=t.component(h.keys.tooltip);v&&v.show&&(r.some((function(e){return e.key===h.keys.component}))?v.emit(\"show\",e):v.emit(\"hide\"))}}},mouseup:function(e){2===e.button&&f()},mouseleave:function(){n.main.events.interaction.mouseleave({expando:r}),f()},wheel:function(){f()}}}}function Vi(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(yi({chart:t,config:n,expando:r,internal:o,nodes:i}),1)[0];return(a=void 0===a?{nodes:[]}:a).nodes}}}({chart:t,config:n,expando:r,internal:o});return{gestures:[Ri({chart:t,config:n,expando:r,internal:o,facade:i})],native:zi({chart:t,config:n,expando:r,internal:o,facade:i})}}function _i(e){var t=e.chart,n=e.translator,r=function(e){var t=e.config;return x(!0,{},{rtl:!1,enable:oi.FALSE,getColorSettings:oi.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:oi.FALSE,getGroupByValue:oi.NOOP,collectibles:[],triggers:[],placement:function(){return{type:\"bounds\"}},placements:{collectible:\"combine\"},showDuplicateMeasures:!1,layout:{rows:7,grouping:!1,single:!1},section:oi.ARRAY,sections:oi.NOOP,events:{tooltip:{beforeShow:function(){return Promise.resolve()},afterShow:oi.NOOP,afterHide:oi.NOOP},interaction:{mouseleave:oi.NOOP}}},legend:{keys:{tooltip:void 0,component:void 0}}},void 0===t?{}:t)}({config:e.config}),o=Gt(),i=Gt(),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[Ai({chart:t,translator:n,config:r,expando:e.expando,internal:e.internal}),Ni({config:r})].filter(Boolean)}({chart:t,translator:n,config:r,expando:o,internal:i})),a.components},getInteractions:function(){return a.interactions||(a.interactions=Vi({chart:t,config:r,expando:o,internal:i})),a.interactions},expando:o}}var Bi=\"AVERAGE\",$i=\"LINEAR\",Yi=\"POLYNOMIAL2\",Ui=\"POLYNOMIAL3\",Ki=\"POLYNOMIAL4\",Gi=\"EXPONENTIAL\",Wi=\"LOG\",Xi=\"POWER\";function Zi(e){var t=e.dimValue,n=e.value,r=e.qTrendLine,o=r.qType,i=r.qCoeff,a={x:t,y:i[2]*Math.pow(n,2)+i[1]*n+i[0]};switch(o){default:case Yi:return a;case Ui:return a.y+=i[3]*Math.pow(n,3),a;case Ki:return a.y+=i[4]*Math.pow(n,4)+i[3]*Math.pow(n,3),a}}var Ji={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:Zi,polynomial3:Zi,polynomial4:Zi,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=Ji[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 ea(e){return Ji[e.qType.toLowerCase()]}function ta(e,t){return e.meta.isContinuous?function(e,t){return{generate:function(e,n,r){var o=[],i=ea(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 ea(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=Ji[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=Ji[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,Ji[e.qType.toLowerCase()])({dimValue:n,value:t,qTrendLine:e})},findMinMax:Qi}}(e)}var na={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\"},ra={color:\"#f93f17\",index:9},oa={x:NaN,y:NaN,dimValue:NaN,layerId:NaN,measureIndex:NaN},ia=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=[oa],f=[],d=[],p=ta(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=Wt((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 Mt(e).l<70}(l)?function(e){var t=Mt(e);return t.l<30?t.l+=15:t.l<50?t.l+=10:t.l+=5,t.toString()}(l):function(e){var t=Mt(e);return t.l-=5,t.toString()}(l)}return r.resolveUIColor(ra)}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(na.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))}))}}}},aa={source:\"trend\",extract:{field:\"x\",props:{minor:{field:\"y\"},layer:{field:\"layerId\"},measureIndex:{field:\"measureIndex\"},dimValue:{field:\"dimValue\"}}}},la=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}},ua=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=la(l);return{key:n,type:\"line\",layout:{dock:\"center\"},data:aa,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:la(i)},u={scale:r,ref:\"minor\"};return{key:o,type:\"point\",layout:{dock:\"center\"},data:aa,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},ca=function(e){e.style.dashed?e.style.lineDash=\"8, 4\":e.style.lineDash=\"\"},sa=function(e){ca(e),e.qMultiDimMode=\"Sum\",e.qXColIx=0};function fa(e,t){return{x:e.x-t.x,y:e.y-t.y}}function da(e){return Math.pow(e.x,2)+Math.pow(e.y,2)}function pa(e,t,n){var r=fa(n,e),o=fa(t,e),i=da(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 ha(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=pa(e[o],e[o+1],t),a=da(fa(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 va(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=ia({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 ua(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?[ha({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()}}}va.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(na.TYPES[e.qType])};return{type:\"array\",ref:\"qTrendLines\",titleTranslation:na.HEADER,itemTitleRef:n,max:8,allowAdd:!0,allowRemove:!0,allowMove:!1,addTranslation:na.ADD_BUTTON,add:sa,items:{label:{ref:\"label\",type:\"string\",expression:\"optional\",translation:\"Common.Label\",defaultValue:\"\"},type:{ref:\"qType\",type:\"string\",component:\"dropdown\",translation:na.TYPE,options:[{value:Bi,translation:na.TYPES.AVERAGE},{value:$i,translation:na.TYPES.LINEAR},{value:Yi,translation:na.TYPES.POLYNOMIAL2},{value:Ui,translation:na.TYPES.POLYNOMIAL3},{value:Ki,translation:na.TYPES.POLYNOMIAL4},{value:Gi,translation:na.TYPES.EXPONENTIAL},{value:Wi,translation:na.TYPES.LOG},{value:Xi,translation:na.TYPES.POWER}],defaultValue:Bi},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:ra,show:function(e){return!e.style.autoColor}},dashed:{ref:\"style.dashed\",translation:na.STYLE.DASHED,type:\"boolean\",defaultValue:!0,change:ca}}}};var ma=[\"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\"],ya=function(e){return{value:e,label:e.charAt(0).toUpperCase()+e.slice(1),groupHeader:!1,disabled:!1}};function ga(e){var t=e.theme,n=e.translator,r=e.defaultValue,o=[],i=t.getStyle(\"\",\"\",\"fontFamilies\");return Array.isArray(i)&&i.length?o.push.apply(o,c(new Set([r].concat(c(i.map((function(e){return e.split(\",\").map((function(e){return e.trim()})).map((function(e){return e.replace(/\\s+/g,\" \").trim()})).filter(Boolean).join(\", \")}))))))):o.push(r),[{value:\"ThemeHeader\",label:n.get(\"properties.themeFonts\"),metaText:n.get(\"properties.theme\"),groupHeader:!0}].concat(c(o.map((function(e){return ya(e)}))),[{value:\"DefaultHeader\",label:n.get(\"properties.allFonts\"),metaText:n.get(\"properties.default\"),groupHeader:!0}],c(ma.map((function(e){return ya(e)}))))}function ba(e){var t=e.theme,n=e.translator,r=e.id,o=e.path,i=function(){return t.getStyle(r,o,\"fontFamily\")};return{getDefaultValue:function(){return i()},getOptions:function(){return ga({theme:t,translator:n,defaultValue:i()})}}}var xa=[\"10px\",\"11px\",\"12px\",\"13px\",\"14px\",\"15px\",\"16px\",\"17px\",\"18px\",\"19px\",\"20px\",\"21px\",\"22px\",\"23px\",\"24px\"],wa=function(e){return{value:e,label:e,groupHeader:!1,disabled:!1}};function qa(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 wa(e)}))),[{value:\"DefaultHeader\",label:n.get(\"properties.allFontSizes\"),metaText:n.get(\"properties.default\"),groupHeader:!0}],c(xa.map((function(e){return wa(e)}))))}({theme:t,translator:n,defaultValue:i()})}}}function ka(e){var t=e.theme,n=e.translator,r=e.id,o=e.path;return{fontFamily:ba({theme:t,translator:n,id:r,path:o}),fontSize:qa({theme:t,translator:n,id:r,path:o})}}function Ma(e){var t=e.theme,n=e.translator,r=e.config,o=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:void 0===r?{}:r}),i=o.id,a=o.paths,l={};a.forEach((function(e){for(var r=e.split(\".\"),o=l,a=0;a<r.length;a++){var u=r[a];a===r.length-1?o[u]=ka({theme:t,translator:n,id:i,path:e}):void 0===o[u]&&(o[u]={}),o=o[u]}}));var u=function(e){for(var t=e.split(\".\"),n=l,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 l.getDefaultValue=function(e){return u(e).getDefaultValue()},l.getOptions=function(e){return u(e).getOptions()},l}export{Gt as cache,Pt as colorService,Zt as debouncer,Yt as dockService,Ma as fontResolver,Ut as getValue,rn as layoutService,Wt as memoize,an as pluginService,Ko as selectionService,Kt as setValue,Xt as storage,ri as themeService,Jt as throttler,_i as tooltipService,va as trendlinesService};\n","/* eslint-disable prefer-rest-params */\n/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\n\n/* Simple JavaScript Inheritance\n * By John Resig http://ejohn.org/\n * MIT Licensed.\n * Modified by Qliktech\n */\n// Inspired by base2 and Prototype\n\n/* eslint no-new-func:0,no-unused-vars:0 */\n\nconst fnTest = /xyz/.test(() => {\n let xyz;\n})\n ? /\\b_super\\b/\n : /.*/;\n\n/**\n * Helper module for creating subclasses (or rather prototypal inheritance) of superclasses.\n *\n * @class\n *\n * @example\n * var Animal = Class.extend( \"Animal\", {\n * init: function ( name ) {\n * this.name = name || \"Unnamed\";\n * },\n * say: function ( sound ) {\n * console.log( this.name + \" says \" + sound );\n * }\n * } );\n *\n * var Cat = Animal.extend( \"Cat\", {\n * say: function () {\n * this._super( \"Meouw\" );\n * }\n * } );\n *\n * var cat = new Cat( \"Gustaf\" );\n * cat.say(); => \"Gustaf says Meouw\"\n *\n * @example\n * var MyClass = Class.extend();\n *\n * var a = new MyClass();\n * console.log( a instanceof MyClass ) // => true\n * console.log( a.constructor.name ) // => Class\n *\n * @example\n * var MyClass = Class.extend( \"MyClass\" );\n *\n * var a = new MyClass();\n * console.log( a instanceof MyClass ) // => true\n * console.log( a.constructor.name ) // => MyClass\n *\n */\nconst Class = function () {};\n\n/**\n * This method is available inside each function defined on the prototype when using {@link module:assets/core/utils/class~Class.extend}.\n *\n * It will invoke the super class' method with the same name, but it's up to programmer to invoke it with the arguments needed.\n * @method module:assets/core/utils/class~Class#_super\n */\n\n/**\n * Create a new Class that inherits from this class\n * @param {String} [className=\"Class\"] The name of the new class constructor.\n * @param {Object} proto The prototype for the new class.\n */\nClass.extend = function extend(className, proto) {\n const _super = this.prototype;\n\n if (typeof className !== 'string') {\n proto = className;\n className = 'Class';\n }\n\n // Instantiate a base class (but only create the instance,\n // don't run the init constructor)\n const prototype = Object.create(this.prototype);\n\n // Copy the properties over onto the new prototype\n for (const name in proto) {\n // Check if we're overwriting an existing function\n prototype[name] =\n typeof proto[name] === 'function' && typeof _super[name] === 'function' && fnTest.test(proto[name])\n ? (function (name, fn) {\n return function () {\n const tmp = this._super;\n\n // Add a new ._super() method that is the same method\n // but on the super-class\n this._super = _super[name];\n\n // The method only need to be bound temporarily, so we\n // remove it when we're done executing\n const ret = fn.apply(this, arguments);\n this._super = tmp;\n\n return ret;\n };\n })(name, proto[name])\n : proto[name];\n }\n\n if (!/^[_a-z][_a-z\\d]*$/i.test(className)) {\n throw new Error('Invalid subclass name. Alphanumericals only.');\n }\n\n // The dummy class constructor\n const ctor = new Function(\n `return (function ${className}(){ typeof this.init === 'function' && this.init.apply(this, [].slice.call(arguments)) });`\n )();\n\n // Populate our constructed prototype object\n ctor.prototype = prototype;\n\n // Enforce the constructor to be what we expect\n ctor.prototype.constructor = ctor;\n\n // And make this class extendable\n ctor.extend = extend;\n\n return ctor;\n};\n\nexport default Class;\n","// private\nconst idGen = {\n getChar(value) {\n // 0 o O i I l\n const banned = [48, 111, 79, 105, 73, 108];\n let val = value;\n\n let charCode;\n if (val > 9) {\n charCode = 65 + val - 10;\n if (charCode > 90) {\n charCode += 6;\n }\n } else {\n val = `${val}`.charCodeAt(0);\n }\n return banned.indexOf(charCode) > -1 ? this.getChar(val + 1) : String.fromCharCode(charCode);\n },\n base62(value) {\n const chr = this.getChar(value % 62);\n const y = Math.floor(value / 62);\n return y > 0 ? this.base62(y) + chr : chr;\n },\n id() {\n const s = this.base62(Math.round(Math.random() * (1e13 - 1e11) + 1e11));\n return s.replace(/\\W/g, '');\n },\n};\n\nexport default function generateId() {\n return idGen.id();\n}\n","const SCROLLBAR_KEY = 'scrollbar';\n\nfunction getActions(isEnabledFn) {\n function targetIsScrollbar(manager, e) {\n if (!e || !isEnabledFn()) {\n return false;\n }\n const startPoint = {\n x: e.center.x - e.deltaX,\n y: e.center.y - e.deltaY,\n };\n const components = this.chart.componentsFromPoint(startPoint);\n return components.some((c) => c.settings.key === SCROLLBAR_KEY);\n }\n\n const tap = {\n // single tap\n type: 'Tap',\n options: {\n enable: targetIsScrollbar,\n },\n events: {\n tap(e) {\n this.chart.component(SCROLLBAR_KEY).emit('tap', e);\n },\n },\n };\n\n const pan = {\n type: 'Pan',\n options: {\n enable: targetIsScrollbar,\n },\n events: {\n panstart(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panStart', e);\n },\n pan(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panMove', e);\n },\n panend(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panEnd', e);\n },\n pancancel(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panCancel', e);\n },\n },\n };\n\n const actions = [tap, pan];\n return actions;\n}\n\nexport default getActions;\n","function getAxisDock(direction, dock, isRtl) {\n return direction === 'y' ? getYAxisDock(dock, isRtl) : getXAxisDock(dock);\n}\n\nfunction getOppositeAxisDock(direction, dock, isRtl) {\n const oppositeDock = dock === 'far' ? 'near' : 'far';\n return getAxisDock(direction, oppositeDock, isRtl);\n}\n\nfunction getYAxisDock(dock, isRtl) {\n const yDockNearFar = dock || 'near';\n return (isRtl && yDockNearFar === 'near') || (!isRtl && yDockNearFar === 'far') ? 'right' : 'left';\n}\n\nfunction getXAxisDock(dock) {\n return dock === 'far' ? 'top' : 'bottom';\n}\n\nexport default {\n getAxisDock,\n getOppositeAxisDock,\n getYAxisDock,\n};\n","// Source: https://en.wikipedia.org/wiki/Bi-directional_text and http://www.unicode.org/Public/6.0.0/ucd/UnicodeData.txt\n// 3 types of strong direction characters: L (strong left-to-right), R(strong right-to-left, Hebrew) and AL(strong right-to-left, Arabic language)\nconst rangesOfLChars =\n '[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u02BB-\\u02C1\\u02D0-\\u02D1\\u02E0-\\u02E4\\u02EE\\u0370-\\u0373\\u0376-\\u037D\\u0386\\u0388-\\u03F5\\u03F7-\\u0482\\u048A-\\u0589\\u0903-\\u0939\\u093B\\u093D-\\u0940\\u0949-\\u094C\\u094E-\\u0950\\u0958-\\u0961\\u0964-\\u097F\\u0982-\\u09B9\\u09BD-\\u09C0\\u09C7-\\u09CC\\u09CE-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09FA\\u0A03-\\u0A39\\u0A3E-\\u0A40\\u0A59-\\u0A6F\\u0A72-\\u0A74\\u0A83-\\u0AB9\\u0ABD-\\u0AC0\\u0AC9-\\u0ACC\\u0AD0-\\u0AE1\\u0AE6-\\u0AEF\\u0B02-\\u0B39\\u0B3D-\\u0B3E\\u0B40\\u0B47-\\u0B4C\\u0B57-\\u0B61\\u0B66-\\u0B77\\u0B83-\\u0BBF\\u0BC1-\\u0BCC\\u0BD0-\\u0BF2\\u0C01-\\u0C3D\\u0C41-\\u0C44\\u0C58-\\u0C61\\u0C66-\\u0C6F\\u0C7F-\\u0CB9\\u0CBD-\\u0CCB\\u0CD5-\\u0CE1\\u0CE6-\\u0D40\\u0D46-\\u0D4C\\u0D4E-\\u0D61\\u0D66-\\u0DC6\\u0DCF-\\u0DD1\\u0DD8-\\u0E30\\u0E32-\\u0E33\\u0E40-\\u0E46\\u0E4F-\\u0EB0\\u0EB2-\\u0EB3\\u0EBD-\\u0EC6\\u0ED0-\\u0F17\\u0F1A-\\u0F34\\u0F36\\u0F38\\u0F3E-\\u0F6C\\u0F7F\\u0F85\\u0F88-\\u0F8C\\u0FBE-\\u0FC5\\u0FC7-\\u102C\\u1031\\u1038\\u103B-\\u103C\\u103F-\\u1057\\u105A-\\u105D\\u1061-\\u1070\\u1075-\\u1081\\u1083-\\u1084\\u1087-\\u108C\\u108E-\\u109C\\u109E-\\u135A\\u1360-\\u138F\\u13A0-\\u13F4\\u1401-\\u167F\\u1681-\\u169A\\u16A0-\\u1711\\u1720-\\u1731\\u1735-\\u1751\\u1760-\\u1770\\u1780-\\u17B6\\u17BE-\\u17C5\\u17C7-\\u17C8\\u17D4-\\u17DA\\u17DC\\u17E0-\\u17E9\\u1810-\\u18A8\\u18AA-\\u191C\\u1923-\\u1926\\u1929-\\u1931\\u1933-\\u1938\\u1946-\\u19DA\\u1A00-\\u1A16\\u1A19-\\u1A55\\u1A57\\u1A61\\u1A63-\\u1A64\\u1A6D-\\u1A72\\u1A80-\\u1AAD\\u1B04-\\u1B33\\u1B35\\u1B3B\\u1B3D-\\u1B41\\u1B43-\\u1B6A\\u1B74-\\u1B7C\\u1B82-\\u1BA1\\u1BA6-\\u1BA7\\u1BAA-\\u1BE5\\u1BE7\\u1BEA-\\u1BEC\\u1BEE\\u1BF2-\\u1C2B\\u1C34-\\u1C35\\u1C3B-\\u1C7F\\u1CD3\\u1CE1\\u1CE9-\\u1CEC\\u1CEE-\\u1DBF\\u1E00-\\u1FBC\\u1FBE\\u1FC2-\\u1FCC\\u1FD0-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FFC\\u200E\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E-\\u214F\\u2160-\\u2188\\u2336-\\u237A\\u2395\\u249C-\\u24E9\\u26AC\\u2800-\\u28FF\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2D00-\\u2D70\\u2D80-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u31BA\\u31F0-\\u321C\\u3220-\\u324F\\u3260-\\u327B\\u327F-\\u32B0\\u32C0-\\u32CB\\u32D0-\\u3376\\u337B-\\u33DD\\u33E0-\\u33FE\\u3400-\\u4DB5\\u4E00-\\uA48C\\uA4D0-\\uA60C\\uA610-\\uA66E\\uA680-\\uA6EF\\uA6F2-\\uA6F7\\uA722-\\uA787\\uA789-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA824\\uA827\\uA830-\\uA837\\uA840-\\uA873\\uA880-\\uA8C3\\uA8CE-\\uA8D9\\uA8F2-\\uA925\\uA92E-\\uA946\\uA952-\\uA97C\\uA983-\\uA9B2\\uA9B4-\\uA9B5\\uA9BA-\\uA9BB\\uA9BD-\\uAA28\\uAA2F-\\uAA30\\uAA33-\\uAA34\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA4D-\\uAAAF\\uAAB1\\uAAB5-\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2-\\uABE4\\uABE6-\\uABE7\\uABE9-\\uABEC\\uABF0-\\uFB17\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFDC]';\nconst rangesOfRChars =\n '[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05F4\\u07C0-\\u07EA\\u07F4-\\u07F5\\u07FA-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u0858\\u085E\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB4F]';\nconst rangesOfALChars =\n '[\\u0608\\u060B\\u060D\\u061B-\\u064A\\u066D-\\u066F\\u0671-\\u06D5\\u06E5-\\u06E6\\u06EE-\\u06EF\\u06FA-\\u070D\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\uFB50-\\uFD3D\\uFD50-\\uFDFC\\uFE70-\\uFEFC]';\n// eslint-disable-next-line no-misleading-character-class\nconst rangesOfLRgExp = new RegExp(rangesOfLChars);\nconst rangesOfRRgExp = new RegExp(rangesOfRChars);\nconst rangesOfALRgExp = new RegExp(rangesOfALChars);\n\nconst // left-to-right marker\n lrm = String.fromCharCode(8206); // right-to-left marker\n\nconst rlm = String.fromCharCode(8207);\n\nfunction isLtrChar(c) {\n return rangesOfLRgExp.test(c);\n}\n\nfunction isRtlChar(c) {\n return rangesOfRRgExp.test(c) || rangesOfALRgExp.test(c);\n}\n\nfunction detectTextDirection(s) {\n const n = s ? s.length : 0;\n let i;\n let c;\n for (i = 0; i < n; i++) {\n c = s[i];\n if (isLtrChar(c)) {\n return 'ltr';\n }\n if (isRtlChar(c)) {\n return 'rtl';\n }\n }\n return 'ltr';\n}\n\nexport default {\n lrm,\n rlm,\n detectTextDirection,\n};\n","import extend from 'extend';\nimport RtlUtil from '../../../../extra/rtl-util';\n\n/**\n * Get Picasso settings for an individual ref-line.\n *\n * @param {*} settings Default settings for the ref-line\n * @param {*} lineColorIndex Chart builder options + paletteColor option\n */\nfunction lineSettings(settings, options) {\n const lineStroke =\n typeof options.paletteColor !== 'undefined'\n ? options.theme.getColorPickerColor(options.paletteColor)\n : 'transparent';\n const defaultSettings = {\n value: 0,\n line: {\n stroke: lineStroke,\n strokeDasharray: options?.style?.lineType,\n },\n };\n return extend(true, defaultSettings, settings || {});\n}\n\n/**\n * Get Picasso settings for an individual ref-line used to display label and OOB.\n *\n * @param {*} settings Default settings for the ref-line label\n * @param {*} options Chart builder options + paletteColor option\n */\nfunction lineLabelSettings(settings, options) {\n const chartID = options && options.chartID; // Should we validate if the parameter exists?\n let labelColor = options.theme.getStyle(chartID, 'referenceLine.label.name', 'color');\n const labelFontSize = options.theme.getStyle(chartID, 'referenceLine.label.name', 'fontSize');\n const labelFontFamily = options.theme.getStyle(chartID, 'referenceLine.label.name', 'fontFamily');\n\n if (options.paletteColor) {\n labelColor = options.theme.getColorPickerColor(options.paletteColor);\n } else if (!labelColor) {\n labelColor = 'transparent';\n }\n\n const defaultSettings = {\n value: 0,\n line: {\n stroke: 'transparent',\n },\n label: {\n align: 'center',\n vAlign: 'middle',\n text: '',\n fill: labelColor,\n fontFamily: labelFontFamily,\n fontSize: labelFontSize,\n maxWidthPx: 135,\n },\n };\n return extend(true, defaultSettings, settings || {});\n}\n\nconst isVisible = (refLine) =>\n refLine && refLine.show !== false && refLine.show !== 0 && refLine.show !== '0' && refLine.refLineExpr !== undefined;\n\nfunction getRefLineTitle({ refLine, label, valueString }) {\n if (refLine.showValue !== false) {\n if (refLine.showLabel !== false) {\n return `${label} ${RtlUtil.lrm}(${valueString})${RtlUtil.lrm}`;\n }\n return `${RtlUtil.lrm}(${valueString})${RtlUtil.lrm}`;\n }\n if (refLine.showLabel !== false) {\n return label;\n }\n return '';\n}\n\nexport default {\n lineSettings,\n lineLabelSettings,\n isVisible,\n getRefLineTitle,\n};\n","import DimensionMeasureChartLayoutSettings from './layout-settings';\n\nconst constants = {\n SHOW_AXIS_LABELS_OPTIONS: ['all', 'labels'], // show dim/measure axis labels when it matches one of this values\n SHOW_TITLE_OPTIONS: ['all', 'title'], // show the dimension/measure title when the show option matches one of these values\n HORIZONTAL: 'horizontal',\n VERTICAL: 'vertical',\n LAYOUTSETTINGS: DimensionMeasureChartLayoutSettings,\n};\n\nconstants.DEFAULT_CHART_ORIENTATION = constants.HORIZONTAL;\n\nexport default constants;\n","export default {\n lasso: {\n displayOrder: 10000,\n },\n rangeDim: {\n displayOrder: 10000,\n },\n rangeMeasure: {\n displayOrder: 10000,\n },\n rangeMinor: {\n displayOrder: 10000,\n },\n\n // SPARK\n scrollBar: {\n minimumLayoutMode: 'SPARK',\n prioOrder: -1,\n displayOrder: 100,\n },\n\n refLines: {\n minimumLayoutMode: 'SPARK',\n prioOrder: 60,\n displayOrder: -10,\n },\n\n // XMALL\n measureAxisTitle: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 30,\n displayOrder: 90,\n },\n dimensionAxisTitle: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 30,\n displayOrder: 90,\n },\n\n measureAxis: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 10,\n displayOrder: 80,\n },\n dimensionAxis: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 10,\n displayOrder: 80,\n },\n\n gridLines: {\n minimumLayoutMode: 'XSMALL',\n displayOrder: -100,\n },\n\n // SMALL\n refLinesLabels: {\n minimumLayoutMode: 'SMALL',\n prioOrder: 60,\n displayOrder: 0,\n },\n};\n","import extend from 'extend';\nimport generateId from '../../../../extra/generate-id';\nimport getScrollActions from '../../../scroll/scroll-actions';\nimport axisDockUtil from '../../components/util/axis-dock-util';\nimport refLineUtil from '../../components/util/ref-line-util';\nimport CONSTANTS from './constants';\n\nconst SENSE_PICASSO_SPACING_COEFFICIENT = 100;\n\nfunction DimensionMeasureChart(chartBuilder, opts) {\n const options = opts || {};\n\n const measureAxisProperties = options.measureAxisProperties || {};\n const dimensionAxisProperties = options.dimensionAxisProperties || {};\n const chartOrientation = options.orientation || CONSTANTS.DEFAULT_CHART_ORIENTATION;\n const isChartHorizontal = chartOrientation === CONSTANTS.HORIZONTAL;\n const measureDirection = isChartHorizontal ? 'x' : 'y';\n const dimensionDirection = isChartHorizontal ? 'y' : 'x';\n const SHOW_AXIS_LABELS_OPTIONS = CONSTANTS.SHOW_AXIS_LABELS_OPTIONS;\n const SHOW_TITLE_OPTIONS = CONSTANTS.SHOW_TITLE_OPTIONS;\n const includeMeasureAxisComponent = SHOW_AXIS_LABELS_OPTIONS.includes(measureAxisProperties.show);\n const includeMeasureAxisTitleComponent =\n !!options.measureTitleText && SHOW_TITLE_OPTIONS.includes(measureAxisProperties.show);\n const includeDimensionAxisComponent =\n options.includeDimensionAxis && SHOW_AXIS_LABELS_OPTIONS.includes(dimensionAxisProperties.show);\n const includeDimensionAxisTitleComponent =\n options.includeDimensionAxis &&\n !!options.dimensionTitleText &&\n SHOW_TITLE_OPTIONS.includes(dimensionAxisProperties.show);\n const includeGridlines = options.gridlines && !(!options.gridlines.auto && options.gridlines.spacing === 0);\n\n const includeRefLines = options.refLines && options.refLines.some((refLine) => refLine.show);\n\n const interactionActions = [];\n\n if (includeMeasureAxisComponent) {\n addMeasureAxisComponent(chartBuilder, options, measureDirection, measureAxisProperties);\n }\n\n if (includeMeasureAxisTitleComponent) {\n addMeasureAxisTitleComponent(chartBuilder, options, measureDirection);\n }\n\n addMeasureScale(chartBuilder, options, chartOrientation, measureAxisProperties);\n\n if (includeDimensionAxisComponent) {\n addDimensionAxisComponent(chartBuilder, options, dimensionDirection);\n }\n\n if (includeDimensionAxisTitleComponent) {\n addDimensionAxisTitleComponent(chartBuilder, options, dimensionDirection);\n }\n\n if (options.includeDimensionAxis) {\n addDimensionScale(chartBuilder, options, chartOrientation);\n }\n\n if (includeGridlines) {\n addGridlinesComponent(chartBuilder, options.gridlines, measureDirection);\n }\n\n if (options.hasNavigation) {\n addScrollbarComponent(chartBuilder, interactionActions, options, isChartHorizontal);\n }\n\n if (includeRefLines) {\n addRefLineComponent(chartBuilder, options, measureDirection, measureAxisProperties);\n }\n\n if (options.enableLasso && options.selectionsEnabled) {\n const lassoOptions = options.lasso || {};\n addLassoComponent(chartBuilder, lassoOptions);\n }\n\n if (options.enableDimRange && options.includeDimensionAxis && options.selectionsEnabled) {\n const rangeDimOptions = options.dimRange || {};\n const dimensionAxisOptions = getDimensionAxisOptions(options, dimensionDirection);\n addRangeDimComponent(chartBuilder, rangeDimOptions, isChartHorizontal, dimensionAxisOptions.dock, options.isRtl);\n }\n\n if (options.enableMeasureRange && options.selectionsEnabled) {\n const rangeMeasureOptions = options.measureRange || {};\n const measureAxisOptions = getMeasureAxisOptions(options, measureDirection);\n addRangeMeasureComponent(\n chartBuilder,\n rangeMeasureOptions,\n isChartHorizontal,\n measureAxisOptions.dock,\n options.isRtl\n );\n }\n\n if (options.enableAreaRange && options.selectionsEnabled) {\n const areaDimOptions = options.areaRange || {};\n const dimAreaAxisOptions = getDimensionAxisOptions(options, dimensionDirection);\n addRangeAreaComponent(chartBuilder, areaDimOptions, isChartHorizontal, dimAreaAxisOptions.dock, options.isRtl);\n }\n\n if (options.brushActions) {\n addInteractionActions(interactionActions, options.brushActions);\n }\n\n if (interactionActions.length) {\n addInteractionComponent(chartBuilder, interactionActions);\n }\n}\n\nexport default DimensionMeasureChart;\n\nfunction addInteractionComponent(chartBuilder, interactionActions) {\n return chartBuilder.addInteraction({}, { gestures: interactionActions });\n}\n\nfunction addInteractionActions(interactionActions, actions) {\n actions.forEach((a) => {\n interactionActions.push(a);\n });\n}\n\nfunction addMeasureScale(chartBuilder, options, chartOrientation, measureAxisProperties) {\n let measureScaleSettings = options.measureScaleSettings;\n\n const measureScaleOptions = {\n isRtl: options.isRtl,\n source: options.measureSource,\n orientation: chartOrientation,\n measureAxisProperties,\n };\n\n if (measureAxisProperties && measureAxisProperties.spacing > 0) {\n measureScaleSettings = extend(true, measureScaleSettings || {}, {\n component: {\n ticks: {\n distance: measureAxisProperties.spacing * SENSE_PICASSO_SPACING_COEFFICIENT,\n },\n },\n });\n }\n\n chartBuilder.addScale('measure-scale', measureScaleSettings, measureScaleOptions);\n}\n\nfunction addMeasureAxisComponent(chartBuilder, options, measureDirection, measureAxisProperties) {\n let measureAxisSettings = {\n scale: 'measure',\n 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) {\n if (!field) {\n return -1;\n }\n const cache = deps.cache;\n const origin = field.origin ? field.origin() : null;\n if (origin) {\n field = origin;\n }\n let fieldIdx = cache.fields.indexOf(field);\n let attrIdx = -1;\n let attrDimIdx = -1;\n if (fieldIdx === -1) {\n for (let i = 0; i < cache.wrappedFields.length; i++) {\n attrDimIdx = cache.wrappedFields[i].attrDims.map((v) => v.instance).indexOf(field);\n attrIdx = cache.wrappedFields[i].attrExps.map((v) => v.instance).indexOf(field);\n if (attrDimIdx !== -1 || attrIdx !== -1) {\n fieldIdx = i;\n break;\n }\n }\n }\n\n fieldIdx -= page.qArea.qLeft;\n if (fieldIdx < 0 || fieldIdx >= page.qArea.qWidth) {\n // throw new Error('Field out of range');\n return -1;\n }\n\n if (attrDimIdx >= 0) {\n return (row) => row[fieldIdx].qAttrDims.qValues[attrDimIdx];\n }\n if (attrIdx >= 0) {\n return (row) => row[fieldIdx].qAttrExps.qValues[attrIdx];\n }\n\n return (row) => row[fieldIdx];\n}\n\n// TODO - handle 'other' value\n// const specialTextValues = {\n// '-3': (meta) => {\n// if ('othersLabel' in meta) {\n// return meta.othersLabel;\n// }\n// return '';\n// }\n// };\n\nfunction datumExtract(propCfg, cell, { key }) {\n const datum = {\n value:\n typeof propCfg.value === 'function'\n ? propCfg.value(cell)\n : typeof propCfg.value !== 'undefined'\n ? propCfg.value\n : cell, // eslint-disable-line no-nested-ternary\n };\n\n datum.label =\n typeof propCfg.label === 'function'\n ? propCfg.label(cell)\n : typeof propCfg.label !== 'undefined'\n ? String(propCfg.label)\n : String(datum.value); // eslint-disable-line no-nested-ternary\n\n if (propCfg.field) {\n datum.source = {\n key,\n field: propCfg.field.key(),\n };\n }\n\n return datum;\n}\n\nfunction cellToValue({ cache, f, mainCell, p, prop, page, rowIdx, row, sourceKey, target, targetProp }) {\n let propCell = mainCell;\n if (p.field && p.field !== f) {\n const propCellFn = getFieldAccessor(p.field, page, { cache });\n if (propCellFn === -1) {\n return;\n }\n propCell = extend({ qRow: rowIdx }, propCellFn(row));\n }\n target[targetProp] = datumExtract(p, propCell, { key: sourceKey }, prop);\n}\n\nexport default function extract(config, dataset, cache, util) {\n const cfgs = Array.isArray(config) ? config : [config];\n let dataItems = [];\n for (let i = 0; i < cfgs.length; i++) {\n if (typeof cfgs[i].field !== 'undefined') {\n const cube = dataset.raw();\n const sourceKey = dataset.key();\n const f = typeof cfgs[i].field === 'object' ? cfgs[i].field : dataset.field(cfgs[i].field);\n const { props, main } = util.normalizeConfig(cfgs[i], dataset);\n const propsArr = Object.keys(props);\n\n const track = !!cfgs[i].trackBy;\n const trackType = typeof cfgs[i].trackBy;\n const tracker = {};\n const trackedItems = [];\n const items = [];\n\n for (let j = 0; j < cube.qDataPages.length; j++) {\n const fn = getFieldAccessor(f, cube.qDataPages[j], { cache });\n if (fn === -1) {\n continue;\n }\n for (let k = 0; k < cube.qDataPages[j].qMatrix.length; k++) {\n const rowIdx = cube.qDataPages[j].qArea.qTop + k;\n const mainCell = extend({ qRow: rowIdx }, fn(cube.qDataPages[j].qMatrix[k]));\n const ret = datumExtract(main, mainCell, { key: sourceKey });\n const exclude = main.filter && !main.filter(mainCell);\n if (exclude) {\n continue;\n }\n\n for (let l = 0; l < propsArr.length; l++) {\n const p = props[propsArr[l]];\n let arr = p.fields || [p];\n\n if (p.fields) {\n ret[propsArr[l]] = [];\n }\n\n // loop through all props that need to be mapped and\n // assign 'value' and 'source' to each property\n for (let m = 0; m < arr.length; m++) {\n cellToValue({\n cache,\n f,\n mainCell,\n p: arr[m],\n prop: propsArr[l],\n props,\n page: cube.qDataPages[j],\n rowIdx,\n row: cube.qDataPages[j].qMatrix[k],\n sourceKey,\n target: p.fields ? ret[propsArr[l]] : ret,\n targetProp: p.fields ? m : propsArr[l],\n });\n }\n\n if (p.fields) {\n const fieldValues = ret[propsArr[l]].map((v) => v.value);\n const fieldLabels = ret[propsArr[l]].map((v) => v.label);\n ret[propsArr[l]] = {\n value:\n typeof p.value === 'function'\n ? p.value(fieldValues)\n : typeof p.value !== 'undefined'\n ? p.value\n : fieldValues,\n label:\n typeof p.label === 'function'\n ? p.label(fieldLabels)\n : typeof p.label !== 'undefined'\n ? String(p.label)\n : String(ret[propsArr[l]].value),\n };\n }\n }\n\n // collect items based on the trackBy value\n // items with the same trackBy value are placed in an array and reduced later\n if (track) {\n util.track({\n cfg: cfgs[i],\n itemData: mainCell,\n obj: ret,\n target: trackedItems,\n tracker,\n trackType,\n });\n }\n\n items.push(ret);\n }\n }\n\n // reduce if items have been grouped\n const tmp = track\n ? util.collect(trackedItems, {\n main,\n propsArr,\n props,\n })\n : items;\n dataItems = [...dataItems, ...tmp];\n }\n }\n return dataItems;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback, 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\nfunction escapeRegExp(str) {\n return str.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&');\n}\n\nconst SIprefixes = {\n 3: 'k',\n 6: 'M',\n 9: 'G',\n 12: 'T',\n 15: 'P',\n 18: 'E',\n 21: 'Z',\n 24: 'Y',\n '-3': 'm',\n '-6': 'μ',\n '-9': 'n',\n '-12': 'p',\n '-15': 'f',\n '-18': 'a',\n '-21': 'z',\n '-24': 'y',\n },\n percentage = /%\\)?$/,\n // scientific = /e[\\+\\-][0-9]+/,\n radix = /^\\(r(0[2-9]|[12]\\d|3[0-6])\\)/i,\n oct = /^\\(oct\\)/i,\n dec = /^\\(dec\\)/i,\n hex = /^\\(hex\\)/i,\n bin = /^\\(bin\\)/i,\n rom = /^\\(rom\\)/i,\n functional = /^(\\(rom\\)|\\(bin\\)|\\(hex\\)|\\(dec\\)|\\(oct\\)|\\(r(0[2-9]|[12]\\d|3[0-6])\\))/i,\n prec = /#|0/g;\n\nfunction formatRadix(value, fradix, pattern, decimal) {\n value = value.toString(fradix);\n if (pattern[1] === pattern[1].toUpperCase()) {\n value = value.toUpperCase();\n }\n if (value.length - value.indexOf('.') > 10) {\n // limit to 10 decimal places\n value = value.slice(0, value.indexOf('.') + 11);\n }\n\n return value.replace('.', decimal || '.');\n}\n\n// value must be an integer\n// value must not be in scientific notation\nfunction formatRoman(value, pattern) {\n let i,\n s = '',\n v = Number(String(value).slice(-3)),\n nThousands = (value - v) / 1000,\n decimal = [0, 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900].reverse(),\n numeral = ['0', 'I', 'IV', 'V', 'IX', 'X', 'XL', 'L', 'XC', 'C', 'CD', 'D', 'CM'].reverse();\n\n while (v > 0) {\n for (i = 0; i < decimal.length; i++) {\n if (decimal[i] <= v) {\n s += numeral[i];\n v -= decimal[i];\n break;\n }\n }\n }\n\n for (i = 0; i < nThousands; i++) {\n s = `M${s}`;\n }\n\n if (pattern[1] !== pattern[1].toUpperCase()) {\n s = s.toLowerCase();\n }\n return s;\n}\n\nfunction formatFunctional(value, pattern, d) {\n let temp;\n if (radix.test(pattern)) {\n value = formatRadix(value, Number(/\\d{2}/.exec(pattern)[0]), pattern, d);\n } else if (oct.test(pattern)) {\n value = formatRadix(value, 8, pattern, d);\n } else if (dec.test(pattern)) {\n value = formatRadix(value, 10, pattern, d);\n } else if (hex.test(pattern)) {\n value = formatRadix(value, 16, pattern, d);\n } else if (bin.test(pattern)) {\n value = formatRadix(value, 2, pattern, d);\n } else if (rom.test(pattern)) {\n temp = '';\n if (value < 0) {\n temp = '-';\n value = -value;\n }\n value = Math.floor(value);\n if (value === 0) {\n value = '0';\n } else if (value <= 500000) {\n // limit in engine\n value = formatRoman(value, pattern);\n value = temp + value;\n } else {\n value = pattern + temp + value.toExponential(0); // to return same result as engine\n }\n }\n\n return value;\n}\n\nfunction escape(value, flags, justStr) {\n const str = escapeRegExp(value);\n if (justStr) {\n return str;\n }\n return new RegExp(str || '', flags);\n}\n\nfunction createRegExp(thousand, decimal) {\n if (decimal) {\n decimal = escapeRegExp(decimal);\n }\n if (thousand) {\n thousand = escapeRegExp(thousand);\n }\n return new RegExp(`(?:[#0]+${thousand})?[#0]+(?:${decimal}[#0]+)?`);\n}\n\nfunction getAbbreviations(localeInfo, listSeparator) {\n if (!localeInfo || !localeInfo.qNumericalAbbreviation) {\n return SIprefixes;\n }\n\n const abbreviations = {};\n let abbrs = localeInfo.qNumericalAbbreviation.split(listSeparator);\n\n abbrs.forEach((abbreviation) => {\n let abbreviationTuple = abbreviation.split(':');\n if (abbreviationTuple.length === 2) {\n abbreviations[abbreviationTuple[0]] = abbreviationTuple[1];\n }\n });\n\n return abbreviations;\n}\n\nfunction preparePattern(o, t, d, abbreviate) {\n let parts,\n lastPart,\n pattern = o.pattern,\n numericPattern,\n prefix,\n postfix,\n groupTemp,\n decTemp,\n temp,\n regex;\n\n if (abbreviate) {\n o.abbreviate = true;\n }\n\n // extract the numeric part from the pattern\n regex = createRegExp(t, d);\n numericPattern = pattern.match(regex);\n numericPattern = numericPattern ? numericPattern[0] : '';\n prefix = numericPattern ? pattern.substr(0, pattern.indexOf(numericPattern)) : pattern;\n postfix = numericPattern ? pattern.substring(pattern.indexOf(numericPattern) + numericPattern.length) : '';\n\n if (!numericPattern) {\n numericPattern = pattern ? '#' : '##########';\n }\n\n if (t && t === d) {\n // ignore grouping if grouping separator is same as decimal separator\n // extract decimal part\n parts = numericPattern.split(d);\n lastPart = parts.pop();\n numericPattern = parts.join('') + d + lastPart;\n t = '';\n }\n\n // formatting library does not support multiple characters as separator (nor +-).\n // do a temporary replacement\n groupTemp = t;\n t = /,/.test(d) ? '¤' : ',';\n if (groupTemp) {\n numericPattern = numericPattern.replace(escape(groupTemp, 'g'), t);\n }\n\n decTemp = d;\n d = '.';\n if (decTemp) {\n numericPattern = numericPattern.replace(escape(decTemp, 'g'), d);\n }\n\n temp = numericPattern.match(/#/g);\n temp = temp ? temp.length : 0;\n\n const splitPattern = pattern.split(decTemp);\n let matchPrecisionResult;\n if (splitPattern[1]) {\n matchPrecisionResult = splitPattern[1].match(prec);\n }\n\n o.prefix = prefix || '';\n o.postfix = postfix || '';\n o.pattern = pattern;\n o.maxPrecision = matchPrecisionResult ? matchPrecisionResult.length : 2;\n o.percentage = percentage.test(pattern);\n o.numericPattern = numericPattern || '';\n o.numericRegex = new RegExp(`${escape(t, null, true)}|${escape(d, null, true)}`, 'g');\n o.groupTemp = groupTemp;\n o.decTemp = decTemp;\n o.t = t;\n o.d = d;\n o.temp = temp;\n}\n\nclass NumberFormatter {\n /**\n * @name NumberFormatter\n * @constructs\n * @param {Object} localeInfo\n * @param {String} pattern\n * @param {String} [thousand]\n * @param {String} [decimal]\n * @param {String} [type]\n */\n constructor(localeInfo, pattern, thousand, decimal, type) {\n this.localeInfo = localeInfo;\n this.pattern = pattern;\n this.thousandDelimiter = thousand || ',';\n this.decimalDelimiter = decimal || '.';\n this.type = type || 'numeric';\n\n // FIXME qListSep?\n // this.patternSeparator = this.localeInfo && this.localeInfo.qListSep ? this.localeInfo.qListSep : ';';\n this.patternSeparator = ';';\n\n this.abbreviations = getAbbreviations(localeInfo, this.patternSeparator);\n\n this.prepare();\n }\n\n clone() {\n const n = new NumberFormatter(\n this.localeInfo,\n this.pattern,\n this.thousandDelimiter,\n this.decimalDelimiter,\n this.type\n );\n n.subtype = this.subtype;\n return n;\n }\n\n /**\n * Formats a number according to a specific pattern.\n * Use # for optional numbers and 0 for padding.\n * @param {Number} value Number to format.\n * @param {String} [pattern] The pattern to apply.\n * @param {String} [t] Grouping separator.\n * @param {String} [d] Decimal delimiter.\n * @example\n * format(10, \"0\") // 10;\n * format(10, \"#\") // 10;\n * format(10, \"##.#\") // 10;\n * format(10, \"##.0\") // 10.0;\n * format(10, \"000\") // 010;\n * format(10.123, \"0.0\") // 10.1;\n * format(10.123, \"0.00##\") // 10.123; // at least 2 decimals, never more than 4\n * format(123456789, \"#,###\") // 123,456,789;\n * format(123456789, \"####-####\", \"-\") // 1-2345-6789;\n *\n * format(0.257, \"0.0%\") // 25.7%; // will multiply by 100\n * format(9876, \"$#,###\") // $9,876;\n * format(-9876, \"$#,###;$(#,###)\") // $(9,876); // use ; for alternative formatting for negative values\n * format(10, \"(r16)\") // a; // radix 16\n * format(15, \"(hex)\") // f; // same as (r16)\n * format(15, \"(HEX)\") // F;\n * format(10, \"(bin)\") // 1010; // same as (r02)\n * format(10, \"(oct)\") // 12; // same as (r08)\n */\n format(value, pattern, t, d) {\n this.prepare(pattern, t, d);\n return this.formatValue(value);\n }\n\n prepare(pattern, t, d) {\n let prep;\n\n if (typeof pattern === 'undefined') {\n pattern = this.pattern;\n }\n if (typeof t === 'undefined') {\n t = this.thousandDelimiter;\n }\n if (typeof d === 'undefined') {\n d = this.decimalDelimiter;\n }\n\n if (!pattern) {\n this._prepared = { pattern: false };\n return;\n }\n\n this._prepared = {\n positive: {\n d,\n t,\n abbreviate: false,\n isFunctional: false,\n prefix: '',\n postfix: '',\n },\n negative: {\n d,\n t,\n abbreviate: false,\n isFunctional: false,\n prefix: '',\n postfix: '',\n },\n zero: {\n d,\n t,\n abbreviate: false,\n isFunctional: false,\n prefix: '',\n postfix: '',\n },\n };\n prep = this._prepared;\n\n pattern = pattern.split(this.patternSeparator);\n prep.positive.pattern = pattern[0];\n prep.negative.pattern = pattern[1];\n prep.zero.pattern = pattern[2];\n if (functional.test(pattern[0])) {\n prep.positive.isFunctional = true;\n }\n if (!pattern[1]) {\n prep.negative = false;\n } else if (functional.test(pattern[1])) {\n prep.negative.isFunctional = true;\n }\n if (!pattern[2]) {\n prep.zero = false;\n } else if (functional.test(pattern[2])) {\n prep.zero.isFunctional = true;\n }\n\n const abbreviate = this.type === 'U';\n if (!prep.positive.isFunctional) {\n preparePattern(prep.positive, t, d, abbreviate);\n }\n if (prep.negative && !prep.negative.isFunctional) {\n preparePattern(prep.negative, t, d, abbreviate);\n }\n if (prep.zero && !prep.zero.isFunctional) {\n preparePattern(prep.zero, t, d, abbreviate);\n }\n }\n\n formatValue(value) {\n let prep = this._prepared,\n temp,\n exponent,\n abbr = '',\n absValue,\n num,\n sciValue = '',\n d,\n t,\n i,\n numericPattern,\n decimalPartPattern,\n original = value;\n\n if (isNaN(value)) {\n return `${original}`;\n }\n\n value = +value;\n\n if (prep.pattern === false) {\n return value.toString();\n }\n\n if (value === 0 && prep.zero) {\n prep = prep.zero;\n return prep.pattern;\n }\n if (value < 0 && prep.negative) {\n prep = prep.negative;\n value = -value;\n } else {\n prep = prep.positive;\n }\n d = prep.d;\n t = prep.t;\n\n if (prep.isFunctional) {\n value = formatFunctional(value, prep.pattern, d);\n } else {\n if (prep.percentage) {\n value *= 100;\n }\n\n if (prep.abbreviate) {\n const abbrArray = Object.keys(this.abbreviations)\n .map((key) => parseInt(key, 10))\n .sort((a, b) => a - b);\n let lowerAbbreviation;\n let upperAbbreviation = abbrArray[0];\n i = 0;\n exponent = Number(Number(value).toExponential().split('e')[1]);\n\n while (upperAbbreviation <= exponent && i < abbrArray.length) {\n i++;\n upperAbbreviation = abbrArray[i];\n }\n\n if (i > 0) {\n lowerAbbreviation = abbrArray[i - 1];\n }\n\n let suggestedAbbrExponent;\n\n // value and lower abbreviation is for values above 10, use the lower (move to the left <==)\n if (lowerAbbreviation && exponent > 0 && lowerAbbreviation > 0) {\n suggestedAbbrExponent = lowerAbbreviation;\n // value and lower abbreviation is for values below 0.1 (move to the right ==>)\n } else if ((exponent < 0 && lowerAbbreviation < 0) || !lowerAbbreviation) {\n // upper abbreviation is also for values below 0.1 and precision allows for using the upper abbreviation(move to the right ==>)\n if (upperAbbreviation < 0 && upperAbbreviation - exponent <= prep.maxPrecision) {\n suggestedAbbrExponent = upperAbbreviation;\n // lower abbrevaition is smaller than exponent and we can't get away with not abbreviating\n } else if (lowerAbbreviation <= exponent && !(upperAbbreviation > 0 && -exponent <= prep.maxPrecision)) {\n // (move to left <==)\n suggestedAbbrExponent = lowerAbbreviation;\n }\n }\n if (suggestedAbbrExponent) {\n abbr = this.abbreviations[suggestedAbbrExponent];\n value /= 10 ** suggestedAbbrExponent;\n }\n }\n\n absValue = Math.abs(value);\n temp = prep.temp;\n numericPattern = prep.numericPattern;\n decimalPartPattern = numericPattern.split(d)[1];\n\n if (this.type === 'I') {\n value = Math.round(value);\n }\n num = value;\n\n if (!decimalPartPattern && numericPattern.slice(-1)[0] === '#') {\n if (absValue >= 10 ** temp || absValue < 1 || absValue < 1e-4) {\n if (value === 0) {\n value = '0';\n } else if (absValue < 1e-4 || absValue >= 1e20) {\n // engine always formats values < 1e-4 in scientific form, values >= 1e20 can only be represented in scientific form\n value = num.toExponential(Math.max(1, Math.min(14, temp)) - 1);\n value = value.replace(/\\.?0+(?=e)/, '');\n sciValue = '';\n } else {\n value = value.toPrecision(Math.max(1, Math.min(14, temp)));\n if (value.indexOf('.') >= 0) {\n value = value.replace(value.indexOf('e') < 0 ? /0+$/ : /\\.?0+(?=e)/, '');\n value = value.replace('.', d);\n }\n }\n } else {\n numericPattern += d;\n temp = Math.max(0, Math.min(20, temp - Math.ceil(Math.log(absValue) / Math.log(10))));\n for (i = 0; i < temp; i++) {\n numericPattern += '#';\n }\n\n value = formatter(numericPattern, value);\n }\n } else if (absValue >= 1e15 || (absValue > 0 && absValue <= 1e-14)) {\n value = absValue ? absValue.toExponential(15).replace(/\\.?0+(?=e)/, '') : '0';\n } else {\n const wholePart = Number(\n value.toFixed(Math.min(20, decimalPartPattern ? decimalPartPattern.length : 0)).split('.')[0]\n );\n let wholePartPattern = numericPattern.split(d)[0];\n wholePartPattern += d;\n\n value = formatter(wholePartPattern, wholePart) || '0';\n\n if (decimalPartPattern) {\n const nDecimals = Math.max(0, Math.min(14, decimalPartPattern.length)); // the length of e.g. 0000#####\n const nZeroes = decimalPartPattern.replace(/#+$/, '').length;\n let decimalPart = (this.type === 'I' ? 0 : absValue % 1).toFixed(nDecimals).slice(2).replace(/0+$/, ''); // remove trailing zeroes\n\n for (i = decimalPart.length; i < nZeroes; i++) {\n decimalPart += '0';\n }\n\n if (decimalPart) {\n value += d + decimalPart;\n }\n } else if (wholePart === 0) {\n // to avoid \"-\" being prefixed to value\n num = 0;\n }\n }\n\n value = value.replace(prep.numericRegex, (m) => {\n if (m === t) {\n return prep.groupTemp;\n }\n if (m === d) {\n return prep.decTemp;\n }\n return '';\n });\n if (num < 0 && !/^-/.test(value)) {\n value = `-${value}`;\n }\n }\n\n return prep.prefix + value + sciValue + abbr + prep.postfix;\n }\n\n static getStaticFormatter() {\n return {\n prepare() {},\n formatValue(v) {\n return `${v}`;\n },\n };\n }\n}\n\nexport default function numberFormatFactory(...args) {\n return new NumberFormatter(...args);\n}\n","export default function memoize(func, opts = {}) {\n const { size = 5000, multipleArguments = false, toKey = (arg) => arg } = opts;\n let cache = Object.create(null);\n let index = Object.create(null);\n let counter = 0;\n let fifo = 0; // First-In-First-Out index\n let cacher;\n let k;\n\n if (multipleArguments) {\n cacher = (...args) => {\n k = toKey(...args);\n if (cacher.has(k)) {\n return cacher.get(k);\n }\n return cacher.set(k, func(...args));\n };\n } else {\n cacher = (arg) => {\n k = toKey(arg);\n if (cacher.has(k)) {\n return cacher.get(k);\n }\n return cacher.set(k, func(arg));\n };\n }\n\n cacher.set = (key, val) => {\n if (counter >= size) {\n delete cache[index[fifo]];\n delete index[fifo];\n counter--;\n fifo++;\n }\n cache[key] = val;\n index[counter] = key;\n counter++;\n return val;\n };\n\n cacher.get = (key) => cache[key];\n\n cacher.has = (key) => key in cache;\n\n cacher.clear = () => {\n cache = Object.create(null);\n index = Object.create(null);\n counter = 0;\n fifo = 0;\n };\n\n cacher.size = () => counter;\n\n return cacher;\n}\n","import numberFormatFactory from './parts/qs-number-formatter';\nimport memoize from './memoize';\n\nexport default function formatter(pattern, thousand, decimal, qType, localeInfo) {\n const qformat = numberFormatFactory(localeInfo, pattern, thousand, decimal, qType);\n const memoized = memoize(qformat.formatValue.bind(qformat), {\n // Handle NaN and cases where toString yields different result than +operator. Ex. a Date.\n toKey: (value) => (isNaN(value) ? value : +value),\n });\n\n /**\n * Format a value according to the specified pattern created at construct\n *\n * @param {Number} value The number to be formatted\n * @return {String} [description]\n */\n function format(value) {\n return memoized(value);\n }\n\n /**\n * Format a value according to a specific pattern\n * that is not the one specified in the constructor\n *\n * @param {String} p Pattern\n * @param {Number} v Value\n * @param {String} t Thousand\n * @param {String} d Decimal\n * @return {String} Formatted value\n */\n format.format = function formatFn(p, v, t, d) {\n memoized.clear();\n return qformat.format(v, p, t, d);\n };\n\n /**\n * Change the pattern on existing formatter\n *\n * @param {String} p Pattern (optional)\n * @return {String} Returns the pattern\n */\n format.pattern = function patternFn(p) {\n if (p) {\n memoized.clear();\n qformat.pattern = p;\n qformat.prepare();\n }\n return qformat.pattern;\n };\n\n /**\n * Set the locale for the formatter\n *\n * @param {Object} args Locale object for formatting\n * @return {Undefined} Returns nothing\n */\n /* format.locale = function( ...args ) {\n locale = formatLocale( ...args );\n d3format = locale.format( pattern );\n\n return this;\n }; */\n\n return format;\n}\n","/* eslint import/prefer-default-export: 0 */\n\nexport const TYPES = {\n AUTO: 'U',\n INTEGER: 'I',\n NUMBER: 'R',\n FIXED_TO: 'F',\n MONEY: 'M',\n DATE: 'D',\n TIME: 'T',\n DATE_TIME: 'TS',\n INTERVAL: 'IV',\n};\n","import { TYPES } from '../constants';\n\nconst DAYS = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\nconst DAYS_ABBR = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];\nconst MONTHS = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\nconst MONTHS_ABBR = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n\nconst SECONDS_PER_DAY = 86400;\n\nfunction pad(s, n) {\n for (let i = s.length; i < n; i++) {\n s = `0${s}`;\n }\n return s;\n}\n\nfunction parseDate(d, twelveFormat) {\n let h = d.getUTCHours();\n let day = d.getUTCDay() - 1;\n if (twelveFormat) {\n h %= 12;\n if (!h) {\n // h == 0 -> 12\n h = 12;\n }\n }\n\n if (day < 0) {\n day = 6;\n }\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth(),\n day,\n date: d.getUTCDate(),\n h,\n m: d.getUTCMinutes(),\n s: d.getUTCSeconds(),\n f: d.getUTCMilliseconds(),\n t: d.getUTCHours() >= 12 ? 'pm' : 'am',\n };\n}\n\nfunction getRemainder(value) {\n let s = value.toString().split('.');\n if (s[1]) {\n s = Number(`0.${s[1]}`);\n } else {\n return 0;\n }\n return s;\n}\n\nfunction parseIntervalDays(days) {\n const d = days;\n const h = 24 * getRemainder(d);\n const m = 60 * getRemainder(h);\n const s = 60 * getRemainder(m);\n const ms = 1000 * getRemainder(s);\n\n return {\n d: Math.floor(d),\n h: Math.floor(h),\n m: Math.floor(m),\n s: Math.floor(s),\n f: Math.round(ms),\n };\n}\n\nfunction parseInterval(days, pattern) {\n let units = parseIntervalDays(days),\n d = units.d,\n h = units.h,\n m = units.m,\n s = units.s,\n f = units.f,\n w = 0,\n date;\n\n if (/w+|t+/gi.test(pattern)) {\n date = new Date(\n Date.UTC(1899, 11, 30 + Math.floor(days), 0, 0, Math.round(SECONDS_PER_DAY * (days - Math.floor(days))))\n );\n if (isNaN(date.getTime())) {\n date = null;\n }\n }\n\n if (!/D+/gi.test(pattern)) {\n h += d * 24;\n }\n if (!/h+/gi.test(pattern)) {\n m += h * 60;\n }\n if (!/m+/gi.test(pattern)) {\n s += m * 60;\n }\n if (/w+/gi.test(pattern)) {\n w = date ? date.getDay() - 1 : 0;\n if (w < 0) {\n w = 6;\n }\n }\n\n let someT = '';\n if (date) {\n someT = date.getUTCHours() >= 12 ? 'pm' : 'am';\n }\n\n return {\n year: 0,\n month: 0,\n day: w,\n date: d,\n h,\n m,\n s,\n f,\n t: someT,\n };\n}\n\nfunction getMasks(inst, d) {\n return {\n 'Y+|y+': {\n Y: `${Number(`${d.year}`.slice(-2))}`,\n YY: pad(`${d.year}`.slice(-2), 2),\n YYY: pad(`${d.year}`.slice(-3), 3),\n def(m) {\n // default\n return pad(`${d.year}`, m.length);\n },\n },\n 'M+': {\n M: d.month + 1,\n MM: pad(`${d.month + 1}`, 2),\n MMM: inst.locale_months_abbr[d.month],\n def: inst.locale_months[d.month],\n },\n 'W+|w+': {\n W: d.day,\n WW: pad(`${d.day}`, 2),\n WWW: inst.locale_days_abbr[d.day],\n def: inst.locale_days[d.day],\n },\n 'D+|d+': {\n D: d.date,\n def(m) {\n return pad(`${d.date}`, m.length);\n },\n },\n 'h+|H+': {\n h: d.h,\n def(m) {\n return pad(`${d.h}`, m.length);\n },\n },\n 'm+': {\n m: d.m,\n def(m) {\n return pad(`${d.m}`, m.length);\n },\n },\n 's+|S+': {\n s: d.s,\n def(m) {\n return pad(`${d.s}`, m.length);\n },\n },\n 'f+|F+': {\n def(m) {\n let f = `${d.f}`,\n n = m.length - f.length;\n if (n > 0) {\n for (let i = 0; i < n; i++) {\n f += '0';\n }\n } else if (n < 0) {\n f = f.slice(0, m.length);\n }\n return f;\n },\n },\n 't{1,2}|T{1,2}': {\n def(m) {\n let t = d.t;\n if (m[0].toUpperCase() === m[0]) {\n t = t.toUpperCase();\n }\n t = t.slice(0, m.length);\n return t;\n },\n },\n };\n}\n\nclass DateFormatter {\n /**\n * @name DateFormatter\n * @constructs\n * @param {Object} localeInfo\n * @param {String} pattern\n */\n constructor(localeInfo, pattern, qtype) {\n const info = localeInfo || {};\n\n if (!info.qCalendarStrings) {\n info.qCalendarStrings = {\n qLongDayNames: DAYS,\n qDayNames: DAYS_ABBR,\n qLongMonthNames: MONTHS,\n qMonthNames: MONTHS_ABBR,\n };\n }\n\n this.localeInfo = info;\n this.locale_days = info.qCalendarStrings.qLongDayNames.slice();\n this.locale_days_abbr = info.qCalendarStrings.qDayNames.slice();\n this.locale_months = info.qCalendarStrings.qLongMonthNames.slice();\n this.locale_months_abbr = info.qCalendarStrings.qMonthNames.slice();\n\n if (!pattern) {\n const patternMap = {\n [TYPES.TIME]: info.qTimeFmt || 'hh:mm:ss',\n [TYPES.DATE]: info.qDateFmt || 'YYYY-MM-DD',\n [TYPES.DATE_TIME]: info.qTimestampFmt || 'YYYY-MM-DD hh:mm:ss',\n };\n\n pattern = patternMap[qtype];\n }\n\n this.pattern = pattern;\n }\n\n clone() {\n const n = new DateFormatter(this.localeInfo, this.pattern);\n n.subtype = this.subtype;\n return n;\n }\n\n /**\n * Formats a date according to given pattern\n * @param {Date} date The date to format.\n * @param {String} pattern The desired format of the date\n * var d = new Date(2013, 8, 15, 13, 55, 40, 987);\n * var n = new DateFormatter();\n * @example\n * m.format( d, 'YYYY-MM-DD hh:mm:ss.ffff') // 2013-08-15 13:55:40.9870\n * m.format( d, 'h:m:s tt') // 1:55:40 pm\n * m.format( d, 'h:m:s TT') // 1:55:40 PM\n * m.format( d, 'M/D/YYYY') // 8/15/2013\n * m.format( d, 'WWWW DD MMM') // Thursday 15 Aug\n * m.format( d, 'WWW DD MMMM @ hh:mm:ss') // Thu 15 August @ 13:55:40\n */\n format(date, pattern) {\n // Fallback pattern is set in constructor\n if (!pattern) {\n pattern = this.pattern ? this.pattern : 'YYYY-MM-DD hh:mm:ss';\n }\n\n pattern = pattern.replace(/\\[.+]|\\[|]/g, '');\n const hasTwelveFlag = /t+/gi.test(pattern);\n let parsedDate;\n\n if (date instanceof Date) {\n parsedDate = parseDate(date, hasTwelveFlag);\n } else {\n if (date < 0) {\n // parseInterval don't support for negative values\n date = -date;\n pattern = `-${pattern}`;\n }\n parsedDate = parseInterval(date, pattern);\n }\n // remove [] and everything inside it\n\n const masks = getMasks(this, parsedDate);\n\n const masksArr = [];\n for (const mask in masks) {\n if (Object.prototype.hasOwnProperty.call(masks, mask)) {\n masksArr.push(mask);\n }\n }\n const dateTimeRegex = new RegExp(masksArr.join('|'), 'g');\n\n const result = pattern.replace(dateTimeRegex, (m) => {\n let r;\n let mask;\n for (mask in masks) {\n if (Object.prototype.hasOwnProperty.call(masks, mask)) {\n r = new RegExp(mask);\n if (r.test(m)) {\n break;\n }\n }\n }\n if (!r) {\n return '';\n }\n let value;\n for (const submask in masks[mask]) {\n if (submask === m || submask.toLowerCase() === m) {\n value = masks[mask][submask];\n if (typeof value === 'undefined') {\n value = masks[mask][submask.toLowerCase()];\n }\n break;\n }\n }\n if (typeof value === 'undefined') {\n value = masks[mask].def;\n }\n\n if (typeof value === 'function') {\n value = value(m);\n }\n return value;\n });\n return result;\n }\n}\n\nexport default function dateFormatFactory(...args) {\n return new DateFormatter(...args);\n}\n","import dateFormatFactory from './parts/qs-date-formatter';\nimport { TYPES } from './constants';\nimport memoize from './memoize';\n\nconst MS_PER_DAY = 86400000;\n\nexport function QlikTimeToDate(value) {\n return new Date(\n Date.UTC(1899, 11, 30 + Math.floor(value), 0, 0, 0, Math.round(MS_PER_DAY * (value - Math.floor(value))))\n );\n}\n\nexport default function formatter(pattern, qtype = 'TS', localeInfo = null) {\n let qformat = dateFormatFactory(localeInfo, pattern, qtype);\n let memoized = memoize(qformat.format.bind(qformat), {\n toKey: (date) => (typeof date === 'object' && typeof date.getTime === 'function' ? date.getTime() : date),\n });\n\n /**\n * Prepare a value according to the specified qtype\n *\n * @param {Number} value The value to be formatted\n * @return {Number} The converted value (if applied)\n */\n function prepare(value) {\n if (qtype !== TYPES.INTERVAL) {\n return QlikTimeToDate(value);\n }\n return value;\n }\n\n /**\n * Format a value according to the specified pattern created at construct\n *\n * @param {Date} value The number to be formatted\n * @return {String} [description]\n */\n function format(value) {\n value = prepare(value);\n return memoized(value);\n }\n\n /**\n * Format a value according to a specific pattern\n * that is not the one specified in the constructor\n *\n * @param {String} p Pattern\n * @param {Date} v Value\n * @return {String} Formatted value\n */\n format.format = function formatFn(p, v) {\n memoized.clear();\n v = prepare(v);\n return qformat.format(v, p);\n };\n\n /**\n * Set the locale for the formatter\n *\n * @param {Object} args Locale object for formatting\n * @return {Undefined} Returns nothing\n */\n format.locale = function locale(li) {\n qformat = dateFormatFactory(li, pattern, qtype);\n memoized = memoize(qformat.format.bind(qformat), {\n toKey: (date) => (typeof date === 'object' ? date.getTime() : date),\n });\n return this;\n };\n\n /**\n * Get or set the QType\n *\n * @param {String} nqt New qType (optional)\n * @return {String} Current qtype\n */\n format.qtype = function qtypeFn(nqt) {\n if (nqt !== undefined) {\n qtype = nqt;\n memoized.clear();\n }\n return qtype;\n };\n\n return format;\n}\n","import numberFormat from './numberFormat';\nimport timeFormat from './timeFormat';\n\nexport { numberFormat, timeFormat };\n\nexport function createFromMetaInfo(meta, localeInfo) {\n if (meta && meta.qNumFormat && ['D', 'T', 'TS', 'IV'].indexOf(meta.qNumFormat.qType) !== -1) {\n return timeFormat(meta.qNumFormat.qFmt, meta.qNumFormat.qType, localeInfo);\n }\n let pattern = '#';\n let thousand = localeInfo && typeof localeInfo.qThousandSep !== 'undefined' ? localeInfo.qThousandSep : ',';\n let decimal = localeInfo && typeof localeInfo.qDecimalSep !== 'undefined' ? localeInfo.qDecimalSep : '.';\n let type = 'U';\n let isAuto = meta && !!meta.qIsAutoFormat;\n if (meta && meta.qNumFormat) {\n pattern = meta.qNumFormat.qFmt || pattern;\n thousand = meta.qNumFormat.qThou || thousand;\n decimal = meta.qNumFormat.qDec || decimal;\n type = meta.qNumFormat.qType || type;\n isAuto = isAuto && ['M'].indexOf(meta.qNumFormat.qType) === -1;\n } else {\n isAuto = true;\n }\n\n if (isAuto || type === 'U') {\n pattern = `#${decimal}##`;\n type = 'U';\n }\n\n return numberFormat(pattern, thousand, decimal, type, localeInfo);\n}\n","import { createFromMetaInfo } from '../formatter';\n\nexport default function qField({ meta, id, key, localeInfo, fieldExtractor, value, type, sourceField } = {}) {\n let values;\n\n const valueFn = value || (type === 'dimension' ? (d) => d?.qElemNo : (d) => d?.qValue);\n const labelFn = (d) => d?.qText || '';\n const reduce = type === 'dimension' ? 'first' : 'avg';\n const formatter = createFromMetaInfo(meta, localeInfo);\n const reduceLabel = type === 'dimension' ? 'first' : (labels, v) => formatter(v);\n\n const f = {\n id: () => id,\n key: () => key,\n raw: () => meta,\n title: () => meta.qFallbackTitle || meta.label,\n type: () => type,\n origin: () => sourceField,\n items: () => {\n if (!values) {\n values = fieldExtractor(f);\n }\n return values;\n },\n min: () => meta.qMin,\n max: () => meta.qMax,\n value: valueFn,\n label: labelFn,\n reduce,\n reduceLabel,\n formatter: () => formatter,\n tags: () => meta.qTags,\n };\n\n return f;\n}\n","// import augmentH from './augment-hierarchy';\nimport extend from 'extend';\nimport SExtractor from './extractor-s';\nimport { extract as TExtractor, augment as augmentTree } from './extractor-t';\nimport { findField } from './util';\nimport field from './field';\n\nfunction createFields(path, obj, prefix, parentKey, opts) {\n return (obj[path] || []).map((meta, i) => {\n const fieldKey = `${parentKey ? `${parentKey}/` : ''}${path}/${i}`;\n const f = {\n instance: field(\n extend(\n {\n id: `${prefix ? `${prefix}/` : ''}${fieldKey}`,\n key: fieldKey,\n meta,\n },\n opts\n )\n ),\n };\n f.attrDims = createFields(\n 'qAttrDimInfo',\n meta,\n prefix,\n fieldKey,\n extend({}, opts, { value: (v) => v?.qElemNo, type: 'dimension' })\n );\n f.attrExps = createFields(\n 'qAttrExprInfo',\n meta,\n prefix,\n fieldKey,\n extend({}, opts, { value: (v) => v?.qNum, type: 'measure' })\n );\n f.measures = createFields(\n 'qMeasureInfo',\n meta,\n prefix,\n fieldKey,\n extend({}, opts, { value: (v) => v?.qValue, type: 'measure' })\n );\n return f;\n });\n}\n\nexport default function q({ key, data, config = {} } = {}) {\n const cache = {\n fields: [],\n wrappedFields: [],\n allFields: [],\n virtualFields: [],\n };\n\n const cube = data;\n if (!cube) {\n throw new Error('Missing \"data\" input');\n }\n\n if (!cube.qDimensionInfo) {\n throw new Error('The \"data\" input is not recognized as a hypercube');\n }\n\n const deps = q.util;\n\n const opts = {\n cache,\n cube,\n localeInfo: config.localeInfo,\n fieldExtractor: null,\n pages: null,\n hierarchy: () => null,\n virtualFields: config.virtualFields,\n };\n\n const dataset = {\n key: () => key,\n raw: () => cube,\n field: (query) => findField(query, opts),\n fields: () => cache.fields.slice(),\n extract: (extractionConfig) => opts.extractor(extractionConfig, dataset, cache, deps),\n hierarchy: (hierarchyConfig) => opts.hierarchy(hierarchyConfig, dataset, cache, deps),\n _cache: () => cache,\n };\n\n if (cube.qMode === 'K' || cube.qMode === 'T' || (!cube.qMode && cube.qNodesOnDim)) {\n opts.extractor = TExtractor;\n opts.hierarchy = augmentTree;\n opts.pages = cube.qMode === 'K' ? cube.qStackedDataPages : cube.qTreeDataPages;\n } else if (cube.qMode === 'S') {\n opts.extractor = SExtractor;\n opts.pages = cube.qDataPages;\n opts.hierarchy = augmentTree;\n } else {\n opts.extractor = () => []; // TODO - throw unsupported error?\n }\n\n opts.fieldExtractor = (f) => opts.extractor({ field: f }, dataset, cache, deps);\n\n const dimAcc = cube.qMode === 'S' ? (d) => d.qElemNumber : undefined;\n const measAcc = cube.qMode === 'S' ? (d) => d.qNum : undefined;\n\n cache.wrappedFields.push(\n ...createFields('qDimensionInfo', cube, key, '', extend({}, opts, { value: dimAcc, type: 'dimension' }))\n );\n cache.wrappedFields.push(\n ...createFields('qMeasureInfo', cube, key, '', extend({}, opts, { value: measAcc, type: 'measure' }))\n );\n\n cache.fields = cache.wrappedFields.map((f) => f.instance);\n\n const traverse = (arr) => {\n arr.forEach((f) => {\n cache.allFields.push(f.instance);\n traverse(f.measures);\n traverse(f.attrDims);\n traverse(f.attrExps);\n });\n };\n\n traverse(cache.wrappedFields);\n\n (config.virtualFields || []).forEach((v) => {\n // key: 'temporal',\n // from: 'qDimensionInfo/0',\n // override: {\n // value: v => v.qNum,\n // },\n const sourceField = dataset.field(v.from);\n const f = field({\n meta: sourceField.raw(),\n id: `${key}/${v.key}`,\n sourceField,\n fieldExtractor: (ff) => opts.extractor({ field: ff }, dataset, cache, deps),\n key: v.key,\n type: sourceField.type(),\n localeInfo: opts.localeInfo,\n value: sourceField.value,\n ...(v.override || {}),\n });\n cache.virtualFields.push(f);\n });\n\n cache.allFields.push(...cache.virtualFields);\n\n return dataset;\n}\n","import resolve from '../json-path-resolver';\n\nconst LAYOUT_TO_PROP = [\n ['qHyperCube', 'qHyperCubeDef'],\n ['qTreeData', 'qTreeDataDef'],\n ['qDimensionInfo', 'qDimensions'],\n ['qMeasureInfo', 'qMeasures'],\n ['qAttrDimInfo', 'qAttributeDimensions'],\n ['qAttrExprInfo', 'qAttributeExpressions'],\n];\n\nconst DIM_RX = /\\/qDimensionInfo(?:\\/(\\d+))?/;\nconst M_RX = /\\/qMeasureInfo\\/(\\d+)/;\nconst ATTR_DIM_RX = /\\/qAttrDimInfo\\/(\\d+)(?:\\/(\\d+))?/;\nconst ATTR_EXPR_RX = /\\/qAttrExprInfo\\/(\\d+)/;\nconst HC_RX = /\\/?qHyperCube/;\nconst TD_RX = /\\/?qTreeData/;\n\nconst SHORTEN_HC = (path) => `${path.substr(0, path.indexOf('/qHyperCubeDef') + 14)}`; // 14 = length of '/qHyperCubeDef'\nconst SHORTEN_TD = (path) => `${path.substr(0, path.indexOf('/qTreeDataDef') + 13)}`; // 13 = length of '/qTreeDataDef'\n\nexport function extractFieldFromId(id, layout) {\n let path = id;\n let dimensionIdx = -1;\n let measureIdx = -1;\n let pathToCube = '';\n let shortenizer = (p) => p;\n if (HC_RX.test(id)) {\n pathToCube = `${path.substr(0, path.indexOf('qHyperCube') + 10)}`; // 10 = length of 'qHyperCube'\n shortenizer = SHORTEN_HC;\n } else if (TD_RX.test(id)) {\n pathToCube = `${path.substr(0, path.indexOf('qTreeData') + 9)}`; // 9 = length of 'qTreeData'\n shortenizer = SHORTEN_TD;\n }\n\n let shortenPath = true;\n\n if (DIM_RX.test(id)) {\n dimensionIdx = +DIM_RX.exec(id)[1];\n }\n\n if (M_RX.test(id)) {\n measureIdx = +M_RX.exec(id)[1];\n }\n\n if (ATTR_DIM_RX.test(id)) {\n measureIdx = -1;\n dimensionIdx = 0;\n const attrCol = +ATTR_DIM_RX.exec(path)[2];\n if (!isNaN(attrCol)) {\n dimensionIdx = attrCol;\n path = path.replace(/\\/\\d+$/, '');\n }\n shortenPath = false;\n }\n\n if (ATTR_EXPR_RX.test(id)) {\n // depends on number of measures + number of attr expressions\n // in dimensions and measures before this one\n const offset = measureIdx;\n if (layout) {\n measureIdx = 0;\n const hc = resolve(pathToCube, layout);\n\n // offset by number of measures\n measureIdx += (hc.qMeasureInfo || []).length;\n\n // offset by total number of attr expr in dimensions\n // (assuming attr expr in dimensions are ordered first)\n if (dimensionIdx > -1) {\n measureIdx = hc.qDimensionInfo\n .slice(0, dimensionIdx)\n .reduce((v, dim) => v + dim.qAttrExprInfo.length, measureIdx);\n dimensionIdx = -1;\n } else {\n measureIdx = hc.qDimensionInfo.reduce((v, dim) => v + dim.qAttrExprInfo.length, measureIdx);\n // offset by total number of attr expr in measures before 'index'\n measureIdx = hc.qMeasureInfo.slice(0, offset).reduce((v, meas) => v + meas.qAttrExprInfo.length, measureIdx);\n }\n\n // offset by the actual column value for the attribute expression itself\n measureIdx += +ATTR_EXPR_RX.exec(path)[1];\n } else if (dimensionIdx > -1) {\n dimensionIdx = -1;\n measureIdx = +ATTR_EXPR_RX.exec(path)[1];\n } else {\n measureIdx += +ATTR_EXPR_RX.exec(path)[1] + 1;\n }\n }\n\n LAYOUT_TO_PROP.forEach(([v, prop]) => {\n path = path.replace(v, prop);\n });\n\n if (shortenPath) {\n path = shortenizer(path);\n }\n\n if (path && path[0] !== '/') {\n path = `/${path}`;\n }\n\n return {\n measureIdx,\n dimensionIdx,\n path,\n };\n}\n\n/**\n * Helper method to generate suitable QIX selection methods and parameters based on a brush instance.\n * @alias brush\n * @memberof picasso.q\n * @param {Brush} brush A brush instance\n * @param {object} [opts]\n * @param {boolean} [opts.byCells=false] Whether to prefer selection by row index.\n * @param {string} [opts.primarySource] Field source to extract row indices from. If not specified, indices from first source are used.\n * @param {boolean} [opts.orMode=true] If false, combine measure range selections.\n * @param {object} [layout] QIX data layout. Needed only when brushing on attribute expressions, to be able to calculate the measure index.\n * @return {object[]} An array of relevant selections\n */\nexport default function qBrush(brush, opts = {}, layout) {\n const byCells = opts.byCells;\n const primarySource = opts.primarySource;\n const selections = [];\n const methods = {};\n const isActive = brush.isActive();\n let hasValues = false;\n brush.brushes().forEach((b) => {\n const info = extractFieldFromId(b.id, layout);\n if (b.type === 'range' && info.measureIdx > -1 && info.dimensionIdx > -1) {\n const ranges = b.brush.ranges();\n if (ranges.length) {\n hasValues = true;\n if (!methods.multiRangeSelectTreeDataValues) {\n methods.multiRangeSelectTreeDataValues = {\n path: info.path,\n ranges: [],\n };\n }\n ranges.forEach((range) =>\n methods.multiRangeSelectTreeDataValues.ranges.push({\n qMeasureIx: info.measureIdx,\n qDimensionIx: info.dimensionIdx,\n qRange: {\n qMin: range.min,\n qMax: range.max,\n qMinInclEq: true,\n qMaxInclEq: true,\n },\n })\n );\n }\n } else {\n if (b.type === 'range' && info.measureIdx > -1) {\n const ranges = b.brush.ranges();\n if (ranges.length) {\n hasValues = true;\n if (!methods.rangeSelectHyperCubeValues) {\n methods.rangeSelectHyperCubeValues = {\n path: info.path,\n ranges: [],\n };\n }\n ranges.forEach((range) =>\n methods.rangeSelectHyperCubeValues.ranges.push({\n qMeasureIx: info.measureIdx,\n qRange: {\n qMin: range.min,\n qMax: range.max,\n qMinInclEq: true,\n qMaxInclEq: true,\n },\n })\n );\n }\n }\n if (b.type === 'range' && info.dimensionIdx > -1) {\n const ranges = b.brush.ranges();\n if (ranges.length) {\n hasValues = true;\n if (!methods.selectHyperCubeContinuousRange) {\n methods.selectHyperCubeContinuousRange = {\n path: info.path,\n ranges: [],\n };\n }\n ranges.forEach((range) =>\n methods.selectHyperCubeContinuousRange.ranges.push({\n qDimIx: info.dimensionIdx,\n qRange: {\n qMin: range.min,\n qMax: range.max,\n qMinInclEq: true,\n qMaxInclEq: false,\n },\n })\n );\n }\n }\n\n if (b.type === 'value' && info.dimensionIdx > -1) {\n if (byCells) {\n if (\n layout &&\n layout.qHyperCube &&\n (layout.qHyperCube.qMode === 'P' || layout.qHyperCube.qMode === 'T' || layout.qHyperCube.qMode === 'K')\n ) {\n const hyperCube = layout.qHyperCube;\n const noOfLeftDims = hyperCube.qNoOfLeftDims;\n const dimInterColSortIdx = hyperCube.qEffectiveInterColumnSortOrder.indexOf(info.dimensionIdx);\n\n if (!methods.selectPivotCells) {\n methods.selectPivotCells = {\n path: info.path,\n cells: [],\n };\n }\n\n if (b.id === primarySource || !primarySource) {\n const validValues = b.brush\n .values()\n .map((s) => +s)\n .filter((v) => !isNaN(v));\n\n if ((noOfLeftDims === 0 || dimInterColSortIdx >= noOfLeftDims) && noOfLeftDims > -1) {\n validValues.forEach((val) => {\n methods.selectPivotCells.cells.push({\n qType: 'T',\n qCol: val,\n qRow: dimInterColSortIdx - noOfLeftDims,\n });\n });\n } else {\n validValues.forEach((val) => {\n methods.selectPivotCells.cells.push({\n qType: 'L',\n qCol: info.dimensionIdx,\n qRow: val,\n });\n });\n }\n hasValues = !!methods.selectPivotCells.cells.length;\n }\n } else {\n if (!methods.selectHyperCubeCells) {\n methods.selectHyperCubeCells = {\n path: info.path,\n cols: [],\n };\n }\n\n methods.selectHyperCubeCells.cols.push(info.dimensionIdx);\n if (b.id === primarySource || (!primarySource && !methods.selectHyperCubeCells.values)) {\n methods.selectHyperCubeCells.values = b.brush\n .values()\n .map((s) => +s)\n .filter((v) => !isNaN(v));\n hasValues = !!methods.selectHyperCubeCells.values.length;\n }\n }\n } else {\n const values = b.brush\n .values()\n .map((s) => +s)\n .filter((v) => !isNaN(v));\n hasValues = !!values.length;\n selections.push({\n params: [info.path, info.dimensionIdx, values, false],\n method: 'selectHyperCubeValues',\n });\n }\n }\n }\n });\n\n if (!hasValues && isActive) {\n return [\n {\n method: 'resetMadeSelections',\n params: [],\n },\n ];\n }\n\n if (methods.rangeSelectHyperCubeValues) {\n selections.push({\n method: 'rangeSelectHyperCubeValues',\n params: [\n methods.rangeSelectHyperCubeValues.path,\n methods.rangeSelectHyperCubeValues.ranges,\n [],\n opts.orMode ?? true,\n ],\n });\n }\n\n if (methods.selectHyperCubeContinuousRange) {\n selections.push({\n method: 'selectHyperCubeContinuousRange',\n params: [methods.selectHyperCubeContinuousRange.path, methods.selectHyperCubeContinuousRange.ranges],\n });\n }\n\n if (methods.selectHyperCubeCells) {\n selections.push({\n method: 'selectHyperCubeCells',\n params: [\n methods.selectHyperCubeCells.path,\n methods.selectHyperCubeCells.values,\n methods.selectHyperCubeCells.cols,\n ],\n });\n }\n\n if (methods.selectPivotCells) {\n selections.push({\n method: 'selectPivotCells',\n params: [methods.selectPivotCells.path, methods.selectPivotCells.cells],\n });\n }\n\n if (methods.multiRangeSelectTreeDataValues) {\n selections.push({\n method: 'multiRangeSelectTreeDataValues',\n params: [methods.multiRangeSelectTreeDataValues.path, methods.multiRangeSelectTreeDataValues.ranges],\n });\n }\n\n return selections;\n}\n","import data from './data/dataset';\nimport qBrushHelper from './brush/q-brush';\nimport numberFormat from './formatter/numberFormat';\nimport timeFormat from './formatter/timeFormat';\n\nexport default function initialize(picasso) {\n data.util = picasso.data('matrix').util;\n picasso.data('q', data);\n picasso.formatter('q-number', numberFormat);\n picasso.formatter('q-time', timeFormat);\n}\n\ninitialize.qBrushHelper = qBrushHelper; // deprecated\ninitialize.selections = qBrushHelper;\n","const selectionUtils = {\n brushInterceptors: {\n DIM_VALUE_NULL: -2,\n DIM_VALUE_TOTAL: -3,\n brushOnlyOne,\n filterValues,\n },\n};\n\nexport default selectionUtils;\n\n/**\n * Implementation details\n */\n\n/**\n * Brush interception filter func - Brush ONE single value\n * @param selectBrush\n * @param items\n * @returns {*}\n */\nfunction brushOnlyOne(brush, items) {\n const activeBrushes = brush.brushes().filter((b) => b.type === 'value');\n let toggleOff = [];\n if (activeBrushes.length) {\n activeBrushes.forEach((b) => {\n toggleOff = toggleOff.concat(\n b.brush.values().map((v) => ({\n key: b.id,\n value: v,\n }))\n );\n });\n }\n\n return toggleOff.concat(items);\n}\n\nfunction findField(chartInstance, item) {\n const splitIndex = item.key.indexOf('qHyperCube') + 'qHyperCube'.length;\n const datasetName = item.key.substr(0, splitIndex);\n const fieldName = item.key.substr(splitIndex + 1);\n return chartInstance.dataset(datasetName).field(fieldName);\n}\n\n/**\n * Brush interception filter function\n * Do not allow selections on null value\n * Do not allow selections in locked dimension\n * @param chartInstance\n * @param items\n * @returns Object { items: {Array}, itemsAreLocked: {Boolean} }\n */\nfunction filterValues(chartInstance, items) {\n const self = this;\n let meta;\n let field;\n const lockedFields = [];\n let lockedItems = 0;\n const brushItems = [];\n\n items.forEach((item) => {\n if (item.value === self.DIM_VALUE_NULL || item.value === self.DIM_VALUE_TOTAL) {\n return;\n }\n field = findField(chartInstance, item);\n\n meta = field && field.raw();\n\n if (!meta.qLocked) {\n brushItems.push({\n key: item.key,\n value: item.value,\n });\n } else {\n lockedFields.push(meta);\n lockedItems++;\n }\n });\n\n return { items: brushItems, itemsAreLocked: lockedItems > 0 && lockedItems === items.length, lockedFields };\n}\n","import extend from 'extend';\nimport Actions from './selection-actions';\n\n// TODO: maybe add support later\nconst eventUtils = {\n showLockedFeedback: () => {},\n};\n\nconst DEFAULT_OPTIONS = {\n data: ['elemNo'],\n contexts: ['select'],\n startOnEmptySelection: true,\n style: {\n active: {\n strokeWidth: 2,\n stroke: '#333', // To make it consistent with other charts\n },\n inactive: {\n opacity: 0.3,\n },\n },\n};\n\nconst ESCAPE = 27;\nconst ENTER = 13;\nconst SHIFT = 16;\n\n/**\n * Create a new Selections handler\n *\n * @param {Object} options\n * @param {Object} options.model The backend model for the chart\n * @param {Object} options.chartInstance Picasso chart instance\n * @param {Object} options.selectionsApi Object selectionsApi\n * @returns {Object} The selections handler instance\n */\nfunction Selections(options) {\n if (!options || !options.chartInstance || !options.selectionsApi) {\n throw Error('Selections-handler: Missing input');\n }\n const chartInstance = options.chartInstance;\n const selectionsApi = options.selectionsApi;\n const dataPaths = options.dataPaths || [''];\n const selectPaths = options.selectPaths;\n const lasso = options.lasso;\n\n let selectionContexts = [];\n const selectionsApiRestoreHelper = { propertiesToRestore: {} };\n let on = false;\n const actions = Actions(chartInstance, selectionsApi, selectPaths);\n\n // Not need for a function, so turned it into an object\n const fn = {};\n\n let lastShift = false;\n function shiftToggle(e) {\n if (e.keyCode === SHIFT && e.shiftKey !== lastShift) {\n lastShift = e.shiftKey;\n lasso.toggle();\n }\n }\n\n function confirmOrCancelSelection(event) {\n const key = event.keyCode;\n if (key === ESCAPE) {\n selectionsApi.cancel();\n } else if (key === ENTER) {\n selectionsApi.confirm();\n }\n }\n\n // If a single field in a single table is not locked, this function returns false\n function areAllFieldsLocked() {\n let dimFields = dataPaths.map((dataPath) =>\n chartInstance\n .dataset(dataPath)\n .fields()\n .filter((field) => field.type() === 'dimension')\n );\n\n // flattern list\n dimFields = [].concat.apply([], dimFields);\n\n return dimFields.length && dimFields.every((field) => field.raw().qLocked);\n }\n\n // If a single field in a single table is not locked, this function returns false\n function getFieldsLocked() {\n const lockedFields = [];\n let dimFields = dataPaths.map((dataPath) =>\n chartInstance\n .dataset(dataPath)\n .fields()\n .filter((field) => field.type() === 'dimension')\n );\n\n // flattern list\n dimFields = [].concat.apply([], dimFields);\n\n for (let i = 0; i < dimFields.length; i++) {\n if (dimFields[i].raw().qLocked) {\n lockedFields.push(dimFields[i].raw());\n }\n }\n return {\n fields: lockedFields,\n areAllFieldsLocked: lockedFields.length && lockedFields.length === dimFields.length,\n };\n }\n\n function isLassoDisabled() {\n return options.isLassoDisabled && options.isLassoDisabled();\n }\n\n selectionsApi.on('cleared', () => {\n selectionContexts.forEach((context) => {\n context.brush.clear();\n // Clear dependent components\n context.dependentComponents.forEach((comp) => {\n const instance = chartInstance.component(comp.id);\n if (instance) {\n instance.emit(comp.clear);\n }\n });\n });\n });\n\n // Setup a selection context\n /*\n builder - instance of chart-builder\n componentKeys = []\n options = {\n contexts: [],\n data: [],\n style: {}\n }\n */\n /**\n * Setup a selection context\n * @param {Object} options Selection context options\n * @returns {Object} The selections handler instance\n */\n fn.setUp = function (options) {\n fn.tearDown();\n\n const result = this.setUpBrush(options);\n\n if (on) {\n register();\n }\n\n return result;\n };\n fn.setUpBrush = function (options) {\n const opts = extend(true, {}, DEFAULT_OPTIONS, options);\n\n const selectionTrigger = {\n on: 'tap',\n action(e) {\n return e.ctrlKey || options.isSingleSelect ? 'set' : 'toggle';\n },\n contexts: opts.contexts,\n data: opts.data,\n globalPropagation: 'stop',\n };\n\n const selectionConsumer = {\n context: opts.contexts[0],\n data: opts.data,\n style: opts.style,\n };\n\n const context = createContext(opts, chartInstance);\n // Do this here instead of in register to be able to catch the consumer\n context.listeners.toggle = function (items) {\n if (!on) {\n return [];\n }\n const fieldsLocked = getFieldsLocked();\n if (opts.startOnEmptySelection && items.length === 0 && fieldsLocked.areAllFieldsLocked) {\n eventUtils.showLockedFeedback(fieldsLocked.fields);\n return [];\n }\n return actions.toggleValues(items, context.brush, opts.startOnEmptySelection);\n };\n\n // Add all three to cover tap, brush range and lasso\n context.brush.intercept('toggle-values', context.listeners.toggle);\n context.brush.intercept('add-values', context.listeners.toggle);\n context.brush.intercept('remove-values', context.listeners.toggle);\n context.brush.intercept('set-values', context.listeners.toggle);\n\n context.listeners.start = function () {\n if (selectionContexts.length > 1) {\n selectionContexts.forEach((c) => {\n if (c !== context) {\n c.brush.end();\n }\n });\n\n // something may still be needed but can not call selectionsApi.clear() that would cause a infinite loop\n // if (!selectionsApi.canClear || selectionsApi.canClear()) {\n // selectionsApi.clear();\n // }\n }\n };\n\n selectionContexts.push(context);\n\n return { trigger: selectionTrigger, consume: selectionConsumer };\n };\n fn.setUpStart = function () {\n fn.tearDown();\n };\n fn.setUpDone = function () {\n if (on) {\n register();\n }\n };\n\n fn.tearDown = function () {\n if (on) {\n deregister();\n }\n selectionContexts.forEach((context) => {\n context.brush.removeInterceptor('toggle-values', context.listeners.toggle);\n context.brush.removeInterceptor('add-values', context.listeners.toggle);\n context.brush.removeInterceptor('remove-values', context.listeners.toggle);\n context.brush.removeInterceptor('set-values', context.listeners.toggle);\n });\n selectionContexts = [];\n };\n\n function register() {\n selectionContexts.forEach((context) => {\n context.listeners.update = function (added, removed) {\n // On tap end, picaso will run rendering in the same frame, and if this is a heavy job then long tap end will happen before tap end finish. This can trigger the radial context menu.\n // So we prevent long tap end here.\n if (!context.sleep) {\n actions.update(added, removed, context.brush);\n }\n };\n context.brush.on('update', context.listeners.update);\n context.brush.on('start', context.listeners.start);\n });\n }\n\n function deregister() {\n selectionContexts.forEach((context) => {\n context.brush.removeListener('update', context.listeners.update);\n context.brush.removeListener('start', context.listeners.start);\n });\n }\n\n fn.pauseEngineCalls = function (id) {\n selectionContexts.forEach((context) => {\n if (context.id === id) {\n context.sleep = true;\n }\n });\n };\n\n fn.resumeEngineCalls = function (id, run) {\n selectionContexts.forEach((context) => {\n if (context.id === id) {\n context.sleep = false;\n if (run) {\n context.listeners.update([], []);\n }\n }\n });\n };\n\n fn.addComponent = function (id, comp) {\n selectionContexts.forEach((context) => {\n if (context.id === id) {\n context.dependentComponents.push(comp);\n }\n });\n };\n\n fn.on = function () {\n if (on) {\n return;\n }\n on = true;\n\n register();\n\n document.addEventListener('keydown', shiftToggle);\n document.addEventListener('keyup', shiftToggle);\n\n const onDeactivated = () => {\n selectionContexts.forEach((context) => {\n context.brush.end();\n });\n document.removeEventListener('keyup', confirmOrCancelSelection);\n if (lasso.active()) {\n lasso.toggle();\n }\n };\n selectionsApi.on('deactivated', onDeactivated);\n selectionsApiRestoreHelper.unbindDeactivated = () => {\n selectionsApi.removeListener('deactivated', onDeactivated);\n };\n\n const onActivated = () => {\n document.addEventListener('keyup', confirmOrCancelSelection);\n };\n selectionsApi.on('activated', onActivated);\n selectionsApiRestoreHelper.unbindActivated = () => {\n selectionsApi.removeListener('activated', onActivated);\n };\n };\n fn.isOn = () => on;\n fn.off = function () {\n if (!on) {\n return;\n }\n on = false;\n deregister();\n\n document.removeEventListener('keydown', shiftToggle);\n document.removeEventListener('keyup', shiftToggle);\n document.removeEventListener('keyup', confirmOrCancelSelection);\n\n selectionsApiRestoreHelper.unbindActivated();\n selectionsApiRestoreHelper.unbindDeactivated();\n };\n\n fn.lassoState = function () {\n return lasso.active() && !isLassoDisabled();\n };\n fn.allFieldsLocked = function () {\n return areAllFieldsLocked();\n };\n\n return fn;\n}\n\nclass NoSelections {\n // eslint-disable-next-line class-methods-use-this\n isOn() {\n return false;\n }\n\n // eslint-disable-next-line class-methods-use-this\n on() {\n console.warn('Can not turn on selections on this object');\n }\n\n // eslint-disable-next-line class-methods-use-this\n off() {}\n}\n\nexport default {\n create(options) {\n if (!options.selectionsApi) {\n return new NoSelections();\n }\n return Selections(options);\n },\n};\n\nfunction createContext(options, chartInstance) {\n return {\n brush: chartInstance.brush(options.contexts[0]),\n listeners: {},\n dependentComponents: [],\n id: options.contexts[0],\n };\n}\n","import PicassoQ from 'picasso-plugin-q/dist/picasso-q';\nimport selectionUtils from './selection-utils';\n\n// TODO: maybe add support later\nconst eventUtils = {\n showLockedFeedback: () => {},\n};\n\nfunction SelectionActions(chartInstance, selectionsApi, paths) {\n function fn() {}\n\n function update(added, removed, brush) {\n if (!selectionsApi.isActive()) {\n selectionsApi.begin(paths);\n }\n const selections = PicassoQ.qBrushHelper(brush);\n selections.forEach((s) => {\n selectionsApi.select(s);\n });\n }\n\n function toggleValues(items, brush, startOnEmptySelection) {\n const filterResult = selectionUtils.brushInterceptors.filterValues(chartInstance, items);\n const itms = filterResult.items;\n if (filterResult.itemsAreLocked) {\n eventUtils.showLockedFeedback(filterResult.lockedFields);\n }\n if (!selectionsApi.isActive() && !filterResult.itemsAreLocked && (startOnEmptySelection || itms.length > 0)) {\n selectionsApi.begin(paths);\n brush.start();\n brush.emit('update', [], []); // and activate our brush\n }\n\n return itms;\n }\n\n fn.update = update;\n fn.toggleValues = toggleValues;\n\n return fn;\n}\nexport default SelectionActions;\n","/**\n * Create a new tooltip action context\n *\n * @param {Object} chartInstance Picasso chart instance\n * @returns {Object} The tooltip actions handler instance\n */\nfunction TooltipActions(chartInstance, componentKey, data, context, tooltipKey) {\n let hasOpen = false;\n\n context = context || 'tooltip';\n data = data || ['self'];\n\n const brush = chartInstance.brush(context);\n\n const fn = {};\n\n // Exposed here for test stub purposes\n fn.isOpen = function () {\n return hasOpen;\n };\n\n function closeTooltip() {\n if (hasOpen) {\n const tooltip = chartInstance.component(tooltipKey);\n tooltip.emit('hide');\n }\n hasOpen = false;\n }\n\n function openTooltip(shapes) {\n hasOpen = true;\n const tooltip = chartInstance.component(tooltipKey);\n const e = {};\n const data = { nodes: shapes };\n tooltip.emit('show', e, data);\n }\n\n fn.closeTooltip = closeTooltip;\n\n /**\n * Updates the contents in tooltip. Requires an array of tooltipInfo.labelData and\n * an array of tooltipInfo.measureRows for the tooltip to display content, otherwise\n * it will show nothing. These key value mappings should be sent in from the charts.\n */\n function update() {\n const brushes = brush.brushes();\n\n // Fetches only the shapes that we are hovering over\n const shapes = chartInstance.getAffectedShapes(context, 'and', data, componentKey);\n\n if (brushes.length >= 1) {\n hasOpen = true;\n openTooltip(shapes);\n } else {\n closeTooltip();\n }\n }\n\n function toggleInterceptor(items) {\n // Remove duplicates if we have multiple dimensions to aoivd a toggle\n // ex: set(2006 ) ->2006 is on, followed by set(2006 ) ->2006 is off\n if (data.length > 1) {\n const check = {};\n const ret = [];\n items.forEach((item) => {\n if (!check[item.key]) {\n check[item.key] = {};\n }\n if (!check[item.key][item.value]) {\n check[item.key][item.value] = true;\n ret.push(item);\n }\n });\n return ret;\n }\n return items;\n }\n\n fn.update = update;\n fn.toggleInterceptor = toggleInterceptor;\n return fn;\n}\n\nexport default {\n create(...args) {\n return TooltipActions(...args);\n },\n};\n","export default {\n formatMeasureValue,\n};\n\nfunction formatMeasureValue(field, measureContent) {\n if (field.raw().isCustomFormatted) {\n return field.formatter()(measureContent.value.qText);\n }\n const value = measureContent.value.qNum !== undefined ? measureContent.value.qNum : measureContent.value.qValue;\n return field.formatter()(value);\n}\n","const MAX_VISIBLE_ITEMS = 5;\nconst OTHERS_ELEMNO = -3;\nconst NULL_ELEMNO = -2;\n\n// TODO: The function getAffectedShapes returns duplicate shapes.\n// Remove when this is fixed on picasso\nfunction filterDuplicateShapes(shapes) {\n const uniques = [];\n\n shapes.forEach((shape) => {\n if (uniques.indexOf(shape) === -1 && shape.type !== 'container') {\n uniques.push(shape);\n }\n });\n\n return uniques;\n}\n\nexport const createFilter = (filterShapes) => (shapes) =>\n filterShapes ? filterShapes(shapes) : filterDuplicateShapes(shapes);\n\nexport const createContent =\n (context) =>\n ({ h, data, style }) => {\n const content = extractContent(context, data);\n const renderSettings = {\n h,\n style,\n rtl: context.direction === 'rtl',\n translator: context.translator,\n };\n return context.renderer(renderSettings, content);\n };\n\nfunction extractContent(tooltipInfo, uniqueShapes) {\n const dataset = tooltipInfo.chartInstance.dataset(tooltipInfo.dataPath);\n\n // Create content + header\n const content = [];\n\n const numberInExcess = uniqueShapes.length - MAX_VISIBLE_ITEMS;\n const numItems = Math.min(MAX_VISIBLE_ITEMS, uniqueShapes.length);\n for (let j = 0; j < numItems; j++) {\n const shape = uniqueShapes[j];\n const localContent = {\n rows: [],\n };\n\n if (tooltipInfo.labelData) {\n const labels = [];\n const refPaths = tooltipInfo.labelData;\n let isNullValue = false;\n for (let i = 0; i < refPaths.length; i++) {\n const currentNode = shape.data[refPaths[i]].value;\n if (currentNode.qElemNo === NULL_ELEMNO || currentNode.qElemNumber === NULL_ELEMNO) {\n // The node is null\n isNullValue = true;\n break;\n }\n labels.push(shape.data[refPaths[i]].value.qText);\n }\n\n if (isNullValue) {\n return undefined;\n }\n\n localContent.header = tooltipInfo.headerResolver(labels);\n localContent.rows = tooltipInfo.measureRows\n .map((measureRow) => {\n const rowData = shape.data;\n return tooltipInfo.rowResolver(dataset.field(rowData[measureRow].source.field), rowData[measureRow], rowData);\n })\n .filter((row) => !!row);\n\n const colorByData = getColorByDimData(tooltipInfo, shape);\n if (colorByData) {\n localContent.rows.unshift(colorByData);\n }\n content.push(localContent);\n }\n }\n if (numberInExcess > 0) {\n content.numberInExcess = numberInExcess;\n }\n\n content.rowCount = content[0] ? content.length * content[0].rows.length : 0;\n return content;\n}\n\nfunction getOthersIndex(values) {\n let index = -1;\n for (let i = 0; i < values.length; i++) {\n if (values[i] === OTHERS_ELEMNO) {\n index = i;\n }\n }\n return index;\n}\n\n/**\n * Get the information of how the color by row should look like.\n * The data for color by is fetched directly from the shape and it's key value mapping called\n * colorByDim, which contains the label and the elemNo\n * @param tooltipInfo - an object containing the chart view\n * @param shape - an object representing the shape currently hovered upon\n * @returns {{label: string - legendTitle, value: (*|String) - color by value, template: string - html template}}\n */\nfunction getColorByDimData(tooltipInfo, shape) {\n const colorData = shape.data.color;\n const colorSettings = tooltipInfo.colorService?.getSettings?.();\n\n if (!colorSettings || colorSettings.type === 'color' || !colorData || !colorSettings.fieldType) {\n return undefined;\n }\n\n const ids = [];\n tooltipInfo.data.forEach((mapping) => {\n const elemNoObj = shape.data[mapping];\n if (elemNoObj) {\n ids.push(elemNoObj.value);\n }\n });\n const othersIndex = getOthersIndex(ids);\n\n const { translator } = tooltipInfo;\n const label = colorSettings.label;\n const color = shape.attrs?.fill;\n const value = othersIndex !== -1 ? translator.get('properties.dimensionLimits.others') : colorData.label;\n return { color, label, value };\n}\n","/* eslint no-underscore-dangle: 0 */\nconst TOOLTIP_CONTAINER_ID = 'dist-flow-tooltip';\nconst TOOLTIP_CONTAINER_SELECTOR = `#${TOOLTIP_CONTAINER_ID}`;\n\nfunction appendTooltipContainer() {\n if (!document.querySelector(TOOLTIP_CONTAINER_SELECTOR)) {\n const container = document.createElement('div');\n container.id = TOOLTIP_CONTAINER_ID;\n container.style.overflow = 'hidden';\n container.style.position = 'fixed';\n container.style.pointerEvents = 'none';\n container.style.left = '0px';\n container.style.top = '0px';\n container.style.width = '100%';\n container.style.height = '100%';\n container.style.zIndex = 1020;\n document.body.appendChild(container);\n }\n}\n\nfunction destroyTooltipContainer() {\n const elm = document.querySelector(TOOLTIP_CONTAINER_SELECTOR);\n if (elm && elm.parentElement && elm.childElementCount < 1) {\n elm.parentElement.removeChild(elm);\n }\n}\n\n/**\n * Base tooltip definition\n */\nexport default function tooltip({ key = 'tooltip', rtl, fontFamily, filter, content }) {\n return {\n show: true,\n key,\n type: 'tooltip',\n layout: {\n displayOrder: 3,\n },\n beforeMount() {\n appendTooltipContainer();\n },\n beforeUpdate() {\n appendTooltipContainer();\n },\n destroyed() {\n destroyTooltipContainer();\n },\n settings: {\n appendTo: () => document.querySelector(TOOLTIP_CONTAINER_SELECTOR),\n content,\n filter,\n extract: (context) => context.node,\n direction: rtl ? 'rtl' : 'ltr',\n placement: 'bounds',\n },\n style: {\n arrow: {\n color: '#404040',\n },\n content: {\n display: 'table',\n 'border-spacing': '4px',\n background: 'rgba(64, 64, 64, 0.9)',\n opacity: '1',\n fontSize: '13px',\n fontFamily,\n 'empty-cells': 'show',\n },\n cell: {\n 'max-width': '180px',\n 'word-break': 'break-word',\n 'word-wrap': 'break-word',\n 'overflow-wrap': 'break-word',\n hyphens: 'auto',\n },\n },\n };\n}\n","/** @jsx h */\nimport rtlUtils from '../../extra/rtl-util';\n\nconst { detectTextDirection: getDirection } = rtlUtils;\n\nexport default function render(settings, content) {\n const { h, style, translator, rtl } = settings;\n const result = [];\n const labelTextAlign = rtl ? 'right' : 'left';\n content.forEach((item) => {\n if (item.header) {\n const headerStyle = {\n ...style.cell,\n textAlign: labelTextAlign,\n fontWeight: 'bold',\n direction: getDirection(item.header),\n };\n result.push(\n <tr>\n <td style={headerStyle} colSpan={2}>\n {item.header}\n </td>\n </tr>\n );\n }\n item.rows.forEach((row) => {\n let valueContent = row.value;\n if (row.color) {\n const symbolStyle = {\n display: 'inline-block',\n width: 10,\n height: 10,\n 'background-color': row.color,\n margin: '0 8px',\n };\n const symbol = <div style={symbolStyle} />;\n valueContent = rtl ? [row.value, symbol] : [symbol, row.value];\n }\n const label = rtl ? [':', row.label] : [row.label, ':'];\n const labelStyle = { ...style.cell, textAlign: labelTextAlign, direction: getDirection(row.label) };\n const valueStyle = { ...style.cell, textAlign: rtl ? 'left' : 'right', direction: getDirection(row.value) };\n result.push(\n <tr>\n <td style={labelStyle}>{label}</td>\n <td style={valueStyle}>{valueContent}</td>\n </tr>\n );\n });\n });\n if (content.numberInExcess) {\n const moreText = translator.get('Object.ChartTooltip.NMore', content.numberInExcess);\n const moreStyle = { ...style.cell, textAlign: labelTextAlign, direction: getDirection(moreText) };\n result.push(\n <tr>\n <td style={moreStyle} colSpan={2}>\n {moreText}\n </td>\n </tr>\n );\n }\n return result;\n}\n","import extend from 'extend';\nimport TooltipAction from './tooltip-actions';\nimport formatting from '../formatting';\nimport { createFilter, createContent } from './tooltip-content';\nimport createTooltip from './tooltips-component';\nimport defaultTooltipRenderer from './tooltip-renderer';\n\nconst DEFAULT_OPTIONS = {\n tooltipKey: 'tooltip',\n data: [''],\n contexts: ['tooltip'],\n headerResolver(values) {\n return values.join(', ');\n },\n rowResolver(field, measureContent) {\n return {\n value: formatting.formatMeasureValue(field, measureContent),\n label: field.title(),\n };\n },\n direction: 'ltr',\n renderer: defaultTooltipRenderer,\n};\n\n/**\n * Create a new Tooltips handler\n *\n * @param {Object} model The backend model for the chart\n * @param {Object} chartInstance Picasso chart instance\n * @returns {Object} The selections handler instance\n */\nfunction Tooltips(chartInstance, $element, chartType) {\n if (!chartInstance) {\n throw Error('Tooltips-handler: Missing input');\n }\n\n let tooltipContexts = {};\n let on = false;\n\n // Not need for a function, so turned it into an object\n const fn = {};\n\n /**\n * Setup a tooltips context\n * @param {Object} options Tooltip context options\n * @returns {Object} The selections handler instance\n */\n fn.setUp = function (options) {\n const opts = extend(true, {}, DEFAULT_OPTIONS, options);\n\n if (!opts.componentKey) {\n throw Error('Tooltips-handler.setUp: Missing required input');\n }\n\n if (tooltipContexts[opts.contexts[0]] && on) {\n deRegContext(tooltipContexts[opts.contexts[0]]);\n }\n\n const context = createContext(opts, chartInstance);\n tooltipContexts[opts.contexts[0]] = context;\n\n if (on) {\n registerContext(context);\n }\n\n const component = createTooltip({\n key: opts.tooltipKey,\n rtl: context.direction === 'rtl',\n fontFamily: context.theme.getStyle(chartType, 'tooltip', 'fontFamily'),\n filter: createFilter(context.filterShapes),\n content: createContent(context, opts.dataPath),\n });\n\n const settings = opts.chartBuilder.getSettings();\n settings.components.push(component);\n\n return {\n trigger: {\n on: context.treatAsDesktop ? 'over' : 'tap',\n action: 'set',\n contexts: opts.contexts,\n data: opts.data,\n globalPropagation: 'stop',\n },\n consume: opts.contexts.map((c) => ({ context: c })),\n component,\n };\n };\n\n fn.tearDown = function () {\n if (on) {\n deregister();\n }\n tooltipContexts = [];\n };\n\n function register() {\n Object.keys(tooltipContexts).forEach((key) => {\n registerContext(tooltipContexts[key]);\n });\n }\n\n function registerContext(context) {\n context.listeners.update = function (added, removed) {\n context.action.update(added, removed, context);\n };\n context.listeners.end = function () {\n context.action.closeTooltip();\n };\n\n context.brush.on(context.treatAsDesktop ? 'update' : 'set-values', context.listeners.update);\n context.brush.on('end', context.listeners.end);\n // Intecept the set-values call to avoid a toggle in the second dimension.\n context.brush.intercept('set-values', context.action.toggleInterceptor);\n }\n\n function deregister() {\n Object.keys(tooltipContexts).forEach((key) => {\n deRegContext(tooltipContexts[key]);\n });\n }\n\n function deRegContext(context) {\n context.brush.removeListener(context.treatAsDesktop ? 'update' : 'set-values', context.listeners.update);\n context.brush.removeListener('end', context.listeners.end);\n context.brush.removeInterceptor('set-values', context.action.toggleInterceptor);\n }\n\n function closeTooltip() {\n Object.keys(tooltipContexts).forEach((key) => {\n tooltipContexts[key].action.closeTooltip();\n });\n }\n\n function mouseLeave() {\n closeTooltip();\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (const prop in tooltipContexts) {\n tooltipContexts[prop].brush.clear();\n }\n }\n\n fn.closeTooltip = closeTooltip;\n\n fn.isOn = () => on;\n fn.on = function () {\n if (on) {\n return;\n }\n on = true;\n\n register();\n\n if ($element) {\n $element.on('mouseleave', mouseLeave);\n }\n };\n\n fn.off = function () {\n if (!on) {\n return;\n }\n on = false;\n deregister();\n\n if ($element) {\n $element.off('mouseleave', mouseLeave);\n }\n closeTooltip();\n };\n\n return fn;\n}\n\nexport default {\n create(chartInstance, $element, chartType) {\n return Tooltips(chartInstance, $element, chartType);\n },\n};\n\nfunction createContext(options, chartInstance) {\n return {\n brush: chartInstance.brush(options.contexts[0]),\n action: TooltipAction.create(\n chartInstance,\n options.componentKey,\n options.data,\n options.contexts[0],\n options.tooltipKey\n ),\n listeners: {},\n chartInstance,\n dataPath: options.dataPath,\n renderer: options.renderer,\n data: options.data,\n headerResolver: options.headerResolver,\n rowResolver: options.rowResolver,\n colorService: options.colorService,\n attrDimPath: options.attrDimPath,\n measureRows: options.measureRows,\n labelData: options.labelData,\n filterShapes: options.filterShapes,\n\n direction: options.environment.options.direction,\n theme: options.environment.theme,\n translator: options.environment.translator,\n treatAsDesktop: options.environment.deviceType !== 'touch',\n };\n}\n","import hashFromString from '../../../extra/hash-from-string';\n\nconst hash = {\n generateHash,\n updateHash,\n};\n\nexport default hash;\n\n/**\n * Implementation details\n */\n\nfunction generateHash(hashData) {\n return hashFromString(JSON.stringify(hashData));\n}\n\nfunction updateHash(properties, hashData) {\n if (!properties.qUndoExclude) {\n properties.qUndoExclude = {};\n }\n\n properties.qUndoExclude.hashCode = hash.generateHash(hashData);\n}\n","/**\n * Generate a 32 bit integer hash code from a string\n */\nexport default function hashFromString(str) {\n let hash = 0;\n\n if (!str || !str.length) {\n return hash;\n }\n\n for (let i = 0; i < str.length; i++) {\n const chr = str.charCodeAt(i);\n /* eslint-disable no-bitwise */\n hash = (hash << 5) - hash + chr;\n hash &= hash;\n /* eslint-enable no-bitwise */\n }\n return hash;\n}\n","import { getValue } from 'qlik-chart-modules';\n\nconst hashBuilder = {\n getDefaultHashDataForHyperCube,\n};\n\nexport default hashBuilder;\n\n/**\n * Implementation details\n */\n\nfunction getDefaultHashDataForHyperCube(hyperCubeDef, hyperCube, app) {\n return getMeasureExpressions(hyperCubeDef, app).then((measureExpressions) => ({\n drillLevel: getDrillIndices(hyperCube),\n dimensionExpressions: getDimensionExpressions(hyperCube),\n measureExpressions,\n }));\n}\n\nfunction getMeasureExpressions(hyperCubeDef, app) {\n const dfds = [];\n\n if (!hyperCubeDef.qMeasures) {\n return Promise.resolve(dfds);\n }\n\n hyperCubeDef.qMeasures.forEach((measure) => {\n if (measure.qLibraryId) {\n dfds.push(getMeasureDataFromLibraryItem(measure.qLibraryId, app));\n } else {\n dfds.push(Promise.resolve());\n }\n });\n\n return Promise.all(dfds);\n}\n\nfunction getMeasureDataFromLibraryItem(libraryId, app) {\n return app.getMeasure(libraryId).then((item) => item.getProperties().then((props) => props.qMeasure.qDef));\n}\n\nfunction getDimensionExpressions(hyperCube) {\n return hyperCube.qDimensionInfo.map((dimensionInfo) => dimensionInfo.qGroupFieldDefs);\n}\n\nfunction getDrillIndices(hyperCube) {\n const dimensions = getDimensions(hyperCube);\n return dimensions.map((dim) => dim.qGroupPos);\n}\n\nfunction getDimensions(hyperCube) {\n return getValue(hyperCube, 'qDimensionInfo', []);\n}\n","/* eslint-disable no-restricted-syntax */\nimport originalExtend from 'extend';\n\nconst JSONPatch = {};\n\nconst extend = originalExtend.bind(null, true);\nfunction isObject(v) {\n return v != null && !Array.isArray(v) && typeof v === 'object';\n}\nconst isArray = Array.isArray;\n\nconst isUndef = function (v) {\n return typeof v === 'undefined';\n};\n\nconst isFunction = function (v) {\n return typeof v === 'function';\n};\n\n/**\n * Generate an exact duplicate (with no references) of a specific value.\n *\n * @private\n * @param {Object} The value to duplicate\n * @returns {Object} a unique, duplicated value\n */\nfunction generateValue(val) {\n if (val) {\n val = extend({}, { val }).val;\n }\n return val;\n}\n\n/**\n * An additional type checker used to determine if the property is of internal\n * use or not a type that can be translated into JSON (like functions).\n *\n * @private\n * @param {Object} obj The object which has the property to check\n * @param {String} The property name to check\n * @returns {Boolean} Whether the property is deemed special or not\n */\nfunction isSpecialProperty(obj, key) {\n return isFunction(obj[key]) || key.substring(0, 2) === '$$' || key.substring(0, 1) === '_';\n}\n\n/**\n * Finds the parent object from a JSON-Pointer (\"/foo/bar/baz\" = \"bar\" is \"baz\" parent),\n * also creates the object structure needed.\n *\n * @private\n * @param {Object} data The root object to traverse through\n * @param {String} The JSON-Pointer string to use when traversing\n * @returns {Object} The parent object\n */\nfunction getParent(data, str) {\n const seperator = '/';\n const parts = str.substring(1).split(seperator).slice(0, -1);\n let numPart;\n\n parts.forEach((part, i) => {\n if (i === parts.length) {\n return;\n }\n numPart = +part;\n data[numPart || part] = isUndef(data[numPart || part]) ? (!Number.isNaN(+numPart) ? [] : {}) : data[part];\n data = data[numPart || part];\n });\n\n return data;\n}\n\n/**\n * Cleans an object of all its properties, unless they're deemed special or\n * cannot be removed by configuration.\n *\n * @private\n * @param {Object} obj The object to clean\n */\nfunction emptyObject(obj) {\n Object.keys(obj).forEach((key) => {\n const config = Object.getOwnPropertyDescriptor(obj, key);\n\n if (config.configurable && !isSpecialProperty(obj, key)) {\n delete obj[key];\n }\n });\n}\n\n/**\n * Compare an object with another, could be object, array, number, string, bool.\n *\n * @param {Object} a The first object to compare\n * @param {Object} b The second object to compare\n * @returns {Boolean} Whether the objects are identical\n */\nfunction compare(a, b) {\n if (isObject(a) && isObject(b)) {\n if (Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key of Object.keys(a)) {\n if (!compare(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n if (isArray(a) && isArray(b)) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0, l = a.length; i < l; i++) {\n if (!compare(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n return a === b;\n}\n\n/**\n * Generates patches by comparing two arrays.\n *\n * @private\n * @param {Array} oldA The old (original) array, which will be patched\n * @param {Array} newA The new array, which will be used to compare against\n * @returns {Array} An array of patches (if any)\n */\nfunction patchArray(original, newA, basePath) {\n let patches = [];\n const oldA = original.slice();\n let i;\n let l;\n let tmpIdx = -1;\n\n function findIndex(a, id, idx) {\n if (a[idx] && isUndef(a[idx].qInfo)) {\n return null;\n }\n if (a[idx] && a[idx].qInfo.qId === id) {\n // shortcut if identical\n return idx;\n }\n for (let i = 0, l = a.length; i < l; i++) {\n if (a[i] && a[i].qInfo.qId === id) {\n return i;\n }\n }\n return -1;\n }\n\n if (compare(newA, oldA)) {\n // array is unchanged\n return patches;\n }\n\n if (newA[0] === null || (!isUndef(newA[0]) && isUndef(newA[0].qInfo))) {\n // we cannot create patches without unique identifiers, replace array...\n patches.push({\n op: 'replace',\n path: basePath,\n value: newA,\n });\n return patches;\n }\n\n for (i = oldA.length - 1; i >= 0; --i) {\n tmpIdx = findIndex(newA, oldA[i] && oldA[i].qInfo && oldA[i].qInfo.qId, i);\n if (tmpIdx === -1) {\n patches.push({\n op: 'remove',\n path: `${basePath}/${i}`,\n });\n oldA.splice(i, 1);\n } else {\n patches = patches.concat(JSONPatch.generate(oldA[i], newA[tmpIdx], `${basePath}/${i}`));\n }\n }\n\n for (i = 0, l = newA.length; i < l; ++i) {\n tmpIdx = findIndex(oldA, newA[i] && newA[i].qInfo && newA[i].qInfo.qId);\n if (tmpIdx === -1) {\n patches.push({\n op: 'add',\n path: `${basePath}/${i}`,\n value: newA[i],\n });\n oldA.splice(i, 0, newA[i]);\n } else if (tmpIdx !== i) {\n patches.push({\n op: 'move',\n path: `${basePath}/${i}`,\n from: `${basePath}/${tmpIdx}`,\n });\n oldA.splice(i, 0, oldA.splice(tmpIdx, 1)[0]);\n }\n }\n return patches;\n}\n\n/**\n * Generate an array of JSON-Patch:es following the JSON-Patch Specification Draft.\n *\n * See [specification draft](http://tools.ietf.org/html/draft-ietf-appsawg-json-patch-10)\n *\n * Does NOT currently generate patches for arrays (will replace them)\n *\n * @param {Object} original The object to patch to\n * @param {Object} newData The object to patch from\n * @param {String} [basePath] The base path to use when generating the paths for the patches (normally not used)\n * @returns {Array} An array of patches\n */\nJSONPatch.generate = function (original, newData, basePath) {\n basePath = basePath || '';\n let patches = [];\n\n Object.keys(newData).forEach((key) => {\n const val = generateValue(newData[key]);\n const oldVal = original[key];\n const tmpPath = `${basePath}/${key}`;\n\n if (compare(val, oldVal) || isSpecialProperty(newData, key)) {\n return;\n }\n if (isUndef(oldVal)) {\n // property does not previously exist\n patches.push({\n op: 'add',\n path: tmpPath,\n value: val,\n });\n } else if (isObject(val) && isObject(oldVal)) {\n // we need to generate sub-patches for this, since it already exist\n patches = patches.concat(JSONPatch.generate(oldVal, val, tmpPath));\n } else if (isArray(val) && isArray(oldVal)) {\n patches = patches.concat(patchArray(oldVal, val, tmpPath));\n } else {\n // it's a simple property (bool, string, number)\n patches.push({\n op: 'replace',\n path: `${basePath}/${key}`,\n value: val,\n });\n }\n });\n\n Object.keys(original).forEach((key) => {\n if (isUndef(newData[key]) && !isSpecialProperty(original, key)) {\n // this property does not exist anymore\n patches.push({\n op: 'remove',\n path: `${basePath}/${key}`,\n });\n }\n });\n\n return patches;\n};\n\n/**\n * Apply a list of patches to an object.\n *\n * @param {Object} original The object to patch\n * @param {Array} patches The list of patches to apply\n */\nJSONPatch.apply = function (original, patches) {\n patches.forEach((patch) => {\n const parent = getParent(original, patch.path);\n let key = patch.path.split('/').splice(-1)[0];\n const target = key && Number.isNaN(+key) ? parent[key] : parent[+key] || parent;\n const from = patch.from ? patch.from.split('/').splice(-1)[0] : null;\n\n if (patch.op === 'add' || patch.op === 'replace') {\n if (isArray(parent)) {\n // trust indexes from patches, so don't replace the index if it's an add\n if (key === '-') {\n key = parent.length;\n }\n parent.splice(+key, patch.op === 'add' ? 0 : 1, patch.value);\n } else if (isArray(target) && isArray(patch.value)) {\n const newValues = patch.value.slice();\n // keep array reference if possible...\n target.length = 0;\n target.push.apply(target, newValues);\n } else if (isObject(target) && isObject(patch.value)) {\n // keep object reference if possible...\n emptyObject(target);\n extend(target, patch.value);\n } else {\n // simple value\n parent[key] = patch.value;\n }\n } else if (patch.op === 'move') {\n const oldParent = getParent(original, patch.from);\n if (isArray(parent)) {\n parent.splice(+key, 0, oldParent.splice(+from, 1)[0]);\n } else {\n parent[key] = oldParent[from];\n delete oldParent[from];\n }\n } else if (patch.op === 'remove') {\n if (isArray(parent)) {\n parent.splice(+key, 1);\n } else {\n delete parent[key];\n }\n }\n });\n};\n\n/**\n * Deep clone an object.\n *\n * @param {Object} obj The object to clone\n * @returns {Object} A new object identical to the `obj`\n */\nJSONPatch.clone = function (obj) {\n return extend({}, obj);\n};\n\n/**\n * Creates a JSON-patch.\n *\n * @param {String} op The operation of the patch. Available values: \"add\", \"remove\", \"move\"\n * @param {Object} [val] The value to set the `path` to. If `op` is `move`, `val` is the \"from JSON-path\" path\n * @param {String} path The JSON-path for the property to change (e.g. \"/qHyperCubeDef/columnOrder\")\n * @returns {Object} A patch following the JSON-patch specification\n */\nJSONPatch.createPatch = function (op, val, path) {\n const patch = {\n op: op.toLowerCase(),\n path,\n };\n if (patch.op === 'move') {\n patch.from = val;\n } else if (typeof val !== 'undefined') {\n patch.value = val;\n }\n return patch;\n};\n\n/**\n * Apply the differences of two objects (keeping references if possible).\n * Identical to running `JSONPatch.apply(original, JSONPatch.generate(original, newData));`\n *\n * @param {Object} original The object to update/patch\n * @param {Object} newData the object to diff against\n *\n * @example\n * var obj1 = { foo: [1,2,3], bar: { baz: true, qux: 1 } };\n * var obj2 = { foo: [4,5,6], bar: { baz: false } };\n * JSONPatch.updateObject(obj1, obj2);\n * // => { foo: [4,5,6], bar: { baz: false } };\n */\nJSONPatch.updateObject = function (original, newData) {\n if (!Object.keys(original).length) {\n extend(original, newData);\n return;\n }\n JSONPatch.apply(original, JSONPatch.generate(original, newData));\n};\n\nexport default JSONPatch;\n","import extend from 'extend';\nimport JSONPatch from './json-patch';\n\nclass SoftPropertyHandler {\n constructor(model) {\n this._model = model;\n }\n\n setModel(model) {\n this._model = model;\n }\n\n saveSoftProperties(prevEffectiveProperties, effectiveProperties) {\n if (!this._model) {\n return Promise.resolve(false);\n }\n\n let patches = JSONPatch.generate(prevEffectiveProperties, effectiveProperties);\n extend(true, prevEffectiveProperties, effectiveProperties);\n\n if (patches && patches.length) {\n patches = patches.map((p) => ({\n qOp: p.op,\n qValue: JSON.stringify(p.value),\n qPath: p.path,\n }));\n\n return this._model.applyPatches(patches, true).then(() => true);\n }\n return Promise.resolve(false);\n }\n\n async mergeSoftPatches() {\n if (!this._model) {\n return;\n }\n\n const propertiesPromise = this._model.getProperties();\n const effectivePromise = this._model.getEffectiveProperties();\n\n const properties = await propertiesPromise;\n const effective = await effectivePromise;\n\n if (properties.qExtendsId) {\n return;\n }\n const patches = JSONPatch.generate(properties, effective);\n JSONPatch.apply(properties, patches);\n\n const self = this;\n self._model.setProperties(properties).then(() => {\n self._model.clearSoftPatches();\n });\n }\n}\n\nexport default SoftPropertyHandler;\n","export default {\n canModifyHardProperties,\n};\n\nfunction canModifyHardProperties(layout) {\n if (layout.qHasSoftPatches || layout.qExtendsId) {\n return false;\n }\n if (layout.permissions) {\n return layout.permissions.update;\n }\n return layout.qMeta.privileges.indexOf('update') !== -1;\n}\n","import SoftPropertyHandler from '../../../extra/soft-property-handler';\nimport hardPropertiesChecker from '../../../extra/hard-properties-checker';\n\nexport default {\n saveDerivedProperties,\n};\n\n/**\n * Implementation details\n */\n\nfunction saveDerivedProperties(model, layout, properties, prevProperties) {\n // Can't set new properties on a master item (SUI-1363)\n\n if (hardPropertiesChecker.canModifyHardProperties(layout)) {\n return model.setProperties(properties);\n }\n\n const softPropertyHandler = new SoftPropertyHandler(model);\n return softPropertyHandler.saveSoftProperties(prevProperties, properties);\n}\n","export default {\n validate,\n};\n\n/**\n * Implementation details\n */\n\nfunction validate(settings) {\n if (\n !settings ||\n !settings.layout ||\n !settings.properties ||\n !settings.model ||\n !settings.hashData ||\n !settings.generateDerivedProperties\n ) {\n throw Error('Derived-properties: Missing input');\n }\n}\n","import extend from 'extend';\nimport Hash from './hash/hash';\nimport HashBuilder from './hash/hash-builder';\nimport Save from './save/save';\nimport InputValidator from './input-validator/input-validator';\n\nfunction DerivedProperties() {\n this._generationInProgress = false;\n}\n\nDerivedProperties.prototype.isDerivedUpToDate = isDerivedUpToDate;\nDerivedProperties.prototype.updateDerivedProperties = updateDerivedProperties;\nDerivedProperties.prototype.addDefaultHyperCubeHash = addDefaultHyperCubeHash;\n\nexport default DerivedProperties;\n\nfunction isDerivedUpToDate(settings) {\n InputValidator.validate(settings);\n\n const properties = settings.properties;\n const hash = Hash.generateHash(settings.hashData);\n\n if (!properties.qUndoExclude || properties.qUndoExclude.hashCode !== hash) {\n return false;\n }\n\n return true;\n}\n\n// Returns a boolean flag if properties actually are being updated or not\nfunction updateDerivedProperties(settings) {\n InputValidator.validate(settings);\n\n if (this._generationInProgress) {\n return Promise.resolve(true);\n }\n\n if (isDerivedUpToDate(settings)) {\n const layoutIsUpdated =\n settings.layout.qUndoExclude &&\n settings.layout.qUndoExclude.hashCode === settings.properties.qUndoExclude.hashCode;\n return Promise.resolve(!layoutIsUpdated);\n }\n\n const self = this;\n const model = settings.model;\n const layout = settings.layout;\n const properties = extend(true, {}, settings.properties);\n const prevProperties = extend(true, {}, properties);\n\n this._generationInProgress = true;\n\n Hash.updateHash(properties, settings.hashData);\n\n return settings.generateDerivedProperties(layout, properties).then(() =>\n Save.saveDerivedProperties(model, layout, properties, prevProperties).then(() => {\n self._generationInProgress = false;\n\n return Promise.resolve(true);\n })\n );\n}\n\nfunction addDefaultHyperCubeHash(hyperCubeDef, hyperCube, app, settings) {\n return HashBuilder.getDefaultHashDataForHyperCube(hyperCubeDef, hyperCube, app).then((defaultSettings) =>\n extend(true, settings, defaultSettings)\n );\n}\n","const ExpressionWrapper = {\n wrapExpression,\n};\n\nfunction wrapExpression(expression) {\n const result = expression.replace(/\\]/g, ']]');\n\n return result ? `[${result}]` : '';\n}\n\nexport default ExpressionWrapper;\n","/* eslint-disable no-restricted-syntax */\n/* eslint-disable guard-for-in */\nconst ExpressionReplacer = {\n replaceExpressionTokens,\n createRegExp,\n};\n\nfunction replaceExpressionTokens(expression, tokenMappings, tokenIdentifiers) {\n const identifiers = {\n start: (tokenIdentifiers && tokenIdentifiers.start) || '{{',\n end: (tokenIdentifiers && tokenIdentifiers.end) || '}}',\n };\n\n let returnExpression = expression;\n let tokenExpression;\n let tokenString;\n\n for (const key in tokenMappings) {\n tokenExpression = tokenMappings[key];\n tokenString = identifiers.start + key + identifiers.end;\n\n returnExpression = returnExpression.replace(createRegExp(tokenString, true), tokenExpression);\n }\n\n return returnExpression;\n}\n\nfunction createRegExp(string, isGlobal, isGrouped) {\n const escapedString = escapeRegExp(string);\n const regexpString = isGrouped ? `(${escapedString})` : escapedString;\n return isGlobal ? new RegExp(regexpString, 'g') : new RegExp(regexpString);\n}\n\nfunction escapeRegExp(str) {\n return str.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&');\n}\n\nexport default ExpressionReplacer;\n","/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\nimport ExpressionWrapper from './expression-wrapper';\nimport ExpressionReplacer from './expression-replacer';\n\nconst ExpressionGenerator = {\n generateExpression,\n};\n\n// builds up mappings for the dimensions and measures and wraps the dimensions\n// mappings = { mapping }\n// mapping = {\n// \tvalue: (string) the expression value to replace the key with,\n// \twrap: (boolean) if the expression should be cleaned and wrapped or not (usually if field)\n// variations: (Array) array of strings with variations on the same key that if the value is empty should also be empty\nfunction generateExpression(template, mappings) {\n const explicitMappings = {};\n\n if (mappings) {\n for (const key in mappings) {\n const mapping = mappings[key];\n\n const expression = mapping.wrap ? ExpressionWrapper.wrapExpression(mapping.value) : mapping.value;\n\n explicitMappings[key] = expression;\n\n const variations = mapping.variations || [];\n\n variations.forEach((variation) => {\n const variationExpressions = assembleVariation(variation, expression, key);\n explicitMappings[variation] = variationExpressions;\n });\n }\n }\n\n return ExpressionReplacer.replaceExpressionTokens(template, explicitMappings);\n}\n\n// Internal functions\n\nfunction assembleVariation(variation, value, key) {\n if (value === '') {\n return '';\n }\n\n const regExp = ExpressionReplacer.createRegExp(key, true, true);\n const stringArray = variation.split(regExp);\n let expression = '';\n\n stringArray.forEach((substring) => {\n expression += substring !== key ? substring : value;\n });\n\n return expression;\n}\n\nexport default ExpressionGenerator;\n","import extend from 'extend';\nimport ExpressionGenerator from '../expression-generator/expression-generator';\n\nconst HyperCubeGenerator = {\n generateHyperCubeDef,\n getAllHyperCubeExpressions,\n};\n\n// builds up a hyper cube using a hyper cube def and the hyper cube result, needs the app as well\n// also supports additional mappings that allows generation of more advanced expressions\nfunction generateHyperCubeDef(template, hyperCubeDef, hyperCube, app, mappings) {\n // hyper cube knows about {{Dim[n]}} {{Mea[n]}} mappings.\n return getKnownMappings(template.dimensions.concat(template.measures), hyperCubeDef, hyperCube, app).then(\n (knownMappings) => {\n const allMappings = extend({}, knownMappings, mappings);\n\n const generatedHyperCubeDef = extend(true, {}, hyperCubeDef);\n // clean the dimensions and measures\n generatedHyperCubeDef.qDimensions = [];\n generatedHyperCubeDef.qMeasures = [];\n\n template.dimensions.forEach((dimensionTemplate) => {\n generatedHyperCubeDef.qDimensions.push({\n qDef: {\n qFieldDefs: [`=${ExpressionGenerator.generateExpression(dimensionTemplate, allMappings)}`],\n },\n });\n });\n\n template.measures.forEach((measureTemplate) => {\n generatedHyperCubeDef.qMeasures.push({\n qDef: {\n qDef: ExpressionGenerator.generateExpression(measureTemplate, allMappings),\n },\n });\n });\n\n return generatedHyperCubeDef;\n }\n );\n}\n\nasync function getAllHyperCubeExpressions(hyperCubeDef, hyperCube, app) {\n const dimensions = hyperCubeDef.qDimensions.map((dimension, index) =>\n getExpressionFromDimension(dimension, app, index, hyperCube)\n );\n const measures = hyperCubeDef.qMeasures.map((measure) => getExpressionFromMeasure(measure, app));\n\n return {\n dimensions: await Promise.all(dimensions),\n measures: await Promise.all(measures),\n };\n}\n\nfunction getExpressionFromDimension(dimension, app, index, hyperCube) {\n if (dimension.qLibraryId) {\n return getExpressionFromLibraryItem(dimension.qLibraryId, 'dimension', app, index, hyperCube);\n }\n const drillIndex = hyperCube.qDimensionInfo[index].qGroupPos;\n return Promise.resolve(dimension.qDef.qFieldDefs[drillIndex]);\n}\n\nfunction getExpressionFromMeasure(measure, app) {\n if (measure.qLibraryId) {\n return getExpressionFromLibraryItem(measure.qLibraryId, 'measure', app);\n }\n return Promise.resolve(measure.qDef.qDef);\n}\n\n// Internal functions\n\nfunction getExpressionFromLibraryItem(id, type, app, index, hyperCube) {\n if (!app) {\n console.warn('No app provided, returning library id');\n return id;\n }\n\n const getFn = type === 'dimension' ? 'getDimension' : 'getMeasure';\n\n return app[getFn](id).then((item) =>\n item.getProperties().then((props) => {\n if (type === 'dimension') {\n return props.qDim.qFieldDefs[hyperCube.qDimensionInfo[index].qGroupPos];\n }\n return props.qMeasure.qDef;\n })\n );\n}\n\n// identifies {{Dim[x]}} {{Mea[x]}} mappings and returns the distinct instances of them\nfunction getKnownMappings(mappings, hyperCubeDef, hyperCube, app) {\n const knownMappings = {};\n let dimensionIndices;\n let measureIndices;\n const dfds = [];\n\n mappings.forEach((mapping) => {\n dimensionIndices = spliceIdentifiedMatches(mapping.match(getMappingRegExp('Dim')));\n dimensionIndices.forEach((index) => {\n dfds.push(\n getExpressionFromDimension(hyperCubeDef.qDimensions[index], app, index, hyperCube).then((expression) => {\n knownMappings[`Dim[${index}]`] = { value: expression, wrap: true };\n })\n );\n });\n\n measureIndices = spliceIdentifiedMatches(mapping.match(getMappingRegExp('Mea')));\n measureIndices.forEach((index) => {\n dfds.push(\n getExpressionFromMeasure(hyperCubeDef.qMeasures[index], app).then((expression) => {\n knownMappings[`Mea[${index}]`] = { value: expression };\n })\n );\n });\n });\n\n let returnPromise;\n if (dfds.length) {\n returnPromise = Promise.all(dfds).then(() => Promise.resolve(knownMappings));\n } else {\n returnPromise = Promise.resolve(knownMappings);\n }\n return returnPromise;\n}\n\nfunction getMappingRegExp(string) {\n return new RegExp(`\\\\{\\\\{${string}\\\\[\\\\d\\\\]\\\\}\\\\}`, 'g');\n}\n\nfunction spliceIdentifiedMatches(matches) {\n if (!matches) {\n return [];\n }\n return matches.map((match) => match.substr(6, 1));\n}\n\nexport default HyperCubeGenerator;\n","export default function isNumeric(v) {\n return !Number.isNaN(parseFloat(v)) && Number.isFinite(+v);\n}\n","export default function isInteger(v) {\n return !Number.isNaN(parseInt(v, 10)) && parseFloat(v, 10) === parseInt(v, 10);\n}\n","import { getValue } from 'qlik-chart-modules';\nimport isInteger from '@qlik/common/extra/is-integer';\nimport isNumeric from '@qlik/common/extra/is-numeric';\nimport BINNING_DEFAULTS from './binning-defaults';\n\n/**\n * Implementation details\n */\n\nfunction getBinMode(layout) {\n return getValue(layout, 'bins.binMode', BINNING_DEFAULTS.BIN_MODE);\n}\n\nfunction getBinSize(layout) {\n return getValue(layout, 'bins.binSize', BINNING_DEFAULTS.BIN_SIZE);\n}\n\nfunction getDerivedBinSize(layout) {\n return getValue(layout, 'qUndoExclude.bins.binSize', BINNING_DEFAULTS.BIN_SIZE);\n}\n\nfunction getDerivedBinOffset(layout) {\n return getValue(layout, 'qUndoExclude.bins.offset', BINNING_DEFAULTS.OFFSET);\n}\n\nfunction getDerivedBinCount(layout) {\n const binCount = getValue(layout, 'qUndoExclude.bins.binCount', BINNING_DEFAULTS.BIN_COUNT);\n\n if (!isNumeric(binCount)) {\n return BINNING_DEFAULTS.BIN_COUNT;\n }\n\n if (binCount < 1) {\n return 1;\n }\n\n // The numbers of bins needs to be an integer, round it with Math.ceil\n if (!isInteger(binCount)) {\n return Math.ceil(binCount);\n }\n\n return binCount;\n}\n\nfunction getBinCount(layout) {\n return getValue(layout, 'bins.binCount', undefined);\n}\n\nfunction getBinOffset(layout) {\n return getValue(layout, 'bins.offset', BINNING_DEFAULTS.OFFSET);\n}\n\nfunction isAutoBin(layout) {\n return getValue(layout, 'bins.auto', BINNING_DEFAULTS.AUTO);\n}\n\nfunction isCountDistinct(layout) {\n return getValue(layout, 'bins.countDistinct', BINNING_DEFAULTS.COUNT_DISTINCT);\n}\n\nfunction isEmpty(v) {\n return v === undefined || v === null || v === '';\n}\n\nconst histogramUtils = {\n getBinSize,\n getDerivedBinSize,\n getDerivedBinOffset,\n getDerivedBinCount,\n getBinCount,\n getBinOffset,\n isAutoBin,\n isCountDistinct,\n getBinMode,\n isEmpty,\n};\n\nexport default histogramUtils;\n","import isInteger from '@qlik/common/extra/is-integer';\nimport isNumeric from '@qlik/common/extra/is-numeric';\n\nconst LOG10 = Math.log(10);\nconst EPSILON = 1e-9;\nconst NICE_NUMBERS1 = [1, 1.5, 2, 3, 4, 5, 6, 10];\nconst NICE_NUMBERS2 = [1, 2, 4, 5, 6, 8, 10];\nconst LOOP_CONTROL_NUMBERS = [2, 4, 5, 10];\n\n/**\n * Implementation details\n */\n\nfunction validateInput(min, max, binCount) {\n if (!isNumeric(min) || !isNumeric(max) || !isNumeric(binCount)) {\n throw Error('binSizeCalculator: One of the inputs is NOT numeric');\n }\n\n if (min > max) {\n throw Error(\"binSizeCalculator: The 'min' parameter is bigger than the 'max' parameter\");\n }\n}\n\nfunction getBinCount(binCount) {\n // The smallest number of bins possible is 1\n if (binCount < 1) {\n return 1;\n }\n\n // The numbers of bins needs to be an integer, round it with Math.ceil\n if (!isInteger(binCount)) {\n return Math.ceil(binCount);\n }\n\n return binCount;\n}\n\nfunction getGoodNumber(value, niceNumbers) {\n if (value === 0) {\n return 0;\n }\n let roundedFraction;\n const magnitude = Math.floor(Math.log(Math.abs(value)) / LOG10);\n const fraction = value / 10 ** magnitude;\n for (let i = 0; i < niceNumbers.length; i++) {\n if (fraction <= niceNumbers[i]) {\n roundedFraction = niceNumbers[i];\n break;\n }\n }\n\n // Fix floating error\n return (\n (magnitude >= 0 ? roundedFraction * 10 ** magnitude : roundedFraction / 10 ** -magnitude) * (value < 0 ? -1 : 1)\n );\n}\n\nfunction calculateNumEmptyBins(min, max, nbrOfBins, binSize, newMin, newMax) {\n return Math.floor(Math.abs(min - newMin) / binSize) + Math.floor(Math.abs(newMax - max) / binSize);\n}\n\nfunction calculateBinSize(min, max, nbrOfBins) {\n let newMin;\n let newMax;\n let range;\n let binSize;\n let niceBinSize;\n let magnitude;\n let f;\n let k;\n let i = -1;\n let delta;\n let n;\n let loop;\n let t;\n let niceNumbers = NICE_NUMBERS1;\n nbrOfBins = Math.max(1, nbrOfBins);\n if (max === min) {\n if (max === 0) {\n binSize = 1;\n if (nbrOfBins === 1) {\n return {\n min,\n max,\n nbrOfBins,\n rawBinSize: range / nbrOfBins,\n offset: -0.5, // new min\n newMax: 0.5,\n binSize: 1,\n numEmptyBins: 0,\n };\n }\n } else if (nbrOfBins === 1) {\n binSize = max + EPSILON;\n niceNumbers = NICE_NUMBERS2;\n } else {\n binSize = Math.abs(max / nbrOfBins);\n }\n } else {\n max += EPSILON;\n range = max - min;\n binSize = range / nbrOfBins;\n }\n do {\n k = 1;\n loop = 0;\n if (i >= 0) {\n delta = 1 / LOOP_CONTROL_NUMBERS[i];\n n = 1;\n niceNumbers = [];\n while (n <= 10) {\n niceNumbers.push(Math.round(n * 1000) / 1000);\n n += delta;\n }\n }\n niceBinSize = binSize;\n do {\n niceBinSize = getGoodNumber(niceBinSize * k, niceNumbers);\n magnitude = Math.floor(Math.log(niceBinSize) / LOG10);\n f = 10 ** magnitude;\n if (max === min) {\n newMax = (Math.ceil(max / niceBinSize) + Math.floor(nbrOfBins / 2)) * niceBinSize;\n } else {\n newMax = Math.ceil(max / niceBinSize) * niceBinSize;\n }\n newMin = newMax - nbrOfBins * niceBinSize;\n let j = 0;\n t = f;\n while ((newMin > min || newMax < max) && j < LOOP_CONTROL_NUMBERS.length) {\n newMin = Math.floor(min / t) * t;\n newMax = newMin + nbrOfBins * niceBinSize;\n t = f / LOOP_CONTROL_NUMBERS[j++];\n }\n\n // Fix floating error\n if (magnitude < 1) {\n f = 10 ** (Math.abs(magnitude) + 1);\n newMax = Math.round(newMax * f) / f;\n newMin = Math.round(newMin * f) / f;\n }\n k = 1.1;\n loop++;\n } while ((newMin > min || newMax < max) && loop < 10); // Bin size should be increased to cover the min-max range\n i++;\n } while (calculateNumEmptyBins(min, max, nbrOfBins, binSize, newMin, newMax) > 0 && i < LOOP_CONTROL_NUMBERS.length);\n return {\n binCount: nbrOfBins,\n offset: newMin, // new min\n binSize: niceBinSize,\n };\n}\n\nfunction preCalculateBinSize(min, max, binCount) {\n // General input validation\n validateInput(min, max, binCount);\n\n // Makes sure binCount is an integer bigger than 0\n binCount = getBinCount(binCount);\n\n return calculateBinSize(min, max, binCount);\n}\n\nconst binSizeCalculator = {\n calculateBinSize: preCalculateBinSize,\n};\n\nexport default binSizeCalculator;\n","import { getValue } from 'qlik-chart-modules';\nimport isNumeric from '@qlik/common/extra/is-numeric';\nimport histogramUtils from '../histogram-utils';\nimport binSizeCalculator from './bin-size-calculator';\n\n/**\n * Implementation details\n */\n\nfunction getMappings(values) {\n const mappings = {};\n\n mappings.BinSize = {\n value: `,${values.binSize}`,\n };\n\n mappings.Label = {\n value: values.binOffset === 0 ? '' : \",'x'\",\n };\n\n mappings.Offset = {\n value: values.binOffset === 0 ? '' : `,${values.binOffset}`,\n };\n\n mappings.Distinct = {\n value: values.distinct ? 'Distinct ' : '',\n };\n\n return mappings;\n}\n\nfunction getBinInfo(layout) {\n const dimInfo = getValue(layout, 'qHyperCube.qDimensionInfo.0', {});\n let qMin = dimInfo.qMin;\n let qMax = dimInfo.qMax;\n\n qMin = isNumeric(qMin) ? qMin : 1;\n qMax = isNumeric(qMax) ? qMax : 1;\n const binCount = histogramUtils.getDerivedBinCount(layout);\n\n return binSizeCalculator.calculateBinSize(qMin, qMax, binCount);\n}\n\nfunction getMappingValues(layout) {\n const auto = histogramUtils.isAutoBin(layout);\n const binMode = histogramUtils.getBinMode(layout);\n let binSize;\n let binOffset;\n let binCount;\n let binInfo;\n const distinct = histogramUtils.isCountDistinct(layout);\n\n if (auto || binMode === 'maxCount') {\n binInfo = getBinInfo(layout);\n\n binSize = binInfo.binSize;\n binOffset = binInfo.offset;\n binCount = binInfo.binCount;\n } else {\n binSize = histogramUtils.getBinSize(layout);\n binOffset = histogramUtils.getBinOffset(layout);\n }\n\n return {\n binSize,\n binOffset,\n binCount,\n distinct,\n };\n}\n\nconst histogramMappings = {\n getMappingValues,\n getMappings,\n};\n\nexport default histogramMappings;\n","import { setValue } from 'qlik-chart-modules';\nimport HyperCubeDefGenerator from '@qlik/common/picasso/hypercube-def-generator/hypercube-def-generator';\nimport ExpressionGenerator from '@qlik/common/picasso/expression-generator/expression-generator';\nimport histogramMappings from './histogram-mappings';\nimport histogramUtils from '../histogram-utils';\n\nasync function generateHyperCubes(layout, properties, environment) {\n const { app, translator } = environment;\n const mappingValues = histogramMappings.getMappingValues(layout);\n const mappings = histogramMappings.getMappings(mappingValues);\n\n const hyperCubeTemplate = {\n dimensions: ['Class(aggr({{Dim[0]}},{{Dim[0]}}){{BinSize}}{{Label}}{{Offset}})'],\n measures: ['Count({{Distinct}}{{Dim[0]}})'],\n };\n\n // Sturges' formula - https://en.wikipedia.org/wiki/Histogram#Number_of_bins_and_width\n const binCountTemplate = '=Ceil(Log10(Count({{Dim[0]}})) / Log10(2)) + 1';\n\n const expressionsPromise = HyperCubeDefGenerator.getAllHyperCubeExpressions(\n properties.qHyperCubeDef,\n layout.qHyperCube,\n app\n );\n const boxCubeDefPromise = HyperCubeDefGenerator.generateHyperCubeDef(\n hyperCubeTemplate,\n properties.qHyperCubeDef,\n layout.qHyperCube,\n app,\n mappings\n );\n\n const expressions = await expressionsPromise;\n const boxCubeDef = await boxCubeDefPromise;\n let binCountExpr;\n\n if (histogramUtils.isAutoBin(layout)) {\n binCountExpr = {\n qValueExpression: {\n qExpr: ExpressionGenerator.generateExpression(binCountTemplate, {\n 'Dim[0]': { value: expressions.dimensions[0], wrap: true },\n }),\n },\n };\n } else if (histogramUtils.getBinMode(layout) === 'maxCount' && histogramUtils.isEmpty(properties.bins.binCount)) {\n // When the user have not provided any binCount we use the derived value which will be the output of the auto algorithm in most cases\n binCountExpr = histogramUtils.getDerivedBinCount(layout);\n } else {\n binCountExpr = properties.bins.binCount;\n }\n\n // Dimension should be sorted numeric ascending\n setValue(boxCubeDef, 'qDimensions.0.qDef.qSortCriterias', [{ qSortByNumeric: 1 }]);\n\n // Store the data labels, used when object is flipped to table\n setValue(boxCubeDef, 'qDimensions.0.qDef.qFieldLabels', [layout.qHyperCube.qDimensionInfo[0].qFallbackTitle]);\n setValue(\n boxCubeDef,\n 'qMeasures.0.qDef.qLabel',\n layout.measureAxis.label || translator.get('Visualization.Histogram.MeasureAxisLabel')\n );\n\n // Store the generated hyperCube on properties\n setValue(properties, 'qUndoExclude.box.qHyperCubeDef', boxCubeDef);\n\n // Store the binSize (which in auto mode will be dynamically calculated)\n setValue(properties, 'qUndoExclude.bins.binSize', mappingValues.binSize);\n setValue(properties, 'qUndoExclude.bins.offset', mappingValues.binOffset);\n setValue(properties, 'qUndoExclude.bins.binCount', binCountExpr);\n}\n\nconst cubesGenerator = {\n generateHyperCubes,\n};\n\nexport default cubesGenerator;\n","/**\n * Checks whether a collision has occurred for range selection\n * @param e - event, in this case a mouse event\n * @param targets - the target points that the selections are hitting\n * @param selectionGesture - The type of selection gesture, for example area range select\n * @returns {boolean} - True, if a collision has occurred, otherwise false\n */\nfunction isOnComponentForRange(e, targets, selectionGesture) {\n return (\n !!e &&\n !!selectionGesture.chart\n .componentsFromPoint({\n x: e.center.x,\n y: e.center.y,\n })\n .filter((c) => targets.indexOf(c.settings.key) !== -1)[0]\n );\n}\n\n/**\n * Checks whether a collision has occurred for lasso selection\n * @param e - event, in this case a mouse event\n * @param gesturesParams - parameters for lasso selection\n * @param lassoGesture - the lasso gesture instance\n * @returns {boolean} - True, if a collision has occurred, otherwise false\n */\nfunction isOnComponentForLasso(e, gesturesParams, lassoGesture) {\n return (\n e &&\n lassoGesture.chart\n .componentsFromPoint({\n x: e.center.x,\n y: e.center.y,\n })\n .filter((c) => c.settings.key === gesturesParams.keys.componentKey)[0]\n );\n}\n\nfunction isOnComponentForNavBtn(e, legendBrushKey, navBtnGesture) {\n const components = navBtnGesture.chart.componentsFromPoint(e.center);\n return components.some((c) => c.settings.key === legendBrushKey);\n}\n\nexport default {\n isOnComponentForRange,\n isOnComponentForLasso,\n isOnComponentForNavBtn,\n};\n","import Hammer from 'hammerjs';\nimport onComponentChecker from './on-component-checker';\n\nfunction getLassoState(handlers) {\n return handlers.selectionHandler.lassoState() && !handlers.selectionHandler.allFieldsLocked();\n}\n\n/**\n * Handles lasso events for picasso charts using HammerJS. When activating lasso selection enable function is\n * triggered first. lassoStart is triggered on all areas specified by options.direction key. Lasso is the gesture\n * that will be active by default.\n */\nfunction callLassoGesture(state, gesturesFns, gesturesParams) {\n return {\n type: 'Pan',\n options: {\n direction: Hammer.DIRECTION_ALL,\n threshold: 1,\n enable(manager, e) {\n if (state.lassoing) {\n return gesturesFns.isSelectionEnabled();\n }\n const hitComp = onComponentChecker.isOnComponentForLasso(e, gesturesParams, this);\n return (\n gesturesFns.isSelectionEnabled() && e && (getLassoState(gesturesParams.handlers) || state.lassoing) && hitComp\n );\n },\n event: 'lasso',\n },\n recognizeWith: gesturesParams.handlers.scrollHandler ? 'drag' : null,\n events: {\n lassostart(e) {\n const hitComp = onComponentChecker.isOnComponentForLasso(e, gesturesParams, this);\n if (!hitComp) {\n return;\n }\n gesturesFns.switchTo('lasso', this.chart, e);\n state.lassoing = true;\n gesturesParams.handlers.selectionHandler.pauseEngineCalls(gesturesParams.keys.lassoBrushKey);\n e.clientX = e.pointers[0].clientX;\n e.clientY = e.pointers[0].clientY;\n gesturesFns.doEmit(this.chart, 'lasso', 'lassoStart', e);\n },\n lassomove(e) {\n if (!state.lassoing) {\n return;\n }\n e.clientX = e.pointers[0].clientX;\n e.clientY = e.pointers[0].clientY;\n gesturesFns.doEmit(this.chart, 'lasso', 'lassoMove', e);\n },\n lassoend(e) {\n if (!state.lassoing) {\n return;\n }\n\n e.clientX = e.pointers[0].clientX;\n e.clientY = e.pointers[0].clientY;\n gesturesFns.doEmit(this.chart, 'lasso', 'lassoEnd', e);\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.lassoBrushKey, true);\n state.lassoing = false;\n },\n lassocancel(e) {\n state.lassoing = false;\n gesturesFns.doEmit(this.chart, 'lasso', 'lassoCancel', e);\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.lassoBrushKey, false);\n },\n },\n };\n}\n\nexport default {\n callLassoGesture,\n};\n","import Hammer from 'hammerjs';\nimport onComponentChecker from './on-component-checker';\n\n/**\n * Handles measure range selection events for picasso charts using HammerJS. When activating measure range selection enable function is\n * triggered first. measurerangestart is triggered on all areas specified by options.direction key. Only after measurerangestart\n * is triggered, then the other events might be triggered as well. The different event\n * names must be appended as suffixes for options.event. In this case options.event is called measurerange, then our\n * events must be named measurerangestart, measurerangemove, measurerangeend, measurerangecancel.\n */\nfunction callMeasureRangeGesture(state, gesturesFns, gesturesParams, measureAxis) {\n const activeRangeBrush = gesturesParams.keys.dimRangeBrushKey ? 'majorrange' : 'arearange';\n\n return {\n type: 'Pan',\n options: {\n direction: gesturesParams.isHorizontal ? Hammer.DIRECTION_HORIZONTAL : Hammer.DIRECTION_VERTICAL,\n event: 'measurerange',\n enable(manager, e) {\n if (!gesturesParams.rangeSelStatus.isOpenMea) {\n return false;\n }\n\n if (state.measureSelecting) {\n return gesturesFns.isSelectionEnabled();\n }\n const targets =\n gesturesParams.active.gesture === 'measurerange'\n ? [measureAxis, gesturesParams.keys.componentKey]\n : [measureAxis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n\n state.measureSelecting = gesturesFns.isSelectionEnabled() && !!e && !!hitComp;\n return state.measureSelecting && !!gesturesParams.keys.measureRangeBrushKey;\n },\n },\n requireFailure: `lasso ${activeRangeBrush}`,\n recognizeWith: gesturesParams.handlers.scrollHandler ? 'drag' : null,\n events: {\n measurerangestart(e) {\n const targets =\n gesturesParams.active.gesture === 'measurerange'\n ? [measureAxis, gesturesParams.keys.componentKey]\n : [measureAxis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n if (!hitComp) {\n return;\n }\n\n state.measureSelecting = true;\n gesturesFns.switchTo('measurerange', this.chart, e);\n gesturesFns.doEmit(this.chart, 'rangeMeasure', 'rangeStart', e);\n gesturesParams.handlers.selectionHandler.pauseEngineCalls(gesturesParams.keys.measureRangeBrushKey);\n },\n measurerangemove(e) {\n if (!state.measureSelecting) {\n return;\n }\n gesturesFns.doEmit(this.chart, 'rangeMeasure', 'rangeMove', e);\n },\n measurerangeend(e) {\n if (!state.measureSelecting) {\n return;\n }\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.measureRangeBrushKey, true);\n gesturesFns.doEmit(this.chart, 'rangeMeasure', 'rangeEnd', e);\n state.measureSelecting = false;\n },\n measurerangecancel() {\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.measureRangeBrushKey, false);\n state.measureSelecting = false;\n },\n },\n };\n}\n\nexport default {\n callMeasureRangeGesture,\n};\n","import Hammer from 'hammerjs';\nimport onComponentChecker from './on-component-checker';\n\nfunction getAxisOrientation(axis, orientation) {\n let dir;\n if (axis === 'x-axis') {\n dir = orientation === 'horizontal' ? Hammer.DIRECTION_VERTICAL : Hammer.DIRECTION_HORIZONTAL;\n } else {\n dir = orientation === 'horizontal' ? Hammer.DIRECTION_HORIZONTAL : Hammer.DIRECTION_VERTICAL;\n }\n return dir;\n}\n\n/**\n * Handles area range selection events for picasso charts using HammerJS. When activating area range selection enable function is\n * triggered first. arearangestart is triggered on all areas specified by options.direction key. Only after arearangestart\n * is triggered, then the other events might be triggered as well. The different event\n * names must be appended as suffixes for options.event. In this case options.event is called arearange, then our\n * events must be named arearangestart, arearangemove, arearangeend, arearangecancel.\n */\nfunction callAreaRangeGesture(state, gesturesFns, gesturesParams, axis) {\n const activeRangeBrush = gesturesParams.keys.dimRangeBrushKey ? 'majorrange' : 'measurerange';\n\n return {\n // Area range select gesture\n type: 'Pan',\n options: {\n direction: getAxisOrientation(axis, gesturesParams.isHorizontal),\n event: 'arearange',\n enable(manager, e) {\n if (!gesturesParams.rangeSelStatus.isOpenDim) {\n return false;\n }\n\n if (state.minoring) {\n return gesturesFns.isSelectionEnabled();\n }\n const targets =\n gesturesParams.active.gesture === 'arearange' ? [axis, gesturesParams.keys.componentKey] : [axis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n\n state.minoring = gesturesFns.isSelectionEnabled() && !!e && !!hitComp;\n return state.minoring;\n },\n },\n requireFailure: `lasso ${activeRangeBrush}`,\n recognizeWith: gesturesParams.handlers.scrollHandler ? 'drag' : null,\n events: {\n arearangestart(e) {\n const targets =\n gesturesParams.active.gesture === 'arearange' ? [axis, gesturesParams.keys.componentKey] : [axis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n if (!hitComp) {\n return;\n }\n\n state.minoring = true;\n gesturesFns.switchTo('arearange', this.chart, e);\n gesturesFns.doEmit(this.chart, 'rangeMinor', 'areaStart', e);\n gesturesParams.handlers.selectionHandler.pauseEngineCalls(gesturesParams.keys.areaBrushKey);\n },\n arearangemove(e) {\n if (!state.minoring) {\n return;\n }\n // Behaves likes lasso, which adds all data points as soon as we hit the points, we only want to highlight the values within the range\n this.chart.brush(gesturesParams.keys.areaBrushKey).clear();\n gesturesFns.doEmit(this.chart, 'rangeMinor', 'areaMove', e);\n },\n arearangeend(e) {\n if (!state.minoring) {\n return;\n }\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.areaBrushKey, true);\n gesturesFns.doEmit(this.chart, 'rangeMinor', 'areaEnd', e);\n state.minoring = false;\n },\n arearangecancel() {\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.areaBrushKey, false);\n state.minoring = false;\n },\n },\n };\n}\n\nexport default {\n callAreaRangeGesture,\n};\n","import Hammer from 'hammerjs';\nimport onComponentChecker from './on-component-checker';\n\n/**\n * Handles dimension range selection events for picasso charts using HammerJS. When activating dimension range selection enable function is\n * triggered first. majorrangestart is triggered on all areas specified by options.direction key. Only after majorrangestart\n * is triggered, then the other events might be triggered as well. The different event\n * names must be appended as suffixes for options.event. In this case options.event is called majorrange, then our\n * events must be named majorrangestart, majorrangemove, majorrangeend, majorrangecancel.\n */\nfunction callDimensionRangeGesture(state, gesturesFns, gesturesParams, dimAxis) {\n const activeRangeBrush = gesturesParams.keys.measureRangeBrushKey ? 'measurerange' : 'arearange';\n return {\n type: 'Pan',\n options: {\n direction: gesturesParams.isHorizontal ? Hammer.DIRECTION_VERTICAL : Hammer.DIRECTION_HORIZONTAL,\n event: 'majorrange',\n enable(manager, e) {\n if (!gesturesParams.rangeSelStatus.isOpenDim) {\n return false;\n }\n if (state.majoring) {\n return gesturesFns.isSelectionEnabled();\n }\n const targets =\n gesturesParams.active.gesture === 'majorrange' ? [dimAxis, gesturesParams.keys.componentKey] : [dimAxis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n\n state.majoring = gesturesFns.isSelectionEnabled() && !!e && !!hitComp;\n return state.majoring && !!gesturesParams.keys.dimRangeBrushKey;\n },\n },\n requireFailure: `lasso ${activeRangeBrush}`,\n recognizeWith: gesturesParams.handlers.scrollHandler ? 'drag' : null,\n events: {\n majorrangestart(e) {\n const targets =\n gesturesParams.active.gesture === 'majorrange' ? [dimAxis, gesturesParams.keys.componentKey] : [dimAxis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n if (!hitComp) {\n return;\n }\n\n state.majoring = true;\n gesturesFns.switchTo('majorrange', this.chart, e);\n gesturesFns.doEmit(this.chart, 'rangeDim', 'rangeStart', e);\n gesturesParams.handlers.selectionHandler.pauseEngineCalls(gesturesParams.keys.dimRangeBrushKey);\n },\n majorrangemove(e) {\n if (!state.majoring) {\n return;\n }\n gesturesFns.doEmit(this.chart, 'rangeDim', 'rangeMove', e);\n },\n majorrangeend(e) {\n if (!state.majoring) {\n return;\n }\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.dimRangeBrushKey, true);\n gesturesFns.doEmit(this.chart, 'rangeDim', 'rangeEnd', e);\n state.majoring = false;\n },\n majorrangecancel() {\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.dimRangeBrushKey, false);\n state.majoring = false;\n },\n },\n };\n}\n\nexport default {\n callDimensionRangeGesture,\n};\n","import Hammer from 'hammerjs';\n\n/**\n * Handles dragging for picasso charts using HammerJS. When activating dragging the enable function is\n * triggered first. dragstart is triggered on all areas specified by options.direction key. The different event\n * names must be appended as suffixes for options.event. In this case options.event is called drag, then our\n * events must be named dragstart, dragmove, dragend, dragcancel.\n */\nfunction callDragGesture(state, gesturesFns, gesturesParams, hasSelections, isRtl) {\n let dragPoint = {};\n return {\n type: 'Pan',\n options: {\n direction: gesturesParams.isHorizontal ? Hammer.DIRECTION_VERTICAL : Hammer.DIRECTION_HORIZONTAL,\n event: 'drag',\n enable(manager, e) {\n if (state.dragging) {\n return gesturesFns.isNavigationEnabled();\n }\n\n state.dragging =\n gesturesFns.isNavigationEnabled() &&\n !!e &&\n !!this.chart\n .componentsFromPoint({ x: e.center.x, y: e.center.y })\n .filter((c) => c.settings.key === gesturesParams.keys.componentKey)[0];\n return state.dragging;\n },\n },\n requireFailure: hasSelections ? `lasso ${gesturesFns.getBrushConfig()}` : '',\n events: {\n dragstart(e) {\n dragPoint = { x: e.deltaX, y: e.deltaY };\n let change =\n -(gesturesParams.isHorizontal ? e.deltaY : e.deltaX) / gesturesParams.handlers.scrollHandler.getItemSize();\n if (!gesturesParams.isHorizontal && isRtl) {\n change = -change;\n }\n gesturesParams.handlers.scrollHandler.getScrollApi().move(change);\n },\n dragmove(e) {\n if (!state.dragging) {\n return;\n }\n let change =\n -(gesturesParams.isHorizontal ? e.deltaY - dragPoint.y : e.deltaX - dragPoint.x) /\n gesturesParams.handlers.scrollHandler.getItemSize();\n if (!gesturesParams.isHorizontal && isRtl) {\n change = -change;\n }\n gesturesParams.handlers.scrollHandler.getScrollApi().move(change);\n dragPoint = { x: e.deltaX, y: e.deltaY };\n },\n dragend() {\n if (!state.dragging) {\n return;\n }\n state.dragging = false;\n },\n dragcancel() {\n state.dragging = false;\n },\n },\n };\n}\n\nexport default {\n callDragGesture,\n};\n","import onComponentChecker from './on-component-checker';\n\n/**\n * Handles navigational button events for picasso charts using HammerJS. When pressing on a navigational button,\n * the enable function is triggered to check if the navigational button should be enabled or not.\n * For example, in edit mode it should be disabled.\n * @param isEnabledFn - Function that returns a boolean. In this case return false if in edit mode, true otherwise\n * @param legendBrushKey - String defining the legend brush key\n * @returns An object for reacting to tap events according to HammerJS API\n */\nfunction callNavBtnGesture(isEnabledFn, legendBrushKey) {\n return {\n type: 'Tap',\n options: {\n event: 'navBtnTap',\n enable(manager, e) {\n if (!e || !isEnabledFn()) {\n return false;\n }\n\n return onComponentChecker.isOnComponentForNavBtn(e, legendBrushKey, this);\n },\n },\n events: {\n navBtnTap(e) {\n // Invokes paging interaction on legend\n this.chart.componentsFromPoint(e.center).forEach((c) => {\n const btn = e.target;\n const attr = btn ? btn.getAttribute('data-action') : '';\n if (attr) {\n return c.emit(attr);\n }\n return undefined;\n });\n },\n },\n };\n}\n\nexport default {\n callNavBtnGesture,\n};\n","import lassoGesture from './gestures/lasso-gesture';\nimport measureRangeGesture from './gestures/measure-range-gesture';\nimport areaRangeGesture from './gestures/area-range-gesture';\nimport dimensionRangeGesture from './gestures/dimension-range-gesture';\nimport dragGesture from './gestures/drag-gesture';\nimport navBtnGesture from './gestures/navigational-button-gesture';\n\n/**\n * Creates Picasso components for interaction component that are dependent on eatchother\n */\n\nfunction DependentInteractions(handlers, orientation, isRtl, keys, rangeSelStatus) {\n const ret = {};\n\n orientation = orientation || 'vertical';\n\n const lassoBrushKey = keys.lassoBrushKey || 'select';\n const dimRangeBrushKey = keys.dimRangeBrushKey || null;\n const measureRangeBrushKey = keys.measureRangeBrushKey || null;\n const areaBrushKey = keys.areaBrushKey || null;\n const legendBrushKey = keys.legendBrushKey || null;\n\n const hasSelections = !!handlers.selectionHandler && handlers.selectionHandler.isOn();\n\n const state = {\n dragging: false,\n lassoing: false,\n majoring: false,\n minoring: false,\n measureSelecting: false,\n };\n\n const active = {\n gesture: '',\n type: '',\n };\n\n const isHorizontal = orientation === 'horizontal';\n\n const dimAxis = isHorizontal ? 'y-axis' : 'x-axis';\n const measureAxis = isHorizontal ? 'x-axis' : 'y-axis';\n\n function switchTo(gesture, chart, e) {\n if (active.gesture === gesture) {\n return;\n }\n let clearKey = lassoBrushKey;\n const activeChart = chart || active.chart;\n\n switch (active.gesture) {\n case 'majorrange':\n doEmit(activeChart, 'rangeDim', 'rangeClear', e);\n clearKey = dimRangeBrushKey;\n break;\n case 'measurerange':\n doEmit(activeChart, 'rangeMeasure', 'rangeClear', e);\n clearKey = measureRangeBrushKey;\n break;\n case 'arearange':\n doEmit(activeChart, 'rangeMinor', 'areaClear', e);\n clearKey = areaBrushKey;\n break;\n default:\n break;\n }\n\n active.gesture = gesture;\n const newType = gesture === 'range' ? 'range' : 'item';\n\n if (active.type && active.type !== newType) {\n activeChart.brush(clearKey).clear();\n }\n\n active.chart = chart;\n active.type = newType;\n }\n\n // Just added here to allow easy disabling of things while developing\n function doEmit(chart, comp, cont, e) {\n if (chart) {\n const inst = chart.component(comp);\n if (inst) {\n inst.emit(cont, e);\n }\n }\n }\n\n function getBrushConfig() {\n if (!dimRangeBrushKey) {\n return 'measurerange arearange';\n }\n if (!measureRangeBrushKey) {\n return 'majorrange arearange';\n }\n return 'majorrange measurerange';\n }\n\n let gestures = [];\n\n const gesturesFns = {\n isSelectionEnabled: () => handlers.selectionHandler && handlers.selectionHandler.isOn(),\n isNavigationEnabled: () => handlers.scrollHandler && handlers.scrollHandler.isOn(),\n doEmit,\n switchTo,\n getBrushConfig,\n };\n\n const gesturesParams = {\n handlers,\n keys,\n isHorizontal,\n active,\n rangeSelStatus,\n };\n\n if (hasSelections) {\n gestures = [\n {\n type: 'Tap',\n options: {\n event: 'rangeClearTap',\n },\n events: {\n rangeClearTap(e) {\n switchTo('none', this.chart, e);\n\n state.majoring = false;\n state.measureSelecting = false;\n state.minoring = false;\n },\n },\n },\n ];\n\n // Ordering matters here because the tap event, because the above gesture does not return anything\n // and we want don't want to call the navigational button enable function for all tap events\n gestures.unshift(navBtnGesture.callNavBtnGesture(gesturesFns.isNavigationEnabled, legendBrushKey));\n\n gestures.push(lassoGesture.callLassoGesture(state, gesturesFns, gesturesParams));\n\n // Only two of the axis range selection can exist at the same time\n if (!dimRangeBrushKey) {\n gestures.push(measureRangeGesture.callMeasureRangeGesture(state, gesturesFns, gesturesParams, measureAxis));\n // Register component to selections handler so it is cleared properly\n handlers.selectionHandler.addComponent(measureRangeBrushKey, { id: 'rangeMeasure', clear: 'rangeClear' });\n\n gestures.push(areaRangeGesture.callAreaRangeGesture(state, gesturesFns, gesturesParams, dimAxis));\n handlers.selectionHandler.addComponent(areaBrushKey, { id: 'rangeMinor', clear: 'areaClear' });\n } else if (!measureRangeBrushKey) {\n gestures.push(dimensionRangeGesture.callDimensionRangeGesture(state, gesturesFns, gesturesParams, dimAxis));\n handlers.selectionHandler.addComponent(dimRangeBrushKey, { id: 'rangeDim', clear: 'rangeClear' });\n\n gestures.push(areaRangeGesture.callAreaRangeGesture(state, gesturesFns, gesturesParams, measureAxis));\n handlers.selectionHandler.addComponent(areaBrushKey, { id: 'rangeMinor', clear: 'areaClear' });\n } else {\n gestures.push(dimensionRangeGesture.callDimensionRangeGesture(state, gesturesFns, gesturesParams, dimAxis));\n handlers.selectionHandler.addComponent(dimRangeBrushKey, { id: 'rangeDim', clear: 'rangeClear' });\n\n gestures.push(measureRangeGesture.callMeasureRangeGesture(state, gesturesFns, gesturesParams, measureAxis));\n handlers.selectionHandler.addComponent(measureRangeBrushKey, { id: 'rangeMeasure', clear: 'rangeClear' });\n }\n }\n\n if (handlers.scrollHandler) {\n gestures.push(dragGesture.callDragGesture(state, gesturesFns, gesturesParams, hasSelections, isRtl));\n\n // On scroll we need to switch of the major ranging, so that pan will work\n handlers.scrollHandler.getScrollApi().on('update', onScrollUpdate);\n }\n\n function onScrollUpdate() {\n switchTo('none');\n state.majoring = false;\n state.measureSelecting = false;\n state.minoring = false;\n }\n\n ret.gestures = gestures;\n ret.destroy = function () {\n if (handlers.scrollHandler) {\n handlers.scrollHandler.getScrollApi().removeListener('update', onScrollUpdate);\n }\n };\n\n return ret;\n}\n\nexport default {\n create: DependentInteractions,\n};\n","const ChartStyleComponent = (fontResolver, theme, chartId) => {\n const propertyDefs = {};\n propertyDefs.getOptions = (key, ref) => {\n const getFontFamilyComponent = () => ({\n ref: `${ref}.fontFamily`,\n component: 'dropdown',\n options: () => fontResolver.getOptions(`${ref}.fontFamily`),\n defaultValue: () => fontResolver.getDefaultValue(`${ref}.fontFamily`),\n });\n\n const getFontSizeComponent = () => ({\n ref: `${ref}.fontSize`,\n component: 'dropdown',\n width: true,\n options: () => fontResolver.getOptions(`${ref}.fontSize`),\n defaultValue: () => fontResolver.getDefaultValue(`${ref}.fontSize`),\n });\n\n const getColorComponent = (theme, chartId) => ({\n ref: `${ref}.fontColor`,\n component: 'color-picker',\n width: false,\n defaultValue: () => {\n const color = theme.getStyle(chartId, `${ref}.color`, 'color');\n const palette = theme.getDataColorPickerPalettes()[0].colors;\n const index = palette.indexOf(color);\n return { color, index };\n },\n });\n\n const getFontWrapperComponent = (theme, chartId) => ({\n fontWrapper: {\n component: 'inline-wrapper',\n items: {\n fontSize: {\n ...getFontSizeComponent(),\n },\n fontColor: {\n ...getColorComponent(theme, chartId),\n },\n },\n },\n });\n return {\n labelSection: {\n component: 'items',\n ref: 'components',\n key,\n items: {\n fontFamily: {\n ...getFontFamilyComponent(),\n },\n ...getFontWrapperComponent(theme, chartId),\n },\n },\n };\n };\n return propertyDefs;\n};\n\nexport const getChartFontResolver = (theme, translator, chartId, createFontResolver) =>\n createFontResolver({\n theme,\n translator,\n config: {\n id: chartId,\n paths: ['axis.title', 'axis.label.name', 'label.value'],\n },\n });\n\nconst overrides = (key, layout) => (layout.components || []).find((c) => c.key === key);\n\nexport const getAxisTitleStyle = (chartId, theme, layout, flags) => {\n const axis = flags.isEnabled('CLIENT_IM_3364') ? overrides('axis', layout)?.axis : {};\n return {\n text: {\n fontFamily: axis?.title?.fontFamily || theme.getStyle(chartId, 'axis.title', 'fontFamily'),\n fontSize: axis?.title?.fontSize || theme.getStyle(chartId, 'axis.title', 'fontSize'),\n fill: axis?.title?.fontColor?.color || theme.getStyle(chartId, 'axis.title', 'color'),\n },\n };\n};\nexport const getAxisLabelStyle = (chartId, theme, layout, flags) => {\n const axis = flags.isEnabled('CLIENT_IM_3364') ? overrides('axis', layout)?.axis : {};\n return {\n labels: {\n fontFamily: axis?.label?.name?.fontFamily || theme.getStyle(chartId, 'axis.label.name', 'fontFamily'),\n fontSize: axis?.label?.name?.fontSize || theme.getStyle(chartId, 'axis.label.name', 'fontSize'),\n fill: axis?.label?.name?.fontColor?.color || theme.getStyle(chartId, 'axis.label.name', 'color'),\n },\n };\n};\n\nexport const getValueLabelStyle = (chartId, theme, layout, flags) => {\n const value = flags.isEnabled('CLIENT_IM_3364') ? overrides('value', layout)?.label : {};\n const fontFamily = value?.value?.fontFamily || theme.getStyle(chartId, 'label.value.name', 'fontFamily');\n let fontSize = value?.value?.fontSize || theme.getStyle(chartId, 'label.value.size', 'fontSize');\n fontSize = parseFloat(fontSize);\n const fill = value?.value?.fontColor?.color || theme.getStyle(chartId, 'label.value.color', 'color');\n return {\n fontFamily,\n fontSize,\n fill,\n };\n};\n\nexport 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 chartStyleUtils from '@qlik/common/extra/chart-style-utils';\nimport { getValueLabelStyle } from '@qlik/common/extra/chart-style-component';\n\n//\n// Implementation details\n//\n\nfunction createLabelSettings(layout, theme, chartId, flags) {\n const valueLabelSettings = getValueLabelStyle(chartId, theme, layout, flags);\n const boxFillColor = valueLabelSettings.fill || theme.getColorPickerColor(layout.color.bar.paletteColor);\n\n return {\n settings: {\n sources: [\n {\n strategy: {\n settings: {\n ...valueLabelSettings,\n labels: [\n {\n placements: [\n { fill: boxFillColor },\n {\n fill: flags.isEnabled('CLIENT_IM_3364') ? boxFillColor : chartStyleUtils.getInverse(boxFillColor),\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 } 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\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, theme, 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),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 } = 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);\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 useModel,\n usePromise,\n useRenderState,\n useSelections,\n useState,\n useStaleLayout,\n} from '@nebula.js/stardust';\nimport $ from 'jquery';\nimport locale from '@qlik/common/locale';\nimport picassoSetup from '@qlik/common/picasso/picasso-setup';\nimport useLasso from '@qlik/common/nebula/use-lasso';\nimport useResize from '@qlik/common/nebula/resize';\nimport useEnvironment from '@qlik/common/nebula/use-environment';\nimport setupSnapshot from '@qlik/common/nebula/snapshot';\n\nimport properties from './object-properties';\nimport data from './histogram-data';\nimport ChartView from './histogram-view';\nimport BackednAPi from './backend-api';\nimport ext from './ext';\n\nexport default function supernova(env) {\n locale(env.translator);\n const picasso = picassoSetup();\n const dataDefinition = data(env);\n\n return {\n qae: {\n properties,\n data: {\n targets: [dataDefinition],\n },\n },\n ext: ext(env),\n component() {\n const constraints = useConstraints();\n const element = useElement();\n const environment = useEnvironment();\n const lasso = useLasso();\n const model = useModel();\n const selections = useSelections();\n const layout = useStaleLayout();\n const renderState = useRenderState();\n\n const [instance, setInstance] = useState();\n\n useEffect(() => {\n const $element = $(element);\n const backendApi = new BackednAPi(model);\n const selectionsApi = selections;\n const view = new ChartView({\n $element,\n backendApi,\n environment,\n 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 picassojs from 'picasso.js';\nimport PicassoQ from 'picasso-plugin-q';\nimport PicassoHammer from 'picasso-plugin-hammer';\nimport Hammer from 'hammerjs';\nimport eventArea from './plugins/event-area';\nimport disclaimer from './disclaimer/disclaimer-component.jsx';\n\nexport default function setup() {\n const picasso = picassojs();\n // default to use canvas renderer\n picasso.renderer.prio(['canvas']);\n\n // TODO: investigate picasso warnings\n // if (DebugFlags.DEVELOPER) {\n // picasso.logger.level(picassojs.logger.LOG_LEVEL.WARN);\n // }\n\n picasso.use(PicassoQ);\n picasso.use(PicassoHammer(Hammer));\n picasso.use(eventArea);\n picasso.component('disclaimer', disclaimer);\n return picasso;\n}\n","import { useApp, useAppLayout, useTranslator, useOptions, useMemo, useTheme, useDeviceType } from '@nebula.js/stardust';\n\nexport default function useEnvironment() {\n const app = useApp();\n const appLayout = useAppLayout();\n const deviceType = useDeviceType();\n const options = useOptions();\n const theme = useTheme();\n const translator = useTranslator();\n\n const environment = useMemo(\n () => ({\n app,\n appLayout,\n deviceType,\n options,\n theme,\n translator,\n }),\n [app, appLayout, options.direction, options.freeResize, translator.language(), theme.name(), deviceType]\n );\n\n return environment;\n}\n","import { useAction, useConstraints, useEffect, useLayout, useState } from '@nebula.js/stardust';\nimport lassoIcon from './lasso-icon';\n\nexport default function useSelect() {\n const constraints = useConstraints();\n const [enabled, setEnabled] = useState(false);\n const [active, setActive] = useState(false);\n const isInSelections = !!useLayout().qSelectionInfo.qInSelections;\n const [lasso] = useState(() => ({\n toggle() {\n setActive((a) => !a);\n },\n }));\n\n useEffect(() => {\n if (!constraints) {\n return;\n }\n\n setEnabled(!constraints.select && !constraints.active);\n }, [constraints]);\n\n useAction(\n () => ({\n key: 'lasso',\n label: 'Lasso',\n icon: lassoIcon,\n hidden: !enabled || !isInSelections,\n active,\n action() {\n setActive((a) => !a);\n },\n }),\n [isInSelections, active, enabled]\n );\n\n lasso.enabled = () => enabled;\n lasso.active = () => active;\n return lasso;\n}\n","import { useConstraints, useOptions, usePromise, useRect } from '@nebula.js/stardust';\n\nexport default function useResize(chartInstance) {\n const rect = useRect();\n const options = useOptions();\n const constraints = useConstraints();\n\n const [, error] = usePromise(async () => {\n if (!chartInstance) {\n return;\n }\n chartInstance.updateConstraints(constraints);\n chartInstance.options = options;\n await chartInstance.resize();\n }, [rect.width, rect.height]);\n\n if (error) {\n throw error;\n }\n}\n"],"names":["init","Picasso","component","mounted","element","classList","add","style","pointerEvents","zIndex","render","disclaimer","renderer","disableTriggers","preferredSize","h","settings","label","rtl","layout","dock","this","dir","rect","display","justifyContent","alignItems","color","fontStyle","fontSize","width","height","transform","transformOrigin","textAlign","getStyle","modifiedLabel","spanStyle","overflow","whiteSpace","textOverflow","ref","alignToRef","title","lassoIcon","shapes","type","attrs","d","BINNING_DEFAULTS","AUTO","BIN_COUNT","BIN_SIZE","LABEL","OFFSET","COUNT_DISTINCT","BIN_MODE","Object","freeze","properties","version","qHyperCubeDef","qDimensions","qMeasures","qMode","qAlwaysFullyExpanded","qSuppressZero","qSuppressMissing","bins","auto","binCount","binSize","offset","countDistinct","binMode","bar","paletteColor","index","dataPoint","showLabels","dimensionAxis","show","measureAxis","autoMinMax","max","min","minMax","spacing","gridlines","refLine","refLines","sorting","autoSort","showTitles","subtitle","footnote","data","env","translator","path","dimensions","description","get","measures","c","e","Array","isArray","f","Symbol","iterator","from","t","n","prototype","toString","call","slice","constructor","name","test","s","TypeError","length","r","C","D","create","I","O","E","A","N","L","T","RegExp","P","j","F","R","H","z","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","V","rgb","formatHex","_","formatRgb","B","trim","toLowerCase","exec","parseInt","$","G","Y","J","hasOwnProperty","NaN","U","g","b","opacity","K","arguments","W","Z","X","isNaN","Math","round","ee","Q","l","o","i","a","u","te","ne","oe","Le","Te","Pe","copy","assign","displayable","hex","formatHsl","brighter","pow","darker","re","gamma","je","Fe","Re","He","ze","Ve","_e","Be","$e","Ye","Ue","Ke","Ge","We","Xe","Ze","et","Je","at","Qe","tt","it","nt","rt","ot","ut","lt","ct","st","ft","formatHex8","clamp","dt","PI","pt","ht","vt","mt","yt","gt","St","Ct","qt","bt","xt","wt","kt","atan2","sqrt","cos","sin","Ut","split","Kt","Number","un","cn","enumerable","configurable","writable","defineProperty","key","sn","fn","value","Tn","children","Pn","Hn","jn","pop","push","parent","depth","eachBefore","Rn","Fn","count","eachAfter","each","reverse","sum","sort","ancestors","splice","descendants","leaves","links","source","target","cr","sr","fr","exports","p","search","substring","v","join","m","y","x","charAt","match","toFixed","lastIndexOf","indexOf","dr","replace","pr","hr","vr","mr","yr","gr","br","xr","wr","qr","kr","toUpperCase","Sr","Cr","pattern","abbreviate","concat","substr","prefix","postfix","maxPrecision","percentage","numericPattern","numericRegex","groupTemp","decTemp","temp","localeInfo","thousandDelimiter","decimalDelimiter","patternSeparator","abbreviations","qNumericalAbbreviation","forEach","prepare","subtype","formatValue","_prepared","positive","isFunctional","negative","zero","floor","String","toExponential","Mr","keys","map","abs","w","q","toPrecision","ceil","log","Er","Tr","Pr","jr","Fr","Rr","Hr","qCalendarStrings","qLongDayNames","qDayNames","qLongMonthNames","qMonthNames","locale_days","locale_days_abbr","locale_months","locale_months_abbr","qTimeFmt","qDateFmt","qTimestampFmt","Date","getUTCHours","getUTCDay","year","getUTCFullYear","month","getUTCMonth","day","date","getUTCDate","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","UTC","getTime","getDay","zr","YY","YYY","def","M","MM","MMM","WW","WWW","ma","ya","groupHeader","disabled","ba","theme","id","getDefaultValue","getOptions","defaultValue","apply","Set","filter","Boolean","metaText","ga","xa","wa","qa","ka","fontFamily","Ma","config","paths","Error","fnTest","Class","extend","className","proto","_super","tmp","ret","ctor","Function","idGen","getChar","charCode","val","charCodeAt","fromCharCode","base62","chr","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","DimensionMeasureChart","chartBuilder","opts","measureAxisProperties","dimensionAxisProperties","chartOrientation","orientation","CONSTANTS","isChartHorizontal","measureDirection","dimensionDirection","includeMeasureAxisComponent","includes","includeMeasureAxisTitleComponent","measureTitleText","includeDimensionAxisComponent","includeDimensionAxis","includeDimensionAxisTitleComponent","dimensionTitleText","includeGridlines","includeRefLines","some","interactionActions","measureAxisSettings","scale","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","enable","events","tap","emit","panstart","pan","panend","pancancel","getScrollActions","isNavigationEnabledFn","addScrollbarComponent","axisDock","refLinesSettings","oob","lines","refLinesLabelsSettings","require","measureText","formatter","scales","measure","labelWidths","formattedValue","minimumText","wanted","required","maxLabelWidth","labelPadding","expressionValue","lineOptions","addRefLineComponent","enableLasso","selectionsEnabled","lassoOptions","brushKey","brushComponents","brushData","addLassoComponent","enableDimRange","rangeDimSettings","rangeDimOptions","brushAxis","brushArea","brushScale","addRangeDimComponent","dimRange","enableMeasureRange","rangeMeasureSettings","rangeMeasureOptions","multiple","addRangeMeasureComponent","measureRange","enableAreaRange","rangeMinorSettings","chartInstance","addRangeAreaComponent","areaRange","brushActions","addInteraction","gestures","addInteractionComponent","actions","invert","range","domain","trackBy","axis","axisLineStroke","titleFontSize","titleFill","labelsFill","labelsFontSize","titleFontFamily","labelsFontFamily","brush","trigger","consume","strokeWidth","labels","tiltAngle","maxEdgeBleed","maxSize","mode","axisSettings","active","measureScale","fields","expand","field","scaleSettings","dimensionScale","extract","props","qText","datum","xAxis","yAxis","xAxisTitle","yAxisTitle","rangeUtil","getBublesAlign","isAlignStart","getDock","dockTargets","dockT","layoutModes","SPARK","XSMALL","SMALL","MEDIUM","FULL","LayoutModes","getLabel","context","end","dataset","getLayoutModeKeys","layoutModeKeys","modeKey","directions","left","right","up","down","createComponent","minor","boxMarker","pointMarker","backgroundColor","scrollbar","components","comp","contexts","fillActive","bubbles","isStartBorder","binStart","binEnd","action","rangeArea","chartHeight","chartWidth","itemFill","itemFontSize","anchor","size","vertical","navigation","button","class","content","state","item","lineHeight","wordBreak","margin","top","bottom","shape","showTitle","categoricalLegend","tickFill","tickFontSize","tickFontFamily","getAlignValue","word","major","tick","sequentialLegend","gridLine","interaction","oobColor","oobBackgroundColor","padding","eventArea","sources","selector","strategy","parseFloat","placements","position","justify","ChartBuilder","dockLayout","interactions","getComponent","addPreset","ChartPresets","validateComponentKeys","msg","ALIGNMENT","CENTER","BOTTOM","DisclaimersConfig","DISCLAIMERS","alignment","default","util","getNoDataExistAttribute","qHyperCube","qSize","qcy","qcx","getLimitedDataAttribute","maxNbrOfDimensions","result","stackedDataPages","explicitLimitedData","qDataPages","paging","qMatrix","qStackedDataPages","qData","qSubNodes","qDimensionInfo","node","qDown","qArea","qHeight","getNegativeOrZeroValuesAttribute","supportNegative","qMeasureInfo","qMin","getOnlyNegativeOrZeroValuesAttribute","every","qMax","getOnlyNanDataAttribute","explicitOnlyNanData","getDataRangeIncludingZeroAttribute","supportRangeOverZero","measureInfo","len","explicitMinOn","explicitMaxOn","MAX_VALUE","hasDataRangeIncludingZero","applyAttributes","dataAttributes","NoDataExist","RequireNumericDimension","explicitRequireNumericDimension","LimitedData","NegativeOrZeroValues","OnlyNegativeOrZeroValues","OnlyNanData","DataRangeIncludingZero","Helper","disclaimersConfig","supportedDisclaimers","isValid","list","Disclaimer","environment","clear","isValidAndSupported","isAnyValidDisclaimer","self","getMessage","str","ERRORS","SET","DISPLAY","_applyDefaultSupport","supported","getComponentSettings","_this$environment","_this$environment$opt","vizAttributes","helper","DisclaimerComponentHelper","message","set","attributes","AttributesUtil","ChartView","picasso","$element","backendApi","selectionsApi","_selectionsApi","_on","_disclaimer","_dataPaths","picassoElement","dataAreaElem","updateEnvironment","setDataPaths","dataPaths","getData","hyperCube","dataPagesPath","page","qTop","qLeft","qWidth","maxHeight","then","pages","hasValidData","paint","_disclaimerComponent$","getDisclaimerAttributes","disclaimerComponent","isSuppressingDisc","chartSettings","createChartSettings","errorMsg","console","error","updateChart","_painted","Promise","resolve","resize","addSnapshotChartSettings","freeResize","snapshotData","logicalSize","preserveAspectRatio","updateData","_destroyed","reject","permissions","isPartialData","_this$environment$app","_this$environment$app2","appLayout","qLocaleInfo","getValue","colorService","update","partialData","setAttribute","destroy","off","getViewState","isLassoDisabled","setSnapshotData","snapshotLayout","chartData","hasOwn","toStr","gOPD","getOwnPropertyDescriptor","arr","isPlainObject","obj","hasOwnConstructor","hasIsPrototypeOf","setProperty","newValue","getProperty","src","copyIsArray","clone","deep","getFieldAccessor","deps","cache","origin","fieldIdx","attrIdx","attrDimIdx","wrappedFields","attrDims","instance","attrExps","row","qAttrDims","qValues","qAttrExps","datumExtract","propCfg","cell","_ref","cellToValue","_ref2","mainCell","prop","rowIdx","sourceKey","targetProp","propCell","propCellFn","qRow","cfgs","dataItems","cube","raw","main","normalizeConfig","propsArr","track","trackType","tracker","trackedItems","items","k","fieldValues","fieldLabels","cfg","itemData","collect","node_count","node_each","callback","that","node_eachBefore","nodes","node_eachAfter","next","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","Map","mapChildren","objectChildren","child","childs","Node","computeHeight","node_copy","copyData","optional","find","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","qColumnOrder","getDimensionColumnOrder","ii","getFieldDepth","isFieldDimension","fieldDepth","pseudoMeasureIndex","measureIdx","remainder","treeOrder","qEffectiveInterColumnSortOrder","columnOrder","sourceDepthObject","targetDepthObject","valueFn","attrFn","nodeFn","_data$qAttrDims","_data$qAttrExps","doIt","_ref3","pCfg","coll","collStr","cells","accessor","valueAccessor","attrAccessor","reduce","reduceLabel","getHierarchy","rootPath","childNodes","picker","tree","getHierarchyForSMode","matrix","order","__root","__id","isNew","_cell$qElemNumber","qElemNumber","qElemNo","_objectSpread","__parent","attachPropsAccessors","_ref4","itemDepthObject","accessors","augment","propDefs","idx","replicaDescendants","isTree","mapped","module","escapeRegExp","SIprefixes","radix","oct","dec","bin","rom","functional","prec","formatRadix","fradix","decimal","formatRoman","nThousands","numeral","formatFunctional","escape","flags","justStr","createRegExp","thousand","getAbbreviations","listSeparator","abbreviation","abbreviationTuple","preparePattern","parts","lastPart","regex","splitPattern","matchPrecisionResult","NumberFormatter","format","prep","exponent","absValue","num","decimalPartPattern","abbr","sciValue","original","abbrArray","lowerAbbreviation","suggestedAbbrExponent","upperAbbreviation","wholePart","wholePartPattern","nDecimals","nZeroes","decimalPart","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","getRemainder","parseIntervalDays","days","ms","parseInterval","units","someT","getMasks","inst","DateFormatter","qtype","info","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","createContent","tooltipInfo","uniqueShapes","numberInExcess","numItems","localContent","rows","labelData","refPaths","isNullValue","currentNode","header","headerResolver","measureRows","measureRow","rowData","rowResolver","colorByData","getColorByDimData","unshift","rowCount","extractContent","renderSettings","_tooltipInfo$colorSer","_tooltipInfo$colorSer2","_shape$attrs","colorData","colorSettings","fieldType","ids","mapping","elemNoObj","othersIndex","getOthersIndex","TOOLTIP_CONTAINER_ID","TOOLTIP_CONTAINER_SELECTOR","appendTooltipContainer","querySelector","createElement","body","appendChild","tooltip","beforeMount","beforeUpdate","destroyed","elm","parentElement","childElementCount","removeChild","destroyTooltipContainer","appendTo","placement","arrow","background","hyphens","getDirection","labelTextAlign","headerStyle","fontWeight","colSpan","valueContent","symbolStyle","symbol","labelStyle","valueStyle","moreText","moreStyle","Tooltips","chartType","tooltipContexts","registerContext","treatAsDesktop","deRegContext","mouseLeave","attrDimPath","filterShapes","deviceType","createTooltip","uniques","filterDuplicateShapes","TooltipHandler","hash","generateHash","hashData","hashFromString","JSON","stringify","updateHash","qUndoExclude","hashCode","hashBuilder","getDefaultHashDataForHyperCube","hyperCubeDef","app","dfds","qLibraryId","libraryId","getMeasure","getProperties","qMeasure","qDef","getMeasureDataFromLibraryItem","all","getMeasureExpressions","measureExpressions","drillLevel","getDrillIndices","dimensionExpressions","getDimensionExpressions","dimensionInfo","qGroupFieldDefs","getDimensions","qGroupPos","JSONPatch","originalExtend","isObject","isUndef","isSpecialProperty","getParent","numPart","part","generate","newData","basePath","patches","generateValue","oldVal","tmpPath","op","newA","oldA","tmpIdx","findIndex","qInfo","qId","patchArray","patch","newValues","oldParent","createPatch","updateObject","SoftPropertyHandler","model","_model","setModel","saveSoftProperties","prevEffectiveProperties","effectiveProperties","qOp","qPath","applyPatches","async","propertiesPromise","effectivePromise","getEffectiveProperties","effective","qExtendsId","setProperties","clearSoftPatches","hardPropertiesChecker","canModifyHardProperties","qHasSoftPatches","qMeta","privileges","Save","saveDerivedProperties","prevProperties","InputValidator","validate","generateDerivedProperties","DerivedProperties","_generationInProgress","isDerivedUpToDate","Hash","updateDerivedProperties","layoutIsUpdated","addDefaultHyperCubeHash","HashBuilder","ExpressionWrapper","wrapExpression","expression","ExpressionReplacer","replaceExpressionTokens","tokenMappings","tokenIdentifiers","identifiers","tokenExpression","tokenString","returnExpression","string","isGlobal","isGrouped","escapedString","regexpString","ExpressionGenerator","generateExpression","template","mappings","explicitMappings","wrap","variations","variation","variationExpressions","assembleVariation","regExp","stringArray","HyperCubeGenerator","generateHyperCubeDef","knownMappings","dimensionIndices","measureIndices","returnPromise","spliceIdentifiedMatches","getMappingRegExp","getExpressionFromDimension","getExpressionFromMeasure","getKnownMappings","allMappings","generatedHyperCubeDef","dimensionTemplate","qFieldDefs","measureTemplate","getAllHyperCubeExpressions","getExpressionFromLibraryItem","drillIndex","qDim","matches","isNumeric","isFinite","isInteger","histogramUtils","getBinSize","getDerivedBinSize","getDerivedBinOffset","getDerivedBinCount","getBinOffset","isAutoBin","isCountDistinct","getBinMode","isEmpty","LOG10","NICE_NUMBERS1","NICE_NUMBERS2","LOOP_CONTROL_NUMBERS","getGoodNumber","niceNumbers","roundedFraction","magnitude","fraction","calculateNumEmptyBins","nbrOfBins","newMin","newMax","binSizeCalculator","calculateBinSize","validateInput","niceBinSize","delta","loop","rawBinSize","numEmptyBins","getBinCount","histogramMappings","getMappingValues","binOffset","binInfo","distinct","dimInfo","getBinInfo","getMappings","BinSize","Label","Offset","Distinct","cubesGenerator","generateHyperCubes","mappingValues","expressionsPromise","HyperCubeDefGenerator","boxCubeDefPromise","expressions","boxCubeDef","binCountExpr","qValueExpression","qExpr","setValue","qSortByNumeric","onComponentChecker","isOnComponentForRange","targets","selectionGesture","isOnComponentForLasso","gesturesParams","lassoGesture","isOnComponentForNavBtn","legendBrushKey","navBtnGesture","callLassoGesture","gesturesFns","Hammer","DIRECTION_ALL","threshold","lassoing","isSelectionEnabled","hitComp","handlers","selectionHandler","recognizeWith","scrollHandler","lassostart","switchTo","lassoBrushKey","clientX","pointers","clientY","doEmit","lassomove","lassoend","lassocancel","measureRangeGesture","callMeasureRangeGesture","activeRangeBrush","dimRangeBrushKey","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","rangeSelStatus","isOpenMea","measureSelecting","gesture","measureRangeBrushKey","requireFailure","measurerangestart","measurerangemove","measurerangeend","measurerangecancel","getAxisOrientation","areaRangeGesture","callAreaRangeGesture","isOpenDim","minoring","arearangestart","areaBrushKey","arearangemove","arearangeend","arearangecancel","dimensionRangeGesture","callDimensionRangeGesture","dimAxis","majoring","majorrangestart","majorrangemove","majorrangeend","majorrangecancel","dragGesture","callDragGesture","hasSelections","dragPoint","dragging","isNavigationEnabled","getBrushConfig","dragstart","change","getItemSize","getScrollApi","move","dragmove","dragend","dragcancel","callNavBtnGesture","navBtnTap","btn","attr","getAttribute","DependentInteractions$1","clearKey","activeChart","newType","cont","onScrollUpdate","rangeClearTap","overrides","getAxisTitleStyle","chartId","_overrides","_axis$title","_axis$title2","_axis$title3","_axis$title3$fontColo","isEnabled","fontColor","getAxisLabelStyle","_overrides2","_axis$label","_axis$label$name","_axis$label2","_axis$label2$name","_axis$label3","_axis$label3$name","_axis$label3$name$fon","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","valueLabelSettings","getValueLabelStyle","_overrides3","_value$value","_value$value2","_value$value3","_value$value3$fontCol","ChartSettings","dimTitle","_selectionHandler","lockedDim","retrieveRangeSelStatus","dimInfos","getLockedDim","_dependentActions","DependentInteractions","include","boxMarkerSettings","binLabelSettings","rangeSelSettings","HistogramView","namespace","renderState","__do_not_use_findShapes","findShapes","_derivedProperties","updateConstraints","constraints","passive","selection","onlyNanData","qIsNull","isOnlyNanData","binMappings","binProperties","getHashData","restore","updateCache","pending","undoExclude","BackednAPi","setCacheOptions","maxStackedValues","getHyperCubeData","window","toStringTag","__esModule","updated","previous","dimensionList","qName","qDerivedFieldData","qDerivedFieldLists","fieldList","fullAccumulation","fullRange","crossAllDimensions","modifier","dimensionAndFieldList","funcComp","valueComp","showExcludedValues","isFullRange","getNumDimensions","getExpressionWithExcludedComp","treatMissingAsNull","getRowNoComp","getNumStepComp","getAboveCompPrefix","getAboveCompSuffix","getAboveComp","getFunctionPrefix","getFunctionSuffix","getRangeComp","getAggrComp","getExcludedComp","needDimension","primaryDimension","accumulationDimension","getDimComp","qSortCriterias","qSortByExpression","qSortByAscii","simplifyExpression","extractInputExpression","outputExpression","initModifier","isApplicable","minDimensions","maxDimensions","getExpressionWithMarkers","canExtract","getDimDefWithWrapper","getFieldWithWrapper","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","ie","ae","se","updateModifier","modifierSelectionScope","modifierSelectionScopeTooltip","dropdownOnly","getFieldList","modifierDimensionalScope","modifierDimensionalScopeTooltip","supportTooltip","getDisregardSelectionComp","getFieldSelectionComp","getTotalComp","getSelectedDimComp","ue","getExpression","getExpressionRef","getLibraryIdRef","getLibraryId","getLabelRef","getLabelExpressionRef","le","initBase","restoreBase","base","ce","pe","fe","accumulation","movingAverage","difference","normalization","me","de","applyModifiers","ye","cleanUpMeasure","qe","masterItemSubscriber","unsubscribe","hasActiveModifiers","be","getActiveModifier","De","isSupportedModifiers","isApplicableSupportedModifiers","modifierTypes","measureBase","limitedSorting","he","Se","Ne","ifEnableTotalsFunction","ve","isSnapshot","masterItem","isFirstTime","lastReloadTime","Me","Ee","Oe","libraryIds","ge","Ce","oldProperties","runUpdateIfChange","libraryItemsProps","we","newProperties","qLabel","qLabelExpression","quarantine","coloring","qAggrFunc","Ae","xe","Ie","getDimensionList","measureLibraryIds","dimensionLibraryIds","getDimension","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","colors","classification","section","barColor","dualOutput","defaultColor","getDataColorSpecials","palette","getDataColorPickerPalettes","fontResolver","getChartFontResolver","createFontResolver","ChartStyleComponent","propertyDefs","getColorComponent","labelSection","getFontWrapperComponent","fontWrapper","presentation","styleEditor","snapshot","tid","showGridLines","gridSpacing","simpleLabels","_props$qHyperCubeDef$","pointLabels","_props$qHyperCubeDef$2","dimensionTitle","_props$qHyperCubeDef$3","convertFunctions","getter","setter","measureTitle","_props$qHyperCubeDef$4","customBinMode","undefinedValue","autoMessage","expressionType","definition","binMessage","isExpression","minBinMessage","uses","alternativeTranslation","dimensionLimits","otherMode","readOnly","otherSortMode","otherCounted","otherLimitMode","limitMode","otherLimit","calculatedAgainstMessage","measureName","others","suppressOther","addons","dataHandling","calcCond","colorBackground","placeholderTranslation","othersGroup","exploreProperties","histogramExport","getExportRawDataOptions","menu","exportDialog","addItem","_env$anything","pp","softDefinition","cssScaling","export","exportData","sharing","viewData","mapProperties","getDefaultDimensionProperties","getDefaultMeasureProperties","conversion","hyperCubePath","requireNumericDimension","exportTableProperties","supernova","picassojs","prio","use","PicassoHammer","picassoSetup","qae","useConstraints","useElement","useApp","useAppLayout","useDeviceType","useOptions","useTheme","useTranslator","useMemo","language","useEnvironment","setEnabled","useState","setActive","isInSelections","useLayout","qSelectionInfo","qInSelections","useEffect","useAction","icon","hidden","useLasso","useModel","useSelections","useStaleLayout","useRenderState","setInstance","view","usePromise","useRect","useResize","onTakeSnapshot","useImperativeHandle"],"mappings":"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"}
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.56.0\n* Copyright (c) 2023 QlikTech International AB\n* Released under the MIT license.\n*/\n\nfunction e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?e(Object(r),!0).forEach((function(e){a(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):e(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function n(){n=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},i=\"function\"==typeof Symbol?Symbol:{},a=i.iterator||\"@@iterator\",l=i.asyncIterator||\"@@asyncIterator\",u=i.toStringTag||\"@@toStringTag\";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},\"\")}catch(e){c=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var i=t&&t.prototype instanceof p?t:p,a=Object.create(i.prototype),l=new C(r||[]);return o(a,\"_invoke\",{value:w(e,n,l)}),a}function f(e,t,n){try{return{type:\"normal\",arg:e.call(t,n)}}catch(e){return{type:\"throw\",arg:e}}}e.wrap=s;var d={};function p(){}function h(){}function m(){}var v={};c(v,a,(function(){return this}));var y=Object.getPrototypeOf,g=y&&y(y(D([])));g&&g!==t&&r.call(g,a)&&(v=g);var b=m.prototype=p.prototype=Object.create(v);function x(e){[\"next\",\"throw\",\"return\"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function q(e,t){function n(o,i,a,l){var u=f(e[o],e,i);if(\"throw\"!==u.type){var c=u.arg,s=c.value;return s&&\"object\"==typeof s&&r.call(s,\"__await\")?t.resolve(s.__await).then((function(e){n(\"next\",e,a,l)}),(function(e){n(\"throw\",e,a,l)})):t.resolve(s).then((function(e){c.value=e,a(c)}),(function(e){return n(\"throw\",e,a,l)}))}l(u.arg)}var i;o(this,\"_invoke\",{value:function(e,r){function o(){return new t((function(t,o){n(e,r,t,o)}))}return i=i?i.then(o,o):o()}})}function w(e,t,n){var r=\"suspendedStart\";return function(o,i){if(\"executing\"===r)throw new Error(\"Generator is already running\");if(\"completed\"===r){if(\"throw\"===o)throw i;return I()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var l=M(a,n);if(l){if(l===d)continue;return l}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(\"suspendedStart\"===r)throw r=\"completed\",n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=\"executing\";var u=f(e,t,n);if(\"normal\"===u.type){if(r=n.done?\"completed\":\"suspendedYield\",u.arg===d)continue;return{value:u.arg,done:n.done}}\"throw\"===u.type&&(r=\"completed\",n.method=\"throw\",n.arg=u.arg)}}}function M(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,\"throw\"===n&&e.iterator.return&&(t.method=\"return\",t.arg=void 0,M(e,t),\"throw\"===t.method)||\"return\"!==n&&(t.method=\"throw\",t.arg=new TypeError(\"The iterator does not provide a '\"+n+\"' method\")),d;var o=f(r,e.iterator,t.arg);if(\"throw\"===o.type)return t.method=\"throw\",t.arg=o.arg,t.delegate=null,d;var i=o.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,\"return\"!==t.method&&(t.method=\"next\",t.arg=void 0),t.delegate=null,d):i:(t.method=\"throw\",t.arg=new TypeError(\"iterator result is not an object\"),t.delegate=null,d)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type=\"normal\",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:\"root\"}],e.forEach(k,this),this.reset(!0)}function D(e){if(e){var t=e[a];if(t)return t.call(e);if(\"function\"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:I}}function I(){return{value:void 0,done:!0}}return h.prototype=m,o(b,\"constructor\",{value:m,configurable:!0}),o(m,\"constructor\",{value:h,configurable:!0}),h.displayName=c(m,u,\"GeneratorFunction\"),e.isGeneratorFunction=function(e){var t=\"function\"==typeof e&&e.constructor;return!!t&&(t===h||\"GeneratorFunction\"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,c(e,u,\"GeneratorFunction\")),e.prototype=Object.create(b),e},e.awrap=function(e){return{__await:e}},x(q.prototype),c(q.prototype,l,(function(){return this})),e.AsyncIterator=q,e.async=function(t,n,r,o,i){void 0===i&&(i=Promise);var a=new q(s(t,n,r,o),i);return e.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},x(b),c(b,u,\"Generator\"),c(b,a,(function(){return this})),c(b,\"toString\",(function(){return\"[object Generator]\"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=D,C.prototype={constructor:C,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(S),!e)for(var t in this)\"t\"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if(\"throw\"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(n,r){return a.type=\"throw\",a.arg=e,t.next=n,r&&(t.method=\"next\",t.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return n(\"end\");if(i.tryLoc<=this.prev){var l=r.call(i,\"catchLoc\"),u=r.call(i,\"finallyLoc\");if(l&&u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===e||\"continue\"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method=\"next\",this.next=i.finallyLoc,d):this.complete(a)},complete:function(e,t){if(\"throw\"===e.type)throw e.arg;return\"break\"===e.type||\"continue\"===e.type?this.next=e.arg:\"return\"===e.type?(this.rval=this.arg=e.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===e.type&&t&&(this.next=t),d},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),S(n),d}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;S(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(e,t,n){return this.delegate={iterator:D(e),resultName:t,nextLoc:n},\"next\"===this.method&&(this.arg=void 0),d}},e}function r(e){return r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},r(e)}function o(e,t,n,r,o,i,a){try{var l=e[i](a),u=l.value}catch(e){return void n(e)}l.done?t(u):Promise.resolve(u).then(r,o)}function i(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function l(e){o(a,r,i,l,u,\"next\",e)}function u(e){o(a,r,i,l,u,\"throw\",e)}l(void 0)}))}}function a(e,t,n){return(t=function(e){var t=function(e,t){if(\"object\"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||\"default\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,a,l=[],u=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(e){c=!0,o=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(e,t)||s(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function c(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||s(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function s(e,t){if(e){if(\"string\"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function d(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var p=Object.prototype.hasOwnProperty,h=Object.prototype.toString,m=Object.defineProperty,v=Object.getOwnPropertyDescriptor,y=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===h.call(e)},g=function(e){if(!e||\"[object Object]\"!==h.call(e))return!1;var t,n=p.call(e,\"constructor\"),r=e.constructor&&e.constructor.prototype&&p.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!r)return!1;for(t in e);return void 0===t||p.call(e,t)},b=function(e,t){m&&\"__proto__\"===t.name?m(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},x=function(e,t){if(\"__proto__\"===t){if(!p.call(e,t))return;if(v)return v(e,t).value}return e[t]},q=function e(){var t,n,r,o,i,a,l=arguments[0],u=1,c=arguments.length,s=!1;for(\"boolean\"==typeof l&&(s=l,l=arguments[1]||{},u=2),(null==l||\"object\"!=typeof l&&\"function\"!=typeof l)&&(l={});u<c;++u)if(null!=(t=arguments[u]))for(n in t)r=x(l,n),l!==(o=x(t,n))&&(s&&o&&(g(o)||(i=y(o)))?(i?(i=!1,a=r&&y(r)?r:[]):a=r&&g(r)?r:{},b(l,{name:n,newValue:e(s,a,o)})):void 0!==o&&b(l,{name:n,newValue:o}));return l},w=d(q);function M(e,t){return{range:function(e){var n=e.resources,r=e.data,o=n.theme.palette(\"categorical\",0===t?r.items.length:t);return r.items.map((function(e){return o[e.value%o.length]}))},valueAccessor:e.value}}function k(e,t){return{range:function(e){var n=e.resources,r=e.data,o=n.theme.palette(\"categorical\",0===t?r.items.length:t);return r.items.map((function(e){return o[e.row.value%o.length]}))},valueAccessor:e.value}}function S(e,t,n,r,o){var i,a,l=o.byRow,u=o.byElemNo;if(r&&(t.input.persistent||e.hc.qDimensionInfo.length>1||void 0===n.activeDimensionIndex&&e.hc.qSize.qcy>(i=e.hc,(null===(a=i.qDataPages[0]||i.qStackedDataPages[0])||void 0===a?void 0:a.qArea.qHeight)||0)))return u(r,r.raw().qCardinal);if(r){var c=t.pic.extract({field:r.key(),trackBy:r.value}).length;return l(r,c)}return{}}function C(e,t){var n=e.hc.qDimensionInfo,r=t.input.byDimDef||{activeDimensionIndex:n.length-1};if(r.activeDimensionIndex>=0){var o=n[r.activeDimensionIndex];r=o.coloring&&o.coloring.colorMapRef?{type:\"libraryItem\",key:o.coloring.colorMapRef,activeDimensionIndex:r.activeDimensionIndex}:{activeDimensionIndex:r.activeDimensionIndex}}return r}function D(e,t){var n;return t.activeDimensionIndex>=0?n=e.pic.fields().filter((function(e){return\"dimension\"===e.type()}))[t.activeDimensionIndex]:\"libraryItem\"===t.type?!1===(n=t.key?e.pic.field((function(e){return e.raw().colorMapRef===t.key})):void 0)&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))):\"expression\"===t.type&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))),n}function I(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function O(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function E(){}var A=1/.7,N=\"\\\\s*([+-]?\\\\d+)\\\\s*\",L=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",T=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",P=/^#([0-9a-f]{3,8})$/,j=new RegExp(`^rgb\\\\(${N},${N},${N}\\\\)$`),F=new RegExp(`^rgb\\\\(${T},${T},${T}\\\\)$`),H=new RegExp(`^rgba\\\\(${N},${N},${N},${L}\\\\)$`),R=new RegExp(`^rgba\\\\(${T},${T},${T},${L}\\\\)$`),z=new RegExp(`^hsl\\\\(${L},${T},${T}\\\\)$`),V=new RegExp(`^hsla\\\\(${L},${T},${T},${L}\\\\)$`),_={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function B(){return this.rgb().formatHex()}function Y(){return this.rgb().formatRgb()}function $(e){var t,n;return e=(e+\"\").trim().toLowerCase(),(t=P.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?U(t):3===n?new X(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?K(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?K(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=j.exec(e))?new X(t[1],t[2],t[3],1):(t=F.exec(e))?new X(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=H.exec(e))?K(t[1],t[2],t[3],t[4]):(t=R.exec(e))?K(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=z.exec(e))?ne(t[1],t[2]/100,t[3]/100,1):(t=V.exec(e))?ne(t[1],t[2]/100,t[3]/100,t[4]):_.hasOwnProperty(e)?U(_[e]):\"transparent\"===e?new X(NaN,NaN,NaN,0):null}function U(e){return new X(e>>16&255,e>>8&255,255&e,1)}function K(e,t,n,r){return r<=0&&(e=t=n=NaN),new X(e,t,n,r)}function G(e){return e instanceof E||(e=$(e)),e?new X((e=e.rgb()).r,e.g,e.b,e.opacity):new X}function W(e,t,n,r){return 1===arguments.length?G(e):new X(e,t,n,null==r?1:r)}function X(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function Z(){return`#${te(this.r)}${te(this.g)}${te(this.b)}`}function J(){const e=Q(this.opacity);return`${1===e?\"rgb(\":\"rgba(\"}${ee(this.r)}, ${ee(this.g)}, ${ee(this.b)}${1===e?\")\":`, ${e})`}`}function Q(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ee(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function te(e){return((e=ee(e))<16?\"0\":\"\")+e.toString(16)}function ne(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new oe(e,t,n,r)}function re(e){if(e instanceof oe)return new oe(e.h,e.s,e.l,e.opacity);if(e instanceof E||(e=$(e)),!e)return new oe;if(e instanceof oe)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),a=NaN,l=i-o,u=(i+o)/2;return l?(a=t===i?(n-r)/l+6*(n<r):n===i?(r-t)/l+2:(t-n)/l+4,l/=u<.5?i+o:2-i-o,a*=60):l=u>0&&u<1?0:a,new oe(a,l,u,e.opacity)}function oe(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function ie(e){return(e=(e||0)%360)<0?e+360:e}function ae(e){return Math.max(0,Math.min(1,e||0))}function le(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}I(E,$,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:B,formatHex:B,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return re(this).formatHsl()},formatRgb:Y,toString:Y}),I(X,W,O(E,{brighter(e){return e=null==e?A:Math.pow(A,e),new X(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new X(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new X(ee(this.r),ee(this.g),ee(this.b),Q(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Z,formatHex:Z,formatHex8:function(){return`#${te(this.r)}${te(this.g)}${te(this.b)}${te(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:J,toString:J})),I(oe,(function(e,t,n,r){return 1===arguments.length?re(e):new oe(e,t,n,null==r?1:r)}),O(E,{brighter(e){return e=null==e?A:Math.pow(A,e),new oe(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new oe(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new X(le(e>=240?e-240:e+120,o,r),le(e,o,r),le(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new oe(ie(this.h),ae(this.s),ae(this.l),Q(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Q(this.opacity);return`${1===e?\"hsl(\":\"hsla(\"}${ie(this.h)}, ${100*ae(this.s)}%, ${100*ae(this.l)}%${1===e?\")\":`, ${e})`}`}}));const ue=Math.PI/180,ce=180/Math.PI,se=4/29,fe=6/29,de=3*fe*fe;function pe(e){if(e instanceof he)return new he(e.l,e.a,e.b,e.opacity);if(e instanceof qe)return we(e);e instanceof X||(e=G(e));var t,n,r=ge(e.r),o=ge(e.g),i=ge(e.b),a=me((.2225045*r+.7168786*o+.0606169*i)/1);return r===o&&o===i?t=n=a:(t=me((.4360747*r+.3850649*o+.1430804*i)/.96422),n=me((.0139322*r+.0971045*o+.7141733*i)/.82521)),new he(116*a-16,500*(t-a),200*(a-n),e.opacity)}function he(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}function me(e){return e>.008856451679035631?Math.pow(e,1/3):e/de+se}function ve(e){return e>fe?e*e*e:de*(e-se)}function ye(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function ge(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function be(e){if(e instanceof qe)return new qe(e.h,e.c,e.l,e.opacity);if(e instanceof he||(e=pe(e)),0===e.a&&0===e.b)return new qe(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*ce;return new qe(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function xe(e,t,n,r){return 1===arguments.length?be(e):new qe(e,t,n,null==r?1:r)}function qe(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function we(e){if(isNaN(e.h))return new he(e.l,0,0,e.opacity);var t=e.h*ue;return new he(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}I(he,(function(e,t,n,r){return 1===arguments.length?pe(e):new he(e,t,n,null==r?1:r)}),O(E,{brighter(e){return new he(this.l+18*(null==e?1:e),this.a,this.b,this.opacity)},darker(e){return new he(this.l-18*(null==e?1:e),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return new X(ye(3.1338561*(t=.96422*ve(t))-1.6168667*(e=1*ve(e))-.4906146*(n=.82521*ve(n))),ye(-.9787684*t+1.9161415*e+.033454*n),ye(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}})),I(qe,xe,O(E,{brighter(e){return new qe(this.h,this.c,this.l+18*(null==e?1:e),this.opacity)},darker(e){return new qe(this.h,this.c,this.l-18*(null==e?1:e),this.opacity)},rgb(){return we(this).rgb()}}));var Me=e=>()=>e;function ke(e){return 1==(e=+e)?Se:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):Me(isNaN(t)?n:t)}}function Se(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):Me(isNaN(e)?t:e)}var Ce=function e(t){var n=ke(t);function r(e,t){var r=n((e=W(e)).r,(t=W(t)).r),o=n(e.g,t.g),i=n(e.b,t.b),a=Se(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=o(t),e.b=i(t),e.opacity=a(t),e+\"\"}}return r.gamma=e,r}(1),De=/^class(-pyramid)?/,Ie=function(e,t,n,r){var o=void 0!==n.min?n.min:r.min(),i=void 0!==n.max?n.max:r.max(),a=o,l=i,u=t.limits,s={},f=\"percent\"===t.limitType?u.map((function(e){return o+(i-o)*e})):u,d=t.colors.map((function(t){return e.resolveUIColor(t)}));if(o=Math.min.apply(Math,[o].concat(c(f))),i=Math.max.apply(Math,[i].concat(c(f))),s.min=o,s.max=i,t.breakTypes&&-1===t.breakTypes.indexOf(!0))s.type=\"categorical\",Object.assign(s,function(e){var t=e.min,n=e.max,r=e.limits,o=e.range,i=[],a=[];if(r.length)if(r[r.length-1]<t)a.push(t,n),i.push(o[o.length-1],o[o.length-1],o[o.length-1]);else if(r[0]>n)a.push(t,n),i.push(o[0],o[0],o[0]);else{if(r[0]>t)a.push(t),i.push(o[0]);else{a.push(t);for(var l=0;l<r.length;l++)if(t<r[l]){i.push(o[l]);break}}for(var u=0;u<r.length;u++)t<r[u]&&r[u]<n&&(a.push(r[u]),i.push(o[u]));if(r[r.length-1]<n)a.push(n),i.push(o[r.length]),i.push(o[r.length]);else{a.push(n);for(var c=0;c<r.length;c++)if(r[c]>n){i.push(o[c]),i.push(o[c]);break}}}else i.push(o[0]);return{min:t,max:n,range:i,domain:a}}({min:\"percent\"===t.limitType?o:a,max:\"percent\"===t.limitType?i:l,range:d,limits:\"percent\"===t.limitType?f:u}));else if(t.breakTypes){var p=t.breakTypes;s.type=\"continuous\",s.domain=[o],s.range=[d[0]];for(var h=0;h<f.length;h+=1)if(p[h]){var m=d[h],v=d[h+1],y=Ce(m,v)(.5);s.range.push(y),s.domain.push(f[h]),h<f.length-1&&p[h+1]&&(s.range.push(d[h+1]),s.domain.push((f[h]+f[h+1])/2))}else s.range.push(d[h]),s.range.push(d[h+1]),s.domain.push(f[h]),s.domain.push(f[h]+Math.min(1e-6,(i-o)/1e6));s.range.push(d[d.length-1]),s.domain.push(i)}else s.domain=f,s.range=d;return s};function Oe(e,t,n,r,o){var i,a,l,u=0,c=[],s=(e-t)/(r+1);if(0===s)return 1;for(i=0;i<n.length;i+=1)a=.99*(n[i]-t),l=n[i]>e?Math.floor(e/s):n[i]<t?0:Math.floor(a/s),Number.isNaN(l)||(c[l]?c[l]+=1:c[l]=1);for(i=0;i<c.length;i+=1)c[i]&&(u+=1);return u<=r||u>=o?Math.max(u,r):Oe(e,t,n,r+1,o)}var Ee=function(e,t,n,r){var o,i,a=t.theme,l=t.hc,u=r.f,s={mode:\"field\",fieldType:\"measure\",field:u?u.key():void 0,reverse:n.input.reverseScheme||!1,type:\"continuous\",range:function(e){return e.resources.theme.palette(\"quant\")}},f=[],d=!0;if(u){if(Number.isNaN(+u.min())||Number.isNaN(+u.max()))return{invalid:!0};(d=!(\"S\"===(o=n.pic.raw()).qMode&&(o.qDataPages[0]&&o.qSize.qcy>o.qDataPages[0].qArea.qHeight||!o.qDataPages.length&&o.qSize.qcy>0)||\"K\"===o.qMode&&o.qStackedDataPages[0]&&o.qSize.qcy>o.qStackedDataPages[0].qArea.qHeight||\"T\"===o.qMode&&o.qSize.qcy>o.qTreeDataPages[0].qGroupSize))&&(f=n.pic.extract({field:0,props:{num:{field:u.key()},exclude:{fields:l.qDimensionInfo.map((function(e,t){return{field:\"qDimensionInfo/\".concat(t)}})),value:function(e){return Math.min.apply(Math,c(e))<0}}}}).filter((function(e){return e.value>=0&&!e.exclude.value})).map((function(e){return e.num.value})).filter((function(e){return\"number\"==typeof e})))}if(!1===n.input.autoMinMax){if(s.min=n.input.measureMin,s.max=n.input.measureMax,s.max<s.min)return{invalid:!0}}else if(u&&!d)s.min=u.min(),s.max=u.max();else if(u){if(!f.length)return{invalid:!0};s.min=Math.min.apply(Math,c(f)),s.max=Math.max.apply(Math,c(f))}if(n.input.measureScheme&&(s.palettes={quant:n.input.measureScheme}),a){var p=a.getDataColorScales().filter((function(e){return e.key===n.input.measureScheme}))[0];s.type=p&&De.test(p.type)?\"categorical\":\"continuous\",\"categorical\"===s.type&&(i=p.colors.some((function(e){return Array.isArray(e)}))?Math.max.apply(Math,c(p.colors.map((function(e){return e?e.length:0})))):p.colors.length)}if(\"categorical\"===s.type){for(var h=d?Oe(s.max,s.min,f,1,i):i,m=(s.max-s.min)/h,v=[],y=0;y<h+1;y+=1)v.push(s.min+m*y);s.domain=v,s.range=function(e){for(var t=e.resources.theme.palette(\"quant\",h),n=Math.max(1,Math.floor(t.length/h)),r=[],o=0;o<h;o+=1)r.push(t[o*n]);return[r[0]].concat(r,[r[r.length-1]])}}return s};function Ae(e,t){var n;return t.activeMeasureIndex>=0?n=e.pic.fields().filter((function(e){return\"measure\"===e.type()}))[t.activeMeasureIndex]:\"libraryItem\"===t.type?n=e.pic.field((function(e){return e.raw().colorMapRef===t.key&&void 0!==t.key})):\"expression\"===t.type&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))),n||(n=e.pic.field((function(e){return void 0!==e.raw().matchMeasure})))&&(n=e.pic.fields().filter((function(e){return\"measure\"===e.type()}))[n.raw().matchMeasure]),n}function Ne(e){var n,r=e.cm,o=e.defaults,i=e.index,a=e.input,l=e.pic;if(!a||!a.on)return null;var u=null!==(n=a.mode)&&void 0!==n?n:\"primary\";return\"primary\"===u?function(e,n,r){var o=r.primary;return void 0!==n.paletteColor&&n.paletteColor&&(o=e.resolveUIColor(n.paletteColor)),t(t({},r),{},{mode:\"constant\",type:\"constant\",primary:o})}(r,a,o):\"byExpression\"===u?function(e,n,r){var o=\"qMeasureInfo/\".concat(e,\"/\"),i=n.field((function(e){return e.id().startsWith(o)&&\"colorByMeasureExpression\"===e.raw().id})),a=i;return t(t({},r),{},a?{mode:\"field\",fieldType:\"expression\",field:i?i.key():void 0,type:\"color\"}:{mode:\"constant\",type:\"constant\",primary:r.nil})}(i,l,o):null}function Le(e){e.measureOverrides.every((function(e){return!e}))&&(e.measureOverrides=null)}function Te(e,t){for(var n=(null==t?void 0:t.domain)||[],r=(null==t?void 0:t.range)||[],o=[],i=0;i<e.length;++i){var a=e[i];if(\"constant\"===(null==a?void 0:a.mode)){var l=n.indexOf(i);-1===l?(n.push(i),r.push(a.primary)):r[l]=a.primary,e[i]=null}else if(a){o.push(i);var u=n.indexOf(i);-1!==u&&(n.splice(u,1),r.splice(u,1))}}return{domain:n,range:r,exclude:o}}function Pe(e,t,n,r){if(t.input&&!t.input.auto){if(\"byMeasure\"===t.input.mode)return function(e,t,n){var r=t.theme,o=t.hc,i=(arguments.length>3&&void 0!==arguments[3]?arguments[3]:{}).getCField,a=void 0===i?Ae:i,l=n.input.byMeasureDef||{activeMeasureIndex:0},u=a(n,l),c=Ee(0,{theme:r,hc:o},n,{f:u});if(c.invalid)return c;\"expression\"===l.type&&(l.activeMeasureIndex<0||void 0===l.activeMeasureIndex)&&(c.label=l.label,u&&\"color.altLabel\"===u.raw().labelExpRef&&(c.label=n.input.altLabel)),!c.label&&u&&(c.label=u.title());var s=l.activeMeasureIndex>=0?u:null;if(!s&&u&&void 0!==u.raw().matchMeasure&&u.raw().matchMeasure>-1&&(s=n.pic.fields().filter((function(e){return\"measure\"===e.type()}))[u.raw().matchMeasure]),n.input.useMeasureGradient&&\"libraryItem\"===l.type)if(s){var f=s.raw().coloring;f&&f.gradient&&w(c,Ie(e,f.gradient,c,s))}else c.auxiliary=l;return c}(e,n,t);if(\"byDimension\"===t.input.mode)return function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=r.getCDef,i=void 0===o?C:o,a=r.getCByField,l=void 0===a?D:a,u=r.getPersistence,c=void 0===u?S:u,s=i(t,n),f=l(n,s),d=f?f.raw():{},p=n&&n.pic?n.pic.raw():{};if(d.qError||d.qSize&&0===d.qSize.qcy&&!p.qHasOtherValues)return{invalid:!0};var h={mode:\"field\",fieldType:\"dimension\",type:\"categorical\",field:f?f.key():void 0,isFieldLocked:d.qLocked};return(\"expression\"===s.type||s.activeDimensionIndex<0)&&(h.label=s.label,\"color.altLabel\"===d.labelExpRef&&(h.label=n.input.altLabel)),!h.label&&f&&(h.label=f.title()),n.input.dimensionScheme&&(h.palettes={categorical:n.input.dimensionScheme}),n.input.useDimColVal&&\"libraryItem\"===s.type&&(h.auxiliary=s),w(h,c(t,n,s,f,{byRow:k,byElemNo:M})),h}(e,n,t);if(\"byExpression\"===t.input.mode)return function(e,t,n,r){var o=t.hc,i=t.theme,a=t.translator,l=n.pic.field((function(e){return\"colorByExpression\"===e.raw().id}));if(!l||!l.raw().qFallbackTitle&&!n.input.colorExpression||!(Number.isFinite(l.raw().qMin)&&Number.isFinite(l.raw().qMax)||n.input.expressionIsColor))return{mode:\"constant\",type:\"constant\",primary:r.nil};if(n.input.expressionIsColor)return{mode:\"field\",fieldType:\"expression\",field:l?l.key():void 0,type:\"color\"};var u=Ee(0,{hc:o,theme:i},n,{f:l});return u.invalid||(u.label=n.input.expressionLabel||a.get(\"Object.ChartTooltip.ColorExpression\")),u}(0,n,t,r);if(\"byMultiple\"===t.input.mode||\"primary\"===t.input.mode)return function(e,t,n,r){var o=t.hc,i=t.theme,a=t.translator,l=n.input.useBaseColors;if((\"byMultiple\"===n.input.mode||\"primary\"===n.input.mode&&\"measure\"===n.input.useBaseColors)&&o.qMeasureInfo.length>1&&(l=\"measure\"),\"measure\"===l){var u=[],c=[];\"measure\"===n.input.useBaseColors&&o.qMeasureInfo.forEach((function(t,n){if(t.baseColor||t.coloring&&t.coloring.baseColor){u.push(n);var o=e.resolveUIColor(t.baseColor||t.coloring.baseColor);\"none\"===o?c.push(r.primary):c.push(o)}}));var s=n.input.dimensionScheme?{categorical:n.input.dimensionScheme}:void 0,f=i?i.getDataColorPalettes()[0]:void 0;return\"measure\"===n.input.useBaseColors&&f&&(s={categorical:f.key}),{mode:\"measure\",type:\"categorical\",palettes:s,label:a?a.get(\"Common.Measures\"):void 0,explicit:u.length?{domain:u,range:c}:void 0}}if(\"dimension\"===l){var d=[],p=[];return o.qDimensionInfo.forEach((function(t,n){if(t.baseColor||t.coloring&&t.coloring.baseColor){d.push(n);var o=e.resolveUIColor(t.baseColor||t.coloring.baseColor);\"none\"===o?p.push(r.primary):p.push(o)}})),{mode:\"dimension\",type:\"categorical\",field:d.length?d[0]:void 0,explicit:d.length?{domain:d,range:p}:void 0}}var h=r.primary;if(void 0!==n.input.paletteColor)n.input.paletteColor&&(h=e.resolveUIColor(n.input.paletteColor));else{var m=n.input.singleColor;\"number\"!=typeof m||Number.isNaN(m)||(h=[\"#b0afae\",\"#7b7a78\",\"#545352\",\"#4477aa\",\"#7db8da\",\"#b6d7ea\",\"#46c646\",\"#f93f17\",\"#ffcf02\",\"#276e27\",\"#ffffff\",\"#000000\"][m])}return{mode:\"constant\",type:\"constant\",primary:h}}(e,n,t,r)}return{}}function je(e,t,n,r){var o,i=Pe(e,t,n,r);return null!==(o=t.input)&&void 0!==o&&o.measureOverrides?(i.measureOverrides=t.input.measureOverrides.map((function(n,o){return Ne({cm:e,input:n,defaults:r,index:o,pic:t.pic})})),function(e,t){var n,r,o,i=t.translator;if(Le(e),1===(null===(n=e.measureOverrides)||void 0===n?void 0:n.length))return e.measureOverrides[0];if(\"measure\"===e.mode&&e.measureOverrides&&(e.explicit=Te(e.measureOverrides,e.explicit),Le(e)),null!==(r=e.measureOverrides)&&void 0!==r&&r.every((function(e){return\"constant\"===(null==e?void 0:e.mode)}))){var a={mode:\"measure\",type:\"categorical\",label:null==i?void 0:i.get(\"Common.Measures\")};return a.explicit=Te(e.measureOverrides),a}return null!==(o=e.measureOverrides)&&void 0!==o&&o.every((function(e){return e}))?{invalid:!0,measureOverrides:e.measureOverrides}:e}(i,n)):i}function Fe(e){var n=t({hc:null,colorProps:null,layout:null,theme:null},e),r={},o={auto:function(){return{mode:\"primary\"}},getDimensionColorMap:function(){return Promise.reject()},getMeasure:function(){return Promise.reject()},getAttributeDimension:function(){return Promise.reject()}},i={auto:function(e){return e?(o.auto=e,i):o.auto},getDimensionColorMap:function(e){return e?(o.getDimensionColorMap=e,i):o.getDimensionColorMap},getAttributeDimension:function(e){return e?(o.getAttributeDimension=e,i):o.getAttributeDimension},getMeasure:function(e){return e?(o.getMeasure=e,i):o.getMeasure},set:function(e){var t;if(!e.colorProps)throw new Error('Missing \"colorProps\"');if(w(n,e),(r={pic:n.picasso.data(\"q\")({data:n.hc,config:{localeInfo:n.localeInfo}}),input:n.colorProps}).input.auto){var i=o.auto(e.layout);r.input=w(!0,{},r.input,i,{auto:!1});var a=n.theme?n.theme.getDataColorPalettes():[];a[0]&&(r.input.dimensionScheme=a[0].key);var l=0;r.input.byDimDef&&+r.input.byDimDef.activeDimensionIndex>=0&&(l=+r.input.byDimDef.activeDimensionIndex),n.hc&&n.hc.qDimensionInfo[l]&&n.hc.qDimensionInfo[l].coloring&&n.hc.qDimensionInfo[l].coloring.colorMapRef&&r.input.byDimDef&&(r.input.byDimDef.type=\"libraryItem\",r.input.byDimDef.key=n.hc.qDimensionInfo[l].coloring.colorMapRef)}null!==(t=r.input.measureOverrides)&&void 0!==t&&t.every((function(e){return!e||!e.on}))&&(r.input=w(!1,{},r.input,{measureOverrides:null}))},palettes:function(){if(!r.palettes){var e=n.theme,t=[];(e&&e.getDataColorPickerPalettes()||[]).forEach((function(e){t.push({key:\"ui\",colors:e.colors})})),r.palettes=t}return r.palettes},getAuxiliaryData:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"/qHyperCubeDef\";if(!e.auxiliary&&!/qAttrDimInfo/.test(e.field))return Promise.resolve();var r=e.auxiliary||{},i=r.key;if(\"measure\"===e.fieldType)return o.getMeasure(i,n).catch((function(){}));if(\"dimension\"===e.fieldType){var a=\"\".concat(t,\"/\").concat(e.field).replace(\"qDimensionInfo\",\"qDimensions\").replace(\"qAttrDimInfo\",\"qAttributeDimensions\");return Promise.all([/qAttrDimInfo/.test(e.field)?o.getAttributeDimension(a,n).catch((function(){})):Promise.resolve(),i?o.getDimensionColorMap(i,n).catch((function(){})):Promise.resolve()])}return Promise.resolve()},getAuxiliarySettings:function(e,o){var i=this;return e.auxiliary||/qAttrDimInfo/.test(e.field)?(this.palettes(),this.getAuxiliaryData(e,o).then((function(o){if(!o)return{};if(\"measure\"===e.fieldType){if(o.coloring&&o.coloring.gradient){var a=r.pic.field(e.field);return Ie(i,o.coloring.gradient,e,a)}return{}}if(\"dimension\"===e.fieldType){var l={nil:e.nil,others:e.others},u=o[0],c=o[1]?o[1].colorMap:null;if(u){var s=n.picasso.data(\"q\")({data:{qDimensionInfo:[r.pic.field(e.field).raw(),r.pic.field(e.field).raw()],qMeasureInfo:[],qDataPages:u,qInterColumnSortOrder:[0,1],qMode:\"S\"}});l.legendDataset=s}return c?function(e,n,r,o){var i=o.external,a=o.field,l=t({},e);w(l,M(a,a.raw().qCardinal));var u=i.theme?i.theme.getDataColorPalettes()[0]:null;return n.nul&&(l.nil=r.resolveUIColor(n.nul)),n.oth&&(l.others=r.resolveUIColor(n.oth)),n.usePal?(l.palettes={categorical:n.pal},u&&!n.pal&&(l.palettes.categorical=u.key,w(l,M(a)))):!1===n.autoFill&&n.single?l.range=[r.resolveUIColor(n.single)]:n.autoFill&&(u&&(l.palettes={categorical:u.key}),w(l,M(a))),n.colors&&n.colors.length&&(l.explicit=function(e,t,n){for(var r={},o=0;o<e.length;o+=1)r[e[o].value]=e[o].baseColor;var i=[];return{domain:function(e){var o=e.data,a=[];i=[];for(var l=0;l<o.items.length;l++){var u=o.items[l],c=(u.text||u).label;r[c]&&-1===a.indexOf(u.value)&&(a.push(u.value),i.push(t.resolveUIColor(r[c])))}return a.push(-3,-2),i.push(n.others),i.push(n.nil),a},range:function(){return i}}}(n.colors,r,l)),l}(l,c,i,{external:n,field:r.pic.field(e.field)}):l}return{}}))):Promise.resolve()},resolveUIColor:function(e){if(e.index<0||void 0===e.index)return e.color;if(void 0===r.uiPalette&&(r.uiPalette=this.palettes().filter((function(e){return\"ui\"===e.key}))[0]||!1),!r.uiPalette)return e.color;var t=\"none\"===r.uiPalette.colors[0]?e.index:e.index-1;return void 0===r.uiPalette.colors[t]?e.color:r.uiPalette.colors[t]},settings:function(){if(this.palettes(),!r.settings){var e={primary:\"steelblue\",others:\"#aaa\",nil:\"#ddd\"},o=n.theme;o&&(e=t(t({},e),o.getDataColorSpecials())),r.settings=w(e,je(this,r,n,e))}return r.settings}};return i}var He=function(e,t){var n=e.fieldType,r={};if(t)if(\"measure\"===n){var o=t.coloring;o&&(r.measureGradient=o.gradient)}else if(\"dimension\"===n){var i=t[0],a=t[1];i&&(r.legendDataPage=i),a&&(r.dimValsData=a.colorMap)}return r},Re=function(e){throw e.isHandled=!0,e},ze=function(e,t){var n=t.layout,r=t.app;return n&&n.snapshotData?n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.dimValsData?Promise.resolve({colorMap:n.snapshotData.content.chartData.dimValsData}):Promise.reject():r&&r.getObject?r.getObject(\"ColorMapModel_\".concat(e)).then((function(e){return e.getLayout()})):Promise.reject()},Ve=function(e,t){var n=t.layout,r=t.app;return n&&n.snapshotData?n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.measureGradient?Promise.resolve({coloring:{gradient:n.snapshotData.content.chartData.measureGradient}}):Promise.reject():r&&r.getMeasure?r.getMeasure(e).then((function(e){return e.getMeasure()})):Promise.reject()},_e=function(e,t){var n=t.layout,r=t.model,o=t.app;if(n&&n.snapshotData)return n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.legendDataPage?Promise.resolve(n.snapshotData.content.chartData.legendDataPage):Promise.reject();if(r&&r.session&&o){return r.getHyperCubeData(e,[{qHeight:100,qLeft:0,qTop:0,qWidth:2}]).catch(Re)}return Promise.reject()};function Be(e){var t=e.hc,n=e.source,r=e.coloring,o={data:{extract:[{source:\"dummy\",field:0,filter:function(){return o.expando=t.qDataPages[0]?t.qDataPages[0].qArea.qTop:0,!1}},{source:n,field:r.field,trackBy:r.valueAccessor,reduce:\"first\",props:{row:{reduce:function(){return o.expando++}},text:{value:function(e){return e.qText},reduce:\"first\"}}}]},expando:0};return o}function Ye(e){return function(t){return\"object\"===r(t.datum[e])?t.datum[e].value:void 0}}function $e(e){return\"object\"===r(e.datum.isNull)?e.datum.isNull.value:-2===e.datum.value}function Ue(e){return-3===e.datum.value}var Ke={TITLE:{COLOR:void 0,FONT_SIZE:\"16px\",FONT_FAMILY:\"'Source Sans Pro', 'Arial', 'sans-serif'\"},LABEL:{COLOR:void 0,FONT_SIZE:void 0,FONT_FAMILY:\"'Source Sans Pro', 'Arial', 'sans-serif'\"}};function Ge(e){var t=e.theme,n=e.key,r=e.styleOverrides,o={title:{color:Ke.TITLE.COLOR,fontSize:Ke.TITLE.FONT_SIZE,fontFamily:Ke.TITLE.FONT_FAMILY},label:{color:Ke.LABEL.COLOR,fontSize:Ke.LABEL.FONT_SIZE,fontFamily:Ke.LABEL.FONT_FAMILY}};if(!t&&!r)return o;var i=r||{},a=i.title,l=i.label,u=function(e){var t=e.theme,n=e.key;return function(e,r,o,i){return void 0!==e?e:t?t.getStyle(n,r,o):i}}({theme:t,key:n});return o.title.color=u(null==a?void 0:a.color,\"legend.title\",\"color\",Ke.TITLE.COLOR),o.title.fontSize=u(null==a?void 0:a.fontSize,\"legend.title\",\"fontSize\",Ke.TITLE.FONT_SIZE),o.title.fontFamily=u(null==a?void 0:a.fontFamily,\"legend.title\",\"fontFamily\",Ke.TITLE.FONT_FAMILY),o.label.color=u(null==l?void 0:l.color,\"legend.label\",\"color\",Ke.LABEL.COLOR),o.label.fontSize=u(null==l?void 0:l.fontSize,\"legend.label\",\"fontSize\",Ke.LABEL.FONT_SIZE),o.label.fontFamily=u(null==l?void 0:l.fontFamily,\"legend.label\",\"fontFamily\",Ke.LABEL.FONT_FAMILY),o}var We=function(e,t,n){var r=e&&e.dock||void 0;if(\"auto\"!==r)return r||\"right\";if(t){var o=t.element.getBoundingClientRect();if(o.height>o.width)return\"bottom\"}return n?\"left\":\"right\"},Xe=function(e,t,n){return!(n.invalid||\"color\"===n.type||\"measure\"===n.mode&&t.qMeasureInfo.length<=1||\"dimension\"===n.mode)&&(\"function\"==typeof e.show?e.show():!1!==e.show)};function Ze(e,t){var n=e.styleReference,r=e.styleOverrides,o=e.chart,i=e.rtl,a=t.legendProps,l=t.coloring,u=t.theme,c=t.hc,s=Ge({theme:u,key:n,styleOverrides:r});return{layout:{minimumLayoutMode:\"MEDIUM\",dock:We(a,o,i)},show:\"function\"==typeof a.show?function(){return Xe(a,c,l)}:Xe(a,c,l),renderer:\"svg\",mounted:function(e){e.childNodes[0].style.pointerEvents=\"none\",e.style.overflow=\"hidden\"},settings:{title:{show:!1!==a.showTitle,wordBreak:\"break-word\",maxLines:2,lineHeight:1.2,text:l.label||\"\",fill:s.title.color,fontSize:s.title.fontSize,fontFamily:s.title.fontFamily}}}}function Je(e,n,r){return\"categorical\"===n.coloring.type?function(e,n,r){var o=Ze(e,n);if(!o.show)return!1;var i,a=e.key,l=e.styleReference,u=e.styleOverrides,c=e.viewState,s=e.rtl,f=e.settings,d=e.style,p=n.scaleKey,h=n.theme,m=n.scales,v=Ge({theme:h,key:l,styleOverrides:u}),y=o.layout.dock,g=\"left\"===y||\"right\"===y?{maxLines:2,wordBreak:\"break-word\"}:{},b={up:\"M13.6,11 L2.4,11 C2.28954305,11 2.2,10.9104569 2.2,10.8 C2.2,10.756726 2.21403557,10.7146192 2.24,10.68 L7.84,3.21333333 C7.90627417,3.12496777 8.03163444,3.10705916 8.12,3.17333333 C8.13516113,3.18470418 8.14862915,3.1981722 8.16,3.21333333 L13.76,10.68 C13.8262742,10.7683656 13.8083656,10.8937258 13.72,10.96 C13.6853808,10.9859644 13.643274,11 13.6,11 Z\",down:\"M2.4,4 L13.6,4 C13.7104569,4 13.8,4.08954305 13.8,4.2 C13.8,4.24327404 13.7859644,4.28538077 13.76,4.32 L8.16,11.7866667 C8.09372583,11.8750322 7.96836556,11.8929408 7.88,11.8266667 C7.86483887,11.8152958 7.85137085,11.8018278 7.84,11.7866667 L2.24,4.32 C2.17372583,4.23163444 2.19163444,4.10627417 2.28,4.04 C2.31461923,4.01403557 2.35672596,4 2.4,4 Z\",left:\"M11,2.4 L11,13.6 C11,13.7104569 10.9104569,13.8 10.8,13.8 C10.756726,13.8 10.7146192,13.7859644 10.68,13.76 L3.21333333,8.16 C3.12496777,8.09372583 3.10705916,7.96836556 3.17333333,7.88 C3.18470418,7.86483887 3.1981722,7.85137085 3.21333333,7.84 L10.68,2.24 C10.7683656,2.17372583 10.8937258,2.19163444 10.96,2.28 C10.9859644,2.31461923 11,2.35672596 11,2.4 Z\",right:\"M4,13.6 L4,2.4 C4,2.28954305 4.08954305,2.2 4.2,2.2 C4.24327404,2.2 4.28538077,2.21403557 4.32,2.24 L11.7866667,7.84 C11.8750322,7.90627417 11.8929408,8.03163444 11.8266667,8.12 C11.8152958,8.13516113 11.8018278,8.14862915 11.7866667,8.16 L4.32,13.76 C4.23163444,13.8262742 4.10627417,13.8083656 4.04,13.72 C4.01403557,13.6853808 4,13.643274 4,13.6 Z\"};\"dimension\"===n.coloring.fieldType&&(i=function(e){return e.datum.value>=0||-3===e.datum.value});var x=\"\".concat(p,\"Legend\");return w(!0,o,{type:\"legend-cat\",key:\"\".concat(a,\"-cat\"),scale:x in m?x:p,settings:{layout:{scrollOffset:function(){return c?c.get(\"legendScrollOffset\"):void 0},size:-1!==[\"top\",\"bottom\"].indexOf(o.layout.dock)?2:1,direction:s?\"rtl\":\"ltr\",horizontal:20},item:{show:i,label:t({fill:v.label.color,fontSize:v.label.fontSize,fontFamily:v.label.fontFamily},g)},navigation:{disabled:r,button:{content:function(e,t){var n=t.direction;return e(\"i\",{style:{\"pointer-events\":\"none\",fontSize:\"12px\",display:\"inline-block\",fontStyle:\"normal\",lineHeight:\"0\",textAlign:\"center\",textTransform:\"none\",verticalAlign:\"-0.125em\",textRendering:\"optimizelegibility\",margin:\"0px\"}},[e(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"1em\",height:\"1em\",viewBox:\"0 0 16 16\",fill:\"currentColor\"},[e(\"path\",{d:b[n]})])])}}}},brush:{consume:[{context:\"selection\",data:[\"\",a],style:{inactive:{opacity:.3}}}]}},{settings:f,style:d})}(e,n,r):\"continuous\"===n.coloring.type&&function(e,t){var n,r=e.key,o=e.styleReference,i=e.styleOverrides,a=e.rtl,l=e.settings,u=e.style,c=t.scaleKey,s=t.theme,f=\"\".concat(c,\"Range\"),d=Ze(e,t);if(!d.show)return!1;var p=Ge({theme:s,key:o,styleOverrides:i}),h=d.layout.dock,m=\"right\"===h||\"left\"===h,v=null===(n=t.scales)||void 0===n?void 0:n[f];return m&&v&&(v.invert=!0),w(!0,d,{type:\"legend-seq\",key:\"\".concat(r,\"-seq\"),settings:{fill:c,major:f,length:1,tick:{fill:p.label.color,fontSize:p.label.fontSize,fontFamily:p.label.fontFamily},title:{anchor:!a||\"top\"!==d.layout.dock&&\"bottom\"!==d.layout.dock?void 0:\"right\",padding:parseFloat(d.settings.title.fontSize)||16}}},{settings:l,style:u})}(e,n)}function Qe(e,t,n){var r=[],o=[],i=Je(e,t,n&&n.navigationDisabled);return r.push(i),i&&\"legend-cat\"===i.type&&(o.push(function(e){var t=e.key,n=e.requireFailure,r=e.recognizeWith,o=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).actions;return{key:\"event:tap-\".concat(t),type:\"Tap\",requireFailure:n,recognizeWith:r,options:{event:\"legendtap\",interval:10,pointers:1,enable:function(e,n){var r;if(!n)return!0;if(null!=o&&null!==(r=o.interact)&&void 0!==r&&r.enabled&&!o.interact.enabled())return!1;if(!this.chart.componentsFromPoint({x:n.center.x,y:n.center.y}).some((function(e){return e.key===\"\".concat(t,\"-cat\")})))return!1;var i=n.srcEvent.target;return!!(i&&i.hasAttribute(\"data-action\")&&i.hasAttribute(\"data-component-key\"))||!(!i||!i.childNodes[0]||\"BUTTON\"!==i.childNodes[0].nodeName)}},events:{legendtap:function(e){e.preventDefault();var t=e.srcEvent.target;t&&t.hasAttribute(\"data-action\")&&t.hasAttribute(\"data-component-key\")&&this.chart.component(t.getAttribute(\"data-component-key\")).emit(t.getAttribute(\"data-action\"))}}}}(e,n)),o.push(function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.eventName,r=t.key,o=t.requireFailure,i=t.recognizeWith,l=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).actions;return{key:\"event:pan-\".concat(r),type:\"Pan\",requireFailure:o,recognizeWith:i,options:{event:n,pointers:1,threshold:10,enable:function(e,t){var o;return this.started===n||!t||!(null!=l&&null!==(o=l.interact)&&void 0!==o&&o.enabled&&!l.interact.enabled())&&this.chart.componentsFromPoint({x:t.center.x,y:t.center.y}).some((function(e){return e.key===\"\".concat(r,\"-cat\")}))}},events:(e={},a(e,\"\".concat(n,\"start\"),(function(e){e.preventDefault(),this.started!==n&&(this.started=n,this.chart.component(\"\".concat(r,\"-cat\")).emit(\"panstart\",e))})),a(e,\"\".concat(n,\"move\"),(function(e){e.preventDefault(),this.chart.component(\"\".concat(r,\"-cat\")).emit(\"panmove\",e)})),a(e,\"\".concat(n,\"end\"),(function(e){e.preventDefault(),this.chart.component(\"\".concat(r,\"-cat\")).emit(\"panend\",e),this.started=!1})),e)}}(e,n))),{interactions:o,components:r}}var et=function(e){return\"rgba(\".concat([(16711680&e)>>16,(65280&e)>>8,255&e,((4278190080&e)>>>24)/255].join(\",\"),\")\")};function tt(e){var n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.auto,n=Fe(e.resources).auto(t||function(){return{mode:\"byDimension\",persistent:!1,useDimColVal:!0,byDimDef:{activeDimensionIndex:0,type:\"expression\",label:\"\"}}}).getDimensionColorMap((function(e,t){var n=t.layout,r=t.app;return ze(e,{layout:n,app:r})})).getMeasure((function(e,t){var n=t.layout,r=t.app;return Ve(e,{layout:n,app:r})})).getAttributeDimension((function(e,t){var n=t.layout,r=t.model,o=t.app;return _e(e,{layout:n,model:r,app:o})}));return n.getSnapshotData=He,n}({resources:e}),r={},o={},i=function(e){return o.settings||(e||console.warn(\"settings() called before auxiliarySettings()\"),o.settings=n.settings()),o.settings},l={config:function(i){if(r=t({},i),o={},!r.key)throw new Error(\"Missing key\");n.set(t(t({},e),r))},auto:function(e){return e?(n.auto(e),l):n.auto()},getAuxiliarySettings:function(e){return o.auxiliarySettings?Promise.resolve(o.auxiliarySettings):n.getAuxiliarySettings(i(!0),e).then((function(e){return o.auxiliarySettings=e||{},o.settings=t(t({},o.settings),o.auxiliarySettings),o.scales=void 0,o.color=void 0,o.auxiliarySettings}))},getAuxiliaryData:function(){return n.getAuxiliaryData(i())},getSnapshotData:function(e){var t=i();return n.getAuxiliaryData(t,e).then((function(e){return n.getSnapshotData(t,e)}))},resolveUIColor:function(e){return n.resolveUIColor(e)},settings:function(){var e=i();return{mode:e.mode,type:e.type,label:e.label,field:e.field,fieldType:e.fieldType,nil:e.nil,others:e.others,primary:e.primary}},settingsForMeasure:function(e){var t,n=null===(t=i().measureOverrides)||void 0===t?void 0:t[e];return n||this.settings()},isSelectionLocked:function(e){var t=e.isMeasureSelectionLocked;return function(e,t){var n=t.isMeasureSelectionLocked;return\"field\"!==e.mode||(\"dimension\"===e.fieldType?e.isFieldLocked:\"measure\"!==e.fieldType||n)}(i(),{isMeasureSelectionLocked:t})},palettes:function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.colorProps,n=e.coloring,r=e.theme,o=[];if(n&&n.palettes&&r){var i=n.palettes.categorical||t.dimensionScheme,a=r.getDataColorPalettes().filter((function(e){return e.key===i}))[0]||r.getDataColorPalettes()[0];i&&a&&o.push({key:\"categorical\",colors:a.colors});var l=n.palettes.metric||t.measureScheme,u=r.getDataColorScales().filter((function(e){return e.key===l}))[0];if(u){var s=u.colors[0]?u.colors:[[]].concat(c(u.colors.slice(1)));s=Array.isArray(s[0])?s.map((function(e){return e.slice().reverse()})):s.slice().reverse(),o.push({key:\"quant\",colors:s})}}return o}({coloring:i(),colorProps:r.colorProps,theme:r.theme})},scales:function(){return o.scales=o.scales||function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.hc,r=e.coloring,o=e.rtl,i=e.key,a=e.source,l=e.picasso,u={},s=i;if(r){var f={override:!0,domain:r.explicit&&\"function\"==typeof r.explicit.domain?r.explicit.domain:[].concat(c((r.explicit||{}).domain||[]),[-3,-2]),range:r.explicit&&\"function\"==typeof r.explicit.range?r.explicit.range:[].concat(c((r.explicit||{}).range||[]),[r.others,r.nil])};if(\"field\"===r.mode){if(\"dimension\"===r.fieldType){var d,p=Be({hc:n,source:a,coloring:r}).data;if(r.legendDataset){var h=0,m={};l.data(\"q\")({data:n}).extract({field:r.field,trackBy:r.valueAccessor,reduce:function(e){var t=e[0];return m[t]=h++,e[0]}}),d={source:\"attrDim\",extract:{field:\"qDimensionInfo/0\",filter:function(e){return e.qElemNumber>=0},props:{row:{value:function(e){return m[e.qElemNumber]}}}}}}var v={data:p,range:r.range,domain:r.domain,explicit:f,type:\"categorical-color\",label:function(e){return e.datum.text&&e.datum.text.value?e.datum.text.value:e.datum.label}};u[s]=v,d&&(u[\"\".concat(s,\"Legend\")]=t(t({},v),{},{data:d})),n&&n.qHasOtherValues&&d&&((d||v.data).amend=[{label:n.qDimensionInfo[0].othersLabel,source:{key:\"qHyperCube\",field:\"qDimensionInfo/0\"},row:{value:-3},value:-3}])}else if(\"measure\"===r.fieldType){var y={data:{field:r.field},min:r.min,max:r.max};u[s]=w({},y,{type:\"categorical\"===r.type?\"threshold-color\":\"sequential-color\",range:r.range,domain:r.domain,invert:r.reverse}),\"sequential-color\"===u[s].type&&(u[\"\".concat(s,\"Range\")]=w({},y,{invert:!!o}))}else if(\"color\"!==r.type)throw new Error(\"UNUSED FIELD\")}else if(\"dimension\"===r.mode){var g={data:n.qDimensionInfo.map((function(e,t){return t})),label:function(e){return n.qDimensionInfo[e.datum.value].qFallbackTitle},explicit:f,type:\"categorical-color\"};u[s]=g}else if(\"measure\"===r.mode){var b={data:n.qMeasureInfo.map((function(e,t){return t})).filter((function(e){var t,n;return!(null!==(t=r.explicit)&&void 0!==t&&null!==(n=t.exclude)&&void 0!==n&&n.includes(e))})),label:function(e){return n.qMeasureInfo[e.datum.value].qFallbackTitle},explicit:f,type:\"categorical-color\"};u[s]=b}}return u}({hc:r.hc,coloring:i(),key:r.key,source:r.source,picasso:e.picasso}),o.scales},color:function(){return o.color=o.color||function(e){var t=e.coloring,n=e.scales,r=e.key,o=Ye(r),i=Ye(\"\".concat(r,\"IsAnOther\")),a=function(e,t){var r=e.fieldType,a=e.invalid,l=e.mode,u=e.nil,c=e.others,s=e.primary,f=e.type;return a?function(e){return Ue(e)||i(e)?c:u}:n[t]?function(e){return Ue(e)?c:$e(e)||-2===o(e)&&\"dimension\"===r||\"NaN\"===o(e)?u:i(e)?c:e.resources.scale(t)(o(e))||c}:\"constant\"===l?function(e){return Ue(e)||i(e)?c:$e(e)?u:s}:\"color\"===f?function(e){return Ue(e)||i(e)?c:$e(e)?u:o(e)||c}:null},l=a(t,r);if(t.measureOverrides){var u=Ye(\"\".concat(r,\"MeasureIdx\")),c=t.measureOverrides.map((function(e){return e&&a(e)}));return function(e){var t=u(e);return c[t]?c[t](e):l(e)}}return l}({coloring:i(),scales:this.scales(),key:r.key}),o.color},datumProps:function(e){return function(e){var t,n,r=e.hc,o=e.coloring,i=e.scales,l=e.key,u=e.addMeasureIx,c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,s=l,f=o.nil;\"field\"===o.mode&&o.field?t=o.field:i[l]&&\"field\"===o.mode&&(t=i[l].data.field||o.field),t?(n={field:t,reduce:\"first\"},\"color\"===o.type&&(n.value=function(e){return\"NaN\"!==e.qNum?et(e.qNum):e.qText&&$(e.qText)?e.qText:f})):\"dimension\"===o.mode?n=void 0!==o.field?o.field:r.qDimensionInfo.length-1:\"measure\"===o.mode&&(n=c);var d=a({},s,n);return r.qDimensionInfo.length>1&&(d[\"\".concat(s,\"IsAnOther\")]={fields:r.qDimensionInfo.map((function(e,t){return{field:\"qDimensionInfo/\".concat(t)}})),value:function(e){return-1!==e.indexOf(-3)}}),u&&(d[\"\".concat(s,\"MeasureIdx\")]=c),d}({coloring:this.settingsForMeasure(e),scales:this.scales(),key:r.key,hc:r.hc,addMeasureIx:i().measureOverrides},e)},data:function(){var e=i(),t={key:\"dummy\",data:[[\"field\"],[\"a\"]]};return e.legendDataset?[t,{type:\"q\",key:\"attrDim\",data:e.legendDataset.raw(),config:{localeInfo:r.localeInfo}}]:[t]},legend:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.eventName,n=e.key,o=e.viewState,a=e.chart,l=e.rtl,u=e.styleReference,c=void 0===u?\"object.legend\":u,s=e.styleOverrides,f=e.settings,d=void 0===f?{}:f,p=e.style,h=void 0===p?{}:p,m=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Qe({eventName:t,key:n,rtl:l,viewState:o,chart:a,styleReference:c,styleOverrides:s,settings:d,style:h},{legendProps:r.legendProps,scaleKey:r.key,coloring:i(),theme:r.theme,hc:r.hc,scales:this.scales()},m)}};return l}var nt=function(e){return e.baseColor||e.coloring&&e.coloring.baseColor};function rt(e){var t=e.qHyperCube,n=t.qDimensionInfo,r=t.qMeasureInfo,o=n.some(nt),i=r.some(nt),a=e.color.useBaseColors;return\"measure\"===a&&!i||\"dimension\"===a&&!o?\"off\":a}function ot(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t(t(t({},e),n),{},{colorProps:t(t({},e.colorProps),n.colorProps||{})});return r}var it=function(e){return e.baseColor||e.coloring&&e.coloring.baseColor};function at(e){var t,n=e.qHyperCube.qDimensionInfo.some(it),r=e.qHyperCube.qMeasureInfo.some(it),o=n?\"dimension\":void 0;return{mode:\"primary\",useBaseColors:null!==(t=null!=o?o:r?\"measure\":void 0)&&void 0!==t?t:\"off\",paletteColor:null}}var lt=function(){};function ut(e){var n,r,o,i,a=e.picasso,l=e.model,u=e.app,c=e.translator,s=e.layoutService,f=void 0===s?void 0:s,d=e.createConfig,p=void 0===d?lt:d,h=e.config,m=void 0===h?{}:h,v=e.custom,y=void 0===v?{}:v,g=m.localeInfo,b=m.key,x=m.theme,q=void 0===x?void 0:x,w=m.auto,M=void 0===w?void 0:w,k=m.definitionPath,S=null==f||null===(n=f.getLayout)||void 0===n?void 0:n.call(f),C={theme:q,key:b,localeInfo:g,layout:S,hc:null==f||null===(r=f.getHyperCube)||void 0===r?void 0:r.call(f),legendProps:null==f||null===(o=f.getLayoutValue)||void 0===o?void 0:o.call(f,\"legend\"),colorProps:t(t({},null==f||null===(i=f.getLayoutValue)||void 0===i?void 0:i.call(f,\"color\")),{},{useBaseColors:S?rt(S):void 0})},D=tt({picasso:a,model:l,app:u,translator:c,auto:M});!1!==M&&D.auto((function(e){return M?M({layout:e,defaultAuto:at}):at(e)}));var I=!1,O={getColor:function(){return D.color()},getPaletteColor:function(e){var t=e.index,n=e.color;return D.resolveUIColor({index:t,color:n})},getData:function(){return D.data()},getDatumProps:function(e){return D.datumProps(e)},getSnapshotData:function(){return D.getSnapshotData(k)},getSettingsForMeasure:function(e){return D.settingsForMeasure(e)},getSettings:function(){return D.settings()},getLegend:function(e,t){return D.legend(e,t)},getScales:function(){return D.scales()},getPalettes:function(){return D.palettes()},isSelectionLocked:function(e){var t=e.isMeasureSelectionLocked;return D.isSelectionLocked({isMeasureSelectionLocked:t})},isInitialized:function(){return I},custom:t({},y),initialize:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.createConfig,n=void 0===t?p:t,r=n({getUseBaseColors:rt}),o=ot(C,r);D.config(o);var i=D.getAuxiliarySettings(k).then((function(){I=!0}));return i}};return O}function ct(e){var t=e.chart,n=e.logicalSize;if(n)return n;var r=t?t.element.getBoundingClientRect():{};return{width:r.width,height:r.height}}var st=[{key:\"FULL\",size:{width:550,height:450}},{key:\"MEDIUM\",size:{width:400,height:220}},{key:\"SMALL\",size:{width:300,height:150}},{key:\"XSMALL\",size:{width:150,height:75}}];function ft(e){var t=e.width,n=e.height,r=st.filter((function(e){return t>=e.size.width&&n>=e.size.height})).shift();return r?r.key:\"SPARK\"}var dt={left:\"right\",right:\"left\",top:\"bottom\",bottom:\"top\",near:\"far\",far:\"near\"};function pt(e){var t=e.orientation,n=e.dock,r=e.btt,o=e.rtl,i=\"horizontal\"===t?function(e){return\"bottom\"===e||\"near\"===e?\"bottom\":\"top\"}(n):function(e,t){var n=\"left\"===e||\"near\"===e?\"left\":\"right\";return t?dt[n]:n}(n,o),a=function(e,t,n){return\"vertical\"===e?t?\"bottom\":\"top\":n?\"right\":\"left\"}(t,r,o);return{current:i,opposite:dt[i],start:a,end:dt[a]}}function ht(e){var n=e.chart,r=e.layoutService,o=e.config,i=void 0===o?{}:o,a=i.logicalSize,l=void 0!==a&&a,u=i.rtl,c=void 0!==u&&u,s={chart:{size:void 0,mode:void 0},x:{dock:void 0,opposite:void 0,size:void 0},y:{dock:void 0,opposite:void 0,size:void 0}},f={type:\"x-y\",config:t({},i),meta:s,update:function(e){s.chart.size={width:e.width,height:e.height},s.chart.mode=ft(e);var t=pt({orientation:\"horizontal\",dock:r.getLayoutValue(\"xAxis.dock\"),btt:!1,rtl:c}),n=t.current,o=t.opposite;s.x.dock=n,s.x.opposite=o,s.x.size=e.width;var i=pt({orientation:\"vertical\",dock:r.getLayoutValue(\"yAxis.dock\"),btt:!0,rtl:c}),a=i.current,l=i.opposite;s.y.dock=a,s.y.opposite=l,s.y.size=e.height}};return f.update(ct({chart:n,logicalSize:l})),f}var mt=\"vertical\",vt=\"horizontal\";function yt(e){var n=e.chart,r=e.layoutService,o=e.config,i=void 0===o?{}:o,a=e.typeConfig,l=void 0===a?{}:a,u=i.logicalSize,c=void 0!==u&&u,s=i.rtl,f=void 0!==s&&s,d=l.fallback===mt?mt:vt,p=!!l.invert,h=l.measureAxes||[{ref:\"measureAxis\",name:\"minor\"}],m={chart:{orientation:void 0,size:void 0,mode:void 0},major:{orientation:void 0,dock:void 0,opposite:void 0,size:void 0}},v={type:\"major-minor\",config:t({},i),meta:m,update:function(e){m.chart.orientation=r.getLayoutValue(\"orientation\",d),m.chart.size={width:e.width,height:e.height},m.chart.mode=ft(e),m.major.orientation=function(e){var t=e.layoutService,n=e.chartOrientation,r=e.invert;return t.meta.isContinuous?vt:r?n===mt?vt:mt:n}({layoutService:r,chartOrientation:m.chart.orientation,invert:p});var t=pt({orientation:m.major.orientation,dock:r.getLayoutValue(\"dimensionAxis.dock\"),btt:!1,rtl:f}),n=t.current,o=t.opposite;m.major.dock=n,m.major.opposite=o,m.major.size=m.major.orientation===mt?e.height:e.width,h.forEach((function(t){var n={};n.orientation=m.major.orientation===mt?vt:mt;var o=pt({orientation:n.orientation,dock:r.getLayoutValue(\"\".concat(t.ref,\".dock\")),btt:!0,rtl:f}),i=o.current,a=o.opposite,l=o.start,u=o.end;n.dock=i,n.opposite=a,n.start=l,n.end=u,n.size=n.orientation===mt?e.height:e.width,m[t.name]=n}))}};return v.update(ct({chart:n,logicalSize:c})),v}function gt(e){var t=e.chart,n=e.layoutService,r=e.config,o=void 0===r?{}:r,i=e.typeConfig,a=void 0===i?{}:i;return(\"x-y\"===a.type?ht:yt)({chart:t,layoutService:n,config:o,typeConfig:a})}function bt(e,t,n){if(void 0===e||void 0===t)return n;for(var r=t.split(\".\"),o=e,i=0;i<r.length;++i){var a=r[i];if(void 0===o[a])return n;o=o[a]}return o}var xt=[\"__proto__\",\"constructor\"];function qt(e,t,n){if(void 0!==e&&void 0!==t){var r=t.split(\".\"),o=r[r.length-1];if(!xt.some((function(e){return r.includes(e)}))){for(var i=e,a=0;a<r.length-1;++a){var l=r[a];void 0===i[l]&&(i[l]=Number.isNaN(+r[a+1])?{}:[]),i=i[l]}void 0!==n?i[o]=n:delete i[o]}}}function wt(){var e={};return{get:function(t){return e[t]},set:function(t,n){return e[t]=n,n},has:function(t){return t in e},remove:function(t){delete e[t]},empty:function(){e={}}}}function Mt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){return e},n=wt();return function(r){var o=t(r);return n.has(o)?n.get(o):n.set(o,e(r))}}function kt(e){var n=t({},e),r={},o={},i=!1,a={get:function(e){return n[e]},set:function(e,t){var a=n[e];!i&&r[e]?n[e]=r[e](t,a):n[e]=t,!i&&o[e]&&o[e](n[e],a)},preventSet:function(e,t){i=!0,a.set(e,t),i=!1},intercept:function(e,t){r[e]=t},onChanged:function(e,t){o[e]=t}};return a}function St(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50;return function(){for(var r=this,o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];var l=function(){return e.apply(r,i)};clearTimeout(t),t=setTimeout(l,n)}}function Ct(e){var t,n,r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,i=0;return function(){t=this;for(var a=arguments.length,l=new Array(a),u=0;u<a;u++)l[u]=arguments[u];n=l;var c=Date.now()-i,s=function(){i=Date.now(),r=0,e.apply(t,n)};r||(c>=o?s():r=setTimeout(s,o-c))}}var Dt={ERROR_CODES:[7005],DIMENSION:\"qDimensionInfo\",MEASURE:\"qMeasureInfo\"},It=function(e,t){return e[t].reduce((function(e,t,n){var r;return(r=t,Dt.ERROR_CODES.some((function(e){var t;return e===(null===(t=r.qError)||void 0===t?void 0:t.qErrorCode)})))?e.filtered.push(n):e.reduced.push(t),e}),{reduced:[],filtered:[]})};function Ot(e){var t;return((null==e||null===(t=e.qHyperCube)||void 0===t?void 0:t.qDimensionInfo)||[]).map((function(e){var t,n=null===(t=e.qCardinalities)||void 0===t?void 0:t.qHypercubeCardinal;if(n)return n;var r=e.qStateCounts||{},o=r.qLocked,i=void 0===o?0:o,a=r.qOption,l=void 0===a?0:a,u=r.qSelected;return i+l+(void 0===u?0:u)}))}function Et(e){switch(e.qHyperCube.qMode){case\"S\":return function(e){var t=e.qHyperCube.qSize;return{refs:{dataPages:\"qHyperCube.qDataPages\"},size:{x:t.qcx,y:t.qcy,dimensions:Ot(e)}}}(e);case\"K\":return function(e){var t=Ot(e);return{refs:{dataPages:\"qHyperCube.qStackedDataPages\"},size:{x:e.qHyperCube.qSize.qcx,y:t[0],dimensions:t}}}(e);case\"T\":return function(e){var t=Ot(e);return{refs:{dataPages:\"qHyperCube.qTreeDataPages\"},size:{x:e.qHyperCube.qSize.qcx,y:t[0],dimensions:t}}}(e);default:throw new Error(\"Mode not supported\")}}function At(e){var n=e.source,r=e.metaAdditionsFn,o=e.experimental,i=void 0===o?{filter:!1}:o,a=w(!0,{},n),l=i.filter?function(e){var t=e.qHyperCube,n=It(t,Dt.DIMENSION),r=n.reduced,o=n.filtered;t[Dt.DIMENSION]=r;var i=It(t,Dt.MEASURE),a=i.reduced,l=i.filtered;return t[Dt.MEASURE]=a,{dimensions:o,measures:l}}(a):{dimensions:[],measures:[]},u=Et(a),c=function(){var e=function(e){var n=e.layout,r=e.additionsFn,o=void 0===r?function(){return{}}:r,i=e.additionsProps,a=void 0===i?{}:i,l=n.qHyperCube,u=l.qDimensionInfo,c=l.qMeasureInfo,s=l.qMode,f=u.length,d=c.length,p=t({mode:{S:\"S\"===s,P:\"P\"===s,K:\"K\"===s,T:\"T\"===s},dimensionCount:f,measureCount:d,hasMultipleDimensions:f>1,hasMultipleMeasures:d>1,isOneDimensional:1===f,isTwoDimensional:2===f},a);return t(t({},p),o({layout:n,meta:p}))}({layout:a,additionsFn:r,additionsProps:{size:u.size}});return e.filteredFields=l,e},s={refs:t({},u.refs),meta:c(),getLayout:function(){return a},getLayoutValue:function(e,t){return bt(a,e,t)},setLayoutValue:function(e,t){qt(a,e,t),u=Et(a),s.meta=c()},getHyperCube:function(){return a.qHyperCube},getHyperCubeValue:function(e,t){return bt(a.qHyperCube,e,t)},setHyperCubeValue:function(e,t){qt(a.qHyperCube,e,t),u=Et(a),s.meta=c()},getDataPages:function(){return bt(a,u.refs.dataPages)},setDataPages:function(e){qt(a,u.refs.dataPages,e),s.meta=c()}};return s}function Nt(e){var t=e.originalArray,n=e.newArray,r=e.matchKey;return Array.isArray(t)&&t.length?(n.forEach((function(e){var n=-1;t.some((function(t,o){return t[r]&&t[r]===e[r]&&(n=o),n})),n>-1?t[n]=e:t.push(e)})),t):n}function Lt(e){var o=e.picassoInstance,a=e.plugins,l=e.pluginArgs,s=void 0===l?{}:l,f={initialized:!1,definitions:[]};return{initialize:function(){return i(n().mark((function e(){var l,u,d,p;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!f.initialized){e.next=2;break}return e.abrupt(\"return\");case 2:return u=Promise.all(a.filter((function(e){return\"custom-component\"===e.info.type})).map(function(){var e=i(n().mark((function e(i){var a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i.info.componentName){e.next=2;break}throw new Error(\"plugin-service: Custom component is missing componentName\");case 2:return e.next=4,i.fn(t({},s));case 4:if(\"object\"===r(a=e.sent)){e.next=7;break}throw new Error(\"plugin-service: Custom component needs to be an object\");case 7:o.component(i.info.componentName,a);case 8:case\"end\":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())),d=Promise.all(a.filter((function(e){return\"component-definition\"===e.info.type})).map((function(e){return e.fn(t({},s))}))),e.next=6,Promise.all([u,d]);case 6:p=e.sent,f.initialized=!0,(l=f.definitions).push.apply(l,c(p[1]));case 9:case\"end\":return e.stop()}}),e)})))()},extendComponents:function(e){return f.initialized?(f.definitions.filter(Boolean).forEach((function(t){var n=u(e.filter((function(e){return e.key&&e.key===t.key})),1)[0];if(n){var o=w(!0,{},n.brush);w(!0,n,t),t.brush&&(n.brush=function(e,t){return\"object\"===r(e)&&Object.keys(e).length?(Array.isArray(t.consume)&&(e.consume=Nt({originalArray:e.consume,newArray:t.consume,matchKey:\"context\"})),Array.isArray(t.trigger)&&(e.trigger=Nt({originalArray:e.trigger,newArray:t.trigger,matchKey:\"on\"})),e):t}(o,t.brush))}else e.push(t)})),e):e}}}function Tt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Pt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Tt(Object(n),!0).forEach((function(t){jt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Tt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function jt(e,t,n){return(t=function(e){var t=function(e,t){if(\"object\"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||\"default\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ft=Object.prototype.hasOwnProperty,Ht=Object.prototype.toString,Rt=Object.defineProperty,zt=Object.getOwnPropertyDescriptor,Vt=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===Ht.call(e)},_t=function(e){if(!e||\"[object Object]\"!==Ht.call(e))return!1;var t,n=Ft.call(e,\"constructor\"),r=e.constructor&&e.constructor.prototype&&Ft.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!r)return!1;for(t in e);return void 0===t||Ft.call(e,t)},Bt=function(e,t){Rt&&\"__proto__\"===t.name?Rt(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},Yt=function(e,t){if(\"__proto__\"===t){if(!Ft.call(e,t))return;if(zt)return zt(e,t).value}return e[t]},$t=function e(){var t,n,r,o,i,a,l=arguments[0],u=1,c=arguments.length,s=!1;for(\"boolean\"==typeof l&&(s=l,l=arguments[1]||{},u=2),(null==l||\"object\"!=typeof l&&\"function\"!=typeof l)&&(l={});u<c;++u)if(null!=(t=arguments[u]))for(n in t)r=Yt(l,n),l!==(o=Yt(t,n))&&(s&&o&&(_t(o)||(i=Vt(o)))?(i?(i=!1,a=r&&Vt(r)?r:[]):a=r&&_t(r)?r:{},Bt(l,{name:n,newValue:e(s,a,o)})):void 0!==o&&Bt(l,{name:n,newValue:o}));return l};function Ut(e,t,n,r){if(!e)return-1;const o=n.cache,i=e.origin?e.origin():null;i&&(e=i);let a=o.fields.indexOf(e),l=-1,u=-1;if(-1===a)for(let t=0;t<o.wrappedFields.length;t++)if(u=o.wrappedFields[t].attrDims.map((e=>e.instance)).indexOf(e),l=o.wrappedFields[t].attrExps.map((e=>e.instance)).indexOf(e),-1!==u||-1!==l){a=t;break}if(Array.isArray(r)&&r.some(((e,t)=>e!==t))){const e=r.indexOf(a);-1!==e&&(a=e)}return a-=t.qArea.qLeft,a<0||a>=t.qArea.qWidth?-1:u>=0?e=>e[a].qAttrDims.qValues[u]:l>=0?e=>e[a].qAttrExps.qValues[l]:e=>e[a]}function Kt(e,t,n){let{key:r}=n;const o={value:\"function\"==typeof e.value?e.value(t):void 0!==e.value?e.value:t};return o.label=\"function\"==typeof e.label?e.label(t):void 0!==e.label?String(e.label):String(o.value),e.field&&(o.source={key:r,field:e.field.key()}),o}function Gt(e){let{cache:t,f:n,mainCell:r,p:o,prop:i,page:a,rowIdx:l,row:u,sourceKey:c,target:s,targetProp:f,columnOrder:d}=e,p=r;if(o.field&&o.field!==n){const e=Ut(o.field,a,{cache:t},d);if(-1===e)return;p=$t({qRow:l},e(u))}s[f]=Kt(o,p,{key:c})}function Wt(e,t,n,r){const o=Array.isArray(e)?e:[e];let i=[];for(let e=0;e<o.length;e++)if(void 0!==o[e].field){const a=t.raw(),l=t.key(),u=\"object\"==typeof o[e].field?o[e].field:t.field(o[e].field),{props:c,main:s}=r.normalizeConfig(o[e],t),f=Object.keys(c),d=!!o[e].trackBy,p=typeof o[e].trackBy,h={},m=[],v=[];for(let t=0;t<a.qDataPages.length;t++){const i=Ut(u,a.qDataPages[t],{cache:n},a.qColumnOrder);if(-1!==i)for(let y=0;y<a.qDataPages[t].qMatrix.length;y++){const g=a.qDataPages[t].qArea.qTop+y,b=$t({qRow:g},i(a.qDataPages[t].qMatrix[y])),x=Kt(s,b,{key:l});if(!(s.filter&&!s.filter(b))){for(let e=0;e<f.length;e++){const r=c[f[e]];let o=r.fields||[r];r.fields&&(x[f[e]]=[]);for(let i=0;i<o.length;i++)Gt({cache:n,f:u,mainCell:b,p:o[i],prop:f[e],props:c,page:a.qDataPages[t],rowIdx:g,row:a.qDataPages[t].qMatrix[y],sourceKey:l,target:r.fields?x[f[e]]:x,targetProp:r.fields?i:f[e],columnOrder:a.qColumnOrder});if(r.fields){const t=x[f[e]].map((e=>e.value)),n=x[f[e]].map((e=>e.label));x[f[e]]={value:\"function\"==typeof r.value?r.value(t):void 0!==r.value?r.value:t,label:\"function\"==typeof r.label?r.label(n):void 0!==r.label?String(r.label):String(x[f[e]].value)}}}d&&r.track({cfg:o[e],itemData:b,obj:x,target:m,tracker:h,trackType:p}),v.push(x)}}}const y=d?r.collect(m,{main:s,propsArr:f,props:c}):v;i=[...i,...y]}return i}function Xt(e){var t=0,n=e.children,r=n&&n.length;if(r)for(;--r>=0;)t+=n[r].value;else t=1;e.value=t}function Zt(e,t){e instanceof Map?(e=[void 0,e],void 0===t&&(t=Qt)):void 0===t&&(t=Jt);for(var n,r,o,i,a,l=new nn(e),u=[l];n=u.pop();)if((o=t(n.data))&&(a=(o=Array.from(o)).length))for(n.children=o,i=a-1;i>=0;--i)u.push(r=o[i]=new nn(o[i])),r.parent=n,r.depth=n.depth+1;return l.eachBefore(tn)}function Jt(e){return e.children}function Qt(e){return Array.isArray(e)?e[1]:null}function en(e){void 0!==e.data.value&&(e.value=e.data.value),e.data=e.data.data}function tn(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function nn(e){this.data=e,this.depth=this.height=0,this.parent=null}function rn(e){return null==e?null:function(e){if(\"function\"!=typeof e)throw new Error;return e}(e)}nn.prototype=Zt.prototype={constructor:nn,count:function(){return this.eachAfter(Xt)},each:function(e,t){let n=-1;for(const r of this)e.call(t,r,++n,this);return this},eachAfter:function(e,t){for(var n,r,o,i=this,a=[i],l=[],u=-1;i=a.pop();)if(l.push(i),n=i.children)for(r=0,o=n.length;r<o;++r)a.push(n[r]);for(;i=l.pop();)e.call(t,i,++u,this);return this},eachBefore:function(e,t){for(var n,r,o=this,i=[o],a=-1;o=i.pop();)if(e.call(t,o,++a,this),n=o.children)for(r=n.length-1;r>=0;--r)i.push(n[r]);return this},find:function(e,t){let n=-1;for(const r of this)if(e.call(t,r,++n,this))return r},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,r=t.children,o=r&&r.length;--o>=0;)n+=r[o].value;t.value=n}))},sort:function(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))},path:function(e){for(var t=this,n=function(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),o=null;e=n.pop(),t=r.pop();for(;e===t;)o=e,e=n.pop(),t=r.pop();return o}(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var o=r.length;e!==n;)r.splice(o,0,e),e=e.parent;return r},ancestors:function(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t},descendants:function(){return Array.from(this)},leaves:function(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e},links:function(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t},copy:function(){return Zt(this).eachBefore(en)},[Symbol.iterator]:function*(){var e,t,n,r,o=this,i=[o];do{for(e=i.reverse(),i=[];o=e.pop();)if(yield o,t=o.children)for(n=0,r=t.length;n<r;++n)i.push(t[n])}while(i.length)}};var on={depth:-1},an={},ln={};function un(e){return e.id}function cn(e){return e.parentId}function sn(){var e,t=un,n=cn;function r(r){var o,i,a,l,u,c,s,f,d=Array.from(r),p=t,h=n,m=new Map;if(null!=e){const t=d.map(((t,n)=>function(e){let t=(e=`${e}`).length;dn(e,t-1)&&!dn(e,t-2)&&(e=e.slice(0,-1));return\"/\"===e[0]?e:`/${e}`}(e(t,n,r)))),n=t.map(fn),o=new Set(t).add(\"\");for(const e of n)o.has(e)||(o.add(e),t.push(e),n.push(fn(e)),d.push(ln));p=(e,n)=>t[n],h=(e,t)=>n[t]}for(a=0,o=d.length;a<o;++a)i=d[a],c=d[a]=new nn(i),null!=(s=p(i,a,r))&&(s+=\"\")&&(f=c.id=s,m.set(f,m.has(f)?an:c)),null!=(s=h(i,a,r))&&(s+=\"\")&&(c.parent=s);for(a=0;a<o;++a)if(s=(c=d[a]).parent){if(!(u=m.get(s)))throw new Error(\"missing: \"+s);if(u===an)throw new Error(\"ambiguous: \"+s);u.children?u.children.push(c):u.children=[c],c.parent=u}else{if(l)throw new Error(\"multiple roots\");l=c}if(!l)throw new Error(\"no root\");if(null!=e){for(;l.data===ln&&1===l.children.length;)l=l.children[0],--o;for(let e=d.length-1;e>=0&&(c=d[e],c.data===ln);--e)c.data=null}if(l.parent=on,l.eachBefore((function(e){e.depth=e.parent.depth+1,--o})).eachBefore(tn),l.parent=null,o>0)throw new Error(\"cycle\");return l}return r.id=function(e){return arguments.length?(t=rn(e),r):t},r.parentId=function(e){return arguments.length?(n=rn(e),r):n},r.path=function(t){return arguments.length?(e=rn(t),r):e},r}function fn(e){let t=e.length;if(t<2)return\"\";for(;--t>1&&!dn(e,t););return e.slice(0,t)}function dn(e,t){if(\"/\"===e[t]){let n=0;for(;t>0&&\"\\\\\"===e[--t];)++n;if(0==(1&n))return!0}return!1}function pn(e,t){\"/\"===e.charAt(0)&&(e=e.substring(1));const n=e.split(\"/\");let r,o=t;for(let e=0;e<n.length;e++){if(\"*\"===n[e]&&Array.isArray(o)){const t=[];r=n.slice(e+1).join(\"/\");for(let e=0;e<o.length;e++){let n=pn(r,o[e]);Array.isArray(n)?t.push(...n):t.push(n)}return t}if(!n[e]&&Array.isArray(o)){const t=new Array(o.length);r=n.slice(e+1).join(\"/\");for(let e=0;e<o.length;e++)t[e]=pn(r,o[e]);return t}n[e]in o&&(o=o[n[e]])}return o}function hn(e,t,n){let r=[];if(!e||!e.length)return r;if(t<=0){const t=n>=0?[e[n]]:e;r=[...r,...t]}else for(let o=0;o<e.length;o++)e[o].children&&e[o].children.length&&(r=[...r,...hn(e[o].children,t-1,n)]);return r}function mn(e,t,n){if(e===t)return e=>e;if(e>t){const n=Math.max(0,Math.min(100,e-t));return e=>{let t=e;for(let e=0;e<n;++e)t=t.parent;return t}}if(t>e){const r=Math.max(0,Math.min(100,t-e));return e=>hn(e.children,r-1,n)}return!1}function vn(e,t){let{cache:n}=t;if(\"number\"==typeof e)return n.fields[e];const r=n.allFields;if(\"function\"==typeof e){for(let t=0;t<r.length;t++)if(e(r[t]))return r[t];return!1}if(\"string\"==typeof e){for(let t=0;t<r.length;t++)if(r[t].key()===e||r[t].title()===e)return r[t]}else if(e&&-1!==r.indexOf(e))return e;throw Error(\"Field not found: \".concat(e))}const yn=/^qDimensionInfo(?:\\/(\\d+))?/,gn=/^\\/?qMeasureInfo\\/(\\d+)/,bn=/\\/qAttrExprInfo\\/(\\d+)/,xn=/\\/qAttrDimInfo\\/(\\d+)/;function qn(e){return(e.qColumnOrder&&e.qColumnOrder.length?e.qColumnOrder:e.qDimensionInfo.map(((e,t)=>t))).filter((t=>t<e.qDimensionInfo.length))}function wn(e,t){let{cube:n}=t;if(!e)return-1;let r=e.origin&&e.origin()?e.origin().key():e.key(),o=!1,i=-1,a=-1,l=-1,u=-1,c=-1,s=-1,f=r;const d=n.qEffectiveInterColumnSortOrder,p=qn(n);return yn.test(f)&&(o=!0,i=+yn.exec(f)[1],f=r.replace(yn,\"\")),gn.test(f)&&(\"K\"===n.qMode?c=+gn.exec(f)[1]:d&&-1!==d.indexOf(-1)?(c=+gn.exec(f)[1],s=0):s=+gn.exec(f)[1],f=f.replace(gn,\"\")),f&&(xn.exec(f)?l=+xn.exec(f)[1]:bn.exec(f)&&(a=+bn.exec(f)[1])),u=o?\"S\"===n.qMode?p[i]:d?d.indexOf(i):i:d&&-1!==d.indexOf(-1)?d.indexOf(-1):n.qDimensionInfo.length-(\"K\"===n.qMode?0:1),{fieldDepth:u+1,pseudoMeasureIndex:c,measureIdx:s,attrDimIdx:l,attrIdx:a}}function Mn(e,t){let n,r,o=mn(e.fieldDepth,t.fieldDepth,t.pseudoMeasureIndex);return n=t.measureIdx>=0?e=>e.data.qValues[t.measureIdx]:e=>e.data,t.attrDimIdx>=0?r=e=>{var n;return null==e||null===(n=e.qAttrDims)||void 0===n?void 0:n.qValues[t.attrDimIdx]}:t.attrIdx>=0&&(r=e=>{var n;return null==e||null===(n=e.qAttrExps)||void 0===n?void 0:n.qValues[t.attrIdx]}),{nodeFn:o,attrFn:r,valueFn:n}}function kn(e,t,n){let{key:r}=n;const o={value:\"function\"==typeof e.value?e.value(t):void 0!==e.value?e.value:t};return o.label=\"function\"==typeof e.label?e.label(t):void 0!==e.label?String(e.label):String(o.value),e.field&&(o.source={key:r,field:e.field.key()}),o}function Sn(e){let{propsArr:t,props:n,item:r,itemData:o,ret:i,sourceKey:a}=e;for(let e=0;e<t.length;e++){const l=n[t[e]],u=l.fields||[l];let c,s;l.fields&&(c=[],s=[]);for(let n=0;n<u.length;n++){const f=u[n];let d,p,h,m,v,y;if(\"primitive\"===f.type?(h=f.value,y=String(f.value)):(\"function\"==typeof f.value&&(d=e=>f.value(e,r)),\"function\"==typeof f.label&&(p=e=>f.label(e,r)),f.accessor?(m=f.accessor(r),Array.isArray(m)?(v=m.map(f.valueAccessor),f.attrAccessor&&(v=v.map(f.attrAccessor)),d&&(h=v.map(d),d=null),p&&(y=v.map(p),p=null),h=f.reduce?f.reduce(h):h,y=f.reduceLabel?f.reduceLabel(y,h):String(h)):(h=f.attrAccessor?f.attrAccessor(f.valueAccessor(m)):f.valueAccessor(m),y=h)):(h=o,y=o)),l.fields){const e=d?d(h):h;c.push(e),s.push(p&&null!=y?p(y):null!=y?y:String(e))}else{const n=d?d(h):h;i[t[e]]={value:n,label:p?p(y):null!=y?y:String(n)},f.field&&(i[t[e]].source={field:f.field.key(),key:a})}}c&&(i[t[e]]={value:\"function\"==typeof l.value?l.value(c,r):c,label:\"function\"==typeof l.label?l.label(s,r):s})}}const Cn=(e,t,n)=>{const r=\"K\"===e.qMode?\"/qStackedDataPages/*/qData\":\"/qTreeDataPages/*\",o=\"K\"===e.qMode?\"qSubNodes\":\"qNodes\",i=pn(r,e);return i&&i[0]?(t.tree=Zt(i[0],n.children||(e=>e[o])),t.tree):null};function Dn(e){const t=e.raw().qDataPages.length?e.raw().qDataPages[0].qMatrix:[],n=function(e){const t=e.raw().qColumnOrder,n=e.fields();return t&&t.length===n.length?t:n.map(((e,t)=>t))}(e),r=e.fields(),o=e.fields().filter((e=>\"dimension\"===e.type())).map((e=>n.indexOf(r.indexOf(e)))),i=e.fields().filter((e=>\"measure\"===e.type())).map((e=>n.indexOf(r.indexOf(e)))),a={__root:{__id:\"__root\",qValues:[]}};for(let e=0;e<t.length;e++){const n=t[e];let r=\"__root\",u=!1;for(let e=0;e<o.length;e++){var l;const t=n[o[e]],i=\"\".concat(r,\"__\").concat(null!==(l=t.qElemNumber)&&void 0!==l?l:t.qElemNo);a[i]||(a[i]=Pt({__id:i,__parent:r,qValues:[]},t),u=!0),r=i}if(u)for(let e=0;e<i.length;e++){const t=n[i[e]];a[r].qValues.push(t)}}const u=Object.keys(a).map((e=>a[e]));return sn().id((e=>e.__id)).parentId((e=>e.__parent))(u)}const In=e=>{let{propsArr:t,props:n,cube:r,cache:o,itemDepthObject:i,f:a}=e;for(let e=0;e<t.length;e++){const l=n[t[e]],u=l.fields?l.fields:[l];for(let e=0;e<u.length;e++){const t=u[e];if(t.field!==a){const e=Mn(i,wn(t.field,{cube:r,cache:o}));t.accessor=e.nodeFn,t.valueAccessor=e.valueFn,t.attrAccessor=e.attrFn}}}};function On(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;const o=t.raw(),i=t.key(),a=\"S\"===o.qMode?Dn(t):Cn(o,n,e);if(!a)return null;const l=a.height,u=[];for(let i=0;i<=l;i++){let a=null;if(i>0)if(\"S\"===o.qMode){let e=qn(o)[i-1];a=n.fields[e]}else{let e=o.qEffectiveInterColumnSortOrder[i-1];i>o.qEffectiveInterColumnSortOrder.length&&(e=o.qDimensionInfo.length),a=n.fields[e]}const{props:l,main:c}=r.normalizeConfig(Pt(Pt({},e),{},{field:a?a.key():void 0}),t),s=Object.keys(l);u[i]={propsArr:s,props:l,main:c};const f=a?wn(a,{cube:o,cache:n}):{fieldDepth:0};In({propsArr:s,props:l,cube:o,cache:n,itemDepthObject:f,f:a})}const c=a.copy(),s=c.descendants(),f=a.descendants();for(let e=0;e<f.length;e++){const t=u[f[e].depth].propsArr,n=u[f[e].depth].props,r=u[f[e].depth].main,o=s[e],a=o.data,l=kn(r,a,{key:i});Sn({propsArr:t,props:n,item:o,itemData:a,ret:l,sourceKey:i,isTree:!0}),f[e].data=l}return a}function En(e,t,n,r){const o=Array.isArray(e)?e:[e];let i=[];for(let a=0;a<o.length;a++)if(void 0!==o[a].field){const l=t.raw(),u=t.key();if(!Cn(l,n,e))continue;const c=\"object\"==typeof o[a].field?o[a].field:t.field(o[a].field),{props:s,main:f}=r.normalizeConfig(o[a],t),d=Object.keys(s),p=wn(c,{cube:l,cache:n}),{nodeFn:h,attrFn:m,valueFn:v}=Mn({fieldDepth:0},p);In({propsArr:d,props:s,cube:l,cache:n,itemDepthObject:p,f:c});const y=!!o[a].trackBy,g=typeof o[a].trackBy,b={},x=[],q=h(n.tree),w=[];for(let e=0;e<q.length;e++){const t=q[e],n=m?m(v(t)):v(t);if(f.filter&&!f.filter(n))continue;const i=kn(f,n,{key:u});Sn({propsArr:d,props:s,item:t,itemData:n,ret:i,sourceKey:u}),y&&r.track({cfg:o[a],itemData:n,obj:i,target:x,tracker:b,trackType:g}),w.push(i)}const M=y?r.collect(x,{main:f,propsArr:d,props:s}):w;i=[...i,...M]}return i}\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;var An,Nn,Ln=(An=function(e){\n/*! javascript-number-formatter - v1.1.11 - http://mottie.github.com/javascript-number-formatter/ * © ecava */\ne.exports=function(e,t){if(!e||isNaN(+t))return t;var n,r,o,i,a,l,u,c,s,f,d=e.length,p=e.search(/[0-9\\-\\+#]/),h=p>0?e.substring(0,p):\"\",m=e.split(\"\").reverse().join(\"\"),v=m.search(/[0-9\\-\\+#]/),y=d-v,g=e.substring(y,y+1),b=y+(\".\"===g||\",\"===g?1:0),x=v>0?e.substring(b,d):\"\";if(n=(t=\"-\"===(e=e.substring(p,b)).charAt(0)?-t:+t)<0?t=-t:0,o=(r=e.match(/[^\\d\\-\\+#]/g))&&r[r.length-1]||\".\",i=r&&r[1]&&r[0]||\",\",e=e.split(o),t=+(t=t.toFixed(e[1]&&e[1].length))+\"\",l=e[1]&&e[1].lastIndexOf(\"0\"),(!(c=t.split(\".\"))[1]||c[1]&&c[1].length<=l)&&(t=(+t).toFixed(l+1)),s=e[0].split(i),e[0]=s.join(\"\"),(a=e[0]&&e[0].indexOf(\"0\"))>-1)for(;c[0].length<e[0].length-a;)c[0]=\"0\"+c[0];else 0==+c[0]&&(c[0]=\"\");if((t=t.split(\".\"))[0]=c[0],u=s[1]&&s[s.length-1].length){for(m=\"\",y=(f=t[0]).length%u,d=f.length,b=0;b<d;b++)m+=f.charAt(b),!((b-y+1)%u)&&b<d-u&&(m+=i);t[0]=m}return t[1]=e[1]&&t[1]?o+t[1]:\"\",\"0\"!==(r=t.join(\"\"))&&\"\"!==r||(n=!1),h+(n?\"-\":\"\")+r+x}},An(Nn={exports:{}},Nn.exports),Nn.exports);function Tn(e){return e.replace(/[-[\\]/{}()*+?.\\\\^$|]/g,\"\\\\$&\")}const Pn={3:\"k\",6:\"M\",9:\"G\",12:\"T\",15:\"P\",18:\"E\",21:\"Z\",24:\"Y\",\"-3\":\"m\",\"-6\":\"μ\",\"-9\":\"n\",\"-12\":\"p\",\"-15\":\"f\",\"-18\":\"a\",\"-21\":\"z\",\"-24\":\"y\"},jn=/%\\)?$/,Fn=/^\\(r(0[2-9]|[12]\\d|3[0-6])\\)/i,Hn=/^\\(oct\\)/i,Rn=/^\\(dec\\)/i,zn=/^\\(hex\\)/i,Vn=/^\\(bin\\)/i,_n=/^\\(rom\\)/i,Bn=/^(\\(rom\\)|\\(bin\\)|\\(hex\\)|\\(dec\\)|\\(oct\\)|\\(r(0[2-9]|[12]\\d|3[0-6])\\))/i,Yn=/#|0/g;function $n(e,t,n,r){return e=e.toString(t),n[1]===n[1].toUpperCase()&&(e=e.toUpperCase()),e.length-e.indexOf(\".\")>10&&(e=e.slice(0,e.indexOf(\".\")+11)),e.replace(\".\",r||\".\")}function Un(e,t,n){let r;return Fn.test(t)?e=$n(e,Number(/\\d{2}/.exec(t)[0]),t,n):Hn.test(t)?e=$n(e,8,t,n):Rn.test(t)?e=$n(e,10,t,n):zn.test(t)?e=$n(e,16,t,n):Vn.test(t)?e=$n(e,2,t,n):_n.test(t)&&(r=\"\",e<0&&(r=\"-\",e=-e),0===(e=Math.floor(e))?e=\"0\":e<=5e5?(e=function(e,t){let n,r=\"\",o=Number(String(e).slice(-3)),i=(e-o)/1e3,a=[0,1,4,5,9,10,40,50,90,100,400,500,900].reverse(),l=[\"0\",\"I\",\"IV\",\"V\",\"IX\",\"X\",\"XL\",\"L\",\"XC\",\"C\",\"CD\",\"D\",\"CM\"].reverse();for(;o>0;)for(n=0;n<a.length;n++)if(a[n]<=o){r+=l[n],o-=a[n];break}for(n=0;n<i;n++)r=\"M\".concat(r);return t[1]!==t[1].toUpperCase()&&(r=r.toLowerCase()),r}(e,t),e=r+e):e=t+r+e.toExponential(0)),e}function Kn(e,t,n){const r=Tn(e);return n?r:new RegExp(r||\"\",t)}function Gn(e,t,n,r){let o,i,a,l,u,c,s,f,d,p=e.pattern;var h,m;r&&(e.abbreviate=!0),h=t,(m=n)&&(m=Tn(m)),h&&(h=Tn(h)),d=new RegExp(\"(?:[#0]+\".concat(h,\")?[#0]+(?:\").concat(m,\"[#0]+)?\")),a=p.match(d),a=a?a[0]:\"\",l=a?p.substr(0,p.indexOf(a)):p,u=a?p.substring(p.indexOf(a)+a.length):\"\",a||(a=p?\"#\":\"##########\"),t&&t===n&&(o=a.split(n),i=o.pop(),a=o.join(\"\")+n+i,t=\"\"),c=t,t=/,/.test(n)?\"¤\":\",\",c&&(a=a.replace(Kn(c,\"g\"),t)),s=n,n=\".\",s&&(a=a.replace(Kn(s,\"g\"),n)),f=a.match(/#/g),f=f?f.length:0;const v=p.split(s);let y;v[1]&&(y=v[1].match(Yn)),e.prefix=l||\"\",e.postfix=u||\"\",e.pattern=p,e.maxPrecision=y?y.length:2,e.percentage=jn.test(p),e.numericPattern=a||\"\",e.numericRegex=new RegExp(\"\".concat(Kn(t,null,!0),\"|\").concat(Kn(n,null,!0)),\"g\"),e.groupTemp=c,e.decTemp=s,e.t=t,e.d=n,e.temp=f}class Wn{constructor(e,t,n,r,o){this.localeInfo=e,this.pattern=t,this.thousandDelimiter=n||\",\",this.decimalDelimiter=r||\".\",this.type=o||\"numeric\",this.patternSeparator=\";\",this.abbreviations=function(e,t){if(!e||!e.qNumericalAbbreviation)return Pn;const n={};return e.qNumericalAbbreviation.split(t).forEach((e=>{let t=e.split(\":\");2===t.length&&(n[t[0]]=t[1])})),n}(e,this.patternSeparator),this.prepare()}clone(){const e=new Wn(this.localeInfo,this.pattern,this.thousandDelimiter,this.decimalDelimiter,this.type);return e.subtype=this.subtype,e}format(e,t,n,r){return this.prepare(t,n,r),this.formatValue(e)}prepare(e,t,n){let r;if(void 0===e&&(e=this.pattern),void 0===t&&(t=this.thousandDelimiter),void 0===n&&(n=this.decimalDelimiter),!e)return void(this._prepared={pattern:!1});this._prepared={positive:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"},negative:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"},zero:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"}},r=this._prepared,e=e.split(this.patternSeparator),r.positive.pattern=e[0],r.negative.pattern=e[1],r.zero.pattern=e[2],Bn.test(e[0])&&(r.positive.isFunctional=!0),e[1]?Bn.test(e[1])&&(r.negative.isFunctional=!0):r.negative=!1,e[2]?Bn.test(e[2])&&(r.zero.isFunctional=!0):r.zero=!1;const o=\"U\"===this.type;r.positive.isFunctional||Gn(r.positive,t,n,o),r.negative&&!r.negative.isFunctional&&Gn(r.negative,t,n,o),r.zero&&!r.zero.isFunctional&&Gn(r.zero,t,n,o)}formatValue(e){let t,n,r,o,i,a,l,u,c,s=this._prepared,f=\"\",d=\"\",p=e;if(isNaN(e))return\"\".concat(p);if(e=+e,!1===s.pattern)return e.toString();if(0===e&&s.zero)return s=s.zero,s.pattern;if(e<0&&s.negative?(s=s.negative,e=-e):s=s.positive,i=s.d,a=s.t,s.isFunctional)e=Un(e,s.pattern,i);else{if(s.percentage&&(e*=100),s.abbreviate){const t=Object.keys(this.abbreviations).map((e=>parseInt(e,10))).sort(((e,t)=>e-t));let r,o,i=t[0];for(l=0,n=Number(Number(e).toExponential().split(\"e\")[1]);i<=n&&l<t.length;)l++,i=t[l];l>0&&(r=t[l-1]),r&&n>0&&r>0?o=r:(n<0&&r<0||!r)&&(i<0&&i-n<=s.maxPrecision?o=i:r<=n&&!(i>0&&-n<=s.maxPrecision)&&(o=r)),o&&(f=this.abbreviations[o],e/=10**o)}if(r=Math.abs(e),t=s.temp,u=s.numericPattern,c=u.split(i)[1],\"I\"===this.type&&(e=Math.round(e)),o=e,c||\"#\"!==u.slice(-1)[0])if(r>=1e15||r>0&&r<=1e-14)e=r?r.toExponential(15).replace(/\\.?0+(?=e)/,\"\"):\"0\";else{const t=Number(e.toFixed(Math.min(20,c?c.length:0)).split(\".\")[0]);let n=u.split(i)[0];if(n+=i,e=Ln(n,t)||\"0\",c){const t=Math.max(0,Math.min(14,c.length)),n=c.replace(/#+$/,\"\").length;let o=(\"I\"===this.type?0:r%1).toFixed(t).slice(2).replace(/0+$/,\"\");for(l=o.length;l<n;l++)o+=\"0\";o&&(e+=i+o)}else 0===t&&(o=0)}else if(r>=10**t||r<1||r<1e-4)0===e?e=\"0\":r<1e-4||r>=1e20?(e=(e=o.toExponential(Math.max(1,Math.min(14,t))-1)).replace(/\\.?0+(?=e)/,\"\"),d=\"\"):(e=e.toPrecision(Math.max(1,Math.min(14,t)))).indexOf(\".\")>=0&&(e=(e=e.replace(e.indexOf(\"e\")<0?/0+$/:/\\.?0+(?=e)/,\"\")).replace(\".\",i));else{for(u+=i,t=Math.max(0,Math.min(20,t-Math.ceil(Math.log(r)/Math.log(10)))),l=0;l<t;l++)u+=\"#\";e=Ln(u,e)}e=e.replace(s.numericRegex,(e=>e===a?s.groupTemp:e===i?s.decTemp:\"\")),o<0&&!/^-/.test(e)&&(e=\"-\".concat(e))}return s.prefix+e+d+f+s.postfix}static getStaticFormatter(){return{prepare(){},formatValue:e=>\"\".concat(e)}}}function Xn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{size:n=5e3,multipleArguments:r=!1,toKey:o=(e=>e)}=t;let i,a,l=Object.create(null),u=Object.create(null),c=0,s=0;return i=r?function(){return a=o(...arguments),i.has(a)?i.get(a):i.set(a,e(...arguments))}:t=>(a=o(t),i.has(a)?i.get(a):i.set(a,e(t))),i.set=(e,t)=>(c>=n&&(delete l[u[s]],delete u[s],c--,s++),l[e]=t,u[c]=e,c++,t),i.get=e=>l[e],i.has=e=>e in l,i.clear=()=>{l=Object.create(null),u=Object.create(null),c=0,s=0},i.size=()=>c,i}function Zn(e,t,n,r,o){const i=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return new Wn(...t)}(o,e,t,n,r),a=Xn(i.formatValue.bind(i),{toKey:e=>isNaN(e)?e:+e});function l(e){return a(e)}return l.format=function(e,t,n,r){return a.clear(),i.format(t,e,n,r)},l.pattern=function(e){return e&&(a.clear(),i.pattern=e,i.prepare()),i.pattern},l}const Jn=\"D\",Qn=\"T\",er=\"TS\",tr=\"IV\",nr=[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",\"Sunday\"],rr=[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sun\"],or=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],ir=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];function ar(e,t){for(let n=e.length;n<t;n++)e=\"0\".concat(e);return e}function lr(e){let t=e.toString().split(\".\");return t[1]?(t=Number(\"0.\".concat(t[1])),t):0}function ur(e,t){let n,r=function(e){const t=e,n=24*lr(t),r=60*lr(n),o=60*lr(r),i=1e3*lr(o);return{d:Math.floor(t),h:Math.floor(n),m:Math.floor(r),s:Math.floor(o),f:Math.round(i)}}(e),o=r.d,i=r.h,a=r.m,l=r.s,u=r.f,c=0;/w+|t+/gi.test(t)&&(n=new Date(Date.UTC(1899,11,30+Math.floor(e),0,0,Math.round(86400*(e-Math.floor(e))))),isNaN(n.getTime())&&(n=null)),/D+/gi.test(t)||(i+=24*o),/h+/gi.test(t)||(a+=60*i),/m+/gi.test(t)||(l+=60*a),/w+/gi.test(t)&&(c=n?n.getDay()-1:0,c<0&&(c=6));let s=\"\";return n&&(s=n.getUTCHours()>=12?\"pm\":\"am\"),{year:0,month:0,day:c,date:o,h:i,m:a,s:l,f:u,t:s}}class cr{constructor(e,t,n){const r=e||{};if(r.qCalendarStrings||(r.qCalendarStrings={qLongDayNames:nr,qDayNames:rr,qLongMonthNames:or,qMonthNames:ir}),this.localeInfo=r,this.locale_days=r.qCalendarStrings.qLongDayNames.slice(),this.locale_days_abbr=r.qCalendarStrings.qDayNames.slice(),this.locale_months=r.qCalendarStrings.qLongMonthNames.slice(),this.locale_months_abbr=r.qCalendarStrings.qMonthNames.slice(),!t){t={[Qn]:r.qTimeFmt||\"hh:mm:ss\",[Jn]:r.qDateFmt||\"YYYY-MM-DD\",[er]:r.qTimestampFmt||\"YYYY-MM-DD hh:mm:ss\"}[n]}this.pattern=t}clone(){const e=new cr(this.localeInfo,this.pattern);return e.subtype=this.subtype,e}format(e,t){t||(t=this.pattern?this.pattern:\"YYYY-MM-DD hh:mm:ss\"),t=t.replace(/\\[.+]|\\[|]/g,\"\");const n=/t+/gi.test(t);let r;e instanceof Date?r=function(e,t){let n=e.getUTCHours(),r=e.getUTCDay()-1;return t&&(n%=12,n||(n=12)),r<0&&(r=6),{year:e.getUTCFullYear(),month:e.getUTCMonth(),day:r,date:e.getUTCDate(),h:n,m:e.getUTCMinutes(),s:e.getUTCSeconds(),f:e.getUTCMilliseconds(),t:e.getUTCHours()>=12?\"pm\":\"am\"}}(e,n):(e<0&&(e=-e,t=\"-\".concat(t)),r=ur(e,t));const o=(i=this,a=r,{\"Y+|y+\":{Y:\"\".concat(Number(\"\".concat(a.year).slice(-2))),YY:ar(\"\".concat(a.year).slice(-2),2),YYY:ar(\"\".concat(a.year).slice(-3),3),def:e=>ar(\"\".concat(a.year),e.length)},\"M+\":{M:a.month+1,MM:ar(\"\".concat(a.month+1),2),MMM:i.locale_months_abbr[a.month],def:i.locale_months[a.month]},\"W+|w+\":{W:a.day,WW:ar(\"\".concat(a.day),2),WWW:i.locale_days_abbr[a.day],def:i.locale_days[a.day]},\"D+|d+\":{D:a.date,def:e=>ar(\"\".concat(a.date),e.length)},\"h+|H+\":{h:a.h,def:e=>ar(\"\".concat(a.h),e.length)},\"m+\":{m:a.m,def:e=>ar(\"\".concat(a.m),e.length)},\"s+|S+\":{s:a.s,def:e=>ar(\"\".concat(a.s),e.length)},\"f+|F+\":{def(e){let t=\"\".concat(a.f),n=e.length-t.length;if(n>0)for(let e=0;e<n;e++)t+=\"0\";else n<0&&(t=t.slice(0,e.length));return t}},\"t{1,2}|T{1,2}\":{def(e){let t=a.t;return e[0].toUpperCase()===e[0]&&(t=t.toUpperCase()),t=t.slice(0,e.length),t}}});var i,a;const l=[];for(const e in o)Object.prototype.hasOwnProperty.call(o,e)&&l.push(e);const u=new RegExp(l.join(\"|\"),\"g\");return t.replace(u,(e=>{let t,n,r;for(n in o)if(Object.prototype.hasOwnProperty.call(o,n)&&(t=new RegExp(n),t.test(e)))break;if(!t)return\"\";for(const t in o[n])if(t===e||t.toLowerCase()===e){r=o[n][t],void 0===r&&(r=o[n][t.toLowerCase()]);break}return void 0===r&&(r=o[n].def),\"function\"==typeof r&&(r=r(e)),r}))}}function sr(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return new cr(...t)}function fr(e){return new Date(Date.UTC(1899,11,30+Math.floor(e),0,0,0,Math.round(864e5*(e-Math.floor(e)))))}function dr(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"TS\",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=sr(n,e,t),o=Xn(r.format.bind(r),{toKey:e=>\"object\"==typeof e&&\"function\"==typeof e.getTime?e.getTime():e});function i(e){return t!==tr?fr(e):e}function a(e){return e=i(e),o(e)}return a.format=function(e,t){return o.clear(),t=i(t),r.format(t,e)},a.locale=function(n){return r=sr(n,e,t),o=Xn(r.format.bind(r),{toKey:e=>\"object\"==typeof e?e.getTime():e}),this},a.qtype=function(e){return void 0!==e&&(t=e,o.clear()),t},a}function pr(e,t){if(e&&e.qNumFormat&&-1!==[\"D\",\"T\",\"TS\",\"IV\"].indexOf(e.qNumFormat.qType))return dr(e.qNumFormat.qFmt,e.qNumFormat.qType,t);let n=\"#\",r=t&&void 0!==t.qThousandSep?t.qThousandSep:\",\",o=t&&void 0!==t.qDecimalSep?t.qDecimalSep:\".\",i=\"U\",a=e&&!!e.qIsAutoFormat;return e&&e.qNumFormat?(n=e.qNumFormat.qFmt||n,r=e.qNumFormat.qThou||r,o=e.qNumFormat.qDec||o,i=e.qNumFormat.qType||i,a=a&&-1===[\"M\"].indexOf(e.qNumFormat.qType)):a=!0,(a||\"U\"===i)&&(n=\"#\".concat(o,\"##\"),i=\"U\"),Zn(n,r,o,i,t)}function hr(){let e,{meta:t,id:n,key:r,localeInfo:o,fieldExtractor:i,value:a,type:l,sourceField:u}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const c=a||(\"dimension\"===l?e=>null==e?void 0:e.qElemNo:e=>null==e?void 0:e.qValue),s=e=>(null==e?void 0:e.qText)||\"\",f=\"dimension\"===l?\"first\":\"avg\",d=pr(t,o),p=\"dimension\"===l?\"first\":(e,t)=>d(t),h={id:()=>n,key:()=>r,raw:()=>t,title:()=>t.qFallbackTitle||t.label,type:()=>l,origin:()=>u,items:()=>(e||(e=i(h)),e),min:()=>t.qMin,max:()=>t.qMax,value:c,label:s,reduce:f,reduceLabel:p,formatter:()=>d,tags:()=>t.qTags};return h}function mr(e,t,n,r,o){return(t[e]||[]).map(((t,i)=>{const a=\"\".concat(r?\"\".concat(r,\"/\"):\"\").concat(e,\"/\").concat(i),l={instance:hr($t({id:\"\".concat(n?\"\".concat(n,\"/\"):\"\").concat(a),key:a,meta:t},o))};return l.attrDims=mr(\"qAttrDimInfo\",t,n,a,$t({},o,{value:e=>null==e?void 0:e.qElemNo,type:\"dimension\"})),l.attrExps=mr(\"qAttrExprInfo\",t,n,a,$t({},o,{value:e=>null==e?void 0:e.qNum,type:\"measure\"})),l.measures=mr(\"qMeasureInfo\",t,n,a,$t({},o,{value:e=>null==e?void 0:e.qValue,type:\"measure\"})),l}))}function vr(){let{key:e,data:t,config:n={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const r={fields:[],wrappedFields:[],allFields:[],virtualFields:[]},o=t;if(!o)throw new Error('Missing \"data\" input');if(!o.qDimensionInfo)throw new Error('The \"data\" input is not recognized as a hypercube');const i=vr.util,a={cache:r,cube:o,localeInfo:n.localeInfo,fieldExtractor:null,pages:null,hierarchy:()=>null,virtualFields:n.virtualFields},l={key:()=>e,raw:()=>o,field:e=>vn(e,a),fields:()=>r.fields.slice(),extract:e=>a.extractor(e,l,r,i),hierarchy:e=>a.hierarchy(e,l,r,i),_cache:()=>r};\"K\"===o.qMode||\"T\"===o.qMode||!o.qMode&&o.qNodesOnDim?(a.extractor=En,a.hierarchy=On,a.pages=\"K\"===o.qMode?o.qStackedDataPages:o.qTreeDataPages):\"S\"===o.qMode?(a.extractor=Wt,a.pages=o.qDataPages,a.hierarchy=On):a.extractor=()=>[],a.fieldExtractor=e=>a.extractor({field:e},l,r,i);const u=\"S\"===o.qMode?e=>e.qElemNumber:void 0,c=\"S\"===o.qMode?e=>e.qNum:void 0;r.wrappedFields.push(...mr(\"qDimensionInfo\",o,e,\"\",$t({},a,{value:u,type:\"dimension\"}))),r.wrappedFields.push(...mr(\"qMeasureInfo\",o,e,\"\",$t({},a,{value:c,type:\"measure\"}))),r.fields=r.wrappedFields.map((e=>e.instance));const s=e=>{e.forEach((e=>{r.allFields.push(e.instance),s(e.measures),s(e.attrDims),s(e.attrExps)}))};return s(r.wrappedFields),(n.virtualFields||[]).forEach((t=>{const n=l.field(t.from),o=hr(Pt({meta:n.raw(),id:\"\".concat(e,\"/\").concat(t.key),sourceField:n,fieldExtractor:e=>a.extractor({field:e},l,r,i),key:t.key,type:n.type(),localeInfo:a.localeInfo,value:n.value},t.override||{}));r.virtualFields.push(o)})),r.allFields.push(...r.virtualFields),l}const yr=[[\"qHyperCube\",\"qHyperCubeDef\"],[\"qTreeData\",\"qTreeDataDef\"],[\"qDimensionInfo\",\"qDimensions\"],[\"qMeasureInfo\",\"qMeasures\"],[\"qAttrDimInfo\",\"qAttributeDimensions\"],[\"qAttrExprInfo\",\"qAttributeExpressions\"]],gr=/\\/qDimensionInfo(?:\\/(\\d+))?/,br=/\\/qMeasureInfo\\/(\\d+)/,xr=/\\/qAttrDimInfo\\/(\\d+)(?:\\/(\\d+))?/,qr=/\\/qAttrExprInfo\\/(\\d+)/,wr=/\\/?qHyperCube/,Mr=/\\/?qTreeData/,kr=e=>\"\".concat(e.substr(0,e.indexOf(\"/qHyperCubeDef\")+14)),Sr=e=>\"\".concat(e.substr(0,e.indexOf(\"/qTreeDataDef\")+13));function Cr(e,t){let n=e,r=-1,o=-1,i=\"\",a=e=>e;wr.test(e)?(i=\"\".concat(n.substr(0,n.indexOf(\"qHyperCube\")+10)),a=kr):Mr.test(e)&&(i=\"\".concat(n.substr(0,n.indexOf(\"qTreeData\")+9)),a=Sr);let l=!0;if(gr.test(e)&&(r=+gr.exec(e)[1]),br.test(e)&&(o=+br.exec(e)[1]),xr.test(e)){o=-1,r=0;const e=+xr.exec(n)[2];isNaN(e)||(r=e,n=n.replace(/\\/\\d+$/,\"\")),l=!1}if(qr.test(e)){const e=o;if(t){o=0;const a=pn(i,t);o+=(a.qMeasureInfo||[]).length,r>-1?(o=a.qDimensionInfo.slice(0,r).reduce(((e,t)=>e+t.qAttrExprInfo.length),o),r=-1):(o=a.qDimensionInfo.reduce(((e,t)=>e+t.qAttrExprInfo.length),o),o=a.qMeasureInfo.slice(0,e).reduce(((e,t)=>e+t.qAttrExprInfo.length),o)),o+=+qr.exec(n)[1]}else r>-1?(r=-1,o=+qr.exec(n)[1]):o+=+qr.exec(n)[1]+1}return yr.forEach((e=>{let[t,r]=e;n=n.replace(t,r)})),l&&(n=a(n)),n&&\"/\"!==n[0]&&(n=\"/\".concat(n)),{measureIdx:o,dimensionIdx:r,path:n}}function Dr(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;const r=t.byCells,o=t.primarySource,i=[],a={},l=e.isActive();let u=!1;if(e.brushes().forEach((e=>{const t=Cr(e.id,n);if(\"range\"===e.type&&t.measureIdx>-1&&t.dimensionIdx>-1){const n=e.brush.ranges();n.length&&(u=!0,a.multiRangeSelectTreeDataValues||(a.multiRangeSelectTreeDataValues={path:t.path,ranges:[]}),n.forEach((e=>a.multiRangeSelectTreeDataValues.ranges.push({qMeasureIx:t.measureIdx,qDimensionIx:t.dimensionIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!0}}))))}else{if(\"range\"===e.type&&t.measureIdx>-1){const n=e.brush.ranges();n.length&&(u=!0,a.rangeSelectHyperCubeValues||(a.rangeSelectHyperCubeValues={path:t.path,ranges:[]}),n.forEach((e=>a.rangeSelectHyperCubeValues.ranges.push({qMeasureIx:t.measureIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!0}}))))}if(\"range\"===e.type&&t.dimensionIdx>-1){const n=e.brush.ranges();n.length&&(u=!0,a.selectHyperCubeContinuousRange||(a.selectHyperCubeContinuousRange={path:t.path,ranges:[]}),n.forEach((e=>a.selectHyperCubeContinuousRange.ranges.push({qDimIx:t.dimensionIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!1}}))))}if(\"value\"===e.type&&t.dimensionIdx>-1)if(r)if(n&&n.qHyperCube&&(\"P\"===n.qHyperCube.qMode||\"T\"===n.qHyperCube.qMode||\"K\"===n.qHyperCube.qMode)){const r=n.qHyperCube,i=r.qNoOfLeftDims,l=r.qEffectiveInterColumnSortOrder.indexOf(t.dimensionIdx);if(a.selectPivotCells||(a.selectPivotCells={path:t.path,cells:[]}),e.id===o||!o){const n=e.brush.values().map((e=>+e)).filter((e=>!isNaN(e)));(0===i||l>=i)&&i>-1?n.forEach((e=>{a.selectPivotCells.cells.push({qType:\"T\",qCol:e,qRow:l-i})})):n.forEach((e=>{a.selectPivotCells.cells.push({qType:\"L\",qCol:t.dimensionIdx,qRow:e})})),u=!!a.selectPivotCells.cells.length}}else a.selectHyperCubeCells||(a.selectHyperCubeCells={path:t.path,cols:[]}),a.selectHyperCubeCells.cols.push(t.dimensionIdx),e.id!==o&&(o||a.selectHyperCubeCells.values)||(a.selectHyperCubeCells.values=e.brush.values().map((e=>+e)).filter((e=>!isNaN(e))),u=!!a.selectHyperCubeCells.values.length);else{const n=e.brush.values().map((e=>+e)).filter((e=>!isNaN(e)));u=!!n.length,i.push({params:[t.path,t.dimensionIdx,n,!1],method:\"selectHyperCubeValues\"})}}})),!u&&l)return[{method:\"resetMadeSelections\",params:[]}];var c;a.rangeSelectHyperCubeValues&&i.push({method:\"rangeSelectHyperCubeValues\",params:[a.rangeSelectHyperCubeValues.path,a.rangeSelectHyperCubeValues.ranges,[],null===(c=t.orMode)||void 0===c||c]});return a.selectHyperCubeContinuousRange&&i.push({method:\"selectHyperCubeContinuousRange\",params:[a.selectHyperCubeContinuousRange.path,a.selectHyperCubeContinuousRange.ranges]}),a.selectHyperCubeCells&&i.push({method:\"selectHyperCubeCells\",params:[a.selectHyperCubeCells.path,a.selectHyperCubeCells.values,a.selectHyperCubeCells.cols]}),a.selectPivotCells&&i.push({method:\"selectPivotCells\",params:[a.selectPivotCells.path,a.selectPivotCells.cells]}),a.multiRangeSelectTreeDataValues&&i.push({method:\"multiRangeSelectTreeDataValues\",params:[a.multiRangeSelectTreeDataValues.path,a.multiRangeSelectTreeDataValues.ranges]}),i}function Ir(e){vr.util=e.data(\"matrix\").util,e.data(\"q\",vr),e.formatter(\"q-number\",Zn),e.formatter(\"q-time\",dr)}function Or(e){var t=bt(e.layout||{},e.path.split(\"/\").join(\".\"));if(!t)return!1;var n=t.qIsOneAndOnlyOne;return void 0!==n&&n}function Er(e){var t,n,r,o=e.selections,i=e.picassoSelections,a=e.layout,l={lockedDimensions:[],singleSelectDimensions:[]};null!=o&&null!==(t=o.isModal)&&void 0!==t&&t.call(o)&&o.confirm(),i.layout(a);var u=(null!==(n=null==a?void 0:a.qHyperCube)&&void 0!==n?n:{}).qDimensionInfo,c=void 0===u?[]:u;return l.lockedDimensions=c.map((function(e){return!!e.qLocked})),l.singleSelectDimensions=c.map((function(e,t){return Or({layout:a,path:\"qHyperCube/qDimensionInfo/\".concat(t)})})),l.singleSelectIndex=function(e){var t,n=((null==e?void 0:e.qHyperCube)||{}).qDimensionInfo,r=void 0===n?[]:n;return null!==(t=r.map((function(e,t){var n;return!(e.qLocked||(null===(n=e.qCardinalities)||void 0===n?void 0:n.qHypercubeCardinal)<=1)&&t})).filter((function(e){return\"number\"==typeof e}))[0])&&void 0!==t?t:Math.max(r.length-1,0)}(a),l.canSelect=0===c.length||c.some((function(e){return!e.qLocked})),l.dimensionLocked=!(null===(r=c[0])||void 0===r||!r.qLocked),l}function Ar(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(null==e||!e.length)return!1;var t=e.filter((function(e){return\"object\"===r(e.data)&&Array.isArray(e.data.fields)})).every((function(e){return e.data.fields.every((function(e){var t=e.raw();return!(!t.qLocked&&t.qCardinal)}))}));return t}function Nr(e){var t=e.brush,n=e.colorField,r=e.legendAlias,o=e.useLegendCube,i=void 0!==o&&o;!n||/qAttrDimInfo/.test(n)?(t.removeKeyAlias(\"attrDim/qDimensionInfo/0\"),r&&t.removeKeyAlias(r),t.addKeyAlias(\"attrDim/qDimensionInfo/0\",\"qHyperCube/\".concat(n))):i&&t.addKeyAlias(r,\"qHyperCube/\".concat(n))}Ir.qBrushHelper=Dr,Ir.selections=Dr;var Lr=\"Enter\",Tr=\"Escape\",Pr=\"Esc\",jr=\"Shift\";function Fr(e){var t=e.brush,n=e.getConfig;return{interceptor:function(e){var r=t.brushes(),o=n(),i=o.allowSimultaneous,a=o.layout,l=void 0===a?{}:a;r.forEach((function(n){var r,o,a;(\"range\"===n.type||null!==(r=e[0])&&void 0!==r&&r.key&&(null===(o=e[0])||void 0===o?void 0:o.key)!==n.id&&0!==i.indexOf(null===(a=e[0])||void 0===a?void 0:a.key))&&t.clear([])}));var u=e.filter((function(e){return-2!==e.value}));if(u.length>1){var s=function(e){var t=e.layout,n=void 0===t?{}:t,r=e.values,o=void 0===r?[]:r;if(null==o||!o.length)return[];var i=Array.from(new Set(o.map((function(e){return e.key})))),a=[];return i.forEach((function(e){var t=Or({layout:n,path:e}),r=o.filter((function(t){return t.key===e})),i=t?[r.pop()]:r;a.push.apply(a,c(i))})),a.filter(Boolean)}({layout:l,values:u});return s}return u},rangeInterceptor:function(e){var r=t.brushes(),o=n().allowSimultaneous;return r.filter((function(e){return\"value\"===e.type})).length?(t.clear([]),e):(r.forEach((function(n){var r=n.id===e[0].key||o.includes(n.id)&&o.includes(e[0].key);\"range\"!==n.type||r||t.clear([])})),e)}}}var Hr=function e(t,n){return n[t]?e(t+1,n):t},Rr=function(e,t){var n=t.reduce((function(e,t){return e[t]=!0,e}),{});return e.reduce((function(e,t,r){var o=Hr(r,n);return n[o]=!0,e[r]=o,e}),{})};function zr(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.layout,n=e.filtered,r=void 0===n?{}:n,o=(null==t?void 0:t.qHyperCube)||{},i=o.qDimensionInfo,a=void 0===i?[]:i,l=o.qMeasureInfo,u=void 0===l?[]:l;return{dimensions:Rr(a,r.dimensions||[]),measures:Rr(u,r.measures||[])}}var Vr=\"selectHyperCubeValues\",_r=\"selectHyperCubeContinuousRange\";function Br(e){var t=e.selection,n=e.fieldMap,r=t.method,o=t.params;if(r===Vr){var i=n.dimensions[o[1]];void 0!==i&&(o[1]=i)}r===_r&&o[1].forEach((function(e){var t=n.dimensions[e.qDimIx];void 0!==t&&(e.qDimIx=t)}));return t}var Yr=[],$r=0,Ur=function(e){var t=Yr.filter((function(e){var t;return null===(t=e.selections)||void 0===t?void 0:t.isActive()}));t.length&&(e.key===Lr?t.forEach((function(e){return e.selections.confirm()})):e.key!==Tr&&e.key!==Pr||t.forEach((function(e){return e.selections.cancel()})))},Kr=function(){document.addEventListener(\"keyup\",Ur)},Gr=function(){document.removeEventListener(\"keyup\",Ur)},Wr=function(e,t){Object.keys(t).forEach((function(n){e.on(n,t[n])}))},Xr=function(e,t){Object.keys(t).forEach((function(n){e.removeListener(n,t[n])}))};function Zr(e,t,n){if(t&&void 0!==n&&\"selectHyperCubeContinuousRange\"===e.method){var r=e.params;if(r&&r[1]&&r[1][0]){var o=r[1][0],i=o.qDimIx,a=o.qRange;\"undefined\"!==i&&a&&!1===a.qMaxInclEq&&a.qMax>=n&&(a.qMaxInclEq=!0)}}}function Jr(e){var t=e.chart,n=e.document,r=e.selectionInfo,o=e.eventName,i=e.componentName,a=e.brushName,l=void 0===a?\"selection\":a,u=e.emit,c=void 0===u?\"rangeClear\":u,s=r.event===o,f=n.querySelector(\"[data-key='\".concat(i,\"-edge-0']\"));if(s||!f)return!1;var d=t.component(i);return!!d&&(d.emit(c),\"string\"==typeof l&&t.brush(l).clear(),d)}function Qr(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.eventName,i=void 0===o?\"discreteRange\":o,a=e.componentName,l=void 0===a?\"discrete-range-brush\":a,u=e.cleared;return Jr({selectionInfo:t,chart:n,document:r,eventName:void 0!==u&&u?void 0:i,componentName:l,emit:\"areaClear\",brushName:e.brushName})}function eo(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.eventName,i=void 0===o?\"continuousRange\":o,a=e.componentName,l=void 0===a?\"continuous-range-brush\":a,u=e.cleared;return Jr({selectionInfo:t,chart:n,document:r,eventName:void 0!==u&&u?void 0:i,componentName:l,brushName:e.brushName})}function to(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.componentName,i=void 0===o?\"minor-range-brush\":o,a=e.eventName,l=void 0===a?\"minorRange\":a,u=e.cleared,c=void 0!==u&&u,s=e.brushName,f=Jr({selectionInfo:t,chart:n,document:r,eventName:c?void 0:l,componentName:i,brushName:void 0!==s&&s});if(f){var d=f.settings.settings,p=d.scale,h=d.brush,m=n.scale(p).data().fields.map((function(e){return e.id()})),v=n.brush(h),y=v.brushes().filter((function(e){return\"range\"===e.type&&m.some((function(t){return t===e.id}))}));v&&y.length&&y.forEach((function(e){v.removeRanges(e.brush.ranges().map((function(t){return{key:e.id,range:t}})))}))}}function no(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.selections,i=e.eventName,a=void 0===i?\"xAxis\":i,l=e.cleared;Jr({selectionInfo:t,chart:n,document:r,eventName:void 0!==l&&l?void 0:a,componentName:\"\".concat(a,\"-range-brush\"),emit:\"areaClear\",brushName:!1})&&o.clear()}function ro(e){var t=e.chart,n=e.selectionInfo,r=e.selections,o=e.events,i=void 0===o?[\"tap\"]:o,a=e.brushNames,l=void 0===a?[]:a;if(n&&i.includes(n.event)){var u=n.currentComponent;n.previousComponent!==u&&(r.clear(),l.forEach((function(e){return t.brush(e).end()})))}}function oo(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.selections,i=e.eventName,a=void 0===i?\"legendRange\":i,l=e.componentName,u=void 0===l?\"legend-range-brush\":l,c=e.cleared,s=void 0!==c&&c,f=e.brushName;Jr({selectionInfo:t,chart:n,document:r,eventName:s?void 0:a,componentName:u,brushName:void 0!==f&&f})&&o.clear()}var io=[\"chart\",\"document\",\"selections\",\"selectionInfo\"],ao=function(e){e.chart,e.document,e.selections,e.selectionInfo;var t=l(e,io);t.clearDiscrete(),t.clearContinuous(),t.clearMinor(),t.clearRange(),t.clearTap(),t.clearLegend()};function lo(e){var n=e.selectionEvents,r=e.selections,o=e.selectionInfo,i=e.clear,a=e.chart,l=e.document,u=n.start,c={selections:r,selectionInfo:o,chart:a,document:l},s=function(e){return Object.assign(o,e||{})},f=function(e){var n=e.event,r=e.components;return function(){return function(e){var n=e.selectionInfo,r=void 0===n?{}:n,o=e.setSelectionInfo,i=e.clear,a=e.event,l=e.components,u=void 0===l?[]:l;o(t(t({},r),{},{event:a,components:u.map((function(e){return e.key})).filter(Boolean)})),i()}({event:n,components:r,clear:i,chart:a,selectionInfo:o,setSelectionInfo:s})}};return\"function\"==typeof u?function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];u(t(t({defaultFunc:f({event:e,components:n}),setSelectionInfo:s,clear:i},c),{},{event:e,components:n}))}:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];f({event:e,components:t})()}}function uo(e){var t,n=e.lasso;null!=n&&null!==(t=n.active)&&void 0!==t&&t.call(n)&&(null==n||n.action(!1))}function co(e){var n,r=e.chart,o=e.selectionInfo,i=e.selectionActions,a=e.actions,l=void 0===a?{}:a,c=e.selections,s=e.selectionEvents;if(!1===i||!1===s)return function(){};var f=i.reset,d=void 0===f?uo:f,p=i.clear,h=!1!==p&&function(e){var n=e.clear,r=void 0===n?ao:n,o=e.selections,i=e.selectionInfo,a=e.chart;return function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).cleared,n={selections:o,selectionInfo:i,chart:a,document:document,cleared:e};return r(t({clearDiscrete:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Qr(t(t({},n),e))},clearContinuous:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return eo(t(t({},n),e))},clearMinor:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return to(t(t({},n),e))},clearRange:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return no(t(t({},n),e))},clearTap:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ro(t(t({},n),e))},clearLegend:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return oo(t(t({},n),e))}},n))}}({clear:p,selections:c,selectionInfo:o,chart:r}),m=function(e){var t=e.chart,n=e.actions,r=e.reset,o=e.clear,i=!1,a={deactivated:function(e){var t=(n||{}).lasso;r({e:e,lasso:void 0!==t&&t})},canceled:function(e){var i=(n||{}).lasso;r({e:e,lasso:void 0!==i&&i}),o({e:e,chart:t,document:document})},cleared:function(e){i||(i=!0,o({e:e,chart:t,document:document,cleared:!0}),i=!1)}};return!1===r&&delete a.deactivated,!1===o&&delete a.cleared,!1===r&&!1===o&&delete a.canceled,a}({chart:r,clear:h,reset:d,actions:l}),v={};Object.entries(m).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];v[n]=function(e,t){return t?function(n){return t({event:n,defaultFunc:e})}:e}(r,s[n])}));var y=lo({selectionEvents:s,selections:c,selectionInfo:o,clear:h,chart:r,document:document});return null==l||null===(n=l.select)||void 0===n||n.on(\"start\",y),Object.entries(v).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];null==c||c.on(n,r)})),function(){var e;null==l||null===(e=l.select)||void 0===e||e.removeListener(\"start\",y),Object.entries(v).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];null==c||c.removeListener(n,r)}))}}function so(e){var t=e.chart,n=e.selectionActions,r=e.brush,o=e.actions,i=e.selectionInfo,a=e.selections,l=e.selectionEvents,c=function(e){var t=e.brush,n=e.chart,r=e.selectionInfo,o=e.brushEvents,i=void 0===o?{}:o,a=Object.entries(i).map((function(e){var o=u(e,2),i=o[0],a=o[1],l=function(){return a({chart:n,selectionInfo:r})};return t.on(i,l),[i,l]}));return function(){a.forEach((function(e){var n=u(e,2),r=n[0],o=n[1];t.removeListener(r,o)}))}}({brush:r,chart:t,selectionInfo:i,brushEvents:e.brushEvents}),s=co({chart:t,selectionInfo:i,selectionActions:n,actions:o,selections:a,selectionEvents:l}),f=function(e){var t=e.actions;if(null==t||!t.lasso)return function(){};var n=!1,r=function(e){n||e.key!==jr||(t.lasso.action(!0),n=!0)},o=function(e){e.key===jr&&(t.lasso.action(!1),n=!1)};return document.addEventListener(\"keydown\",r),document.addEventListener(\"keyup\",o),function(){document.removeEventListener(\"keydown\",r),document.removeEventListener(\"keyup\",o)}}({actions:o});return function(){c(),s(),f()}}var fo=[{key:\"qHyperCube/qDimensionInfo/0:numeric\",includeMax:!1}];function po(e){var t=e.chart,n=e.actions,r=e.selections,o=e.picassoQ,i=e.config,a=i.allowSimultaneous,l=void 0!==a&&a,s=i.majorScale,f=void 0===s?void 0:s,d=i.selectionActions,p=void 0===d?{}:d,h=p.clear,m=p.reset,v=i.selectionEvents,y=void 0===v?{deactivated:void 0,canceled:void 0,cleared:void 0,start:void 0}:v,g=i.brushEvents,b=void 0===g?{}:g,x=i.brushName,q=void 0===x?\"selection\":x,w=i.brushMaxListeners,M=void 0===w?20:w,k=i.brushRanges,S=void 0!==k&&k,C=i.interceptors,D=void 0===C?{}:C,I=i.selectionsFn,O=void 0===I?o.selections:I,E=t.brush(q);if(\"number\"==typeof M&&E.setMaxListeners(M),S){var A=!0===S?fo:S;E.configure({ranges:A})}var N={canSelect:!0,getIsSelectionLocked:!1,isInnerDimensionLocked:!1,lockedDimensions:[],singleSelectIndex:0,selectionInfo:{colorField:void 0,components:[],event:void 0,currentComponent:void 0,previousComponent:void 0}},L=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.selections,r=t.brush,o=t.majorScale,i=t.actions,a=t.selectionsFn,l=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).path,u=void 0===l?\"/qHyperCubeDef\":l;if(!n)return{layout:function(){},filteredFields:function(){},allowSimultaneous:function(){},release:function(){}};var c=++$r,s=null,f={dimensions:[],measures:[]},d=[],p={};n.on=n.on.bind(n),n.isActive=n.isActive.bind(n),n.addListener=n.addListener.bind(n),n.removeListener=n.removeListener.bind(n);var h=Fr({brush:r,getConfig:function(){return{layout:s,allowSimultaneous:d}}}),m=h.rangeInterceptor,v=h.interceptor;r.intercept(\"set-ranges\",m),r.intercept(\"toggle-ranges\",m),r.intercept(\"toggle-values\",v),r.intercept(\"set-values\",v),r.intercept(\"add-values\",v),r.on(\"start\",(function(){return n.begin(u)}));var y={activate:function(){},deactivated:function(){return r.end()},cleared:function(){return r.clear()},canceled:function(){return r.end()}};Wr(n,y);var g=null==o||null===(e=o.max)||void 0===e?void 0:e.call(o);return null!=i&&i.select?(i.select.on(\"start\",(function(){var e;r.start(),\"function\"==typeof i.select.getBrushOptions&&(p=(e=i.select).getBrushOptions.apply(e,arguments))})),i.select.on(\"end\",(function(){var e=a(r,p,s),t=zr({layout:s,filtered:f});e.forEach((function(e){var r=Br({selection:e,fieldMap:t});Zr(r,i.select.brushSelectionIncludeMax,g),n.select(r)}))}))):r.on(\"update\",(function(){var e=a(r,p,s),t=zr({layout:s,filtered:f});e.forEach((function(e){n.select(Br({selection:e,fieldMap:t}))}))})),0===Yr.length&&Kr(),Yr.push({key:c,selections:n}),{layout:function(e){s=e},filteredFields:function(e){f=e},allowSimultaneous:function(e){d=e},release:function(){s=null;var e=Yr.indexOf(Yr.filter((function(e){return e.key===c}))[0]);-1!==e&&Yr.splice(e,1),Yr.length||Gr(),Xr(n,y)}}}({brush:E,majorScale:f,actions:n,selections:r,picassoQ:o,selectionsFn:O});!function(e){var t=e.brush,n=e.interceptors,r=void 0===n?{}:n;Object.entries(r).forEach((function(e){var n=u(e,2),r=n[0],o=n[1];(Array.isArray(o)?o:[o]).forEach((function(e){t.intercept(r,e)}))}))}({brush:E,interceptors:D});var T=so({chart:t,brush:E,actions:n,selections:r,selectionInfo:N.selectionInfo,selectionActions:{clear:h,reset:m},selectionEvents:y,brushEvents:b});if(l){var P=!0===l?c(Array(15)).map((function(e,t){return\"qHyperCube/qMeasureInfo/\".concat(t)})):l;L.allowSimultaneous(P)}return{unbindEvents:T,state:N,picassoSelections:L,brush:E}}var ho=[\"colorField\",\"useLegendCube\"];function mo(e){var n=e.chart,r=e.selections,o=e.actions,i=void 0!==o&&o,a=e.config,u=void 0===a?{}:a,c=po({chart:n,actions:i,selections:r,picassoQ:Ir,config:u}),s=c.unbindEvents,f=c.state,d=c.picassoSelections,p=c.brush,h=u.custom,m=void 0===h?{}:h,v=u.legendAlias,y=void 0===v?void 0:v,g=u.setBrushAliases,b=void 0===g?Nr:g;return{getIsDimensionLocked:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return f.lockedDimensions[e]},getIsSelectionLocked:function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return null!==(e=null==r||null===(t=r.isLocked)||void 0===t?void 0:t.call(r))&&void 0!==e?e:Ar(n)},getIsSingleSelect:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f.singleSelectIndex;return f.singleSelectDimensions[e]},getCanSelect:function(){return f.canSelect},getSelectionInfo:function(){return f.selectionInfo},setLayout:function(e){var t=Er({selections:r,picassoSelections:d,layout:e});Object.assign(f,t)},setFilteredFields:function(e){d.filteredFields(e)},setBrushAliases:function(e){var n=e.colorField,r=e.useLegendCube,o=void 0!==r&&r,i=l(e,ho),a=t({useLegendCube:o,colorField:n,brush:p,legendAlias:y},i);b(t(t({},a),{},{defaultFunc:function(){return Nr(a)}}))},destroy:function(){s(),d.release()},custom:t({},m)}}var vo=\"'Source Sans Pro', 'Arial', 'sans-serif'\",yo=\"#333333\",go=\"#595959\",bo=\"#737373\",xo=\"#cccccc\",qo=\"#e6e6e6\";function wo(e){var t={};return[].concat(c(e),c([[\"\",\"\",\"color\"],[\"object\",\"\",\"fontFamily\"],[\"object\",\"axis.label.name\",\"color\",go],[\"object\",\"axis.label.name\",\"fontFamily\",vo],[\"object\",\"axis.label.name\",\"fontSize\",\"12px\"],[\"object\",\"axis.line.major\",\"color\",xo],[\"object\",\"axis.line.minor\",\"color\",qo],[\"object\",\"axis.title\",\"color\"],[\"object\",\"axis.title\",\"fontFamily\",vo],[\"object\",\"axis.title\",\"fontSize\",\"13px\"],[\"object\",\"grid.line.highContrast\",\"color\",qo],[\"object\",\"grid.line.major\",\"color\",xo],[\"object\",\"grid.line.minor\",\"color\",qo],[\"object\",\"label.value\",\"color\",go],[\"object\",\"label.value\",\"fontFamily\",vo],[\"object\",\"label.value\",\"fontSize\",\"12px\"],[!1,\"label.value\",\"darkColor\",go],[!1,\"label.value\",\"lightColor\",qo],[\"object\",\"outOfRange\",\"color\",\"#999\"],[\"object\",\"legend.title\",\"color\",yo],[\"object\",\"legend.title\",\"fontFamily\",vo],[\"object\",\"legend.title\",\"fontSize\",\"15px\"],[\"object\",\"legend.label\",\"color\",go],[\"object\",\"legend.label\",\"fontFamily\",vo],[\"object\",\"legend.label\",\"fontSize\",\"13px\"],[\"object\",\"referenceLine.label.name\",\"color\",yo],[\"object\",\"referenceLine.label.name\",\"fontFamily\",vo],[\"object\",\"referenceLine.label.name\",\"fontSize\",\"12px\"],[\"object\",\"referenceLine.outOfBounds\",\"color\",qo],[\"object\",\"referenceLine.outOfBounds\",\"fontFamily\",vo],[\"object\",\"referenceLine.outOfBounds\",\"fontSize\",\"12px\"],[\"object\",\"referenceLine.outOfBounds\",\"backgroundColor\",bo,function(e){return\"transparent\"===e?bo:e}]])).reduce((function(e,n){var r=\"\".concat(n[0],\"-\").concat(n[1],\"-\").concat(n[2],\"}\");return t[r]||(t[r]=!0,e.push(n)),e}),[]).sort((function(e,t){return(e[0].split?e[0].split(\".\").length:0)-(t[0].split?t[0].split(\".\").length:0)}))}var Mo=function(e){return e};function ko(e){var t=e.theme,n=e.id,r=e.transform,o=e.extend,i=e.matrix,a={},l=r.reduce((function(e,t){var n=u(t,2),r=n[0],o=n[1];return e[r]=o,e}),{});return i.forEach((function(e){var r=u(e,5),o=r[0],i=r[1],c=r[2],s=r[3],f=r[4],d=void 0===f?function(e){return e}:f,p=function(e){var t=e.theme,n=e.base,r=e.path,o=e.attribute,i=e.defaultValue,a=void 0===i?void 0:i;if(!t||!1===n)return a;var l=t.getStyle(n,r,o);return void 0===l?a:l}({theme:t,base:\"object\"===o&&n?\"\".concat(\"object\",\".\").concat(n):o,path:i,attribute:c,defaultValue:s}),h=(l[\"\".concat(i,\".\").concat(c)]||Mo)(d(p));qt(a,[i,c].filter(Boolean).join(\".\"),h)})),o.forEach((function(e){var t=u(e,2),n=t[0],r=t[1];qt(a,n,r)})),a}function So(e){var t=e.theme,n=e.config,r=void 0===n?{}:n,o=r.id,i=r.resolve,a=void 0===i?[]:i,l=r.transform,u=void 0===l?[]:l,c=r.extend,s=void 0===c?[]:c,f={theme:t,matrix:wo(a),styles:void 0};return f.styles=ko({theme:t,id:o,transform:u,extend:s,matrix:f.matrix}),{getStyles:function(){return f.styles},getTheme:function(){return f.theme},setTheme:function(e){f.theme=e,f.styles=ko({theme:e,id:o,transform:u,extend:s,matrix:f.matrix})}}}var Co={NOOP:function(){},FALSE:function(){return!1},ARRAY:function(){return[]},OBJECT:function(){return{}}};var Do=\"chart-modules-tooltip\",Io=\"#\".concat(Do);function Oo(){if(!document.querySelector(Io)){var e=document.createElement(\"div\");e.id=Do,e.style.overflow=\"hidden\",e.style.position=\"fixed\",e.style.pointerEvents=\"none\",e.style.left=\"0px\",e.style.top=\"0px\",e.style.width=\"100%\",e.style.height=\"100%\",e.style.zIndex=1020,document.body.appendChild(e)}}function Eo(e){return{show:!0,key:e.key,type:\"tooltip\",layout:{displayOrder:3},beforeMount:function(){Oo()},beforeUpdate:function(){Oo()},destroyed:function(){var e;null!=(e=document.querySelector(Io))&&e.parentElement&&e.childElementCount<1&&e.parentElement.removeChild(e)},settings:{appendTo:function(){return document.querySelector(Io)},direction:e.rtl?\"rtl\":\"ltr\",duration:e.duration},style:{arrow:{color:\"#404040\"},content:{display:\"table\",\"border-spacing\":\"4px\",background:\"rgba(64, 64, 64, 0.9)\",opacity:\"1\",fontSize:\"13px\",fontFamily:\"'Source Sans Pro', 'Arial', 'sans-serif'\",\"empty-cells\":\"show\"},cell:{\"max-width\":\"180px\",\"word-break\":\"break-word\",\"word-wrap\":\"break-word\",\"overflow-wrap\":\"break-word\",hyphens:\"auto\"}}}}var Ao=\"position\";var No={bar:\"rect\",diamond:\"path\",point:\"circle\",square:\"rect\",triangle:\"path\",\"n-polygon\":\"path\",slice:\"path\"},Lo=function(e){return e.data.value},To=function(e){var t,n=e.data;return null==n||null===(t=n.major)||void 0===t?void 0:t.value};function Po(e){var t=e.chart,n=e.expando,r=e.nodes,o=e.collectConfig,i=e.collectibles,a=e.meta,l=o.from,s={chart:t,expando:n,nodes:r,collectConfig:o,collectibles:i,meta:a};switch(\"function\"==typeof l?\"custom\":l){case\"single\":return function(e){var t=u(e.nodes,1)[0];return[\"container\"===t.type&&t.children[0]||t]}(s);case\"position\":return function(e){var t=e.chart,n=e.collectibles,r=e.meta;return t.shapesAt(r.position.absolute,{components:n.map((function(e){return{key:e.key}}))})}(s);case\"dimension\":return function(e){var t=e.chart,n=e.nodes,r=e.collectConfig,o=e.collectibles,i=u(n,1)[0],a=r.filter,l=\"function\"==typeof a?a:function(){return!0},s=r.by,f=void 0===s?Lo:s;return o.reduce((function(e,n){var r=n.major,o=void 0===r?To:r,a=No[n.type]||n.type;return e.push.apply(e,c(t.findShapes(a).filter((function(e){return e.key===n.key&&e.data&&o({data:e.data})===f({data:i.data})})))),e}),[]).filter(l)}(s);case\"radius\":return function(e){var t=e.chart,n=e.nodes,r=e.collectConfig,o=e.collectibles,i=e.meta,a=u(n,1)[0].localBounds,l=r.distance,c=r.filter,s=\"function\"==typeof c?c:function(){return!0},f=o.map((function(e){return e.key}));return t.shapesAt({cx:i.position.absolute.x,cy:i.position.absolute.y,r:l||Math.max(a.width,a.height)},{components:f.map((function(e){return{key:e}}))}).filter(s)}(s);case\"custom\":return function(e){var t=e.chart,n=e.expando,r=e.nodes,o=e.collectConfig,i=e.meta;return o.from({chart:t,expando:n,nodes:r,meta:i})}(s);default:return[]}}var jo=Number.MAX_VALUE;function Fo(e){var t=e.nodes.reduce((function(e,t){var n=t.bounds;return e.xMin=Math.min(e.xMin,n.x,n.x+n.width),e.yMin=Math.min(e.yMin,n.y,n.y+n.height),e.xMax=Math.max(e.xMax,n.x,n.x+n.width),e.yMax=Math.max(e.yMax,n.y,n.y+n.height),e}),{xMin:jo,xMax:-jo,yMin:jo,yMax:-jo}),n=t.xMin,r=t.xMax,o=t.yMin;return{x:n,y:o,width:r-n,height:t.yMax-o}}function Ho(e){var t=e.chart,n=e.config,r=e.expando,o=e.placementConfig,i=e.hovered,a=e.collected,l=e.meta,s=function(e){for(var t=e.chart,n=e.config,r=e.expando,o=e.placementConfig,i=e.hovered,a=e.collected,l=e.meta,s=u(i,1)[0],f=Array.isArray(o)?o:[o],d={bounds:s.bounds,key:s.key},p=Fo({nodes:a}),h=0;h<f.length;h++){var m=f[h];if(\"function\"==typeof m){var v=m({chart:t,expando:r,hovered:i,collected:c(a),meta:l,collectedBounds:p,combineBounds:Fo});if(v)return v}if(\"trigger\"===m)return d;if(\"collectible\"===m){var y=n.main.placements.collectible;return{bounds:\"function\"==typeof y?y({collected:c(a)}):p,key:a[0].key}}}return d}({chart:t,config:n,expando:r,placementConfig:o,hovered:i,collected:a,meta:l}),f=s.bounds,d=s.key,p=u(a,1)[0].desc;return[{bounds:f,nodes:a,data:a.map((function(e){return e.data})),key:d,meta:l,desc:p}]}function Ro(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.nodes;if(!i.length)return[];var a=u(i,1)[0].key,l=n.main.collectibles;if(!l.length)return[];var c=n.main.triggers.find((function(e){return-1!==e.keys.indexOf(a)}))||{},s=c.collect,f=c.placement;if(!s||!s.from||!f)return[];var d={triggerer:a,position:o.get(Ao)},p=(Po({chart:t,expando:r,nodes:i,collectConfig:s,collectibles:l,meta:d})||[]).map((function(e){return e.children.length?e.children[0]:e}));return p.length?Ho({chart:t,config:n,expando:r,placementConfig:f,hovered:i,collected:p,meta:d}):[]}var zo=\"[־׀׃׆א-״߀-ߪߴ-ߵߺ-ࠕࠚࠤࠨ࠰-ࡘ࡞‏יִײַ-ﬨשׁ-ﭏ]\",Vo=\"[؈؋؍؛-ي٭-ٯٱ-ەۥ-ۦۮ-ۯۺ-܍ܐܒ-ܯݍ-ޥޱﭐ-ﴽﵐ-﷼ﹰ-ﻼ]\",_o=new RegExp(\"[A-Za-zªµºÀ-ÖØ-öø-ʸʻ-ˁː-ˑˠ-ˤˮͰ-ͳͶ-ͽΆΈ-ϵϷ-҂Ҋ-։ः-हऻऽ-ीॉ-ौॎ-ॐक़-ॡ।-ॿং-হঽ-ীে-ৌৎ-ৡ০-ৱ৴-৺ਃ-ਹਾ-ੀਖ਼-੯ੲ-ੴઃ-હઽ-ીૉ-ૌૐ-ૡ૦-૯ଂ-ହଽ-ାୀେ-ୌୗ-ୡ୦-୷ஃ-ிு-ௌௐ-௲ఁ-ఽు-ౄౘ-ౡ౦-౯౿-ಹಽ-ೋೕ-ೡ೦-ീെ-ൌൎ-ൡ൦-ෆා-ෑෘ-ะา-ำเ-ๆ๏-ະາ-ຳຽ-ໆ໐-༗༚-༴༶༸༾-ཬཿ྅ྈ-ྌ྾-࿅࿇-ာေးျ-ြဿ-ၗၚ-ၝၡ-ၰၵ-ႁႃ-ႄႇ-ႌႎ-ႜ႞-ፚ፠-ᎏᎠ-Ᏼᐁ-ᙿᚁ-ᚚᚠ-ᜑᜠ-ᜱ᜵-ᝑᝠ-ᝰក-ាើ-ៅះ-ៈ។-៚ៜ០-៩᠐-ᢨᢪ-ᤜᤣ-ᤦᤩ-ᤱᤳ-ᤸ᥆-᧚ᨀ-ᨖᨙ-ᩕᩗᩡᩣ-ᩤᩭ-ᩲ᪀-᪭ᬄ-ᬳᬵᬻᬽ-ᭁᭃ-᭪᭴-᭼ᮂ-ᮡᮦ-ᮧ᮪-ᯥᯧᯪ-ᯬᯮ᯲-ᰫᰴ-ᰵ᰻-᱿᳓᳡ᳩ-ᳬᳮ-ᶿḀ-ᾼιῂ-ῌῐ-Ίῠ-Ῥῲ-ῼ‎ⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎ-⅏Ⅰ-ↈ⌶-⍺⎕⒜-ⓩ⚬⠀-⣿Ⰰ-ⳤⳫ-ⳮⴀ-⵰ⶀ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ㆺㇰ-㈜㈠-㉏㉠-㉻㉿-㊰㋀-㋋㋐-㍶㍻-㏝㏠-㏾㐀-䶵一-ꒌꓐ-ꘌꘐ-ꙮꚀ-ꛯ꛲-꛷Ꜣ-ꞇ꞉-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠤꠧ꠰-꠷ꡀ-ꡳꢀ-ꣃ꣎-꣙ꣲ-ꤥ꤮-ꥆꥒ-ꥼꦃ-ꦲꦴ-ꦵꦺ-ꦻꦽ-ꨨꨯ-ꨰꨳ-ꨴꩀ-ꩂꩄ-ꩋꩍ-ꪯꪱꪵ-ꪶꪹ-ꪽꫀꫂ-ꯤꯦ-ꯧꯩ-꯬꯰-ﬗA-Za-zヲ-ᅵ]\"),Bo=new RegExp(zo),Yo=new RegExp(Vo),$o=function(e){return _o.test(e)},Uo=function(e){return Bo.test(e)||Yo.test(e)};function Ko(e){for(var t=e?e.length:0,n=0;n<t;n++){var r=e[n];if($o(r))return\"ltr\";if(Uo(r))return\"rtl\"}return\"ltr\"}function Go(e){var n=e.visibility;return{type:\"divider\",content:[{content:\"\",style:{\"background-image\":\"linear-gradient(transparent 8px, rgba(255, 255, 255, 0.4) 8px, rgba(255, 255, 255, 0.4) 9.2px, transparent 9.2px)\",height:\"17px\"},colspan:2}],visibility:t(t({},{count:!1}),n)}}function Wo(e){var n=e.config,r=e.h,o=e.context,i=e.nodes,a=e.property,l=e.filter,c=e.visibility,s=e.fillColor,f=n.rtl,d={type:\"color\",label:void 0,value:void 0,content:[],filter:l,visibility:t(t({},{count:!0}),c)},p=n.getColorSettings();if(\"color\"===p.type||!p.fieldType)return d;var h=u(i,1)[0];if(d.value=function(e){var t=e.config,n=e.context,r=e.property,o=e.node,i=o.data[r];if(i){if(-3===o.data.value)return o.data.label;var a=n.resources.dataset(i.source.key).field(i.source.field).formatter(),l=i.value,u=i.label,c=t.getColorSettings();if(a&&\"measure\"===c.fieldType)return Number.isNaN(+l)?\"-\":a(i.value);var s=u||l;return void 0===s||Number.isNaN(s)||\"NaN\"===s?\"-\":s}}({config:n,context:o,property:a,node:h}),void 0===d.value)return d;d.label=function(e){var t=e.config,n=e.context,r=e.property,o=e.node,i=t.getColorSettings();if(i.label)return i.label;var a=o.data[r];if(a&&\"color\"!==i.type){var l=n.resources.dataset,u=a.source,c=u.key,s=u.field;return l(c).field(s).title()}}({config:n,context:o,property:a,node:h});var m=null!=s?s:function(e){var t=e.node.attrs;return(null==t?void 0:t.fill)||\"#ddd\"}({node:h}),v=r(\"div\",{style:{display:\"inline-block\",width:10,height:10,\"background-color\":m,margin:\"0 8px\"}});return d.content.push({content:f?[\":\",d.label]:[d.label,\":\"],style:{\"text-align\":f?\"right\":\"left\",direction:Ko(d.label)}},{content:f?[d.value,v]:[v,d.value],style:{\"text-align\":f?\"left\":\"right\",\"vertical-align\":\"middle\",direction:Ko(d.value)}}),d}function Xo(e){var n=e.config,r=e.h,o=e.context,i={section:function(e){return function(e){return{type:\"section\",content:e.content}}({content:e.content})},text:function(e){var r=e.value,o=e.style,i=e.visibility;return function(e){var n=e.config,r=e.value,o=e.style,i=void 0===o?{}:o,a=i.bold,l=void 0!==a&&a,u=i.italic,c=void 0!==u&&u,s=e.visibility;return{type:\"text\",content:[{content:r,style:{\"font-weight\":l?\"bold\":\"normal\",\"font-style\":c?\"italic\":\"normal\",\"text-align\":n.rtl?\"right\":\"left\",direction:Ko(r)},colspan:2}],visibility:t(t({},{count:!0}),s)}}({config:n,value:r,style:o,visibility:i})},measure:function(e){var o=e.label,i=e.value,a=e.color,l=e.style,u=e.survive,c=e.visibility;return function(e){var n,r,o,i,a=e.config,l=e.h,u=e.label,c=e.value,s=e.color,f=e.style,d=e.survive,p=e.visibility,h=a.rtl,m=l(\"div\",{style:{display:\"inline-block\",width:10,height:10,\"background-color\":s,margin:\"0 8px\"}});return{type:\"measure\",label:u,value:c,content:[{content:h?[\":\",u]:[u,\":\"],style:{\"text-align\":h?\"right\":\"left\",\"font-weight\":null!=f&&null!==(n=f.label)&&void 0!==n&&n.bold?\"bold\":\"normal\",\"font-style\":null!=f&&null!==(r=f.label)&&void 0!==r&&r.italic?\"italic\":\"normal\",direction:Ko(u)}},{content:s?h?[c,m]:[m,c]:c,style:{\"text-align\":h?\"left\":\"right\",\"vertical-align\":\"middle\",\"font-weight\":null!=f&&null!==(o=f.value)&&void 0!==o&&o.bold?\"bold\":\"normal\",\"font-style\":null!=f&&null!==(i=f.value)&&void 0!==i&&i.italic?\"italic\":\"normal\",direction:Ko(c)}}],survive:t(t({},{color:!1,duplicate:!1}),d),visibility:t(t({},{count:!0}),p)}}({config:n,h:r,label:o,value:i,color:a,style:l,survive:u,visibility:c})},divider:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.visibility;return Go({visibility:t})},row:function(e){return function(e){var n=e.content,r=e.style,o=e.colspan,i=e.visibility;return{type:\"row\",content:[{content:n,style:r,colspan:o}],visibility:t(t({},{count:!0}),i)}}({content:e.content,style:e.style,colspan:e.colspan,visibility:e.visibility})},raw:function(e){return function(e){var n=e.value,r=e.visibility;return{type:\"raw\",content:n,visibility:t(t({},{count:!0}),r)}}({value:e.value,visibility:e.visibility})},color:function(e){var t=e.nodes,i=e.property,a=e.filter,l=void 0===a||a,u=e.visibility,c=e.fillColor;return Wo({config:n,h:r,context:o,nodes:t,property:i,filter:l,visibility:u,fillColor:c})}};return i}function Zo(e){var t=e.translator,n=e.config,r=e.context,o=e.templates,i=n.main.layout,a=i.rows,l=i.grouping,u=i.single,c=function(e){var t=e.limit,n=e.grouping,r=e.single,o={count:0,overflow:0,index:{started:void 0,group:void 0}};return{process:function(e){var i=e.visibility,a=e.index;if(r&&0!==a)return n?(o.index.started!==a&&o.index.group!==a&&(o.overflow++,o.index.group=a),!1):(o.overflow++,!1);if(o.count>=t){if(!n)return o.overflow++,!1;if(o.index.started!==a)return o.index.group!==a&&(o.overflow++,o.index.group=a),!1}return i.count&&o.count++,n&&(o.index.started=a),!0},overflow:function(){return o.overflow}}}({limit:a,grouping:l,single:\"function\"==typeof u?u({meta:r.node.meta,sections:o}):u}),s=o.reduce((function(e,t,n){var r=t.type,i=t.content;\"section\"===r&&(void 0===i?[]:i).forEach((function(t){c.process({visibility:t.visibility,index:n})&&e.push(t.content)}));var a=n===o.length-1;return\"divider\"!==r||a||c.process({visibility:t.visibility,index:n})&&e.push(t.content),e}),[]).filter((function(e){return e.length})),f=c.overflow();return f&&s.push(function(e){var t=e.translator,n=e.config,r=e.count,o=t?t.get(\"Object.ChartTooltip.NMore\",r):\"+\".concat(r,\" more\"),i=Ko(o);return[{content:o,style:{\"font-weight\":\"bold\",\"text-align\":n.rtl?\"right\":\"left\",direction:i},colspan:2}]}({translator:t,config:n,count:f})),s}function Jo(e){var n=e.chart,r=e.translator,o=e.config,i=e.expando,a=e.h,l=e.data,s=e.style,f=u(l,1)[0],d=function(e){var t=e.config,n=e.nodes.reduce((function(e,n){var r=t.main.getGroupByValue({data:n.data});return e[r]||(e[r]={sorting:Object.keys(e).length,items:[]}),e[r].items.push(n),e}),{});return Object.keys(n).map((function(e){return n[e]})).sort((function(e,t){return e.sorting-t.sorting})).map((function(e){return e.items}))}({config:o,nodes:f.node.nodes}),p=function(e){var t=e.chart,n=e.config,r=e.expando,o=e.h,i=e.context,a=e.groups,l=i.node.meta,u=i.resources,s=u.dataset,f=u.formatter,d=Xo({config:n,h:o,context:i}),p=function(e){var t=e.dataset;return{dataset:{title:function(e,n){return t(e).field(n).title()}}}}({dataset:s}),h=a.map((function(e){var t=d.section({content:c((n.main.section({expando:r,h:o,nodes:e,dataset:s,formatter:f,meta:l,create:d,util:p})||[]).filter((function(e){var t;return null===(t=e.content)||void 0===t?void 0:t.length}))).filter(Boolean)});return t.content=function(e){var t=e.config,n=e.content,r=n.find((function(e){return\"color\"===e.type&&e.filter})),o=r?n.filter((function(e){return\"measure\"!==e.type||e.survive.color||e.label!==r.label||e.value!==r.value})):n;return t.main.showDuplicateMeasures?o:o.reduce((function(e,t){var n=t.type,r=t.survive;if(\"measure\"!==n||r.duplicate)return e.filtered.push(t),e;var o=\"\".concat(t.label,\"-\").concat(t.value);return e.memory[o]||(e.memory[o]=!0,e.filtered.push(t)),e}),{memory:{},filtered:[]}).filtered}({config:n,content:t.content}),t}));return n.main.sections({chart:t,expando:r,h:o,nodes:i.node.nodes,dataset:s,formatter:f,meta:l,create:d,util:p,sections:h}),h.filter(Boolean)}({chart:n,config:o,expando:i,h:a,context:f,groups:d}),h=Zo({translator:r,config:o,h:a,context:f,templates:p});return h.length?function(e){var n=e.h,r=e.style;return e.rows.map((function(e){return n(\"tr\",{},e.map((function(e){var o={style:t(t({},r.cell||{}),e.style||{}),class:e.class};return e.colspan&&(o.colspan=e.colspan),n(\"td\",o,e.content)})))}))}({h:a,style:s,rows:h}):function(e){var t=e.h;return t(\"tr\",{},t(\"td\",{style:{fontStyle:\"italic\",opacity:.75}},\"Empty\"))}({h:a})}function Qo(e){var t=e.chart,n=e.translator,r=e.config,o=e.expando,i=e.internal;if(!r.main.key)return!1;var a=wt(),l=Eo({key:r.main.key,rtl:r.rtl,duration:r.duration}),u=r.main.events.tooltip,c=u.afterShow,s=u.afterHide,f=function(){var e=a.get(\"collected\");return{expando:o,nodes:e.nodes,meta:e.meta}};return w(!0,l,{settings:{filter:function(e){return Ro({chart:t,config:r,expando:o,internal:i,nodes:e})},extract:function(e){return a.set(\"collected\",e.node),e},content:function(e){var i=e.h,a=e.data,l=e.style;return Jo({chart:t,translator:n,config:r,expando:o,h:i,data:a,style:l})},placement:function(e){var t=e.nodes;return r.main.placement({meta:t[0].meta})},afterShow:function(){return c(f())},afterHide:function(){return s(f())}},style:{arrow:{color:r.style.background},content:r.style}})}function ei(e){var n=e.config,r=n.legend.keys;if(!r.tooltip||!r.component)return!1;if(\"categorical\"!==n.getColorSettings().type)return!1;var o=Eo({key:r.tooltip,rtl:n.rtl,duration:n.duration});return w(!0,o,{settings:{filter:function(e){return e.filter((function(e){return e.data&&e.key===r.component}))},extract:function(e){return e},content:function(e){var n=e.h,r=e.data;return[n(\"tr\",{},[n(\"td\",{style:t(t({},e.style.cell||{}),{\"font-weight\":\"bold\",\"text-align\":\"left\"}),colspan:2},r[0].node.data.label)])]},placement:\"pointer\"},style:{arrow:{color:n.style.background},content:n.style}})}function ti(e){var t=e.config.main.triggers.reduce((function(e,t){return t.keys.forEach((function(n){var r=t.distance||0;e.distance[n]=r,e.distances.includes(r)||e.distances.push(r),e.key[n]=!0,e.keys[r]||(e.keys[r]=[]),e.keys[r].push(n)})),e}),{distance:{},distances:[],key:{},keys:{}});return function(e){return e.components.filter((function(e){return t.key[e.key]})).reduce((function(e,n){e.any=!0,e.components.push(n.key);var r=t.distance[n.key];return 0===r?e.position.push(n.key):(e.distances.includes(r)||(e.distances.push(r),e.distanceKeys[r]=[]),e.distanceKeys[r].push(n.key)),e}),{any:!1,components:[],position:[],distances:[],distanceKeys:{}})}}var ni=function(){return!0};function ri(e){var t=e.config.main.triggers.reduce((function(e,t){var n=t.filter;return t.keys.forEach((function(t){e[t]=\"function\"==typeof n?n:ni})),e}),{});return function(e){var n=t[e.key];return!n||n(e)}}function oi(e){var t=e.chart,n=e.event,r=e.component,o={absolute:{x:0,y:0},relative:{x:0,y:0}},i=t.element.getBoundingClientRect(),a=i.left,l=i.top;o.absolute.x=(void 0===n.clientX?Math.floor(n.srcEvent.clientX):n.clientX)-a,o.absolute.y=(void 0===n.clientY?Math.floor(n.srcEvent.clientY):n.clientY)-l;var u=t.component(r);if(u){var c=u.rect.computedInner;o.relative.x=o.absolute.x-c.x,o.relative.y=o.absolute.y-c.y}return o}function ii(e){var t=e.chart,n=e.filter,r=e.hits,o=e.position,i=[];if(r.position.length&&i.push.apply(i,c(t.shapesAt(o.absolute,{components:r.position.map((function(e){return{key:e}}))}).filter(n))),!i.length&&r.distances.length){var a=[];r.distances.forEach((function(e){a.push.apply(a,c(t.shapesAt({cx:o.absolute.x,cy:o.absolute.y,r:e},{components:r.distanceKeys[e].map((function(e){return{key:e}}))}).filter(n)))})),a.length&&i.push(function(e){var t=e.nodes,n=e.origin,r=t.find((function(e){return\"path\"===e.type}));if(r)return r;var o=function(e){var t=Math.abs(n.x-(e.localBounds.x+e.localBounds.width/2)),r=Math.abs(n.y-(e.localBounds.y+e.localBounds.height/2));return Math.sqrt(t*t+r*r)};return t.slice(1).reduce((function(e,t){var n=o(t);return n<e.distance&&(e.distance=n,e.node=t),e}),{node:t[0],distance:o(t[0])}).node}({nodes:a,origin:o.relative}))}return i}function ai(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.facade,l=n.delay.tap,s=ti({config:n}),f=ri({config:n}),d=n.main.triggers.reduce((function(e,t){return e.push.apply(e,c(t.keys)),e}),[]);return{key:\"event:\".concat(\"tooltipTap\"),type:\"Tap\",options:{event:\"tooltipTap\",enable:function(e,r){return!r||!!n.enable({event:r})&&t.componentsFromPoint({x:r.center.x,y:r.center.y}).filter((function(e){return-1!==d.indexOf(e.key)})).length>0}},recognizeWith:\"tap\",events:a({},\"tooltipTap\",(function(e){if(e.preventDefault(),\"mouse\"!==e.pointerType&&!n.main.suppress({event:e})){var a=t.component(n.main.key);if(a&&a.show){var c=t.componentsFromPoint({x:e.center.x,y:e.center.y}),d=s({components:c});if(d.any){var p=u(d.components,1)[0],h=oi({chart:t,event:e,component:p});o.set(Ao,h);var m=ii({chart:t,filter:f,hits:d,position:h});if(m.length){var v=m[0].key;n.main.events.tooltip.beforeShow({expando:r,event:e,collectNodes:function(){return i.collectNodes({nodes:m})},meta:{triggerer:v,position:h}}).then((function(){a.emit(\"show\",e,{nodes:m,delay:l})})).catch((function(){}))}else a.emit(\"hide\")}else a.emit(\"hide\")}}}))}}function li(e){var t=e.config,n=e.expando,r=e.internal,o=e.facade,i=t.main.events.tooltip.beforeShow,a=t.delay.hover,l={ongoing:{},latest:void 0};return function(e){var t=e.event,u=e.tooltip,c=e.nodes,s=function(e){var t=e.nodes;return JSON.stringify(t.map((function(e){var t;return{key:e.key,bounds:e.bounds,value:null===(t=e.data)||void 0===t?void 0:t.value}})))}({nodes:c});if(!l.ongoing[s]){l.ongoing[s]=!0,l.latest=s;var f=c[0].key;i({expando:n,event:t,collectNodes:function(){return o.collectNodes({nodes:c})},meta:{triggerer:f,position:r.get(Ao)}}).then((function(){s===l.latest&&u.emit(\"show\",t,{nodes:c,delay:a})})).catch((function(){u.emit(\"show\")})).finally((function(){delete l.ongoing[s],s===l.latest&&(l.latest=void 0)}))}}}function ui(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.facade,a=ti({config:n}),l=ri({config:n}),c=li({config:n,expando:r,internal:o,facade:i}),s=[n.main.key,n.legend.keys.tooltip].filter(Boolean),f=function(){s.forEach((function(e){var n=t.component(e);null!=n&&n.show&&n.emit(\"hide\")}))};return{type:\"native\",events:{mousemove:function(e){if(n.enable({event:e})&&!n.main.suppress({event:e})){var r=t.componentsFromPoint({x:e.clientX,y:e.clientY}),i=t.component(n.main.key);if(i&&i.show){var s=a({components:r});if(s.any){var f=u(s.components,1)[0],d=oi({chart:t,event:e,component:f});o.set(Ao,d);var p=ii({chart:t,filter:l,hits:s,position:d});if(!p.length)return void i.emit(\"hide\");c({event:e,tooltip:i,nodes:p})}else i.emit(\"hide\")}var h=n.legend;if(h.keys.tooltip&&h.keys.component){var m=t.component(h.keys.tooltip);m&&m.show&&(r.some((function(e){return e.key===h.keys.component}))?m.emit(\"show\",e):m.emit(\"hide\"))}}},mouseup:function(e){2===e.button&&f()},mouseleave:function(){n.main.events.interaction.mouseleave({expando:r}),f()},wheel:function(){f()}}}}function ci(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=function(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal;return{collectNodes:function(e){var i=e.nodes,a=u(Ro({chart:t,config:n,expando:r,internal:o,nodes:i}),1)[0];return(void 0===a?{nodes:[]}:a).nodes}}}({chart:t,config:n,expando:r,internal:o});return{gestures:[ai({chart:t,config:n,expando:r,internal:o,facade:i})],native:ui({chart:t,config:n,expando:r,internal:o,facade:i})}}function si(e){var t=e.chart,n=e.translator,r=function(e){var t=e.config;return w(!0,{},{rtl:!1,enable:Co.FALSE,getColorSettings:Co.OBJECT,style:{fontSize:void 0,fontFamily:void 0,color:void 0,background:void 0},delay:{hover:500,tap:0},duration:8e3,main:{key:void 0,suppress:Co.FALSE,getGroupByValue:Co.NOOP,collectibles:[],triggers:[],placement:function(){return{type:\"bounds\"}},placements:{collectible:\"combine\"},showDuplicateMeasures:!1,layout:{rows:7,grouping:!1,single:!1},section:Co.ARRAY,sections:Co.NOOP,events:{tooltip:{beforeShow:function(){return Promise.resolve()},afterShow:Co.NOOP,afterHide:Co.NOOP},interaction:{mouseleave:Co.NOOP}}},legend:{keys:{tooltip:void 0,component:void 0}}},void 0===t?{}:t)}({config:e.config}),o=wt(),i=wt(),a={components:void 0,interactions:void 0};return{getComponents:function(){return a.components||(a.components=function(e){var t=e.chart,n=e.translator,r=e.config;return[Qo({chart:t,translator:n,config:r,expando:e.expando,internal:e.internal}),ei({config:r})].filter(Boolean)}({chart:t,translator:n,config:r,expando:o,internal:i})),a.components},getInteractions:function(){return a.interactions||(a.interactions=ci({chart:t,config:r,expando:o,internal:i})),a.interactions},expando:o}}var fi=\"AVERAGE\",di=\"LINEAR\",pi=\"POLYNOMIAL2\",hi=\"POLYNOMIAL3\",mi=\"POLYNOMIAL4\",vi=\"EXPONENTIAL\",yi=\"LOG\",gi=\"POWER\";function bi(e){var t=e.dimValue,n=e.value,r=e.qTrendLine,o=r.qType,i=r.qCoeff,a={x:t,y:i[2]*Math.pow(n,2)+i[1]*n+i[0]};switch(o){case pi:return a;case hi:return a.y+=i[3]*Math.pow(n,3),a;case mi:return a.y+=i[4]*Math.pow(n,4)+i[3]*Math.pow(n,3),a;default:return a}}var xi={average:function(e){return{x:e.dimValue,y:e.qTrendLine.qCoeff[0]}},linear:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:r.qCoeff[1]*n+r.qCoeff[0]}},polynomial2:bi,polynomial3:bi,polynomial4:bi,exponential:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:Math.exp(r.qCoeff[0]+n*r.qCoeff[1])}},log:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:r.qCoeff[1]+r.qCoeff[0]*Math.log(n)}},power:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:Math.pow(10,r.qCoeff[0]+r.qCoeff[1]*Math.log(n)*Math.LOG10E)}}};function qi(e,t){for(var n=xi[t.qType.toLowerCase()],r=Math.max(1,e/500),o=1/0,i=-1/0,a=0;a<e;a+=r){var l=n({dimValue:null,value:a+1,qTrendLine:t}).y;o=Math.min(l,o),i=Math.max(l,i)}return{min:o,max:i}}function wi(e){return xi[e.qType.toLowerCase()]}function Mi(e,t){return e.meta.isContinuous?function(e,t){return{generate:function(e,n,r){var o=[],i=wi(e),a=t({qTrendLine:e,measureIndex:r}),l=a.min,u=a.max,c=(u-l)/100;if(c>0){for(var s=function(t){var a=i({dimValue:t,value:t,qTrendLine:e});if(a.layerId=n,a.measureIndex=r,a.dimValue=t,e.flipXY){var l=a.x;a.x=a.y,a.y=l,a.dimValue=a.x}o.push(a)},f=l,d=l;d<=u;d+=c)s(d),f=d;f!==u&&s(u)}return o},calculate:function(e,t){return wi(e)({dimValue:t,value:t,qTrendLine:e})},findMinMax:function(e,t){var n=this.generate(t).map((function(e){return e.y}));return{min:Math.min.apply(Math,c(n)),max:Math.max.apply(Math,c(n))}}}}(0,t):e.meta.mode.K?function(e){return{generate:function(t,n,r){for(var o=[],i=e.getDataPages()[0],a=i.qData[0].qSubNodes,l=i.qArea.qTop,u=xi[t.qType.toLowerCase()],c=0;c<a.length;c++){var s=a[c],f=u({dimValue:s.qElemNo,value:c+l+1,qTrendLine:t});f.layerId=n,f.measureIndex=r,f.dimValue=s.qText,o.push(f)}return o},findMinMax:qi}}(e):function(e){return{generate:function(t,n,r){for(var o=[],i=e.getDataPages()[0],a=i.qMatrix,l=i.qArea.qTop,u=xi[t.qType.toLowerCase()],c=0;c<a.length;c++){var s=a[c][0],f=c+l+1,d=u({dimValue:s.qElemNumber,value:f,qTrendLine:t});d.layerId=n,d.measureIndex=r,d.dimValue=s.qText,o.push(d)}return o},calculate:function(e,t,n){return(0,xi[e.qType.toLowerCase()])({dimValue:n,value:t,qTrendLine:e})},findMinMax:qi}}(e)}var ki={TYPES:{AVERAGE:\"properties.trendlines.types.average\",LINEAR:\"properties.trendlines.types.linear\",POLYNOMIAL2:\"properties.trendlines.types.polynomial2\",POLYNOMIAL3:\"properties.trendlines.types.polynomial3\",POLYNOMIAL4:\"properties.trendlines.types.polynomial4\",EXPONENTIAL:\"properties.trendlines.types.exponential\",LOG:\"properties.trendlines.types.logarithmic\",POWER:\"properties.trendlines.types.power\"},STYLE:{DASHED:\"properties.trendlines.style.dashed\"},TYPE:\"properties.trendlines.type\",HEADER:\"properties.trendlines\",ADD_BUTTON:\"properties.trendlines.button.add\"},Si={color:\"#f93f17\",index:9},Ci={x:NaN,y:NaN,dimValue:NaN,layerId:NaN,measureIndex:NaN},Di=function(e){var t=e.layoutService,n=e.getMinMax,r=e.colorModel,o=e.chart,i=e.translator,a=e.keys.colorScale,l=e.isEnabled,u=void 0===l?function(){return!0}:l,s=[Ci],f=[],d=[],p=Mi(t,n);t.getLayoutValue(\"qHyperCube.qMeasureInfo\",[]).forEach((function(e,t){Array.isArray(e.qTrendLines)&&(f.push.apply(f,c(e.qTrendLines)),d.push.apply(d,c(e.qTrendLines.map((function(){return t})))))}));var h=Mt((function(e){var t=(f[e]||{}).style,n=r.settings();if(t.autoColor){if(\"measure\"===n.mode){var i=d[e],l=o.scale(a)(i);return function(e){return xe(e).l<70}(l)?function(e){var t=xe(e);return t.l<30?t.l+=15:t.l<50?t.l+=10:t.l+=5,t.toString()}(l):function(e){var t=xe(e);return t.l-=5,t.toString()}(l)}return r.resolveUIColor(Si)}return t.paletteColor?r.resolveUIColor(t.paletteColor):\"none\"}));return{query:{hasTrendLines:function(){return!!f.length&&u()},getData:function(){return s},getStroke:h,getLineDash:function(e){return(f[e]||{}).style.lineDash},getLabel:function(e){return(f[e]||{}).label},getExpression:function(e){var t=(f[e]||{}).qExpression;return f[e].flipXY&&(t=t.replace(/[xy]/g,(function(e){return\"x\"===e?\"y\":\"x\"}))),t},isFlipped:function(e){return f[e].flipXY},getType:function(e){var t=(f[e]||{}).qType;return i.get(ki.TYPES[t])},getMinMax:function(){var e=1/0,n=-1/0;return f.forEach((function(r){var o=p.findMinMax(t.meta.size.y,r);e=Math.min(o.min,e),n=Math.max(o.max,n)})),{min:e,max:n}},getCalculatedValue:function(e,t,n){var r=f[e];return p.calculate(r,t,n)}},command:{update:function(){s.length=0,f.forEach((function(e,t){var n=p.generate(e,t,d[t]);s.push.apply(s,c(n))}))}}}},Ii={source:\"trend\",extract:{field:\"x\",props:{minor:{field:\"y\"},layer:{field:\"layerId\"},measureIndex:{field:\"measureIndex\"},dimValue:{field:\"dimValue\"}}}},Oi=function(e){var t=e.meta;return t.isContinuous?function(e){return(0,e.scale)(e.datum.value)}:t.isGroupedByMeasure?function(e){var t=e.scale,n=e.datum;return t([n.value,n.measureIndex.value])+t.bandwidth()/2}:function(e){var t=e.scale;return t(e.datum.value)+t.bandwidth()/2}},Ei=function(e,t){var n=t.animations,r=t.layoutService,o=t.trendLineModel,i=t.orientation;if(!o.query.hasTrendLines())return[];var a=function(e,t){var n=e.trendlines,r=e.majorScale,o=e.minorScale,i=t.animations,a=t.trendLineModel,l=t.layoutService,u=t.orientation,c=Oi(l);return{key:n,type:\"line\",layout:{dock:\"center\"},data:Ii,animations:i,settings:{connect:!0,orientation:u,coordinates:{major:{scale:r,fn:c},minor:{scale:o},layerId:{ref:\"layer\"}},layers:{curve:\"monotone\",line:{strokeWidth:2,stroke:function(e){var t=e.datum;return a.query.getStroke(t.layer.value)},strokeDasharray:function(e){var t=e.datum;return a.query.getLineDash(t.layer.value)}}}}}}(e,{animations:n,trendLineModel:o,layoutService:r,orientation:i}),l=[a];if(e.tooltipOverlay){var u=function(e,t){var n=e.majorScale,r=e.minorScale,o=e.tooltipOverlay,i=t.layoutService,a=\"horizontal\"===t.orientation,l={scale:n,fn:Oi(i)},u={scale:r,ref:\"minor\"};return{key:o,type:\"point\",layout:{dock:\"center\"},data:Ii,settings:{x:a?l:u,y:a?u:l,opacity:0,size:1,sizeLimits:{maxPx:8,minPx:8}}}}(e,{layoutService:r,orientation:i});l.push(u)}return l},Ai=function(e){e.style.dashed?e.style.lineDash=\"8, 4\":e.style.lineDash=\"\"},Ni=function(e){Ai(e),e.qMultiDimMode=\"Sum\",e.qXColIx=0};function Li(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Ti(e){return Math.pow(e.x,2)+Math.pow(e.y,2)}function Pi(e,t,n){var r=Li(n,e),o=Li(t,e),i=Ti(o);if(0===i)return e;var a,l,u,c,s=(l=o,((a=r).x*l.x+a.y*l.y)/i);return s<=0?e:s>=1?t:function(e,t){return{x:e.x+t.x,y:e.y+t.y}}(e,(c=s,{x:(u=o).x*c,y:u.y*c}))}function ji(e){var t,n,r=e.keys,o=e.model,i=e.chart,a=e.pos,l=e.lineNode,u=o,c=i.component(r.trendlines),s=i.scale(r.majorScale),f=i.scale(r.minorScale),d=l.data.layer.value,p=function(e,t){var n=1/0,r=null;if(1===e.length)return e[0];for(var o=0;o<e.length-1;++o){var i=Pi(e[o],e[o+1],t),a=Ti(Li(i,t));a<n&&(n=a,r=i)}return r}(l.data.points.map((function(e){return{x:s(e.dimValue.value)*c.rect.computed.width,y:f(e.minor.value)*c.rect.computed.height}})),a);return u.query.isFlipped(d)?(n=f.invert(p.y/c.rect.computed.height),t=u.query.getCalculatedValue(d,n).y,p.x=s(t)*c.rect.computed.width):(t=s.invert(p.x/c.rect.computed.width),n=u.query.getCalculatedValue(d,t).y,p.y=f(n)*c.rect.computed.height),{key:l.key,children:[],data:{layer:d,x:t,y:n},bounds:{x:p.x,y:p.y,width:0,height:0}}}function Fi(e){var t=e.animations,n=e.chart,r=e.colorService,o=e.isEnabled,i=e.keys,a=void 0===i?{}:i,l=e.layoutService,u=e.orientation,c=e.translator,s=e.getMinMax;a.trendlines||(a.trendlines=\"trend-lines\");var f=Di({layoutService:l,getMinMax:s,colorModel:{settings:function(){return r.getSettings()},resolveUIColor:function(e){return r.getPaletteColor(e)}},chart:n,translator:c,keys:a,isEnabled:o});return{getComponents:function(){return Ei(a,{animations:t,layoutService:l,trendLineModel:f,orientation:u})},getData:function(){return f.query.hasTrendLines()?[{key:\"trend\",data:f.query.getData()}]:[]},collectNodes:function(e){var t=e.nodes,r=e.meta;return function(e){var t=e.keys,n=e.model,r=e.chart,o=e.nodes,i=e.meta;return o.length?[ji({keys:t,model:n,chart:r,pos:i.position.relative,lineNode:o[0]})]:[]}({keys:a,model:f,chart:n,nodes:t,meta:r})},getModel:function(){return f},update:function(){return f.command.update()}}}Fi.propertyPanelProperties=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.translator,n=function(e){var n=r(e.label);return\"string\"===n&&e.label?e.label:\"object\"===n?e.label.qStringExpression?e.label.qStringExpression.qExpr:e.label.qValueExpression.qExpr:t.get(ki.TYPES[e.qType])};return{type:\"array\",ref:\"qTrendLines\",titleTranslation:ki.HEADER,itemTitleRef:n,max:8,allowAdd:!0,allowRemove:!0,allowMove:!1,addTranslation:ki.ADD_BUTTON,add:Ni,items:{label:{ref:\"label\",type:\"string\",expression:\"optional\",translation:\"Common.Label\",defaultValue:\"\"},type:{ref:\"qType\",type:\"string\",component:\"dropdown\",translation:ki.TYPE,options:[{value:fi,translation:ki.TYPES.AVERAGE},{value:di,translation:ki.TYPES.LINEAR},{value:pi,translation:ki.TYPES.POLYNOMIAL2},{value:hi,translation:ki.TYPES.POLYNOMIAL3},{value:mi,translation:ki.TYPES.POLYNOMIAL4},{value:vi,translation:ki.TYPES.EXPONENTIAL},{value:yi,translation:ki.TYPES.LOG},{value:gi,translation:ki.TYPES.POWER}],defaultValue:fi},autoColor:{ref:\"style.autoColor\",type:\"boolean\",translation:\"properties.colors\",component:\"switch\",defaultValue:!0,options:[{value:!0,translation:\"Common.Auto\"},{value:!1,translation:\"Common.Custom\"}]},paletteColor:{ref:\"style.paletteColor\",translation:\"properties.color\",type:\"object\",component:\"color-picker\",dualOutput:!0,defaultValue:Si,show:function(e){return!e.style.autoColor}},dashed:{ref:\"style.dashed\",translation:ki.STYLE.DASHED,type:\"boolean\",defaultValue:!0,change:Ai}}}};var Hi=[\"American Typewriter, serif\",\"Andalé Mono, monospace\",\"Arial Black, sans-serif\",\"Arial, sans-serif\",\"Bradley Hand, cursive\",\"Brush Script MT, cursive\",\"Comic Sans MS, cursive\",\"Courier, monospace\",\"Didot, serif\",\"Georgia, serif\",\"Impact, sans-serif\",\"Lucida Console, monospace\",\"Luminari, fantasy\",\"Monaco, monospace\",\"QlikView Sans, sans-serif\",\"Source Sans Pro, sans-serif\",\"Tahoma, sans-serif\",\"Times New Roman, serif\",\"Trebuchet MS, sans-serif\",\"Verdana, sans-serif\"],Ri=[\"Abril Fatface, serif\",\"Bangers, fantasy\",\"EB Garamond, serif\",\"Fredoka One, fantasy\",\"Graduate, fantasy\",\"Gravitas One, serif\",\"Nixie One, sans-serif\",\"Noto Sans, sans-serif\",\"PT Serif, serif\",\"Permanent Marker, fantasy\",\"Rammetto One, fantasy\",\"Roboto, sans-serif\",\"QlikView Sans, sans-serif\",\"Source Sans Pro, sans-serif\",\"Titan One, fantasy\",\"Open Sans, sans-serif\",\"Montserrat, sans-serif\",\"Raleway, sans-serif\",\"Bebas Neue, sans serif\",\"Lobster, fantasy\",\"Pacifico, cursive\",\"Inter, sans-serif\",\"Indie Flower, fantasy\",\"Yanone Kaffeesatz, sans-serif\"];var zi=function(e){return{value:e,label:e.charAt(0).toUpperCase()+e.slice(1),groupHeader:!1,disabled:!1}};function Vi(e){var t=e.theme,n=e.translator,r=e.defaultValue,o=e.flags,i=[],a=t.getStyle(\"\",\"\",\"fontFamilies\");return Array.isArray(a)&&a.length?i.push.apply(i,c(new Set([r].concat(c(a.map((function(e){return e.split(\",\").map((function(e){return e.trim()})).map((function(e){return e.replace(/\\s+/g,\" \").trim()})).filter(Boolean).join(\", \")}))))))):i.push(r),[{value:\"ThemeHeader\",label:n.get(\"properties.themeFonts\"),metaText:n.get(\"properties.theme\"),groupHeader:!0}].concat(c(i.map((function(e){return zi(e)}))),[{value:\"DefaultHeader\",label:n.get(\"properties.allFonts\"),metaText:n.get(\"properties.default\"),groupHeader:!0}],c(function(e){return null!=e&&e.isEnabled(\"PS_20852_WYSIWYG_FONT_SUPPORT\")?Ri:Hi}(o).map((function(e){return zi(e)}))))}function _i(e){var t=e.theme,n=e.translator,r=e.id,o=e.path,i=e.flags,a=function(){return t.getStyle(r,o,\"fontFamily\")};return{getDefaultValue:function(){return a()},getOptions:function(){return Vi({theme:t,translator:n,defaultValue:a(),flags:i})}}}var Bi=[\"10px\",\"11px\",\"12px\",\"13px\",\"14px\",\"15px\",\"16px\",\"17px\",\"18px\",\"19px\",\"20px\",\"21px\",\"22px\",\"23px\",\"24px\"],Yi=function(e){return{value:e,label:e,groupHeader:!1,disabled:!1}};function $i(e){var t=e.theme,n=e.translator,r=e.id,o=e.path,i=function(){return t.getStyle(r,o,\"fontSize\")};return{getDefaultValue:function(){return i()},getOptions:function(){return function(e){var t=e.theme,n=e.translator,r=e.defaultValue,o=[],i=t.getStyle(\"\",\"\",\"fontSizes\");return Array.isArray(i)&&i.length?o.push.apply(o,c(new Set([r].concat(c(i))))):o.push(r),[{value:\"ThemeHeader\",label:n.get(\"properties.themeFontSizes\"),metaText:n.get(\"properties.theme\"),groupHeader:!0}].concat(c(o.map((function(e){return Yi(e)}))),[{value:\"DefaultHeader\",label:n.get(\"properties.allFontSizes\"),metaText:n.get(\"properties.default\"),groupHeader:!0}],c(Bi.map((function(e){return Yi(e)}))))}({theme:t,translator:n,defaultValue:i()})}}}function Ui(e){var t=e.theme,n=e.translator,r=e.id,o=e.path;return{fontFamily:_i({theme:t,translator:n,id:r,path:o,flags:e.flags}),fontSize:$i({theme:t,translator:n,id:r,path:o})}}function Ki(e){var t=e.theme,n=e.translator,r=e.config,o=void 0===r?{}:r,i=e.flags,a=function(e){var t=e.config,n=void 0===t?{}:t,r=n.id,o=n.paths;return{id:void 0===r?\"object\":\"\".concat(\"object\",\".\").concat(r),paths:Array.isArray(o)?o:[]}}({config:o}),l=a.id,u=a.paths,c={};u.forEach((function(e){for(var r=e.split(\".\"),o=c,a=0;a<r.length;a++){var u=r[a];a===r.length-1?o[u]=Ui({theme:t,translator:n,id:l,path:e,flags:i}):void 0===o[u]&&(o[u]={}),o=o[u]}}));var s=function(e){for(var t=e.split(\".\"),n=c,r=0;r<t.length;r++){var o=t[r];if(void 0===n[o])throw new Error(\"font-resolver: Path '\".concat(e,\"' could not be resolved.\"));n=n[o]}return n};return c.getDefaultValue=function(e){return s(e).getDefaultValue()},c.getOptions=function(e){return s(e).getOptions()},c}export{wt as cache,ut as colorService,St as debouncer,gt as dockService,Ki as fontResolver,bt as getValue,At as layoutService,Mt as memoize,Lt as pluginService,mo as selectionService,qt as setValue,kt as storage,So as themeService,Ct as throttler,si as tooltipService,Fi as trendlinesService};\n","/* 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, theme, layout, flags) => {\n const value = flags.isEnabled('CLIENT_IM_3364') ? overrides('value', layout)?.label : {};\n const fontFamily = value?.value?.fontFamily || theme.getStyle(chartId, 'label.value.name', 'fontFamily');\n let fontSize = value?.value?.fontSize || theme.getStyle(chartId, 'label.value.size', 'fontSize');\n fontSize = parseFloat(fontSize);\n const fill = value?.value?.fontColor?.color || theme.getStyle(chartId, 'label.value.color', 'color');\n return {\n fontFamily,\n fontSize,\n fill,\n };\n};\n\nexport const getLegendTitleStyle = (chartId, theme, layout, flags) => {\n const legend = flags.isEnabled('CLIENT_IM_3051') ? overrides('legend', layout)?.legend : {};\n return {\n fontFamily: legend?.title?.fontFamily || theme.getStyle(chartId, 'legend.title', 'fontFamily'),\n fontSize: legend?.title?.fontSize || theme.getStyle(chartId, 'legend.title', 'fontSize'),\n color: legend?.title?.fontColor?.color || theme.getStyle(chartId, 'legend.title', 'color'),\n };\n};\n\nexport const getLegendLabelStyle = (chartId, theme, layout, flags) => {\n const legend = flags.isEnabled('CLIENT_IM_3051') ? overrides('legend', layout)?.legend : {};\n return {\n fontFamily: legend?.label?.fontFamily || theme.getStyle(chartId, 'legend.label', 'fontFamily'),\n fontSize: legend?.label?.fontSize || theme.getStyle(chartId, 'legend.label', 'fontSize'),\n color: legend?.label?.fontColor?.color || theme.getStyle(chartId, 'legend.label', 'color'),\n };\n};\n\nexport default ChartStyleComponent;\n","import { getValue } from 'qlik-chart-modules';\n\nconst MAX_GLYPH_COUNT = 20;\n\n//\n// Implementation details\n//\n\nfunction getMaxGlyphCountForDimAxis(layout) {\n const qApprMaxGlyphCount = getValue(layout, 'qUndoExclude.box.qHyperCube.qDimensionInfo.0.qApprMaxGlyphCount', 0);\n return Math.min(MAX_GLYPH_COUNT, qApprMaxGlyphCount);\n}\n\nfunction createDimensionAxisSettings(layout) {\n return {\n settings: {\n labels: {\n maxGlyphCount: getMaxGlyphCountForDimAxis(layout),\n },\n },\n };\n}\n\nconst DimensionAxis = {\n createSettings: createDimensionAxisSettings,\n};\n\nexport default DimensionAxis;\n","import { getValue } from 'qlik-chart-modules';\nimport histogramUtils from '../histogram-utils';\n\n//\n// Implementation details\n//\n\nfunction createDimensionScaleSettings(layout) {\n const isAutoMode = histogramUtils.isAutoBin(layout);\n const binMode = histogramUtils.getBinMode(layout);\n const binSize = histogramUtils.getDerivedBinSize(layout);\n let min;\n let max;\n\n if (isAutoMode || binMode === 'maxCount') {\n // User is expecting a specific number of bars so we make sure the axis\n // will hold this number of bars even if there are not that many bars in the data\n const offset = histogramUtils.getDerivedBinOffset(layout);\n\n const binCount = histogramUtils.getDerivedBinCount(layout);\n\n min = offset;\n max = offset + binCount * binSize;\n } else {\n const dimInfo = getValue(layout, 'qUndoExclude.box.qHyperCube.qDimensionInfo.0', {});\n min = dimInfo.qMin || 0;\n max = (dimInfo.qMax || 0) + binSize;\n }\n\n return {\n component: {\n type: 'linear',\n min,\n max,\n },\n };\n}\n\nconst DimensionScale = {\n createSettings: createDimensionScaleSettings,\n};\n\nexport default DimensionScale;\n","const colorStruct = {\n aliceblue: { r: 240, g: 248, b: 255 },\n antiquewhite: { r: 250, g: 235, b: 215 },\n aqua: { r: 0, g: 255, b: 255 },\n aquamarine: { r: 127, g: 255, b: 212 },\n azure: { r: 240, g: 255, b: 255 },\n beige: { r: 245, g: 245, b: 220 },\n bisque: { r: 255, g: 228, b: 196 },\n black: { r: 0, g: 0, b: 0 },\n blanchedalmond: { r: 255, g: 235, b: 205 },\n blue: { r: 0, g: 0, b: 255 },\n blueviolet: { r: 138, g: 43, b: 226 },\n brown: { r: 165, g: 42, b: 42 },\n burlywood: { r: 222, g: 184, b: 135 },\n cadetblue: { r: 95, g: 158, b: 160 },\n chartreuse: { r: 127, g: 255, b: 0 },\n chocolate: { r: 210, g: 105, b: 30 },\n coral: { r: 255, g: 127, b: 80 },\n cornflowerblue: { r: 100, g: 149, b: 237 },\n cornsilk: { r: 255, g: 248, b: 220 },\n crimson: { r: 220, g: 20, b: 60 },\n cyan: { r: 0, g: 255, b: 255 },\n darkblue: { r: 0, g: 0, b: 139 },\n darkcyan: { r: 0, g: 139, b: 139 },\n darkgoldenrod: { r: 184, g: 134, b: 11 },\n darkgray: { r: 169, g: 169, b: 169 },\n darkgreen: { r: 0, g: 100, b: 0 },\n darkgrey: { r: 169, g: 169, b: 169 },\n darkkhaki: { r: 189, g: 183, b: 107 },\n darkmagenta: { r: 139, g: 0, b: 139 },\n darkolivegreen: { r: 85, g: 107, b: 47 },\n darkorange: { r: 255, g: 140, b: 0 },\n darkorchid: { r: 153, g: 50, b: 204 },\n darkred: { r: 139, g: 0, b: 0 },\n darksalmon: { r: 233, g: 150, b: 122 },\n darkseagreen: { r: 143, g: 188, b: 143 },\n darkslateblue: { r: 72, g: 61, b: 139 },\n darkslategray: { r: 47, g: 79, b: 79 },\n darkslategrey: { r: 47, g: 79, b: 79 },\n darkturquoise: { r: 0, g: 206, b: 209 },\n darkviolet: { r: 148, g: 0, b: 211 },\n deeppink: { r: 255, g: 20, b: 147 },\n deepskyblue: { r: 0, g: 191, b: 255 },\n dimgray: { r: 105, g: 105, b: 105 },\n dimgrey: { r: 105, g: 105, b: 105 },\n dodgerblue: { r: 30, g: 144, b: 255 },\n firebrick: { r: 178, g: 34, b: 34 },\n floralwhite: { r: 255, g: 250, b: 240 },\n forestgreen: { r: 34, g: 139, b: 34 },\n fuchsia: { r: 255, g: 0, b: 255 },\n gainsboro: { r: 220, g: 220, b: 220 },\n ghostwhite: { r: 248, g: 248, b: 255 },\n gold: { r: 255, g: 215, b: 0 },\n goldenrod: { r: 218, g: 165, b: 32 },\n gray: { r: 128, g: 128, b: 128 },\n green: { r: 0, g: 128, b: 0 },\n greenyellow: { r: 173, g: 255, b: 47 },\n grey: { r: 128, g: 128, b: 128 },\n honeydew: { r: 240, g: 255, b: 240 },\n hotpink: { r: 255, g: 105, b: 180 },\n indianred: { r: 205, g: 92, b: 92 },\n indigo: { r: 75, g: 0, b: 130 },\n ivory: { r: 255, g: 255, b: 240 },\n khaki: { r: 240, g: 230, b: 140 },\n lavender: { r: 230, g: 230, b: 250 },\n lavenderblush: { r: 255, g: 240, b: 245 },\n lawngreen: { r: 124, g: 252, b: 0 },\n lemonchiffon: { r: 255, g: 250, b: 205 },\n lightblue: { r: 173, g: 216, b: 230 },\n lightcoral: { r: 240, g: 128, b: 128 },\n lightcyan: { r: 224, g: 255, b: 255 },\n lightgoldenrodyellow: { r: 250, g: 250, b: 210 },\n lightgray: { r: 211, g: 211, b: 211 },\n lightgreen: { r: 144, g: 238, b: 144 },\n lightgrey: { r: 211, g: 211, b: 211 },\n lightpink: { r: 255, g: 182, b: 193 },\n lightsalmon: { r: 255, g: 160, b: 122 },\n lightseagreen: { r: 32, g: 178, b: 170 },\n lightskyblue: { r: 135, g: 206, b: 250 },\n lightslategray: { r: 119, g: 136, b: 153 },\n lightslategrey: { r: 119, g: 136, b: 153 },\n lightsteelblue: { r: 176, g: 196, b: 222 },\n lightyellow: { r: 255, g: 255, b: 224 },\n lime: { r: 0, g: 255, b: 0 },\n limegreen: { r: 50, g: 205, b: 50 },\n linen: { r: 250, g: 240, b: 230 },\n magenta: { r: 255, g: 0, b: 255 },\n maroon: { r: 128, g: 0, b: 0 },\n mediumaquamarine: { r: 102, g: 205, b: 170 },\n mediumblue: { r: 0, g: 0, b: 205 },\n mediumorchid: { r: 186, g: 85, b: 211 },\n mediumpurple: { r: 147, g: 112, b: 219 },\n mediumseagreen: { r: 60, g: 179, b: 113 },\n mediumslateblue: { r: 123, g: 104, b: 238 },\n mediumspringgreen: { r: 0, g: 250, b: 154 },\n mediumturquoise: { r: 72, g: 209, b: 204 },\n mediumvioletred: { r: 199, g: 21, b: 133 },\n midnightblue: { r: 25, g: 25, b: 112 },\n mintcream: { r: 245, g: 255, b: 250 },\n mistyrose: { r: 255, g: 228, b: 225 },\n moccasin: { r: 255, g: 228, b: 181 },\n navajowhite: { r: 255, g: 222, b: 173 },\n navy: { r: 0, g: 0, b: 128 },\n oldlace: { r: 253, g: 245, b: 230 },\n olive: { r: 128, g: 128, b: 0 },\n olivedrab: { r: 107, g: 142, b: 35 },\n orange: { r: 255, g: 165, b: 0 },\n orangered: { r: 255, g: 69, b: 0 },\n orchid: { r: 218, g: 112, b: 214 },\n palegoldenrod: { r: 238, g: 232, b: 170 },\n palegreen: { r: 152, g: 251, b: 152 },\n paleturquoise: { r: 175, g: 238, b: 238 },\n palevioletred: { r: 219, g: 112, b: 147 },\n papayawhip: { r: 255, g: 239, b: 213 },\n peachpuff: { r: 255, g: 218, b: 185 },\n peru: { r: 205, g: 133, b: 63 },\n pink: { r: 255, g: 192, b: 203 },\n plum: { r: 221, g: 160, b: 221 },\n powderblue: { r: 176, g: 224, b: 230 },\n purple: { r: 128, g: 0, b: 128 },\n red: { r: 255, g: 0, b: 0 },\n rosybrown: { r: 188, g: 143, b: 143 },\n royalblue: { r: 65, g: 105, b: 225 },\n saddlebrown: { r: 139, g: 69, b: 19 },\n salmon: { r: 250, g: 128, b: 114 },\n sandybrown: { r: 244, g: 164, b: 96 },\n seagreen: { r: 46, g: 139, b: 87 },\n seashell: { r: 255, g: 245, b: 238 },\n sienna: { r: 160, g: 82, b: 45 },\n silver: { r: 192, g: 192, b: 192 },\n skyblue: { r: 135, g: 206, b: 235 },\n slateblue: { r: 106, g: 90, b: 205 },\n slategray: { r: 112, g: 128, b: 144 },\n slategrey: { r: 112, g: 128, b: 144 },\n snow: { r: 255, g: 250, b: 250 },\n springgreen: { r: 0, g: 255, b: 127 },\n steelblue: { r: 70, g: 130, b: 180 },\n tan: { r: 210, g: 180, b: 140 },\n teal: { r: 0, g: 128, b: 128 },\n thistle: { r: 216, g: 191, b: 216 },\n tomato: { r: 255, g: 99, b: 71 },\n transparent: {\n r: 255,\n g: 255,\n b: 255,\n a: 0,\n },\n turquoise: { r: 64, g: 224, b: 208 },\n violet: { r: 238, g: 130, b: 238 },\n wheat: { r: 245, g: 222, b: 179 },\n white: { r: 255, g: 255, b: 255 },\n whitesmoke: { r: 245, g: 245, b: 245 },\n yellow: { r: 255, g: 255, b: 0 },\n yellowgreen: { r: 154, g: 205, b: 50 },\n};\n\nexport default colorStruct;\n","/* eslint-disable camelcase */\n/* eslint-disable no-bitwise */\n/* eslint-disable no-nested-ternary */\n/* eslint-disable no-cond-assign */\n/* eslint-disable prefer-rest-params */\n\n/**\n * Module which defines a color object\n * @exports objects.views/charts/representation/color\n * @expose module:objects.views/charts/representation/color~Color\n */\nimport Class from './class';\nimport CSSColors from './css-colors';\n\n// color formats\nconst rgb = /^rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)$/i;\n\nconst rgba = /^rgba\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3}),(\\d(\\.\\d+)?)\\)$/i;\nconst hex = /^#([A-f0-9]{2})([A-f0-9]{2})([A-f0-9]{2})$/i;\nconst hexShort = /^#([A-f0-9])([A-f0-9])([A-f0-9])$/i;\nconst hsl = /^hsl\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*\\)$/i;\nconst hsla = /^hsla\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,(\\d(\\.\\d+)?)\\)$/i;\nconst floor = Math.floor;\nconst round = Math.round;\n\n/**\n * @class\n * @classdesc Class which provides color transformation functionality\n * @description This is a constructor.\n * @param {object} - Parameters to create a color from different notations\n * @example\n * // a few ways of instantiating a red color\n * var red;\n * red = new Color(255, 0, 0, 1); // rgba as parameters\n * red = new Color('#ff0000'); // hex\n * red = new Color('rgb(255,0,0)');//rgb as string\n * red = new Color('hsl(0, 100, 50)');// hsl as string\n * red = new Color(16711680);// uint\n */\nconst Color = Class.extend(\n /** @lends module:objects.views/charts/representation/color~Color# */ {\n init() {\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 1;\n let h;\n let s;\n let lcs;\n let l;\n let v;\n let c;\n let h_;\n let x;\n let rgb_;\n let m;\n let matches;\n let colorString;\n\n this._invalid = false;\n\n if (arguments[0] instanceof Color) {\n r = arguments[0]._r;\n g = arguments[0]._g;\n b = arguments[0]._b;\n a = arguments[0]._a;\n this._invalid = arguments[0]._invalid;\n } else if (arguments.length < 3) {\n if (typeof arguments[0] === 'string') {\n colorString = arguments[0];\n\n if ((matches = /^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/i.exec(colorString))) {\n r = parseInt(matches[1], 10);\n g = parseInt(matches[2], 10);\n b = parseInt(matches[3], 10);\n } else if (\n (matches = /^rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d(\\.\\d+)?)\\s*\\)$/i.exec(\n colorString\n ))\n ) {\n // rgba(1, 2, 3, 0.4)\n r = parseInt(matches[1], 10);\n g = parseInt(matches[2], 10);\n b = parseInt(matches[3], 10);\n a = parseFloat(matches[4]);\n } else if ((matches = /^#([A-f0-9]{2})([A-f0-9]{2})([A-f0-9]{2})$/i.exec(colorString))) {\n // #aBc123\n r = parseInt(matches[1], 16);\n g = parseInt(matches[2], 16);\n b = parseInt(matches[3], 16);\n a = 1;\n } else if ((matches = /^#([A-f0-9])([A-f0-9])([A-f0-9])$/i.exec(colorString))) {\n // #a5F\n r = parseInt(matches[1] + matches[1], 16);\n g = parseInt(matches[2] + matches[2], 16);\n b = parseInt(matches[3] + matches[3], 16);\n a = 1;\n } else if (\n (matches = /^hsl\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*\\)$/i.exec(colorString))\n ) {\n // hsl(1, 2, 3)\n h = parseFloat(matches[1]);\n s = parseFloat(matches[3]);\n l = parseFloat(matches[5]);\n\n h %= 360;\n s /= 100;\n l /= 100;\n\n h = h < 0 ? 0 : h > 360 ? 360 : h;\n s = s < 0 ? 0 : s > 1 ? 1 : s;\n l = l < 0 ? 0 : l > 1 ? 1 : l;\n\n c = l <= 0.5 ? 2 * l * s : (2 - 2 * l) * s;\n h_ = h / 60;\n x = c * (1 - Math.abs((h_ % 2) - 1));\n\n rgb_ = [];\n\n h_ = Math.floor(h_);\n switch (h_) {\n case 0:\n rgb_ = [c, x, 0];\n break;\n case 1:\n rgb_ = [x, c, 0];\n break;\n case 2:\n rgb_ = [0, c, x];\n break;\n case 3:\n rgb_ = [0, x, c];\n break;\n case 4:\n rgb_ = [x, 0, c];\n break;\n case 5:\n rgb_ = [c, 0, x];\n break;\n default:\n rgb_ = [0, 0, 0];\n }\n\n m = l - 0.5 * c;\n\n r = rgb_[0] + m;\n g = rgb_[1] + m;\n b = rgb_[2] + m;\n\n r = round(255 * r);\n g = round(255 * g);\n b = round(255 * b);\n a = 1.0;\n } else if (\n (matches = /^hsla\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,(\\d(\\.\\d+)?)\\)$/i.exec(\n colorString\n ))\n ) {\n // hsla(1,2,3,0.4)\n h = parseFloat(matches[1]);\n s = parseFloat(matches[3]);\n l = parseFloat(matches[5]);\n a = parseFloat(matches[7]);\n\n h %= 360;\n s /= 100;\n l /= 100;\n\n h = h < 0 ? 0 : h > 360 ? 360 : h;\n s = s < 0 ? 0 : s > 1 ? 1 : s;\n l = l < 0 ? 0 : l > 1 ? 1 : l;\n\n c = l <= 0.5 ? 2 * l * s : (2 - 2 * l) * s;\n h_ = h / 60;\n x = c * (1 - Math.abs((h_ % 2) - 1));\n\n rgb_ = [];\n\n h_ = Math.floor(h_);\n switch (h_) {\n case 0:\n rgb_ = [c, x, 0];\n break;\n case 1:\n rgb_ = [x, c, 0];\n break;\n case 2:\n rgb_ = [0, c, x];\n break;\n case 3:\n rgb_ = [0, x, c];\n break;\n case 4:\n rgb_ = [x, 0, c];\n break;\n case 5:\n rgb_ = [c, 0, x];\n break;\n default:\n rgb_ = [0, 0, 0];\n }\n\n m = l - 0.5 * c;\n\n r = rgb_[0] + m;\n g = rgb_[1] + m;\n b = rgb_[2] + m;\n\n r = round(255 * r);\n g = round(255 * g);\n b = round(255 * b);\n } else if (\n (matches = /^hsv\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*\\)$/i.exec(colorString))\n ) {\n // hsv(1, 2, 3) {\n h = parseFloat(matches[1]);\n s = parseFloat(matches[3]);\n v = parseFloat(matches[5]);\n\n h %= 360;\n s /= 100;\n v /= 100;\n\n h = h < 0 ? 0 : h > 360 ? 360 : h;\n s = s < 0 ? 0 : s > 1 ? 1 : s;\n v = v < 0 ? 0 : v > 1 ? 1 : v;\n\n c = v * s;\n h_ = h / 60;\n x = c * (1 - Math.abs((h_ % 2) - 1));\n\n rgb_ = [];\n\n h_ = Math.floor(h_);\n switch (h_) {\n case 0:\n rgb_ = [c, x, 0];\n break;\n case 1:\n rgb_ = [x, c, 0];\n break;\n case 2:\n rgb_ = [0, c, x];\n break;\n case 3:\n rgb_ = [0, x, c];\n break;\n case 4:\n rgb_ = [x, 0, c];\n break;\n case 5:\n rgb_ = [c, 0, x];\n break;\n default:\n rgb_ = [0, 0, 0];\n }\n\n m = v - c;\n\n r = rgb_[0] + m;\n g = rgb_[1] + m;\n b = rgb_[2] + m;\n\n r = round(255 * r);\n g = round(255 * g);\n b = round(255 * b);\n a = 1.0;\n } else if (CSSColors[colorString.toLowerCase()]) {\n lcs = colorString.toLowerCase();\n r = CSSColors[lcs].r;\n g = CSSColors[lcs].g;\n b = CSSColors[lcs].b;\n a = typeof CSSColors[lcs].a === 'number' ? CSSColors[lcs].a : 1.0;\n } else {\n this._invalid = true;\n }\n } else if (typeof arguments[0] === 'number' && arguments[0] >= 0 && arguments[1] === 'argb') {\n a = (0xff000000 & arguments[0]) >>> 24;\n a /= 255;\n r = (0xff0000 & arguments[0]) >> 16;\n g = (0x00ff00 & arguments[0]) >> 8;\n b = 0x0000ff & arguments[0];\n } else if (typeof arguments[0] === 'number' && arguments[0] >= 0) {\n r = (0xff0000 & arguments[0]) >> 16;\n g = (0x00ff00 & arguments[0]) >> 8;\n b = 0x0000ff & arguments[0];\n } else {\n this._invalid = true;\n }\n } else if (arguments.length >= 3) {\n r = arguments[0];\n g = arguments[1];\n b = arguments[2];\n a = arguments.length >= 4 ? arguments[3] : 1;\n } else {\n this._invalid = true;\n }\n\n if (Number.isNaN(+r + g + b + a)) {\n this._invalid = true;\n }\n\n this._r = floor(r);\n this._g = floor(g);\n this._b = floor(b);\n this._a = a;\n\n // object to cache string representations in various color spaces\n this._spaces = {};\n },\n isInvalid() {\n return this._invalid;\n },\n /**\n * Sets alpha value of color\n * @param {number} a - Alpha value of the color\n */\n setAlpha(a) {\n this._a = a;\n this._spaces = {};\n },\n /**\n * Gets the alpha value of this color\n * @returns {number}\n */\n getAlpha() {\n return this._a;\n },\n /**\n * Returns an rgb string representation of this color.\n * @return {string} An rgb string representation of this color\n */\n toRGB: function toRGB() {\n if (!this._spaces.rgb) {\n this._spaces.rgb = Color.toRGB(this);\n }\n return this._spaces.rgb;\n },\n /**\n * Returns an rgba string representation of this color.\n * @return {string} An rgba string representation of this color.\n */\n toRGBA: function toRGBA() {\n if (!this._spaces.rgba) {\n this._spaces.rgba = Color.toRGBA(this);\n }\n return this._spaces.rgba;\n },\n toString() {\n if (!this._spaces.rgb) {\n this._spaces.rgb = Color.toRGB(this);\n }\n return this._spaces.rgb;\n },\n /**\n * Returns a hex string representation of this color.\n * @return {string}\n */\n toHex: function toHex() {\n if (!this._spaces.hex) {\n this._spaces.hex = Color.toHex(this);\n }\n return this._spaces.hex;\n },\n /**\n * Returns a hsl string representation of this color using \"bi-hexcone\" model for lightness\n * @param {boolean} luma - Whether to use luma calculation\n * @return {string} In format hsl(0,0,0)\n */\n toHSL: function toHSL(luma) {\n if (!this._spaces.hsl) {\n this._spaces.hsl = Color.toHSL(this, luma);\n }\n return this._spaces.hsl;\n },\n /**\n * Returns a hsla string representation of this color using \"bi-hexcone\" model for lightness\n * @param {boolean} luma - Whether to use luma calculation\n * @return {string} In format hsla(0,0,0,0)\n */\n toHSLA: function toHSLA(luma) {\n if (!this._spaces.hsla) {\n this._spaces.hsla = Color.toHSLA(this, luma);\n }\n return this._spaces.hsla;\n },\n /**\n * Return the color components in hsv space using \"hexcone\" model for value (lightness)\n * @param {Color|string} c\n * @returns {object} The color components in hsv space {h:0-360, s:0-100, v:0-100}\n */\n toHSV() {\n const hsvComp = this.toHSVComponents();\n return `hsv(${hsvComp.h},${hsvComp.s},${hsvComp.v})`;\n },\n /**\n * Return the color components in hsv space using \"hexcone\" model for value (lightness)\n * @param {Color|string} c\n * @returns {object} The color components in hsv space {h:0-360, s:0-100, v:0-100}\n */\n toHSVComponents: function toHSVComponents() {\n if (!this._spaces.hsvComp) {\n this._spaces.hsvComp = Color.toHSVComponents(this);\n }\n return this._spaces.hsvComp;\n },\n /**\n * Returns a uint representation of this color\n * @return {number}\n */\n toNumber: function toNumber() {\n if (!this._spaces.num) {\n this._spaces.num = Color.toNumber(this);\n }\n return this._spaces.num;\n },\n /**\n * Checks if this color is perceived as dark.\n * @return {string} True if the luminance is below 160, false otherwise.\n */\n isDark() {\n return this.isInvalid() || this.getLuminance() < 125; // luminace calc option #2\n // return this.getLuminance() < 160; //luminace calc option #3\n },\n /**\n * Calculates the perceived luminance of the color.\n * @return {number} A value in the range 0-255 where a low value is considered dark and vice versa.\n */\n getLuminance() {\n // alpha channel is not considered\n if (typeof this._lumi === 'undefined') {\n // calculate luminance\n // this._lumi = 0.2126 * this._r + 0.7152 * this._g + 0.0722 * this._b; // option 1\n this._lumi = 0.299 * this._r + 0.587 * this._g + 0.114 * this._b; // option 2\n // this._lumi = Math.sqrt( 0.241 * this._r * this._r + 0.691 * this._g * this._g + 0.068 * this._b * this._b ); // option 3\n }\n\n return this._lumi;\n },\n /**\n * Shifts the color towards a lighter or darker shade\n * @param {number} value - A value in the range -100-100 to shift the color with along the HSL lightness.\n * @return {string} The shifted color as hsla string.\n */\n shiftLuminance(value) {\n const chsla = this.toHSLA();\n const matches = /^hsla\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,(\\d(\\.\\d+)?)\\)$/i.exec(\n chsla\n );\n\n const h = parseFloat(matches[1]);\n const s = parseFloat(matches[3]);\n let l = parseFloat(matches[5]);\n const a = parseFloat(matches[7]);\n // l *= 1 + value / 100;\n // l = Math.max( 0, l % 100 );\n l += value;\n l = Math.max(0, Math.min(l, 100));\n\n // if( value > 0 ){\n // s = s*0.2; //removing saturation to avoid the border from being too light\n // }\n\n return `hsla(${h},${s},${l},${a})`;\n },\n /**\n * Compares two colors.\n * @param {Color} c The color to compare with.\n * @return {boolean} True if the rgb channels are the same, false otherwise\n */\n isEqual(c) {\n if (c instanceof Color) {\n return this._r === c._r && this._g === c._g && this._b === c._b;\n }\n\n c = new Color(c);\n return this._r === c._r && this._g === c._g && this._b === c._b;\n },\n /**\n * Linearly interpolates each channel of two colors.\n * @param {Color} c2 The other color.\n * @param {number} t The interpolation value in the range (0-1).\n * @return {string} The blend as an rgb string.\n */\n blend(c2, t) {\n const r = floor(this._r + (c2._r - this._r) * t);\n const g = floor(this._g + (c2._g - this._g) * t);\n const b = floor(this._b + (c2._b - this._b) * t);\n const a = floor(this._a + (c2._a - this._a) * t);\n\n return `rgba(${[r, g, b, a].join(',')})`;\n },\n\n createShiftedColor(v) {\n if (v === undefined || Number.isNaN(+v)) {\n v = 1;\n }\n const lumi = this.getLuminance();\n const greenMultiplier = this._g < 126 ? 1 : 1 + this._g / 512;\n const hsla_string = this.shiftLuminance(\n (lumi * greenMultiplier < 220 ? 0.8 + 4 * (1 / (lumi + 1)) : -(0.8 + 1 * (lumi / 255))) * 20 * v\n );\n\n return new Color(hsla_string);\n },\n }\n);\n\n/**\n * Returns an rgb string representation of this color\n * @param {Color|string} c\n * @returns {string} An rgb string with channel values within range 0-255.\n */\nColor.toRGB = function toRGB(c) {\n if (c instanceof Color) {\n return `rgb(${[c._r, c._g, c._b].join(',')})`;\n }\n\n if (typeof c === 'string') {\n c = Color.toNumber(c);\n }\n\n const r = (c & 0xff0000) >> 16;\n const g = (c & 0x00ff00) >> 8;\n const b = c & 0x0000ff;\n\n return `rgb(${r},${g},${b})`;\n};\n/**\n *\n * @param c\n * @param a\n * @returns {string} The color rgb format.\n */\nColor.toRGBA = function toRGB(c, a) {\n if (c instanceof Color) {\n return `rgba(${[c._r, c._g, c._b, typeof a !== 'undefined' ? a : c._a].join(',')})`;\n }\n\n if (typeof c === 'string') {\n c = Color.toNumber(c);\n }\n\n const r = (c & 0xff0000) >> 16;\n const g = (c & 0x00ff00) >> 8;\n const b = c & 0x0000ff;\n\n return `rgba(${r},${g},${b},${typeof a !== 'undefined' ? a : c._a})`;\n};\n/**\n *\n * @param {Color|string} c\n * @returns {string} The color in hexadecimal space.\n */\nColor.toHex = function toHex(c) {\n let r;\n let g;\n let b;\n if (c instanceof Color) {\n r = c._r.toString(16);\n g = c._g.toString(16);\n b = c._b.toString(16);\n if (r.length === 1) {\n r = `0${r}`;\n }\n if (g.length === 1) {\n g = `0${g}`;\n }\n if (b.length === 1) {\n b = `0${b}`;\n }\n return `#${[r, g, b].join('')}`;\n }\n\n if (typeof c === 'string') {\n c = Color.toNumber(c);\n }\n\n r = ((c & 0xff0000) >> 16).toString(16);\n g = ((c & 0x00ff00) >> 8).toString(16);\n b = (c & 0x0000ff).toString(16);\n\n if (r.length === 1) {\n r = `0${r}`;\n }\n if (g.length === 1) {\n g = `0${g}`;\n }\n if (b.length === 1) {\n b = `0${b}`;\n }\n\n return `#${r}${g}${b}`;\n};\n/**\n * Return the color in hsl space using \"bi-hexcone\" model for lightness\n * @param {Color|string} c\n * @param {boolean} luma - Whether to use luma calculation\n * @returns {string} The color in hsl space.\n */\nColor.toHSL = function (c, luma) {\n let h = 0;\n let s;\n let l;\n let ch;\n if (typeof c === 'string') {\n c = new Color(c);\n }\n\n // red, green, blue, hue, saturation, lightness/luma, max, min, chroma\n const r = c._r / 255;\n const g = c._g / 255;\n const b = c._b / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n if (luma) {\n // Y'709 http://en.wikipedia.org/wiki/Rec._709\n // Y′709 = 0.21R + 0.72G + 0.07B\n l = 0.21 * r + 0.72 * g + 0.07 * b;\n } else {\n l = (max + min) / 2;\n }\n\n if (max === min) {\n // greyscale\n s = 0;\n h = 0;\n } else {\n ch = max - min;\n s = l > 0.5 ? ch / (2 - max - min) : ch / (max + min);\n switch (max) {\n case r:\n h = (g - b) / ch + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / ch + 2;\n break;\n case b:\n h = (r - g) / ch + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n\n return `hsl(${h * 360},${s * 100},${l * 100})`;\n};\n/**\n * Return the color in hsla space using \"bi-hexcone\" model for lightness\n * @param {Color|string} c\n * @param {boolean} luma - Whether to use luma calculation\n * @returns {string} The color in hsla space.\n */\nColor.toHSLA = function (c, luma) {\n let h = 0;\n let s;\n let l;\n let ch;\n if (typeof c === 'string') {\n c = new Color(c);\n }\n\n // red, green, blue, hue, saturation, lightness/luma, max, min, chroma\n const r = c._r / 255;\n const g = c._g / 255;\n const b = c._b / 255;\n const a = c._a;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n if (luma) {\n // Y'709 http://en.wikipedia.org/wiki/Rec._709\n // Y′709 = 0.21R + 0.72G + 0.07B\n l = 0.21 * r + 0.72 * g + 0.07 * b;\n } else {\n l = (max + min) / 2;\n }\n\n if (max === min) {\n // greyscale\n s = 0;\n h = 0;\n } else {\n ch = max - min;\n s = l > 0.5 ? ch / (2 - max - min) : ch / (max + min);\n switch (max) {\n case r:\n h = (g - b) / ch + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / ch + 2;\n break;\n case b:\n h = (r - g) / ch + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n\n return `hsla(${h * 360},${s * 100},${l * 100},${a})`;\n};\n/**\n * Return the color components in hsv space using \"hexcone\" model for value (lightness)\n * @param {Color|string} c\n * @returns {object} The color components in hsv space {h:0-360, s:0-100, v:0-100}\n */\nColor.toHSVComponents = function (c) {\n let h = 0;\n let s;\n let ch;\n if (typeof c === 'string') {\n c = new Color(c);\n }\n\n // red, green, blue, hue, saturation, value/luma, max, min, chroma\n const r = c._r / 255;\n const g = c._g / 255;\n const b = c._b / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n\n const v = max;\n\n if (max === min) {\n // greyscale\n s = 0;\n h = 0;\n } else {\n ch = max - min;\n s = ch === 0 ? 0 : ch / v;\n switch (max) {\n case r:\n h = (g - b) / ch + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / ch + 2;\n break;\n case b:\n h = (r - g) / ch + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n\n return { h: (h * 360) % 360, s: s * 100, v: v * 100 };\n};\n/**\n * Returns an number representation of the color\n * @param {Color|string} c\n * @returns {Number} Unsigned integer in the range 0-16 777 216\n */\nColor.toNumber = function toNumber() {\n if (arguments.length === 1 && arguments[0] instanceof Color) {\n return (arguments[0]._r << 16) + (arguments[0]._g << 8) + arguments[0]._b;\n }\n\n let r = 0;\n let g = 0;\n let b = 0;\n let matches;\n let colorString;\n\n if (arguments.length === 1) {\n if (typeof arguments[0] === 'string') {\n colorString = arguments[0];\n\n if ((matches = /^rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)$/i.exec(colorString))) {\n r = parseInt(matches[1], 10);\n g = parseInt(matches[2], 10);\n b = parseInt(matches[3], 10);\n } else if ((matches = /^#([A-f0-9]{2})([A-f0-9]{2})([A-f0-9]{2})$/i.exec(colorString))) {\n r = parseInt(matches[1], 16);\n g = parseInt(matches[2], 16);\n b = parseInt(matches[3], 16);\n } else if ((matches = /^#([A-f0-9])([A-f0-9])([A-f0-9])$/i.exec(colorString))) {\n r = parseInt(matches[1] + matches[1], 16);\n g = parseInt(matches[2] + matches[2], 16);\n b = parseInt(matches[3] + matches[3], 16);\n }\n }\n }\n return (r << 16) + (g << 8) + b;\n};\nColor.blend = function blend(c1, c2, t) {\n c1 = Color.toNumber(c1);\n c2 = Color.toNumber(c2);\n\n const r1 = (c1 & 0xff0000) >> 16;\n const g1 = (c1 & 0x00ff00) >> 8;\n const b1 = c1 & 0x0000ff;\n const r2 = (c2 & 0xff0000) >> 16;\n const g2 = (c2 & 0x00ff00) >> 8;\n const b2 = c2 & 0x0000ff;\n const r = r1 + (r2 - r1) * t;\n const g = g1 + (g2 - g1) * t;\n const b = b1 + (b2 - b1) * t;\n\n return (r << 16) + (g << 8) + b;\n};\nColor.getBlend = function getBlend(c1, c2, t) {\n const r = c1._r + (c2._r - c1._r) * t;\n const g = c1._g + (c2._g - c1._g) * t;\n const b = c1._b + (c2._b - c1._b) * t;\n const a = c1._a + (c2._a - c1._a) * t;\n\n return new Color(r, g, b, a);\n};\nColor.isCSSColor = function (color) {\n if (arguments.length > 1 || typeof color !== 'string') {\n return false;\n }\n return (\n rgb.test(color) ||\n rgba.test(color) ||\n hex.test(color) ||\n hexShort.test(color) ||\n hsl.test(color) ||\n hsla.test(color) ||\n CSSColors[color.toLowerCase()]\n );\n};\n\nColor.getBestContrast = function (color, cl, cd) {\n const lum = color.getLuminance();\n return Math.abs(lum - cl.getLuminance()) > Math.abs(lum - cd.getLuminance()) ? cl : cd;\n};\n\nColor.getContrast = function (color1, color2) {\n if (!color1 || !color2) {\n return undefined;\n }\n\n const l1 = color1.getLuminance() / 100;\n const l2 = color2.getLuminance() / 100;\n\n if (l1 > l2) {\n return (l1 + 0.05) / (l2 + 0.05);\n }\n\n return (l2 + 0.05) / (l1 + 0.05);\n};\n\nColor.isDark = function () {\n const o = {\n getLuminance: Color.prototype.getLuminance,\n isInvalid: Color.prototype.isInvalid,\n };\n Color.prototype.init.apply(o, [].slice.call(arguments));\n return Color.prototype.isDark.call(o);\n};\n\nColor.useDarkLabel = function (areaColor, bgIsDark) {\n return areaColor._a > 0.5 ? !areaColor.isDark() : !bgIsDark;\n};\n\nexport default Color;\n","import Color from './color';\n\nconst chartUtils = {\n TRANSPARENT_BLACK: 'rgba( 0,0,0,0.2 )',\n TRANSPARENT_WHITE: 'rgba( 255,255,255,0.7 )',\n LIGHT_GREY: '#ccc',\n DARK_GREY: '#666',\n BLACK: '#000',\n WHITE: '#fff',\n\n getInverse(color) {\n const colorObj = new Color(color);\n const alpha = colorObj.getAlpha();\n\n if (alpha === 0) {\n return this.BLACK;\n }\n return colorObj.isDark() ? this.WHITE : this.BLACK;\n },\n\n getContrastingGrey(color) {\n const colorObj = new Color(color);\n const alpha = colorObj.getAlpha();\n\n if (alpha === 0) {\n return this.DARK_GREY;\n }\n return Color.getBestContrast(colorObj, new Color(chartUtils.LIGHT_GREY), new Color(chartUtils.DARK_GREY));\n },\n\n getBestContrast(color, color1, color2) {\n return Color.getBestContrast(new Color(color), new Color(color1), new Color(color2));\n },\n\n getContrastingTransparent(color) {\n const colorObj = new Color(color);\n const alpha = colorObj.getAlpha();\n\n if (alpha === 0 || color === 'none') {\n return this.TRANSPARENT_BLACK;\n }\n return colorObj.isDark() ? this.TRANSPARENT_WHITE : this.TRANSPARENT_BLACK;\n },\n};\n\nexport default chartUtils;\n","import chartStyleUtils from '@qlik/common/extra/chart-style-utils';\nimport histogramUtils from '../histogram-utils';\n\n//\n// Implementation details\n//\n\nfunction createBoxMarkerSettings(\n chartView,\n layout,\n basicSelectionSettings,\n dimensionSelectionSettings,\n measureSelectionSettings,\n tooltipSettings\n) {\n const { theme } = chartView.environment;\n const boxFillColor = theme.getColorPickerColor(layout.color.bar.paletteColor);\n const binSize = histogramUtils.getDerivedBinSize(layout);\n\n const brushTrigger = [];\n const brushConsume = [\n basicSelectionSettings.consume,\n dimensionSelectionSettings.consume,\n measureSelectionSettings.consume,\n ];\n\n if (chartView._tooltipHandler.isOn()) {\n brushTrigger.push(tooltipSettings.box.trigger);\n brushConsume.push.apply(brushConsume, tooltipSettings.box.consume);\n }\n\n brushTrigger.push(basicSelectionSettings.trigger);\n\n return {\n key: 'box-marker',\n settings: {\n box: {\n fill: boxFillColor,\n stroke: chartStyleUtils.getContrastingGrey(boxFillColor).toHex(),\n strokeWidth: 1,\n maxWidthPx: Infinity,\n minWidthPx: NaN, // Temp fix for QLIK-92353 until a proper fix is available in picasso.js\n minWidth: 0,\n },\n major: {\n scale: 'dimension',\n ref: {\n start: 'binStart',\n end: 'binEnd',\n },\n },\n minor: { scale: 'measure' },\n whiskers: false,\n orientation: 'vertical',\n },\n brush: {\n trigger: brushTrigger,\n consume: brushConsume,\n },\n data: {\n extract: {\n field: 'qDimensionInfo/0',\n props: {\n start: 0,\n end: { field: 'qMeasureInfo/0' },\n measure: {\n field: 'qMeasureInfo/0',\n reduce: 'first',\n value(v) {\n return v;\n },\n reduceLabel: 'none',\n },\n binStart: {\n field: 'qDimensionInfo/0',\n value(v) {\n return v.qNum;\n },\n },\n binEnd: {\n field: 'qDimensionInfo/0',\n value(v) {\n return v.qNum + binSize;\n },\n },\n elemNo: { field: 'qDimensionInfo/0' },\n bin: {\n field: 'qDimensionInfo/0',\n value(v) {\n return v;\n },\n },\n },\n },\n },\n };\n}\n\nconst BoxMarker = {\n createSettings: createBoxMarkerSettings,\n};\n\nexport default BoxMarker;\n","import chartStyleUtils from '@qlik/common/extra/chart-style-utils';\nimport { getValueLabelStyle } from '@qlik/common/extra/chart-style-component';\n\n//\n// Implementation details\n//\n\nfunction createLabelSettings(layout, theme, chartId, flags) {\n const valueLabelSettings = getValueLabelStyle(chartId, theme, layout, flags);\n const boxFillColor = valueLabelSettings.fill || theme.getColorPickerColor(layout.color.bar.paletteColor);\n\n return {\n settings: {\n sources: [\n {\n strategy: {\n settings: {\n ...valueLabelSettings,\n labels: [\n {\n placements: [\n { fill: boxFillColor },\n {\n fill: flags.isEnabled('CLIENT_IM_3364') ? boxFillColor : chartStyleUtils.getInverse(boxFillColor),\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 } 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\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, theme, 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","c","e","Array","isArray","f","Symbol","iterator","from","t","n","prototype","toString","call","slice","constructor","name","test","s","TypeError","length","r","p","hasOwnProperty","m","defineProperty","v","getOwnPropertyDescriptor","y","g","b","enumerable","configurable","value","newValue","writable","x","I","O","create","E","o","i","a","l","arguments","u","__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","push","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","Hi","Ri","zi","toUpperCase","groupHeader","disabled","_i","theme","id","flags","getDefaultValue","getOptions","defaultValue","apply","Set","concat","map","replace","filter","Boolean","metaText","isEnabled","Vi","Bi","Yi","$i","Ui","fontFamily","Ki","config","paths","forEach","Error","fnTest","Class","extend","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","next","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","reduce","reduceLabel","getHierarchy","rootPath","childNodes","picker","tree","getHierarchyForSMode","matrix","order","__root","__id","isNew","_cell$qElemNumber","qElemNumber","qElemNo","_objectSpread","__parent","attachPropsAccessors","_ref4","itemDepthObject","accessors","augment","propDefs","idx","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","valueLabelSettings","getValueLabelStyle","_overrides3","_value$value","_value$value2","_value$value3","_value$value3$fontCol","ChartSettings","dimTitle","_selectionHandler","lockedDim","retrieveRangeSelStatus","dimInfos","getLockedDim","_dependentActions","DependentInteractions","include","boxMarkerSettings","binLabelSettings","rangeSelSettings","HistogramView","namespace","renderState","__do_not_use_findShapes","findShapes","_derivedProperties","updateConstraints","constraints","passive","selection","onlyNanData","qIsNull","isOnlyNanData","binMappings","binProperties","getHashData","restore","updateCache","pending","undoExclude","BackednAPi","setCacheOptions","maxStackedValues","getHyperCubeData","window","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","base","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]}