@kyndryl-design-system/shidoka-charts 2.8.0 → 2.8.2

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,2 +1,2 @@
1
- import{getComputedColorPalette as t}from"../colorPalettes.js";import{getTextColor as e}from"../../helpers/helpers.js";import{getTokenThemeVal as o}from"@kyndryl-design-system/shidoka-foundation/common/helpers/color";const r="treemap",n=t=>({plugins:{legend:{display:!1}},spacing:function(t){return void 0!==t.dataset.groups?0:1},borderWidth:function(t){return t.dataset.groups?1:0},borderColor:o("--kd-color-background-page-default"),labels:{align:"left",display:!0,color:function(t){return e(t.element.options.backgroundColor)},font:{size:12,weight:500},position:"top",overflow:"hidden"},captions:{align:"center",display:!0,color:function(t){return e(t.element.options.backgroundColor)},font:{size:12,weight:700},padding:2}}),a=(e,o)=>{const r=t(e.options?.colorPalette||"categorical");return{backgroundColor:function(t){const e=t.dataset,o="number"==typeof t.dataIndex?t.dataIndex:0,n=r&&r.length||1;if(e&&void 0!==e.groups){const e=s(t);return r[e%n]}if("object"==typeof(e&&e.tree)&&!Array.isArray(e&&e.tree)&&t.raw&&t.raw._data&&"string"==typeof t.raw._data.path){const o=String(t.raw._data.path).split(".")[0],a=Object.keys(e.tree||{}),s=Math.max(0,a.indexOf(o));return r[s%n]}return r[o%n]}}},s=t=>{const e=t.dataset;let o=0;if(void 0!==e.groups){const r=t.dataIndex,n=e.groups?e.groups[0]:null,a="object"==typeof e.tree&&!Array.isArray(e.tree);let s=[];if(a){if(s=Object.keys(e.tree),t.raw){const e=t.raw._data.path.split(".")[0];o=s.indexOf(e)}}else{e.tree.forEach((t=>{s.includes(t[n])||s.push(t[n])}));const t=e.data[r];t&&(o=s.indexOf(t._data[n]))}}return o<0?0:o};export{a as datasetOptions,n as options,r as type};
1
+ import{getComputedColorPalette as t}from"../colorPalettes.js";import{getTextColor as e}from"../../helpers/helpers.js";import{getTokenThemeVal as r}from"@kyndryl-design-system/shidoka-foundation/common/helpers/color";const o="treemap",a=()=>{const t=r("--kd-color-background-page-default");return{plugins:{legend:{display:!1}},spacing(t){const e=t.dataset;return e&&void 0!==e.groups?0:1},borderWidth(t){const e=t.dataset;return e&&e.groups?1:0},borderColor:t,labels:{align:"left",display:!0,color:t=>e(t.element.options.backgroundColor),font:{size:12,weight:500},position:"top",overflow:"hidden"},captions:{align:"center",display:!0,color:t=>e(t.element.options.backgroundColor),font:{size:12,weight:700},padding:2}}},n=(e,o)=>{const a=t(e.options?.colorPalette||"categorical"),n=a[0]||r("--kd-color-data-viz-level-secondary");return{backgroundColor(t){const e=t.dataset;if(!e)return n;const r=a&&a.length||1;if(void 0!==e.groups){const e=s(t);return a[e%r]||n}if("object"==typeof e.tree&&!Array.isArray(e.tree)&&t.raw&&t.raw._data&&"string"==typeof t.raw._data.path){const o=String(t.raw._data.path).split(".")[0],s=Object.keys(e.tree||{}),d=Math.max(0,s.indexOf(o));return a[d%r]||n}return n}}},s=t=>{const e=t.dataset;let r=0;if(e&&void 0!==e.groups){const o=t.dataIndex,a=e.groups?e.groups[0]:null,n="object"==typeof e.tree&&!Array.isArray(e.tree);let s=[];if(n){if(s=Object.keys(e.tree),t.raw&&t.raw._data&&t.raw._data.path){const e=t.raw._data.path.split(".")[0];r=s.indexOf(e)}}else{e.tree.forEach((t=>{s.includes(t[a])||s.push(t[a])}));const t=e.data&&e.data[o];t&&t._data&&(r=s.indexOf(t._data[a]))}}return r<0?0:r};export{n as datasetOptions,a as options,o as type};
2
2
  //# sourceMappingURL=treemap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"treemap.js","sources":["../../../../src/common/config/chartTypes/treemap.js"],"sourcesContent":["import { getComputedColorPalette } from '../colorPalettes';\nimport { getTextColor } from '../../helpers/helpers';\nimport { getTokenThemeVal } from '@kyndryl-design-system/shidoka-foundation/common/helpers/color';\n\nexport const type = 'treemap';\n\nexport const options = (ctx) => {\n const BorderColor = getTokenThemeVal('--kd-color-background-page-default');\n\n return {\n plugins: {\n legend: {\n display: false,\n },\n },\n spacing: function (context) {\n const Dataset = context.dataset;\n const Grouped = Dataset.groups !== undefined;\n\n return Grouped ? 0 : 1;\n },\n borderWidth: function (context) {\n const Dataset = context.dataset;\n return Dataset.groups ? 1 : 0;\n },\n borderColor: BorderColor,\n labels: {\n align: 'left',\n display: true,\n color: function (context) {\n return getTextColor(context.element.options.backgroundColor);\n },\n font: {\n size: 12,\n weight: 500,\n },\n position: 'top',\n overflow: 'hidden',\n },\n captions: {\n align: 'center',\n display: true,\n color: function (context) {\n return getTextColor(context.element.options.backgroundColor);\n },\n font: {\n size: 12,\n weight: 700,\n },\n padding: 2,\n },\n };\n};\n\nexport const datasetOptions = (ctx, index) => {\n const palette = getComputedColorPalette(\n ctx.options?.colorPalette || 'categorical'\n );\n\n return {\n backgroundColor: function (context) {\n const Dataset = context.dataset;\n const dataIndex =\n typeof context.dataIndex === 'number' ? context.dataIndex : 0;\n const paletteLen = (palette && palette.length) || 1;\n\n if (Dataset && Dataset.groups !== undefined) {\n const groupIndex = getGroupColorIndex(context);\n return palette[groupIndex % paletteLen];\n }\n\n const nested =\n typeof (Dataset && Dataset.tree) === 'object' &&\n !Array.isArray(Dataset && Dataset.tree);\n if (\n nested &&\n context.raw &&\n context.raw._data &&\n typeof context.raw._data.path === 'string'\n ) {\n const parent = String(context.raw._data.path).split('.')[0];\n const groups = Object.keys(Dataset.tree || {});\n const idx = Math.max(0, groups.indexOf(parent));\n return palette[idx % paletteLen];\n }\n\n return palette[dataIndex % paletteLen];\n },\n };\n};\n\n/**\n * The function `getGroupColorIndex` returns the index of a group color based on the context provided.\n * Works for grouped charts, not nested data charts yet.\n * @param context - The `context` parameter is an object that contains information about the current\n * context or state of the program. It is used to determine the group color index based on the dataset\n * and data index.\n * @returns the index of the group color for a given context.\n */\nconst getGroupColorIndex = (context) => {\n const Dataset = context.dataset;\n let index = 0;\n\n if (Dataset.groups !== undefined) {\n const DataIndex = context.dataIndex;\n const GroupKey = Dataset.groups ? Dataset.groups[0] : null;\n const Nested =\n typeof Dataset.tree === 'object' && !Array.isArray(Dataset.tree);\n let Groups = [];\n\n if (Nested) {\n Groups = Object.keys(Dataset.tree);\n\n if (context.raw) {\n const Path = context.raw._data.path;\n const Parent = Path.split('.')[0];\n\n index = Groups.indexOf(Parent);\n }\n } else {\n Dataset.tree.forEach((leaf) => {\n if (!Groups.includes(leaf[GroupKey])) {\n Groups.push(leaf[GroupKey]);\n }\n });\n\n const Leaf = Dataset.data[DataIndex];\n\n if (Leaf) {\n index = Groups.indexOf(Leaf._data[GroupKey]);\n }\n }\n }\n\n return index < 0 ? 0 : index;\n};\n"],"names":["type","options","ctx","plugins","legend","display","spacing","context","undefined","dataset","groups","borderWidth","borderColor","getTokenThemeVal","labels","align","color","getTextColor","element","backgroundColor","font","size","weight","position","overflow","captions","padding","datasetOptions","index","palette","getComputedColorPalette","colorPalette","Dataset","dataIndex","paletteLen","length","groupIndex","getGroupColorIndex","tree","Array","isArray","raw","_data","path","parent","String","split","Object","keys","idx","Math","max","indexOf","DataIndex","GroupKey","Nested","Groups","Parent","forEach","leaf","includes","push","Leaf","data"],"mappings":"wNAIY,MAACA,EAAO,UAEPC,EAAWC,IAGf,CACLC,QAAS,CACPC,OAAQ,CACNC,SAAS,IAGbC,QAAS,SAAUC,GAIjB,YAFmCC,IADnBD,EAAQE,QACAC,OAEP,EAAI,CACvB,EACAC,YAAa,SAAUJ,GAErB,OADgBA,EAAQE,QACTC,OAAS,EAAI,CAC9B,EACAE,YAlBkBC,EAAiB,sCAmBnCC,OAAQ,CACNC,MAAO,OACPV,SAAS,EACTW,MAAO,SAAUT,GACf,OAAOU,EAAaV,EAAQW,QAAQjB,QAAQkB,gBAC9C,EACAC,KAAM,CACJC,KAAM,GACNC,OAAQ,KAEVC,SAAU,MACVC,SAAU,UAEZC,SAAU,CACRV,MAAO,SACPV,SAAS,EACTW,MAAO,SAAUT,GACf,OAAOU,EAAaV,EAAQW,QAAQjB,QAAQkB,gBAC9C,EACAC,KAAM,CACJC,KAAM,GACNC,OAAQ,KAEVI,QAAS,KAKFC,EAAiB,CAACzB,EAAK0B,KAClC,MAAMC,EAAUC,EACd5B,EAAID,SAAS8B,cAAgB,eAG/B,MAAO,CACLZ,gBAAiB,SAAUZ,GACzB,MAAMyB,EAAUzB,EAAQE,QAClBwB,EACyB,iBAAtB1B,EAAQ0B,UAAyB1B,EAAQ0B,UAAY,EACxDC,EAAcL,GAAWA,EAAQM,QAAW,EAElD,GAAIH,QAA8BxB,IAAnBwB,EAAQtB,OAAsB,CAC3C,MAAM0B,EAAaC,EAAmB9B,GACtC,OAAOsB,EAAQO,EAAaF,EAC9B,CAKA,GAFuC,iBAA7BF,GAAWA,EAAQM,QAC1BC,MAAMC,QAAQR,GAAWA,EAAQM,OAGlC/B,EAAQkC,KACRlC,EAAQkC,IAAIC,OACsB,iBAA3BnC,EAAQkC,IAAIC,MAAMC,KACzB,CACA,MAAMC,EAASC,OAAOtC,EAAQkC,IAAIC,MAAMC,MAAMG,MAAM,KAAK,GACnDpC,EAASqC,OAAOC,KAAKhB,EAAQM,MAAQ,CAAA,GACrCW,EAAMC,KAAKC,IAAI,EAAGzC,EAAO0C,QAAQR,IACvC,OAAOf,EAAQoB,EAAMf,EACvB,CAEA,OAAOL,EAAQI,EAAYC,EAC7B,EACD,EAWGG,EAAsB9B,IAC1B,MAAMyB,EAAUzB,EAAQE,QACxB,IAAImB,EAAQ,EAEZ,QAAuBpB,IAAnBwB,EAAQtB,OAAsB,CAChC,MAAM2C,EAAY9C,EAAQ0B,UACpBqB,EAAWtB,EAAQtB,OAASsB,EAAQtB,OAAO,GAAK,KAChD6C,EACoB,iBAAjBvB,EAAQM,OAAsBC,MAAMC,QAAQR,EAAQM,MAC7D,IAAIkB,EAAS,GAEb,GAAID,GAGF,GAFAC,EAAST,OAAOC,KAAKhB,EAAQM,MAEzB/B,EAAQkC,IAAK,CACf,MACMgB,EADOlD,EAAQkC,IAAIC,MAAMC,KACXG,MAAM,KAAK,GAE/BlB,EAAQ4B,EAAOJ,QAAQK,EACzB,MACK,CACLzB,EAAQM,KAAKoB,SAASC,IACfH,EAAOI,SAASD,EAAKL,KACxBE,EAAOK,KAAKF,EAAKL,GACnB,IAGF,MAAMQ,EAAO9B,EAAQ+B,KAAKV,GAEtBS,IACFlC,EAAQ4B,EAAOJ,QAAQU,EAAKpB,MAAMY,IAEtC,CACF,CAEA,OAAO1B,EAAQ,EAAI,EAAIA,CAAK"}
1
+ {"version":3,"file":"treemap.js","sources":["../../../../src/common/config/chartTypes/treemap.js"],"sourcesContent":["import { getComputedColorPalette } from '../colorPalettes';\nimport { getTextColor } from '../../helpers/helpers';\nimport { getTokenThemeVal } from '@kyndryl-design-system/shidoka-foundation/common/helpers/color';\n\nexport const type = 'treemap';\n\nexport const options = () => {\n const BorderColor = getTokenThemeVal('--kd-color-background-page-default');\n\n return {\n plugins: {\n legend: {\n display: false,\n },\n },\n spacing(context) {\n const Dataset = context.dataset;\n const Grouped = Dataset && Dataset.groups !== undefined;\n\n return Grouped ? 0 : 1;\n },\n borderWidth(context) {\n const Dataset = context.dataset;\n return Dataset && Dataset.groups ? 1 : 0;\n },\n borderColor: BorderColor,\n labels: {\n align: 'left',\n display: true,\n color(context) {\n return getTextColor(context.element.options.backgroundColor);\n },\n font: {\n size: 12,\n weight: 500,\n },\n position: 'top',\n overflow: 'hidden',\n },\n captions: {\n align: 'center',\n display: true,\n color(context) {\n return getTextColor(context.element.options.backgroundColor);\n },\n font: {\n size: 12,\n weight: 700,\n },\n padding: 2,\n },\n };\n};\n\nexport const datasetOptions = (ctx, index) => {\n const palette = getComputedColorPalette(\n ctx.options?.colorPalette || 'categorical'\n );\n\n const defaultColor =\n palette[0] || getTokenThemeVal('--kd-color-data-viz-level-secondary');\n\n return {\n backgroundColor(context) {\n const Dataset = context.dataset;\n\n if (!Dataset) {\n return defaultColor;\n }\n\n const paletteLen = (palette && palette.length) || 1;\n\n if (Dataset.groups !== undefined) {\n const groupIndex = getGroupColorIndex(context);\n return palette[groupIndex % paletteLen] || defaultColor;\n }\n\n const nested =\n typeof Dataset.tree === 'object' && !Array.isArray(Dataset.tree);\n\n if (\n nested &&\n context.raw &&\n context.raw._data &&\n typeof context.raw._data.path === 'string'\n ) {\n const parent = String(context.raw._data.path).split('.')[0];\n const groups = Object.keys(Dataset.tree || {});\n const idx = Math.max(0, groups.indexOf(parent));\n return palette[idx % paletteLen] || defaultColor;\n }\n\n // simple / ungrouped treemap: one default color similar to bubbleMap Colors[0]\n return defaultColor;\n },\n };\n};\n\n/**\n * The function `getGroupColorIndex` returns the index of a group color based on the context provided.\n * Works for grouped charts, not nested data charts yet.\n * @param context - The `context` parameter is an object that contains information about the current\n * context or state of the program. It is used to determine the group color index based on the dataset\n * and data index.\n * @returns the index of the group color for a given context.\n */\nconst getGroupColorIndex = (context) => {\n const Dataset = context.dataset;\n let index = 0;\n\n if (Dataset && Dataset.groups !== undefined) {\n const DataIndex = context.dataIndex;\n const GroupKey = Dataset.groups ? Dataset.groups[0] : null;\n const Nested =\n typeof Dataset.tree === 'object' && !Array.isArray(Dataset.tree);\n let Groups = [];\n\n if (Nested) {\n Groups = Object.keys(Dataset.tree);\n\n if (context.raw && context.raw._data && context.raw._data.path) {\n const Path = context.raw._data.path;\n const Parent = Path.split('.')[0];\n\n index = Groups.indexOf(Parent);\n }\n } else {\n Dataset.tree.forEach((leaf) => {\n if (!Groups.includes(leaf[GroupKey])) {\n Groups.push(leaf[GroupKey]);\n }\n });\n\n const Leaf = Dataset.data && Dataset.data[DataIndex];\n\n if (Leaf && Leaf._data) {\n index = Groups.indexOf(Leaf._data[GroupKey]);\n }\n }\n }\n\n return index < 0 ? 0 : index;\n};\n"],"names":["type","options","BorderColor","getTokenThemeVal","plugins","legend","display","spacing","context","Dataset","dataset","undefined","groups","borderWidth","borderColor","labels","align","color","getTextColor","element","backgroundColor","font","size","weight","position","overflow","captions","padding","datasetOptions","ctx","index","palette","getComputedColorPalette","colorPalette","defaultColor","paletteLen","length","groupIndex","getGroupColorIndex","tree","Array","isArray","raw","_data","path","parent","String","split","Object","keys","idx","Math","max","indexOf","DataIndex","dataIndex","GroupKey","Nested","Groups","Parent","forEach","leaf","includes","push","Leaf","data"],"mappings":"wNAIY,MAACA,EAAO,UAEPC,EAAU,KACrB,MAAMC,EAAcC,EAAiB,sCAErC,MAAO,CACLC,QAAS,CACPC,OAAQ,CACNC,SAAS,IAGb,OAAAC,CAAQC,GACN,MAAMC,EAAUD,EAAQE,QAGxB,OAFgBD,QAA8BE,IAAnBF,EAAQG,OAElB,EAAI,CACvB,EACA,WAAAC,CAAYL,GACV,MAAMC,EAAUD,EAAQE,QACxB,OAAOD,GAAWA,EAAQG,OAAS,EAAI,CACzC,EACAE,YAAaZ,EACba,OAAQ,CACNC,MAAO,OACPV,SAAS,EACTW,MAAMT,GACGU,EAAaV,EAAQW,QAAQlB,QAAQmB,iBAE9CC,KAAM,CACJC,KAAM,GACNC,OAAQ,KAEVC,SAAU,MACVC,SAAU,UAEZC,SAAU,CACRV,MAAO,SACPV,SAAS,EACTW,MAAMT,GACGU,EAAaV,EAAQW,QAAQlB,QAAQmB,iBAE9CC,KAAM,CACJC,KAAM,GACNC,OAAQ,KAEVI,QAAS,GAEZ,EAGUC,EAAiB,CAACC,EAAKC,KAClC,MAAMC,EAAUC,EACdH,EAAI5B,SAASgC,cAAgB,eAGzBC,EACJH,EAAQ,IAAM5B,EAAiB,uCAEjC,MAAO,CACL,eAAAiB,CAAgBZ,GACd,MAAMC,EAAUD,EAAQE,QAExB,IAAKD,EACH,OAAOyB,EAGT,MAAMC,EAAcJ,GAAWA,EAAQK,QAAW,EAElD,QAAuBzB,IAAnBF,EAAQG,OAAsB,CAChC,MAAMyB,EAAaC,EAAmB9B,GACtC,OAAOuB,EAAQM,EAAaF,IAAeD,CAC7C,CAKA,GAF0B,iBAAjBzB,EAAQ8B,OAAsBC,MAAMC,QAAQhC,EAAQ8B,OAI3D/B,EAAQkC,KACRlC,EAAQkC,IAAIC,OACsB,iBAA3BnC,EAAQkC,IAAIC,MAAMC,KACzB,CACA,MAAMC,EAASC,OAAOtC,EAAQkC,IAAIC,MAAMC,MAAMG,MAAM,KAAK,GACnDnC,EAASoC,OAAOC,KAAKxC,EAAQ8B,MAAQ,CAAA,GACrCW,EAAMC,KAAKC,IAAI,EAAGxC,EAAOyC,QAAQR,IACvC,OAAOd,EAAQmB,EAAMf,IAAeD,CACtC,CAGA,OAAOA,CACT,EACD,EAWGI,EAAsB9B,IAC1B,MAAMC,EAAUD,EAAQE,QACxB,IAAIoB,EAAQ,EAEZ,GAAIrB,QAA8BE,IAAnBF,EAAQG,OAAsB,CAC3C,MAAM0C,EAAY9C,EAAQ+C,UACpBC,EAAW/C,EAAQG,OAASH,EAAQG,OAAO,GAAK,KAChD6C,EACoB,iBAAjBhD,EAAQ8B,OAAsBC,MAAMC,QAAQhC,EAAQ8B,MAC7D,IAAImB,EAAS,GAEb,GAAID,GAGF,GAFAC,EAASV,OAAOC,KAAKxC,EAAQ8B,MAEzB/B,EAAQkC,KAAOlC,EAAQkC,IAAIC,OAASnC,EAAQkC,IAAIC,MAAMC,KAAM,CAC9D,MACMe,EADOnD,EAAQkC,IAAIC,MAAMC,KACXG,MAAM,KAAK,GAE/BjB,EAAQ4B,EAAOL,QAAQM,EACzB,MACK,CACLlD,EAAQ8B,KAAKqB,SAASC,IACfH,EAAOI,SAASD,EAAKL,KACxBE,EAAOK,KAAKF,EAAKL,GACnB,IAGF,MAAMQ,EAAOvD,EAAQwD,MAAQxD,EAAQwD,KAAKX,GAEtCU,GAAQA,EAAKrB,QACfb,EAAQ4B,EAAOL,QAAQW,EAAKrB,MAAMa,IAEtC,CACF,CAEA,OAAO1B,EAAQ,EAAI,EAAIA,CAAK"}
@@ -1 +1 @@
1
- {"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../../src/components/chart/chart.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../../src/components/chart/chart.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import{__setFunctionName as t,__esDecorate as e,__runInitializers as s,__classPrivateFieldGet as i,__classPrivateFieldSet as a}from"tslib";import{LitElement as o,unsafeCSS as n,html as r}from"lit";import{customElement as c,property as h,state as l,query as d}from"lit/decorators.js";import{classMap as m}from"lit/directives/class-map.js";import{deepmerge as p,deepmergeCustom as g}from"deepmerge-ts";import u from"chart.js/auto";import"chartjs-adapter-date-fns";import{ChoroplethController as f,BubbleMapController as y,GeoFeature as b,ColorScale as v,SizeScale as j,ProjectionScale as w}from"chartjs-chart-geo";import{TreemapController as k,TreemapElement as T}from"chartjs-chart-treemap";import{MatrixController as C,MatrixElement as $}from"chartjs-chart-matrix";import{BoxPlotController as x,BoxAndWiskers as D,ViolinController as O,Violin as L}from"@sgratzl/chartjs-chart-boxplot";import{DendrogramController as M,TreeController as W,GraphController as A,ForceDirectedGraphController as H,EdgeLine as S}from"chartjs-chart-graph";import{SankeyController as B,Flow as E}from"chartjs-chart-sankey";import _ from"../../common/plugins/canvasBackground.js";import V from"../../common/plugins/doughnutLabel.js";import F from"../../common/plugins/meterGaugeNeedle.js";import N from"../../common/plugins/gradientLegend.js";import{renderHTMLLegend as R}from"../../common/legend/htmlRenderer.js";import{htmlLegendPlugin as z}from"../../common/plugins/htmlLegendPlugin.js";import J from"chartjs-plugin-a11y-legend";import I from"chartjs-plugin-datalabels";import P from"chartjs-plugin-annotation";import{debounce as q,convertTreeDataToCSV as G,convertChartDataToCSV as U}from"../../common/helpers/helpers.js";import{renderBoxplotViolinTable as K}from"../../common/helpers/boxplotViolinTableRenderer.js";import X from"./chart.scss.js";import Y from"../../common/config/globalOptions.js";import Q from"../../common/config/globalOptionsNonRadial.js";import Z from"../../common/config/globalOptionsRadial.js";import tt from'./../../external/@kyndryl-design-system/shidoka-icons/svg/monochrome/16/analytics.svg.js';import et from'./../../external/@kyndryl-design-system/shidoka-icons/svg/monochrome/16/table-view.svg.js';import st from'./../../external/@kyndryl-design-system/shidoka-icons/svg/monochrome/16/download.svg.js';import it from'./../../external/@kyndryl-design-system/shidoka-icons/svg/monochrome/16/expand.svg.js';import at from'./../../external/@kyndryl-design-system/shidoka-icons/svg/monochrome/16/shrink.svg.js';import{unsafeSVG as ot}from"lit/directives/unsafe-svg.js";import{getTokenThemeVal as nt}from"@kyndryl-design-system/shidoka-foundation/common/helpers/color";import{renderGraphTreeTable as rt}from"../../common/helpers/graphTreeTableRenderer.js";function ct(t){switch(t){case"../../common/config/chartTypes/bar.js":return import("../../common/config/chartTypes/bar.js");case"../../common/config/chartTypes/boxplot.js":return import("../../common/config/chartTypes/boxplot.js");case"../../common/config/chartTypes/bubble.js":return import("../../common/config/chartTypes/bubble.js");case"../../common/config/chartTypes/bubbleMap.js":return import("../../common/config/chartTypes/bubbleMap.js");case"../../common/config/chartTypes/choropleth.js":return import("../../common/config/chartTypes/choropleth.js");case"../../common/config/chartTypes/dendrogram.js":return import("../../common/config/chartTypes/dendrogram.js");case"../../common/config/chartTypes/doughnut.js":return import("../../common/config/chartTypes/doughnut.js");case"../../common/config/chartTypes/forceDirectedGraph.js":return import("../../common/config/chartTypes/forceDirectedGraph.js");case"../../common/config/chartTypes/graph.js":return import("../../common/config/chartTypes/graph.js");case"../../common/config/chartTypes/graphCommon.js":return import("../../common/config/chartTypes/graphCommon.js");case"../../common/config/chartTypes/line.js":return import("../../common/config/chartTypes/line.js");case"../../common/config/chartTypes/matrix.js":return import("../../common/config/chartTypes/matrix.js");case"../../common/config/chartTypes/meter.js":return import("../../common/config/chartTypes/meter.js");case"../../common/config/chartTypes/pie.js":return import("../../common/config/chartTypes/pie.js");case"../../common/config/chartTypes/polarArea.js":return import("../../common/config/chartTypes/polarArea.js");case"../../common/config/chartTypes/radar.js":return import("../../common/config/chartTypes/radar.js");case"../../common/config/chartTypes/sankey.js":return import("../../common/config/chartTypes/sankey.js");case"../../common/config/chartTypes/scatter.js":return import("../../common/config/chartTypes/scatter.js");case"../../common/config/chartTypes/tree.js":return import("../../common/config/chartTypes/tree.js");case"../../common/config/chartTypes/treemap.js":return import("../../common/config/chartTypes/treemap.js");case"../../common/config/chartTypes/violin.js":return import("../../common/config/chartTypes/violin.js");default:return new Promise((function(e,s){("function"==typeof queueMicrotask?queueMicrotask:setTimeout)(s.bind(null,new Error("Unknown variable dynamic import: "+t)))}))}}u.register(f,y,b,v,j,w,k,T,C,$,x,D,O,L,M,W,A,H,S,B,E,P,I);let ht=(()=>{var f,y,b,v,j,w,k,T,C,$,x,D,O,L,M,W,A,H,S,B,E,I,P,ht,lt,dt,mt,pt,gt,ut,ft;let yt,bt,vt,jt,wt,kt,Tt,Ct,$t,xt,Dt,Ot,Lt,Mt,Wt,At,Ht,St,Bt,Et,_t,Vt,Ft,Nt,Rt,zt,Jt,It,Pt,qt,Gt,Ut,Kt,Xt=[c("kd-chart")],Yt=[],Qt=o,Zt=[],te=[],ee=[],se=[],ie=[],ae=[],oe=[],ne=[],re=[],ce=[],he=[],le=[],de=[],me=[],pe=[],ge=[],ue=[],fe=[],ye=[],be=[],ve=[],je=[],we=[],ke=[],Te=[],Ce=[],$e=[],xe=[],De=[],Oe=[],Le=[],Me=[],We=[],Ae=[],He=[],Se=[],Be=[],Ee=[],_e=[],Ve=[],Fe=[],Ne=[],Re=[],ze=[],Je=[],Ie=[],Pe=[],qe=[],Ge=[],Ue=[],Ke=[],Xe=[],Ye=[],Qe=[],Ze=[],ts=[],es=[],ss=[],is=[],as=[],os=[],ns=[];return bt=class extends Qt{constructor(){super(...arguments),f.set(this,s(this,Zt,"")),y.set(this,(s(this,te),s(this,ee,""))),b.set(this,(s(this,se),s(this,ie,""))),v.set(this,(s(this,ae),s(this,oe,void 0))),j.set(this,(s(this,ne),s(this,re,void 0))),w.set(this,(s(this,ce),s(this,he,{}))),k.set(this,(s(this,le),s(this,de,[]))),T.set(this,(s(this,me),s(this,pe,null))),C.set(this,(s(this,ge),s(this,ue,null))),$.set(this,(s(this,fe),s(this,ye,!1))),x.set(this,(s(this,be),s(this,ve,!1))),D.set(this,(s(this,je),s(this,we,!1))),O.set(this,(s(this,ke),s(this,Te,!1))),L.set(this,(s(this,Ce),s(this,$e,!1))),M.set(this,(s(this,xe),s(this,De,!1))),W.set(this,(s(this,Oe),s(this,Le,!1))),A.set(this,(s(this,Me),s(this,We,!1))),H.set(this,(s(this,Ae),s(this,He,{toggleView:"Toggle View Mode",toggleFullscreen:"Toggle Fullscreen",downloadMenu:"Download Menu",downloadCsv:"Download as CSV",downloadPng:"Download as PNG",downloadJpg:"Download as JPG"}))),S.set(this,(s(this,Se),s(this,Be,!1))),B.set(this,(s(this,Ee),s(this,_e,!1))),E.set(this,(s(this,Ve),s(this,Fe,100))),I.set(this,(s(this,Ne),s(this,Re,{}))),P.set(this,(s(this,ze),s(this,Je,void 0))),ht.set(this,(s(this,Ie),s(this,Pe,void 0))),lt.set(this,(s(this,qe),s(this,Ge,void 0))),dt.set(this,(s(this,Ue),s(this,Ke,null))),mt.set(this,(s(this,Xe),s(this,Ye,!1))),pt.set(this,(s(this,Qe),s(this,Ze,!1))),gt.set(this,(s(this,ts),s(this,es,{}))),ut.set(this,(s(this,ss),s(this,is,{}))),ft.set(this,(s(this,as),s(this,os,!1))),this._resizeObserver=(s(this,ns),new ResizeObserver(q((()=>{this._resizeChart()})))),this._themeObserver=new MutationObserver((()=>{this.chart&&this.mergeOptions().then((()=>{this.initChart()}))}))}get chartTitle(){return i(this,f,"f")}set chartTitle(t){a(this,f,t,"f")}get description(){return i(this,y,"f")}set description(t){a(this,y,t,"f")}get type(){return i(this,b,"f")}set type(t){a(this,b,t,"f")}get labels(){return i(this,v,"f")}set labels(t){a(this,v,t,"f")}get datasets(){return i(this,j,"f")}set datasets(t){a(this,j,t,"f")}get options(){return i(this,w,"f")}set options(t){a(this,w,t,"f")}get plugins(){return i(this,k,"f")}set plugins(t){a(this,k,t,"f")}get height(){return i(this,T,"f")}set height(t){a(this,T,t,"f")}get width(){return i(this,C,"f")}set width(t){a(this,C,t,"f")}get hideDescription(){return i(this,$,"f")}set hideDescription(t){a(this,$,t,"f")}get hideCaptions(){return i(this,x,"f")}set hideCaptions(t){a(this,x,t,"f")}get hideHeader(){return i(this,D,"f")}set hideHeader(t){a(this,D,t,"f")}get hideControls(){return i(this,O,"f")}set hideControls(t){a(this,O,t,"f")}get hideTableControl(){return i(this,L,"f")}set hideTableControl(t){a(this,L,t,"f")}get hideFullscreenControl(){return i(this,M,"f")}set hideFullscreenControl(t){a(this,M,t,"f")}get hideDownloadControl(){return i(this,W,"f")}set hideDownloadControl(t){a(this,W,t,"f")}get noBorder(){return i(this,A,"f")}set noBorder(t){a(this,A,t,"f")}get customLabels(){return i(this,H,"f")}set customLabels(t){a(this,H,t,"f")}get fullscreen(){return i(this,S,"f")}set fullscreen(t){a(this,S,t,"f")}get useHtmlLegend(){return i(this,B,"f")}set useHtmlLegend(t){a(this,B,t,"f")}get htmlLegendMaxHeight(){return i(this,E,"f")}set htmlLegendMaxHeight(t){a(this,E,t,"f")}get htmlLegendOptions(){return i(this,I,"f")}set htmlLegendOptions(t){a(this,I,t,"f")}get container(){return i(this,P,"f")}set container(t){a(this,P,t,"f")}get canvas(){return i(this,ht,"f")}set canvas(t){a(this,ht,t,"f")}get ccDiv(){return i(this,lt,"f")}set ccDiv(t){a(this,lt,t,"f")}get chart(){return i(this,dt,"f")}set chart(t){a(this,dt,t,"f")}get tableView(){return i(this,mt,"f")}set tableView(t){a(this,mt,t,"f")}get tableDisabled(){return i(this,pt,"f")}set tableDisabled(t){a(this,pt,t,"f")}get mergedOptions(){return i(this,gt,"f")}set mergedOptions(t){a(this,gt,t,"f")}get mergedDatasets(){return i(this,ut,"f")}set mergedDatasets(t){a(this,ut,t,"f")}get _widget(){return i(this,ft,"f")}set _widget(t){a(this,ft,t,"f")}render(){var t,e,s,i,a,o,n,c,h;const l={container:!0,fullscreen:this.fullscreen,"no-border":this.noBorder||this._widget,widget:this._widget};return r`
1
+ import{__setFunctionName as t,__esDecorate as e,__runInitializers as s,__classPrivateFieldGet as i,__classPrivateFieldSet as a}from"tslib";import{LitElement as o,unsafeCSS as n,html as r}from"lit";import{customElement as l,property as c,state as h,query as d}from"lit/decorators.js";import{classMap as m}from"lit/directives/class-map.js";import{deepmerge as p,deepmergeCustom as u}from"deepmerge-ts";import g from"chart.js/auto";import"chartjs-adapter-date-fns";import{ChoroplethController as v,BubbleMapController as f,GeoFeature as y,ColorScale as b,SizeScale as j,ProjectionScale as w}from"chartjs-chart-geo";import{TreemapController as k,TreemapElement as T}from"chartjs-chart-treemap";import{MatrixController as $,MatrixElement as C}from"chartjs-chart-matrix";import{BoxPlotController as x,BoxAndWiskers as D,ViolinController as O,Violin as L}from"@sgratzl/chartjs-chart-boxplot";import{DendrogramController as M,TreeController as H,GraphController as W,ForceDirectedGraphController as S,EdgeLine as A}from"chartjs-chart-graph";import{SankeyController as B,Flow as E}from"chartjs-chart-sankey";import _ from"../../common/plugins/canvasBackground.js";import V from"../../common/plugins/doughnutLabel.js";import F from"../../common/plugins/meterGaugeNeedle.js";import N from"../../common/plugins/gradientLegend.js";import{renderHTMLLegend as R}from"../../common/legend/htmlRenderer.js";import{htmlLegendPlugin as z}from"../../common/plugins/htmlLegendPlugin.js";import J from"chartjs-plugin-a11y-legend";import I from"chartjs-plugin-datalabels";import P from"chartjs-plugin-annotation";import{debounce as q,convertTreeDataToCSV as G,convertChartDataToCSV as U}from"../../common/helpers/helpers.js";import{renderBoxplotViolinTable as K}from"../../common/helpers/boxplotViolinTableRenderer.js";import X from"./chart.scss.js";import Y from"../../common/config/globalOptions.js";import Q from"../../common/config/globalOptionsNonRadial.js";import Z from"../../common/config/globalOptionsRadial.js";import tt from'./../../external/@kyndryl-design-system/shidoka-icons/svg/monochrome/16/analytics.svg.js';import et from'./../../external/@kyndryl-design-system/shidoka-icons/svg/monochrome/16/table-view.svg.js';import st from'./../../external/@kyndryl-design-system/shidoka-icons/svg/monochrome/16/download.svg.js';import it from'./../../external/@kyndryl-design-system/shidoka-icons/svg/monochrome/16/expand.svg.js';import at from'./../../external/@kyndryl-design-system/shidoka-icons/svg/monochrome/16/shrink.svg.js';import{unsafeSVG as ot}from"lit/directives/unsafe-svg.js";import{getTokenThemeVal as nt}from"@kyndryl-design-system/shidoka-foundation/common/helpers/color";import{renderGraphTreeTable as rt}from"../../common/helpers/graphTreeTableRenderer.js";function lt(t){switch(t){case"../../common/config/chartTypes/bar.js":return import("../../common/config/chartTypes/bar.js");case"../../common/config/chartTypes/boxplot.js":return import("../../common/config/chartTypes/boxplot.js");case"../../common/config/chartTypes/bubble.js":return import("../../common/config/chartTypes/bubble.js");case"../../common/config/chartTypes/bubbleMap.js":return import("../../common/config/chartTypes/bubbleMap.js");case"../../common/config/chartTypes/choropleth.js":return import("../../common/config/chartTypes/choropleth.js");case"../../common/config/chartTypes/dendrogram.js":return import("../../common/config/chartTypes/dendrogram.js");case"../../common/config/chartTypes/doughnut.js":return import("../../common/config/chartTypes/doughnut.js");case"../../common/config/chartTypes/forceDirectedGraph.js":return import("../../common/config/chartTypes/forceDirectedGraph.js");case"../../common/config/chartTypes/graph.js":return import("../../common/config/chartTypes/graph.js");case"../../common/config/chartTypes/graphCommon.js":return import("../../common/config/chartTypes/graphCommon.js");case"../../common/config/chartTypes/line.js":return import("../../common/config/chartTypes/line.js");case"../../common/config/chartTypes/matrix.js":return import("../../common/config/chartTypes/matrix.js");case"../../common/config/chartTypes/meter.js":return import("../../common/config/chartTypes/meter.js");case"../../common/config/chartTypes/pie.js":return import("../../common/config/chartTypes/pie.js");case"../../common/config/chartTypes/polarArea.js":return import("../../common/config/chartTypes/polarArea.js");case"../../common/config/chartTypes/radar.js":return import("../../common/config/chartTypes/radar.js");case"../../common/config/chartTypes/sankey.js":return import("../../common/config/chartTypes/sankey.js");case"../../common/config/chartTypes/scatter.js":return import("../../common/config/chartTypes/scatter.js");case"../../common/config/chartTypes/tree.js":return import("../../common/config/chartTypes/tree.js");case"../../common/config/chartTypes/treemap.js":return import("../../common/config/chartTypes/treemap.js");case"../../common/config/chartTypes/violin.js":return import("../../common/config/chartTypes/violin.js");default:return new Promise((function(e,s){("function"==typeof queueMicrotask?queueMicrotask:setTimeout)(s.bind(null,new Error("Unknown variable dynamic import: "+t)))}))}}g.register(v,f,y,b,j,w,k,T,$,C,x,D,O,L,M,H,W,S,A,B,E,P,I);let ct=(()=>{var v,f,y,b,j,w,k,T,$,C,x,D,O,L,M,H,W,S,A,B,E,I,P,ct,ht,dt,mt,pt,ut,gt,vt;let ft,yt,bt,jt,wt,kt,Tt,$t,Ct,xt,Dt,Ot,Lt,Mt,Ht,Wt,St,At,Bt,Et,_t,Vt,Ft,Nt,Rt,zt,Jt,It,Pt,qt,Gt,Ut,Kt,Xt=[l("kd-chart")],Yt=[],Qt=o,Zt=[],te=[],ee=[],se=[],ie=[],ae=[],oe=[],ne=[],re=[],le=[],ce=[],he=[],de=[],me=[],pe=[],ue=[],ge=[],ve=[],fe=[],ye=[],be=[],je=[],we=[],ke=[],Te=[],$e=[],Ce=[],xe=[],De=[],Oe=[],Le=[],Me=[],He=[],We=[],Se=[],Ae=[],Be=[],Ee=[],_e=[],Ve=[],Fe=[],Ne=[],Re=[],ze=[],Je=[],Ie=[],Pe=[],qe=[],Ge=[],Ue=[],Ke=[],Xe=[],Ye=[],Qe=[],Ze=[],ts=[],es=[],ss=[],is=[],as=[],os=[],ns=[];return yt=class extends Qt{constructor(){super(...arguments),v.set(this,s(this,Zt,"")),f.set(this,(s(this,te),s(this,ee,""))),y.set(this,(s(this,se),s(this,ie,""))),b.set(this,(s(this,ae),s(this,oe,void 0))),j.set(this,(s(this,ne),s(this,re,void 0))),w.set(this,(s(this,le),s(this,ce,{}))),k.set(this,(s(this,he),s(this,de,[]))),T.set(this,(s(this,me),s(this,pe,null))),$.set(this,(s(this,ue),s(this,ge,null))),C.set(this,(s(this,ve),s(this,fe,!1))),x.set(this,(s(this,ye),s(this,be,!1))),D.set(this,(s(this,je),s(this,we,!1))),O.set(this,(s(this,ke),s(this,Te,!1))),L.set(this,(s(this,$e),s(this,Ce,!1))),M.set(this,(s(this,xe),s(this,De,!1))),H.set(this,(s(this,Oe),s(this,Le,!1))),W.set(this,(s(this,Me),s(this,He,!1))),S.set(this,(s(this,We),s(this,Se,{toggleView:"Toggle View Mode",toggleFullscreen:"Toggle Fullscreen",downloadMenu:"Download Menu",downloadCsv:"Download as CSV",downloadPng:"Download as PNG",downloadJpg:"Download as JPG"}))),A.set(this,(s(this,Ae),s(this,Be,!1))),B.set(this,(s(this,Ee),s(this,_e,!1))),E.set(this,(s(this,Ve),s(this,Fe,100))),I.set(this,(s(this,Ne),s(this,Re,{}))),P.set(this,(s(this,ze),s(this,Je,void 0))),ct.set(this,(s(this,Ie),s(this,Pe,void 0))),ht.set(this,(s(this,qe),s(this,Ge,void 0))),dt.set(this,(s(this,Ue),s(this,Ke,null))),mt.set(this,(s(this,Xe),s(this,Ye,!1))),pt.set(this,(s(this,Qe),s(this,Ze,!1))),ut.set(this,(s(this,ts),s(this,es,{}))),gt.set(this,(s(this,ss),s(this,is,{}))),vt.set(this,(s(this,as),s(this,os,!1))),this._resizeObserver=(s(this,ns),new ResizeObserver(q((()=>{this._resizeChart()})))),this._themeObserver=new MutationObserver((()=>{this.chart&&this.mergeOptions().then((()=>{this.initChart()}))}))}get chartTitle(){return i(this,v,"f")}set chartTitle(t){a(this,v,t,"f")}get description(){return i(this,f,"f")}set description(t){a(this,f,t,"f")}get type(){return i(this,y,"f")}set type(t){a(this,y,t,"f")}get labels(){return i(this,b,"f")}set labels(t){a(this,b,t,"f")}get datasets(){return i(this,j,"f")}set datasets(t){a(this,j,t,"f")}get options(){return i(this,w,"f")}set options(t){a(this,w,t,"f")}get plugins(){return i(this,k,"f")}set plugins(t){a(this,k,t,"f")}get height(){return i(this,T,"f")}set height(t){a(this,T,t,"f")}get width(){return i(this,$,"f")}set width(t){a(this,$,t,"f")}get hideDescription(){return i(this,C,"f")}set hideDescription(t){a(this,C,t,"f")}get hideCaptions(){return i(this,x,"f")}set hideCaptions(t){a(this,x,t,"f")}get hideHeader(){return i(this,D,"f")}set hideHeader(t){a(this,D,t,"f")}get hideControls(){return i(this,O,"f")}set hideControls(t){a(this,O,t,"f")}get hideTableControl(){return i(this,L,"f")}set hideTableControl(t){a(this,L,t,"f")}get hideFullscreenControl(){return i(this,M,"f")}set hideFullscreenControl(t){a(this,M,t,"f")}get hideDownloadControl(){return i(this,H,"f")}set hideDownloadControl(t){a(this,H,t,"f")}get noBorder(){return i(this,W,"f")}set noBorder(t){a(this,W,t,"f")}get customLabels(){return i(this,S,"f")}set customLabels(t){a(this,S,t,"f")}get fullscreen(){return i(this,A,"f")}set fullscreen(t){a(this,A,t,"f")}get useHtmlLegend(){return i(this,B,"f")}set useHtmlLegend(t){a(this,B,t,"f")}get htmlLegendMaxHeight(){return i(this,E,"f")}set htmlLegendMaxHeight(t){a(this,E,t,"f")}get htmlLegendOptions(){return i(this,I,"f")}set htmlLegendOptions(t){a(this,I,t,"f")}get container(){return i(this,P,"f")}set container(t){a(this,P,t,"f")}get canvas(){return i(this,ct,"f")}set canvas(t){a(this,ct,t,"f")}get ccDiv(){return i(this,ht,"f")}set ccDiv(t){a(this,ht,t,"f")}get chart(){return i(this,dt,"f")}set chart(t){a(this,dt,t,"f")}get tableView(){return i(this,mt,"f")}set tableView(t){a(this,mt,t,"f")}get tableDisabled(){return i(this,pt,"f")}set tableDisabled(t){a(this,pt,t,"f")}get mergedOptions(){return i(this,ut,"f")}set mergedOptions(t){a(this,ut,t,"f")}get mergedDatasets(){return i(this,gt,"f")}set mergedDatasets(t){a(this,gt,t,"f")}get _widget(){return i(this,vt,"f")}set _widget(t){a(this,vt,t,"f")}render(){var t,e,s,i,a,o,n,l,c,h,d,p,u,g,v,f,y,b,j,w,k,T,$,C;const x={container:!0,fullscreen:this.fullscreen,"no-border":this.noBorder||this._widget,widget:this._widget};return r`
2
2
  <div
3
- class=${m(l)}
3
+ class=${m(x)}
4
4
  @fullscreenchange=${()=>this.handleFullscreenChange()}
5
5
  >
6
6
  ${this.hideHeader&&this.hideControls?null:r`
@@ -139,7 +139,7 @@ import{__setFunctionName as t,__esDecorate as e,__runInitializers as s,__classPr
139
139
  ${(null===(i=null===(s=null===(e=null===(t=this.options)||void 0===t?void 0:t.scales)||void 0===e?void 0:e.y)||void 0===s?void 0:s.title)||void 0===i?void 0:i.text)||"Y Axis"}
140
140
  </th>
141
141
  <th>
142
- ${(null===(c=null===(n=null===(o=null===(a=this.options)||void 0===a?void 0:a.scales)||void 0===o?void 0:o.x)||void 0===n?void 0:n.title)||void 0===c?void 0:c.text)||"X Axis"}
142
+ ${(null===(l=null===(n=null===(o=null===(a=this.options)||void 0===a?void 0:a.scales)||void 0===o?void 0:o.x)||void 0===n?void 0:n.title)||void 0===l?void 0:l.text)||"X Axis"}
143
143
  </th>
144
144
  ${this.datasets.map((t=>r`<th>${t.label}</th>`))}
145
145
  </tr>
@@ -153,10 +153,33 @@ import{__setFunctionName as t,__esDecorate as e,__runInitializers as s,__classPr
153
153
  </tr>
154
154
  `}))}
155
155
  </tbody>
156
- `:["boxplot","violin"].includes(this.type)?K(this.labels,this.datasets,this.getTableAxisLabel()):"tree"===this.type?rt(this.datasets):r`
156
+ `:["boxplot","violin"].includes(this.type)?K(this.labels,this.datasets,this.getTableAxisLabel()):"tree"===this.type?rt(this.datasets):"sankey"===this.type?r`
157
157
  <thead>
158
158
  <tr>
159
- ${(null===(h=this.labels)||void 0===h?void 0:h.length)||"treemap"===this.type?r`<th>${this.getTableAxisLabel()}</th>`:null}
159
+ <th>
160
+ ${null!==(p=null===(d=null===(h=null===(c=this.options)||void 0===c?void 0:c.sankey)||void 0===h?void 0:h.dataTableHeaderLabels)||void 0===d?void 0:d.source)&&void 0!==p?p:"Source"}
161
+ </th>
162
+ <th>
163
+ ${null!==(f=null===(v=null===(g=null===(u=this.options)||void 0===u?void 0:u.sankey)||void 0===g?void 0:g.dataTableHeaderLabels)||void 0===v?void 0:v.target)&&void 0!==f?f:"Target"}
164
+ </th>
165
+ <th>
166
+ ${null!==(w=null===(j=null===(b=null===(y=this.options)||void 0===y?void 0:y.sankey)||void 0===b?void 0:b.dataTableHeaderLabels)||void 0===j?void 0:j.value)&&void 0!==w?w:"Weight"}
167
+ </th>
168
+ </tr>
169
+ </thead>
170
+ <tbody>
171
+ ${(null!==($=null===(T=null===(k=this.datasets)||void 0===k?void 0:k[0])||void 0===T?void 0:T.data)&&void 0!==$?$:[]).map((t=>{var e,s,i,a,o,n,l;const c=null!==(s=null!==(e=null==t?void 0:t.from)&&void 0!==e?e:null==t?void 0:t.source)&&void 0!==s?s:"",h=null!==(a=null!==(i=null==t?void 0:t.to)&&void 0!==i?i:null==t?void 0:t.target)&&void 0!==a?a:"",d=null!==(l=null!==(n=null!==(o=null==t?void 0:t.flow)&&void 0!==o?o:null==t?void 0:t.value)&&void 0!==n?n:null==t?void 0:t.weight)&&void 0!==l?l:"";return r`
172
+ <tr>
173
+ <td>${c}</td>
174
+ <td>${h}</td>
175
+ <td>${d}</td>
176
+ </tr>
177
+ `}))}
178
+ </tbody>
179
+ `:r`
180
+ <thead>
181
+ <tr>
182
+ ${(null===(C=this.labels)||void 0===C?void 0:C.length)||"treemap"===this.type?r`<th>${this.getTableAxisLabel()}</th>`:null}
160
183
  ${this.datasets.map((t=>r`<th>${t.label}</th>`))}
161
184
  </tr>
162
185
  </thead>
@@ -185,7 +208,7 @@ import{__setFunctionName as t,__esDecorate as e,__runInitializers as s,__classPr
185
208
  ${t[1].value}
186
209
  </td>
187
210
  </tr>
188
- `)}))})),e})):this.datasets[0].data.map(((t,e)=>{var s,i,a,o;const n=this.options.indexAxis||"x",c="x"===n?"y":"x";return r`
211
+ `)}))})),e})):this.datasets[0].data.map(((t,e)=>{var s,i,a,o;const n=this.options.indexAxis||"x",l="x"===n?"y":"x";return r`
189
212
  <tr>
190
213
  ${(null===(s=this.labels)||void 0===s?void 0:s.length)?r`
191
214
  ${"time"===(null===(o=null===(a=null===(i=this.options)||void 0===i?void 0:i.scales)||void 0===a?void 0:a[n])||void 0===o?void 0:o.type)?r`
@@ -196,30 +219,26 @@ import{__setFunctionName as t,__esDecorate as e,__runInitializers as s,__classPr
196
219
  <td>${this.labels[e]}</td>
197
220
  `}
198
221
  `:null}
199
- ${this.datasets.map((t=>{var s,i;if(e>=t.data.length)return r`<td></td>`;const a=t.data[e];return"bubbleMap"===this.type||"choropleth"===this.type?r`
200
- <td>${t.data[e].value}</td>
201
- `:"time"===(null===(i=null===(s=this.options)||void 0===s?void 0:s.scales[c])||void 0===i?void 0:i.type)?r`
222
+ ${this.datasets.map((t=>{var s,i,a;if(e>=t.data.length)return r`<td></td>`;const o=t.data[e];return"bubbleMap"===this.type||"choropleth"===this.type?r`<td>
223
+ ${o.value}
224
+ </td>`:"time"===(null===(a=null===(i=null===(s=this.options)||void 0===s?void 0:s.scales)||void 0===i?void 0:i[l])||void 0===a?void 0:a.type)?r`
202
225
  <td>
203
- ${new Date(a).toLocaleString()}
226
+ ${new Date(o).toLocaleString()}
204
227
  </td>
205
- `:Array.isArray(a)?r`
228
+ `:Array.isArray(o)?r`
206
229
  <td>
207
- ${a[0]}, ${a[1]}
230
+ ${o[0]}, ${o[1]}
208
231
  </td>
209
- `:["pie","doughnut","polarArea"].includes(this.type)?r` <td>${a}</td> `:"object"!=typeof a||Array.isArray(a)||null===a?r`
210
- <td>${t.data[e]}</td>
211
- `:r`
232
+ `:["pie","doughnut","polarArea"].includes(this.type)?r`<td>${o}</td>`:"object"==typeof o&&null!==o?r`
212
233
  <td>
213
- ${Object.keys(a).map((t=>{var e,s,i,o,n,c,h;const l=(null===(o=null===(i=null===(s=null===(e=this.options)||void 0===e?void 0:e.scales)||void 0===s?void 0:s[t])||void 0===i?void 0:i.title)||void 0===o?void 0:o.text)||t,d="time"===(null===(h=null===(c=null===(n=this.options)||void 0===n?void 0:n.scales)||void 0===c?void 0:c[t])||void 0===h?void 0:h.type)&&a[t]?new Date(a[t]).toLocaleString():a[t];return r`
234
+ ${Object.keys(o).map((t=>{var e,s,i,a,n,l,c;const h=(null===(a=null===(i=null===(s=null===(e=this.options)||void 0===e?void 0:e.scales)||void 0===s?void 0:s[t])||void 0===i?void 0:i.title)||void 0===a?void 0:a.text)||t,d="time"===(null===(c=null===(l=null===(n=this.options)||void 0===n?void 0:n.scales)||void 0===l?void 0:l[t])||void 0===c?void 0:c.type)&&o[t]?new Date(o[t]).toLocaleString():o[t];return r`
214
235
  <div>
215
- <strong>
216
- ${l}:
217
- </strong>
236
+ <strong>${h}:</strong>
218
237
  ${d}
219
238
  </div>
220
239
  `}))}
221
240
  </td>
222
- `}))}
241
+ `:r`<td>${o}</td>`}))}
223
242
  </tr>
224
243
  `}))}
225
244
  </tbody>
@@ -228,5 +247,5 @@ import{__setFunctionName as t,__esDecorate as e,__runInitializers as s,__classPr
228
247
  </div>
229
248
  `:null}
230
249
  </div>
231
- `}_resizeChart(){this.chart&&this.chart.resize()}connectedCallback(){super.connectedCallback();try{const t=document.querySelector('meta[name="color-scheme"]');t instanceof Node&&this._themeObserver.observe(t,{attributes:!0})}catch(t){console.warn("Failed to set up theme observer:",t)}}disconnectedCallback(){this._resizeObserver.disconnect(),this._themeObserver.disconnect(),super.disconnectedCallback()}firstUpdated(){var t;const e=null===(t=this.shadowRoot)||void 0===t?void 0:t.querySelector(".canvas-container");this._resizeObserver.observe(e)}generateScrollableLegend(){if(!this.chart||!this.useHtmlLegend)return;const t=this.shadowRoot.querySelector(".html-legend-container");t.innerHTML="";const e={maxHeight:this.htmlLegendMaxHeight,...this.htmlLegendOptions,onItemClick:t=>{this.htmlLegendOptions.onItemClick&&this.htmlLegendOptions.onItemClick(t),this.dispatchEvent(new CustomEvent("on-click",{detail:t,bubbles:!0,composed:!0}))}};R(this.chart,t,e)}updated(t){var e,s;this.chart&&(t.has("labels")||t.has("datasets")||t.has("options"))&&this.mergeOptions().then((()=>{this.chart.data.labels=this.labels,this.chart.options=this.mergedOptions,this.chart.data.datasets.forEach(((t,e)=>{this.mergedDatasets.find((e=>e.label===t.label))||this.chart.data.datasets.splice(e,1)})),this.mergedDatasets.forEach((t=>{const e=this.chart.data.datasets.find((e=>e.label===t.label));e?Object.keys(t).forEach((s=>{e[s]=t[s]})):this.chart.data.datasets.push(t)})),this.chart.update(),this.generateScrollableLegend()}));let i=!1;if(this.datasets&&this.datasets.length)for(const t of this.datasets)if(i=(null===(e=t.data)||void 0===e?void 0:e.length)>0||(null===(s=t.tree)||void 0===s?void 0:s.length)>0||t.tree&&Object.keys(t.tree).length>0,!i){console.error("Missing data for one or more chart datasets.");break}!this.chart&&this.type&&t.has("datasets")&&i&&(this.mergeOptions().then((()=>{this.initChart()})),this.checkType()),this.chart&&(t.has("type")||t.has("plugins")||t.has("width")||t.has("height")||t.has("useHtmlLegend"))&&(this.mergeOptions().then((()=>{this.initChart()})),this.checkType()),this.chart&&t.has("noBorder")&&this.chart.resize()}initChart(){const t="meter"===this.type?F:V,e=[_,t,N,...this.plugins,J];this.useHtmlLegend&&e.push(z),this.chart&&this.chart.destroy(),this.chart=new u(this.canvas,{type:"meter"===this.type?"doughnut":this.type,data:{labels:this.labels,datasets:this.mergedDatasets},options:this.mergedOptions,plugins:e}),this.generateScrollableLegend()}async mergeOptions(){const t=[];this.datasets.forEach((e=>{e.type&&t.push(function(t){switch(t){case"../../common/config/chartTypes/bar.js":return import("../../common/config/chartTypes/bar.js");case"../../common/config/chartTypes/boxplot.js":return import("../../common/config/chartTypes/boxplot.js");case"../../common/config/chartTypes/bubble.js":return import("../../common/config/chartTypes/bubble.js");case"../../common/config/chartTypes/bubbleMap.js":return import("../../common/config/chartTypes/bubbleMap.js");case"../../common/config/chartTypes/choropleth.js":return import("../../common/config/chartTypes/choropleth.js");case"../../common/config/chartTypes/dendrogram.js":return import("../../common/config/chartTypes/dendrogram.js");case"../../common/config/chartTypes/doughnut.js":return import("../../common/config/chartTypes/doughnut.js");case"../../common/config/chartTypes/forceDirectedGraph.js":return import("../../common/config/chartTypes/forceDirectedGraph.js");case"../../common/config/chartTypes/graph.js":return import("../../common/config/chartTypes/graph.js");case"../../common/config/chartTypes/graphCommon.js":return import("../../common/config/chartTypes/graphCommon.js");case"../../common/config/chartTypes/line.js":return import("../../common/config/chartTypes/line.js");case"../../common/config/chartTypes/matrix.js":return import("../../common/config/chartTypes/matrix.js");case"../../common/config/chartTypes/meter.js":return import("../../common/config/chartTypes/meter.js");case"../../common/config/chartTypes/pie.js":return import("../../common/config/chartTypes/pie.js");case"../../common/config/chartTypes/polarArea.js":return import("../../common/config/chartTypes/polarArea.js");case"../../common/config/chartTypes/radar.js":return import("../../common/config/chartTypes/radar.js");case"../../common/config/chartTypes/sankey.js":return import("../../common/config/chartTypes/sankey.js");case"../../common/config/chartTypes/scatter.js":return import("../../common/config/chartTypes/scatter.js");case"../../common/config/chartTypes/tree.js":return import("../../common/config/chartTypes/tree.js");case"../../common/config/chartTypes/treemap.js":return import("../../common/config/chartTypes/treemap.js");case"../../common/config/chartTypes/violin.js":return import("../../common/config/chartTypes/violin.js");default:return new Promise((function(e,s){("function"==typeof queueMicrotask?queueMicrotask:setTimeout)(s.bind(null,new Error("Unknown variable dynamic import: "+t)))}))}}(`../../common/config/chartTypes/${e.type}.js`))}));const e=await Promise.all([ct(`../../common/config/chartTypes/${this.type}.js`),...t]);let s=Y(this);s.plugins=s.plugins||{},this.useHtmlLegend?(s.plugins.legend={display:!1},s.plugins.htmlLegend=s.plugins.htmlLegend||{}):(s.plugins.legend=s.plugins.legend||{},s.plugins.legend.display=!0),["pie","doughnut","radar","polarArea","meter"].includes(this.type)?s=p(s,Z(this)):["choropleth","treemap","bubbleMap","dendrogram","tree"].includes(this.type)||(s=p(s,Q(this)));const i=JSON.parse(JSON.stringify(this.datasets));e.forEach((t=>{s=p(s,t.options(this)),i.forEach(((e,s)=>{(!e.type&&t.type===this.type||e.type===t.type)&&(i[s]=p(e,t.datasetOptions(this,s)))}))})),this.options&&(s=p(s,this.options)),this.mergedOptions=s,i.forEach(((t,e)=>{const s=g({mergeArrays:!1});i[e]=s(t,this.datasets[e])})),this.mergedDatasets=i}getTableAxisLabel(){var t,e,s,i,a,o,n,r,c,h,l;let d="";return d="y"===(null===(t=this.options)||void 0===t?void 0:t.indexAxis)?(null===(a=null===(i=null===(s=null===(e=this.options)||void 0===e?void 0:e.scales)||void 0===s?void 0:s.y)||void 0===i?void 0:i.title)||void 0===a?void 0:a.text)?null===(o=this.options)||void 0===o?void 0:o.scales.y.title.text:"Y Axis":(null===(h=null===(c=null===(r=null===(n=this.options)||void 0===n?void 0:n.scales)||void 0===r?void 0:r.x)||void 0===c?void 0:c.title)||void 0===h?void 0:h.text)?null===(l=this.options)||void 0===l?void 0:l.scales.x.title.text:"X Axis",d}handleViewToggle(){this.tableView=!this.tableView}checkType(){this.tableDisabled=["dendrogram","forceDirectedGraph","tree"].includes(this.type)}handleDownloadImage(t,e){t.preventDefault();const s=e?"image/jpeg":"image/png",i=e?"jpg":"png";if(this.useHtmlLegend&&this.chart){if(["doughnut","pie"].includes(this.type))return void this.exportSimpleCanvasOnly(s,i);const t={options:JSON.parse(JSON.stringify(this.chart.options)),data:JSON.parse(JSON.stringify(this.chart.data)),type:this.chart.config.type},e=this.chart.data.datasets.map(((t,e)=>this.chart.getDatasetMeta(e).hidden));try{this.chart.options.plugins||(this.chart.options.plugins={}),this.chart.options.plugins.legend||(this.chart.options.plugins.legend={}),this.chart.options.plugins.legend.display=!0,this.chart.options.plugins.legend.position="bottom",this.chart.options.plugins.legend.labels={boxWidth:12,boxHeight:12,padding:10,font:{size:12}},this.chart.options.layout?this.chart.options.layout.padding?"number"==typeof this.chart.options.layout.padding?this.chart.options.layout.padding={top:this.chart.options.layout.padding,right:this.chart.options.layout.padding,bottom:Math.max(this.chart.options.layout.padding,40),left:this.chart.options.layout.padding}:this.chart.options.layout.padding&&(this.chart.options.layout.padding.bottom=Math.max(this.chart.options.layout.padding.bottom||0,40)):this.chart.options.layout.padding={bottom:40}:this.chart.options.layout={padding:{bottom:40}},this.chart.update("none");const a=this.canvas.getContext("2d");if(!a)throw new Error("Could not get canvas context");const o=nt("--kd-color-background-page-default");a.save(),a.globalCompositeOperation="destination-over",a.fillStyle=o,a.fillRect(0,0,this.canvas.width,this.canvas.height);const n=this.chart.toBase64Image(s,1),r=document.createElement("a");r.href=n,r.download=this.chartTitle+"."+i,document.body.appendChild(r),r.click(),document.body.removeChild(r),a.restore(),this.chart.options=t.options,e.forEach(((t,e)=>{this.chart.getDatasetMeta(e).hidden=t})),this.chart.update()}catch(t){console.error("Error exporting chart with legend:",t),this.exportCanvasOnly(s,i)}}else this.exportCanvasOnly(s,i)}exportCanvasOnly(t,e){const s=this.canvas.getContext("2d");if(!s||!this.chart)return;const i=nt("--kd-color-background-page-default");s.save(),s.globalCompositeOperation="destination-over",s.fillStyle=i,s.fillRect(0,0,this.canvas.width,this.canvas.height);const a=document.createElement("a");a.href=this.chart.toBase64Image(t,1),a.download=this.chartTitle+"."+e,document.body.appendChild(a),a.click(),document.body.removeChild(a),s.restore()}exportSimpleCanvasOnly(t,e){const s=this.canvas.getContext("2d");if(s&&this.chart)try{const i=JSON.parse(JSON.stringify(this.chart.options));s.save();const a=nt("--kd-color-background-page-default");s.globalCompositeOperation="destination-over",s.fillStyle=a,s.fillRect(0,0,this.canvas.width,this.canvas.height),this.chart.options={...this.chart.options,plugins:{legend:{display:!0,position:"bottom",labels:{boxWidth:12,boxHeight:12,padding:10,font:{size:12}}},datalabels:{display:!1,formatter:null},tooltip:{enabled:!1},doughnutLabel:{enabled:!1}},layout:{padding:{bottom:40}}},this.chart.update("none");const o=this.chart.toBase64Image(t,1),n=document.createElement("a");n.href=o,n.download=this.chartTitle+"."+e,document.body.appendChild(n),n.click(),document.body.removeChild(n),s.restore(),this.chart.options=i,this.chart.update()}catch(s){console.error("Error in exportSimpleCanvasOnly:",s),this.exportCanvasOnly(t,e)}}handleDownloadCsv(t){t.preventDefault();let e="";if("tree"===this.type||"dendrogram"===this.type)e+=G(this.datasets);else for(let t=0;t<this.chart.data.datasets.length;t++)e+=U({data:this.chart.data.datasets[t],labels:this.labels});if(null==e||""===e)return;const s=this.chartTitle+".csv";e.match(/^data:text\/csv/i)||(e="data:text/csv;charset=utf-8,"+e);const i=encodeURI(e),a=document.createElement("a");a.setAttribute("href",i),a.setAttribute("download",s),document.body.appendChild(a),a.click(),document.body.removeChild(a)}handleFullscreen(){var t;(null===(t=this.shadowRoot)||void 0===t?void 0:t.fullscreenElement)?document.exitFullscreen():this.container.requestFullscreen()}handleFullscreenChange(){var t;this.fullscreen=null!==(null===(t=this.shadowRoot)||void 0===t?void 0:t.fullscreenElement)}},f=new WeakMap,y=new WeakMap,b=new WeakMap,v=new WeakMap,j=new WeakMap,w=new WeakMap,k=new WeakMap,T=new WeakMap,C=new WeakMap,$=new WeakMap,x=new WeakMap,D=new WeakMap,O=new WeakMap,L=new WeakMap,M=new WeakMap,W=new WeakMap,A=new WeakMap,H=new WeakMap,S=new WeakMap,B=new WeakMap,E=new WeakMap,I=new WeakMap,P=new WeakMap,ht=new WeakMap,lt=new WeakMap,dt=new WeakMap,mt=new WeakMap,pt=new WeakMap,gt=new WeakMap,ut=new WeakMap,ft=new WeakMap,t(bt,"KDChart"),(()=>{var t;const s="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(t=Qt[Symbol.metadata])&&void 0!==t?t:null):void 0;vt=[h({type:String})],jt=[h({type:String})],wt=[h({type:String})],kt=[h({type:Array})],Tt=[h({type:Array})],Ct=[h({type:Object})],$t=[h({type:Array})],xt=[h({type:Number})],Dt=[h({type:Number})],Ot=[h({type:Boolean})],Lt=[h({type:Boolean})],Mt=[h({type:Boolean})],Wt=[h({type:Boolean})],At=[h({type:Boolean})],Ht=[h({type:Boolean})],St=[h({type:Boolean})],Bt=[h({type:Boolean})],Et=[h({type:Object})],_t=[l()],Vt=[h({type:Boolean})],Ft=[h({type:Number,reflect:!0})],Nt=[h({type:Object})],Rt=[d(".container")],zt=[d("canvas")],Jt=[d(".closed-caption")],It=[l()],Pt=[l()],qt=[l()],Gt=[l()],Ut=[l()],Kt=[l()],e(bt,null,vt,{kind:"accessor",name:"chartTitle",static:!1,private:!1,access:{has:t=>"chartTitle"in t,get:t=>t.chartTitle,set:(t,e)=>{t.chartTitle=e}},metadata:s},Zt,te),e(bt,null,jt,{kind:"accessor",name:"description",static:!1,private:!1,access:{has:t=>"description"in t,get:t=>t.description,set:(t,e)=>{t.description=e}},metadata:s},ee,se),e(bt,null,wt,{kind:"accessor",name:"type",static:!1,private:!1,access:{has:t=>"type"in t,get:t=>t.type,set:(t,e)=>{t.type=e}},metadata:s},ie,ae),e(bt,null,kt,{kind:"accessor",name:"labels",static:!1,private:!1,access:{has:t=>"labels"in t,get:t=>t.labels,set:(t,e)=>{t.labels=e}},metadata:s},oe,ne),e(bt,null,Tt,{kind:"accessor",name:"datasets",static:!1,private:!1,access:{has:t=>"datasets"in t,get:t=>t.datasets,set:(t,e)=>{t.datasets=e}},metadata:s},re,ce),e(bt,null,Ct,{kind:"accessor",name:"options",static:!1,private:!1,access:{has:t=>"options"in t,get:t=>t.options,set:(t,e)=>{t.options=e}},metadata:s},he,le),e(bt,null,$t,{kind:"accessor",name:"plugins",static:!1,private:!1,access:{has:t=>"plugins"in t,get:t=>t.plugins,set:(t,e)=>{t.plugins=e}},metadata:s},de,me),e(bt,null,xt,{kind:"accessor",name:"height",static:!1,private:!1,access:{has:t=>"height"in t,get:t=>t.height,set:(t,e)=>{t.height=e}},metadata:s},pe,ge),e(bt,null,Dt,{kind:"accessor",name:"width",static:!1,private:!1,access:{has:t=>"width"in t,get:t=>t.width,set:(t,e)=>{t.width=e}},metadata:s},ue,fe),e(bt,null,Ot,{kind:"accessor",name:"hideDescription",static:!1,private:!1,access:{has:t=>"hideDescription"in t,get:t=>t.hideDescription,set:(t,e)=>{t.hideDescription=e}},metadata:s},ye,be),e(bt,null,Lt,{kind:"accessor",name:"hideCaptions",static:!1,private:!1,access:{has:t=>"hideCaptions"in t,get:t=>t.hideCaptions,set:(t,e)=>{t.hideCaptions=e}},metadata:s},ve,je),e(bt,null,Mt,{kind:"accessor",name:"hideHeader",static:!1,private:!1,access:{has:t=>"hideHeader"in t,get:t=>t.hideHeader,set:(t,e)=>{t.hideHeader=e}},metadata:s},we,ke),e(bt,null,Wt,{kind:"accessor",name:"hideControls",static:!1,private:!1,access:{has:t=>"hideControls"in t,get:t=>t.hideControls,set:(t,e)=>{t.hideControls=e}},metadata:s},Te,Ce),e(bt,null,At,{kind:"accessor",name:"hideTableControl",static:!1,private:!1,access:{has:t=>"hideTableControl"in t,get:t=>t.hideTableControl,set:(t,e)=>{t.hideTableControl=e}},metadata:s},$e,xe),e(bt,null,Ht,{kind:"accessor",name:"hideFullscreenControl",static:!1,private:!1,access:{has:t=>"hideFullscreenControl"in t,get:t=>t.hideFullscreenControl,set:(t,e)=>{t.hideFullscreenControl=e}},metadata:s},De,Oe),e(bt,null,St,{kind:"accessor",name:"hideDownloadControl",static:!1,private:!1,access:{has:t=>"hideDownloadControl"in t,get:t=>t.hideDownloadControl,set:(t,e)=>{t.hideDownloadControl=e}},metadata:s},Le,Me),e(bt,null,Bt,{kind:"accessor",name:"noBorder",static:!1,private:!1,access:{has:t=>"noBorder"in t,get:t=>t.noBorder,set:(t,e)=>{t.noBorder=e}},metadata:s},We,Ae),e(bt,null,Et,{kind:"accessor",name:"customLabels",static:!1,private:!1,access:{has:t=>"customLabels"in t,get:t=>t.customLabels,set:(t,e)=>{t.customLabels=e}},metadata:s},He,Se),e(bt,null,_t,{kind:"accessor",name:"fullscreen",static:!1,private:!1,access:{has:t=>"fullscreen"in t,get:t=>t.fullscreen,set:(t,e)=>{t.fullscreen=e}},metadata:s},Be,Ee),e(bt,null,Vt,{kind:"accessor",name:"useHtmlLegend",static:!1,private:!1,access:{has:t=>"useHtmlLegend"in t,get:t=>t.useHtmlLegend,set:(t,e)=>{t.useHtmlLegend=e}},metadata:s},_e,Ve),e(bt,null,Ft,{kind:"accessor",name:"htmlLegendMaxHeight",static:!1,private:!1,access:{has:t=>"htmlLegendMaxHeight"in t,get:t=>t.htmlLegendMaxHeight,set:(t,e)=>{t.htmlLegendMaxHeight=e}},metadata:s},Fe,Ne),e(bt,null,Nt,{kind:"accessor",name:"htmlLegendOptions",static:!1,private:!1,access:{has:t=>"htmlLegendOptions"in t,get:t=>t.htmlLegendOptions,set:(t,e)=>{t.htmlLegendOptions=e}},metadata:s},Re,ze),e(bt,null,Rt,{kind:"accessor",name:"container",static:!1,private:!1,access:{has:t=>"container"in t,get:t=>t.container,set:(t,e)=>{t.container=e}},metadata:s},Je,Ie),e(bt,null,zt,{kind:"accessor",name:"canvas",static:!1,private:!1,access:{has:t=>"canvas"in t,get:t=>t.canvas,set:(t,e)=>{t.canvas=e}},metadata:s},Pe,qe),e(bt,null,Jt,{kind:"accessor",name:"ccDiv",static:!1,private:!1,access:{has:t=>"ccDiv"in t,get:t=>t.ccDiv,set:(t,e)=>{t.ccDiv=e}},metadata:s},Ge,Ue),e(bt,null,It,{kind:"accessor",name:"chart",static:!1,private:!1,access:{has:t=>"chart"in t,get:t=>t.chart,set:(t,e)=>{t.chart=e}},metadata:s},Ke,Xe),e(bt,null,Pt,{kind:"accessor",name:"tableView",static:!1,private:!1,access:{has:t=>"tableView"in t,get:t=>t.tableView,set:(t,e)=>{t.tableView=e}},metadata:s},Ye,Qe),e(bt,null,qt,{kind:"accessor",name:"tableDisabled",static:!1,private:!1,access:{has:t=>"tableDisabled"in t,get:t=>t.tableDisabled,set:(t,e)=>{t.tableDisabled=e}},metadata:s},Ze,ts),e(bt,null,Gt,{kind:"accessor",name:"mergedOptions",static:!1,private:!1,access:{has:t=>"mergedOptions"in t,get:t=>t.mergedOptions,set:(t,e)=>{t.mergedOptions=e}},metadata:s},es,ss),e(bt,null,Ut,{kind:"accessor",name:"mergedDatasets",static:!1,private:!1,access:{has:t=>"mergedDatasets"in t,get:t=>t.mergedDatasets,set:(t,e)=>{t.mergedDatasets=e}},metadata:s},is,as),e(bt,null,Kt,{kind:"accessor",name:"_widget",static:!1,private:!1,access:{has:t=>"_widget"in t,get:t=>t._widget,set:(t,e)=>{t._widget=e}},metadata:s},os,ns),e(null,yt={value:bt},Xt,{kind:"class",name:bt.name,metadata:s},null,Yt),bt=yt.value,s&&Object.defineProperty(bt,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s})})(),bt.styles=n(X),s(bt,Yt),bt})();export{ht as KDChart};
250
+ `}_resizeChart(){this.chart&&this.chart.resize()}connectedCallback(){super.connectedCallback();try{const t=document.querySelector('meta[name="color-scheme"]');t instanceof Node&&this._themeObserver.observe(t,{attributes:!0})}catch(t){console.warn("Failed to set up theme observer:",t)}}disconnectedCallback(){this._resizeObserver.disconnect(),this._themeObserver.disconnect(),super.disconnectedCallback()}firstUpdated(){var t;const e=null===(t=this.shadowRoot)||void 0===t?void 0:t.querySelector(".canvas-container");this._resizeObserver.observe(e)}generateScrollableLegend(){if(!this.chart||!this.useHtmlLegend)return;const t=this.shadowRoot.querySelector(".html-legend-container");t.innerHTML="";const e={maxHeight:this.htmlLegendMaxHeight,...this.htmlLegendOptions,onItemClick:t=>{this.htmlLegendOptions.onItemClick&&this.htmlLegendOptions.onItemClick(t),this.dispatchEvent(new CustomEvent("on-click",{detail:t,bubbles:!0,composed:!0}))}};R(this.chart,t,e)}updated(t){var e,s;this.chart&&(t.has("labels")||t.has("datasets")||t.has("options"))&&this.mergeOptions().then((()=>{this.chart.data.labels=this.labels,this.chart.options=this.mergedOptions,this.chart.data.datasets.forEach(((t,e)=>{this.mergedDatasets.find((e=>e.label===t.label))||this.chart.data.datasets.splice(e,1)})),this.mergedDatasets.forEach((t=>{const e=this.chart.data.datasets.find((e=>e.label===t.label));e?Object.keys(t).forEach((s=>{e[s]=t[s]})):this.chart.data.datasets.push(t)})),this.chart.update(),this.generateScrollableLegend()}));let i=!1;if(this.datasets&&this.datasets.length)for(const t of this.datasets)if(i=(null===(e=t.data)||void 0===e?void 0:e.length)>0||(null===(s=t.tree)||void 0===s?void 0:s.length)>0||t.tree&&Object.keys(t.tree).length>0,!i){console.error("Missing data for one or more chart datasets.");break}!this.chart&&this.type&&t.has("datasets")&&i&&(this.mergeOptions().then((()=>{this.initChart()})),this.checkType()),this.chart&&(t.has("type")||t.has("plugins")||t.has("width")||t.has("height")||t.has("useHtmlLegend"))&&(this.mergeOptions().then((()=>{this.initChart()})),this.checkType()),this.chart&&t.has("noBorder")&&this.chart.resize()}initChart(){const t="meter"===this.type?F:V,e=[_,t,N,...this.plugins,J];this.useHtmlLegend&&e.push(z),this.chart&&this.chart.destroy(),this.chart=new g(this.canvas,{type:"meter"===this.type?"doughnut":this.type,data:{labels:this.labels,datasets:this.mergedDatasets},options:this.mergedOptions,plugins:e}),this.generateScrollableLegend()}async mergeOptions(){const t=[];this.datasets.forEach((e=>{e.type&&t.push(function(t){switch(t){case"../../common/config/chartTypes/bar.js":return import("../../common/config/chartTypes/bar.js");case"../../common/config/chartTypes/boxplot.js":return import("../../common/config/chartTypes/boxplot.js");case"../../common/config/chartTypes/bubble.js":return import("../../common/config/chartTypes/bubble.js");case"../../common/config/chartTypes/bubbleMap.js":return import("../../common/config/chartTypes/bubbleMap.js");case"../../common/config/chartTypes/choropleth.js":return import("../../common/config/chartTypes/choropleth.js");case"../../common/config/chartTypes/dendrogram.js":return import("../../common/config/chartTypes/dendrogram.js");case"../../common/config/chartTypes/doughnut.js":return import("../../common/config/chartTypes/doughnut.js");case"../../common/config/chartTypes/forceDirectedGraph.js":return import("../../common/config/chartTypes/forceDirectedGraph.js");case"../../common/config/chartTypes/graph.js":return import("../../common/config/chartTypes/graph.js");case"../../common/config/chartTypes/graphCommon.js":return import("../../common/config/chartTypes/graphCommon.js");case"../../common/config/chartTypes/line.js":return import("../../common/config/chartTypes/line.js");case"../../common/config/chartTypes/matrix.js":return import("../../common/config/chartTypes/matrix.js");case"../../common/config/chartTypes/meter.js":return import("../../common/config/chartTypes/meter.js");case"../../common/config/chartTypes/pie.js":return import("../../common/config/chartTypes/pie.js");case"../../common/config/chartTypes/polarArea.js":return import("../../common/config/chartTypes/polarArea.js");case"../../common/config/chartTypes/radar.js":return import("../../common/config/chartTypes/radar.js");case"../../common/config/chartTypes/sankey.js":return import("../../common/config/chartTypes/sankey.js");case"../../common/config/chartTypes/scatter.js":return import("../../common/config/chartTypes/scatter.js");case"../../common/config/chartTypes/tree.js":return import("../../common/config/chartTypes/tree.js");case"../../common/config/chartTypes/treemap.js":return import("../../common/config/chartTypes/treemap.js");case"../../common/config/chartTypes/violin.js":return import("../../common/config/chartTypes/violin.js");default:return new Promise((function(e,s){("function"==typeof queueMicrotask?queueMicrotask:setTimeout)(s.bind(null,new Error("Unknown variable dynamic import: "+t)))}))}}(`../../common/config/chartTypes/${e.type}.js`))}));const e=await Promise.all([lt(`../../common/config/chartTypes/${this.type}.js`),...t]);let s=Y(this);s.plugins=s.plugins||{},this.useHtmlLegend?(s.plugins.legend={display:!1},s.plugins.htmlLegend=s.plugins.htmlLegend||{}):(s.plugins.legend=s.plugins.legend||{},s.plugins.legend.display=!0),["pie","doughnut","radar","polarArea","meter"].includes(this.type)?s=p(s,Z(this)):["choropleth","treemap","bubbleMap","dendrogram","tree"].includes(this.type)||(s=p(s,Q(this)));const i=JSON.parse(JSON.stringify(this.datasets));e.forEach((t=>{s=p(s,t.options(this)),i.forEach(((e,s)=>{(!e.type&&t.type===this.type||e.type===t.type)&&(i[s]=p(e,t.datasetOptions(this,s)))}))})),this.options&&(s=p(s,this.options)),this.mergedOptions=s,i.forEach(((t,e)=>{const s=u({mergeArrays:!1});i[e]=s(t,this.datasets[e])})),this.mergedDatasets=i}getTableAxisLabel(){var t,e,s,i,a,o,n,r,l,c,h;let d="";return d="y"===(null===(t=this.options)||void 0===t?void 0:t.indexAxis)?(null===(a=null===(i=null===(s=null===(e=this.options)||void 0===e?void 0:e.scales)||void 0===s?void 0:s.y)||void 0===i?void 0:i.title)||void 0===a?void 0:a.text)?null===(o=this.options)||void 0===o?void 0:o.scales.y.title.text:"Y Axis":(null===(c=null===(l=null===(r=null===(n=this.options)||void 0===n?void 0:n.scales)||void 0===r?void 0:r.x)||void 0===l?void 0:l.title)||void 0===c?void 0:c.text)?null===(h=this.options)||void 0===h?void 0:h.scales.x.title.text:"X Axis",d}handleViewToggle(){this.tableView=!this.tableView}checkType(){this.tableDisabled=["dendrogram","forceDirectedGraph","tree"].includes(this.type)}handleDownloadImage(t,e){t.preventDefault();const s=e?"image/jpeg":"image/png",i=e?"jpg":"png";if(this.useHtmlLegend&&this.chart){if(["doughnut","pie"].includes(this.type))return void this.exportSimpleCanvasOnly(s,i);const t={options:JSON.parse(JSON.stringify(this.chart.options)),data:JSON.parse(JSON.stringify(this.chart.data)),type:this.chart.config.type},e=this.chart.data.datasets.map(((t,e)=>this.chart.getDatasetMeta(e).hidden));try{this.chart.options.plugins||(this.chart.options.plugins={}),this.chart.options.plugins.legend||(this.chart.options.plugins.legend={}),this.chart.options.plugins.legend.display=!0,this.chart.options.plugins.legend.position="bottom",this.chart.options.plugins.legend.labels={boxWidth:12,boxHeight:12,padding:10,font:{size:12}},this.chart.options.layout?this.chart.options.layout.padding?"number"==typeof this.chart.options.layout.padding?this.chart.options.layout.padding={top:this.chart.options.layout.padding,right:this.chart.options.layout.padding,bottom:Math.max(this.chart.options.layout.padding,40),left:this.chart.options.layout.padding}:this.chart.options.layout.padding&&(this.chart.options.layout.padding.bottom=Math.max(this.chart.options.layout.padding.bottom||0,40)):this.chart.options.layout.padding={bottom:40}:this.chart.options.layout={padding:{bottom:40}},this.chart.update("none");const a=this.canvas.getContext("2d");if(!a)throw new Error("Could not get canvas context");const o=nt("--kd-color-background-page-default");a.save(),a.globalCompositeOperation="destination-over",a.fillStyle=o,a.fillRect(0,0,this.canvas.width,this.canvas.height);const n=this.chart.toBase64Image(s,1),r=document.createElement("a");r.href=n,r.download=this.chartTitle+"."+i,document.body.appendChild(r),r.click(),document.body.removeChild(r),a.restore(),this.chart.options=t.options,e.forEach(((t,e)=>{this.chart.getDatasetMeta(e).hidden=t})),this.chart.update()}catch(t){console.error("Error exporting chart with legend:",t),this.exportCanvasOnly(s,i)}}else this.exportCanvasOnly(s,i)}exportCanvasOnly(t,e){const s=this.canvas.getContext("2d");if(!s||!this.chart)return;const i=nt("--kd-color-background-page-default");s.save(),s.globalCompositeOperation="destination-over",s.fillStyle=i,s.fillRect(0,0,this.canvas.width,this.canvas.height);const a=document.createElement("a");a.href=this.chart.toBase64Image(t,1),a.download=this.chartTitle+"."+e,document.body.appendChild(a),a.click(),document.body.removeChild(a),s.restore()}exportSimpleCanvasOnly(t,e){const s=this.canvas.getContext("2d");if(s&&this.chart)try{const i=JSON.parse(JSON.stringify(this.chart.options));s.save();const a=nt("--kd-color-background-page-default");s.globalCompositeOperation="destination-over",s.fillStyle=a,s.fillRect(0,0,this.canvas.width,this.canvas.height),this.chart.options={...this.chart.options,plugins:{legend:{display:!0,position:"bottom",labels:{boxWidth:12,boxHeight:12,padding:10,font:{size:12}}},datalabels:{display:!1,formatter:null},tooltip:{enabled:!1},doughnutLabel:{enabled:!1}},layout:{padding:{bottom:40}}},this.chart.update("none");const o=this.chart.toBase64Image(t,1),n=document.createElement("a");n.href=o,n.download=this.chartTitle+"."+e,document.body.appendChild(n),n.click(),document.body.removeChild(n),s.restore(),this.chart.options=i,this.chart.update()}catch(s){console.error("Error in exportSimpleCanvasOnly:",s),this.exportCanvasOnly(t,e)}}handleDownloadCsv(t){t.preventDefault();let e="";if("tree"===this.type||"dendrogram"===this.type)e+=G(this.datasets);else for(let t=0;t<this.chart.data.datasets.length;t++)e+=U({data:this.chart.data.datasets[t],labels:this.labels});if(null==e||""===e)return;const s=this.chartTitle+".csv";e.match(/^data:text\/csv/i)||(e="data:text/csv;charset=utf-8,"+e);const i=encodeURI(e),a=document.createElement("a");a.setAttribute("href",i),a.setAttribute("download",s),document.body.appendChild(a),a.click(),document.body.removeChild(a)}handleFullscreen(){var t;(null===(t=this.shadowRoot)||void 0===t?void 0:t.fullscreenElement)?document.exitFullscreen():this.container.requestFullscreen()}handleFullscreenChange(){var t;this.fullscreen=null!==(null===(t=this.shadowRoot)||void 0===t?void 0:t.fullscreenElement)}},v=new WeakMap,f=new WeakMap,y=new WeakMap,b=new WeakMap,j=new WeakMap,w=new WeakMap,k=new WeakMap,T=new WeakMap,$=new WeakMap,C=new WeakMap,x=new WeakMap,D=new WeakMap,O=new WeakMap,L=new WeakMap,M=new WeakMap,H=new WeakMap,W=new WeakMap,S=new WeakMap,A=new WeakMap,B=new WeakMap,E=new WeakMap,I=new WeakMap,P=new WeakMap,ct=new WeakMap,ht=new WeakMap,dt=new WeakMap,mt=new WeakMap,pt=new WeakMap,ut=new WeakMap,gt=new WeakMap,vt=new WeakMap,t(yt,"KDChart"),(()=>{var t;const s="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(t=Qt[Symbol.metadata])&&void 0!==t?t:null):void 0;bt=[c({type:String})],jt=[c({type:String})],wt=[c({type:String})],kt=[c({type:Array})],Tt=[c({type:Array})],$t=[c({type:Object})],Ct=[c({type:Array})],xt=[c({type:Number})],Dt=[c({type:Number})],Ot=[c({type:Boolean})],Lt=[c({type:Boolean})],Mt=[c({type:Boolean})],Ht=[c({type:Boolean})],Wt=[c({type:Boolean})],St=[c({type:Boolean})],At=[c({type:Boolean})],Bt=[c({type:Boolean})],Et=[c({type:Object})],_t=[h()],Vt=[c({type:Boolean})],Ft=[c({type:Number,reflect:!0})],Nt=[c({type:Object})],Rt=[d(".container")],zt=[d("canvas")],Jt=[d(".closed-caption")],It=[h()],Pt=[h()],qt=[h()],Gt=[h()],Ut=[h()],Kt=[h()],e(yt,null,bt,{kind:"accessor",name:"chartTitle",static:!1,private:!1,access:{has:t=>"chartTitle"in t,get:t=>t.chartTitle,set:(t,e)=>{t.chartTitle=e}},metadata:s},Zt,te),e(yt,null,jt,{kind:"accessor",name:"description",static:!1,private:!1,access:{has:t=>"description"in t,get:t=>t.description,set:(t,e)=>{t.description=e}},metadata:s},ee,se),e(yt,null,wt,{kind:"accessor",name:"type",static:!1,private:!1,access:{has:t=>"type"in t,get:t=>t.type,set:(t,e)=>{t.type=e}},metadata:s},ie,ae),e(yt,null,kt,{kind:"accessor",name:"labels",static:!1,private:!1,access:{has:t=>"labels"in t,get:t=>t.labels,set:(t,e)=>{t.labels=e}},metadata:s},oe,ne),e(yt,null,Tt,{kind:"accessor",name:"datasets",static:!1,private:!1,access:{has:t=>"datasets"in t,get:t=>t.datasets,set:(t,e)=>{t.datasets=e}},metadata:s},re,le),e(yt,null,$t,{kind:"accessor",name:"options",static:!1,private:!1,access:{has:t=>"options"in t,get:t=>t.options,set:(t,e)=>{t.options=e}},metadata:s},ce,he),e(yt,null,Ct,{kind:"accessor",name:"plugins",static:!1,private:!1,access:{has:t=>"plugins"in t,get:t=>t.plugins,set:(t,e)=>{t.plugins=e}},metadata:s},de,me),e(yt,null,xt,{kind:"accessor",name:"height",static:!1,private:!1,access:{has:t=>"height"in t,get:t=>t.height,set:(t,e)=>{t.height=e}},metadata:s},pe,ue),e(yt,null,Dt,{kind:"accessor",name:"width",static:!1,private:!1,access:{has:t=>"width"in t,get:t=>t.width,set:(t,e)=>{t.width=e}},metadata:s},ge,ve),e(yt,null,Ot,{kind:"accessor",name:"hideDescription",static:!1,private:!1,access:{has:t=>"hideDescription"in t,get:t=>t.hideDescription,set:(t,e)=>{t.hideDescription=e}},metadata:s},fe,ye),e(yt,null,Lt,{kind:"accessor",name:"hideCaptions",static:!1,private:!1,access:{has:t=>"hideCaptions"in t,get:t=>t.hideCaptions,set:(t,e)=>{t.hideCaptions=e}},metadata:s},be,je),e(yt,null,Mt,{kind:"accessor",name:"hideHeader",static:!1,private:!1,access:{has:t=>"hideHeader"in t,get:t=>t.hideHeader,set:(t,e)=>{t.hideHeader=e}},metadata:s},we,ke),e(yt,null,Ht,{kind:"accessor",name:"hideControls",static:!1,private:!1,access:{has:t=>"hideControls"in t,get:t=>t.hideControls,set:(t,e)=>{t.hideControls=e}},metadata:s},Te,$e),e(yt,null,Wt,{kind:"accessor",name:"hideTableControl",static:!1,private:!1,access:{has:t=>"hideTableControl"in t,get:t=>t.hideTableControl,set:(t,e)=>{t.hideTableControl=e}},metadata:s},Ce,xe),e(yt,null,St,{kind:"accessor",name:"hideFullscreenControl",static:!1,private:!1,access:{has:t=>"hideFullscreenControl"in t,get:t=>t.hideFullscreenControl,set:(t,e)=>{t.hideFullscreenControl=e}},metadata:s},De,Oe),e(yt,null,At,{kind:"accessor",name:"hideDownloadControl",static:!1,private:!1,access:{has:t=>"hideDownloadControl"in t,get:t=>t.hideDownloadControl,set:(t,e)=>{t.hideDownloadControl=e}},metadata:s},Le,Me),e(yt,null,Bt,{kind:"accessor",name:"noBorder",static:!1,private:!1,access:{has:t=>"noBorder"in t,get:t=>t.noBorder,set:(t,e)=>{t.noBorder=e}},metadata:s},He,We),e(yt,null,Et,{kind:"accessor",name:"customLabels",static:!1,private:!1,access:{has:t=>"customLabels"in t,get:t=>t.customLabels,set:(t,e)=>{t.customLabels=e}},metadata:s},Se,Ae),e(yt,null,_t,{kind:"accessor",name:"fullscreen",static:!1,private:!1,access:{has:t=>"fullscreen"in t,get:t=>t.fullscreen,set:(t,e)=>{t.fullscreen=e}},metadata:s},Be,Ee),e(yt,null,Vt,{kind:"accessor",name:"useHtmlLegend",static:!1,private:!1,access:{has:t=>"useHtmlLegend"in t,get:t=>t.useHtmlLegend,set:(t,e)=>{t.useHtmlLegend=e}},metadata:s},_e,Ve),e(yt,null,Ft,{kind:"accessor",name:"htmlLegendMaxHeight",static:!1,private:!1,access:{has:t=>"htmlLegendMaxHeight"in t,get:t=>t.htmlLegendMaxHeight,set:(t,e)=>{t.htmlLegendMaxHeight=e}},metadata:s},Fe,Ne),e(yt,null,Nt,{kind:"accessor",name:"htmlLegendOptions",static:!1,private:!1,access:{has:t=>"htmlLegendOptions"in t,get:t=>t.htmlLegendOptions,set:(t,e)=>{t.htmlLegendOptions=e}},metadata:s},Re,ze),e(yt,null,Rt,{kind:"accessor",name:"container",static:!1,private:!1,access:{has:t=>"container"in t,get:t=>t.container,set:(t,e)=>{t.container=e}},metadata:s},Je,Ie),e(yt,null,zt,{kind:"accessor",name:"canvas",static:!1,private:!1,access:{has:t=>"canvas"in t,get:t=>t.canvas,set:(t,e)=>{t.canvas=e}},metadata:s},Pe,qe),e(yt,null,Jt,{kind:"accessor",name:"ccDiv",static:!1,private:!1,access:{has:t=>"ccDiv"in t,get:t=>t.ccDiv,set:(t,e)=>{t.ccDiv=e}},metadata:s},Ge,Ue),e(yt,null,It,{kind:"accessor",name:"chart",static:!1,private:!1,access:{has:t=>"chart"in t,get:t=>t.chart,set:(t,e)=>{t.chart=e}},metadata:s},Ke,Xe),e(yt,null,Pt,{kind:"accessor",name:"tableView",static:!1,private:!1,access:{has:t=>"tableView"in t,get:t=>t.tableView,set:(t,e)=>{t.tableView=e}},metadata:s},Ye,Qe),e(yt,null,qt,{kind:"accessor",name:"tableDisabled",static:!1,private:!1,access:{has:t=>"tableDisabled"in t,get:t=>t.tableDisabled,set:(t,e)=>{t.tableDisabled=e}},metadata:s},Ze,ts),e(yt,null,Gt,{kind:"accessor",name:"mergedOptions",static:!1,private:!1,access:{has:t=>"mergedOptions"in t,get:t=>t.mergedOptions,set:(t,e)=>{t.mergedOptions=e}},metadata:s},es,ss),e(yt,null,Ut,{kind:"accessor",name:"mergedDatasets",static:!1,private:!1,access:{has:t=>"mergedDatasets"in t,get:t=>t.mergedDatasets,set:(t,e)=>{t.mergedDatasets=e}},metadata:s},is,as),e(yt,null,Kt,{kind:"accessor",name:"_widget",static:!1,private:!1,access:{has:t=>"_widget"in t,get:t=>t._widget,set:(t,e)=>{t._widget=e}},metadata:s},os,ns),e(null,ft={value:yt},Xt,{kind:"class",name:yt.name,metadata:s},null,Yt),yt=ft.value,s&&Object.defineProperty(yt,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s})})(),yt.styles=n(X),s(yt,Yt),yt})();export{ct as KDChart};
232
251
  //# sourceMappingURL=chart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chart.js","sources":["../../../src/components/chart/chart.ts"],"sourcesContent":["import { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { deepmerge, deepmergeCustom } from 'deepmerge-ts';\nimport Chart from 'chart.js/auto';\nimport 'chartjs-adapter-date-fns';\nimport {\n ChoroplethController,\n BubbleMapController,\n GeoFeature,\n ColorScale,\n SizeScale,\n ProjectionScale,\n} from 'chartjs-chart-geo';\nimport { TreemapController, TreemapElement } from 'chartjs-chart-treemap';\nimport { MatrixController, MatrixElement } from 'chartjs-chart-matrix';\nimport {\n BoxPlotController,\n BoxAndWiskers,\n ViolinController,\n Violin,\n} from '@sgratzl/chartjs-chart-boxplot';\nimport {\n DendrogramController,\n TreeController,\n GraphController,\n ForceDirectedGraphController,\n EdgeLine,\n} from 'chartjs-chart-graph';\nimport { SankeyController, Flow } from 'chartjs-chart-sankey';\nimport canvasBackgroundPlugin from '../../common/plugins/canvasBackground';\nimport doughnutLabelPlugin from '../../common/plugins/doughnutLabel';\nimport meterGaugePlugin from '../../common/plugins/meterGaugeNeedle';\nimport gradientLegendPlugin from '../../common/plugins/gradientLegend';\nimport { renderHTMLLegend } from '../../common/legend';\nimport { htmlLegendPlugin } from '../../common/plugins/htmlLegendPlugin';\nimport a11yPlugin from 'chartjs-plugin-a11y-legend';\nimport datalabelsPlugin from 'chartjs-plugin-datalabels';\nimport annotationPlugin from 'chartjs-plugin-annotation';\nimport {\n convertChartDataToCSV,\n debounce,\n convertTreeDataToCSV,\n} from '../../common/helpers/helpers';\nimport { renderBoxplotViolinTable } from '../../common/helpers/boxplotViolinTableRenderer';\nimport ChartScss from './chart.scss?inline';\nimport globalOptions from '../../common/config/globalOptions';\nimport globalOptionsNonRadial from '../../common/config/globalOptionsNonRadial';\nimport globalOptionsRadial from '../../common/config/globalOptionsRadial';\nimport chartIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/analytics.svg';\nimport tableIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/table-view.svg';\nimport downloadIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/download.svg';\nimport maximizeIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/expand.svg';\nimport minimizeIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/shrink.svg';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { getTokenThemeVal } from '@kyndryl-design-system/shidoka-foundation/common/helpers/color';\nimport { renderGraphTreeTable } from '../../common/helpers/graphTreeTableRenderer';\n\nChart.register(\n ChoroplethController,\n BubbleMapController,\n GeoFeature,\n ColorScale,\n SizeScale,\n ProjectionScale,\n TreemapController,\n TreemapElement,\n MatrixController,\n MatrixElement,\n BoxPlotController,\n BoxAndWiskers,\n ViolinController,\n Violin,\n DendrogramController,\n TreeController,\n GraphController,\n ForceDirectedGraphController,\n EdgeLine,\n SankeyController,\n Flow,\n annotationPlugin,\n datalabelsPlugin\n);\n\nexport interface LegendClickInfo {\n item: any;\n chart: Chart;\n isHidden: boolean;\n label: string;\n dataIndex?: number;\n datasetIndex?: number;\n element: HTMLElement;\n event?: MouseEvent;\n}\n\nexport interface HtmlLegendOptions {\n boxWidth?: number;\n boxHeight?: number;\n borderRadius?: number;\n className?: string;\n itemClassName?: string;\n layout?: 'horizontal' | 'vertical';\n fontSize?: number;\n boxMargin?: number;\n adjustChartHeight?: boolean;\n reservedLegendHeight?: number;\n /**\n * Callback fired when a legend item is clicked.\n * This handler receives comprehensive information and can interact with external APIs.\n */\n onItemClick?: (info: LegendClickInfo) => void;\n columns?: number;\n labelFormatter?: (label: string, item: any) => string;\n itemClassResolver?: (item: any) => string | null;\n position?: 'top' | 'bottom' | 'left' | 'right';\n}\n\n/**\n * Chart.js wrapper component.\n * @slot unnamed - Slot for custom content between header and chart.\n * @slot controls - Slot for custom controls such as an overflow menu.\n * @slot tooltip - Slot for tooltip in header.\n * @slot draghandle - Slot for widget drag handle.\n */\n@customElement('kd-chart')\nexport class KDChart extends LitElement {\n static override styles = unsafeCSS(ChartScss);\n\n /** Chart title. */\n @property({ type: String })\n accessor chartTitle = '';\n\n /** Chart description. */\n @property({ type: String })\n accessor description = '';\n\n /** Chart.js chart type. */\n @property({ type: String })\n accessor type: any = '';\n\n /** Chart.js data.labels. */\n @property({ type: Array })\n accessor labels!: Array<string>;\n\n /** Chart.js data.datasets. */\n @property({ type: Array })\n accessor datasets!: Array<any>;\n\n /** Chart.js options. Can override Shidoka defaults. */\n @property({ type: Object })\n accessor options: any = {};\n\n /** Chart.js additional plugins. Must be registerable inline via Chart.plugins array, not globally via Chart.register. */\n @property({ type: Array })\n accessor plugins: any = [];\n\n /** Chart.js canvas height (px). Disables maintainAspectRatio option. */\n @property({ type: Number })\n accessor height: any = null;\n\n /** Chart.js canvas width (px). Disables maintainAspectRatio option. */\n @property({ type: Number })\n accessor width: any = null;\n\n /** Hides the description visually. */\n @property({ type: Boolean })\n accessor hideDescription = false;\n\n /** Hides the closed captions visually. */\n @property({ type: Boolean })\n accessor hideCaptions = false;\n\n /** Hides the title & description. */\n @property({ type: Boolean })\n accessor hideHeader = false;\n\n /** Hides all the controls. */\n @property({ type: Boolean })\n accessor hideControls = false;\n\n /** Hides the table view control. */\n @property({ type: Boolean })\n accessor hideTableControl = false;\n\n /** Hides the fullscreen control. */\n @property({ type: Boolean })\n accessor hideFullscreenControl = false;\n\n /** Hides the download control. */\n @property({ type: Boolean })\n accessor hideDownloadControl = false;\n\n /** Removes the outer border and padding. */\n @property({ type: Boolean })\n accessor noBorder = false;\n\n /** Customizable text labels. */\n @property({ type: Object })\n accessor customLabels = {\n toggleView: 'Toggle View Mode',\n toggleFullscreen: 'Toggle Fullscreen',\n downloadMenu: 'Download Menu',\n downloadCsv: 'Download as CSV',\n downloadPng: 'Download as PNG',\n downloadJpg: 'Download as JPG',\n };\n\n /** Fullscreen state.\n * @ignore\n */\n @state()\n accessor fullscreen = false;\n\n /** Use HTML legend instead of Chart.js built-in canvas legend.\n * @public\n */\n @property({ type: Boolean })\n accessor useHtmlLegend = false;\n\n /** Max height for HTML legend scroll container (px). */\n @property({ type: Number, reflect: true })\n accessor htmlLegendMaxHeight = 100;\n\n /** Full set of legend customization options */\n @property({ type: Object })\n accessor htmlLegendOptions: HtmlLegendOptions = {};\n\n /**\n * Queries the container element.\n * @ignore\n */\n @query('.container')\n accessor container!: HTMLCanvasElement;\n\n /**\n * Queries the canvas element.\n * @ignore\n */\n @query('canvas')\n accessor canvas!: HTMLCanvasElement;\n\n /**\n * Queries the closed caption div.\n * @ignore\n */\n @query('.closed-caption')\n accessor ccDiv!: HTMLDivElement;\n\n /** The chart instance.\n * @ignore\n */\n @state()\n accessor chart: any = null;\n\n /** Table view mode.\n * @ignore\n */\n @state()\n accessor tableView = false;\n\n /** Disable table view feature.\n * @ignore\n */\n @state()\n accessor tableDisabled = false;\n\n /** Merged options.\n * @ignore\n */\n @state()\n accessor mergedOptions: any = {};\n\n /** Merged datasets.\n * @ignore\n */\n @state()\n accessor mergedDatasets: any = {};\n\n /** Is Widget. Inherited from kyn-widget.\n * @internal\n */\n @state()\n accessor _widget = false;\n\n /** Resize observer for canvas-container.\n * @internal\n */\n _resizeObserver: any = new ResizeObserver(\n debounce(() => {\n this._resizeChart();\n })\n );\n\n /** Theme observer to watch for meta color-scheme changes.\n * @internal\n */\n _themeObserver: any = new MutationObserver(() => {\n if (this.chart) {\n this.mergeOptions().then(() => {\n this.initChart();\n });\n }\n });\n\n override render() {\n const Classes = {\n container: true,\n fullscreen: this.fullscreen,\n 'no-border': this.noBorder || this._widget,\n widget: this._widget,\n };\n\n return html`\n <div\n class=${classMap(Classes)}\n @fullscreenchange=${() => this.handleFullscreenChange()}\n >\n ${!this.hideHeader || !this.hideControls\n ? html`\n <div class=\"header\">\n ${!this.hideHeader\n ? html`\n <slot name=\"draghandle\"></slot>\n\n <div id=\"titleDesc\">\n <div class=\"title\">\n ${this.chartTitle}\n <slot name=\"tooltip\"></slot>\n </div>\n <div\n class=\"description ${this.hideDescription\n ? 'hidden-visually'\n : ''}\"\n >\n ${this.description}\n </div>\n </div>\n `\n : null}\n ${!this.hideControls\n ? html`\n <div class=\"controls\">\n ${!this.tableDisabled && !this.hideTableControl\n ? html`\n <button\n class=\"control-button\"\n @click=${() => this.handleViewToggle()}\n aria-label=${this.customLabels.toggleView}\n title=${this.customLabels.toggleView}\n >\n <span slot=\"icon\">\n ${this.tableView\n ? unsafeSVG(chartIcon)\n : unsafeSVG(tableIcon)}\n </span>\n </button>\n `\n : null}\n ${!this.hideFullscreenControl\n ? html`\n <button\n class=\"control-button\"\n @click=${() => this.handleFullscreen()}\n aria-label=${this.customLabels.toggleFullscreen}\n title=${this.customLabels.toggleFullscreen}\n >\n <span slot=\"icon\">\n ${this.fullscreen\n ? unsafeSVG(minimizeIcon)\n : unsafeSVG(maximizeIcon)}\n </span>\n </button>\n `\n : null}\n ${!this.hideDownloadControl\n ? html`\n <div class=\"download\">\n <button\n tabindex=\"0\"\n class=\"control-button\"\n aria-label=${this.customLabels.downloadMenu}\n title=${this.customLabels.downloadMenu}\n >\n <span slot=\"icon\">\n ${unsafeSVG(downloadIcon)}\n </span>\n </button>\n\n <div class=\"download-menu\">\n ${!this.tableDisabled\n ? html`\n <button\n tabindex=\"0\"\n @click=${(e: Event) =>\n this.handleDownloadCsv(e)}\n >\n ${this.customLabels.downloadCsv}\n </button>\n `\n : null}\n <button\n tabindex=\"0\"\n @click=${(e: Event) =>\n this.handleDownloadImage(e, false)}\n >\n ${this.customLabels.downloadPng}\n </button>\n <button\n tabindex=\"0\"\n @click=${(e: Event) =>\n this.handleDownloadImage(e, true)}\n >\n ${this.customLabels.downloadJpg}\n </button>\n </div>\n </div>\n `\n : null}\n\n <slot name=\"controls\"></slot>\n </div>\n `\n : null}\n </div>\n `\n : null}\n\n <div>\n <slot></slot>\n </div>\n\n <figure class=\"${this.tableView ? 'hidden' : ''}\">\n <div\n class=\"canvas-container\"\n style=\"${this.width ? `width: ${this.width}px;` : ''}\n ${this.height ? `height: ${this.height}px;` : ''}\"\n >\n <canvas role=\"img\" aria-labelledby=\"titleDesc\"></canvas>\n </div>\n <figcaption>\n <div\n class=\"closed-caption ${this.hideCaptions\n ? 'hidden-visually'\n : ''}\"\n ></div>\n </figcaption>\n\n <div\n class=\"html-legend-container\"\n ?hidden=${!this.useHtmlLegend}\n ></div>\n </figure>\n\n ${!this.tableDisabled && this.tableView\n ? html`\n <div class=\"table\">\n <table>\n ${['pie', 'doughnut', 'polarArea'].includes(this.type)\n ? html`\n <thead>\n <tr>\n <th>Label</th>\n <th>Value</th>\n </tr>\n </thead>\n <tbody>\n ${this.labels.map(\n (label, i) => html`\n <tr>\n <td>${label}</td>\n <td>${this.datasets[0].data[i]}</td>\n </tr>\n `\n )}\n </tbody>\n `\n : this.type === 'matrix'\n ? html`\n <thead>\n <tr>\n <th>\n ${this.options?.scales?.y?.title?.text ||\n 'Y Axis'}\n </th>\n <th>\n ${this.options?.scales?.x?.title?.text ||\n 'X Axis'}\n </th>\n ${this.datasets.map(\n (dataset) => html`<th>${dataset.label}</th>`\n )}\n </tr>\n </thead>\n <tbody>\n ${this.datasets[0].data.map((cell: any) => {\n const xLabel = Array.isArray(this.labels)\n ? this.labels[cell.x - 1] || ''\n : (this.labels as any).x?.[cell.x - 1] || '';\n const yLabel = Array.isArray(this.labels)\n ? this.labels[cell.y - 1] || ''\n : (this.labels as any).y?.[cell.y - 1] || '';\n return html`\n <tr>\n <td>${yLabel}</td>\n <td>${xLabel}</td>\n ${this.datasets.map(\n () => html`<td>${cell.value}</td>`\n )}\n </tr>\n `;\n })}\n </tbody>\n `\n : ['boxplot', 'violin'].includes(this.type)\n ? renderBoxplotViolinTable(\n this.labels,\n this.datasets,\n this.getTableAxisLabel()\n )\n : this.type === 'tree'\n ? renderGraphTreeTable(this.datasets)\n : html`\n <thead>\n <tr>\n ${this.labels?.length || this.type === 'treemap'\n ? html`<th>${this.getTableAxisLabel()}</th>`\n : null}\n ${this.datasets.map(\n (dataset) => html`<th>${dataset.label}</th>`\n )}\n </tr>\n </thead>\n <tbody>\n ${this.type === 'treemap'\n ? Array.isArray(this.datasets[0].tree)\n ? this.datasets[0].tree.map(\n (_value: any) => html`\n <tr>\n <td>\n ${_value[this.datasets[0].labelKey]}\n </td>\n <td>${_value[this.datasets[0].key]}</td>\n </tr>\n `\n )\n : Object.entries(this.datasets[0].tree).map(\n (_value: any) => {\n const HtmlStrings = [];\n if (_value[1].value) {\n HtmlStrings.push(html`\n <tr>\n <td>${_value[0]}</td>\n <td>${_value[1].value}</td>\n </tr>\n `);\n } else {\n Object.entries(_value[1]).map(\n (_subValue: any) => {\n if (_subValue[1].value) {\n HtmlStrings.push(html`\n <tr>\n <td>${_subValue[0]}</td>\n <td>${_subValue[1].value}</td>\n </tr>\n `);\n } else {\n Object.entries(_subValue[1]).map(\n (_subSubValue: any) => {\n HtmlStrings.push(html`\n <tr>\n <td>${_subSubValue[0]}</td>\n <td>\n ${_subSubValue[1].value}\n </td>\n </tr>\n `);\n }\n );\n }\n }\n );\n }\n return HtmlStrings;\n }\n )\n : this.datasets[0].data.map(\n (_value: any, i: number) => {\n const IndexAxis =\n this.options.indexAxis || 'x';\n const NonIndexAxis =\n IndexAxis === 'x' ? 'y' : 'x';\n return html`\n <tr>\n ${this.labels?.length\n ? html`\n ${this.options?.scales?.[IndexAxis]\n ?.type === 'time'\n ? html`\n <td>\n ${new Date(\n this.labels[i]\n ).toLocaleString()}\n </td>\n `\n : html`\n <td>${this.labels[i]}</td>\n `}\n `\n : null}\n ${this.datasets.map((dataset) => {\n if (i >= dataset.data.length)\n return html`<td></td>`;\n\n const dataPoint = dataset.data[i];\n if (\n this.type === 'bubbleMap' ||\n this.type === 'choropleth'\n ) {\n return html`\n <td>${dataset.data[i].value}</td>\n `;\n } else if (\n this.options?.scales[NonIndexAxis]\n ?.type === 'time'\n ) {\n return html`\n <td>\n ${new Date(\n dataPoint\n ).toLocaleString()}\n </td>\n `;\n } else if (Array.isArray(dataPoint)) {\n return html`\n <td>\n ${dataPoint[0]}, ${dataPoint[1]}\n </td>\n `;\n } else if (\n [\n 'pie',\n 'doughnut',\n 'polarArea',\n ].includes(this.type)\n ) {\n return html` <td>${dataPoint}</td> `;\n } else if (\n typeof dataPoint === 'object' &&\n !Array.isArray(dataPoint) &&\n dataPoint !== null\n ) {\n return html`\n <td>\n ${Object.keys(dataPoint).map(\n (key) => {\n const Label =\n this.options?.scales?.[key]\n ?.title?.text || key;\n const DisplayData =\n this.options?.scales?.[key]\n ?.type === 'time' &&\n dataPoint[key]\n ? new Date(\n dataPoint[key]\n ).toLocaleString()\n : dataPoint[key];\n return html`\n <div>\n <strong>\n ${Label}:\n </strong>\n ${DisplayData}\n </div>\n `;\n }\n )}\n </td>\n `;\n } else {\n return html`\n <td>${dataset.data[i]}</td>\n `;\n }\n })}\n </tr>\n `;\n }\n )}\n </tbody>\n `}\n </table>\n </div>\n `\n : null}\n </div>\n `;\n }\n\n private _resizeChart() {\n if (this.chart) {\n this.chart.resize();\n }\n }\n\n override connectedCallback() {\n super.connectedCallback();\n try {\n const meta = document.querySelector('meta[name=\"color-scheme\"]');\n if (meta instanceof Node) {\n this._themeObserver.observe(meta, { attributes: true });\n }\n } catch (error) {\n console.warn('Failed to set up theme observer:', error);\n }\n }\n\n override disconnectedCallback() {\n this._resizeObserver.disconnect();\n this._themeObserver.disconnect();\n\n super.disconnectedCallback();\n }\n\n override firstUpdated() {\n const el = this.shadowRoot?.querySelector('.canvas-container');\n this._resizeObserver.observe(el);\n }\n\n private generateScrollableLegend(): void {\n if (!this.chart || !this.useHtmlLegend) return;\n\n const legendContainer = this.shadowRoot!.querySelector<HTMLElement>(\n '.html-legend-container'\n )!;\n legendContainer.innerHTML = '';\n\n const opts = {\n maxHeight: this.htmlLegendMaxHeight,\n ...this.htmlLegendOptions,\n onItemClick: (info: LegendClickInfo) => {\n if (this.htmlLegendOptions.onItemClick) {\n this.htmlLegendOptions.onItemClick(info);\n }\n\n this.dispatchEvent(\n new CustomEvent('on-click', {\n detail: info,\n bubbles: true,\n composed: true,\n })\n );\n },\n };\n\n renderHTMLLegend(this.chart, legendContainer, opts);\n }\n\n override updated(changedProps: any) {\n if (\n this.chart &&\n (changedProps.has('labels') ||\n changedProps.has('datasets') ||\n changedProps.has('options'))\n ) {\n this.mergeOptions().then(() => {\n this.chart.data.labels = this.labels;\n this.chart.options = this.mergedOptions;\n\n this.chart.data.datasets.forEach((dataset: any, index: number) => {\n const NewDataset = this.mergedDatasets.find(\n (newDataset: any) => newDataset.label === dataset.label\n );\n\n if (!NewDataset) {\n this.chart.data.datasets.splice(index, 1);\n }\n });\n\n this.mergedDatasets.forEach((dataset: any) => {\n const prevDataset = this.chart.data.datasets.find(\n (prevDataset: any) => prevDataset.label === dataset.label\n );\n\n if (!prevDataset) {\n this.chart.data.datasets.push(dataset);\n } else {\n Object.keys(dataset).forEach((key) => {\n prevDataset[key] = dataset[key];\n });\n }\n });\n\n this.chart.update();\n\n this.generateScrollableLegend();\n });\n }\n\n // init chart\n // check to make sure initial datasets + data have been provided\n let hasData = false;\n if (this.datasets && this.datasets.length) {\n for (const dataset of this.datasets) {\n hasData =\n dataset.data?.length > 0 ||\n dataset.tree?.length > 0 ||\n (dataset.tree && Object.keys(dataset.tree).length > 0);\n\n if (!hasData) {\n console.error('Missing data for one or more chart datasets.');\n break;\n }\n }\n }\n\n if (!this.chart && this.type && changedProps.has('datasets') && hasData) {\n this.mergeOptions().then(() => {\n this.initChart();\n });\n\n this.checkType();\n }\n\n // Re-init chart instance when type, plugins, width, height, or useHtmlLegend change.\n if (\n this.chart &&\n (changedProps.has('type') ||\n changedProps.has('plugins') ||\n changedProps.has('width') ||\n changedProps.has('height') ||\n changedProps.has('useHtmlLegend'))\n ) {\n this.mergeOptions().then(() => {\n this.initChart();\n });\n\n this.checkType();\n }\n\n if (this.chart && changedProps.has('noBorder')) {\n this.chart.resize();\n }\n }\n\n /**\n * Initializes a bar chart using the Chart.js library with provided labels, datasets,\n * and options.\n */\n private initChart() {\n const pluginSelect =\n this.type === 'meter' ? meterGaugePlugin : doughnutLabelPlugin;\n\n const chartPlugins = [\n canvasBackgroundPlugin,\n pluginSelect,\n gradientLegendPlugin,\n ...this.plugins,\n a11yPlugin,\n ];\n\n // add htmlLegendPlugin if useHtmlLegend is enabled\n if (this.useHtmlLegend) {\n chartPlugins.push(htmlLegendPlugin);\n }\n\n if (this.chart) this.chart.destroy();\n this.chart = new Chart(this.canvas, {\n type: this.type === 'meter' ? 'doughnut' : this.type,\n data: { labels: this.labels, datasets: this.mergedDatasets },\n options: this.mergedOptions,\n plugins: chartPlugins,\n });\n\n this.generateScrollableLegend();\n }\n\n /**\n * Merges various chart type options and dataset options to create a\n * final set of options for a chart.\n */\n private async mergeOptions() {\n const radialTypes = ['pie', 'doughnut', 'radar', 'polarArea', 'meter'];\n const ignoredTypes = [\n 'choropleth',\n 'treemap',\n 'bubbleMap',\n 'dendrogram',\n 'tree',\n ];\n\n // dynamically import type-specific configs\n const additionalTypeImports: any[] = [];\n this.datasets.forEach((dataset) => {\n if (dataset.type) {\n additionalTypeImports.push(\n import(`../../common/config/chartTypes/${dataset.type}.js`)\n );\n }\n });\n const chartTypeConfigs = await Promise.all([\n import(`../../common/config/chartTypes/${this.type}.js`),\n ...additionalTypeImports,\n ]);\n\n let mergedOptions: any = globalOptions(this);\n mergedOptions.plugins = mergedOptions.plugins || {};\n\n if (this.useHtmlLegend) {\n mergedOptions.plugins.legend = { display: false };\n mergedOptions.plugins.htmlLegend = mergedOptions.plugins.htmlLegend || {};\n } else {\n mergedOptions.plugins.legend = mergedOptions.plugins.legend || {};\n mergedOptions.plugins.legend.display = true;\n }\n\n // merge radial vs non-radial defaults\n if (radialTypes.includes(this.type)) {\n mergedOptions = deepmerge(mergedOptions, globalOptionsRadial(this));\n } else if (!ignoredTypes.includes(this.type)) {\n mergedOptions = deepmerge(mergedOptions, globalOptionsNonRadial(this));\n }\n\n const mergedDatasets: any[] = JSON.parse(JSON.stringify(this.datasets));\n\n chartTypeConfigs.forEach((cfg: any) => {\n mergedOptions = deepmerge(mergedOptions, cfg.options(this));\n mergedDatasets.forEach((ds: any, i: number) => {\n if ((!ds.type && cfg.type === this.type) || ds.type === cfg.type) {\n mergedDatasets[i] = deepmerge(ds, cfg.datasetOptions(this, i));\n }\n });\n });\n\n if (this.options) {\n mergedOptions = deepmerge(mergedOptions, this.options);\n }\n this.mergedOptions = mergedOptions;\n\n mergedDatasets.forEach((ds: object, i: number) => {\n const customDeep = deepmergeCustom({ mergeArrays: false });\n mergedDatasets[i] = customDeep(ds, this.datasets[i]);\n });\n this.mergedDatasets = mergedDatasets;\n }\n\n private getTableAxisLabel() {\n let label = '';\n\n if (this.options?.indexAxis === 'y') {\n if (this.options?.scales?.y?.title?.text) {\n label = this.options?.scales.y.title.text;\n } else {\n label = 'Y Axis';\n }\n } else {\n if (this.options?.scales?.x?.title?.text) {\n label = this.options?.scales.x.title.text;\n } else {\n label = 'X Axis';\n }\n }\n\n return label;\n }\n\n private handleViewToggle() {\n this.tableView = !this.tableView;\n }\n\n private checkType() {\n // chart types that can't have a data table view\n const blacklist: any = ['dendrogram', 'forceDirectedGraph', 'tree'];\n this.tableDisabled = blacklist.includes(this.type);\n }\n\n private handleDownloadImage(e: Event, jpeg: boolean) {\n e.preventDefault();\n\n const imgFormat = jpeg ? 'image/jpeg' : 'image/png';\n const fileExt = jpeg ? 'jpg' : 'png';\n\n if (this.useHtmlLegend && this.chart) {\n if (['doughnut', 'pie'].includes(this.type)) {\n this.exportSimpleCanvasOnly(imgFormat, fileExt);\n return;\n }\n\n const originalConfig = {\n options: JSON.parse(JSON.stringify(this.chart.options)),\n data: JSON.parse(JSON.stringify(this.chart.data)),\n type: this.chart.config.type,\n };\n\n const originalHidden = this.chart.data.datasets.map(\n (_: unknown, i: number) => this.chart.getDatasetMeta(i).hidden\n );\n\n try {\n if (!this.chart.options.plugins) {\n this.chart.options.plugins = {};\n }\n\n if (!this.chart.options.plugins.legend) {\n this.chart.options.plugins.legend = {};\n }\n\n this.chart.options.plugins.legend.display = true;\n this.chart.options.plugins.legend.position = 'bottom';\n this.chart.options.plugins.legend.labels = {\n boxWidth: 12,\n boxHeight: 12,\n padding: 10,\n font: {\n size: 12,\n },\n };\n\n if (!this.chart.options.layout) {\n this.chart.options.layout = { padding: { bottom: 40 } };\n } else if (!this.chart.options.layout.padding) {\n this.chart.options.layout.padding = { bottom: 40 };\n } else if (typeof this.chart.options.layout.padding === 'number') {\n this.chart.options.layout.padding = {\n top: this.chart.options.layout.padding,\n right: this.chart.options.layout.padding,\n bottom: Math.max(this.chart.options.layout.padding, 40),\n left: this.chart.options.layout.padding,\n };\n } else if (this.chart.options.layout.padding) {\n this.chart.options.layout.padding.bottom = Math.max(\n this.chart.options.layout.padding.bottom || 0,\n 40\n );\n }\n\n this.chart.update('none');\n\n const context = this.canvas.getContext('2d');\n if (!context) throw new Error('Could not get canvas context');\n\n const color = getTokenThemeVal('--kd-color-background-page-default');\n context.save();\n context.globalCompositeOperation = 'destination-over';\n context.fillStyle = color;\n context.fillRect(0, 0, this.canvas.width, this.canvas.height);\n\n const imgData = this.chart.toBase64Image(imgFormat, 1);\n\n const a = document.createElement('a');\n a.href = imgData;\n a.download = this.chartTitle + '.' + fileExt;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n\n context.restore();\n this.chart.options = originalConfig.options;\n originalHidden.forEach((hidden: boolean, i: number) => {\n this.chart.getDatasetMeta(i).hidden = hidden;\n });\n this.chart.update();\n } catch (error) {\n console.error('Error exporting chart with legend:', error);\n this.exportCanvasOnly(imgFormat, fileExt);\n }\n } else {\n this.exportCanvasOnly(imgFormat, fileExt);\n }\n }\n\n private exportCanvasOnly(imgFormat: string, fileExt: string) {\n const context = this.canvas.getContext('2d');\n if (!context || !this.chart) return;\n\n const color = getTokenThemeVal('--kd-color-background-page-default');\n context.save();\n context.globalCompositeOperation = 'destination-over';\n context.fillStyle = color;\n context.fillRect(0, 0, this.canvas.width, this.canvas.height);\n\n const a = document.createElement('a');\n a.href = this.chart.toBase64Image(imgFormat, 1);\n a.download = this.chartTitle + '.' + fileExt;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n\n context.restore();\n }\n\n private exportSimpleCanvasOnly(imgFormat: string, fileExt: string) {\n const context = this.canvas.getContext('2d');\n if (!context || !this.chart) return;\n\n try {\n const originalOptions = JSON.parse(JSON.stringify(this.chart.options));\n\n context.save();\n const color = getTokenThemeVal('--kd-color-background-page-default');\n context.globalCompositeOperation = 'destination-over';\n context.fillStyle = color;\n context.fillRect(0, 0, this.canvas.width, this.canvas.height);\n\n this.chart.options = {\n ...this.chart.options,\n plugins: {\n legend: {\n display: true,\n position: 'bottom',\n labels: {\n boxWidth: 12,\n boxHeight: 12,\n padding: 10,\n font: { size: 12 },\n },\n },\n datalabels: { display: false, formatter: null },\n tooltip: { enabled: false },\n doughnutLabel: { enabled: false },\n },\n layout: {\n padding: { bottom: 40 },\n },\n };\n\n this.chart.update('none');\n\n const imgData = this.chart.toBase64Image(imgFormat, 1);\n\n const a = document.createElement('a');\n a.href = imgData;\n a.download = this.chartTitle + '.' + fileExt;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n\n context.restore();\n this.chart.options = originalOptions;\n this.chart.update();\n } catch (error) {\n console.error('Error in exportSimpleCanvasOnly:', error);\n this.exportCanvasOnly(imgFormat, fileExt);\n }\n }\n\n private handleDownloadCsv(e: Event) {\n e.preventDefault();\n let csv = '';\n\n // Special handling for tree and dendrogram charts\n if (this.type === 'tree' || this.type === 'dendrogram') {\n csv += convertTreeDataToCSV(this.datasets);\n } else {\n // Standard CSV handling for other chart types\n for (let i = 0; i < this.chart.data.datasets.length; i++) {\n csv += convertChartDataToCSV({\n data: this.chart.data.datasets[i],\n labels: this.labels,\n });\n }\n }\n\n if (csv == null || csv === '') return;\n\n const filename = this.chartTitle + '.csv';\n if (!csv.match(/^data:text\\/csv/i)) {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n }\n\n // not sure if anything below this comment works\n const data = encodeURI(csv);\n const link = document.createElement('a');\n link.setAttribute('href', data);\n link.setAttribute('download', filename);\n document.body.appendChild(link); // Required for FF\n link.click();\n document.body.removeChild(link);\n }\n\n private handleFullscreen() {\n if (this.shadowRoot?.fullscreenElement) {\n document.exitFullscreen();\n } else {\n this.container.requestFullscreen();\n }\n }\n\n private handleFullscreenChange() {\n this.fullscreen = this.shadowRoot?.fullscreenElement !== null;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kd-chart': KDChart;\n }\n}\n"],"names":["Chart","register","ChoroplethController","BubbleMapController","GeoFeature","ColorScale","SizeScale","ProjectionScale","TreemapController","TreemapElement","MatrixController","MatrixElement","BoxPlotController","BoxAndWiskers","ViolinController","Violin","DendrogramController","TreeController","GraphController","ForceDirectedGraphController","EdgeLine","SankeyController","Flow","annotationPlugin","datalabelsPlugin","KDChart","customElement","LitElement","_classThis","_classSuper","_KDChart_chartTitle_accessor_storage","set","this","__runInitializers","_chartTitle_initializers","_KDChart_description_accessor_storage","_chartTitle_extraInitializers","_description_initializers","_KDChart_type_accessor_storage","_description_extraInitializers","_type_initializers","_KDChart_labels_accessor_storage","_type_extraInitializers","_labels_initializers","_KDChart_datasets_accessor_storage","_labels_extraInitializers","_datasets_initializers","_KDChart_options_accessor_storage","_datasets_extraInitializers","_options_initializers","_KDChart_plugins_accessor_storage","_options_extraInitializers","_plugins_initializers","_KDChart_height_accessor_storage","_plugins_extraInitializers","_height_initializers","_KDChart_width_accessor_storage","_height_extraInitializers","_width_initializers","_KDChart_hideDescription_accessor_storage","_width_extraInitializers","_hideDescription_initializers","_KDChart_hideCaptions_accessor_storage","_hideDescription_extraInitializers","_hideCaptions_initializers","_KDChart_hideHeader_accessor_storage","_hideCaptions_extraInitializers","_hideHeader_initializers","_KDChart_hideControls_accessor_storage","_hideHeader_extraInitializers","_hideControls_initializers","_KDChart_hideTableControl_accessor_storage","_hideControls_extraInitializers","_hideTableControl_initializers","_KDChart_hideFullscreenControl_accessor_storage","_hideTableControl_extraInitializers","_hideFullscreenControl_initializers","_KDChart_hideDownloadControl_accessor_storage","_hideFullscreenControl_extraInitializers","_hideDownloadControl_initializers","_KDChart_noBorder_accessor_storage","_hideDownloadControl_extraInitializers","_noBorder_initializers","_KDChart_customLabels_accessor_storage","_noBorder_extraInitializers","_customLabels_initializers","toggleView","toggleFullscreen","downloadMenu","downloadCsv","downloadPng","downloadJpg","_KDChart_fullscreen_accessor_storage","_customLabels_extraInitializers","_fullscreen_initializers","_KDChart_useHtmlLegend_accessor_storage","_fullscreen_extraInitializers","_useHtmlLegend_initializers","_KDChart_htmlLegendMaxHeight_accessor_storage","_useHtmlLegend_extraInitializers","_htmlLegendMaxHeight_initializers","_KDChart_htmlLegendOptions_accessor_storage","_htmlLegendMaxHeight_extraInitializers","_htmlLegendOptions_initializers","_KDChart_container_accessor_storage","_htmlLegendOptions_extraInitializers","_container_initializers","_KDChart_canvas_accessor_storage","_container_extraInitializers","_canvas_initializers","_KDChart_ccDiv_accessor_storage","_canvas_extraInitializers","_ccDiv_initializers","_KDChart_chart_accessor_storage","_ccDiv_extraInitializers","_chart_initializers","_KDChart_tableView_accessor_storage","_chart_extraInitializers","_tableView_initializers","_KDChart_tableDisabled_accessor_storage","_tableView_extraInitializers","_tableDisabled_initializers","_KDChart_mergedOptions_accessor_storage","_tableDisabled_extraInitializers","_mergedOptions_initializers","_KDChart_mergedDatasets_accessor_storage","_mergedOptions_extraInitializers","_mergedDatasets_initializers","_KDChart__widget_accessor_storage","_mergedDatasets_extraInitializers","__widget_initializers","_resizeObserver","ResizeObserver","debounce","_resizeChart","_themeObserver","MutationObserver","chart","mergeOptions","then","initChart","chartTitle","__classPrivateFieldGet","value","__classPrivateFieldSet","description","type","labels","datasets","options","plugins","height","width","hideDescription","hideCaptions","hideHeader","hideControls","hideTableControl","hideFullscreenControl","hideDownloadControl","noBorder","customLabels","fullscreen","useHtmlLegend","htmlLegendMaxHeight","htmlLegendOptions","container","canvas","ccDiv","tableView","tableDisabled","mergedOptions","mergedDatasets","_widget","render","Classes","widget","html","classMap","handleFullscreenChange","handleViewToggle","unsafeSVG","chartIcon","tableIcon","handleFullscreen","minimizeIcon","maximizeIcon","downloadIcon","e","handleDownloadCsv","handleDownloadImage","includes","map","label","i","data","_d","_c","_b","_a","scales","y","title","text","_h","_g","_f","_e","x","dataset","cell","xLabel","Array","isArray","yLabel","renderBoxplotViolinTable","getTableAxisLabel","renderGraphTreeTable","_j","length","tree","_value","labelKey","key","Object","entries","HtmlStrings","push","_subValue","_subSubValue","IndexAxis","indexAxis","NonIndexAxis","Date","toLocaleString","dataPoint","keys","Label","DisplayData","resize","connectedCallback","super","meta","document","querySelector","Node","observe","attributes","error","console","warn","disconnectedCallback","disconnect","firstUpdated","el","shadowRoot","generateScrollableLegend","legendContainer","innerHTML","opts","maxHeight","onItemClick","info","dispatchEvent","CustomEvent","detail","bubbles","composed","renderHTMLLegend","updated","changedProps","has","forEach","index","find","newDataset","splice","prevDataset","update","hasData","checkType","pluginSelect","meterGaugePlugin","doughnutLabelPlugin","chartPlugins","canvasBackgroundPlugin","gradientLegendPlugin","a11yPlugin","htmlLegendPlugin","destroy","additionalTypeImports","__variableDynamicImportRuntime0__","chartTypeConfigs","Promise","all","__variableDynamicImportRuntime1__","globalOptions","legend","display","htmlLegend","deepmerge","globalOptionsRadial","globalOptionsNonRadial","JSON","parse","stringify","cfg","ds","datasetOptions","customDeep","deepmergeCustom","mergeArrays","_k","_l","jpeg","preventDefault","imgFormat","fileExt","exportSimpleCanvasOnly","originalConfig","config","originalHidden","_","getDatasetMeta","hidden","position","boxWidth","boxHeight","padding","font","size","layout","top","right","bottom","Math","max","left","context","getContext","Error","color","getTokenThemeVal","save","globalCompositeOperation","fillStyle","fillRect","imgData","toBase64Image","a","createElement","href","download","body","appendChild","click","removeChild","restore","exportCanvasOnly","originalOptions","datalabels","formatter","tooltip","enabled","doughnutLabel","csv","convertTreeDataToCSV","convertChartDataToCSV","filename","match","encodeURI","link","setAttribute","fullscreenElement","exitFullscreen","requestFullscreen","_chartTitle_decorators","property","String","_description_decorators","_type_decorators","_labels_decorators","_datasets_decorators","_options_decorators","_plugins_decorators","_height_decorators","Number","_width_decorators","_hideDescription_decorators","Boolean","_hideCaptions_decorators","_hideHeader_decorators","_hideControls_decorators","_hideTableControl_decorators","_hideFullscreenControl_decorators","_hideDownloadControl_decorators","_noBorder_decorators","_customLabels_decorators","_fullscreen_decorators","state","_useHtmlLegend_decorators","reflect","_htmlLegendOptions_decorators","query","_chart_decorators","_tableView_decorators","_tableDisabled_decorators","_mergedOptions_decorators","_mergedDatasets_decorators","__widget_decorators","__esDecorate","kind","name","static","private","access","obj","get","metadata","_metadata","_htmlLegendMaxHeight_decorators","_container_decorators","_canvas_decorators","_ccDiv_decorators","__widget_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","ChartScss"],"mappings":"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"}
1
+ {"version":3,"file":"chart.js","sources":["../../../src/components/chart/chart.ts"],"sourcesContent":["import { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { deepmerge, deepmergeCustom } from 'deepmerge-ts';\nimport Chart from 'chart.js/auto';\nimport 'chartjs-adapter-date-fns';\nimport {\n ChoroplethController,\n BubbleMapController,\n GeoFeature,\n ColorScale,\n SizeScale,\n ProjectionScale,\n} from 'chartjs-chart-geo';\nimport { TreemapController, TreemapElement } from 'chartjs-chart-treemap';\nimport { MatrixController, MatrixElement } from 'chartjs-chart-matrix';\nimport {\n BoxPlotController,\n BoxAndWiskers,\n ViolinController,\n Violin,\n} from '@sgratzl/chartjs-chart-boxplot';\nimport {\n DendrogramController,\n TreeController,\n GraphController,\n ForceDirectedGraphController,\n EdgeLine,\n} from 'chartjs-chart-graph';\nimport { SankeyController, Flow } from 'chartjs-chart-sankey';\nimport canvasBackgroundPlugin from '../../common/plugins/canvasBackground';\nimport doughnutLabelPlugin from '../../common/plugins/doughnutLabel';\nimport meterGaugePlugin from '../../common/plugins/meterGaugeNeedle';\nimport gradientLegendPlugin from '../../common/plugins/gradientLegend';\nimport { renderHTMLLegend } from '../../common/legend';\nimport { htmlLegendPlugin } from '../../common/plugins/htmlLegendPlugin';\nimport a11yPlugin from 'chartjs-plugin-a11y-legend';\nimport datalabelsPlugin from 'chartjs-plugin-datalabels';\nimport annotationPlugin from 'chartjs-plugin-annotation';\nimport {\n convertChartDataToCSV,\n debounce,\n convertTreeDataToCSV,\n} from '../../common/helpers/helpers';\nimport { renderBoxplotViolinTable } from '../../common/helpers/boxplotViolinTableRenderer';\nimport ChartScss from './chart.scss?inline';\nimport globalOptions from '../../common/config/globalOptions';\nimport globalOptionsNonRadial from '../../common/config/globalOptionsNonRadial';\nimport globalOptionsRadial from '../../common/config/globalOptionsRadial';\nimport chartIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/analytics.svg';\nimport tableIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/table-view.svg';\nimport downloadIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/download.svg';\nimport maximizeIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/expand.svg';\nimport minimizeIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/shrink.svg';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { getTokenThemeVal } from '@kyndryl-design-system/shidoka-foundation/common/helpers/color';\nimport { renderGraphTreeTable } from '../../common/helpers/graphTreeTableRenderer';\n\nChart.register(\n ChoroplethController,\n BubbleMapController,\n GeoFeature,\n ColorScale,\n SizeScale,\n ProjectionScale,\n TreemapController,\n TreemapElement,\n MatrixController,\n MatrixElement,\n BoxPlotController,\n BoxAndWiskers,\n ViolinController,\n Violin,\n DendrogramController,\n TreeController,\n GraphController,\n ForceDirectedGraphController,\n EdgeLine,\n SankeyController,\n Flow,\n annotationPlugin,\n datalabelsPlugin\n);\n\nexport interface LegendClickInfo {\n item: any;\n chart: Chart;\n isHidden: boolean;\n label: string;\n dataIndex?: number;\n datasetIndex?: number;\n element: HTMLElement;\n event?: MouseEvent;\n}\n\nexport interface HtmlLegendOptions {\n boxWidth?: number;\n boxHeight?: number;\n borderRadius?: number;\n className?: string;\n itemClassName?: string;\n layout?: 'horizontal' | 'vertical';\n fontSize?: number;\n boxMargin?: number;\n adjustChartHeight?: boolean;\n reservedLegendHeight?: number;\n /**\n * Callback fired when a legend item is clicked.\n * This handler receives comprehensive information and can interact with external APIs.\n */\n onItemClick?: (info: LegendClickInfo) => void;\n columns?: number;\n labelFormatter?: (label: string, item: any) => string;\n itemClassResolver?: (item: any) => string | null;\n position?: 'top' | 'bottom' | 'left' | 'right';\n}\n\n/**\n * Chart.js wrapper component.\n * @slot unnamed - Slot for custom content between header and chart.\n * @slot controls - Slot for custom controls such as an overflow menu.\n * @slot tooltip - Slot for tooltip in header.\n * @slot draghandle - Slot for widget drag handle.\n */\n@customElement('kd-chart')\nexport class KDChart extends LitElement {\n static override styles = unsafeCSS(ChartScss);\n\n /** Chart title. */\n @property({ type: String })\n accessor chartTitle = '';\n\n /** Chart description. */\n @property({ type: String })\n accessor description = '';\n\n /** Chart.js chart type. */\n @property({ type: String })\n accessor type: any = '';\n\n /** Chart.js data.labels. */\n @property({ type: Array })\n accessor labels!: Array<string>;\n\n /** Chart.js data.datasets. */\n @property({ type: Array })\n accessor datasets!: Array<any>;\n\n /** Chart.js options. Can override Shidoka defaults. */\n @property({ type: Object })\n accessor options: any = {};\n\n /** Chart.js additional plugins. Must be registerable inline via Chart.plugins array, not globally via Chart.register. */\n @property({ type: Array })\n accessor plugins: any = [];\n\n /** Chart.js canvas height (px). Disables maintainAspectRatio option. */\n @property({ type: Number })\n accessor height: any = null;\n\n /** Chart.js canvas width (px). Disables maintainAspectRatio option. */\n @property({ type: Number })\n accessor width: any = null;\n\n /** Hides the description visually. */\n @property({ type: Boolean })\n accessor hideDescription = false;\n\n /** Hides the closed captions visually. */\n @property({ type: Boolean })\n accessor hideCaptions = false;\n\n /** Hides the title & description. */\n @property({ type: Boolean })\n accessor hideHeader = false;\n\n /** Hides all the controls. */\n @property({ type: Boolean })\n accessor hideControls = false;\n\n /** Hides the table view control. */\n @property({ type: Boolean })\n accessor hideTableControl = false;\n\n /** Hides the fullscreen control. */\n @property({ type: Boolean })\n accessor hideFullscreenControl = false;\n\n /** Hides the download control. */\n @property({ type: Boolean })\n accessor hideDownloadControl = false;\n\n /** Removes the outer border and padding. */\n @property({ type: Boolean })\n accessor noBorder = false;\n\n /** Customizable text labels. */\n @property({ type: Object })\n accessor customLabels = {\n toggleView: 'Toggle View Mode',\n toggleFullscreen: 'Toggle Fullscreen',\n downloadMenu: 'Download Menu',\n downloadCsv: 'Download as CSV',\n downloadPng: 'Download as PNG',\n downloadJpg: 'Download as JPG',\n };\n\n /** Fullscreen state.\n * @ignore\n */\n @state()\n accessor fullscreen = false;\n\n /** Use HTML legend instead of Chart.js built-in canvas legend.\n * @public\n */\n @property({ type: Boolean })\n accessor useHtmlLegend = false;\n\n /** Max height for HTML legend scroll container (px). */\n @property({ type: Number, reflect: true })\n accessor htmlLegendMaxHeight = 100;\n\n /** Full set of legend customization options */\n @property({ type: Object })\n accessor htmlLegendOptions: HtmlLegendOptions = {};\n\n /**\n * Queries the container element.\n * @ignore\n */\n @query('.container')\n accessor container!: HTMLCanvasElement;\n\n /**\n * Queries the canvas element.\n * @ignore\n */\n @query('canvas')\n accessor canvas!: HTMLCanvasElement;\n\n /**\n * Queries the closed caption div.\n * @ignore\n */\n @query('.closed-caption')\n accessor ccDiv!: HTMLDivElement;\n\n /** The chart instance.\n * @ignore\n */\n @state()\n accessor chart: any = null;\n\n /** Table view mode.\n * @ignore\n */\n @state()\n accessor tableView = false;\n\n /** Disable table view feature.\n * @ignore\n */\n @state()\n accessor tableDisabled = false;\n\n /** Merged options.\n * @ignore\n */\n @state()\n accessor mergedOptions: any = {};\n\n /** Merged datasets.\n * @ignore\n */\n @state()\n accessor mergedDatasets: any = {};\n\n /** Is Widget. Inherited from kyn-widget.\n * @internal\n */\n @state()\n accessor _widget = false;\n\n /** Resize observer for canvas-container.\n * @internal\n */\n _resizeObserver: any = new ResizeObserver(\n debounce(() => {\n this._resizeChart();\n })\n );\n\n /** Theme observer to watch for meta color-scheme changes.\n * @internal\n */\n _themeObserver: any = new MutationObserver(() => {\n if (this.chart) {\n this.mergeOptions().then(() => {\n this.initChart();\n });\n }\n });\n\n override render() {\n const Classes = {\n container: true,\n fullscreen: this.fullscreen,\n 'no-border': this.noBorder || this._widget,\n widget: this._widget,\n };\n\n return html`\n <div\n class=${classMap(Classes)}\n @fullscreenchange=${() => this.handleFullscreenChange()}\n >\n ${!this.hideHeader || !this.hideControls\n ? html`\n <div class=\"header\">\n ${!this.hideHeader\n ? html`\n <slot name=\"draghandle\"></slot>\n\n <div id=\"titleDesc\">\n <div class=\"title\">\n ${this.chartTitle}\n <slot name=\"tooltip\"></slot>\n </div>\n <div\n class=\"description ${this.hideDescription\n ? 'hidden-visually'\n : ''}\"\n >\n ${this.description}\n </div>\n </div>\n `\n : null}\n ${!this.hideControls\n ? html`\n <div class=\"controls\">\n ${!this.tableDisabled && !this.hideTableControl\n ? html`\n <button\n class=\"control-button\"\n @click=${() => this.handleViewToggle()}\n aria-label=${this.customLabels.toggleView}\n title=${this.customLabels.toggleView}\n >\n <span slot=\"icon\">\n ${this.tableView\n ? unsafeSVG(chartIcon)\n : unsafeSVG(tableIcon)}\n </span>\n </button>\n `\n : null}\n ${!this.hideFullscreenControl\n ? html`\n <button\n class=\"control-button\"\n @click=${() => this.handleFullscreen()}\n aria-label=${this.customLabels.toggleFullscreen}\n title=${this.customLabels.toggleFullscreen}\n >\n <span slot=\"icon\">\n ${this.fullscreen\n ? unsafeSVG(minimizeIcon)\n : unsafeSVG(maximizeIcon)}\n </span>\n </button>\n `\n : null}\n ${!this.hideDownloadControl\n ? html`\n <div class=\"download\">\n <button\n tabindex=\"0\"\n class=\"control-button\"\n aria-label=${this.customLabels.downloadMenu}\n title=${this.customLabels.downloadMenu}\n >\n <span slot=\"icon\">\n ${unsafeSVG(downloadIcon)}\n </span>\n </button>\n\n <div class=\"download-menu\">\n ${!this.tableDisabled\n ? html`\n <button\n tabindex=\"0\"\n @click=${(e: Event) =>\n this.handleDownloadCsv(e)}\n >\n ${this.customLabels.downloadCsv}\n </button>\n `\n : null}\n <button\n tabindex=\"0\"\n @click=${(e: Event) =>\n this.handleDownloadImage(e, false)}\n >\n ${this.customLabels.downloadPng}\n </button>\n <button\n tabindex=\"0\"\n @click=${(e: Event) =>\n this.handleDownloadImage(e, true)}\n >\n ${this.customLabels.downloadJpg}\n </button>\n </div>\n </div>\n `\n : null}\n\n <slot name=\"controls\"></slot>\n </div>\n `\n : null}\n </div>\n `\n : null}\n\n <div>\n <slot></slot>\n </div>\n\n <figure class=\"${this.tableView ? 'hidden' : ''}\">\n <div\n class=\"canvas-container\"\n style=\"${this.width ? `width: ${this.width}px;` : ''}\n ${this.height ? `height: ${this.height}px;` : ''}\"\n >\n <canvas role=\"img\" aria-labelledby=\"titleDesc\"></canvas>\n </div>\n <figcaption>\n <div\n class=\"closed-caption ${this.hideCaptions\n ? 'hidden-visually'\n : ''}\"\n ></div>\n </figcaption>\n\n <div\n class=\"html-legend-container\"\n ?hidden=${!this.useHtmlLegend}\n ></div>\n </figure>\n\n ${!this.tableDisabled && this.tableView\n ? html`\n <div class=\"table\">\n <table>\n ${['pie', 'doughnut', 'polarArea'].includes(this.type)\n ? html`\n <thead>\n <tr>\n <th>Label</th>\n <th>Value</th>\n </tr>\n </thead>\n <tbody>\n ${this.labels.map(\n (label, i) => html`\n <tr>\n <td>${label}</td>\n <td>${this.datasets[0].data[i]}</td>\n </tr>\n `\n )}\n </tbody>\n `\n : this.type === 'matrix'\n ? html`\n <thead>\n <tr>\n <th>\n ${this.options?.scales?.y?.title?.text ||\n 'Y Axis'}\n </th>\n <th>\n ${this.options?.scales?.x?.title?.text ||\n 'X Axis'}\n </th>\n ${this.datasets.map(\n (dataset) => html`<th>${dataset.label}</th>`\n )}\n </tr>\n </thead>\n <tbody>\n ${this.datasets[0].data.map((cell: any) => {\n const xLabel = Array.isArray(this.labels)\n ? this.labels[cell.x - 1] || ''\n : (this.labels as any).x?.[cell.x - 1] || '';\n const yLabel = Array.isArray(this.labels)\n ? this.labels[cell.y - 1] || ''\n : (this.labels as any).y?.[cell.y - 1] || '';\n return html`\n <tr>\n <td>${yLabel}</td>\n <td>${xLabel}</td>\n ${this.datasets.map(\n () => html`<td>${cell.value}</td>`\n )}\n </tr>\n `;\n })}\n </tbody>\n `\n : ['boxplot', 'violin'].includes(this.type)\n ? renderBoxplotViolinTable(\n this.labels,\n this.datasets,\n this.getTableAxisLabel()\n )\n : this.type === 'tree'\n ? renderGraphTreeTable(this.datasets)\n : this.type === 'sankey'\n ? html`\n <thead>\n <tr>\n <th>\n ${this.options?.sankey?.dataTableHeaderLabels\n ?.source ?? 'Source'}\n </th>\n <th>\n ${this.options?.sankey?.dataTableHeaderLabels\n ?.target ?? 'Target'}\n </th>\n <th>\n ${this.options?.sankey?.dataTableHeaderLabels\n ?.value ?? 'Weight'}\n </th>\n </tr>\n </thead>\n <tbody>\n ${(this.datasets?.[0]?.data ?? []).map(\n (link: any) => {\n const source = link?.from ?? link?.source ?? '';\n const target = link?.to ?? link?.target ?? '';\n const value =\n link?.flow ?? link?.value ?? link?.weight ?? '';\n\n return html`\n <tr>\n <td>${source}</td>\n <td>${target}</td>\n <td>${value}</td>\n </tr>\n `;\n }\n )}\n </tbody>\n `\n : html`\n <thead>\n <tr>\n ${this.labels?.length || this.type === 'treemap'\n ? html`<th>${this.getTableAxisLabel()}</th>`\n : null}\n ${this.datasets.map(\n (dataset) => html`<th>${dataset.label}</th>`\n )}\n </tr>\n </thead>\n <tbody>\n ${this.type === 'treemap'\n ? Array.isArray(this.datasets[0].tree)\n ? this.datasets[0].tree.map(\n (_value: any) => html`\n <tr>\n <td>\n ${_value[this.datasets[0].labelKey]}\n </td>\n <td>${_value[this.datasets[0].key]}</td>\n </tr>\n `\n )\n : Object.entries(this.datasets[0].tree).map(\n (_value: any) => {\n const HtmlStrings = [];\n if (_value[1].value) {\n HtmlStrings.push(html`\n <tr>\n <td>${_value[0]}</td>\n <td>${_value[1].value}</td>\n </tr>\n `);\n } else {\n Object.entries(_value[1]).map(\n (_subValue: any) => {\n if (_subValue[1].value) {\n HtmlStrings.push(html`\n <tr>\n <td>${_subValue[0]}</td>\n <td>${_subValue[1].value}</td>\n </tr>\n `);\n } else {\n Object.entries(_subValue[1]).map(\n (_subSubValue: any) => {\n HtmlStrings.push(html`\n <tr>\n <td>${_subSubValue[0]}</td>\n <td>\n ${_subSubValue[1].value}\n </td>\n </tr>\n `);\n }\n );\n }\n }\n );\n }\n return HtmlStrings;\n }\n )\n : this.datasets[0].data.map(\n (_value: any, i: number) => {\n const IndexAxis =\n this.options.indexAxis || 'x';\n const NonIndexAxis =\n IndexAxis === 'x' ? 'y' : 'x';\n return html`\n <tr>\n ${this.labels?.length\n ? html`\n ${this.options?.scales?.[IndexAxis]\n ?.type === 'time'\n ? html`\n <td>\n ${new Date(\n this.labels[i]\n ).toLocaleString()}\n </td>\n `\n : html`\n <td>${this.labels[i]}</td>\n `}\n `\n : null}\n ${this.datasets.map((dataset) => {\n if (i >= dataset.data.length) {\n return html`<td></td>`;\n }\n\n const dataPoint = dataset.data[i];\n\n if (\n this.type === 'bubbleMap' ||\n this.type === 'choropleth'\n ) {\n return html`<td>\n ${dataPoint.value}\n </td>`;\n }\n\n if (\n this.options?.scales?.[NonIndexAxis]\n ?.type === 'time'\n ) {\n return html`\n <td>\n ${new Date(\n dataPoint\n ).toLocaleString()}\n </td>\n `;\n }\n\n if (Array.isArray(dataPoint)) {\n return html`\n <td>\n ${dataPoint[0]}, ${dataPoint[1]}\n </td>\n `;\n }\n\n if (\n [\n 'pie',\n 'doughnut',\n 'polarArea',\n ].includes(this.type)\n ) {\n return html`<td>${dataPoint}</td>`;\n }\n\n if (\n typeof dataPoint === 'object' &&\n dataPoint !== null\n ) {\n return html`\n <td>\n ${Object.keys(dataPoint).map(\n (key) => {\n const Label =\n this.options?.scales?.[key]\n ?.title?.text || key;\n const DisplayData =\n this.options?.scales?.[key]\n ?.type === 'time' &&\n dataPoint[key]\n ? new Date(\n dataPoint[key]\n ).toLocaleString()\n : dataPoint[key];\n return html`\n <div>\n <strong>${Label}:</strong>\n ${DisplayData}\n </div>\n `;\n }\n )}\n </td>\n `;\n }\n\n return html`<td>${dataPoint}</td>`;\n })}\n </tr>\n `;\n }\n )}\n </tbody>\n `}\n </table>\n </div>\n `\n : null}\n </div>\n `;\n }\n\n private _resizeChart() {\n if (this.chart) {\n this.chart.resize();\n }\n }\n\n override connectedCallback() {\n super.connectedCallback();\n try {\n const meta = document.querySelector('meta[name=\"color-scheme\"]');\n if (meta instanceof Node) {\n this._themeObserver.observe(meta, { attributes: true });\n }\n } catch (error) {\n console.warn('Failed to set up theme observer:', error);\n }\n }\n\n override disconnectedCallback() {\n this._resizeObserver.disconnect();\n this._themeObserver.disconnect();\n\n super.disconnectedCallback();\n }\n\n override firstUpdated() {\n const el = this.shadowRoot?.querySelector('.canvas-container');\n this._resizeObserver.observe(el);\n }\n\n private generateScrollableLegend(): void {\n if (!this.chart || !this.useHtmlLegend) return;\n\n const legendContainer = this.shadowRoot!.querySelector<HTMLElement>(\n '.html-legend-container'\n )!;\n legendContainer.innerHTML = '';\n\n const opts = {\n maxHeight: this.htmlLegendMaxHeight,\n ...this.htmlLegendOptions,\n onItemClick: (info: LegendClickInfo) => {\n if (this.htmlLegendOptions.onItemClick) {\n this.htmlLegendOptions.onItemClick(info);\n }\n\n this.dispatchEvent(\n new CustomEvent('on-click', {\n detail: info,\n bubbles: true,\n composed: true,\n })\n );\n },\n };\n\n renderHTMLLegend(this.chart, legendContainer, opts);\n }\n\n override updated(changedProps: any) {\n if (\n this.chart &&\n (changedProps.has('labels') ||\n changedProps.has('datasets') ||\n changedProps.has('options'))\n ) {\n this.mergeOptions().then(() => {\n this.chart.data.labels = this.labels;\n this.chart.options = this.mergedOptions;\n\n this.chart.data.datasets.forEach((dataset: any, index: number) => {\n const NewDataset = this.mergedDatasets.find(\n (newDataset: any) => newDataset.label === dataset.label\n );\n\n if (!NewDataset) {\n this.chart.data.datasets.splice(index, 1);\n }\n });\n\n this.mergedDatasets.forEach((dataset: any) => {\n const prevDataset = this.chart.data.datasets.find(\n (prevDataset: any) => prevDataset.label === dataset.label\n );\n\n if (!prevDataset) {\n this.chart.data.datasets.push(dataset);\n } else {\n Object.keys(dataset).forEach((key) => {\n prevDataset[key] = dataset[key];\n });\n }\n });\n\n this.chart.update();\n\n this.generateScrollableLegend();\n });\n }\n\n // init chart\n // check to make sure initial datasets + data have been provided\n let hasData = false;\n if (this.datasets && this.datasets.length) {\n for (const dataset of this.datasets) {\n hasData =\n dataset.data?.length > 0 ||\n dataset.tree?.length > 0 ||\n (dataset.tree && Object.keys(dataset.tree).length > 0);\n\n if (!hasData) {\n console.error('Missing data for one or more chart datasets.');\n break;\n }\n }\n }\n\n if (!this.chart && this.type && changedProps.has('datasets') && hasData) {\n this.mergeOptions().then(() => {\n this.initChart();\n });\n\n this.checkType();\n }\n\n // Re-init chart instance when type, plugins, width, height, or useHtmlLegend change.\n if (\n this.chart &&\n (changedProps.has('type') ||\n changedProps.has('plugins') ||\n changedProps.has('width') ||\n changedProps.has('height') ||\n changedProps.has('useHtmlLegend'))\n ) {\n this.mergeOptions().then(() => {\n this.initChart();\n });\n\n this.checkType();\n }\n\n if (this.chart && changedProps.has('noBorder')) {\n this.chart.resize();\n }\n }\n\n /**\n * Initializes a bar chart using the Chart.js library with provided labels, datasets,\n * and options.\n */\n private initChart() {\n const pluginSelect =\n this.type === 'meter' ? meterGaugePlugin : doughnutLabelPlugin;\n\n const chartPlugins = [\n canvasBackgroundPlugin,\n pluginSelect,\n gradientLegendPlugin,\n ...this.plugins,\n a11yPlugin,\n ];\n\n // add htmlLegendPlugin if useHtmlLegend is enabled\n if (this.useHtmlLegend) {\n chartPlugins.push(htmlLegendPlugin);\n }\n\n if (this.chart) this.chart.destroy();\n this.chart = new Chart(this.canvas, {\n type: this.type === 'meter' ? 'doughnut' : this.type,\n data: { labels: this.labels, datasets: this.mergedDatasets },\n options: this.mergedOptions,\n plugins: chartPlugins,\n });\n\n this.generateScrollableLegend();\n }\n\n /**\n * Merges various chart type options and dataset options to create a\n * final set of options for a chart.\n */\n private async mergeOptions() {\n const radialTypes = ['pie', 'doughnut', 'radar', 'polarArea', 'meter'];\n const ignoredTypes = [\n 'choropleth',\n 'treemap',\n 'bubbleMap',\n 'dendrogram',\n 'tree',\n ];\n\n // dynamically import type-specific configs\n const additionalTypeImports: any[] = [];\n this.datasets.forEach((dataset) => {\n if (dataset.type) {\n additionalTypeImports.push(\n import(`../../common/config/chartTypes/${dataset.type}.js`)\n );\n }\n });\n const chartTypeConfigs = await Promise.all([\n import(`../../common/config/chartTypes/${this.type}.js`),\n ...additionalTypeImports,\n ]);\n\n let mergedOptions: any = globalOptions(this);\n mergedOptions.plugins = mergedOptions.plugins || {};\n\n if (this.useHtmlLegend) {\n mergedOptions.plugins.legend = { display: false };\n mergedOptions.plugins.htmlLegend = mergedOptions.plugins.htmlLegend || {};\n } else {\n mergedOptions.plugins.legend = mergedOptions.plugins.legend || {};\n mergedOptions.plugins.legend.display = true;\n }\n\n // merge radial vs non-radial defaults\n if (radialTypes.includes(this.type)) {\n mergedOptions = deepmerge(mergedOptions, globalOptionsRadial(this));\n } else if (!ignoredTypes.includes(this.type)) {\n mergedOptions = deepmerge(mergedOptions, globalOptionsNonRadial(this));\n }\n\n const mergedDatasets: any[] = JSON.parse(JSON.stringify(this.datasets));\n\n chartTypeConfigs.forEach((cfg: any) => {\n mergedOptions = deepmerge(mergedOptions, cfg.options(this));\n mergedDatasets.forEach((ds: any, i: number) => {\n if ((!ds.type && cfg.type === this.type) || ds.type === cfg.type) {\n mergedDatasets[i] = deepmerge(ds, cfg.datasetOptions(this, i));\n }\n });\n });\n\n if (this.options) {\n mergedOptions = deepmerge(mergedOptions, this.options);\n }\n this.mergedOptions = mergedOptions;\n\n mergedDatasets.forEach((ds: object, i: number) => {\n const customDeep = deepmergeCustom({ mergeArrays: false });\n mergedDatasets[i] = customDeep(ds, this.datasets[i]);\n });\n this.mergedDatasets = mergedDatasets;\n }\n\n private getTableAxisLabel() {\n let label = '';\n\n if (this.options?.indexAxis === 'y') {\n if (this.options?.scales?.y?.title?.text) {\n label = this.options?.scales.y.title.text;\n } else {\n label = 'Y Axis';\n }\n } else {\n if (this.options?.scales?.x?.title?.text) {\n label = this.options?.scales.x.title.text;\n } else {\n label = 'X Axis';\n }\n }\n\n return label;\n }\n\n private handleViewToggle() {\n this.tableView = !this.tableView;\n }\n\n private checkType() {\n // chart types that can't have a data table view\n const blacklist: any = ['dendrogram', 'forceDirectedGraph', 'tree'];\n this.tableDisabled = blacklist.includes(this.type);\n }\n\n private handleDownloadImage(e: Event, jpeg: boolean) {\n e.preventDefault();\n\n const imgFormat = jpeg ? 'image/jpeg' : 'image/png';\n const fileExt = jpeg ? 'jpg' : 'png';\n\n if (this.useHtmlLegend && this.chart) {\n if (['doughnut', 'pie'].includes(this.type)) {\n this.exportSimpleCanvasOnly(imgFormat, fileExt);\n return;\n }\n\n const originalConfig = {\n options: JSON.parse(JSON.stringify(this.chart.options)),\n data: JSON.parse(JSON.stringify(this.chart.data)),\n type: this.chart.config.type,\n };\n\n const originalHidden = this.chart.data.datasets.map(\n (_: unknown, i: number) => this.chart.getDatasetMeta(i).hidden\n );\n\n try {\n if (!this.chart.options.plugins) {\n this.chart.options.plugins = {};\n }\n\n if (!this.chart.options.plugins.legend) {\n this.chart.options.plugins.legend = {};\n }\n\n this.chart.options.plugins.legend.display = true;\n this.chart.options.plugins.legend.position = 'bottom';\n this.chart.options.plugins.legend.labels = {\n boxWidth: 12,\n boxHeight: 12,\n padding: 10,\n font: {\n size: 12,\n },\n };\n\n if (!this.chart.options.layout) {\n this.chart.options.layout = { padding: { bottom: 40 } };\n } else if (!this.chart.options.layout.padding) {\n this.chart.options.layout.padding = { bottom: 40 };\n } else if (typeof this.chart.options.layout.padding === 'number') {\n this.chart.options.layout.padding = {\n top: this.chart.options.layout.padding,\n right: this.chart.options.layout.padding,\n bottom: Math.max(this.chart.options.layout.padding, 40),\n left: this.chart.options.layout.padding,\n };\n } else if (this.chart.options.layout.padding) {\n this.chart.options.layout.padding.bottom = Math.max(\n this.chart.options.layout.padding.bottom || 0,\n 40\n );\n }\n\n this.chart.update('none');\n\n const context = this.canvas.getContext('2d');\n if (!context) throw new Error('Could not get canvas context');\n\n const color = getTokenThemeVal('--kd-color-background-page-default');\n context.save();\n context.globalCompositeOperation = 'destination-over';\n context.fillStyle = color;\n context.fillRect(0, 0, this.canvas.width, this.canvas.height);\n\n const imgData = this.chart.toBase64Image(imgFormat, 1);\n\n const a = document.createElement('a');\n a.href = imgData;\n a.download = this.chartTitle + '.' + fileExt;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n\n context.restore();\n this.chart.options = originalConfig.options;\n originalHidden.forEach((hidden: boolean, i: number) => {\n this.chart.getDatasetMeta(i).hidden = hidden;\n });\n this.chart.update();\n } catch (error) {\n console.error('Error exporting chart with legend:', error);\n this.exportCanvasOnly(imgFormat, fileExt);\n }\n } else {\n this.exportCanvasOnly(imgFormat, fileExt);\n }\n }\n\n private exportCanvasOnly(imgFormat: string, fileExt: string) {\n const context = this.canvas.getContext('2d');\n if (!context || !this.chart) return;\n\n const color = getTokenThemeVal('--kd-color-background-page-default');\n context.save();\n context.globalCompositeOperation = 'destination-over';\n context.fillStyle = color;\n context.fillRect(0, 0, this.canvas.width, this.canvas.height);\n\n const a = document.createElement('a');\n a.href = this.chart.toBase64Image(imgFormat, 1);\n a.download = this.chartTitle + '.' + fileExt;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n\n context.restore();\n }\n\n private exportSimpleCanvasOnly(imgFormat: string, fileExt: string) {\n const context = this.canvas.getContext('2d');\n if (!context || !this.chart) return;\n\n try {\n const originalOptions = JSON.parse(JSON.stringify(this.chart.options));\n\n context.save();\n const color = getTokenThemeVal('--kd-color-background-page-default');\n context.globalCompositeOperation = 'destination-over';\n context.fillStyle = color;\n context.fillRect(0, 0, this.canvas.width, this.canvas.height);\n\n this.chart.options = {\n ...this.chart.options,\n plugins: {\n legend: {\n display: true,\n position: 'bottom',\n labels: {\n boxWidth: 12,\n boxHeight: 12,\n padding: 10,\n font: { size: 12 },\n },\n },\n datalabels: { display: false, formatter: null },\n tooltip: { enabled: false },\n doughnutLabel: { enabled: false },\n },\n layout: {\n padding: { bottom: 40 },\n },\n };\n\n this.chart.update('none');\n\n const imgData = this.chart.toBase64Image(imgFormat, 1);\n\n const a = document.createElement('a');\n a.href = imgData;\n a.download = this.chartTitle + '.' + fileExt;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n\n context.restore();\n this.chart.options = originalOptions;\n this.chart.update();\n } catch (error) {\n console.error('Error in exportSimpleCanvasOnly:', error);\n this.exportCanvasOnly(imgFormat, fileExt);\n }\n }\n\n private handleDownloadCsv(e: Event) {\n e.preventDefault();\n let csv = '';\n\n // Special handling for tree and dendrogram charts\n if (this.type === 'tree' || this.type === 'dendrogram') {\n csv += convertTreeDataToCSV(this.datasets);\n } else {\n // Standard CSV handling for other chart types\n for (let i = 0; i < this.chart.data.datasets.length; i++) {\n csv += convertChartDataToCSV({\n data: this.chart.data.datasets[i],\n labels: this.labels,\n });\n }\n }\n\n if (csv == null || csv === '') return;\n\n const filename = this.chartTitle + '.csv';\n if (!csv.match(/^data:text\\/csv/i)) {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n }\n\n // not sure if anything below this comment works\n const data = encodeURI(csv);\n const link = document.createElement('a');\n link.setAttribute('href', data);\n link.setAttribute('download', filename);\n document.body.appendChild(link); // Required for FF\n link.click();\n document.body.removeChild(link);\n }\n\n private handleFullscreen() {\n if (this.shadowRoot?.fullscreenElement) {\n document.exitFullscreen();\n } else {\n this.container.requestFullscreen();\n }\n }\n\n private handleFullscreenChange() {\n this.fullscreen = this.shadowRoot?.fullscreenElement !== null;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kd-chart': KDChart;\n }\n}\n"],"names":["Chart","register","ChoroplethController","BubbleMapController","GeoFeature","ColorScale","SizeScale","ProjectionScale","TreemapController","TreemapElement","MatrixController","MatrixElement","BoxPlotController","BoxAndWiskers","ViolinController","Violin","DendrogramController","TreeController","GraphController","ForceDirectedGraphController","EdgeLine","SankeyController","Flow","annotationPlugin","datalabelsPlugin","KDChart","customElement","LitElement","_classThis","_classSuper","_KDChart_chartTitle_accessor_storage","set","this","__runInitializers","_chartTitle_initializers","_KDChart_description_accessor_storage","_chartTitle_extraInitializers","_description_initializers","_KDChart_type_accessor_storage","_description_extraInitializers","_type_initializers","_KDChart_labels_accessor_storage","_type_extraInitializers","_labels_initializers","_KDChart_datasets_accessor_storage","_labels_extraInitializers","_datasets_initializers","_KDChart_options_accessor_storage","_datasets_extraInitializers","_options_initializers","_KDChart_plugins_accessor_storage","_options_extraInitializers","_plugins_initializers","_KDChart_height_accessor_storage","_plugins_extraInitializers","_height_initializers","_KDChart_width_accessor_storage","_height_extraInitializers","_width_initializers","_KDChart_hideDescription_accessor_storage","_width_extraInitializers","_hideDescription_initializers","_KDChart_hideCaptions_accessor_storage","_hideDescription_extraInitializers","_hideCaptions_initializers","_KDChart_hideHeader_accessor_storage","_hideCaptions_extraInitializers","_hideHeader_initializers","_KDChart_hideControls_accessor_storage","_hideHeader_extraInitializers","_hideControls_initializers","_KDChart_hideTableControl_accessor_storage","_hideControls_extraInitializers","_hideTableControl_initializers","_KDChart_hideFullscreenControl_accessor_storage","_hideTableControl_extraInitializers","_hideFullscreenControl_initializers","_KDChart_hideDownloadControl_accessor_storage","_hideFullscreenControl_extraInitializers","_hideDownloadControl_initializers","_KDChart_noBorder_accessor_storage","_hideDownloadControl_extraInitializers","_noBorder_initializers","_KDChart_customLabels_accessor_storage","_noBorder_extraInitializers","_customLabels_initializers","toggleView","toggleFullscreen","downloadMenu","downloadCsv","downloadPng","downloadJpg","_KDChart_fullscreen_accessor_storage","_customLabels_extraInitializers","_fullscreen_initializers","_KDChart_useHtmlLegend_accessor_storage","_fullscreen_extraInitializers","_useHtmlLegend_initializers","_KDChart_htmlLegendMaxHeight_accessor_storage","_useHtmlLegend_extraInitializers","_htmlLegendMaxHeight_initializers","_KDChart_htmlLegendOptions_accessor_storage","_htmlLegendMaxHeight_extraInitializers","_htmlLegendOptions_initializers","_KDChart_container_accessor_storage","_htmlLegendOptions_extraInitializers","_container_initializers","_KDChart_canvas_accessor_storage","_container_extraInitializers","_canvas_initializers","_KDChart_ccDiv_accessor_storage","_canvas_extraInitializers","_ccDiv_initializers","_KDChart_chart_accessor_storage","_ccDiv_extraInitializers","_chart_initializers","_KDChart_tableView_accessor_storage","_chart_extraInitializers","_tableView_initializers","_KDChart_tableDisabled_accessor_storage","_tableView_extraInitializers","_tableDisabled_initializers","_KDChart_mergedOptions_accessor_storage","_tableDisabled_extraInitializers","_mergedOptions_initializers","_KDChart_mergedDatasets_accessor_storage","_mergedOptions_extraInitializers","_mergedDatasets_initializers","_KDChart__widget_accessor_storage","_mergedDatasets_extraInitializers","__widget_initializers","_resizeObserver","ResizeObserver","debounce","_resizeChart","_themeObserver","MutationObserver","chart","mergeOptions","then","initChart","chartTitle","__classPrivateFieldGet","value","__classPrivateFieldSet","description","type","labels","datasets","options","plugins","height","width","hideDescription","hideCaptions","hideHeader","hideControls","hideTableControl","hideFullscreenControl","hideDownloadControl","noBorder","customLabels","fullscreen","useHtmlLegend","htmlLegendMaxHeight","htmlLegendOptions","container","canvas","ccDiv","tableView","tableDisabled","mergedOptions","mergedDatasets","_widget","render","Classes","widget","html","classMap","handleFullscreenChange","handleViewToggle","unsafeSVG","chartIcon","tableIcon","handleFullscreen","minimizeIcon","maximizeIcon","downloadIcon","e","handleDownloadCsv","handleDownloadImage","includes","map","label","i","data","_d","_c","_b","_a","scales","y","title","text","_h","_g","_f","_e","x","dataset","cell","xLabel","Array","isArray","yLabel","renderBoxplotViolinTable","getTableAxisLabel","renderGraphTreeTable","_m","_l","_k","_j","sankey","dataTableHeaderLabels","source","_r","_q","_p","_o","target","_v","_u","_t","_s","_y","_w","_x","link","from","to","flow","weight","_z","length","tree","_value","labelKey","key","Object","entries","HtmlStrings","push","_subValue","_subSubValue","IndexAxis","indexAxis","NonIndexAxis","Date","toLocaleString","dataPoint","keys","Label","DisplayData","resize","connectedCallback","super","meta","document","querySelector","Node","observe","attributes","error","console","warn","disconnectedCallback","disconnect","firstUpdated","el","shadowRoot","generateScrollableLegend","legendContainer","innerHTML","opts","maxHeight","onItemClick","info","dispatchEvent","CustomEvent","detail","bubbles","composed","renderHTMLLegend","updated","changedProps","has","forEach","index","find","newDataset","splice","prevDataset","update","hasData","checkType","pluginSelect","meterGaugePlugin","doughnutLabelPlugin","chartPlugins","canvasBackgroundPlugin","gradientLegendPlugin","a11yPlugin","htmlLegendPlugin","destroy","additionalTypeImports","__variableDynamicImportRuntime0__","chartTypeConfigs","Promise","all","__variableDynamicImportRuntime1__","globalOptions","legend","display","htmlLegend","deepmerge","globalOptionsRadial","globalOptionsNonRadial","JSON","parse","stringify","cfg","ds","datasetOptions","customDeep","deepmergeCustom","mergeArrays","jpeg","preventDefault","imgFormat","fileExt","exportSimpleCanvasOnly","originalConfig","config","originalHidden","_","getDatasetMeta","hidden","position","boxWidth","boxHeight","padding","font","size","layout","top","right","bottom","Math","max","left","context","getContext","Error","color","getTokenThemeVal","save","globalCompositeOperation","fillStyle","fillRect","imgData","toBase64Image","a","createElement","href","download","body","appendChild","click","removeChild","restore","exportCanvasOnly","originalOptions","datalabels","formatter","tooltip","enabled","doughnutLabel","csv","convertTreeDataToCSV","convertChartDataToCSV","filename","match","encodeURI","setAttribute","fullscreenElement","exitFullscreen","requestFullscreen","_chartTitle_decorators","property","String","_description_decorators","_type_decorators","_labels_decorators","_datasets_decorators","_options_decorators","_plugins_decorators","_height_decorators","Number","_width_decorators","_hideDescription_decorators","Boolean","_hideCaptions_decorators","_hideHeader_decorators","_hideControls_decorators","_hideTableControl_decorators","_hideFullscreenControl_decorators","_hideDownloadControl_decorators","_noBorder_decorators","_customLabels_decorators","_fullscreen_decorators","state","_useHtmlLegend_decorators","reflect","_htmlLegendOptions_decorators","query","_chart_decorators","_tableView_decorators","_tableDisabled_decorators","_mergedOptions_decorators","_mergedDatasets_decorators","__widget_decorators","__esDecorate","kind","name","static","private","access","obj","get","metadata","_metadata","_htmlLegendMaxHeight_decorators","_container_decorators","_canvas_decorators","_ccDiv_decorators","__widget_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","ChartScss"],"mappings":"imKA0DAA,EAAMC,SACJC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,OA4CWC,GAAO,2LADnBC,EAAc,sBACcC,6XAARC,GAAA,cAAQC,qCAKlBC,EAAAC,IAAAC,KAAAC,EAAAD,KAAAE,GAAa,KAIbC,EAAAJ,IAAAC,MAAAC,EAAAD,KAAAI,IAAAH,EAAAD,KAAAK,GAAc,MAIdC,EAAAP,IAAAC,MAAAC,EAAAD,KAAAO,IAAAN,EAAAD,KAAAQ,GAAY,MAIZC,EAAAV,IAAAC,MAAAC,EAAAD,KAAAU,IAAAT,EAAAD,KAAAW,QAAA,KAIAC,EAAAb,IAAAC,MAAAC,EAAAD,KAAAa,IAAAZ,EAAAD,KAAAc,QAAA,KAIAC,EAAAhB,IAAAC,MAAAC,EAAAD,KAAAgB,IAAAf,EAAAD,KAAAiB,GAAe,CAAA,KAIfC,EAAAnB,IAAAC,MAAAC,EAAAD,KAAAmB,IAAAlB,EAAAD,KAAAoB,GAAe,MAIfC,EAAAtB,IAAAC,MAAAC,EAAAD,KAAAsB,IAAArB,EAAAD,KAAAuB,GAAc,QAIdC,EAAAzB,IAAAC,MAAAC,EAAAD,KAAAyB,IAAAxB,EAAAD,KAAA0B,GAAa,QAIbC,EAAA5B,IAAAC,MAAAC,EAAAD,KAAA4B,IAAA3B,EAAAD,KAAA6B,IAAkB,KAIlBC,EAAA/B,IAAAC,MAAAC,EAAAD,KAAA+B,IAAA9B,EAAAD,KAAAgC,IAAe,KAIfC,EAAAlC,IAAAC,MAAAC,EAAAD,KAAAkC,IAAAjC,EAAAD,KAAAmC,IAAa,KAIbC,EAAArC,IAAAC,MAAAC,EAAAD,KAAAqC,IAAApC,EAAAD,KAAAsC,IAAe,KAIfC,EAAAxC,IAAAC,MAAAC,EAAAD,KAAAwC,IAAAvC,EAAAD,KAAAyC,IAAmB,KAInBC,EAAA3C,IAAAC,MAAAC,EAAAD,KAAA2C,IAAA1C,EAAAD,KAAA4C,IAAwB,KAIxBC,EAAA9C,IAAAC,MAAAC,EAAAD,KAAA8C,IAAA7C,EAAAD,KAAA+C,IAAsB,KAItBC,EAAAjD,IAAAC,MAAAC,EAAAD,KAAAiD,IAAAhD,EAAAD,KAAAkD,IAAW,KAIXC,EAAApD,IAAAC,MAAAC,EAAAD,KAAAoD,IAAAnD,EAAAD,KAAAqD,GAAe,CACtBC,WAAY,mBACZC,iBAAkB,oBAClBC,aAAc,gBACdC,YAAa,kBACbC,YAAa,kBACbC,YAAa,sBAONC,EAAA7D,IAAAC,MAAAC,EAAAD,KAAA6D,IAAA5D,EAAAD,KAAA8D,IAAa,KAMbC,EAAAhE,IAAAC,MAAAC,EAAAD,KAAAgE,IAAA/D,EAAAD,KAAAiE,IAAgB,KAIhBC,EAAAnE,IAAAC,MAAAC,EAAAD,KAAAmE,IAAAlE,EAAAD,KAAAoE,GAAsB,OAItBC,EAAAtE,IAAAC,MAAAC,EAAAD,KAAAsE,IAAArE,EAAAD,KAAAuE,GAAuC,CAAA,KAOvCC,EAAAzE,IAAAC,MAAAC,EAAAD,KAAAyE,IAAAxE,EAAAD,KAAA0E,QAAA,KAOAC,GAAA5E,IAAAC,MAAAC,EAAAD,KAAA4E,IAAA3E,EAAAD,KAAA6E,QAAA,KAOAC,GAAA/E,IAAAC,MAAAC,EAAAD,KAAA+E,IAAA9E,EAAAD,KAAAgF,QAAA,KAMAC,GAAAlF,IAAAC,MAAAC,EAAAD,KAAAkF,IAAAjF,EAAAD,KAAAmF,GAAa,QAMbC,GAAArF,IAAAC,MAAAC,EAAAD,KAAAqF,IAAApF,EAAAD,KAAAsF,IAAY,KAMZC,GAAAxF,IAAAC,MAAAC,EAAAD,KAAAwF,IAAAvF,EAAAD,KAAAyF,IAAgB,KAMhBC,GAAA3F,IAAAC,MAAAC,EAAAD,KAAA2F,IAAA1F,EAAAD,KAAA4F,GAAqB,CAAA,KAMrBC,GAAA9F,IAAAC,MAAAC,EAAAD,KAAA8F,IAAA7F,EAAAD,KAAA+F,GAAsB,CAAA,KAMtBC,GAAAjG,IAAAC,MAAAC,EAAAD,KAAAiG,IAAAhG,EAAAD,KAAAkG,IAAU,KAKnBlG,KAAAmG,4BAAuB,IAAIC,eACzBC,GAAS,KACPrG,KAAKsG,cAAc,MAOvBtG,KAAAuG,eAAsB,IAAIC,kBAAiB,KACrCxG,KAAKyG,OACPzG,KAAK0G,eAAeC,MAAK,KACvB3G,KAAK4G,WAAW,GAEpB,GAm6BJ,CA9kCE,cAASC,GAAU,OAAAC,EAAA9G,KAAAF,EAAA,IAAA,CAAnB,cAAS+G,CAAUE,GAAAC,EAAAhH,KAAAF,EAAAiH,EAAA,IAAA,CAInB,eAASE,GAAW,OAAAH,EAAA9G,KAAAG,EAAA,IAAA,CAApB,eAAS8G,CAAWF,GAAAC,EAAAhH,KAAAG,EAAA4G,EAAA,IAAA,CAIpB,QAASG,GAAI,OAAAJ,EAAA9G,KAAAM,EAAA,IAAA,CAAb,QAAS4G,CAAIH,GAAAC,EAAAhH,KAAAM,EAAAyG,EAAA,IAAA,CAIb,UAASI,GAAM,OAAAL,EAAA9G,KAAAS,EAAA,IAAA,CAAf,UAAS0G,CAAMJ,GAAAC,EAAAhH,KAAAS,EAAAsG,EAAA,IAAA,CAIf,YAASK,GAAQ,OAAAN,EAAA9G,KAAAY,EAAA,IAAA,CAAjB,YAASwG,CAAQL,GAAAC,EAAAhH,KAAAY,EAAAmG,EAAA,IAAA,CAIjB,WAASM,GAAO,OAAAP,EAAA9G,KAAAe,EAAA,IAAA,CAAhB,WAASsG,CAAON,GAAAC,EAAAhH,KAAAe,EAAAgG,EAAA,IAAA,CAIhB,WAASO,GAAO,OAAAR,EAAA9G,KAAAkB,EAAA,IAAA,CAAhB,WAASoG,CAAOP,GAAAC,EAAAhH,KAAAkB,EAAA6F,EAAA,IAAA,CAIhB,UAASQ,GAAM,OAAAT,EAAA9G,KAAAqB,EAAA,IAAA,CAAf,UAASkG,CAAMR,GAAAC,EAAAhH,KAAAqB,EAAA0F,EAAA,IAAA,CAIf,SAASS,GAAK,OAAAV,EAAA9G,KAAAwB,EAAA,IAAA,CAAd,SAASgG,CAAKT,GAAAC,EAAAhH,KAAAwB,EAAAuF,EAAA,IAAA,CAId,mBAASU,GAAe,OAAAX,EAAA9G,KAAA2B,EAAA,IAAA,CAAxB,mBAAS8F,CAAeV,GAAAC,EAAAhH,KAAA2B,EAAAoF,EAAA,IAAA,CAIxB,gBAASW,GAAY,OAAAZ,EAAA9G,KAAA8B,EAAA,IAAA,CAArB,gBAAS4F,CAAYX,GAAAC,EAAAhH,KAAA8B,EAAAiF,EAAA,IAAA,CAIrB,cAASY,GAAU,OAAAb,EAAA9G,KAAAiC,EAAA,IAAA,CAAnB,cAAS0F,CAAUZ,GAAAC,EAAAhH,KAAAiC,EAAA8E,EAAA,IAAA,CAInB,gBAASa,GAAY,OAAAd,EAAA9G,KAAAoC,EAAA,IAAA,CAArB,gBAASwF,CAAYb,GAAAC,EAAAhH,KAAAoC,EAAA2E,EAAA,IAAA,CAIrB,oBAASc,GAAgB,OAAAf,EAAA9G,KAAAuC,EAAA,IAAA,CAAzB,oBAASsF,CAAgBd,GAAAC,EAAAhH,KAAAuC,EAAAwE,EAAA,IAAA,CAIzB,yBAASe,GAAqB,OAAAhB,EAAA9G,KAAA0C,EAAA,IAAA,CAA9B,yBAASoF,CAAqBf,GAAAC,EAAAhH,KAAA0C,EAAAqE,EAAA,IAAA,CAI9B,uBAASgB,GAAmB,OAAAjB,EAAA9G,KAAA6C,EAAA,IAAA,CAA5B,uBAASkF,CAAmBhB,GAAAC,EAAAhH,KAAA6C,EAAAkE,EAAA,IAAA,CAI5B,YAASiB,GAAQ,OAAAlB,EAAA9G,KAAAgD,EAAA,IAAA,CAAjB,YAASgF,CAAQjB,GAAAC,EAAAhH,KAAAgD,EAAA+D,EAAA,IAAA,CAIjB,gBAASkB,GAAY,OAAAnB,EAAA9G,KAAAmD,EAAA,IAAA,CAArB,gBAAS8E,CAAYlB,GAAAC,EAAAhH,KAAAmD,EAAA4D,EAAA,IAAA,CAarB,cAASmB,GAAU,OAAApB,EAAA9G,KAAA4D,EAAA,IAAA,CAAnB,cAASsE,CAAUnB,GAAAC,EAAAhH,KAAA4D,EAAAmD,EAAA,IAAA,CAMnB,iBAASoB,GAAa,OAAArB,EAAA9G,KAAA+D,EAAA,IAAA,CAAtB,iBAASoE,CAAapB,GAAAC,EAAAhH,KAAA+D,EAAAgD,EAAA,IAAA,CAItB,uBAASqB,GAAmB,OAAAtB,EAAA9G,KAAAkE,EAAA,IAAA,CAA5B,uBAASkE,CAAmBrB,GAAAC,EAAAhH,KAAAkE,EAAA6C,EAAA,IAAA,CAI5B,qBAASsB,GAAiB,OAAAvB,EAAA9G,KAAAqE,EAAA,IAAA,CAA1B,qBAASgE,CAAiBtB,GAAAC,EAAAhH,KAAAqE,EAAA0C,EAAA,IAAA,CAO1B,aAASuB,GAAS,OAAAxB,EAAA9G,KAAAwE,EAAA,IAAA,CAAlB,aAAS8D,CAASvB,GAAAC,EAAAhH,KAAAwE,EAAAuC,EAAA,IAAA,CAOlB,UAASwB,GAAM,OAAAzB,EAAA9G,KAAA2E,GAAA,IAAA,CAAf,UAAS4D,CAAMxB,GAAAC,EAAAhH,KAAA2E,GAAAoC,EAAA,IAAA,CAOf,SAASyB,GAAK,OAAA1B,EAAA9G,KAAA8E,GAAA,IAAA,CAAd,SAAS0D,CAAKzB,GAAAC,EAAAhH,KAAA8E,GAAAiC,EAAA,IAAA,CAMd,SAASN,GAAK,OAAAK,EAAA9G,KAAAiF,GAAA,IAAA,CAAd,SAASwB,CAAKM,GAAAC,EAAAhH,KAAAiF,GAAA8B,EAAA,IAAA,CAMd,aAAS0B,GAAS,OAAA3B,EAAA9G,KAAAoF,GAAA,IAAA,CAAlB,aAASqD,CAAS1B,GAAAC,EAAAhH,KAAAoF,GAAA2B,EAAA,IAAA,CAMlB,iBAAS2B,GAAa,OAAA5B,EAAA9G,KAAAuF,GAAA,IAAA,CAAtB,iBAASmD,CAAa3B,GAAAC,EAAAhH,KAAAuF,GAAAwB,EAAA,IAAA,CAMtB,iBAAS4B,GAAa,OAAA7B,EAAA9G,KAAA0F,GAAA,IAAA,CAAtB,iBAASiD,CAAa5B,GAAAC,EAAAhH,KAAA0F,GAAAqB,EAAA,IAAA,CAMtB,kBAAS6B,GAAc,OAAA9B,EAAA9G,KAAA6F,GAAA,IAAA,CAAvB,kBAAS+C,CAAc7B,GAAAC,EAAAhH,KAAA6F,GAAAkB,EAAA,IAAA,CAMvB,WAAS8B,GAAO,OAAA/B,EAAA9G,KAAAgG,GAAA,IAAA,CAAhB,WAAS6C,CAAO9B,GAAAC,EAAAhH,KAAAgG,GAAAe,EAAA,IAAA,CAsBP,MAAA+B,uDACP,MAAMC,EAAU,CACdT,WAAW,EACXJ,WAAYlI,KAAKkI,WACjB,YAAalI,KAAKgI,UAAYhI,KAAK6I,QACnCG,OAAQhJ,KAAK6I,SAGf,OAAOI,CAAI;;gBAECC,EAASH;4BACG,IAAM/I,KAAKmJ;;UAE5BnJ,KAAK2H,YAAe3H,KAAK4H,aA4GxB,KA3GAqB,CAAI;;kBAEGjJ,KAAK2H,WAkBJ,KAjBAsB,CAAI;;;;;4BAKIjJ,KAAK6G;;;;+CAIc7G,KAAKyH,gBACtB,kBACA;;4BAEFzH,KAAKiH;;;;kBAKdjH,KAAK4H,aAmFJ,KAlFAqB,CAAI;;0BAEGjJ,KAAK0I,eAAkB1I,KAAK6H,iBAe3B,KAdAoB,CAAI;;;yCAGS,IAAMjJ,KAAKoJ;6CACPpJ,KAAKiI,aAAa3E;wCACvBtD,KAAKiI,aAAa3E;;;oCAGtBtD,KAAKyI,UACHY,GAAUC,IACVD,GAAUE;;;;0BAKrBvJ,KAAK8H,sBAeJ,KAdAmB,CAAI;;;yCAGS,IAAMjJ,KAAKwJ;6CACPxJ,KAAKiI,aAAa1E;wCACvBvD,KAAKiI,aAAa1E;;;oCAGtBvD,KAAKkI,WACHmB,GAAUI,IACVJ,GAAUK;;;;0BAKrB1J,KAAK+H,oBA2CJ,KA1CAkB,CAAI;;;;;+CAKejJ,KAAKiI,aAAazE;0CACvBxD,KAAKiI,aAAazE;;;sCAGtB6F,GAAUM;;;;;oCAKX3J,KAAK0I,cAUJ,KATAO,CAAI;;;mDAGUW,GACR5J,KAAK6J,kBAAkBD;;4CAEvB5J,KAAKiI,aAAaxE;;;;;6CAMhBmG,GACR5J,KAAK8J,oBAAoBF,GAAG;;sCAE5B5J,KAAKiI,aAAavE;;;;6CAIVkG,GACR5J,KAAK8J,oBAAoBF,GAAG;;sCAE5B5J,KAAKiI,aAAatE;;;;;;;;;;;;;;;;yBAmB/B3D,KAAKyI,UAAY,SAAW;;;qBAGhCzI,KAAKwH,MAAQ,UAAUxH,KAAKwH,WAAa;cAChDxH,KAAKuH,OAAS,WAAWvH,KAAKuH,YAAc;;;;;;sCAMpBvH,KAAK0H,aACzB,kBACA;;;;;;uBAMK1H,KAAKmI;;;;WAIjBnI,KAAK0I,eAAiB1I,KAAKyI,UAC1BQ,CAAI;;;oBAGI,CAAC,MAAO,WAAY,aAAac,SAAS/J,KAAKkH,MAC7C+B,CAAI;;;;;;;;4BAQEjJ,KAAKmH,OAAO6C,KACZ,CAACC,EAAOC,IAAMjB,CAAI;;sCAERgB;sCACAjK,KAAKoH,SAAS,GAAG+C,KAAKD;;;;wBAMxB,WAAdlK,KAAKkH,KACL+B,CAAI;;;;yCAIMmB,EAAuB,QAAvBC,EAAoB,QAApBC,EAAY,QAAZC,EAAAvK,KAAKqH,eAAO,IAAAkD,OAAA,EAAAA,EAAEC,cAAM,IAAAF,OAAA,EAAAA,EAAEG,SAAC,IAAAJ,OAAA,EAAAA,EAAEK,4BAAOC,OAClC;;;yCAGEC,EAAuB,QAAvBC,EAAoB,QAApBC,EAAY,QAAZC,EAAA/K,KAAKqH,eAAO,IAAA0D,OAAA,EAAAA,EAAEP,cAAM,IAAAM,OAAA,EAAAA,EAAEE,SAAC,IAAAH,OAAA,EAAAA,EAAEH,4BAAOC,OAClC;;8BAEA3K,KAAKoH,SAAS4C,KACbiB,GAAYhC,CAAI,OAAOgC,EAAQhB;;;;4BAKlCjK,KAAKoH,SAAS,GAAG+C,KAAKH,KAAKkB,YAC3B,MAAMC,EAASC,MAAMC,QAAQrL,KAAKmH,QAC9BnH,KAAKmH,OAAO+D,EAAKF,EAAI,IAAM,IACL,QAAtBT,EAACvK,KAAKmH,OAAe6D,SAAC,IAAAT,OAAA,EAAAA,EAAGW,EAAKF,EAAI,KAAM,GACtCM,EAASF,MAAMC,QAAQrL,KAAKmH,QAC9BnH,KAAKmH,OAAO+D,EAAKT,EAAI,IAAM,IACL,QAAtBH,EAACtK,KAAKmH,OAAesD,SAAC,IAAAH,OAAA,EAAAA,EAAGY,EAAKT,EAAI,KAAM,GAC5C,OAAOxB,CAAI;;sCAEDqC;sCACAH;kCACJnL,KAAKoH,SAAS4C,KACd,IAAMf,CAAI,OAAOiC,EAAKnE;;6BAG3B;;wBAIP,CAAC,UAAW,UAAUgD,SAAS/J,KAAKkH,MACpCqE,EACEvL,KAAKmH,OACLnH,KAAKoH,SACLpH,KAAKwL,qBAEO,SAAdxL,KAAKkH,KACLuE,GAAqBzL,KAAKoH,UACZ,WAAdpH,KAAKkH,KACL+B,CAAI;;;;wCAIMyC,EAA2C,QAA3CC,EAAoB,QAApBC,EAAY,QAAZC,EAAA7L,KAAKqH,eAAO,IAAAwE,OAAA,EAAAA,EAAEC,cAAM,IAAAF,OAAA,EAAAA,EAAEG,6BAAqB,IAAAJ,OAAA,EAAAA,EACzCK,sBAAU;;;wCAGZC,EAA2C,QAA3CC,EAAoB,QAApBC,EAAY,QAAZC,EAAApM,KAAKqH,eAAO,IAAA+E,OAAA,EAAAA,EAAEN,cAAM,IAAAK,OAAA,EAAAA,EAAEJ,6BAAqB,IAAAG,OAAA,EAAAA,EACzCG,sBAAU;;;wCAGZC,EAA2C,QAA3CC,EAAoB,QAApBC,EAAY,QAAZC,EAAAzM,KAAKqH,eAAO,IAAAoF,OAAA,EAAAA,EAAEX,cAAM,IAAAU,OAAA,EAAAA,EAAET,6BAAqB,IAAAQ,OAAA,EAAAA,EACzCxF,qBAAS;;;;;6BAKU,QAAxB2F,EAAkB,UAAL,QAAbC,EAAA3M,KAAKoH,gBAAQ,IAAAuF,OAAA,EAAAA,EAAG,UAAE,IAAAC,OAAA,EAAAA,EAAEzC,YAAI,IAAAuC,EAAAA,EAAI,IAAI1C,KAChC6C,sBACC,MAAMb,EAAmC,QAA1B1B,EAAU,QAAVC,EAAAsC,eAAAA,EAAMC,YAAI,IAAAvC,EAAAA,EAAIsC,aAAI,EAAJA,EAAMb,cAAM,IAAA1B,EAAAA,EAAI,GACvC+B,EAAiC,QAAxBjC,EAAQ,QAARC,EAAAwC,eAAAA,EAAME,UAAE,IAAA1C,EAAAA,EAAIwC,aAAI,EAAJA,EAAMR,cAAM,IAAAjC,EAAAA,EAAI,GACrCrD,EACqC,QAAzC8D,EAAyB,QAAzBC,UAAAC,EAAA8B,aAAI,EAAJA,EAAMG,oBAAQH,aAAI,EAAJA,EAAM9F,aAAK,IAAA+D,EAAAA,EAAI+B,aAAI,EAAJA,EAAMI,cAAM,IAAApC,EAAAA,EAAI,GAE/C,OAAO5B,CAAI;;wCAED+C;wCACAK;wCACAtF;;+BAET;;wBAKTkC,CAAI;;;+BAGe,QAAXiE,EAAAlN,KAAKmH,cAAM,IAAA+F,OAAA,EAAAA,EAAEC,SAAwB,YAAdnN,KAAKkH,KAC1B+B,CAAI,OAAOjJ,KAAKwL,2BAChB;8BACFxL,KAAKoH,SAAS4C,KACbiB,GAAYhC,CAAI,OAAOgC,EAAQhB;;;;4BAKpB,YAAdjK,KAAKkH,KACHkE,MAAMC,QAAQrL,KAAKoH,SAAS,GAAGgG,MAC7BpN,KAAKoH,SAAS,GAAGgG,KAAKpD,KACnBqD,GAAgBpE,CAAI;;;0CAGboE,EAAOrN,KAAKoH,SAAS,GAAGkG;;4CAEtBD,EAAOrN,KAAKoH,SAAS,GAAGmG;;sCAIpCC,OAAOC,QAAQzN,KAAKoH,SAAS,GAAGgG,MAAMpD,KACnCqD,IACC,MAAMK,EAAc,GAmCpB,OAlCIL,EAAO,GAAGtG,MACZ2G,EAAYC,KAAK1E,CAAI;;gDAEXoE,EAAO;gDACPA,EAAO,GAAGtG;;yCAIpByG,OAAOC,QAAQJ,EAAO,IAAIrD,KACvB4D,IACKA,EAAU,GAAG7G,MACf2G,EAAYC,KAAK1E,CAAI;;sDAEX2E,EAAU;sDACVA,EAAU,GAAG7G;;+CAIvByG,OAAOC,QAAQG,EAAU,IAAI5D,KAC1B6D,IACCH,EAAYC,KAAK1E,CAAI;;0DAEX4E,EAAa;;wDAEfA,EAAa,GAAG9G;;;kDAGtB,GAGR,IAIC2G,CAAW,IAGxB1N,KAAKoH,SAAS,GAAG+C,KAAKH,KACpB,CAACqD,EAAanD,iBACZ,MAAM4D,EACJ9N,KAAKqH,QAAQ0G,WAAa,IACtBC,EACU,MAAdF,EAAoB,IAAM,IAC5B,OAAO7E,CAAI;;iDAELsB,EAAAvK,KAAKmH,6BAAQgG,QACXlE,CAAI;8CAEW,UADsB,QAAjCmB,EAAoB,QAApBC,EAAY,QAAZC,EAAAtK,KAAKqH,eAAO,IAAAiD,OAAA,EAAAA,EAAEE,cAAM,IAAAH,OAAA,EAAAA,EAAGyD,UAAU,IAAA1D,OAAA,EAAAA,EAC/BlD,MACA+B,CAAI;;sDAEE,IAAIgF,KACJjO,KAAKmH,OAAO+C,IACZgE;;kDAGNjF,CAAI;wDACIjJ,KAAKmH,OAAO+C;;4CAG1B;wCACFlK,KAAKoH,SAAS4C,KAAKiB,cACnB,GAAIf,GAAKe,EAAQd,KAAKgD,OACpB,OAAOlE,CAAI,YAGb,MAAMkF,EAAYlD,EAAQd,KAAKD,GAE/B,MACgB,cAAdlK,KAAKkH,MACS,eAAdlH,KAAKkH,KAEE+B,CAAI;8CACPkF,EAAUpH;iDAMD,UADuB,QAApCsD,EAAoB,QAApBC,EAAY,QAAZC,EAAAvK,KAAKqH,eAAO,IAAAkD,OAAA,EAAAA,EAAEC,cAAM,IAAAF,OAAA,EAAAA,EAAG0D,UAAa,IAAA3D,OAAA,EAAAA,EAChCnD,MAEG+B,CAAI;;gDAEL,IAAIgF,KACJE,GACAD;;4CAKJ9C,MAAMC,QAAQ8C,GACTlF,CAAI;;gDAELkF,EAAU,OAAOA,EAAU;;4CAMjC,CACE,MACA,WACA,aACApE,SAAS/J,KAAKkH,MAET+B,CAAI,OAAOkF,SAIG,iBAAdA,GACO,OAAdA,EAEOlF,CAAI;;gDAELuE,OAAOY,KAAKD,GAAWnE,KACtBuD,sBACC,MAAMc,GAEK,QADTjE,EAA2B,UAAP,QAApBE,UAAAC,EAAAvK,KAAKqH,8BAASmD,cAAM,IAAAF,OAAA,EAAAA,EAAGiD,UAAI,IAAAlD,OAAA,EAAAA,EACvBK,aAAK,IAAAN,OAAA,EAAAA,EAAEO,OAAQ4C,EACfe,EAES,UADc,QAA3BzD,EAAoB,QAApBC,EAAY,UAAZ9K,KAAKqH,eAAO,IAAA0D,OAAA,EAAAA,EAAEP,cAAM,IAAAM,OAAA,EAAAA,EAAGyC,UAAI,IAAA1C,OAAA,EAAAA,EACvB3D,OACJiH,EAAUZ,GACN,IAAIU,KACFE,EAAUZ,IACVW,iBACFC,EAAUZ,GAChB,OAAOtE,CAAI;;gEAEGoF;wDACRC;;mDAEL;;4CAOJrF,CAAI,OAAOkF,QAAgB;;mCAGvC;;;;;cAQvB;;KAGV,CAEQ,YAAA7H,GACFtG,KAAKyG,OACPzG,KAAKyG,MAAM8H,QAEf,CAES,iBAAAC,GACPC,MAAMD,oBACN,IACE,MAAME,EAAOC,SAASC,cAAc,6BAChCF,aAAgBG,MAClB7O,KAAKuG,eAAeuI,QAAQJ,EAAM,CAAEK,YAAY,GAEpD,CAAE,MAAOC,GACPC,QAAQC,KAAK,mCAAoCF,EACnD,CACF,CAES,oBAAAG,GACPnP,KAAKmG,gBAAgBiJ,aACrBpP,KAAKuG,eAAe6I,aAEpBX,MAAMU,sBACR,CAES,YAAAE,SACP,MAAMC,EAAoB,QAAf/E,EAAAvK,KAAKuP,kBAAU,IAAAhF,OAAA,EAAAA,EAAEqE,cAAc,qBAC1C5O,KAAKmG,gBAAgB2I,QAAQQ,EAC/B,CAEQ,wBAAAE,GACN,IAAKxP,KAAKyG,QAAUzG,KAAKmI,cAAe,OAExC,MAAMsH,EAAkBzP,KAAKuP,WAAYX,cACvC,0BAEFa,EAAgBC,UAAY,GAE5B,MAAMC,EAAO,CACXC,UAAW5P,KAAKoI,uBACbpI,KAAKqI,kBACRwH,YAAcC,IACR9P,KAAKqI,kBAAkBwH,aACzB7P,KAAKqI,kBAAkBwH,YAAYC,GAGrC9P,KAAK+P,cACH,IAAIC,YAAY,WAAY,CAC1BC,OAAQH,EACRI,SAAS,EACTC,UAAU,IAEb,GAILC,EAAiBpQ,KAAKyG,MAAOgJ,EAAiBE,EAChD,CAES,OAAAU,CAAQC,WAEbtQ,KAAKyG,QACJ6J,EAAaC,IAAI,WAChBD,EAAaC,IAAI,aACjBD,EAAaC,IAAI,aAEnBvQ,KAAK0G,eAAeC,MAAK,KACvB3G,KAAKyG,MAAM0D,KAAKhD,OAASnH,KAAKmH,OAC9BnH,KAAKyG,MAAMY,QAAUrH,KAAK2I,cAE1B3I,KAAKyG,MAAM0D,KAAK/C,SAASoJ,SAAQ,CAACvF,EAAcwF,KAC3BzQ,KAAK4I,eAAe8H,MACpCC,GAAoBA,EAAW1G,QAAUgB,EAAQhB,SAIlDjK,KAAKyG,MAAM0D,KAAK/C,SAASwJ,OAAOH,EAAO,EACzC,IAGFzQ,KAAK4I,eAAe4H,SAASvF,IAC3B,MAAM4F,EAAc7Q,KAAKyG,MAAM0D,KAAK/C,SAASsJ,MAC1CG,GAAqBA,EAAY5G,QAAUgB,EAAQhB,QAGjD4G,EAGHrD,OAAOY,KAAKnD,GAASuF,SAASjD,IAC5BsD,EAAYtD,GAAOtC,EAAQsC,EAAI,IAHjCvN,KAAKyG,MAAM0D,KAAK/C,SAASuG,KAAK1C,EAKhC,IAGFjL,KAAKyG,MAAMqK,SAEX9Q,KAAKwP,0BAA0B,IAMnC,IAAIuB,GAAU,EACd,GAAI/Q,KAAKoH,UAAYpH,KAAKoH,SAAS+F,OACjC,IAAK,MAAMlC,KAAWjL,KAAKoH,SAMzB,GALA2J,GACc,UAAZ9F,EAAQd,YAAI,IAAAI,OAAA,EAAAA,EAAE4C,QAAS,IACX,UAAZlC,EAAQmC,YAAI,IAAA9C,OAAA,EAAAA,EAAE6C,QAAS,GACtBlC,EAAQmC,MAAQI,OAAOY,KAAKnD,EAAQmC,MAAMD,OAAS,GAEjD4D,EAAS,CACZ9B,QAAQD,MAAM,gDACd,KACF,EAIChP,KAAKyG,OAASzG,KAAKkH,MAAQoJ,EAAaC,IAAI,aAAeQ,IAC9D/Q,KAAK0G,eAAeC,MAAK,KACvB3G,KAAK4G,WAAW,IAGlB5G,KAAKgR,aAKLhR,KAAKyG,QACJ6J,EAAaC,IAAI,SAChBD,EAAaC,IAAI,YACjBD,EAAaC,IAAI,UACjBD,EAAaC,IAAI,WACjBD,EAAaC,IAAI,oBAEnBvQ,KAAK0G,eAAeC,MAAK,KACvB3G,KAAK4G,WAAW,IAGlB5G,KAAKgR,aAGHhR,KAAKyG,OAAS6J,EAAaC,IAAI,aACjCvQ,KAAKyG,MAAM8H,QAEf,CAMQ,SAAA3H,GACN,MAAMqK,EACU,UAAdjR,KAAKkH,KAAmBgK,EAAmBC,EAEvCC,EAAe,CACnBC,EACAJ,EACAK,KACGtR,KAAKsH,QACRiK,GAIEvR,KAAKmI,eACPiJ,EAAazD,KAAK6D,GAGhBxR,KAAKyG,OAAOzG,KAAKyG,MAAMgL,UAC3BzR,KAAKyG,MAAQ,IAAIzI,EAAMgC,KAAKuI,OAAQ,CAClCrB,KAAoB,UAAdlH,KAAKkH,KAAmB,WAAalH,KAAKkH,KAChDiD,KAAM,CAAEhD,OAAQnH,KAAKmH,OAAQC,SAAUpH,KAAK4I,gBAC5CvB,QAASrH,KAAK2I,cACdrB,QAAS8J,IAGXpR,KAAKwP,0BACP,CAMQ,kBAAM9I,GACZ,MAUMgL,EAA+B,GACrC1R,KAAKoH,SAASoJ,SAASvF,IACjBA,EAAQ/D,MACVwK,EAAsB/D,i5EACpBgE,CAAO,kCAAkC1G,EAAQ/D,WAErD,IAEF,MAAM0K,QAAyBC,QAAQC,IAAI,CACzCC,GAAO,kCAAkC/R,KAAKkH,cAC3CwK,IAGL,IAAI/I,EAAqBqJ,EAAchS,MACvC2I,EAAcrB,QAAUqB,EAAcrB,SAAW,CAAA,EAE7CtH,KAAKmI,eACPQ,EAAcrB,QAAQ2K,OAAS,CAAEC,SAAS,GAC1CvJ,EAAcrB,QAAQ6K,WAAaxJ,EAAcrB,QAAQ6K,YAAc,CAAA,IAEvExJ,EAAcrB,QAAQ2K,OAAStJ,EAAcrB,QAAQ2K,QAAU,CAAA,EAC/DtJ,EAAcrB,QAAQ2K,OAAOC,SAAU,GA/BrB,CAAC,MAAO,WAAY,QAAS,YAAa,SAmC9CnI,SAAS/J,KAAKkH,MAC5ByB,EAAgByJ,EAAUzJ,EAAe0J,EAAoBrS,OAnC1C,CACnB,aACA,UACA,YACA,aACA,QA+BuB+J,SAAS/J,KAAKkH,QACrCyB,EAAgByJ,EAAUzJ,EAAe2J,EAAuBtS,QAGlE,MAAM4I,EAAwB2J,KAAKC,MAAMD,KAAKE,UAAUzS,KAAKoH,WAE7DwK,EAAiBpB,SAASkC,IACxB/J,EAAgByJ,EAAUzJ,EAAe+J,EAAIrL,QAAQrH,OACrD4I,EAAe4H,SAAQ,CAACmC,EAASzI,OACzByI,EAAGzL,MAAQwL,EAAIxL,OAASlH,KAAKkH,MAASyL,EAAGzL,OAASwL,EAAIxL,QAC1D0B,EAAesB,GAAKkI,EAAUO,EAAID,EAAIE,eAAe5S,KAAMkK,IAC7D,GACA,IAGAlK,KAAKqH,UACPsB,EAAgByJ,EAAUzJ,EAAe3I,KAAKqH,UAEhDrH,KAAK2I,cAAgBA,EAErBC,EAAe4H,SAAQ,CAACmC,EAAYzI,KAClC,MAAM2I,EAAaC,EAAgB,CAAEC,aAAa,IAClDnK,EAAesB,GAAK2I,EAAWF,EAAI3S,KAAKoH,SAAS8C,GAAG,IAEtDlK,KAAK4I,eAAiBA,CACxB,CAEQ,iBAAA4C,6BACN,IAAIvB,EAAQ,GAgBZ,OAZIA,EAF4B,eAA5BM,EAAAvK,KAAKqH,8BAAS0G,YACkB,UAAP,QAAvB3D,EAAoB,QAApBC,EAAY,QAAZC,EAAAtK,KAAKqH,eAAO,IAAAiD,OAAA,EAAAA,EAAEE,cAAM,IAAAH,OAAA,EAAAA,EAAEI,SAAC,IAAAL,OAAA,EAAAA,EAAEM,aAAK,IAAAK,OAAA,EAAAA,EAAEJ,MACd,QAAZG,EAAA9K,KAAKqH,eAAO,IAAAyD,OAAA,EAAAA,EAAEN,OAAOC,EAAEC,MAAMC,KAE7B,UAGwB,UAAP,QAAvBkB,EAAoB,QAApBjB,EAAY,QAAZC,EAAA7K,KAAKqH,eAAO,IAAAwD,OAAA,EAAAA,EAAEL,cAAM,IAAAI,OAAA,EAAAA,EAAEI,SAAC,IAAAa,OAAA,EAAAA,EAAEnB,aAAK,IAAAkB,OAAA,EAAAA,EAAEjB,MACd,QAAZgB,EAAA3L,KAAKqH,eAAO,IAAAsE,OAAA,EAAAA,EAAEnB,OAAOQ,EAAEN,MAAMC,KAE7B,SAILV,CACT,CAEQ,gBAAAb,GACNpJ,KAAKyI,WAAazI,KAAKyI,SACzB,CAEQ,SAAAuI,GAGNhR,KAAK0I,cADkB,CAAC,aAAc,qBAAsB,QAC7BqB,SAAS/J,KAAKkH,KAC/C,CAEQ,mBAAA4C,CAAoBF,EAAUoJ,GACpCpJ,EAAEqJ,iBAEF,MAAMC,EAAYF,EAAO,aAAe,YAClCG,EAAUH,EAAO,MAAQ,MAE/B,GAAIhT,KAAKmI,eAAiBnI,KAAKyG,MAAO,CACpC,GAAI,CAAC,WAAY,OAAOsD,SAAS/J,KAAKkH,MAEpC,YADAlH,KAAKoT,uBAAuBF,EAAWC,GAIzC,MAAME,EAAiB,CACrBhM,QAASkL,KAAKC,MAAMD,KAAKE,UAAUzS,KAAKyG,MAAMY,UAC9C8C,KAAMoI,KAAKC,MAAMD,KAAKE,UAAUzS,KAAKyG,MAAM0D,OAC3CjD,KAAMlH,KAAKyG,MAAM6M,OAAOpM,MAGpBqM,EAAiBvT,KAAKyG,MAAM0D,KAAK/C,SAAS4C,KAC9C,CAACwJ,EAAYtJ,IAAclK,KAAKyG,MAAMgN,eAAevJ,GAAGwJ,SAG1D,IACO1T,KAAKyG,MAAMY,QAAQC,UACtBtH,KAAKyG,MAAMY,QAAQC,QAAU,CAAA,GAG1BtH,KAAKyG,MAAMY,QAAQC,QAAQ2K,SAC9BjS,KAAKyG,MAAMY,QAAQC,QAAQ2K,OAAS,CAAA,GAGtCjS,KAAKyG,MAAMY,QAAQC,QAAQ2K,OAAOC,SAAU,EAC5ClS,KAAKyG,MAAMY,QAAQC,QAAQ2K,OAAO0B,SAAW,SAC7C3T,KAAKyG,MAAMY,QAAQC,QAAQ2K,OAAO9K,OAAS,CACzCyM,SAAU,GACVC,UAAW,GACXC,QAAS,GACTC,KAAM,CACJC,KAAM,KAILhU,KAAKyG,MAAMY,QAAQ4M,OAEZjU,KAAKyG,MAAMY,QAAQ4M,OAAOH,QAEkB,iBAAtC9T,KAAKyG,MAAMY,QAAQ4M,OAAOH,QAC1C9T,KAAKyG,MAAMY,QAAQ4M,OAAOH,QAAU,CAClCI,IAAKlU,KAAKyG,MAAMY,QAAQ4M,OAAOH,QAC/BK,MAAOnU,KAAKyG,MAAMY,QAAQ4M,OAAOH,QACjCM,OAAQC,KAAKC,IAAItU,KAAKyG,MAAMY,QAAQ4M,OAAOH,QAAS,IACpDS,KAAMvU,KAAKyG,MAAMY,QAAQ4M,OAAOH,SAEzB9T,KAAKyG,MAAMY,QAAQ4M,OAAOH,UACnC9T,KAAKyG,MAAMY,QAAQ4M,OAAOH,QAAQM,OAASC,KAAKC,IAC9CtU,KAAKyG,MAAMY,QAAQ4M,OAAOH,QAAQM,QAAU,EAC5C,KAXFpU,KAAKyG,MAAMY,QAAQ4M,OAAOH,QAAU,CAAEM,OAAQ,IAF9CpU,KAAKyG,MAAMY,QAAQ4M,OAAS,CAAEH,QAAS,CAAEM,OAAQ,KAiBnDpU,KAAKyG,MAAMqK,OAAO,QAElB,MAAM0D,EAAUxU,KAAKuI,OAAOkM,WAAW,MACvC,IAAKD,EAAS,MAAM,IAAIE,MAAM,gCAE9B,MAAMC,EAAQC,GAAiB,sCAC/BJ,EAAQK,OACRL,EAAQM,yBAA2B,mBACnCN,EAAQO,UAAYJ,EACpBH,EAAQQ,SAAS,EAAG,EAAGhV,KAAKuI,OAAOf,MAAOxH,KAAKuI,OAAOhB,QAEtD,MAAM0N,EAAUjV,KAAKyG,MAAMyO,cAAchC,EAAW,GAE9CiC,EAAIxG,SAASyG,cAAc,KACjCD,EAAEE,KAAOJ,EACTE,EAAEG,SAAWtV,KAAK6G,WAAa,IAAMsM,EACrCxE,SAAS4G,KAAKC,YAAYL,GAC1BA,EAAEM,QACF9G,SAAS4G,KAAKG,YAAYP,GAE1BX,EAAQmB,UACR3V,KAAKyG,MAAMY,QAAUgM,EAAehM,QACpCkM,EAAe/C,SAAQ,CAACkD,EAAiBxJ,KACvClK,KAAKyG,MAAMgN,eAAevJ,GAAGwJ,OAASA,CAAM,IAE9C1T,KAAKyG,MAAMqK,QACb,CAAE,MAAO9B,GACPC,QAAQD,MAAM,qCAAsCA,GACpDhP,KAAK4V,iBAAiB1C,EAAWC,EACnC,CACF,MACEnT,KAAK4V,iBAAiB1C,EAAWC,EAErC,CAEQ,gBAAAyC,CAAiB1C,EAAmBC,GAC1C,MAAMqB,EAAUxU,KAAKuI,OAAOkM,WAAW,MACvC,IAAKD,IAAYxU,KAAKyG,MAAO,OAE7B,MAAMkO,EAAQC,GAAiB,sCAC/BJ,EAAQK,OACRL,EAAQM,yBAA2B,mBACnCN,EAAQO,UAAYJ,EACpBH,EAAQQ,SAAS,EAAG,EAAGhV,KAAKuI,OAAOf,MAAOxH,KAAKuI,OAAOhB,QAEtD,MAAM4N,EAAIxG,SAASyG,cAAc,KACjCD,EAAEE,KAAOrV,KAAKyG,MAAMyO,cAAchC,EAAW,GAC7CiC,EAAEG,SAAWtV,KAAK6G,WAAa,IAAMsM,EACrCxE,SAAS4G,KAAKC,YAAYL,GAC1BA,EAAEM,QACF9G,SAAS4G,KAAKG,YAAYP,GAE1BX,EAAQmB,SACV,CAEQ,sBAAAvC,CAAuBF,EAAmBC,GAChD,MAAMqB,EAAUxU,KAAKuI,OAAOkM,WAAW,MACvC,GAAKD,GAAYxU,KAAKyG,MAEtB,IACE,MAAMoP,EAAkBtD,KAAKC,MAAMD,KAAKE,UAAUzS,KAAKyG,MAAMY,UAE7DmN,EAAQK,OACR,MAAMF,EAAQC,GAAiB,sCAC/BJ,EAAQM,yBAA2B,mBACnCN,EAAQO,UAAYJ,EACpBH,EAAQQ,SAAS,EAAG,EAAGhV,KAAKuI,OAAOf,MAAOxH,KAAKuI,OAAOhB,QAEtDvH,KAAKyG,MAAMY,QAAU,IAChBrH,KAAKyG,MAAMY,QACdC,QAAS,CACP2K,OAAQ,CACNC,SAAS,EACTyB,SAAU,SACVxM,OAAQ,CACNyM,SAAU,GACVC,UAAW,GACXC,QAAS,GACTC,KAAM,CAAEC,KAAM,MAGlB8B,WAAY,CAAE5D,SAAS,EAAO6D,UAAW,MACzCC,QAAS,CAAEC,SAAS,GACpBC,cAAe,CAAED,SAAS,IAE5BhC,OAAQ,CACNH,QAAS,CAAEM,OAAQ,MAIvBpU,KAAKyG,MAAMqK,OAAO,QAElB,MAAMmE,EAAUjV,KAAKyG,MAAMyO,cAAchC,EAAW,GAE9CiC,EAAIxG,SAASyG,cAAc,KACjCD,EAAEE,KAAOJ,EACTE,EAAEG,SAAWtV,KAAK6G,WAAa,IAAMsM,EACrCxE,SAAS4G,KAAKC,YAAYL,GAC1BA,EAAEM,QACF9G,SAAS4G,KAAKG,YAAYP,GAE1BX,EAAQmB,UACR3V,KAAKyG,MAAMY,QAAUwO,EACrB7V,KAAKyG,MAAMqK,QACb,CAAE,MAAO9B,GACPC,QAAQD,MAAM,mCAAoCA,GAClDhP,KAAK4V,iBAAiB1C,EAAWC,EACnC,CACF,CAEQ,iBAAAtJ,CAAkBD,GACxBA,EAAEqJ,iBACF,IAAIkD,EAAM,GAGV,GAAkB,SAAdnW,KAAKkH,MAAiC,eAAdlH,KAAKkH,KAC/BiP,GAAOC,EAAqBpW,KAAKoH,eAGjC,IAAK,IAAI8C,EAAI,EAAGA,EAAIlK,KAAKyG,MAAM0D,KAAK/C,SAAS+F,OAAQjD,IACnDiM,GAAOE,EAAsB,CAC3BlM,KAAMnK,KAAKyG,MAAM0D,KAAK/C,SAAS8C,GAC/B/C,OAAQnH,KAAKmH,SAKnB,GAAW,MAAPgP,GAAuB,KAARA,EAAY,OAE/B,MAAMG,EAAWtW,KAAK6G,WAAa,OAC9BsP,EAAII,MAAM,sBACbJ,EAAM,+BAAiCA,GAIzC,MAAMhM,EAAOqM,UAAUL,GACjBtJ,EAAO8B,SAASyG,cAAc,KACpCvI,EAAK4J,aAAa,OAAQtM,GAC1B0C,EAAK4J,aAAa,WAAYH,GAC9B3H,SAAS4G,KAAKC,YAAY3I,GAC1BA,EAAK4I,QACL9G,SAAS4G,KAAKG,YAAY7I,EAC5B,CAEQ,gBAAArD,UACa,UAAfxJ,KAAKuP,kBAAU,IAAAhF,OAAA,EAAAA,EAAEmM,mBACnB/H,SAASgI,iBAET3W,KAAKsI,UAAUsO,mBAEnB,CAEQ,sBAAAzN,SACNnJ,KAAKkI,WAAoD,QAAxB,QAAfqC,EAAAvK,KAAKuP,kBAAU,IAAAhF,OAAA,EAAAA,EAAEmM,kBACrC,olBA9kCCG,GAAA,CAAAC,EAAS,CAAE5P,KAAM6P,UAIjBC,GAAA,CAAAF,EAAS,CAAE5P,KAAM6P,UAIjBE,GAAA,CAAAH,EAAS,CAAE5P,KAAM6P,UAIjBG,GAAA,CAAAJ,EAAS,CAAE5P,KAAMkE,SAIjB+L,GAAA,CAAAL,EAAS,CAAE5P,KAAMkE,SAIjBgM,GAAA,CAAAN,EAAS,CAAE5P,KAAMsG,UAIjB6J,GAAA,CAAAP,EAAS,CAAE5P,KAAMkE,SAIjBkM,GAAA,CAAAR,EAAS,CAAE5P,KAAMqQ,UAIjBC,GAAA,CAAAV,EAAS,CAAE5P,KAAMqQ,UAIjBE,GAAA,CAAAX,EAAS,CAAE5P,KAAMwQ,WAIjBC,GAAA,CAAAb,EAAS,CAAE5P,KAAMwQ,WAIjBE,GAAA,CAAAd,EAAS,CAAE5P,KAAMwQ,WAIjBG,GAAA,CAAAf,EAAS,CAAE5P,KAAMwQ,WAIjBI,GAAA,CAAAhB,EAAS,CAAE5P,KAAMwQ,WAIjBK,GAAA,CAAAjB,EAAS,CAAE5P,KAAMwQ,WAIjBM,GAAA,CAAAlB,EAAS,CAAE5P,KAAMwQ,WAIjBO,GAAA,CAAAnB,EAAS,CAAE5P,KAAMwQ,WAIjBQ,GAAA,CAAApB,EAAS,CAAE5P,KAAMsG,UAajB2K,GAAA,CAAAC,KAMAC,GAAA,CAAAvB,EAAS,CAAE5P,KAAMwQ,eAIjBZ,EAAS,CAAE5P,KAAMqQ,OAAQe,SAAS,KAIlCC,GAAA,CAAAzB,EAAS,CAAE5P,KAAMsG,cAOjBgL,EAAM,mBAONA,EAAM,eAONA,EAAM,oBAMNC,GAAA,CAAAL,KAMAM,GAAA,CAAAN,KAMAO,GAAA,CAAAP,KAMAQ,GAAA,CAAAR,KAMAS,GAAA,CAAAT,KAMAU,GAAA,CAAAV,KAvJDW,EAAAnZ,GAAA,KAAAiX,GAAA,CAAAmC,KAAA,WAAAC,KAAA,aAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,eAAAA,EAAAC,IAAAD,GAAAA,EAASxS,WAAU9G,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAVxS,WAAUE,CAAA,GAAAwS,SAAAC,GAAAtZ,GAAAE,IAInB2Y,EAAAnZ,GAAA,KAAAoX,GAAA,CAAAgC,KAAA,WAAAC,KAAA,cAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,gBAAAA,EAAAC,IAAAD,GAAAA,EAASpS,YAAWlH,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAXpS,YAAWF,CAAA,GAAAwS,SAAAC,GAAAnZ,GAAAE,IAIpBwY,EAAAnZ,GAAA,KAAAqX,GAAA,CAAA+B,KAAA,WAAAC,KAAA,OAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,SAAAA,EAAAC,IAAAD,GAAAA,EAASnS,KAAInH,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAJnS,KAAIH,CAAA,GAAAwS,SAAAC,GAAAhZ,GAAAE,IAIbqY,EAAAnZ,GAAA,KAAAsX,GAAA,CAAA8B,KAAA,WAAAC,KAAA,SAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,WAAAA,EAAAC,IAAAD,GAAAA,EAASlS,OAAMpH,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAANlS,OAAMJ,CAAA,GAAAwS,SAAAC,GAAA7Y,GAAAE,IAIfkY,EAAAnZ,GAAA,KAAAuX,GAAA,CAAA6B,KAAA,WAAAC,KAAA,WAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,aAAAA,EAAAC,IAAAD,GAAAA,EAASjS,SAAQrH,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAARjS,SAAQL,CAAA,GAAAwS,SAAAC,GAAA1Y,GAAAE,IAIjB+X,EAAAnZ,GAAA,KAAAwX,GAAA,CAAA4B,KAAA,WAAAC,KAAA,UAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,YAAAA,EAAAC,IAAAD,GAAAA,EAAShS,QAAOtH,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAPhS,QAAON,CAAA,GAAAwS,SAAAC,GAAAvY,GAAAE,IAIhB4X,EAAAnZ,GAAA,KAAAyX,GAAA,CAAA2B,KAAA,WAAAC,KAAA,UAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,YAAAA,EAAAC,IAAAD,GAAAA,EAAS/R,QAAOvH,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAP/R,QAAOP,CAAA,GAAAwS,SAAAC,GAAApY,GAAAE,IAIhByX,EAAAnZ,GAAA,KAAA0X,GAAA,CAAA0B,KAAA,WAAAC,KAAA,SAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,WAAAA,EAAAC,IAAAD,GAAAA,EAAS9R,OAAMxH,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAN9R,OAAMR,CAAA,GAAAwS,SAAAC,GAAAjY,GAAAE,IAIfsX,EAAAnZ,GAAA,KAAA4X,GAAA,CAAAwB,KAAA,WAAAC,KAAA,QAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,UAAAA,EAAAC,IAAAD,GAAAA,EAAS7R,MAAKzH,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAL7R,MAAKT,CAAA,GAAAwS,SAAAC,GAAA9X,GAAAE,IAIdmX,EAAAnZ,GAAA,KAAA6X,GAAA,CAAAuB,KAAA,WAAAC,KAAA,kBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,oBAAAA,EAAAC,IAAAD,GAAAA,EAAS5R,gBAAe1H,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAf5R,gBAAeV,CAAA,GAAAwS,SAAAC,GAAA3X,GAAAE,IAIxBgX,EAAAnZ,GAAA,KAAA+X,GAAA,CAAAqB,KAAA,WAAAC,KAAA,eAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,iBAAAA,EAAAC,IAAAD,GAAAA,EAAS3R,aAAY3H,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAZ3R,aAAYX,CAAA,GAAAwS,SAAAC,GAAAxX,GAAAE,IAIrB6W,EAAAnZ,GAAA,KAAAgY,GAAA,CAAAoB,KAAA,WAAAC,KAAA,aAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,eAAAA,EAAAC,IAAAD,GAAAA,EAAS1R,WAAU5H,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAV1R,WAAUZ,CAAA,GAAAwS,SAAAC,GAAArX,GAAAE,IAInB0W,EAAAnZ,GAAA,KAAAiY,GAAA,CAAAmB,KAAA,WAAAC,KAAA,eAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,iBAAAA,EAAAC,IAAAD,GAAAA,EAASzR,aAAY7H,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAZzR,aAAYb,CAAA,GAAAwS,SAAAC,GAAAlX,GAAAE,IAIrBuW,EAAAnZ,GAAA,KAAAkY,GAAA,CAAAkB,KAAA,WAAAC,KAAA,mBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,qBAAAA,EAAAC,IAAAD,GAAAA,EAASxR,iBAAgB9H,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAhBxR,iBAAgBd,CAAA,GAAAwS,SAAAC,GAAA/W,GAAAE,IAIzBoW,EAAAnZ,GAAA,KAAAmY,GAAA,CAAAiB,KAAA,WAAAC,KAAA,wBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,0BAAAA,EAAAC,IAAAD,GAAAA,EAASvR,sBAAqB/H,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAArBvR,sBAAqBf,CAAA,GAAAwS,SAAAC,GAAA5W,GAAAE,IAI9BiW,EAAAnZ,GAAA,KAAAoY,GAAA,CAAAgB,KAAA,WAAAC,KAAA,sBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,wBAAAA,EAAAC,IAAAD,GAAAA,EAAStR,oBAAmBhI,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAnBtR,oBAAmBhB,CAAA,GAAAwS,SAAAC,GAAAzW,GAAAE,IAI5B8V,EAAAnZ,GAAA,KAAAqY,GAAA,CAAAe,KAAA,WAAAC,KAAA,WAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,aAAAA,EAAAC,IAAAD,GAAAA,EAASrR,SAAQjI,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAARrR,SAAQjB,CAAA,GAAAwS,SAAAC,GAAAtW,GAAAE,IAIjB2V,EAAAnZ,GAAA,KAAAsY,GAAA,CAAAc,KAAA,WAAAC,KAAA,eAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,iBAAAA,EAAAC,IAAAD,GAAAA,EAASpR,aAAYlI,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAZpR,aAAYlB,CAAA,GAAAwS,SAAAC,GAAAnW,GAAAQ,IAarBkV,EAAAnZ,GAAA,KAAAuY,GAAA,CAAAa,KAAA,WAAAC,KAAA,aAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,eAAAA,EAAAC,IAAAD,GAAAA,EAASnR,WAAUnI,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAVnR,WAAUnB,CAAA,GAAAwS,SAAAC,GAAA1V,GAAAE,IAMnB+U,EAAAnZ,GAAA,KAAAyY,GAAA,CAAAW,KAAA,WAAAC,KAAA,gBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,kBAAAA,EAAAC,IAAAD,GAAAA,EAASlR,cAAapI,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAblR,cAAapB,CAAA,GAAAwS,SAAAC,GAAAvV,GAAAE,IAItB4U,EAAAnZ,GAAA,KAAA6Z,GAAA,CAAAT,KAAA,WAAAC,KAAA,sBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,wBAAAA,EAAAC,IAAAD,GAAAA,EAASjR,oBAAmBrI,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAnBjR,oBAAmBrB,CAAA,GAAAwS,SAAAC,GAAApV,GAAAE,IAI5ByU,EAAAnZ,GAAA,KAAA2Y,GAAA,CAAAS,KAAA,WAAAC,KAAA,oBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,sBAAAA,EAAAC,IAAAD,GAAAA,EAAShR,kBAAiBtI,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAjBhR,kBAAiBtB,CAAA,GAAAwS,SAAAC,GAAAjV,GAAAE,IAO1BsU,EAAAnZ,GAAA,KAAA8Z,GAAA,CAAAV,KAAA,WAAAC,KAAA,YAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,cAAAA,EAAAC,IAAAD,GAAAA,EAAS/Q,UAASvI,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAT/Q,UAASvB,CAAA,GAAAwS,SAAAC,GAAA9U,GAAAE,IAOlBmU,EAAAnZ,GAAA,KAAA+Z,GAAA,CAAAX,KAAA,WAAAC,KAAA,SAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,WAAAA,EAAAC,IAAAD,GAAAA,EAAS9Q,OAAMxI,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAN9Q,OAAMxB,CAAA,GAAAwS,SAAAC,GAAA3U,GAAAE,IAOfgU,EAAAnZ,GAAA,KAAAga,GAAA,CAAAZ,KAAA,WAAAC,KAAA,QAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,UAAAA,EAAAC,IAAAD,GAAAA,EAAS7Q,MAAKzI,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAL7Q,MAAKzB,CAAA,GAAAwS,SAAAC,GAAAxU,GAAAE,IAMd6T,EAAAnZ,GAAA,KAAA6Y,GAAA,CAAAO,KAAA,WAAAC,KAAA,QAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,UAAAA,EAAAC,IAAAD,GAAAA,EAAS5S,MAAK1G,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAL5S,MAAKM,CAAA,GAAAwS,SAAAC,GAAArU,GAAAE,IAMd0T,EAAAnZ,GAAA,KAAA8Y,GAAA,CAAAM,KAAA,WAAAC,KAAA,YAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,cAAAA,EAAAC,IAAAD,GAAAA,EAAS5Q,UAAS1I,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAT5Q,UAAS1B,CAAA,GAAAwS,SAAAC,GAAAlU,GAAAE,IAMlBuT,EAAAnZ,GAAA,KAAA+Y,GAAA,CAAAK,KAAA,WAAAC,KAAA,gBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,kBAAAA,EAAAC,IAAAD,GAAAA,EAAS3Q,cAAa3I,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAb3Q,cAAa3B,CAAA,GAAAwS,SAAAC,GAAA/T,GAAAE,IAMtBoT,EAAAnZ,GAAA,KAAAgZ,GAAA,CAAAI,KAAA,WAAAC,KAAA,gBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,kBAAAA,EAAAC,IAAAD,GAAAA,EAAS1Q,cAAa5I,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAb1Q,cAAa5B,CAAA,GAAAwS,SAAAC,GAAA5T,GAAAE,IAMtBiT,EAAAnZ,GAAA,KAAAiZ,GAAA,CAAAG,KAAA,WAAAC,KAAA,iBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,mBAAAA,EAAAC,IAAAD,GAAAA,EAASzQ,eAAc7I,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAdzQ,eAAc7B,CAAA,GAAAwS,SAAAC,GAAAzT,GAAAE,IAMvB8S,EAAAnZ,GAAA,KAAAkZ,GAAA,CAAAE,KAAA,WAAAC,KAAA,UAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7I,IAAA8I,GAAA,YAAAA,EAAAC,IAAAD,GAAAA,EAASxQ,QAAO9I,IAAA,CAAAsZ,EAAAtS,KAAAsS,EAAPxQ,QAAO9B,CAAA,GAAAwS,SAAAC,GAAAtT,GAAA2T,IA7JlBd,EAAA,KAAAe,GAAA,CAAA/S,MAAAnH,IAAAma,GAAA,CAAAf,KAAA,QAAAC,KAAArZ,GAAAqZ,KAAAM,SAAAC,GAAA,KAAAQ,qHACkBpa,GAAAqa,OAASC,EAAUC,GADxBla,EAAAL,GAAAoa,QAAO"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kyndryl-design-system/shidoka-charts",
3
- "version": "2.8.0",
3
+ "version": "2.8.2",
4
4
  "description": "Shidoka Charts",
5
5
  "license": "MIT",
6
6
  "main": "index.js",
@@ -75,7 +75,7 @@
75
75
  "husky": "^8.0.3",
76
76
  "lint-staged": "^13.1.2",
77
77
  "lit-analyzer": "^2.0.3",
78
- "playwright": "^1.56.1",
78
+ "playwright": "^1.57.0",
79
79
  "postcss": "^8.4.21",
80
80
  "prettier": "^2.8.2",
81
81
  "react": "^18.2.0",