@operato/scene-chartjs 1.3.14 → 1.3.17

Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,15 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.3.17](https://github.com/things-scene/operato-scene/compare/v1.3.16...v1.3.17) (2024-06-27)
7
+
8
+
9
+ ### :bug: Bug Fix
10
+
11
+ * setting value-format for chart series ([b0ef473](https://github.com/things-scene/operato-scene/commit/b0ef4735f2745f51836db8067caeebac99e1c579))
12
+
13
+
14
+
6
15
  ## [1.3.14](https://github.com/things-scene/operato-scene/compare/v1.3.13...v1.3.14) (2024-02-14)
7
16
 
8
17
  **Note:** Version bump only for package @operato/scene-chartjs
@@ -1,4 +1,5 @@
1
1
  import { TinyColor } from '@ctrl/tinycolor';
2
+ import { format as formatText } from './text-formatter';
2
3
  export function convertConfigure(chart) {
3
4
  if (!chart)
4
5
  return;
@@ -325,7 +326,7 @@ function _setTooltipCallback(tooltips) {
325
326
  tooltips.intersect = false;
326
327
  tooltips.mode = 'index';
327
328
  tooltips.callbacks.label = function (tooltipItem, data) {
328
- var _a, _b, _c, _d, _e, _f;
329
+ var _a, _b, _c, _d, _e, _f, _g;
329
330
  var value = (_b = (_a = data.datasets) === null || _a === void 0 ? void 0 : _a[tooltipItem.datasetIndex || 0].data) === null || _b === void 0 ? void 0 : _b[tooltipItem.index || 0];
330
331
  var datasetLabel = (_c = data.datasets) === null || _c === void 0 ? void 0 : _c[tooltipItem.datasetIndex || 0].label;
331
332
  var label = datasetLabel || ((_d = data.labels) === null || _d === void 0 ? void 0 : _d[tooltipItem.index || 0]);
@@ -333,9 +334,11 @@ function _setTooltipCallback(tooltips) {
333
334
  if (!isNaN(toNumValue)) {
334
335
  value = toNumValue.toLocaleString();
335
336
  }
336
- var prefix = ((_e = data.datasets) === null || _e === void 0 ? void 0 : _e[tooltipItem.datasetIndex || 0].valuePrefix) || '';
337
- var suffix = ((_f = data.datasets) === null || _f === void 0 ? void 0 : _f[tooltipItem.datasetIndex || 0].valueSuffix) || '';
338
- return `${label}: ${prefix + value + suffix}`;
337
+ var format = ((_e = data.datasets) === null || _e === void 0 ? void 0 : _e[tooltipItem.datasetIndex || 0].valueFormat) || '';
338
+ var prefix = ((_f = data.datasets) === null || _f === void 0 ? void 0 : _f[tooltipItem.datasetIndex || 0].valuePrefix) || '';
339
+ var suffix = ((_g = data.datasets) === null || _g === void 0 ? void 0 : _g[tooltipItem.datasetIndex || 0].valueSuffix) || '';
340
+ var stringValue = format ? formatText(format, Number(label)) : Number(label).toLocaleString();
341
+ return `${label}: ${prefix + stringValue + suffix}`;
339
342
  };
340
343
  }
341
344
  //# sourceMappingURL=config-converter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-converter.js","sourceRoot":"","sources":["../src/config-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,UAAU,gBAAgB,CAAC,KAA6B;IAC5D,IAAI,CAAC,KAAK;QAAE,OAAM;IAElB,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAA;IAC3B,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAA;IAClC,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAA;IACjC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAA;IACjC,IAAI,KAAkC,CAAA;IACtC,IAAI,KAAkC,CAAA;IACtC,IAAI,KAAK,CAAA;IACT,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAA;IACjC,IAAI,QAAQ,GAAG,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;IAClG,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;IACjC,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,QAAQ,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC7B,IAAI,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;IAC9C,IAAI,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAA;IAC1C,IAAI,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAA;IACxC,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;IAEzB,sBAAsB;IACtB,6BAA6B,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAElD,yBAAyB;IACzB,KAAK,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC;QACvB,IAAI,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAExB,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACrC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAA;QACpB,CAAC;QAED;;;WAGG;QACH,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;YACxB,IAAI,eAAe,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;YAC5E,IAAI,UAAU,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YAElE,MAAM,CAAC,kBAAkB,GAAG,CAAC,GAAG,eAAe,IAAI,CAAC,CAAA;YACpD,MAAM,CAAC,aAAa,GAAG,CAAC,GAAG,UAAU,IAAI,GAAG,CAAA;QAC9C,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,IAAI,eAAe,EAAE,CAAC;YACzC,IAAI,eAAe,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;YAC5E,IAAI,UAAU,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YAElE,MAAM,CAAC,kBAAkB,GAAG,CAAC,GAAG,eAAe,IAAI,CAAC,CAAA;YACpD,MAAM,CAAC,aAAa,GAAG,CAAC,GAAG,UAAU,IAAI,GAAG,CAAA;QAC9C,CAAC;QAED,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAEnC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO;gBAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAA;QACxD,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAA;IAEtB,IAAI,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,CAAA;IAC1D,IAAI,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAA;IAE5D,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACrB,IAAI,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,CAAA;QAC3D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;YAClB,OAAM;QACR,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACtB,IAAI,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,CAAA;QAC5D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;YAClB,OAAM;QACR,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAA;IAEpC,gBAAgB;IAChB,kBAAkB;IAClB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK,CAAC;QACX,KAAK,eAAe;YAClB,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAA;YAC1B,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAA;YAE1B,IAAI,KAAK,CAAC,IAAI,IAAI,eAAe,EAAE,CAAC;gBAClC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAA;gBAC1B,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAA;YAC5B,CAAC;YAED,mBAAmB;YACnB,KAAK,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;gBACpB,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBACnB,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;gBAC1B,cAAc,CAAC,IAAI,EAAE;oBACnB,QAAQ;oBACR,UAAU;iBACX,CAAC,CAAA;gBACF,oBAAoB,CAAC,IAAI,CAAC,CAAA;gBAC1B,sBAAsB,CAAC,IAAI,CAAC,CAAA;gBAC5B,aAAa,CAAC,IAAI,CAAC,CAAA;gBACnB,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;gBACvC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAE/B,IAAI,CAAC,SAAU,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAA;YAC7C,CAAC;YAED,mBAAmB;YACnB,KAAK,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;gBACpB,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBAEnB,YAAY;gBACZ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACX,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;gBAChC,CAAC;gBACD,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC9B,cAAc,CAAC,IAAI,EAAE;oBACnB,QAAQ;oBACR,UAAU;iBACX,CAAC,CAAA;gBACF,oBAAoB,CAAC,IAAI,CAAC,CAAA;gBAC1B,aAAa,CAAC,IAAI,CAAC,CAAA;gBACnB,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;gBACvC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAE/B,YAAY;gBACZ,IAAI,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAA;gBAEtD,YAAY;gBACZ,IAAI,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,YAAY,CAAA;YAC3D,CAAC;YAED,MAAK;QACP,KAAK,KAAK,CAAC;QACX,KAAK,UAAU;YACb,MAAK;QACP;YACE,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;YAC3B,cAAc,CAAC,KAAK,EAAE;gBACpB,QAAQ;gBACR,UAAU;aACX,CAAC,CAAA;YACF,MAAK;IACT,CAAC;IAED,kBAAkB;IAClB,cAAc,CAAC,MAAM,EAAE;QACrB,QAAQ;QACR,UAAU;KACX,CAAC,CAAA;IACF,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAA;IAC9C,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;IAEzC,oBAAoB;IACpB,OAAO,CAAC,OAAO;QACb,eAAe,CAAC,QAAS,EAAE;YACzB,QAAQ;YACR,UAAU;SACX,CAAC,CAAA;IACJ,OAAO,CAAC,OAAO,IAAI,mBAAmB,CAAC,QAAS,CAAC,CAAA;AACnD,CAAC;AAED,SAAS,6BAA6B,CAAC,IAAY,EAAE,OAAgC;IACnF,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,eAAe;YAClB,IAAI,CAAC,OAAO,CAAC,MAAM;gBAAE,OAAO,CAAC,MAAM,GAAG,EAAE,CAAA;YACxC,MAAK;QACP,KAAK,OAAO,CAAC;QACb,KAAK,WAAW;YACd,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAC7B,OAAO,CAAC,KAAM,CAAC,KAAM,CAAC,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAA;gBAC1D,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;oBAC9B,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAA;gBAChE,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAA;gBACrE,CAAC;YACH,CAAC;YACD,OAAO,CAAC,KAAM,CAAC,KAAM,CAAC,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAA;YACzF,MAAK;QACP,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK;YACR,IAAI,CAAC,OAAO,CAAC,MAAM;gBAAE,OAAO,CAAC,MAAM,GAAG,EAAE,CAAA;YACxC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAA;YAEpD,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtC,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAA;gBAChC,KAAK,CAAC,IAAI,CAAC;oBACT,QAAQ,EAAE,OAAO;oBACjB,EAAE,EAAE,OAAO;oBACX,OAAO,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK;oBACnC,SAAS,EAAE;wBACT,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,KAAK;qBACjF;oBACD,KAAK,EAAE;wBACL,WAAW,EAAE,KAAK;wBAClB,QAAQ,EAAE,UAAU,KAAU,EAAE,KAAa,EAAE,MAAa;4BAC1D,IAAI,WAAW,GAAG,KAAK,CAAA;4BACvB,IAAI,OAAO,WAAW,IAAI,QAAQ,EAAE,CAAC;gCACnC,WAAW,GAAG,WAAW,CAAC,cAAc,EAAE,CAAA;4BAC5C,CAAC;4BAED,OAAO,WAAW,CAAA;wBACpB,CAAC;qBACF;iBACF,CAAC,CAAA;YACJ,CAAC;YACD,MAAK;QACP,KAAK,KAAK,CAAC;QACX,KAAK,UAAU;YACb,MAAK;QACP;YACE,IAAI,CAAC,OAAO,CAAC,KAAK;gBAAE,OAAO,CAAC,KAAK,GAAG,EAAE,CAAA;YAEtC,MAAK;IACT,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAA0B,EAAE,OAAgB;IAC/D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;AACxB,CAAC;AAED,SAAS,aAAa,CAAC,IAA0B,EAAE,SAAkB;IACnE,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;AAC1B,CAAC;AAED,SAAS,aAAa,CAAC,IAA0B;IAC/C,IAAI,CAAC,IAAI,CAAC,UAAU;QAAE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;IAC1C,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAA;IAC5C,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;AACzD,CAAC;AAED,SAAS,cAAc,CACrB,IAAyD,EACzD,EAAE,QAAQ,EAAE,UAAU,EAA4C;IAElE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IACzC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAE9B,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAA;IACpC,CAAC;IAED,CAAC;IAAC,IAAqC,CAAC,WAAW,GAAG;QACpD,QAAQ;QACR,UAAU;KACX,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,IAA0B;IACtD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IAEzC,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAA;IAChC,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAA;IAEhC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAA;IACvB,CAAC;IACD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAA;IACvB,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,IAA0B;IACxD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IACzC,6BAA6B;AAC/B,CAAC;AAED,SAAS,eAAe,CAAC,IAA0B,EAAE,KAAuB,EAAE,SAAiB;IAC7F,IAAI,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;IAE7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;IACrD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;QACzE,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;IACnE,CAAC;IAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IACzC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC3F,CAAC;AAED,SAAS,cAAc,CACrB,MAAqC,EACrC,EAAE,UAAU,EAAE,QAAQ,EAA4C;IAElE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;IAClD,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACjC,IAAI,UAAU;QAAE,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAA;AACvD,CAAC;AAED,SAAS,eAAe,CAAC,MAAqC,EAAE,KAAuB,EAAE,SAAiB;IACxG,IAAI,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;IAE7C,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;IAClD,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC9F,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAuB;IACrD,IAAI,SAAS,GAAG,MAAM,CAAA;IACtB,IAAI,UAAU,GAAG,MAAM,CAAA;IAEvB,IAAI,SAAS,CAAA;IAEb,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,OAAO;YACV,SAAS,GAAG,UAAU,CAAA;YACtB,MAAK;QACP,KAAK,MAAM,CAAC;QACZ;YACE,SAAS,GAAG,SAAS,CAAA;YACrB,MAAK;IACT,CAAC;IAED,SAAS,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,CAAA;IAEpC,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAgC,EAAE,KAA6B;IAC3F,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAA;IACpC,IAAI,UAAU,GAAG,GAAG,IAAI,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAA;IAC9E,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAA;IAEhE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,KAAK,CAAC;QACX,KAAK,eAAe;YAClB,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,eAAe,GAAG,KAAK,CAAA;YACnD,MAAK;QAEP,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO;YACV,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAA;YACxD,MAAM,CAAC,oBAAoB,GAAG,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,eAAe,GAAG,KAAK,CAAA;YAC3G,MAAM,CAAC,gBAAgB,GAAI,MAAM,CAAC,WAAsB,GAAG,GAAG,CAAA;YAC9D,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAA;YAC5C,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS;gBAAE,MAAM,CAAC,IAAI,GAAG,KAAK,CAAA;YACjD,MAAK;QAEP;YACE,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,eAAe,GAAG,KAAK,CAAA;YACnD,MAAK;IACT,CAAC;IAED,MAAM,CAAC,KAAK,GAAG,UAAU,CAAA;AAC3B,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAyC;IACpE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAM;IACR,CAAC;IAED,KAAK,CAAC,QAAQ,GAAG,UAAU,KAAK,EAAE,KAAK,EAAE,MAAM;QAC7C,IAAI,WAAW,CAAA;QACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACjC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,CAAA;QAC9C,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,KAAK,CAAA;QACrB,CAAC;QAED,IAAI,WAAW;YAAE,OAAO,WAAW,CAAA;IACrC,CAAC,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CACtB,QAAwC,EACxC,EAAE,QAAQ,EAAE,UAAU,EAA4C;IAElE,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAA;IACnF,IAAI,UAAU;QAAE,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,gBAAgB,GAAG,UAAU,CAAA;AAC7G,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAwC;IACnE,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAA;IAE7C,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAA;IAC1B,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAA;IAEvB,QAAQ,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,WAAwC,EAAE,IAA0B;;QACvG,IAAI,KAAK,GAAQ,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAG,WAAW,CAAC,YAAY,IAAI,CAAC,EAAE,IAAI,0CAAG,WAAW,CAAC,KAAK,IAAI,CAAC,CAAC,CAAA;QAC9F,IAAI,YAAY,GAAG,MAAA,IAAI,CAAC,QAAQ,0CAAG,WAAW,CAAC,YAAY,IAAI,CAAC,EAAE,KAAK,CAAA;QACvE,IAAI,KAAK,GAAG,YAAY,KAAI,MAAA,IAAI,CAAC,MAAM,0CAAG,WAAW,CAAC,KAAK,IAAI,CAAC,CAAC,CAAA,CAAA;QACjE,IAAI,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAE9B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YACvB,KAAK,GAAG,UAAU,CAAC,cAAc,EAAE,CAAA;QACrC,CAAC;QAED,IAAI,MAAM,GAAG,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAG,WAAW,CAAC,YAAY,IAAI,CAAC,EAAE,WAAW,KAAI,EAAE,CAAA;QAC7E,IAAI,MAAM,GAAG,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAG,WAAW,CAAC,YAAY,IAAI,CAAC,EAAE,WAAW,KAAI,EAAE,CAAA;QAE7E,OAAO,GAAG,KAAK,KAAK,MAAM,GAAG,KAAK,GAAG,MAAM,EAAE,CAAA;IAC/C,CAAC,CAAA;AACH,CAAC","sourcesContent":["import { TinyColor } from '@ctrl/tinycolor'\n\nexport function convertConfigure(chart: SceneChart.ChartConfig) {\n if (!chart) return\n\n var data = chart.data || {}\n var datasets = data.datasets || []\n var options = chart.options || {}\n var scales = options.scales || {}\n var xAxes: Array<SceneChart.ChartXAxe>\n var yAxes: Array<SceneChart.ChartYAxe>\n var scale\n var legend = options.legend || {}\n var tooltips = options.tooltip === false ? undefined : (options.tooltips = options.tooltips || {})\n var multiAxis = options.multiAxis\n var stacked = false\n var yStacked = [false, false]\n var fontSize = Number(options.defaultFontSize)\n var fontFamily = options.defaultFontFamily\n var fontColor = options.defaultFontColor\n var theme = options.theme\n\n // backward compatible\n _configureBackwardsCompatible(chart.type, options)\n\n // setup series configure\n for (let i in datasets) {\n let series = datasets[i]\n\n if (options.stacked && !series.stack) {\n series.stack = 'A'\n }\n\n /*\n * TODO from chartjs 2.9, categoryPercentage, barPercentage properties move to dataset.\n * so need to move related properties - categorySpacing, barSpacing should be moved to series.\n */\n if (chart.type == 'bar') {\n let categorySpacing = (scales.xAxes && scales.xAxes[0].categorySpacing) || 0\n let barSpacing = (scales.xAxes && scales.xAxes[0].barSpacing) || 0\n\n series.categoryPercentage = 1 - categorySpacing || 1\n series.barPercentage = 1 - barSpacing || 0.8\n } else if (chart.type == 'horizontalBar') {\n let categorySpacing = (scales.yAxes && scales.yAxes[0].categorySpacing) || 0\n let barSpacing = (scales.yAxes && scales.yAxes[0].barSpacing) || 0\n\n series.categoryPercentage = 1 - categorySpacing || 1\n series.barPercentage = 1 - barSpacing || 0.8\n }\n\n _setSeriesConfigures(series, chart)\n\n if (!multiAxis) {\n if (series.yAxisID == 'right') series.yAxisID = 'left'\n }\n }\n\n delete options.stacked\n\n var leftSeries = datasets.filter(d => d.yAxisID == 'left')\n var rightSeries = datasets.filter(d => d.yAxisID == 'right')\n\n leftSeries.forEach(s => {\n var filtered = leftSeries.filter(ss => s.stack == ss.stack)\n if (filtered.length > 1) {\n yStacked[0] = true\n return\n }\n })\n\n rightSeries.forEach(s => {\n var filtered = rightSeries.filter(ss => s.stack == ss.stack)\n if (filtered.length > 1) {\n yStacked[1] = true\n return\n }\n })\n\n stacked = yStacked[0] || yStacked[1]\n\n // setup options\n // 1. setup scales\n switch (chart.type) {\n case 'line':\n case 'bar':\n case 'horizontalBar':\n xAxes = scales.xAxes || []\n yAxes = scales.yAxes || []\n\n if (chart.type == 'horizontalBar') {\n xAxes = scales.yAxes || []\n yAxes = scales.xAxes || []\n }\n\n // 1-1. setup xAxes\n for (let i in xAxes) {\n let axis = xAxes[i]\n _setStacked(axis, stacked)\n _setScalesFont(axis, {\n fontSize,\n fontFamily\n })\n _setScalesAutoMinMax(axis)\n _setScalesTickRotation(axis)\n _setAxisTitle(axis)\n _setScalesTheme(axis, theme, fontColor)\n _appendTickCallback(axis.ticks)\n\n axis.gridLines!.display = options.xGridLine\n }\n\n // 1-2. setup yAxes\n for (let i in yAxes) {\n let axis = yAxes[i]\n\n //@ts-ignore\n if (i == 1) {\n _setMultiAxis(axis, multiAxis)\n }\n _setStacked(axis, yStacked[i])\n _setScalesFont(axis, {\n fontSize,\n fontFamily\n })\n _setScalesAutoMinMax(axis)\n _setAxisTitle(axis)\n _setScalesTheme(axis, theme, fontColor)\n _appendTickCallback(axis.ticks)\n\n //@ts-ignore\n if (i == 0) axis.gridLines.display = options.yGridLine\n\n //@ts-ignore\n if (i == 1) axis.gridLines.display = options.y2ndGridLine\n }\n\n break\n case 'pie':\n case 'doughnut':\n break\n default:\n scale = options.scale || {}\n _setScalesFont(scale, {\n fontSize,\n fontFamily\n })\n break\n }\n\n // 2. setup legend\n _setLegendFont(legend, {\n fontSize,\n fontFamily\n })\n legend.labels && (legend.labels.boxWidth = 15)\n _setLegendTheme(legend, theme, fontColor)\n\n // 3. setup tooltips\n options.tooltip &&\n _setTooltipFont(tooltips!, {\n fontSize,\n fontFamily\n })\n options.tooltip && _setTooltipCallback(tooltips!)\n}\n\nfunction _configureBackwardsCompatible(type: string, options: SceneChart.ChartOptions) {\n switch (type) {\n case 'horizontalBar':\n if (!options.scales) options.scales = {}\n break\n case 'radar':\n case 'polarArea':\n if (options.defaultFontColor) {\n options.scale!.ticks!.fontColor = options.defaultFontColor\n if (options.scale.pointLabels) {\n options.scale.pointLabels.fontColor = options.defaultFontColor\n } else {\n options.scale.pointLabels = { fontColor: options.defaultFontColor }\n }\n }\n options.scale!.ticks!.backdropColor = options.fillStyle ? options.fillStyle : '#00ff0000'\n break\n case 'line':\n case 'bar':\n if (!options.scales) options.scales = {}\n if (!options.scales.yAxes) options.scales.yAxes = []\n\n if (options.scales.yAxes.length === 1) {\n let yAxes = options.scales.yAxes\n yAxes.push({\n position: 'right',\n id: 'right',\n display: options.multiAxis || false,\n gridLines: {\n display: (yAxes[0] && yAxes[0].gridLines && yAxes[0].gridLines.display) || false\n },\n ticks: {\n beginAtZero: false,\n callback: function (value: any, index: number, values: any[]) {\n var returnValue = value\n if (typeof returnValue == 'number') {\n returnValue = returnValue.toLocaleString()\n }\n\n return returnValue\n }\n }\n })\n }\n break\n case 'pie':\n case 'doughnut':\n break\n default:\n if (!options.scale) options.scale = {}\n\n break\n }\n}\n\nfunction _setStacked(axis: SceneChart.ChartXAxe, stacked: boolean) {\n axis.stacked = stacked\n}\n\nfunction _setMultiAxis(axis: SceneChart.ChartXAxe, multiAxis: boolean) {\n axis.display = multiAxis\n}\n\nfunction _setAxisTitle(axis: SceneChart.ChartXAxe) {\n if (!axis.scaleLabel) axis.scaleLabel = {}\n axis.scaleLabel.labelString = axis.axisTitle\n axis.scaleLabel.display = axis.axisTitle ? true : false\n}\n\nfunction _setScalesFont(\n axis: SceneChart.ChartXAxe | SceneChart.RadialLinearScale,\n { fontSize, fontFamily }: { fontSize: number; fontFamily: string }\n) {\n axis.ticks = axis.ticks ? axis.ticks : {}\n axis.ticks.fontSize = fontSize\n\n if (fontFamily) {\n axis.ticks.fontFamily = fontFamily\n }\n\n ;(axis as SceneChart.RadialLinearScale).pointLabels = {\n fontSize,\n fontFamily\n }\n}\n\nfunction _setScalesAutoMinMax(axis: SceneChart.ChartXAxe) {\n axis.ticks = axis.ticks ? axis.ticks : {}\n\n let autoMin = axis.ticks.autoMin\n let autoMax = axis.ticks.autoMax\n\n if (autoMin === true) {\n delete axis.ticks.min\n }\n if (autoMax === true) {\n delete axis.ticks.max\n }\n}\n\nfunction _setScalesTickRotation(axis: SceneChart.ChartXAxe) {\n axis.ticks = axis.ticks ? axis.ticks : {}\n // axis.ticks.maxRotation = 0\n}\n\nfunction _setScalesTheme(axis: SceneChart.ChartXAxe, theme: SceneChart.Theme, fontColor: string) {\n var baseColor = _getBaseColorFromTheme(theme)\n\n axis.gridLines = axis.gridLines ? axis.gridLines : {}\n if (axis.gridLines) {\n axis.gridLines.zeroLineColor = baseColor.clone().setAlpha(0.5).toString()\n axis.gridLines.color = baseColor.clone().setAlpha(0.1).toString()\n }\n\n axis.ticks = axis.ticks ? axis.ticks : {}\n axis.ticks.fontColor = fontColor ? fontColor : baseColor.clone().setAlpha(0.5).toString()\n}\n\nfunction _setLegendFont(\n legend: SceneChart.ChartLegendOptions,\n { fontFamily, fontSize }: { fontFamily: string; fontSize: number }\n) {\n legend.labels = legend.labels ? legend.labels : {}\n legend.labels.fontSize = fontSize\n if (fontFamily) legend.labels.fontFamily = fontFamily\n}\n\nfunction _setLegendTheme(legend: SceneChart.ChartLegendOptions, theme: SceneChart.Theme, fontColor: string) {\n var baseColor = _getBaseColorFromTheme(theme)\n\n legend.labels = legend.labels ? legend.labels : {}\n legend.labels.fontColor = fontColor ? fontColor : baseColor.clone().setAlpha(0.5).toString()\n}\n\nfunction _getBaseColorFromTheme(theme: SceneChart.Theme) {\n let darkColor = '#000'\n let lightColor = '#fff'\n\n var baseColor\n\n switch (theme) {\n case 'light':\n baseColor = lightColor\n break\n case 'dark':\n default:\n baseColor = darkColor\n break\n }\n\n baseColor = new TinyColor(baseColor)\n\n return baseColor\n}\n\nfunction _setSeriesConfigures(series: SceneChart.ChartDataSets, chart: SceneChart.ChartConfig) {\n var type = series.type || chart.type\n var stackGroup = `${type} ${series.yAxisID} ${series.stack || series.dataKey}`\n var color = series.color ? series.color : series.backgroundColor\n\n switch (type) {\n case 'bar':\n case 'horizontalBar':\n series.borderColor = series.backgroundColor = color\n break\n\n case 'line':\n case 'radar':\n color = series.color ? series.color : series.borderColor\n series.pointBackgroundColor = series.pointBorderColor = series.borderColor = series.backgroundColor = color\n series.pointBorderWidth = (series.borderWidth as number) * 0.5\n series.pointHoverRadius = series.pointRadius\n if (series.fill == undefined) series.fill = false\n break\n\n default:\n series.borderColor = series.backgroundColor = color\n break\n }\n\n series.stack = stackGroup\n}\n\nfunction _appendTickCallback(ticks: SceneChart.TickOptions | undefined) {\n if (!ticks) {\n return\n }\n\n ticks.callback = function (value, index, values) {\n var returnValue\n if (!Number.isNaN(Number(value))) {\n returnValue = Number(value).toLocaleString()\n } else {\n returnValue = value\n }\n\n if (returnValue) return returnValue\n }\n}\n\nfunction _setTooltipFont(\n tooltips: SceneChart.ChartTooltipOptions,\n { fontSize, fontFamily }: { fontSize: number; fontFamily: string }\n) {\n tooltips.titleFontSize = tooltips.bodyFontSize = tooltips.footerFontSize = fontSize\n if (fontFamily) tooltips.titleFontFamily = tooltips.bodyFontFamily = tooltips.footerFontFamily = fontFamily\n}\n\nfunction _setTooltipCallback(tooltips: SceneChart.ChartTooltipOptions) {\n tooltips.callbacks = tooltips.callbacks || {}\n\n tooltips.intersect = false\n tooltips.mode = 'index'\n\n tooltips.callbacks.label = function (tooltipItem: SceneChart.ChartTooltipItem, data: SceneChart.ChartData) {\n var value: any = data.datasets?.[tooltipItem.datasetIndex || 0].data?.[tooltipItem.index || 0]\n var datasetLabel = data.datasets?.[tooltipItem.datasetIndex || 0].label\n var label = datasetLabel || data.labels?.[tooltipItem.index || 0]\n var toNumValue = Number(value)\n\n if (!isNaN(toNumValue)) {\n value = toNumValue.toLocaleString()\n }\n\n var prefix = data.datasets?.[tooltipItem.datasetIndex || 0].valuePrefix || ''\n var suffix = data.datasets?.[tooltipItem.datasetIndex || 0].valueSuffix || ''\n\n return `${label}: ${prefix + value + suffix}`\n }\n}\n"]}
1
+ {"version":3,"file":"config-converter.js","sourceRoot":"","sources":["../src/config-converter.ts"],"names":[],"mappings":"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","sourcesContent":["import { TinyColor } from '@ctrl/tinycolor'\nimport { format as formatText } from './text-formatter'\n\nexport function convertConfigure(chart: SceneChart.ChartConfig) {\n if (!chart) return\n\n var data = chart.data || {}\n var datasets = data.datasets || []\n var options = chart.options || {}\n var scales = options.scales || {}\n var xAxes: Array<SceneChart.ChartXAxe>\n var yAxes: Array<SceneChart.ChartYAxe>\n var scale\n var legend = options.legend || {}\n var tooltips = options.tooltip === false ? undefined : (options.tooltips = options.tooltips || {})\n var multiAxis = options.multiAxis\n var stacked = false\n var yStacked = [false, false]\n var fontSize = Number(options.defaultFontSize)\n var fontFamily = options.defaultFontFamily\n var fontColor = options.defaultFontColor\n var theme = options.theme\n\n // backward compatible\n _configureBackwardsCompatible(chart.type, options)\n\n // setup series configure\n for (let i in datasets) {\n let series = datasets[i]\n\n if (options.stacked && !series.stack) {\n series.stack = 'A'\n }\n\n /*\n * TODO from chartjs 2.9, categoryPercentage, barPercentage properties move to dataset.\n * so need to move related properties - categorySpacing, barSpacing should be moved to series.\n */\n if (chart.type == 'bar') {\n let categorySpacing = (scales.xAxes && scales.xAxes[0].categorySpacing) || 0\n let barSpacing = (scales.xAxes && scales.xAxes[0].barSpacing) || 0\n\n series.categoryPercentage = 1 - categorySpacing || 1\n series.barPercentage = 1 - barSpacing || 0.8\n } else if (chart.type == 'horizontalBar') {\n let categorySpacing = (scales.yAxes && scales.yAxes[0].categorySpacing) || 0\n let barSpacing = (scales.yAxes && scales.yAxes[0].barSpacing) || 0\n\n series.categoryPercentage = 1 - categorySpacing || 1\n series.barPercentage = 1 - barSpacing || 0.8\n }\n\n _setSeriesConfigures(series, chart)\n\n if (!multiAxis) {\n if (series.yAxisID == 'right') series.yAxisID = 'left'\n }\n }\n\n delete options.stacked\n\n var leftSeries = datasets.filter(d => d.yAxisID == 'left')\n var rightSeries = datasets.filter(d => d.yAxisID == 'right')\n\n leftSeries.forEach(s => {\n var filtered = leftSeries.filter(ss => s.stack == ss.stack)\n if (filtered.length > 1) {\n yStacked[0] = true\n return\n }\n })\n\n rightSeries.forEach(s => {\n var filtered = rightSeries.filter(ss => s.stack == ss.stack)\n if (filtered.length > 1) {\n yStacked[1] = true\n return\n }\n })\n\n stacked = yStacked[0] || yStacked[1]\n\n // setup options\n // 1. setup scales\n switch (chart.type) {\n case 'line':\n case 'bar':\n case 'horizontalBar':\n xAxes = scales.xAxes || []\n yAxes = scales.yAxes || []\n\n if (chart.type == 'horizontalBar') {\n xAxes = scales.yAxes || []\n yAxes = scales.xAxes || []\n }\n\n // 1-1. setup xAxes\n for (let i in xAxes) {\n let axis = xAxes[i]\n _setStacked(axis, stacked)\n _setScalesFont(axis, {\n fontSize,\n fontFamily\n })\n _setScalesAutoMinMax(axis)\n _setScalesTickRotation(axis)\n _setAxisTitle(axis)\n _setScalesTheme(axis, theme, fontColor)\n _appendTickCallback(axis.ticks)\n\n axis.gridLines!.display = options.xGridLine\n }\n\n // 1-2. setup yAxes\n for (let i in yAxes) {\n let axis = yAxes[i]\n\n //@ts-ignore\n if (i == 1) {\n _setMultiAxis(axis, multiAxis)\n }\n _setStacked(axis, yStacked[i])\n _setScalesFont(axis, {\n fontSize,\n fontFamily\n })\n _setScalesAutoMinMax(axis)\n _setAxisTitle(axis)\n _setScalesTheme(axis, theme, fontColor)\n _appendTickCallback(axis.ticks)\n\n //@ts-ignore\n if (i == 0) axis.gridLines.display = options.yGridLine\n\n //@ts-ignore\n if (i == 1) axis.gridLines.display = options.y2ndGridLine\n }\n\n break\n case 'pie':\n case 'doughnut':\n break\n default:\n scale = options.scale || {}\n _setScalesFont(scale, {\n fontSize,\n fontFamily\n })\n break\n }\n\n // 2. setup legend\n _setLegendFont(legend, {\n fontSize,\n fontFamily\n })\n legend.labels && (legend.labels.boxWidth = 15)\n _setLegendTheme(legend, theme, fontColor)\n\n // 3. setup tooltips\n options.tooltip &&\n _setTooltipFont(tooltips!, {\n fontSize,\n fontFamily\n })\n options.tooltip && _setTooltipCallback(tooltips!)\n}\n\nfunction _configureBackwardsCompatible(type: string, options: SceneChart.ChartOptions) {\n switch (type) {\n case 'horizontalBar':\n if (!options.scales) options.scales = {}\n break\n case 'radar':\n case 'polarArea':\n if (options.defaultFontColor) {\n options.scale!.ticks!.fontColor = options.defaultFontColor\n if (options.scale.pointLabels) {\n options.scale.pointLabels.fontColor = options.defaultFontColor\n } else {\n options.scale.pointLabels = { fontColor: options.defaultFontColor }\n }\n }\n options.scale!.ticks!.backdropColor = options.fillStyle ? options.fillStyle : '#00ff0000'\n break\n case 'line':\n case 'bar':\n if (!options.scales) options.scales = {}\n if (!options.scales.yAxes) options.scales.yAxes = []\n\n if (options.scales.yAxes.length === 1) {\n let yAxes = options.scales.yAxes\n yAxes.push({\n position: 'right',\n id: 'right',\n display: options.multiAxis || false,\n gridLines: {\n display: (yAxes[0] && yAxes[0].gridLines && yAxes[0].gridLines.display) || false\n },\n ticks: {\n beginAtZero: false,\n callback: function (value: any, index: number, values: any[]) {\n var returnValue = value\n if (typeof returnValue == 'number') {\n returnValue = returnValue.toLocaleString()\n }\n\n return returnValue\n }\n }\n })\n }\n break\n case 'pie':\n case 'doughnut':\n break\n default:\n if (!options.scale) options.scale = {}\n\n break\n }\n}\n\nfunction _setStacked(axis: SceneChart.ChartXAxe, stacked: boolean) {\n axis.stacked = stacked\n}\n\nfunction _setMultiAxis(axis: SceneChart.ChartXAxe, multiAxis: boolean) {\n axis.display = multiAxis\n}\n\nfunction _setAxisTitle(axis: SceneChart.ChartXAxe) {\n if (!axis.scaleLabel) axis.scaleLabel = {}\n axis.scaleLabel.labelString = axis.axisTitle\n axis.scaleLabel.display = axis.axisTitle ? true : false\n}\n\nfunction _setScalesFont(\n axis: SceneChart.ChartXAxe | SceneChart.RadialLinearScale,\n { fontSize, fontFamily }: { fontSize: number; fontFamily: string }\n) {\n axis.ticks = axis.ticks ? axis.ticks : {}\n axis.ticks.fontSize = fontSize\n\n if (fontFamily) {\n axis.ticks.fontFamily = fontFamily\n }\n\n ;(axis as SceneChart.RadialLinearScale).pointLabels = {\n fontSize,\n fontFamily\n }\n}\n\nfunction _setScalesAutoMinMax(axis: SceneChart.ChartXAxe) {\n axis.ticks = axis.ticks ? axis.ticks : {}\n\n let autoMin = axis.ticks.autoMin\n let autoMax = axis.ticks.autoMax\n\n if (autoMin === true) {\n delete axis.ticks.min\n }\n if (autoMax === true) {\n delete axis.ticks.max\n }\n}\n\nfunction _setScalesTickRotation(axis: SceneChart.ChartXAxe) {\n axis.ticks = axis.ticks ? axis.ticks : {}\n // axis.ticks.maxRotation = 0\n}\n\nfunction _setScalesTheme(axis: SceneChart.ChartXAxe, theme: SceneChart.Theme, fontColor: string) {\n var baseColor = _getBaseColorFromTheme(theme)\n\n axis.gridLines = axis.gridLines ? axis.gridLines : {}\n if (axis.gridLines) {\n axis.gridLines.zeroLineColor = baseColor.clone().setAlpha(0.5).toString()\n axis.gridLines.color = baseColor.clone().setAlpha(0.1).toString()\n }\n\n axis.ticks = axis.ticks ? axis.ticks : {}\n axis.ticks.fontColor = fontColor ? fontColor : baseColor.clone().setAlpha(0.5).toString()\n}\n\nfunction _setLegendFont(\n legend: SceneChart.ChartLegendOptions,\n { fontFamily, fontSize }: { fontFamily: string; fontSize: number }\n) {\n legend.labels = legend.labels ? legend.labels : {}\n legend.labels.fontSize = fontSize\n if (fontFamily) legend.labels.fontFamily = fontFamily\n}\n\nfunction _setLegendTheme(legend: SceneChart.ChartLegendOptions, theme: SceneChart.Theme, fontColor: string) {\n var baseColor = _getBaseColorFromTheme(theme)\n\n legend.labels = legend.labels ? legend.labels : {}\n legend.labels.fontColor = fontColor ? fontColor : baseColor.clone().setAlpha(0.5).toString()\n}\n\nfunction _getBaseColorFromTheme(theme: SceneChart.Theme) {\n let darkColor = '#000'\n let lightColor = '#fff'\n\n var baseColor\n\n switch (theme) {\n case 'light':\n baseColor = lightColor\n break\n case 'dark':\n default:\n baseColor = darkColor\n break\n }\n\n baseColor = new TinyColor(baseColor)\n\n return baseColor\n}\n\nfunction _setSeriesConfigures(series: SceneChart.ChartDataSets, chart: SceneChart.ChartConfig) {\n var type = series.type || chart.type\n var stackGroup = `${type} ${series.yAxisID} ${series.stack || series.dataKey}`\n var color = series.color ? series.color : series.backgroundColor\n\n switch (type) {\n case 'bar':\n case 'horizontalBar':\n series.borderColor = series.backgroundColor = color\n break\n\n case 'line':\n case 'radar':\n color = series.color ? series.color : series.borderColor\n series.pointBackgroundColor = series.pointBorderColor = series.borderColor = series.backgroundColor = color\n series.pointBorderWidth = (series.borderWidth as number) * 0.5\n series.pointHoverRadius = series.pointRadius\n if (series.fill == undefined) series.fill = false\n break\n\n default:\n series.borderColor = series.backgroundColor = color\n break\n }\n\n series.stack = stackGroup\n}\n\nfunction _appendTickCallback(ticks: SceneChart.TickOptions | undefined) {\n if (!ticks) {\n return\n }\n\n ticks.callback = function (value, index, values) {\n var returnValue\n if (!Number.isNaN(Number(value))) {\n returnValue = Number(value).toLocaleString()\n } else {\n returnValue = value\n }\n\n if (returnValue) return returnValue\n }\n}\n\nfunction _setTooltipFont(\n tooltips: SceneChart.ChartTooltipOptions,\n { fontSize, fontFamily }: { fontSize: number; fontFamily: string }\n) {\n tooltips.titleFontSize = tooltips.bodyFontSize = tooltips.footerFontSize = fontSize\n if (fontFamily) tooltips.titleFontFamily = tooltips.bodyFontFamily = tooltips.footerFontFamily = fontFamily\n}\n\nfunction _setTooltipCallback(tooltips: SceneChart.ChartTooltipOptions) {\n tooltips.callbacks = tooltips.callbacks || {}\n\n tooltips.intersect = false\n tooltips.mode = 'index'\n\n tooltips.callbacks.label = function (tooltipItem: SceneChart.ChartTooltipItem, data: SceneChart.ChartData) {\n var value: any = data.datasets?.[tooltipItem.datasetIndex || 0].data?.[tooltipItem.index || 0]\n var datasetLabel = data.datasets?.[tooltipItem.datasetIndex || 0].label\n var label = datasetLabel || data.labels?.[tooltipItem.index || 0]\n var toNumValue = Number(value)\n\n if (!isNaN(toNumValue)) {\n value = toNumValue.toLocaleString()\n }\n\n var format = data.datasets?.[tooltipItem.datasetIndex || 0].valueFormat || ''\n var prefix = data.datasets?.[tooltipItem.datasetIndex || 0].valuePrefix || ''\n var suffix = data.datasets?.[tooltipItem.datasetIndex || 0].valueSuffix || ''\n\n var stringValue = format ? formatText(format, Number(label)) : Number(label).toLocaleString()\n\n return `${label}: ${prefix + stringValue + suffix}`\n }\n}\n"]}
@@ -51,6 +51,17 @@ class PropertyEditorChartJSAbstract extends LitElement {
51
51
  }
52
52
  displayValueTemplate() {
53
53
  return html `
54
+ <label for="value-format"> <ox-i18n msgid="label.value-format">Value Format</ox-i18n> </label>
55
+ <input type="text" value-key="series.valueFormat" .value=${this.series.valueFormat || ''} list="format-list" />
56
+ <datalist id="format-list">
57
+ <option value="#,###."></option>
58
+ <option value="#,###.#"></option>
59
+ <option value="#,###.0"></option>
60
+ <option value="#,##0.#"></option>
61
+ <option value="#,##0.0"></option>
62
+ <option value="#,##0.0%"></option>
63
+ </datalist>
64
+
54
65
  <label> <ox-i18n msgid="label.value-prefix">Value Prefix</ox-i18n> </label>
55
66
  <input type="text" value-key="series.valuePrefix" .value=${this.series.valuePrefix || ''} />
56
67
 
@@ -1 +1 @@
1
- {"version":3,"file":"property-editor-chartjs-abstract.js","sourceRoot":"","sources":["../../src/editors/property-editor-chartjs-abstract.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/i18n/ox-i18n.js'\n\nimport { html, LitElement } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport { random as randomColor, TinyColor } from '@ctrl/tinycolor'\nimport { Properties } from '@hatiolab/things-scene'\n\nimport { PropertyEditorChartJSStyles } from './property-editor-chartjs-styles'\n\nexport default class PropertyEditorChartJSAbstract extends LitElement {\n static styles = [PropertyEditorChartJSStyles]\n\n @property({ type: Object }) value: any = {}\n @property({ type: Number }) currentSeriesIndex: number = 0\n\n render() {\n return html`\n <legend><ox-i18n msgid=\"label.chart\">Chart</ox-i18n></legend>\n\n <label> <ox-i18n msgid=\"label.theme\">theme</ox-i18n> </label>\n <select value-key=\"theme\" class=\"select-content\" .value=${this.theme}>\n <option value=\"dark\">dark</option>\n <option value=\"light\">light</option>\n </select>\n\n <input type=\"checkbox\" value-key=\"tooltip\" .checked=${this.tooltip} />\n <label> <ox-i18n msgid=\"label.tooltip\">Tooltip</ox-i18n> </label>\n\n <input type=\"checkbox\" value-key=\"animation\" .checked=${this.animation} />\n <label> <ox-i18n msgid=\"label.animation\">Animation</ox-i18n> </label>\n\n <input type=\"checkbox\" value-key=\"display\" .checked=${this.display} />\n <label> <ox-i18n msgid=\"label.legend\">Legend</ox-i18n> </label>\n\n <input type=\"checkbox\" value-key=\"stacked\" .checked=${this.stacked} />\n <label> <ox-i18n msgid=\"label.stacked\">Stacked</ox-i18n> </label>\n\n ${this.display\n ? html`\n <label> <ox-i18n msgid=\"label.position\">Position</ox-i18n> </label>\n <select value-key=\"position\" class=\"select-content\" .value=${this.position}>\n <option value=\"top\">top</option>\n <option value=\"right\">right</option>\n <option value=\"bottom\">bottom</option>\n <option value=\"left\">left</option>\n </select>\n `\n : html``}\n ${this.editorTemplate(this)}\n `\n }\n\n firstUpdated() {\n this.renderRoot.addEventListener('change', this.onValuesChanged.bind(this))\n }\n\n displayValueTemplate() {\n return html`\n <label> <ox-i18n msgid=\"label.value-prefix\">Value Prefix</ox-i18n> </label>\n <input type=\"text\" value-key=\"series.valuePrefix\" .value=${this.series.valuePrefix || ''} />\n\n <label> <ox-i18n msgid=\"label.value-suffix\">Value suffix</ox-i18n> </label>\n <input type=\"text\" value-key=\"series.valueSuffix\" .value=${this.series.valueSuffix || ''} />\n\n <input type=\"checkbox\" value-key=\"series.displayValue\" .checked=${this.series.displayValue || false} />\n <label> <ox-i18n msgid=\"label.value-display\">Value Display</ox-i18n> </label>\n\n ${this.series.displayValue\n ? html`\n <label> <ox-i18n msgid=\"label.font-color\">Font Color</ox-i18n> </label>\n <ox-input-color\n value-key=\"series.defaultFontColor\"\n .value=${this.series.defaultFontColor || '#000'}\n ></ox-input-color>\n <label> <ox-i18n msgid=\"label.font-size\">Font Size</ox-i18n> </label>\n <input type=\"number\" value-key=\"series.defaultFontSize\" .value=${this.series.defaultFontSize || 10} />\n <label> <ox-i18n msgid=\"label.position\">Position</ox-i18n> </label>\n <select value-key=\"series.dataLabelAnchor\" .value=${this.series.dataLabelAnchor || 'center'}>\n <option value=\"start\">Start</option>\n <option value=\"center\" selected>Center</option>\n <option value=\"end\">End</option>\n </select>\n `\n : html``}\n `\n }\n\n editorTemplate(props: Properties) {\n return html``\n }\n\n get data() {\n return this.value.data\n }\n\n set data(data) {\n this.value.data = data\n }\n\n get datasets() {\n if (!this.data.datasets) this.data.datasets = []\n\n return this.data.datasets\n }\n\n set datasets(datasets) {\n this.datasets = datasets\n }\n\n get series() {\n if (!this.datasets[this.currentSeriesIndex]) this.datasets[this.currentSeriesIndex] = {}\n return this.datasets[this.currentSeriesIndex]\n }\n\n set series(series) {\n !this.data ? (this.data = { dataset: [series] }) : (this.datasets[this.currentSeriesIndex] = series)\n }\n\n set dataKey(key) {\n this.series.dataKey = key\n }\n\n get dataKey() {\n return this.series.dataKey\n }\n\n get legend() {\n !this.value.options && (this.value.options = {})\n return this.value.options.legend\n }\n\n set legend(legend) {\n this.value.options.legend = legend\n }\n\n get theme() {\n return this.value.options && this.value.options.theme\n }\n\n set theme(theme) {\n !this.value.options && (this.value.options = {})\n this.value.options.theme = theme\n }\n\n get tooltip() {\n return !this.value.options || this.value.options.tooltip !== false /* default true */\n }\n\n set tooltip(tooltip) {\n this.value.options.tooltip = tooltip\n }\n\n get animation() {\n return !this.value.options || this.value.options.animation !== false /* default true */\n }\n\n set animation(animation) {\n this.value.options.animation = animation\n }\n\n get scales() {\n return this.value.options.scales\n }\n\n set scales(scales) {\n !this.value.options && (this.value.options = {})\n this.value.options.scales = scales\n }\n\n get display() {\n return this.legend && this.legend.display\n }\n\n set display(display) {\n this.legend.display = display\n }\n\n get position() {\n return this.legend.position\n }\n\n set position(position) {\n this.legend.position = position\n }\n\n get stacked() {\n return this.value.options.stacked\n }\n\n set stacked(stacked) {\n this.value.options.stacked = stacked\n }\n\n get labelDataKey() {\n return this.data && this.data.labelDataKey\n }\n\n set labelDataKey(labelDataKey) {\n this.data.labelDataKey = labelDataKey\n }\n\n set options(options) {\n this.value.options = options\n }\n\n get options() {\n return this.value.options\n }\n\n onValuesChanged(e: Event) {\n var element = e.target as HTMLInputElement\n var key = element.getAttribute('value-key')\n var value = element.value\n\n if (!key) {\n return\n }\n\n value = this._getElementValue(element)\n\n var attrs = key.split('.')\n var attr = attrs.shift() || ''\n var variable = this\n\n while (attrs.length > 0) {\n //@ts-ignore\n variable = variable[attr]\n attr = attrs.shift() || ''\n }\n\n //@ts-ignore\n variable[attr] = value\n\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true }))\n this.requestUpdate()\n }\n\n onTapAddTab(e: Event) {\n if (!this.value.data.datasets) return\n\n var lastSeriesIndex = this.value.data.datasets.length\n var chartType = this.series.type || this.value.type\n var lastSeriesColor = new TinyColor(this.datasets[lastSeriesIndex - 1].backgroundColor)\n\n var seriesModel = this._getSeriesModel({\n chartType,\n datasetsLength: lastSeriesIndex,\n lastSeriesColor\n })\n\n this.value.data.datasets.push(seriesModel)\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true }))\n this.currentSeriesIndex = lastSeriesIndex\n }\n\n onTapRemoveCurrentTab(e: Event) {\n if (!this.value.data.datasets) return\n\n var currIndex = this.currentSeriesIndex\n this.value.data.datasets.splice(currIndex, 1)\n\n currIndex--\n\n if (currIndex < 0) currIndex = 0\n\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true }))\n this.currentSeriesIndex = currIndex\n\n this.requestUpdate()\n }\n\n _getSeriesModel({\n chartType,\n datasetsLength,\n lastSeriesColor\n }: {\n chartType: any\n datasetsLength: number\n lastSeriesColor: TinyColor\n }) {\n var addSeriesOption: any = {\n label: `series ${datasetsLength + 1}`,\n data: [],\n borderWidth: 1,\n dataKey: '',\n yAxisID: 'left',\n color: randomColor({\n hue: lastSeriesColor as any\n }).toRgbString()\n }\n\n addSeriesOption.type = addSeriesOption.chartType = chartType\n return addSeriesOption\n }\n\n _getElementValue(element: HTMLElement) {\n switch (element.tagName) {\n case 'INPUT':\n switch ((element as HTMLInputElement).type) {\n case 'checkbox':\n return (element as HTMLInputElement).checked\n case 'number':\n return Number((element as HTMLInputElement).value) || 0\n case 'text':\n return String((element as HTMLInputElement).value)\n }\n\n case 'PAPER-BUTTON':\n return (element as any).active\n\n case 'PAPER-LISTBOX':\n return (element as any).selected\n\n case 'THINGS-EDITOR-MULTIPLE-COLOR':\n return (element as any).values\n\n case 'THINGS-EDITOR-ANGLE-INPUT':\n return Number((element as any).radian) || 0\n\n default:\n return (element as any).value\n }\n }\n}\n"]}
1
+ {"version":3,"file":"property-editor-chartjs-abstract.js","sourceRoot":"","sources":["../../src/editors/property-editor-chartjs-abstract.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/i18n/ox-i18n.js'\n\nimport { html, LitElement } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport { random as randomColor, TinyColor } from '@ctrl/tinycolor'\nimport { Properties } from '@hatiolab/things-scene'\n\nimport { PropertyEditorChartJSStyles } from './property-editor-chartjs-styles'\n\nexport default class PropertyEditorChartJSAbstract extends LitElement {\n static styles = [PropertyEditorChartJSStyles]\n\n @property({ type: Object }) value: any = {}\n @property({ type: Number }) currentSeriesIndex: number = 0\n\n render() {\n return html`\n <legend><ox-i18n msgid=\"label.chart\">Chart</ox-i18n></legend>\n\n <label> <ox-i18n msgid=\"label.theme\">theme</ox-i18n> </label>\n <select value-key=\"theme\" class=\"select-content\" .value=${this.theme}>\n <option value=\"dark\">dark</option>\n <option value=\"light\">light</option>\n </select>\n\n <input type=\"checkbox\" value-key=\"tooltip\" .checked=${this.tooltip} />\n <label> <ox-i18n msgid=\"label.tooltip\">Tooltip</ox-i18n> </label>\n\n <input type=\"checkbox\" value-key=\"animation\" .checked=${this.animation} />\n <label> <ox-i18n msgid=\"label.animation\">Animation</ox-i18n> </label>\n\n <input type=\"checkbox\" value-key=\"display\" .checked=${this.display} />\n <label> <ox-i18n msgid=\"label.legend\">Legend</ox-i18n> </label>\n\n <input type=\"checkbox\" value-key=\"stacked\" .checked=${this.stacked} />\n <label> <ox-i18n msgid=\"label.stacked\">Stacked</ox-i18n> </label>\n\n ${this.display\n ? html`\n <label> <ox-i18n msgid=\"label.position\">Position</ox-i18n> </label>\n <select value-key=\"position\" class=\"select-content\" .value=${this.position}>\n <option value=\"top\">top</option>\n <option value=\"right\">right</option>\n <option value=\"bottom\">bottom</option>\n <option value=\"left\">left</option>\n </select>\n `\n : html``}\n ${this.editorTemplate(this)}\n `\n }\n\n firstUpdated() {\n this.renderRoot.addEventListener('change', this.onValuesChanged.bind(this))\n }\n\n displayValueTemplate() {\n return html`\n <label for=\"value-format\"> <ox-i18n msgid=\"label.value-format\">Value Format</ox-i18n> </label>\n <input type=\"text\" value-key=\"series.valueFormat\" .value=${this.series.valueFormat || ''} list=\"format-list\" />\n <datalist id=\"format-list\">\n <option value=\"#,###.\"></option>\n <option value=\"#,###.#\"></option>\n <option value=\"#,###.0\"></option>\n <option value=\"#,##0.#\"></option>\n <option value=\"#,##0.0\"></option>\n <option value=\"#,##0.0%\"></option>\n </datalist>\n\n <label> <ox-i18n msgid=\"label.value-prefix\">Value Prefix</ox-i18n> </label>\n <input type=\"text\" value-key=\"series.valuePrefix\" .value=${this.series.valuePrefix || ''} />\n\n <label> <ox-i18n msgid=\"label.value-suffix\">Value suffix</ox-i18n> </label>\n <input type=\"text\" value-key=\"series.valueSuffix\" .value=${this.series.valueSuffix || ''} />\n\n <input type=\"checkbox\" value-key=\"series.displayValue\" .checked=${this.series.displayValue || false} />\n <label> <ox-i18n msgid=\"label.value-display\">Value Display</ox-i18n> </label>\n\n ${this.series.displayValue\n ? html`\n <label> <ox-i18n msgid=\"label.font-color\">Font Color</ox-i18n> </label>\n <ox-input-color\n value-key=\"series.defaultFontColor\"\n .value=${this.series.defaultFontColor || '#000'}\n ></ox-input-color>\n <label> <ox-i18n msgid=\"label.font-size\">Font Size</ox-i18n> </label>\n <input type=\"number\" value-key=\"series.defaultFontSize\" .value=${this.series.defaultFontSize || 10} />\n <label> <ox-i18n msgid=\"label.position\">Position</ox-i18n> </label>\n <select value-key=\"series.dataLabelAnchor\" .value=${this.series.dataLabelAnchor || 'center'}>\n <option value=\"start\">Start</option>\n <option value=\"center\" selected>Center</option>\n <option value=\"end\">End</option>\n </select>\n `\n : html``}\n `\n }\n\n editorTemplate(props: Properties) {\n return html``\n }\n\n get data() {\n return this.value.data\n }\n\n set data(data) {\n this.value.data = data\n }\n\n get datasets() {\n if (!this.data.datasets) this.data.datasets = []\n\n return this.data.datasets\n }\n\n set datasets(datasets) {\n this.datasets = datasets\n }\n\n get series() {\n if (!this.datasets[this.currentSeriesIndex]) this.datasets[this.currentSeriesIndex] = {}\n return this.datasets[this.currentSeriesIndex]\n }\n\n set series(series) {\n !this.data ? (this.data = { dataset: [series] }) : (this.datasets[this.currentSeriesIndex] = series)\n }\n\n set dataKey(key) {\n this.series.dataKey = key\n }\n\n get dataKey() {\n return this.series.dataKey\n }\n\n get legend() {\n !this.value.options && (this.value.options = {})\n return this.value.options.legend\n }\n\n set legend(legend) {\n this.value.options.legend = legend\n }\n\n get theme() {\n return this.value.options && this.value.options.theme\n }\n\n set theme(theme) {\n !this.value.options && (this.value.options = {})\n this.value.options.theme = theme\n }\n\n get tooltip() {\n return !this.value.options || this.value.options.tooltip !== false /* default true */\n }\n\n set tooltip(tooltip) {\n this.value.options.tooltip = tooltip\n }\n\n get animation() {\n return !this.value.options || this.value.options.animation !== false /* default true */\n }\n\n set animation(animation) {\n this.value.options.animation = animation\n }\n\n get scales() {\n return this.value.options.scales\n }\n\n set scales(scales) {\n !this.value.options && (this.value.options = {})\n this.value.options.scales = scales\n }\n\n get display() {\n return this.legend && this.legend.display\n }\n\n set display(display) {\n this.legend.display = display\n }\n\n get position() {\n return this.legend.position\n }\n\n set position(position) {\n this.legend.position = position\n }\n\n get stacked() {\n return this.value.options.stacked\n }\n\n set stacked(stacked) {\n this.value.options.stacked = stacked\n }\n\n get labelDataKey() {\n return this.data && this.data.labelDataKey\n }\n\n set labelDataKey(labelDataKey) {\n this.data.labelDataKey = labelDataKey\n }\n\n set options(options) {\n this.value.options = options\n }\n\n get options() {\n return this.value.options\n }\n\n onValuesChanged(e: Event) {\n var element = e.target as HTMLInputElement\n var key = element.getAttribute('value-key')\n var value = element.value\n\n if (!key) {\n return\n }\n\n value = this._getElementValue(element)\n\n var attrs = key.split('.')\n var attr = attrs.shift() || ''\n var variable = this\n\n while (attrs.length > 0) {\n //@ts-ignore\n variable = variable[attr]\n attr = attrs.shift() || ''\n }\n\n //@ts-ignore\n variable[attr] = value\n\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true }))\n this.requestUpdate()\n }\n\n onTapAddTab(e: Event) {\n if (!this.value.data.datasets) return\n\n var lastSeriesIndex = this.value.data.datasets.length\n var chartType = this.series.type || this.value.type\n var lastSeriesColor = new TinyColor(this.datasets[lastSeriesIndex - 1].backgroundColor)\n\n var seriesModel = this._getSeriesModel({\n chartType,\n datasetsLength: lastSeriesIndex,\n lastSeriesColor\n })\n\n this.value.data.datasets.push(seriesModel)\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true }))\n this.currentSeriesIndex = lastSeriesIndex\n }\n\n onTapRemoveCurrentTab(e: Event) {\n if (!this.value.data.datasets) return\n\n var currIndex = this.currentSeriesIndex\n this.value.data.datasets.splice(currIndex, 1)\n\n currIndex--\n\n if (currIndex < 0) currIndex = 0\n\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true }))\n this.currentSeriesIndex = currIndex\n\n this.requestUpdate()\n }\n\n _getSeriesModel({\n chartType,\n datasetsLength,\n lastSeriesColor\n }: {\n chartType: any\n datasetsLength: number\n lastSeriesColor: TinyColor\n }) {\n var addSeriesOption: any = {\n label: `series ${datasetsLength + 1}`,\n data: [],\n borderWidth: 1,\n dataKey: '',\n yAxisID: 'left',\n color: randomColor({\n hue: lastSeriesColor as any\n }).toRgbString()\n }\n\n addSeriesOption.type = addSeriesOption.chartType = chartType\n return addSeriesOption\n }\n\n _getElementValue(element: HTMLElement) {\n switch (element.tagName) {\n case 'INPUT':\n switch ((element as HTMLInputElement).type) {\n case 'checkbox':\n return (element as HTMLInputElement).checked\n case 'number':\n return Number((element as HTMLInputElement).value) || 0\n case 'text':\n return String((element as HTMLInputElement).value)\n }\n\n case 'PAPER-BUTTON':\n return (element as any).active\n\n case 'PAPER-LISTBOX':\n return (element as any).selected\n\n case 'THINGS-EDITOR-MULTIPLE-COLOR':\n return (element as any).values\n\n case 'THINGS-EDITOR-ANGLE-INPUT':\n return Number((element as any).radian) || 0\n\n default:\n return (element as any).value\n }\n }\n}\n"]}
@@ -4,6 +4,8 @@ import PropertyEditorChartJSAbstract from './property-editor-chartjs-abstract';
4
4
  export default class PropertyEditorChartJSPie extends PropertyEditorChartJSAbstract {
5
5
  static styles: import("lit").CSSResult[];
6
6
  constructor();
7
+ get valueFormat(): any;
8
+ set valueFormat(valueFormat: any);
7
9
  get valuePrefix(): any;
8
10
  set valuePrefix(valuePrefix: any);
9
11
  get valueSuffix(): any;
@@ -16,6 +16,12 @@ let PropertyEditorChartJSPie = class PropertyEditorChartJSPie extends PropertyEd
16
16
  };
17
17
  this.currentSeriesIndex = 0;
18
18
  }
19
+ get valueFormat() {
20
+ return this.series.valueFormat;
21
+ }
22
+ set valueFormat(valueFormat) {
23
+ this.series.valueFormat = valueFormat;
24
+ }
19
25
  get valuePrefix() {
20
26
  return this.series.valuePrefix;
21
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"property-editor-chartjs-pie.js","sourceRoot":"","sources":["../../src/editors/property-editor-chartjs-pie.ts"],"names":[],"mappings":";AAAA,OAAO,0BAA0B,CAAA;AAGjC,OAAO,6BAA6B,MAAM,oCAAoC,CAAA;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAGX,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,6BAA6B;IAGjF;QACE,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,KAAK,GAAG;YACX,OAAO,EAAE;gBACP,MAAM,EAAE,EAAE;aACX;YACD,IAAI,EAAE;gBACJ,QAAQ,EAAE,EAAE;aACb;SACF,CAAA;QAED,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAA;IAC7B,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAA;IAChC,CAAC;IAED,IAAI,WAAW,CAAC,WAAW;QACzB,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;IACvC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAA;IAChC,CAAC;IAED,IAAI,WAAW,CAAC,WAAW;QACzB,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;IACvC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAA;IACzD,CAAC;IAED,IAAI,KAAK,CAAC,KAAK;QACb,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAA;IACpC,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAA;IACjC,CAAC;IAED,IAAI,YAAY,CAAC,YAAY;QAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,YAAY,CAAA;IACzC,CAAC;IAED,cAAc,CAAC,KAAiB;QAC9B,OAAO,IAAI,CAAA;;;;sDAIuC,IAAI,CAAC,MAAM,CAAC,OAAO;;;2DAGd,IAAI,CAAC,KAAK;;QAE7D,IAAI,CAAC,oBAAoB,EAAE;;;;;2DAKwB,IAAI,CAAC,YAAY;KACvE,CAAA;IACH,CAAC;;AAnEM,+BAAM,GAAG,6BAA6B,CAAC,MAAM,AAAvC,CAAuC;AADjC,wBAAwB;IAD5C,aAAa,CAAC,6BAA6B,CAAC;GACxB,wBAAwB,CAqE5C;eArEoB,wBAAwB","sourcesContent":["import '@operato/i18n/ox-i18n.js'\n\nimport { Properties } from '@hatiolab/things-scene'\nimport PropertyEditorChartJSAbstract from './property-editor-chartjs-abstract'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit'\n\n@customElement('property-editor-chartjs-pie')\nexport default class PropertyEditorChartJSPie extends PropertyEditorChartJSAbstract {\n static styles = PropertyEditorChartJSAbstract.styles\n\n constructor() {\n super()\n\n this.value = {\n options: {\n legend: {}\n },\n data: {\n datasets: []\n }\n }\n\n this.currentSeriesIndex = 0\n }\n\n get valuePrefix() {\n return this.series.valuePrefix\n }\n\n set valuePrefix(valuePrefix) {\n this.series.valuePrefix = valuePrefix\n }\n\n get valueSuffix() {\n return this.series.valueSuffix\n }\n\n set valueSuffix(valueSuffix) {\n this.series.valueSuffix = valueSuffix\n }\n\n get color() {\n return this.series.color || this.series.backgroundColor\n }\n\n set color(color) {\n this.series.color = color\n delete this.series.backgroundColor\n }\n\n get displayValue() {\n return this.series.displayValue\n }\n\n set displayValue(displayValue) {\n this.series.displayValue = displayValue\n }\n\n editorTemplate(props: Properties) {\n return html`\n <legend><ox-i18n msgid=\"label.series\">Series</ox-i18n></legend>\n\n <label> <ox-i18n msgid=\"label.data-key\">Data Key</ox-i18n> </label>\n <input type=\"text\" value-key=\"dataKey\" .value=${this.series.dataKey} />\n\n <label> <ox-i18n msgid=\"label.color\">color</ox-i18n> </label>\n <ox-input-multiple-colors value-key=\"color\" .value=${this.color}></ox-input-multiple-colors>\n\n ${this.displayValueTemplate()}\n\n <legend><ox-i18n msgid=\"label.axes\">Axes</ox-i18n></legend>\n\n <label> <ox-i18n msgid=\"label.data-key\">Data Key</ox-i18n> </label>\n <input type=\"text\" value-key=\"labelDataKey\" .value=${this.labelDataKey} />\n `\n }\n}\n"]}
1
+ {"version":3,"file":"property-editor-chartjs-pie.js","sourceRoot":"","sources":["../../src/editors/property-editor-chartjs-pie.ts"],"names":[],"mappings":";AAAA,OAAO,0BAA0B,CAAA;AAGjC,OAAO,6BAA6B,MAAM,oCAAoC,CAAA;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAGX,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,6BAA6B;IAGjF;QACE,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,KAAK,GAAG;YACX,OAAO,EAAE;gBACP,MAAM,EAAE,EAAE;aACX;YACD,IAAI,EAAE;gBACJ,QAAQ,EAAE,EAAE;aACb;SACF,CAAA;QAED,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAA;IAC7B,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAA;IAChC,CAAC;IAED,IAAI,WAAW,CAAC,WAAW;QACzB,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;IACvC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAA;IAChC,CAAC;IAED,IAAI,WAAW,CAAC,WAAW;QACzB,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;IACvC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAA;IAChC,CAAC;IAED,IAAI,WAAW,CAAC,WAAW;QACzB,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;IACvC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAA;IACzD,CAAC;IAED,IAAI,KAAK,CAAC,KAAK;QACb,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAA;IACpC,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAA;IACjC,CAAC;IAED,IAAI,YAAY,CAAC,YAAY;QAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,YAAY,CAAA;IACzC,CAAC;IAED,cAAc,CAAC,KAAiB;QAC9B,OAAO,IAAI,CAAA;;;;sDAIuC,IAAI,CAAC,MAAM,CAAC,OAAO;;;2DAGd,IAAI,CAAC,KAAK;;QAE7D,IAAI,CAAC,oBAAoB,EAAE;;;;;2DAKwB,IAAI,CAAC,YAAY;KACvE,CAAA;IACH,CAAC;;AA3EM,+BAAM,GAAG,6BAA6B,CAAC,MAAM,AAAvC,CAAuC;AADjC,wBAAwB;IAD5C,aAAa,CAAC,6BAA6B,CAAC;GACxB,wBAAwB,CA6E5C;eA7EoB,wBAAwB","sourcesContent":["import '@operato/i18n/ox-i18n.js'\n\nimport { Properties } from '@hatiolab/things-scene'\nimport PropertyEditorChartJSAbstract from './property-editor-chartjs-abstract'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit'\n\n@customElement('property-editor-chartjs-pie')\nexport default class PropertyEditorChartJSPie extends PropertyEditorChartJSAbstract {\n static styles = PropertyEditorChartJSAbstract.styles\n\n constructor() {\n super()\n\n this.value = {\n options: {\n legend: {}\n },\n data: {\n datasets: []\n }\n }\n\n this.currentSeriesIndex = 0\n }\n\n get valueFormat() {\n return this.series.valueFormat\n }\n\n set valueFormat(valueFormat) {\n this.series.valueFormat = valueFormat\n }\n\n get valuePrefix() {\n return this.series.valuePrefix\n }\n\n set valuePrefix(valuePrefix) {\n this.series.valuePrefix = valuePrefix\n }\n\n get valueSuffix() {\n return this.series.valueSuffix\n }\n\n set valueSuffix(valueSuffix) {\n this.series.valueSuffix = valueSuffix\n }\n\n get color() {\n return this.series.color || this.series.backgroundColor\n }\n\n set color(color) {\n this.series.color = color\n delete this.series.backgroundColor\n }\n\n get displayValue() {\n return this.series.displayValue\n }\n\n set displayValue(displayValue) {\n this.series.displayValue = displayValue\n }\n\n editorTemplate(props: Properties) {\n return html`\n <legend><ox-i18n msgid=\"label.series\">Series</ox-i18n></legend>\n\n <label> <ox-i18n msgid=\"label.data-key\">Data Key</ox-i18n> </label>\n <input type=\"text\" value-key=\"dataKey\" .value=${this.series.dataKey} />\n\n <label> <ox-i18n msgid=\"label.color\">color</ox-i18n> </label>\n <ox-input-multiple-colors value-key=\"color\" .value=${this.color}></ox-input-multiple-colors>\n\n ${this.displayValueTemplate()}\n\n <legend><ox-i18n msgid=\"label.axes\">Axes</ox-i18n></legend>\n\n <label> <ox-i18n msgid=\"label.data-key\">Data Key</ox-i18n> </label>\n <input type=\"text\" value-key=\"labelDataKey\" .value=${this.labelDataKey} />\n `\n }\n}\n"]}
package/dist/ox-chart.js CHANGED
@@ -6,6 +6,7 @@ import { customElement, property, query } from 'lit/decorators.js';
6
6
  import { Chart } from 'chart.js';
7
7
  import DataBinderPlugin from './plugins/chartjs-plugin-data-binder';
8
8
  import { convertConfigure } from './config-converter';
9
+ import { format as formatText } from './text-formatter';
9
10
  Chart.plugins.register(DataBinderPlugin);
10
11
  let OxChart = class OxChart extends LitElement {
11
12
  firstUpdated() {
@@ -106,13 +107,15 @@ let OxChart = class OxChart extends LitElement {
106
107
  },
107
108
  clamp: true,
108
109
  formatter: function (value, context) {
110
+ //@ts-ignore
111
+ var format = context.dataset.valueFormat || '';
109
112
  //@ts-ignore
110
113
  var prefix = context.dataset.valuePrefix || '';
111
114
  //@ts-ignore
112
115
  var suffix = context.dataset.valueSuffix || '';
113
116
  if (value == undefined)
114
117
  return value;
115
- var stringValue = Number(value).toLocaleString();
118
+ var stringValue = format ? formatText(format, Number(value)) : Number(value).toLocaleString();
116
119
  return prefix + stringValue + suffix;
117
120
  }
118
121
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ox-chart.js","sourceRoot":"","sources":["../src/ox-chart.ts"],"names":[],"mappings":"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","sourcesContent":["import 'chartjs-plugin-datalabels'\nimport 'chartjs-plugin-style'\n\nimport { LitElement, PropertyValues, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\n\nimport { Chart } from 'chart.js'\nimport DataBinderPlugin from './plugins/chartjs-plugin-data-binder'\nimport { convertConfigure } from './config-converter'\n\nChart.plugins.register(DataBinderPlugin)\n\n@customElement('ox-chart')\nexport class OxChart extends LitElement {\n @property({ type: Number }) width!: number\n @property({ type: Number }) height!: number\n @property({ type: Object }) options!: SceneChart.ChartConfig\n @property({ type: Object }) data!: SceneChart.ChartData\n\n private _initialized?: boolean\n private _chart?: SceneChart\n\n @query('canvas') _canvas!: HTMLCanvasElement\n\n firstUpdated() {\n this.initChart()\n }\n\n render() {\n return html` <canvas></canvas> `\n }\n\n updated(changes: PropertyValues<this>) {\n if (changes.has('width') || changes.has('height')) {\n this.updateChartSize()\n }\n\n if (changes.has('options')) {\n this.updateChartConfig()\n }\n\n if (changes.has('data')) {\n this._chart!.data.rawData = this.data\n this._chart!.update()\n }\n }\n\n initChart() {\n const { data, options, type } = this.options\n this.options.options.tooltip = this.options.options.tooltip ?? true\n options!.maintainAspectRatio = false\n\n this.attachPluginOptions(options)\n convertConfigure(this.options as SceneChart.ChartConfig)\n\n this._chart = new Chart(this._canvas, {\n type,\n data,\n options\n }) as SceneChart\n\n this.updateChartSize()\n\n this._initialized = true\n }\n\n updateChartSize() {\n const width = Math.floor(this.width)\n const height = Math.floor(this.height)\n\n this._canvas.style.width = `${width}px`\n this._canvas.style.height = `${height}px`\n\n const _ = () => {\n if (this._canvas.offsetWidth == 0 || this._canvas.offsetHeight == 0) {\n requestAnimationFrame(_)\n } else {\n /*\n 주의 : chart.resize() 내에서 pixel ratio를 감안해서, canvas 의 width, height를 설정하기때문에,\n 별도 처리가 필요하지 않다.\n */\n this._chart!.resize()\n }\n }\n\n requestAnimationFrame(_)\n }\n\n updateChartConfig() {\n if (!this._chart) return\n\n const { data, options, type } = this.options\n options!.maintainAspectRatio = false\n\n this.attachPluginOptions(options)\n convertConfigure(this.options as SceneChart.ChartConfig)\n\n this._chart.type = type\n this._chart.data = data\n this._chart.options = options\n this._chart.data.rawData = this.data\n this._chart.update()\n }\n\n attachPluginOptions(options: SceneChart.ChartOptions) {\n if (!options.plugins) {\n options.plugins = {}\n }\n\n this.attachDatalabelPluginOptions(options.plugins)\n }\n\n attachDatalabelPluginOptions(pluginOptions: SceneChart.ChartPluginsOptions) {\n pluginOptions.datalabels = {\n ...pluginOptions.datalabels,\n display: function (context) {\n //@ts-ignore\n return !!context.dataset.displayValue\n },\n anchor: function (context) {\n //@ts-ignore\n return context.dataset.dataLabelAnchor || 'center'\n },\n color: function (context) {\n //@ts-ignore\n return context.dataset?.defaultFontColor || '#000'\n },\n font: function (context) {\n return {\n //@ts-ignore\n size: context.dataset?.defaultFontSize,\n //@ts-ignore\n family: context.chart.options?.defaultFontFamily\n }\n },\n clamp: true,\n formatter: function (value, context) {\n //@ts-ignore\n var prefix = context.dataset.valuePrefix || ''\n //@ts-ignore\n var suffix = context.dataset.valueSuffix || ''\n if (value == undefined) return value\n\n var stringValue = Number(value).toLocaleString()\n return prefix + stringValue + suffix\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"ox-chart.js","sourceRoot":"","sources":["../src/ox-chart.ts"],"names":[],"mappings":"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","sourcesContent":["import 'chartjs-plugin-datalabels'\nimport 'chartjs-plugin-style'\n\nimport { LitElement, PropertyValues, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\n\nimport { Chart } from 'chart.js'\nimport DataBinderPlugin from './plugins/chartjs-plugin-data-binder'\nimport { convertConfigure } from './config-converter'\nimport { format as formatText } from './text-formatter'\n\nChart.plugins.register(DataBinderPlugin)\n\n@customElement('ox-chart')\nexport class OxChart extends LitElement {\n @property({ type: Number }) width!: number\n @property({ type: Number }) height!: number\n @property({ type: Object }) options!: SceneChart.ChartConfig\n @property({ type: Object }) data!: SceneChart.ChartData\n\n private _initialized?: boolean\n private _chart?: SceneChart\n\n @query('canvas') _canvas!: HTMLCanvasElement\n\n firstUpdated() {\n this.initChart()\n }\n\n render() {\n return html` <canvas></canvas> `\n }\n\n updated(changes: PropertyValues<this>) {\n if (changes.has('width') || changes.has('height')) {\n this.updateChartSize()\n }\n\n if (changes.has('options')) {\n this.updateChartConfig()\n }\n\n if (changes.has('data')) {\n this._chart!.data.rawData = this.data\n this._chart!.update()\n }\n }\n\n initChart() {\n const { data, options, type } = this.options\n this.options.options.tooltip = this.options.options.tooltip ?? true\n options!.maintainAspectRatio = false\n\n this.attachPluginOptions(options)\n convertConfigure(this.options as SceneChart.ChartConfig)\n\n this._chart = new Chart(this._canvas, {\n type,\n data,\n options\n }) as SceneChart\n\n this.updateChartSize()\n\n this._initialized = true\n }\n\n updateChartSize() {\n const width = Math.floor(this.width)\n const height = Math.floor(this.height)\n\n this._canvas.style.width = `${width}px`\n this._canvas.style.height = `${height}px`\n\n const _ = () => {\n if (this._canvas.offsetWidth == 0 || this._canvas.offsetHeight == 0) {\n requestAnimationFrame(_)\n } else {\n /*\n 주의 : chart.resize() 내에서 pixel ratio를 감안해서, canvas 의 width, height를 설정하기때문에,\n 별도 처리가 필요하지 않다.\n */\n this._chart!.resize()\n }\n }\n\n requestAnimationFrame(_)\n }\n\n updateChartConfig() {\n if (!this._chart) return\n\n const { data, options, type } = this.options\n options!.maintainAspectRatio = false\n\n this.attachPluginOptions(options)\n convertConfigure(this.options as SceneChart.ChartConfig)\n\n this._chart.type = type\n this._chart.data = data\n this._chart.options = options\n this._chart.data.rawData = this.data\n this._chart.update()\n }\n\n attachPluginOptions(options: SceneChart.ChartOptions) {\n if (!options.plugins) {\n options.plugins = {}\n }\n\n this.attachDatalabelPluginOptions(options.plugins)\n }\n\n attachDatalabelPluginOptions(pluginOptions: SceneChart.ChartPluginsOptions) {\n pluginOptions.datalabels = {\n ...pluginOptions.datalabels,\n display: function (context) {\n //@ts-ignore\n return !!context.dataset.displayValue\n },\n anchor: function (context) {\n //@ts-ignore\n return context.dataset.dataLabelAnchor || 'center'\n },\n color: function (context) {\n //@ts-ignore\n return context.dataset?.defaultFontColor || '#000'\n },\n font: function (context) {\n return {\n //@ts-ignore\n size: context.dataset?.defaultFontSize,\n //@ts-ignore\n family: context.chart.options?.defaultFontFamily\n }\n },\n clamp: true,\n formatter: function (value, context) {\n //@ts-ignore\n var format = context.dataset.valueFormat || ''\n //@ts-ignore\n var prefix = context.dataset.valuePrefix || ''\n //@ts-ignore\n var suffix = context.dataset.valueSuffix || ''\n if (value == undefined) return value\n\n var stringValue = format ? formatText(format, Number(value)) : Number(value).toLocaleString()\n return prefix + stringValue + suffix\n }\n }\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare function format(mask: string, value: number): string;
@@ -0,0 +1,78 @@
1
+ export function format(mask, value) {
2
+ if (!mask || isNaN(+value)) {
3
+ return value.toString(); // return as it is.
4
+ }
5
+ let isNegative, result, decimal, group, posLeadZero, posTrailZero, posSeparator, part, szSep, integer,
6
+ // find prefix/suffix
7
+ len = mask.length, start = mask.search(/[0-9\-\+#]/), prefix = start > 0 ? mask.substring(0, start) : '',
8
+ // reverse string: not an ideal method if there are surrogate pairs
9
+ str = mask.split('').reverse().join(''), end = str.search(/[0-9\-\+#]/), offset = len - end, substr = mask.substring(offset, offset + 1), indx = offset + (substr === '.' || substr === ',' ? 1 : 0), suffix = end > 0 ? mask.substring(indx, len) : '', splittedMask, splittedValue, stringValue;
10
+ // mask with prefix & suffix removed
11
+ mask = mask.substring(start, indx);
12
+ // convert any string to number according to formation sign.
13
+ value = mask.charAt(0) === '-' ? -value : +value;
14
+ isNegative = value < 0 ? ((value = -value), true) : false; // process only abs(), and turn on flag.
15
+ // search for separator for grp & decimal, anything not digit, not +/- sign, not #.
16
+ result = mask.match(/[^\d\-\+#]/g);
17
+ decimal = '.'; // ( result && result[ result.length - 1 ] ) || '.'; // ','는 소수점이 되지 않게 함
18
+ group = (result && result[1] && result[0]) || ','; // treat the left most symbol as group separator
19
+ // split the decimal for the format string if any.
20
+ splittedMask = mask.split(decimal);
21
+ // Fix the decimal first, toFixed will auto fill trailing zero.
22
+ value = parseFloat(value.toFixed((splittedMask[1] && splittedMask[1].length) || 0));
23
+ stringValue = +value + ''; // convert number to string to trim off *all* trailing decimal zero(es)
24
+ // fill back any trailing zero according to format
25
+ posTrailZero = (splittedMask[1] && splittedMask[1].lastIndexOf('0')) || 0; // look for last zero in format
26
+ part = stringValue.split('.');
27
+ // integer will get !part[1]
28
+ if (!part[1] || (part[1] && part[1].length <= posTrailZero)) {
29
+ stringValue = (+value).toFixed(posTrailZero + 1);
30
+ }
31
+ szSep = splittedMask[0].split(group); // look for separator
32
+ splittedMask[0] = szSep.join(''); // join back without separator for counting the pos of any leading 0.
33
+ posLeadZero = (splittedMask[0] && splittedMask[0].indexOf('0')) || 0;
34
+ if (posLeadZero > -1) {
35
+ while (part[0].length < splittedMask[0].length - posLeadZero) {
36
+ part[0] = '0' + part[0];
37
+ }
38
+ }
39
+ else if (+part[0] === 0) {
40
+ part[0] = '';
41
+ }
42
+ splittedValue = stringValue.split('.');
43
+ splittedValue[0] = part[0];
44
+ // process the first group separator from decimal (.) only, the rest ignore.
45
+ // get the length of the last slice of split result.
46
+ posSeparator = (szSep[1] && szSep[szSep.length - 1].length) || 0;
47
+ if (posSeparator) {
48
+ integer = splittedValue[0];
49
+ str = '';
50
+ offset = integer.length % posSeparator;
51
+ len = integer.length;
52
+ for (indx = 0; indx < len; indx++) {
53
+ str += integer.charAt(indx); // ie6 only support charAt for sz.
54
+ // -posSeparator so that won't trail separator on full length
55
+ /* jshint -W018 */
56
+ if (!((indx - offset + 1) % posSeparator) && indx < len - posSeparator) {
57
+ str += group;
58
+ }
59
+ }
60
+ splittedValue[0] = str;
61
+ }
62
+ splittedValue[1] = splittedMask[1] && splittedValue[1] ? decimal + splittedValue[1] : '';
63
+ // remove negative sign if result is zero
64
+ result = splittedValue.join('');
65
+ if (result === '0' || result === '') {
66
+ // remove negative sign if result is zero
67
+ isNegative = false;
68
+ }
69
+ // 앞에 +가 붙는다면 양수일 경우에도 +를 표기해줌
70
+ let fixedPlusSign;
71
+ if (splittedMask[0].substring(0, 1) === '+')
72
+ fixedPlusSign = isNegative ? '-' : '+';
73
+ else
74
+ fixedPlusSign = isNegative ? '-' : '';
75
+ // put back any negation, combine integer and fraction, and add back prefix & suffix
76
+ return prefix + (fixedPlusSign + result) + suffix;
77
+ }
78
+ //# sourceMappingURL=text-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-formatter.js","sourceRoot":"","sources":["../src/text-formatter.ts"],"names":[],"mappings":"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","sourcesContent":["export function format(mask: string, value: number): string {\n if (!mask || isNaN(+value)) {\n return value.toString() // return as it is.\n }\n\n let isNegative: boolean,\n result: string | RegExpMatchArray | null,\n decimal: string,\n group: string,\n posLeadZero: number,\n posTrailZero: number,\n posSeparator: number,\n part: string[],\n szSep: string[],\n integer: string,\n // find prefix/suffix\n len = mask.length,\n start = mask.search(/[0-9\\-\\+#]/),\n prefix = start > 0 ? mask.substring(0, start) : '',\n // reverse string: not an ideal method if there are surrogate pairs\n str = mask.split('').reverse().join(''),\n end = str.search(/[0-9\\-\\+#]/),\n offset = len - end,\n substr = mask.substring(offset, offset + 1),\n indx = offset + (substr === '.' || substr === ',' ? 1 : 0),\n suffix = end > 0 ? mask.substring(indx, len) : '',\n splittedMask: string[],\n splittedValue: string[],\n stringValue: string\n\n // mask with prefix & suffix removed\n mask = mask.substring(start, indx)\n\n // convert any string to number according to formation sign.\n value = mask.charAt(0) === '-' ? -value : +value\n isNegative = value < 0 ? ((value = -value), true) : false // process only abs(), and turn on flag.\n\n // search for separator for grp & decimal, anything not digit, not +/- sign, not #.\n result = mask.match(/[^\\d\\-\\+#]/g)\n decimal = '.' // ( result && result[ result.length - 1 ] ) || '.'; // ','는 소수점이 되지 않게 함\n group = (result && result[1] && result[0]) || ',' // treat the left most symbol as group separator\n\n // split the decimal for the format string if any.\n splittedMask = mask.split(decimal)\n // Fix the decimal first, toFixed will auto fill trailing zero.\n value = parseFloat(value.toFixed((splittedMask[1] && splittedMask[1].length) || 0))\n stringValue = +value + '' // convert number to string to trim off *all* trailing decimal zero(es)\n\n // fill back any trailing zero according to format\n posTrailZero = (splittedMask[1] && splittedMask[1].lastIndexOf('0')) || 0 // look for last zero in format\n part = stringValue.split('.')\n // integer will get !part[1]\n if (!part[1] || (part[1] && part[1].length <= posTrailZero)) {\n stringValue = (+value).toFixed(posTrailZero + 1)\n }\n szSep = splittedMask[0].split(group) // look for separator\n splittedMask[0] = szSep.join('') // join back without separator for counting the pos of any leading 0.\n\n posLeadZero = (splittedMask[0] && splittedMask[0].indexOf('0')) || 0\n if (posLeadZero > -1) {\n while (part[0].length < splittedMask[0].length - posLeadZero) {\n part[0] = '0' + part[0]\n }\n } else if (+part[0] === 0) {\n part[0] = ''\n }\n\n splittedValue = stringValue.split('.')\n splittedValue[0] = part[0]\n\n // process the first group separator from decimal (.) only, the rest ignore.\n // get the length of the last slice of split result.\n posSeparator = (szSep[1] && szSep[szSep.length - 1].length) || 0\n if (posSeparator) {\n integer = splittedValue[0]\n str = ''\n offset = integer.length % posSeparator\n len = integer.length\n for (indx = 0; indx < len; indx++) {\n str += integer.charAt(indx) // ie6 only support charAt for sz.\n // -posSeparator so that won't trail separator on full length\n /* jshint -W018 */\n if (!((indx - offset + 1) % posSeparator) && indx < len - posSeparator) {\n str += group\n }\n }\n splittedValue[0] = str\n }\n splittedValue[1] = splittedMask[1] && splittedValue[1] ? decimal + splittedValue[1] : ''\n\n // remove negative sign if result is zero\n result = splittedValue.join('')\n if (result === '0' || result === '') {\n // remove negative sign if result is zero\n isNegative = false\n }\n\n // 앞에 +가 붙는다면 양수일 경우에도 +를 표기해줌\n let fixedPlusSign: string\n\n if (splittedMask[0].substring(0, 1) === '+') fixedPlusSign = isNegative ? '-' : '+'\n else fixedPlusSign = isNegative ? '-' : ''\n\n // put back any negation, combine integer and fraction, and add back prefix & suffix\n return prefix + (fixedPlusSign + result) + suffix\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@operato/scene-chartjs",
3
3
  "description": "Things Scene ChartJS Component",
4
- "version": "1.3.14",
4
+ "version": "1.3.17",
5
5
  "author": "heartyoh",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -72,5 +72,5 @@
72
72
  "prettier --write"
73
73
  ]
74
74
  },
75
- "gitHead": "4bcb3cf4efb2f99d89d9219246be65055c78b4c3"
75
+ "gitHead": "58ab47b4cbb631690d726ea35a64480fbb530f30"
76
76
  }
package/schema.graphql CHANGED
@@ -3418,9 +3418,6 @@ type Query {
3418
3418
  """To fetch my notifications"""
3419
3419
  myNotifications(filters: [Filter!], inherited: InheritedValueType, pagination: Pagination, sortings: [Sorting!]): NotificationList!
3420
3420
 
3421
- """To fetch current users privileges for current domain"""
3422
- myPrivileges: [Privilege!]!
3423
-
3424
3421
  """To fetch roles of current user"""
3425
3422
  myRoles: [Role!]!
3426
3423
 
@@ -3843,7 +3840,7 @@ type Terminology {
3843
3840
  createdAt: DateTimeISO
3844
3841
  description: String
3845
3842
  display: String!
3846
- domain: Domain
3843
+ domain: Domain!
3847
3844
  id: ID!
3848
3845
  locale: String!
3849
3846
  name: String!
@@ -1,4 +1,5 @@
1
1
  import { TinyColor } from '@ctrl/tinycolor'
2
+ import { format as formatText } from './text-formatter'
2
3
 
3
4
  export function convertConfigure(chart: SceneChart.ChartConfig) {
4
5
  if (!chart) return
@@ -389,9 +390,12 @@ function _setTooltipCallback(tooltips: SceneChart.ChartTooltipOptions) {
389
390
  value = toNumValue.toLocaleString()
390
391
  }
391
392
 
393
+ var format = data.datasets?.[tooltipItem.datasetIndex || 0].valueFormat || ''
392
394
  var prefix = data.datasets?.[tooltipItem.datasetIndex || 0].valuePrefix || ''
393
395
  var suffix = data.datasets?.[tooltipItem.datasetIndex || 0].valueSuffix || ''
394
396
 
395
- return `${label}: ${prefix + value + suffix}`
397
+ var stringValue = format ? formatText(format, Number(label)) : Number(label).toLocaleString()
398
+
399
+ return `${label}: ${prefix + stringValue + suffix}`
396
400
  }
397
401
  }
@@ -57,6 +57,17 @@ export default class PropertyEditorChartJSAbstract extends LitElement {
57
57
 
58
58
  displayValueTemplate() {
59
59
  return html`
60
+ <label for="value-format"> <ox-i18n msgid="label.value-format">Value Format</ox-i18n> </label>
61
+ <input type="text" value-key="series.valueFormat" .value=${this.series.valueFormat || ''} list="format-list" />
62
+ <datalist id="format-list">
63
+ <option value="#,###."></option>
64
+ <option value="#,###.#"></option>
65
+ <option value="#,###.0"></option>
66
+ <option value="#,##0.#"></option>
67
+ <option value="#,##0.0"></option>
68
+ <option value="#,##0.0%"></option>
69
+ </datalist>
70
+
60
71
  <label> <ox-i18n msgid="label.value-prefix">Value Prefix</ox-i18n> </label>
61
72
  <input type="text" value-key="series.valuePrefix" .value=${this.series.valuePrefix || ''} />
62
73
 
@@ -24,6 +24,14 @@ export default class PropertyEditorChartJSPie extends PropertyEditorChartJSAbstr
24
24
  this.currentSeriesIndex = 0
25
25
  }
26
26
 
27
+ get valueFormat() {
28
+ return this.series.valueFormat
29
+ }
30
+
31
+ set valueFormat(valueFormat) {
32
+ this.series.valueFormat = valueFormat
33
+ }
34
+
27
35
  get valuePrefix() {
28
36
  return this.series.valuePrefix
29
37
  }
package/src/ox-chart.ts CHANGED
@@ -7,6 +7,7 @@ import { customElement, property, query } from 'lit/decorators.js'
7
7
  import { Chart } from 'chart.js'
8
8
  import DataBinderPlugin from './plugins/chartjs-plugin-data-binder'
9
9
  import { convertConfigure } from './config-converter'
10
+ import { format as formatText } from './text-formatter'
10
11
 
11
12
  Chart.plugins.register(DataBinderPlugin)
12
13
 
@@ -135,13 +136,15 @@ export class OxChart extends LitElement {
135
136
  },
136
137
  clamp: true,
137
138
  formatter: function (value, context) {
139
+ //@ts-ignore
140
+ var format = context.dataset.valueFormat || ''
138
141
  //@ts-ignore
139
142
  var prefix = context.dataset.valuePrefix || ''
140
143
  //@ts-ignore
141
144
  var suffix = context.dataset.valueSuffix || ''
142
145
  if (value == undefined) return value
143
146
 
144
- var stringValue = Number(value).toLocaleString()
147
+ var stringValue = format ? formatText(format, Number(value)) : Number(value).toLocaleString()
145
148
  return prefix + stringValue + suffix
146
149
  }
147
150
  }
@@ -27,6 +27,7 @@ declare namespace SceneChart {
27
27
  interface ChartDataSets extends Chart.ChartDataSets {
28
28
  color: string
29
29
  dataKey: string
30
+ valueFormat: string
30
31
  valuePrefix: string
31
32
  valueSuffix: string
32
33
  displayValue: string
@@ -0,0 +1,106 @@
1
+ export function format(mask: string, value: number): string {
2
+ if (!mask || isNaN(+value)) {
3
+ return value.toString() // return as it is.
4
+ }
5
+
6
+ let isNegative: boolean,
7
+ result: string | RegExpMatchArray | null,
8
+ decimal: string,
9
+ group: string,
10
+ posLeadZero: number,
11
+ posTrailZero: number,
12
+ posSeparator: number,
13
+ part: string[],
14
+ szSep: string[],
15
+ integer: string,
16
+ // find prefix/suffix
17
+ len = mask.length,
18
+ start = mask.search(/[0-9\-\+#]/),
19
+ prefix = start > 0 ? mask.substring(0, start) : '',
20
+ // reverse string: not an ideal method if there are surrogate pairs
21
+ str = mask.split('').reverse().join(''),
22
+ end = str.search(/[0-9\-\+#]/),
23
+ offset = len - end,
24
+ substr = mask.substring(offset, offset + 1),
25
+ indx = offset + (substr === '.' || substr === ',' ? 1 : 0),
26
+ suffix = end > 0 ? mask.substring(indx, len) : '',
27
+ splittedMask: string[],
28
+ splittedValue: string[],
29
+ stringValue: string
30
+
31
+ // mask with prefix & suffix removed
32
+ mask = mask.substring(start, indx)
33
+
34
+ // convert any string to number according to formation sign.
35
+ value = mask.charAt(0) === '-' ? -value : +value
36
+ isNegative = value < 0 ? ((value = -value), true) : false // process only abs(), and turn on flag.
37
+
38
+ // search for separator for grp & decimal, anything not digit, not +/- sign, not #.
39
+ result = mask.match(/[^\d\-\+#]/g)
40
+ decimal = '.' // ( result && result[ result.length - 1 ] ) || '.'; // ','는 소수점이 되지 않게 함
41
+ group = (result && result[1] && result[0]) || ',' // treat the left most symbol as group separator
42
+
43
+ // split the decimal for the format string if any.
44
+ splittedMask = mask.split(decimal)
45
+ // Fix the decimal first, toFixed will auto fill trailing zero.
46
+ value = parseFloat(value.toFixed((splittedMask[1] && splittedMask[1].length) || 0))
47
+ stringValue = +value + '' // convert number to string to trim off *all* trailing decimal zero(es)
48
+
49
+ // fill back any trailing zero according to format
50
+ posTrailZero = (splittedMask[1] && splittedMask[1].lastIndexOf('0')) || 0 // look for last zero in format
51
+ part = stringValue.split('.')
52
+ // integer will get !part[1]
53
+ if (!part[1] || (part[1] && part[1].length <= posTrailZero)) {
54
+ stringValue = (+value).toFixed(posTrailZero + 1)
55
+ }
56
+ szSep = splittedMask[0].split(group) // look for separator
57
+ splittedMask[0] = szSep.join('') // join back without separator for counting the pos of any leading 0.
58
+
59
+ posLeadZero = (splittedMask[0] && splittedMask[0].indexOf('0')) || 0
60
+ if (posLeadZero > -1) {
61
+ while (part[0].length < splittedMask[0].length - posLeadZero) {
62
+ part[0] = '0' + part[0]
63
+ }
64
+ } else if (+part[0] === 0) {
65
+ part[0] = ''
66
+ }
67
+
68
+ splittedValue = stringValue.split('.')
69
+ splittedValue[0] = part[0]
70
+
71
+ // process the first group separator from decimal (.) only, the rest ignore.
72
+ // get the length of the last slice of split result.
73
+ posSeparator = (szSep[1] && szSep[szSep.length - 1].length) || 0
74
+ if (posSeparator) {
75
+ integer = splittedValue[0]
76
+ str = ''
77
+ offset = integer.length % posSeparator
78
+ len = integer.length
79
+ for (indx = 0; indx < len; indx++) {
80
+ str += integer.charAt(indx) // ie6 only support charAt for sz.
81
+ // -posSeparator so that won't trail separator on full length
82
+ /* jshint -W018 */
83
+ if (!((indx - offset + 1) % posSeparator) && indx < len - posSeparator) {
84
+ str += group
85
+ }
86
+ }
87
+ splittedValue[0] = str
88
+ }
89
+ splittedValue[1] = splittedMask[1] && splittedValue[1] ? decimal + splittedValue[1] : ''
90
+
91
+ // remove negative sign if result is zero
92
+ result = splittedValue.join('')
93
+ if (result === '0' || result === '') {
94
+ // remove negative sign if result is zero
95
+ isNegative = false
96
+ }
97
+
98
+ // 앞에 +가 붙는다면 양수일 경우에도 +를 표기해줌
99
+ let fixedPlusSign: string
100
+
101
+ if (splittedMask[0].substring(0, 1) === '+') fixedPlusSign = isNegative ? '-' : '+'
102
+ else fixedPlusSign = isNegative ? '-' : ''
103
+
104
+ // put back any negation, combine integer and fraction, and add back prefix & suffix
105
+ return prefix + (fixedPlusSign + result) + suffix
106
+ }
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","./global/index.d.ts","../../node_modules/tslib/tslib.d.ts","../../node_modules/moment/ts3.1-typings/moment.d.ts","../../node_modules/@types/chart.js/index.d.ts","../../node_modules/chartjs-plugin-datalabels/types/context.d.ts","../../node_modules/chartjs-plugin-datalabels/types/options.d.ts","../../node_modules/chartjs-plugin-datalabels/types/index.d.ts","../../node_modules/@lit/reactive-element/css-tag.d.ts","../../node_modules/@lit/reactive-element/reactive-controller.d.ts","../../node_modules/@lit/reactive-element/reactive-element.d.ts","../../node_modules/@types/trusted-types/lib/index.d.ts","../../node_modules/@types/trusted-types/index.d.ts","../../node_modules/lit-html/directive.d.ts","../../node_modules/lit-html/lit-html.d.ts","../../node_modules/lit-element/lit-element.d.ts","../../node_modules/lit-html/is-server.d.ts","../../node_modules/lit/index.d.ts","../../node_modules/@lit/reactive-element/decorators/base.d.ts","../../node_modules/@lit/reactive-element/decorators/custom-element.d.ts","../../node_modules/@lit/reactive-element/decorators/property.d.ts","../../node_modules/@lit/reactive-element/decorators/state.d.ts","../../node_modules/@lit/reactive-element/decorators/event-options.d.ts","../../node_modules/@lit/reactive-element/decorators/query.d.ts","../../node_modules/@lit/reactive-element/decorators/query-all.d.ts","../../node_modules/@lit/reactive-element/decorators/query-async.d.ts","../../node_modules/@lit/reactive-element/decorators/query-assigned-nodes.d.ts","../../node_modules/@lit/reactive-element/decorators/query-assigned-elements.d.ts","../../node_modules/lit/decorators.d.ts","./src/plugins/chartjs-plugin-data-binder.ts","../../node_modules/@ctrl/tinycolor/dist/interfaces.d.ts","../../node_modules/@ctrl/tinycolor/dist/index.d.ts","../../node_modules/@ctrl/tinycolor/dist/css-color-names.d.ts","../../node_modules/@ctrl/tinycolor/dist/readability.d.ts","../../node_modules/@ctrl/tinycolor/dist/to-ms-filter.d.ts","../../node_modules/@ctrl/tinycolor/dist/from-ratio.d.ts","../../node_modules/@ctrl/tinycolor/dist/format-input.d.ts","../../node_modules/@ctrl/tinycolor/dist/random.d.ts","../../node_modules/@ctrl/tinycolor/dist/conversion.d.ts","../../node_modules/@ctrl/tinycolor/dist/public_api.d.ts","./src/config-converter.ts","./src/ox-chart.ts","../../node_modules/@types/lodash/common/common.d.ts","../../node_modules/@types/lodash/common/array.d.ts","../../node_modules/@types/lodash/common/collection.d.ts","../../node_modules/@types/lodash/common/date.d.ts","../../node_modules/@types/lodash/common/function.d.ts","../../node_modules/@types/lodash/common/lang.d.ts","../../node_modules/@types/lodash/common/math.d.ts","../../node_modules/@types/lodash/common/number.d.ts","../../node_modules/@types/lodash/common/object.d.ts","../../node_modules/@types/lodash/common/seq.d.ts","../../node_modules/@types/lodash/common/string.d.ts","../../node_modules/@types/lodash/common/util.d.ts","../../node_modules/@types/lodash/index.d.ts","../../node_modules/@types/lodash/clonedeep.d.ts","../../node_modules/@hatiolab/things-scene/things-scene.d.ts","./src/chartjs.ts","./src/index.ts","./src/scene-chart.d.ts","../../node_modules/@operato/i18n/dist/src/ox-i18n.d.ts","../../node_modules/@material/base/foundation.d.ts","../../node_modules/@material/mwc-base/utils.d.ts","../../node_modules/@material/base/types.d.ts","../../node_modules/@material/mwc-base/base-element.d.ts","../../node_modules/@material/ripple/types.d.ts","../../node_modules/@material/ripple/adapter.d.ts","../../node_modules/@material/ripple/foundation.d.ts","../../node_modules/@material/mwc-ripple/mwc-ripple-base.d.ts","../../node_modules/@material/mwc-ripple/mwc-ripple.d.ts","../../node_modules/@material/mwc-base/aria-property.d.ts","../../node_modules/@material/mwc-ripple/ripple-handlers.d.ts","../../node_modules/@material/mwc-icon-button/mwc-icon-button-base.d.ts","../../node_modules/@material/mwc-icon-button/mwc-icon-button.d.ts","../../node_modules/@polymer/iron-a11y-keys-behavior/iron-a11y-keys-behavior.d.ts","../../node_modules/@polymer/polymer/lib/utils/array-splice.d.ts","../../node_modules/@polymer/polymer/interfaces.d.ts","../../node_modules/@polymer/polymer/lib/utils/async.d.ts","../../node_modules/@polymer/polymer/lib/utils/flattened-nodes-observer.d.ts","../../node_modules/@polymer/polymer/lib/utils/debounce.d.ts","../../node_modules/@polymer/polymer/lib/utils/flush.d.ts","../../node_modules/@polymer/polymer/lib/legacy/polymer.dom.d.ts","../../node_modules/@polymer/polymer/lib/utils/case-map.d.ts","../../node_modules/@polymer/iron-selector/iron-selection.d.ts","../../node_modules/@polymer/iron-selector/iron-selectable.d.ts","../../node_modules/@polymer/iron-selector/iron-multi-selectable.d.ts","../../node_modules/@polymer/iron-menu-behavior/iron-menu-behavior.d.ts","../../node_modules/@polymer/iron-menu-behavior/iron-menubar-behavior.d.ts","../../node_modules/@polymer/iron-resizable-behavior/iron-resizable-behavior.d.ts","../../node_modules/@polymer/polymer/lib/utils/mixin.d.ts","../../node_modules/@polymer/polymer/lib/utils/resolve-url.d.ts","../../node_modules/@polymer/polymer/lib/elements/dom-module.d.ts","../../node_modules/@polymer/polymer/lib/utils/style-gather.d.ts","../../node_modules/@polymer/polymer/lib/utils/path.d.ts","../../node_modules/@polymer/polymer/lib/mixins/properties-changed.d.ts","../../node_modules/@polymer/polymer/lib/mixins/property-accessors.d.ts","../../node_modules/@polymer/polymer/lib/mixins/template-stamp.d.ts","../../node_modules/@polymer/polymer/lib/mixins/property-effects.d.ts","../../node_modules/@polymer/polymer/lib/utils/telemetry.d.ts","../../node_modules/@polymer/polymer/lib/mixins/properties-mixin.d.ts","../../node_modules/@polymer/polymer/lib/mixins/element-mixin.d.ts","../../node_modules/@polymer/polymer/lib/utils/gestures.d.ts","../../node_modules/@polymer/polymer/lib/mixins/gesture-event-listeners.d.ts","../../node_modules/@polymer/polymer/lib/mixins/dir-mixin.d.ts","../../node_modules/@polymer/polymer/lib/utils/scope-subtree.d.ts","../../node_modules/@polymer/polymer/lib/mixins/disable-upgrade-mixin.d.ts","../../node_modules/@polymer/polymer/lib/legacy/legacy-element-mixin.d.ts","../../node_modules/@polymer/polymer/lib/legacy/class.d.ts","../../node_modules/@polymer/polymer/lib/legacy/polymer-fn.d.ts","../../node_modules/@polymer/polymer/lib/utils/html-tag.d.ts","../../node_modules/@polymer/paper-tabs/paper-tabs.d.ts","../../node_modules/@polymer/iron-pages/iron-pages.d.ts","./src/editors/property-editor-chartjs-styles.ts","./src/editors/property-editor-chartjs-abstract.ts","./src/editors/property-editor-chartjs-multi-series-abstract.ts","./src/editors/property-editor-chartjs-hbar.ts","./src/editors/property-editor-chartjs-mixed.ts","./src/editors/property-editor-chartjs-pie.ts","./src/editors/property-editor-chartjs-radar.ts","../../node_modules/@operato/property-editor/dist/src/types.d.ts","../../node_modules/@operato/property-editor/dist/src/ox-property-editor.d.ts","../../node_modules/@operato/property-editor/dist/src/ox-properties-dynamic-view.d.ts","../../node_modules/@operato/property-editor/dist/src/index.d.ts","./src/editors/property-editor-chartjs.ts","./src/editors/index.ts","./src/plugins/chart-series-highlight.ts","./src/templates/bar-chart.ts","./src/templates/doughnut-chart.ts","./src/templates/horizontal-bar-chart.ts","./src/templates/line-chart.ts","./src/templates/mixed-chart.ts","./src/templates/pie-chart.ts","./src/templates/polar-area-chart.ts","./src/templates/radar-chart.ts","./src/templates/index.ts"],"fileInfos":[{"version":"f33e5332b24c3773e930e212cbb8b6867c8ba3ec4492064ea78e55a524d57450","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","26f2f787e82c4222710f3b676b4d83eb5ad0a72fa7b746f03449e7a026ce5073","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7",{"version":"21e41a76098aa7a191028256e52a726baafd45a925ea5cf0222eb430c96c1d83","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"e0275cd0e42990dc3a16f0b7c8bca3efe87f1c8ad404f80c6db1c7c0b828c59f","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"c4f5f288a2b8dcfb6183e29612ec26b7a049314a6a10b7e6e700a8307077455a","7a1971efcba559ea9002ada4c4e3c925004fb67a755300d53b5edf9399354900","4051f6311deb0ce6052329eeb1cd4b1b104378fe52f882f483130bea75f92197","d5b4a95da4cb2c1d8cf8857d8110ea8e30654ce3b3fb90669dd1e99006af9f40","7abe341c118b8aa3ed2a51d9ef3ada999d223168317c5a977b238e804fab02af","74462c15e232d097b1b9888823cf513a1c5b63f57637a64c3eab6b8a236954ae","fe15b975a20fddd8407bdd885feee2ce04dbc6a7100d89f432cae2ed5fa32d26","e59262ddaae67dec2d226f8a5d05cf6c4dc353c0d9b1e4980a61d7fcf9a2b051","5e30131b6a5587fe666926ad1d9807e733c0a597ed12d682669fcaa331aea576","470b8c2386c916bad4aa0d05e89b271a47dbe1250cb25dc0f93102b457228dde","15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e",{"version":"2c3b8be03577c98530ef9cb1a76e2c812636a871f367e9edf4c5f3ce702b77f8","affectsGlobalScope":true},"7000ec8572390d035ba5ef993953957150d0c38ffb31b56653c97dd78cb6e1aa","056892cca68dca10a914f1580ba0e5710d26794e8707225dca9b5717ed702f1e","4ddf3962990379d1ea59b369a5516c7533b7944010d6998e0e9b1ab35d5af1f0","1bcd560deed90a43c51b08aa18f7f55229f2e30974ab5ed1b7bb5721be379013","dc08fe04e50bc24d1baded4f33e942222bbdd5d77d6341a93cfe6e4e4586a3be","2a8f0a19a927e83421597c056c90695557142f54ca96358f01eb1f2a5eb228be","d08415b3d6d7fd153ba6e7bf7707ffc57f3c6ad85730ea63544756610b4350c6","411f23da7a63c3d3fd4860c41a458e8df239776fd5d9cd36dd3ad6be92afccbd","6ada3e065916c0ef2dbc9bc0f9b5d59afb25d9176f81fa2c8993a536924140c6","356cc1b058e05e07d2acd73bfa87f83a6f4a343450ee375dad232ff4a55d41d8","df286e6b181ed08766bc19cf1a2fddc50bc5d540f233bc1ce4430a3c1c8c8379","f436800c0af503703110c93144fcc7392524636fb4216296411243b29fe0162d","0d5002560b45ce4fd6c4124632f61789e584be0634602486a2ce59541311d153","bbe13c947d7d6c3426e0e5815e2b3464fa03d34a4bf47298c43b9237cf59555b","9f7d0ee33b9f8fa4dc2e9628e0cdf8683104d01de9d3d24f62cd5da014a5bec4","a8992b852521a66f63e0cedc6e1f054b28f972232b6fa5ca59771db6a1c8bbea",{"version":"2a385ee5ee8be6967e561a168bd016aca649249b3c5257e3d7242bedd824ba96","signature":"451d3fece5c5c4b956075d8bb4a745be00c820e7ec531d2dc34cbac349da6edf"},"d600313e3c07f919782e2cefcee7dd9af336e847d61d7bb6f77b813b08d4558e","c509b5642db6151661020758ac12bffa7652ffde20014b621a17a38ba2a39e32","df9d5f06a1692717762ca9f368917924fdaccfdfced152804d768eff9baeb352","34fec0d3b9abe499f5d53f1ae7a6c28d34ac289e5cff6f17587da846823cecb0","9ea3742314159f08b93e3dccb7fdba67637ba75736c12923d4df3ec9f40590ab","bc55f374f2b27277afd0ebdf0e503faa20ac18e81d15ac106e443ab354d3e892","4055e5f20cd88d6a1b97dcc9ef0708655901c23c974c17e7cb5a649ebb960b47","e35562032ca67f79d83bb8e2b86b61dfcbac6a914ce15b0e2235e6626dbd49f7","6fa98c19548b13e63df64ea3b9dcdd5b456059f2ec6ba14de67ba295c3884a9f","39fa2f68f5480e3f2dde09f8cf03e37c0b79479247c7a169ce833a39c3da38a3",{"version":"c7c6f261dcd4f2d576463fbc919e662c51de27cc21939d8882f630f35fafb43f","signature":"07c48a764b89ea34e444b5a0c05c7729a7cff3c5189ac2e3031e78dba920d245"},{"version":"cd149f2ae944d1b9aeb7170ca501eb437dae55b6f3f984e524294131159b35bd","signature":"91b287ff81a964bd8329eabbd90b3aee7f498d8cc9ce47db3173dd9b2ff3d784"},"b8442e9db28157344d1bc5d8a5a256f1692de213f0c0ddeb84359834015a008c","458111fc89d11d2151277c822dfdc1a28fa5b6b2493cf942e37d4cd0a6ee5f22","da2b6356b84a40111aaecb18304ea4e4fcb43d70efb1c13ca7d7a906445ee0d3","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","6f294731b495c65ecf46a5694f0082954b961cf05463bea823f8014098eaffa0","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","68a0d0c508e1b6d8d23a519a8a0a3303dc5baa4849ca049f21e5bad41945e3fc","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","b03afe4bec768ae333582915146f48b161e567a81b5ebc31c4d78af089770ac9","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9","4f6a12044ee6f458db11964153830abbc499e73d065c51c329ec97407f4b13dd","a33ea06913b712c529662bee7fd75959781267cf8a307902cc7761307fec0337","26d1ec00a52200684283272eaed524de74adc033bdff6522f72e03c796a46ff8",{"version":"dcfa6a36119a1556ac9d6da24032597c2d97a7ccb77a908b99f81b5707746197","signature":"272d3d1a056956b22c1646a9fbcbab2d56b3f3870de930c952851a917b198d30"},{"version":"78c6d53cc1eb64fc05f155d23992d58b35b5d70d8fceaa0543192110bb69b574","signature":"cef57eca4ba1ae8c0afde5e6c97a829ee5b5307a9050f8a3b47b03f2f4ae7836"},{"version":"3423c6a6e41ab1e0f34ba41c9e9ef1fd92ff7cb83321b6a0fd55f87a983cebe7","affectsGlobalScope":true},"29dca1b5f0cac95b675f86c7846f9d587ed47cc46609dd00d152bcb37683b069","a0667520a6521c12128fc28cbd5b2af58eef11c5b2a7441e0f0d47f50bf6c8e3","0dcf4c2bf1bb547e2ae5b8dce4656a56fbd15e3401ff5236ea0b93b6c60f9249","820c26194ad4089bc503b02bbedbd86a865e9c8a05c58ef88c8d19d9c019712a","790b453e1b76814112c3870d6e12f5db992d3194fdb3529445317dd75cb538be","d375de88ab19f6c105a65fc89eca1ae782362c5c395283b0c85ef39c7b835dfe","aeda2fffbc651fe1fa60b913d45f291f5544c4840206cb3b1badc16d9f01a0f0","7b3c1d688dcb8645b5a6c37bce5b047da92b4c298ed8709e03e987e0efb035b1","29c64e1acb5b73f08a60e71154c65c8a34f885f1f2cc55ffa06dfd244c058883",{"version":"7d176f155e5f6fc9756ddcc1a6d3eb2673030a066e2b7846dfc81b5271f3e269","affectsGlobalScope":true},"024fea9ee598cfe747f18340ad74e4ea428fc2a7988250ff9fcfce5673b7d422","aea18a267a0770c365cc390ad0a0b9725ed7a4540e9a96319b0f5094ee0ca124","a5a7c7d197c7b1918bddb0dd30bf8979a38828b24467ec45db093bf4621507ef",{"version":"afcd875785333f656f79bf1b3a445ceecc6aaf8e2b7cde59309a8778f41de613","affectsGlobalScope":true},"d0e548b52ce2a55820b470ad9c2d66e2855fb3e9dea936fc29b4d4a63bb8fa54","5b402d6c32c733bf8065b8abc34904fffcfe5b94b0e1b99e63a34f450d87faba","4242ec59abfe16b8b893a3f9ef0ce90b6a53afba1ceaaf808e0a225bda7e0714","46971bf04e56b8de7c9c74bba27b54f5f4a78873b6cbf0682592d0693c2acb25","54570339e5e91d8d8380dee2ab4014ffa88cdfd73ff0a20e4ec085d64d81cd78","311c45b5a2b6585a84306100bb514c919b01ee21de43efb1bb2aa6a98a2753db","fc94de52737bc8fb2b1290d6f22b5dfea3e50c8d547625781fa6a2ccd35c7242","003fc70f48af6f23b3ed3bead2cc2d00b07b82e414b0b80f905a6e72a3fb1419","d4931bfce5c009c57f86bcd1039b3f0a5c5ef61d26a685f0abf77f20b18fc066","60daaa6b5dfacd7813a9cf22e1ca5860217f36e70dfcf2fc28c049a7305076e1","b203234dcc09962eadae1146518df97f0768783913616ece5fd1f7f13d6f1361","74a696e2d8acb105f173f536ede57df87f10f1811879c6537cd40718156e4809","bfa3213963e67340227e92bbfb9ae68bc9945e505818e9fd3fb1b207bc8ec89a","2ecd9a09f557844e37da96875c572c1c45b476947344b40fb316a2240a7f703b","c9c3ed6c587d5cf5ed732adefde93b7f5db39cef5c1d169bf14e8b517c2482c8","8ecbfacf281dbd929d3b5f09b4f96bf999a45a959e08501b07117256b1eeb659","968bc5962ea9834b383119f668c4cabd35ba7e4a2c5107fb2d38c8fa66f164be",{"version":"22a05089243a8f0fdfbfbc2d956dcf61872c5c973ecda5320a8f1e3a4dd90bfb","affectsGlobalScope":true},"9bb6e652f67b205e169436f76e1d8fd396bc9971dbec1a558eab3be406343e8c","6cb1ff661eb0cff9177c3b47e82abd0fe3122fc62f2bc0af432a8c4205ff3ec6","4bd4c71ed7c85138316133c98926c344916002fd572f52af1889961dad8d73c0","d0e3fc2ed7395634479edf269cc2b3e25d90b05ce08ddda1717282f9f3afecd0","8744338f1b9f91b6ca97ceb3bfb10babf4397ffe3c304b5ae4dc016f7c3fcde3","694291734f077ed109fdabbfee35995f7168b5d1af643bd6404eeabd7036aa01","8a01e603808722b8fc316d1bd57be1ebcd485237bae329c275999a8257ba77d0","4012af9177a7bb1715a569cc54565b906e5c087a97067abbcf9f75f7f9a476dc","9be3b21edf891a0ec1d8caa0da81816162f4fa5376a7652e0ec3154df6433a08","e544e87f21a6afb7a4e1196a991fd5d235d6df3b8c04ca6df0bc5f85f3aa4f5b","19910d826b4901606d47b306cd70ace2960eeb2ca2cb5e57acc81b42eedbfbcd","d48721b66317440af7e3257b38e144adf76953419a4a4db1fb60f743eb7c9b92","a71d8fe039f1b2c852618ef0b6971561ca4626fb8b30abbf6d238441d47aa6a4","baebdb5ba48a482240d2ecf8497a432aba8ca37d8930cc618c4d3b5d12ceefae","9ce316b892b5134f715b4f7afd71c06384cf9af9a69009cc9566b325a095e592","e5b8715a800a942f0a3d57d84725080ff8931d095de55497c4cd18e23fae9c1d","8a77a40bc44b873c7c000435ccbc0c16ca1d4b523e2528e0a8d05d0b95c520ad","fef62bed109b31722160fabb598f61308506f9b7f40e60b3746ae01e3a3dc18b",{"version":"fe5414fe835d9be4ec29cbdc73956ec212efe6050b8f7371fbc8f43fe7692457","affectsGlobalScope":true},{"version":"773e7cbddf345a0e6841bb1f0bb47c92c4a08925b0a8753b71bd8d3512510f70","affectsGlobalScope":true},{"version":"ae8c13a77bc125a9b2b60b57138467b63c7c8fea9b329678ac967286faf406c8","signature":"0a71b9863979684de9044f80bb25898f96faa6e632c07e815ba325e0dfbc89d5"},{"version":"3d8b0800959989c1164196a0c60264818864f7512c7f9873a409ba95acf64b0b","signature":"ac333557c28a8ca1df21328a538c13fa2ed1ff64069df48c36fca97716f2f88d"},{"version":"f8df982086dd5cfeccf825b941a3e9bba7c4dde835337b64dfe646d2bb9e6d44","signature":"b368e47bb43b6be9fb654d72428775edaba743fc6b853d8d0b03da6d5a979e49"},{"version":"490e7ca4b06917f3806c2015ddf977d16f150dfd9cb1631e449dd59bd3d54ac1","signature":"7087f16ba30dbe4dccaf5a7255e4c506d50193d6f7568fced6aab1d60b520c00"},{"version":"0b6964118a6110dfb3260d59081374a09d4e83cbaf6bee499a7e241e3b9e4b33","signature":"35a7e83b36d9b27513e40b4f8cfc9cce7a358abfde416d37fadb6baee466ef89"},{"version":"a8c9bebfee024d5488b2c9a9cbc04e07aaf63a4f925b3486b6eb9491d14d61e5","signature":"e08e3a9d91bebf9da282437fc96d5e69761485bc6661720b26a64be8931ff3df"},{"version":"9ada5159f93a10a5a531e097b77dfcc830ffd11991ce9a960feeb3ffde73bb25","signature":"09347b08735dd430b10e1350e67057a38fc233351d11c117d5f073e84b47d2c6"},"0347c7e950cd79becb96f052c4244021e77fdc94f562510d11558c9be24119c5","331ddda8e4df6aeb37eff509c27c0ff09487ac6eb1a43de414295c8e33ec0ac8","6440312d3e37adcf7e52606cfafc5e5d6988be0d4675db64cd0ffdf4e1eba17f","d0f0b9c123ac41343b6faec852928381067194bf8c60d70ae9e2ce896f3bd31b",{"version":"2d000bdf80669e83585369f95d4e7e5434d4ef3db3c8633f9fafe57b1658e52f","signature":"b097f4dff540bdb74db0eef9978df7612f05fe793d48ee1f30a496a2724f21c4"},{"version":"1cb49d01d422b9bbe5734328ccceb27c7ca130bc7660f1042a5db6dbdc64e97c","signature":"1b6e9cd25cce1c990555e3ca9c4e53de1d5a0700288801eb70c60c0d60a4bfd4"},{"version":"8754a08b0c69d5720707a9f20909559880b7bb8d06dfafbeb7964f8e392a871c","signature":"b8bf7217766725e7deec0f9fe54f7ea40651ebf3f1990cef26234ccf80393702"},{"version":"df2733312547d416cd8523da5e64934ad33e71baac02534729a06453eb0624f4","signature":"1d4e8898abfae5f702a118e75a3b23383853cfbec65a87ca176d4b6f5f3b2724"},{"version":"bc35786afa371e020ec7f6b3792fa42bab744bd96ba05bd7c3145f461ab52284","signature":"da5db111a9d2de22823ee995915679458a445e12682a46227131988908a8b1ba"},{"version":"39803eaf9e319071086a7bc5b92bf3bbb756913013d77f4ece3208a7c03616c0","signature":"59696e7c88db46cccc4fb02e1f86530121199f77b7f3d93b1127b9db21eab74c"},{"version":"48dccd70510e22710f3879098708d7d23157e2cfeba32e2dfa34fc15b6fc1fe5","signature":"566b5cf8eee5b074ee98ed535154b734ecc1bf65881a4ddcde4bb3ec6029237b"},{"version":"c7cdcd153caf32b0832f13453d76d509fa2546d7df68e697e57633b949fb0709","signature":"e1c2638aa4405529447d3936c80616a8e30e96b0073122cbc72a33f22f5d87f0"},{"version":"da6f9dc85425578c55ec83b2c7ca53ca1789059899ad88711bc1048f04d3b431","signature":"da5db111a9d2de22823ee995915679458a445e12682a46227131988908a8b1ba"},{"version":"ae6b69bba762cca93171c9367be7c5e0440aaf8bcd920b857c36438628acfb89","signature":"fa56f33630e07eabac5e100ee1e76b28249b4ad55149c70361247079dc7aa3e7"},{"version":"b9fe5d68a5557ff37ec9757906565169e3a9e9cb295ca0733fe9f443ce611117","signature":"c26fa694535a879e1120407767a382338f420e3be9f8c699bd4ec64568e26497"},{"version":"52faf5fd2a568908e643283c2a04885b224bca85a9024239e00789e5eb50b045","signature":"47d14edf2e6c0319bb1b5ce19f6b8f411b106d3c361a3cc7a93e7b5294883842"}],"root":[36,64,75,76,[92,94],[147,153],[158,169]],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"esModuleInterop":false,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":99,"noEmitOnError":true,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":5},"fileIdsList":[[65],[66],[65,66,67,68,69,70,71,72,73],[45],[53],[45,53],[45,53,61],[43,44],[52,96,97,98],[52,104,105,106],[52,107],[52,97,99,101,102],[52,103],[97],[98,100],[96,101],[49,52],[154,155,156],[52,154],[52,95,154],[109,116,119,120],[121],[119,123,141,143,144],[116],[119],[116,117,118],[116,122,123,141,143,144],[125],[111,141],[112,114,116,124,128,129,130,131,132,133,134,135,136,137,138,139,140],[111,142],[113,114,115],[124,129,130],[124,129,130,131,132,134,135],[111,124,125,126,127,129,130,131,132,134],[124,136],[112,124],[124,129,133],[117,124,129],[111,117,124,128,129,130,131],[111,124],[111],[110,112],[114],[111,112,114],[125,126],[38],[89],[77,79,80,81,82,83,84,85,86,87,88,89],[77,78,80,81,82,83,84,85,86,87,88,89],[78,79,80,81,82,83,84,85,86,87,88,89],[77,78,79,81,82,83,84,85,86,87,88,89],[77,78,79,80,82,83,84,85,86,87,88,89],[77,78,79,80,81,83,84,85,86,87,88,89],[77,78,79,80,81,82,84,85,86,87,88,89],[77,78,79,80,81,82,83,85,86,87,88,89],[77,78,79,80,81,82,83,84,86,87,88,89],[77,78,79,80,81,82,83,84,85,87,88,89],[77,78,79,80,81,82,83,84,85,86,88,89],[77,78,79,80,81,82,83,84,85,86,87,89],[77,78,79,80,81,82,83,84,85,86,87,88],[46],[39],[39,40,41],[40],[45,49],[49],[47,48],[54,55,56,57,58,59,60,61,62],[45,49,50,51],[37,76,90,91],[37,74],[37,158],[37,52,63,74,91,95,147],[37,52,63,95,108,145,146,149],[37,52,63,91,95,149],[37,52,63,91,95,108,145,146,148],[37,52,63,91,95,148],[37,52],[37,52,63,95,150,151,152,153,157],[37,92],[37,39,42,52,63,64,75],[37,39],[37],[37,161,162,163,164,165,166,167,168],[76,91],[158],[49,52,74,91,95],[49,52,95,108,145,146,149],[49,52,91,95,149],[49,52,91,95,108,145,146,148],[49,52,91,95,148],[52],[49,52,95,150,151,152,153,157],[92],[42,49,52]],"referencedMap":[[73,1],[71,1],[70,2],[66,1],[74,3],[72,2],[68,2],[69,2],[53,4],[54,5],[57,6],[55,6],[59,6],[62,7],[60,6],[58,6],[56,5],[45,8],[99,9],[107,10],[108,11],[103,12],[104,13],[106,14],[101,15],[102,16],[95,17],[157,18],[156,19],[155,20],[121,21],[122,22],[146,23],[123,24],[120,25],[119,26],[145,27],[126,28],[142,29],[141,30],[143,31],[116,32],[138,33],[140,34],[135,35],[137,36],[129,37],[134,38],[130,39],[132,40],[131,41],[112,42],[114,42],[113,43],[115,44],[136,45],[127,46],[133,42],[39,47],[90,48],[78,49],[79,50],[77,51],[80,52],[81,53],[82,54],[83,55],[84,56],[85,57],[86,58],[87,59],[88,60],[89,61],[47,62],[40,63],[42,64],[41,65],[50,66],[48,67],[49,68],[63,69],[52,70],[92,71],[75,72],[159,73],[148,74],[150,75],[151,76],[149,77],[152,78],[153,76],[147,79],[158,80],[93,81],[76,82],[160,83],[64,84],[161,84],[162,84],[163,84],[169,85],[164,84],[165,84],[166,84],[167,84],[168,84]],"exportedModulesMap":[[73,1],[71,1],[70,2],[66,1],[74,3],[72,2],[68,2],[69,2],[53,4],[54,5],[57,6],[55,6],[59,6],[62,7],[60,6],[58,6],[56,5],[45,8],[99,9],[107,10],[108,11],[103,12],[104,13],[106,14],[101,15],[102,16],[95,17],[157,18],[156,19],[155,20],[121,21],[122,22],[146,23],[123,24],[120,25],[119,26],[145,27],[126,28],[142,29],[141,30],[143,31],[116,32],[138,33],[140,34],[135,35],[137,36],[129,37],[134,38],[130,39],[132,40],[131,41],[112,42],[114,42],[113,43],[115,44],[136,45],[127,46],[133,42],[39,47],[90,48],[78,49],[79,50],[77,51],[80,52],[81,53],[82,54],[83,55],[84,56],[85,57],[86,58],[87,59],[88,60],[89,61],[47,62],[40,63],[42,64],[41,65],[50,66],[48,67],[49,68],[63,69],[52,70],[92,86],[159,87],[148,88],[150,89],[151,90],[149,91],[152,92],[153,90],[147,93],[158,94],[93,95],[76,96]],"semanticDiagnosticsPerFile":[73,67,71,70,66,65,74,72,68,69,91,43,53,54,57,55,59,62,61,60,58,56,44,45,96,98,105,99,97,107,108,103,104,106,101,102,100,95,157,156,155,154,109,121,122,146,123,120,119,118,145,111,126,142,141,143,116,138,140,135,137,129,134,130,132,131,110,112,117,114,113,115,136,144,124,128,125,139,127,133,39,90,78,79,77,80,81,82,83,84,85,86,87,88,89,47,46,40,42,41,50,48,51,49,63,52,38,37,34,35,7,9,8,2,10,11,12,13,14,15,16,17,3,4,18,22,19,20,21,23,24,25,5,26,27,28,29,6,33,30,31,32,1,36,92,75,159,148,150,151,149,152,153,147,158,93,76,160,64,94,161,162,163,169,164,165,166,167,168]},"version":"5.3.3"}
1
+ {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","./global/index.d.ts","../../node_modules/tslib/tslib.d.ts","../../node_modules/moment/ts3.1-typings/moment.d.ts","../../node_modules/@types/chart.js/index.d.ts","../../node_modules/chartjs-plugin-datalabels/types/context.d.ts","../../node_modules/chartjs-plugin-datalabels/types/options.d.ts","../../node_modules/chartjs-plugin-datalabels/types/index.d.ts","../../node_modules/@lit/reactive-element/css-tag.d.ts","../../node_modules/@lit/reactive-element/reactive-controller.d.ts","../../node_modules/@lit/reactive-element/reactive-element.d.ts","../../node_modules/@types/trusted-types/lib/index.d.ts","../../node_modules/@types/trusted-types/index.d.ts","../../node_modules/lit-html/directive.d.ts","../../node_modules/lit-html/lit-html.d.ts","../../node_modules/lit-element/lit-element.d.ts","../../node_modules/lit-html/is-server.d.ts","../../node_modules/lit/index.d.ts","../../node_modules/@lit/reactive-element/decorators/base.d.ts","../../node_modules/@lit/reactive-element/decorators/custom-element.d.ts","../../node_modules/@lit/reactive-element/decorators/property.d.ts","../../node_modules/@lit/reactive-element/decorators/state.d.ts","../../node_modules/@lit/reactive-element/decorators/event-options.d.ts","../../node_modules/@lit/reactive-element/decorators/query.d.ts","../../node_modules/@lit/reactive-element/decorators/query-all.d.ts","../../node_modules/@lit/reactive-element/decorators/query-async.d.ts","../../node_modules/@lit/reactive-element/decorators/query-assigned-nodes.d.ts","../../node_modules/@lit/reactive-element/decorators/query-assigned-elements.d.ts","../../node_modules/lit/decorators.d.ts","./src/plugins/chartjs-plugin-data-binder.ts","../../node_modules/@ctrl/tinycolor/dist/interfaces.d.ts","../../node_modules/@ctrl/tinycolor/dist/index.d.ts","../../node_modules/@ctrl/tinycolor/dist/css-color-names.d.ts","../../node_modules/@ctrl/tinycolor/dist/readability.d.ts","../../node_modules/@ctrl/tinycolor/dist/to-ms-filter.d.ts","../../node_modules/@ctrl/tinycolor/dist/from-ratio.d.ts","../../node_modules/@ctrl/tinycolor/dist/format-input.d.ts","../../node_modules/@ctrl/tinycolor/dist/random.d.ts","../../node_modules/@ctrl/tinycolor/dist/conversion.d.ts","../../node_modules/@ctrl/tinycolor/dist/public_api.d.ts","./src/text-formatter.ts","./src/config-converter.ts","./src/ox-chart.ts","../../node_modules/@types/lodash/common/common.d.ts","../../node_modules/@types/lodash/common/array.d.ts","../../node_modules/@types/lodash/common/collection.d.ts","../../node_modules/@types/lodash/common/date.d.ts","../../node_modules/@types/lodash/common/function.d.ts","../../node_modules/@types/lodash/common/lang.d.ts","../../node_modules/@types/lodash/common/math.d.ts","../../node_modules/@types/lodash/common/number.d.ts","../../node_modules/@types/lodash/common/object.d.ts","../../node_modules/@types/lodash/common/seq.d.ts","../../node_modules/@types/lodash/common/string.d.ts","../../node_modules/@types/lodash/common/util.d.ts","../../node_modules/@types/lodash/index.d.ts","../../node_modules/@types/lodash/clonedeep.d.ts","../../node_modules/@hatiolab/things-scene/things-scene.d.ts","./src/chartjs.ts","./src/index.ts","./src/scene-chart.d.ts","../../node_modules/@operato/i18n/dist/src/ox-i18n.d.ts","../../node_modules/@material/base/foundation.d.ts","../../node_modules/@material/mwc-base/utils.d.ts","../../node_modules/@material/base/types.d.ts","../../node_modules/@material/mwc-base/base-element.d.ts","../../node_modules/@material/ripple/types.d.ts","../../node_modules/@material/ripple/adapter.d.ts","../../node_modules/@material/ripple/foundation.d.ts","../../node_modules/@material/mwc-ripple/mwc-ripple-base.d.ts","../../node_modules/@material/mwc-ripple/mwc-ripple.d.ts","../../node_modules/@material/mwc-base/aria-property.d.ts","../../node_modules/@material/mwc-ripple/ripple-handlers.d.ts","../../node_modules/@material/mwc-icon-button/mwc-icon-button-base.d.ts","../../node_modules/@material/mwc-icon-button/mwc-icon-button.d.ts","../../node_modules/@polymer/iron-a11y-keys-behavior/iron-a11y-keys-behavior.d.ts","../../node_modules/@polymer/polymer/lib/utils/array-splice.d.ts","../../node_modules/@polymer/polymer/interfaces.d.ts","../../node_modules/@polymer/polymer/lib/utils/async.d.ts","../../node_modules/@polymer/polymer/lib/utils/flattened-nodes-observer.d.ts","../../node_modules/@polymer/polymer/lib/utils/debounce.d.ts","../../node_modules/@polymer/polymer/lib/utils/flush.d.ts","../../node_modules/@polymer/polymer/lib/legacy/polymer.dom.d.ts","../../node_modules/@polymer/polymer/lib/utils/case-map.d.ts","../../node_modules/@polymer/iron-selector/iron-selection.d.ts","../../node_modules/@polymer/iron-selector/iron-selectable.d.ts","../../node_modules/@polymer/iron-selector/iron-multi-selectable.d.ts","../../node_modules/@polymer/iron-menu-behavior/iron-menu-behavior.d.ts","../../node_modules/@polymer/iron-menu-behavior/iron-menubar-behavior.d.ts","../../node_modules/@polymer/iron-resizable-behavior/iron-resizable-behavior.d.ts","../../node_modules/@polymer/polymer/lib/utils/mixin.d.ts","../../node_modules/@polymer/polymer/lib/utils/resolve-url.d.ts","../../node_modules/@polymer/polymer/lib/elements/dom-module.d.ts","../../node_modules/@polymer/polymer/lib/utils/style-gather.d.ts","../../node_modules/@polymer/polymer/lib/utils/path.d.ts","../../node_modules/@polymer/polymer/lib/mixins/properties-changed.d.ts","../../node_modules/@polymer/polymer/lib/mixins/property-accessors.d.ts","../../node_modules/@polymer/polymer/lib/mixins/template-stamp.d.ts","../../node_modules/@polymer/polymer/lib/mixins/property-effects.d.ts","../../node_modules/@polymer/polymer/lib/utils/telemetry.d.ts","../../node_modules/@polymer/polymer/lib/mixins/properties-mixin.d.ts","../../node_modules/@polymer/polymer/lib/mixins/element-mixin.d.ts","../../node_modules/@polymer/polymer/lib/utils/gestures.d.ts","../../node_modules/@polymer/polymer/lib/mixins/gesture-event-listeners.d.ts","../../node_modules/@polymer/polymer/lib/mixins/dir-mixin.d.ts","../../node_modules/@polymer/polymer/lib/utils/scope-subtree.d.ts","../../node_modules/@polymer/polymer/lib/mixins/disable-upgrade-mixin.d.ts","../../node_modules/@polymer/polymer/lib/legacy/legacy-element-mixin.d.ts","../../node_modules/@polymer/polymer/lib/legacy/class.d.ts","../../node_modules/@polymer/polymer/lib/legacy/polymer-fn.d.ts","../../node_modules/@polymer/polymer/lib/utils/html-tag.d.ts","../../node_modules/@polymer/paper-tabs/paper-tabs.d.ts","../../node_modules/@polymer/iron-pages/iron-pages.d.ts","./src/editors/property-editor-chartjs-styles.ts","./src/editors/property-editor-chartjs-abstract.ts","./src/editors/property-editor-chartjs-multi-series-abstract.ts","./src/editors/property-editor-chartjs-hbar.ts","./src/editors/property-editor-chartjs-mixed.ts","./src/editors/property-editor-chartjs-pie.ts","./src/editors/property-editor-chartjs-radar.ts","../../node_modules/@operato/property-editor/dist/src/types.d.ts","../../node_modules/@operato/property-editor/dist/src/ox-property-editor.d.ts","../../node_modules/@operato/property-editor/dist/src/ox-properties-dynamic-view.d.ts","../../node_modules/@operato/property-editor/dist/src/index.d.ts","./src/editors/property-editor-chartjs.ts","./src/editors/index.ts","./src/plugins/chart-series-highlight.ts","./src/templates/bar-chart.ts","./src/templates/doughnut-chart.ts","./src/templates/horizontal-bar-chart.ts","./src/templates/line-chart.ts","./src/templates/mixed-chart.ts","./src/templates/pie-chart.ts","./src/templates/polar-area-chart.ts","./src/templates/radar-chart.ts","./src/templates/index.ts"],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7",{"version":"4af6b0c727b7a2896463d512fafd23634229adf69ac7c00e2ae15a09cb084fad","affectsGlobalScope":true},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"c4f5f288a2b8dcfb6183e29612ec26b7a049314a6a10b7e6e700a8307077455a","4a882ffbb4ed09d9b7734f784aebb1dfe488d63725c40759165c5d9c657ca029","4051f6311deb0ce6052329eeb1cd4b1b104378fe52f882f483130bea75f92197","d5b4a95da4cb2c1d8cf8857d8110ea8e30654ce3b3fb90669dd1e99006af9f40","7abe341c118b8aa3ed2a51d9ef3ada999d223168317c5a977b238e804fab02af","74462c15e232d097b1b9888823cf513a1c5b63f57637a64c3eab6b8a236954ae","fe15b975a20fddd8407bdd885feee2ce04dbc6a7100d89f432cae2ed5fa32d26","e59262ddaae67dec2d226f8a5d05cf6c4dc353c0d9b1e4980a61d7fcf9a2b051","5e30131b6a5587fe666926ad1d9807e733c0a597ed12d682669fcaa331aea576","470b8c2386c916bad4aa0d05e89b271a47dbe1250cb25dc0f93102b457228dde","15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e",{"version":"2c3b8be03577c98530ef9cb1a76e2c812636a871f367e9edf4c5f3ce702b77f8","affectsGlobalScope":true},"7000ec8572390d035ba5ef993953957150d0c38ffb31b56653c97dd78cb6e1aa","056892cca68dca10a914f1580ba0e5710d26794e8707225dca9b5717ed702f1e","4ddf3962990379d1ea59b369a5516c7533b7944010d6998e0e9b1ab35d5af1f0","1bcd560deed90a43c51b08aa18f7f55229f2e30974ab5ed1b7bb5721be379013","dc08fe04e50bc24d1baded4f33e942222bbdd5d77d6341a93cfe6e4e4586a3be","2a8f0a19a927e83421597c056c90695557142f54ca96358f01eb1f2a5eb228be","d08415b3d6d7fd153ba6e7bf7707ffc57f3c6ad85730ea63544756610b4350c6","411f23da7a63c3d3fd4860c41a458e8df239776fd5d9cd36dd3ad6be92afccbd","6ada3e065916c0ef2dbc9bc0f9b5d59afb25d9176f81fa2c8993a536924140c6","356cc1b058e05e07d2acd73bfa87f83a6f4a343450ee375dad232ff4a55d41d8","df286e6b181ed08766bc19cf1a2fddc50bc5d540f233bc1ce4430a3c1c8c8379","f436800c0af503703110c93144fcc7392524636fb4216296411243b29fe0162d","0d5002560b45ce4fd6c4124632f61789e584be0634602486a2ce59541311d153","bbe13c947d7d6c3426e0e5815e2b3464fa03d34a4bf47298c43b9237cf59555b","9f7d0ee33b9f8fa4dc2e9628e0cdf8683104d01de9d3d24f62cd5da014a5bec4","a8992b852521a66f63e0cedc6e1f054b28f972232b6fa5ca59771db6a1c8bbea",{"version":"2a385ee5ee8be6967e561a168bd016aca649249b3c5257e3d7242bedd824ba96","signature":"451d3fece5c5c4b956075d8bb4a745be00c820e7ec531d2dc34cbac349da6edf"},"d600313e3c07f919782e2cefcee7dd9af336e847d61d7bb6f77b813b08d4558e","c509b5642db6151661020758ac12bffa7652ffde20014b621a17a38ba2a39e32","df9d5f06a1692717762ca9f368917924fdaccfdfced152804d768eff9baeb352","34fec0d3b9abe499f5d53f1ae7a6c28d34ac289e5cff6f17587da846823cecb0","9ea3742314159f08b93e3dccb7fdba67637ba75736c12923d4df3ec9f40590ab","bc55f374f2b27277afd0ebdf0e503faa20ac18e81d15ac106e443ab354d3e892","4055e5f20cd88d6a1b97dcc9ef0708655901c23c974c17e7cb5a649ebb960b47","e35562032ca67f79d83bb8e2b86b61dfcbac6a914ce15b0e2235e6626dbd49f7","6fa98c19548b13e63df64ea3b9dcdd5b456059f2ec6ba14de67ba295c3884a9f","39fa2f68f5480e3f2dde09f8cf03e37c0b79479247c7a169ce833a39c3da38a3",{"version":"82a61bbf2f2a49ac54deb08fe44e478cef829ed11ddc1e8cce32c6524cce8831","signature":"b37e05dfec9332a34af72e12bc2aa4da37cbc628bfc1670b4a1ab4cdef9a79fc"},{"version":"243fb4c30b6c0d98416f9f759273f894ffd412e500bb7b1a699bfc44fc4d081c","signature":"07c48a764b89ea34e444b5a0c05c7729a7cff3c5189ac2e3031e78dba920d245"},{"version":"3aea135c7bbe01e0b4e536c27d51fac2c3ec8558295212ee12650f2143c1ef2a","signature":"91b287ff81a964bd8329eabbd90b3aee7f498d8cc9ce47db3173dd9b2ff3d784"},"ff81bffa4ecfceae2e86b5920c3fcb250b66b1d6ed72944dffdf58123be2481b","458111fc89d11d2151277c822dfdc1a28fa5b6b2493cf942e37d4cd0a6ee5f22","da2b6356b84a40111aaecb18304ea4e4fcb43d70efb1c13ca7d7a906445ee0d3","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","aa2c18a1b5a086bbcaae10a4efba409cc95ba7287d8cf8f2591b53704fea3dea","6f294731b495c65ecf46a5694f0082954b961cf05463bea823f8014098eaffa0","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","3c221f8328720606c7fdc037039f4803e13b5ee5b758eee4a4ccc34fb872d824","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","b03afe4bec768ae333582915146f48b161e567a81b5ebc31c4d78af089770ac9","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9","4f6a12044ee6f458db11964153830abbc499e73d065c51c329ec97407f4b13dd","a33ea06913b712c529662bee7fd75959781267cf8a307902cc7761307fec0337","26d1ec00a52200684283272eaed524de74adc033bdff6522f72e03c796a46ff8",{"version":"dcfa6a36119a1556ac9d6da24032597c2d97a7ccb77a908b99f81b5707746197","signature":"272d3d1a056956b22c1646a9fbcbab2d56b3f3870de930c952851a917b198d30"},{"version":"78c6d53cc1eb64fc05f155d23992d58b35b5d70d8fceaa0543192110bb69b574","signature":"cef57eca4ba1ae8c0afde5e6c97a829ee5b5307a9050f8a3b47b03f2f4ae7836"},{"version":"be140711e176421c4358dc1bb1a3e36b8a5896b2ed41363cd9e6d3499fb660fc","affectsGlobalScope":true},"a34d8270a9f91c0ffcb4c4c7763a9ac2fcf501a8d82b317756ed571e4d9a887d","a0667520a6521c12128fc28cbd5b2af58eef11c5b2a7441e0f0d47f50bf6c8e3","0dcf4c2bf1bb547e2ae5b8dce4656a56fbd15e3401ff5236ea0b93b6c60f9249","820c26194ad4089bc503b02bbedbd86a865e9c8a05c58ef88c8d19d9c019712a","790b453e1b76814112c3870d6e12f5db992d3194fdb3529445317dd75cb538be","d375de88ab19f6c105a65fc89eca1ae782362c5c395283b0c85ef39c7b835dfe","aeda2fffbc651fe1fa60b913d45f291f5544c4840206cb3b1badc16d9f01a0f0","7b3c1d688dcb8645b5a6c37bce5b047da92b4c298ed8709e03e987e0efb035b1","29c64e1acb5b73f08a60e71154c65c8a34f885f1f2cc55ffa06dfd244c058883",{"version":"7d176f155e5f6fc9756ddcc1a6d3eb2673030a066e2b7846dfc81b5271f3e269","affectsGlobalScope":true},"024fea9ee598cfe747f18340ad74e4ea428fc2a7988250ff9fcfce5673b7d422","aea18a267a0770c365cc390ad0a0b9725ed7a4540e9a96319b0f5094ee0ca124","a5a7c7d197c7b1918bddb0dd30bf8979a38828b24467ec45db093bf4621507ef",{"version":"afcd875785333f656f79bf1b3a445ceecc6aaf8e2b7cde59309a8778f41de613","affectsGlobalScope":true},"d0e548b52ce2a55820b470ad9c2d66e2855fb3e9dea936fc29b4d4a63bb8fa54","5b402d6c32c733bf8065b8abc34904fffcfe5b94b0e1b99e63a34f450d87faba","4242ec59abfe16b8b893a3f9ef0ce90b6a53afba1ceaaf808e0a225bda7e0714","46971bf04e56b8de7c9c74bba27b54f5f4a78873b6cbf0682592d0693c2acb25","54570339e5e91d8d8380dee2ab4014ffa88cdfd73ff0a20e4ec085d64d81cd78","311c45b5a2b6585a84306100bb514c919b01ee21de43efb1bb2aa6a98a2753db","fc94de52737bc8fb2b1290d6f22b5dfea3e50c8d547625781fa6a2ccd35c7242","003fc70f48af6f23b3ed3bead2cc2d00b07b82e414b0b80f905a6e72a3fb1419","d4931bfce5c009c57f86bcd1039b3f0a5c5ef61d26a685f0abf77f20b18fc066","60daaa6b5dfacd7813a9cf22e1ca5860217f36e70dfcf2fc28c049a7305076e1","b203234dcc09962eadae1146518df97f0768783913616ece5fd1f7f13d6f1361","74a696e2d8acb105f173f536ede57df87f10f1811879c6537cd40718156e4809","bfa3213963e67340227e92bbfb9ae68bc9945e505818e9fd3fb1b207bc8ec89a","2ecd9a09f557844e37da96875c572c1c45b476947344b40fb316a2240a7f703b","c9c3ed6c587d5cf5ed732adefde93b7f5db39cef5c1d169bf14e8b517c2482c8","8ecbfacf281dbd929d3b5f09b4f96bf999a45a959e08501b07117256b1eeb659","968bc5962ea9834b383119f668c4cabd35ba7e4a2c5107fb2d38c8fa66f164be",{"version":"22a05089243a8f0fdfbfbc2d956dcf61872c5c973ecda5320a8f1e3a4dd90bfb","affectsGlobalScope":true},"9bb6e652f67b205e169436f76e1d8fd396bc9971dbec1a558eab3be406343e8c","6cb1ff661eb0cff9177c3b47e82abd0fe3122fc62f2bc0af432a8c4205ff3ec6","4bd4c71ed7c85138316133c98926c344916002fd572f52af1889961dad8d73c0","d0e3fc2ed7395634479edf269cc2b3e25d90b05ce08ddda1717282f9f3afecd0","8744338f1b9f91b6ca97ceb3bfb10babf4397ffe3c304b5ae4dc016f7c3fcde3","694291734f077ed109fdabbfee35995f7168b5d1af643bd6404eeabd7036aa01","8a01e603808722b8fc316d1bd57be1ebcd485237bae329c275999a8257ba77d0","4012af9177a7bb1715a569cc54565b906e5c087a97067abbcf9f75f7f9a476dc","9be3b21edf891a0ec1d8caa0da81816162f4fa5376a7652e0ec3154df6433a08","e544e87f21a6afb7a4e1196a991fd5d235d6df3b8c04ca6df0bc5f85f3aa4f5b","19910d826b4901606d47b306cd70ace2960eeb2ca2cb5e57acc81b42eedbfbcd","d48721b66317440af7e3257b38e144adf76953419a4a4db1fb60f743eb7c9b92","a71d8fe039f1b2c852618ef0b6971561ca4626fb8b30abbf6d238441d47aa6a4","baebdb5ba48a482240d2ecf8497a432aba8ca37d8930cc618c4d3b5d12ceefae","9ce316b892b5134f715b4f7afd71c06384cf9af9a69009cc9566b325a095e592","e5b8715a800a942f0a3d57d84725080ff8931d095de55497c4cd18e23fae9c1d","8a77a40bc44b873c7c000435ccbc0c16ca1d4b523e2528e0a8d05d0b95c520ad","fef62bed109b31722160fabb598f61308506f9b7f40e60b3746ae01e3a3dc18b",{"version":"fe5414fe835d9be4ec29cbdc73956ec212efe6050b8f7371fbc8f43fe7692457","affectsGlobalScope":true},{"version":"773e7cbddf345a0e6841bb1f0bb47c92c4a08925b0a8753b71bd8d3512510f70","affectsGlobalScope":true},{"version":"ae8c13a77bc125a9b2b60b57138467b63c7c8fea9b329678ac967286faf406c8","signature":"0a71b9863979684de9044f80bb25898f96faa6e632c07e815ba325e0dfbc89d5"},{"version":"e70e31d7c6423f6968020c2e9044a47e2b6c5910efc185eb8a2c8351830525c1","signature":"ac333557c28a8ca1df21328a538c13fa2ed1ff64069df48c36fca97716f2f88d"},{"version":"f8df982086dd5cfeccf825b941a3e9bba7c4dde835337b64dfe646d2bb9e6d44","signature":"b368e47bb43b6be9fb654d72428775edaba743fc6b853d8d0b03da6d5a979e49"},{"version":"490e7ca4b06917f3806c2015ddf977d16f150dfd9cb1631e449dd59bd3d54ac1","signature":"7087f16ba30dbe4dccaf5a7255e4c506d50193d6f7568fced6aab1d60b520c00"},{"version":"0b6964118a6110dfb3260d59081374a09d4e83cbaf6bee499a7e241e3b9e4b33","signature":"35a7e83b36d9b27513e40b4f8cfc9cce7a358abfde416d37fadb6baee466ef89"},{"version":"2ba628511829b65de78f758e6b6eb03ce24c7e5635e39f46cf3626a57f976b61","signature":"0b0ad4a01d48e8eb2a1dae242f2b20c8596b9338c3cd7527c81f07a4cbe87ffd"},{"version":"9ada5159f93a10a5a531e097b77dfcc830ffd11991ce9a960feeb3ffde73bb25","signature":"09347b08735dd430b10e1350e67057a38fc233351d11c117d5f073e84b47d2c6"},"0347c7e950cd79becb96f052c4244021e77fdc94f562510d11558c9be24119c5","331ddda8e4df6aeb37eff509c27c0ff09487ac6eb1a43de414295c8e33ec0ac8","6440312d3e37adcf7e52606cfafc5e5d6988be0d4675db64cd0ffdf4e1eba17f","d0f0b9c123ac41343b6faec852928381067194bf8c60d70ae9e2ce896f3bd31b",{"version":"2d000bdf80669e83585369f95d4e7e5434d4ef3db3c8633f9fafe57b1658e52f","signature":"b097f4dff540bdb74db0eef9978df7612f05fe793d48ee1f30a496a2724f21c4"},{"version":"1cb49d01d422b9bbe5734328ccceb27c7ca130bc7660f1042a5db6dbdc64e97c","signature":"1b6e9cd25cce1c990555e3ca9c4e53de1d5a0700288801eb70c60c0d60a4bfd4"},{"version":"8754a08b0c69d5720707a9f20909559880b7bb8d06dfafbeb7964f8e392a871c","signature":"b8bf7217766725e7deec0f9fe54f7ea40651ebf3f1990cef26234ccf80393702"},{"version":"df2733312547d416cd8523da5e64934ad33e71baac02534729a06453eb0624f4","signature":"1d4e8898abfae5f702a118e75a3b23383853cfbec65a87ca176d4b6f5f3b2724"},{"version":"bc35786afa371e020ec7f6b3792fa42bab744bd96ba05bd7c3145f461ab52284","signature":"da5db111a9d2de22823ee995915679458a445e12682a46227131988908a8b1ba"},{"version":"39803eaf9e319071086a7bc5b92bf3bbb756913013d77f4ece3208a7c03616c0","signature":"59696e7c88db46cccc4fb02e1f86530121199f77b7f3d93b1127b9db21eab74c"},{"version":"48dccd70510e22710f3879098708d7d23157e2cfeba32e2dfa34fc15b6fc1fe5","signature":"566b5cf8eee5b074ee98ed535154b734ecc1bf65881a4ddcde4bb3ec6029237b"},{"version":"c7cdcd153caf32b0832f13453d76d509fa2546d7df68e697e57633b949fb0709","signature":"e1c2638aa4405529447d3936c80616a8e30e96b0073122cbc72a33f22f5d87f0"},{"version":"da6f9dc85425578c55ec83b2c7ca53ca1789059899ad88711bc1048f04d3b431","signature":"da5db111a9d2de22823ee995915679458a445e12682a46227131988908a8b1ba"},{"version":"ae6b69bba762cca93171c9367be7c5e0440aaf8bcd920b857c36438628acfb89","signature":"fa56f33630e07eabac5e100ee1e76b28249b4ad55149c70361247079dc7aa3e7"},{"version":"b9fe5d68a5557ff37ec9757906565169e3a9e9cb295ca0733fe9f443ce611117","signature":"c26fa694535a879e1120407767a382338f420e3be9f8c699bd4ec64568e26497"},{"version":"52faf5fd2a568908e643283c2a04885b224bca85a9024239e00789e5eb50b045","signature":"47d14edf2e6c0319bb1b5ce19f6b8f411b106d3c361a3cc7a93e7b5294883842"}],"root":[37,65,[76,78],[94,96],[149,155],[160,171]],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"esModuleInterop":false,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":99,"noEmitOnError":true,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":5},"fileIdsList":[[66],[67],[66,67,68,69,70,71,72,73,74],[46],[54],[46,54],[46,54,62],[44,45],[53,98,99,100],[53,106,107,108],[53,109],[53,99,101,103,104],[53,105],[99],[100,102],[98,103],[53],[156,157,158],[53,156],[53,97,156],[111,118,121,122],[123],[121,125,143,145,146],[118],[121],[118,119,120],[118,124,125,143,145,146],[127],[113,143],[114,116,118,126,130,131,132,133,134,135,136,137,138,139,140,141,142],[113,144],[115,116,117],[126,131,132],[126,131,132,133,134,136,137],[113,126,127,128,129,131,132,133,134,136],[126,138],[114,126],[126,131,135],[119,126,131],[113,119,126,130,131,132,133],[113,126],[113],[112,114],[116],[113,114,116],[127,128],[39],[91],[79,81,82,83,84,85,86,87,88,89,90,91],[79,80,82,83,84,85,86,87,88,89,90,91],[80,81,82,83,84,85,86,87,88,89,90,91],[79,80,81,83,84,85,86,87,88,89,90,91],[79,80,81,82,84,85,86,87,88,89,90,91],[79,80,81,82,83,85,86,87,88,89,90,91],[79,80,81,82,83,84,86,87,88,89,90,91],[79,80,81,82,83,84,85,87,88,89,90,91],[79,80,81,82,83,84,85,86,88,89,90,91],[79,80,81,82,83,84,85,86,87,89,90,91],[79,80,81,82,83,84,85,86,87,88,90,91],[79,80,81,82,83,84,85,86,87,88,89,91],[79,80,81,82,83,84,85,86,87,88,89,90],[47],[40],[40,41,42],[41],[46,50],[50],[48,49],[55,56,57,58,59,60,61,62,63],[46,50,51,52],[38,78,92,93],[38,75,76],[38,160],[38,53,64,75,93,97,149],[38,53,64,97,110,147,148,151],[38,53,64,93,97,151],[38,53,64,93,97,110,147,148,150],[38,53,64,93,97,150],[38,53],[38,53,64,97,152,153,154,155,159],[38,94],[38,40,43,53,64,65,76,77],[38,40],[38],[38,163,164,165,166,167,168,169,170]],"referencedMap":[[74,1],[72,1],[71,2],[67,1],[75,3],[73,2],[69,2],[70,2],[54,4],[55,5],[58,6],[56,6],[60,6],[63,7],[61,6],[59,6],[57,5],[46,8],[101,9],[109,10],[110,11],[105,12],[106,13],[108,14],[103,15],[104,16],[97,17],[159,18],[158,19],[157,20],[123,21],[124,22],[148,23],[125,24],[122,25],[121,26],[147,27],[128,28],[144,29],[143,30],[145,31],[118,32],[140,33],[142,34],[137,35],[139,36],[131,37],[136,38],[132,39],[134,40],[133,41],[114,42],[116,42],[115,43],[117,44],[138,45],[129,46],[135,42],[40,47],[92,48],[80,49],[81,50],[79,51],[82,52],[83,53],[84,54],[85,55],[86,56],[87,57],[88,58],[89,59],[90,60],[91,61],[48,62],[41,63],[43,64],[42,65],[51,66],[49,67],[50,68],[64,69],[53,70],[94,71],[77,72],[161,73],[150,74],[152,75],[153,76],[151,77],[154,78],[155,76],[149,79],[160,80],[95,81],[78,82],[162,83],[65,84],[163,84],[164,84],[165,84],[171,85],[166,84],[167,84],[168,84],[169,84],[170,84],[76,84]]},"version":"5.5.2"}