@wcardinal/wcardinal-ui 0.310.1 → 0.311.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,9 @@
1
+ import { EShapePointsFormatter } from "./e-shape-points-formatter";
2
+ import { EShapePointsStyle } from "./e-shape-points-style";
3
+ export declare class EShapePointsFormatters {
4
+ private static FORMATTERS?;
5
+ static set(id: number, formatter: EShapePointsFormatter): void;
6
+ static get(index: number): EShapePointsFormatter | undefined;
7
+ static find(style: EShapePointsStyle): EShapePointsFormatter | undefined;
8
+ private static newFormatters;
9
+ }
@@ -1,3 +1,9 @@
1
+ /**
2
+ * EShape point style.
3
+ *
4
+ * * Bits 0 to 9: Bit field of styles.
5
+ * * Bits 10 to 19: Formatter ID.
6
+ */
1
7
  export declare const EShapePointsStyle: {
2
8
  readonly NONE: 0;
3
9
  readonly CLOSED: 1;
@@ -26,6 +32,10 @@ export declare const EShapePointsStyle: {
26
32
  /** @deprecated in favor of EShapeStrokeStyle. */
27
33
  readonly DASHED_MASK: number;
28
34
  readonly CURVE: 1024;
29
- readonly FORMATTER_MASK: 1024;
35
+ readonly FORMATTER_SHIFT: 10;
36
+ readonly FORMATTER_MASK: 1047552;
37
+ readonly FORMATTER_EXTENSION_LOWEST: 512;
38
+ readonly FORMATTER_EXTENSION_HIGHEST: 1023;
39
+ readonly FORMATTER_CURVE: 1;
30
40
  };
31
41
  export declare type EShapePointsStyle = number;
@@ -0,0 +1,33 @@
1
+ /*
2
+ * Copyright (C) 2019 Toshiba Corporation
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { eShapePointsFormatterCurve } from "./e-shape-points-formatter-curve";
6
+ import { EShapePointsStyle } from "./e-shape-points-style";
7
+ var EShapePointsFormatters = /** @class */ (function () {
8
+ function EShapePointsFormatters() {
9
+ }
10
+ EShapePointsFormatters.set = function (id, formatter) {
11
+ if (this.FORMATTERS == null) {
12
+ this.FORMATTERS = this.newFormatters();
13
+ }
14
+ this.FORMATTERS.set(id, formatter);
15
+ };
16
+ EShapePointsFormatters.get = function (index) {
17
+ if (this.FORMATTERS == null) {
18
+ this.FORMATTERS = this.newFormatters();
19
+ }
20
+ return this.FORMATTERS.get(index);
21
+ };
22
+ EShapePointsFormatters.find = function (style) {
23
+ return this.get((style & EShapePointsStyle.FORMATTER_MASK) >> EShapePointsStyle.FORMATTER_SHIFT);
24
+ };
25
+ EShapePointsFormatters.newFormatters = function () {
26
+ var result = new Map();
27
+ result.set(EShapePointsStyle.FORMATTER_CURVE, eShapePointsFormatterCurve);
28
+ return result;
29
+ };
30
+ return EShapePointsFormatters;
31
+ }());
32
+ export { EShapePointsFormatters };
33
+ //# sourceMappingURL=e-shape-points-formatters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e-shape-points-formatters.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-points-formatters.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D;IAAA;IA4BA,CAAC;IAzBO,0BAAG,GAAV,UAAW,EAAU,EAAE,SAAgC;QACtD,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACpC,CAAC;IAEM,0BAAG,GAAV,UAAW,KAAa;QACvB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;SACvC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAEM,2BAAI,GAAX,UAAY,KAAwB;QACnC,OAAO,IAAI,CAAC,GAAG,CACd,CAAC,KAAK,GAAG,iBAAiB,CAAC,cAAc,CAAC,IAAI,iBAAiB,CAAC,eAAe,CAC/E,CAAC;IACH,CAAC;IAEc,oCAAa,GAA5B;QACC,IAAM,MAAM,GAAG,IAAI,GAAG,EAAiC,CAAC;QACxD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,eAAe,EAAE,0BAA0B,CAAC,CAAC;QAC1E,OAAO,MAAM,CAAC;IACf,CAAC;IACF,6BAAC;AAAD,CAAC,AA5BD,IA4BC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShapePointsFormatter } from \"./e-shape-points-formatter\";\nimport { eShapePointsFormatterCurve } from \"./e-shape-points-formatter-curve\";\nimport { EShapePointsStyle } from \"./e-shape-points-style\";\n\nexport class EShapePointsFormatters {\n\tprivate static FORMATTERS?: Map<number, EShapePointsFormatter>;\n\n\tstatic set(id: number, formatter: EShapePointsFormatter): void {\n\t\tif (this.FORMATTERS == null) {\n\t\t\tthis.FORMATTERS = this.newFormatters();\n\t\t}\n\t\tthis.FORMATTERS.set(id, formatter);\n\t}\n\n\tstatic get(index: number): EShapePointsFormatter | undefined {\n\t\tif (this.FORMATTERS == null) {\n\t\t\tthis.FORMATTERS = this.newFormatters();\n\t\t}\n\t\treturn this.FORMATTERS.get(index);\n\t}\n\n\tstatic find(style: EShapePointsStyle): EShapePointsFormatter | undefined {\n\t\treturn this.get(\n\t\t\t(style & EShapePointsStyle.FORMATTER_MASK) >> EShapePointsStyle.FORMATTER_SHIFT\n\t\t);\n\t}\n\n\tprivate static newFormatters(): Map<number, EShapePointsFormatter> {\n\t\tconst result = new Map<number, EShapePointsFormatter>();\n\t\tresult.set(EShapePointsStyle.FORMATTER_CURVE, eShapePointsFormatterCurve);\n\t\treturn result;\n\t}\n}\n"]}
@@ -13,6 +13,17 @@ var DASHED = 128;
13
13
  var DASHED_DENSELY = 256;
14
14
  var DASHED_LOOSELY = 512;
15
15
  var CURVE = 1024;
16
+ var FORMATTER_SHIFT = 10;
17
+ var FORMATTER_MASK = 0xffc00;
18
+ var FORMATTER_EXTENSION_LOWEST = 512;
19
+ var FORMATTER_EXTENSION_HIGHEST = 1023;
20
+ var FORMATTER_CURVE = 1;
21
+ /**
22
+ * EShape point style.
23
+ *
24
+ * * Bits 0 to 9: Bit field of styles.
25
+ * * Bits 10 to 19: Formatter ID.
26
+ */
16
27
  export var EShapePointsStyle = {
17
28
  NONE: 0,
18
29
  CLOSED: CLOSED,
@@ -41,6 +52,10 @@ export var EShapePointsStyle = {
41
52
  /** @deprecated in favor of EShapeStrokeStyle. */
42
53
  DASHED_MASK: DASHED | DASHED_DENSELY | DASHED_LOOSELY,
43
54
  CURVE: CURVE,
44
- FORMATTER_MASK: CURVE
55
+ FORMATTER_SHIFT: FORMATTER_SHIFT,
56
+ FORMATTER_MASK: FORMATTER_MASK,
57
+ FORMATTER_EXTENSION_LOWEST: FORMATTER_EXTENSION_LOWEST,
58
+ FORMATTER_EXTENSION_HIGHEST: FORMATTER_EXTENSION_HIGHEST,
59
+ FORMATTER_CURVE: FORMATTER_CURVE
45
60
  };
46
61
  //# sourceMappingURL=e-shape-points-style.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"e-shape-points-style.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-points-style.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,IAAM,MAAM,GAAG,CAAC,CAAC;AAEjB,IAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,IAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,IAAM,wBAAwB,GAAG,CAAC,CAAC;AAEnC,IAAM,MAAM,GAAG,EAAE,CAAC;AAClB,IAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,IAAM,cAAc,GAAG,EAAE,CAAC;AAE1B,IAAM,MAAM,GAAG,GAAG,CAAC;AACnB,IAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,IAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,IAAM,KAAK,GAAG,IAAI,CAAC;AAEnB,MAAM,CAAC,IAAM,iBAAiB,GAAG;IAChC,IAAI,EAAE,CAAC;IAEP,MAAM,QAAA;IAEN,iDAAiD;IACjD,mBAAmB,qBAAA;IAEnB,iDAAiD;IACjD,mBAAmB,qBAAA;IAEnB,iDAAiD;IACjD,wBAAwB,0BAAA;IAExB,iDAAiD;IACjD,gBAAgB,EAAE,mBAAmB,GAAG,mBAAmB,GAAG,wBAAwB;IAEtF,iDAAiD;IACjD,MAAM,QAAA;IAEN,iDAAiD;IACjD,cAAc,gBAAA;IAEd,iDAAiD;IACjD,cAAc,gBAAA;IAEd,iDAAiD;IACjD,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,cAAc;IAErD,iDAAiD;IACjD,MAAM,QAAA;IAEN,iDAAiD;IACjD,cAAc,gBAAA;IAEd,iDAAiD;IACjD,cAAc,gBAAA;IAEd,iDAAiD;IACjD,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,cAAc;IAErD,KAAK,OAAA;IACL,cAAc,EAAE,KAAK;CACZ,CAAC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nconst CLOSED = 1;\n\nconst NON_EXPANDING_WIDTH = 2;\nconst NON_SHRINKING_WIDTH = 4;\nconst NON_SCALING_DOT_AND_DASH = 8;\n\nconst DOTTED = 16;\nconst DOTTED_DENSELY = 32;\nconst DOTTED_LOOSELY = 64;\n\nconst DASHED = 128;\nconst DASHED_DENSELY = 256;\nconst DASHED_LOOSELY = 512;\n\nconst CURVE = 1024;\n\nexport const EShapePointsStyle = {\n\tNONE: 0,\n\n\tCLOSED,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tNON_EXPANDING_WIDTH,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tNON_SHRINKING_WIDTH,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tNON_SCALING_DOT_AND_DASH,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tNON_SCALING_MASK: NON_EXPANDING_WIDTH | NON_SHRINKING_WIDTH | NON_SCALING_DOT_AND_DASH,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tDOTTED,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tDOTTED_DENSELY,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tDOTTED_LOOSELY,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tDOTTED_MASK: DOTTED | DOTTED_DENSELY | DOTTED_LOOSELY,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tDASHED,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tDASHED_DENSELY,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tDASHED_LOOSELY,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tDASHED_MASK: DASHED | DASHED_DENSELY | DASHED_LOOSELY,\n\n\tCURVE,\n\tFORMATTER_MASK: CURVE\n} as const;\n\nexport type EShapePointsStyle = number;\n"]}
1
+ {"version":3,"file":"e-shape-points-style.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-points-style.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,IAAM,MAAM,GAAG,CAAC,CAAC;AAEjB,IAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,IAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,IAAM,wBAAwB,GAAG,CAAC,CAAC;AAEnC,IAAM,MAAM,GAAG,EAAE,CAAC;AAClB,IAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,IAAM,cAAc,GAAG,EAAE,CAAC;AAE1B,IAAM,MAAM,GAAG,GAAG,CAAC;AACnB,IAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,IAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,IAAM,KAAK,GAAG,IAAI,CAAC;AAEnB,IAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,IAAM,cAAc,GAAG,OAAO,CAAC;AAE/B,IAAM,0BAA0B,GAAG,GAAG,CAAC;AAEvC,IAAM,2BAA2B,GAAG,IAAI,CAAC;AAEzC,IAAM,eAAe,GAAG,CAAC,CAAC;AAE1B;;;;;GAKG;AACH,MAAM,CAAC,IAAM,iBAAiB,GAAG;IAChC,IAAI,EAAE,CAAC;IAEP,MAAM,QAAA;IAEN,iDAAiD;IACjD,mBAAmB,qBAAA;IAEnB,iDAAiD;IACjD,mBAAmB,qBAAA;IAEnB,iDAAiD;IACjD,wBAAwB,0BAAA;IAExB,iDAAiD;IACjD,gBAAgB,EAAE,mBAAmB,GAAG,mBAAmB,GAAG,wBAAwB;IAEtF,iDAAiD;IACjD,MAAM,QAAA;IAEN,iDAAiD;IACjD,cAAc,gBAAA;IAEd,iDAAiD;IACjD,cAAc,gBAAA;IAEd,iDAAiD;IACjD,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,cAAc;IAErD,iDAAiD;IACjD,MAAM,QAAA;IAEN,iDAAiD;IACjD,cAAc,gBAAA;IAEd,iDAAiD;IACjD,cAAc,gBAAA;IAEd,iDAAiD;IACjD,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,cAAc;IAErD,KAAK,OAAA;IAEL,eAAe,EAAE,eAAe;IAEhC,cAAc,EAAE,cAAc;IAE9B,0BAA0B,EAAE,0BAA0B;IAEtD,2BAA2B,EAAE,2BAA2B;IAExD,eAAe,iBAAA;CACN,CAAC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nconst CLOSED = 1;\n\nconst NON_EXPANDING_WIDTH = 2;\nconst NON_SHRINKING_WIDTH = 4;\nconst NON_SCALING_DOT_AND_DASH = 8;\n\nconst DOTTED = 16;\nconst DOTTED_DENSELY = 32;\nconst DOTTED_LOOSELY = 64;\n\nconst DASHED = 128;\nconst DASHED_DENSELY = 256;\nconst DASHED_LOOSELY = 512;\n\nconst CURVE = 1024;\n\nconst FORMATTER_SHIFT = 10;\n\nconst FORMATTER_MASK = 0xffc00;\n\nconst FORMATTER_EXTENSION_LOWEST = 512;\n\nconst FORMATTER_EXTENSION_HIGHEST = 1023;\n\nconst FORMATTER_CURVE = 1;\n\n/**\n * EShape point style.\n *\n * * Bits 0 to 9: Bit field of styles.\n * * Bits 10 to 19: Formatter ID.\n */\nexport const EShapePointsStyle = {\n\tNONE: 0,\n\n\tCLOSED,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tNON_EXPANDING_WIDTH,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tNON_SHRINKING_WIDTH,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tNON_SCALING_DOT_AND_DASH,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tNON_SCALING_MASK: NON_EXPANDING_WIDTH | NON_SHRINKING_WIDTH | NON_SCALING_DOT_AND_DASH,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tDOTTED,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tDOTTED_DENSELY,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tDOTTED_LOOSELY,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tDOTTED_MASK: DOTTED | DOTTED_DENSELY | DOTTED_LOOSELY,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tDASHED,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tDASHED_DENSELY,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tDASHED_LOOSELY,\n\n\t/** @deprecated in favor of EShapeStrokeStyle. */\n\tDASHED_MASK: DASHED | DASHED_DENSELY | DASHED_LOOSELY,\n\n\tCURVE,\n\n\tFORMATTER_SHIFT: FORMATTER_SHIFT,\n\n\tFORMATTER_MASK: FORMATTER_MASK,\n\n\tFORMATTER_EXTENSION_LOWEST: FORMATTER_EXTENSION_LOWEST,\n\n\tFORMATTER_EXTENSION_HIGHEST: FORMATTER_EXTENSION_HIGHEST,\n\n\tFORMATTER_CURVE\n} as const;\n\nexport type EShapePointsStyle = number;\n"]}
@@ -5,9 +5,9 @@
5
5
  import { Point } from "pixi.js";
6
6
  import { toIndexOf } from "../../util/to-index-of";
7
7
  import { EShapePointsStyle } from "../e-shape-points-style";
8
- import { eShapePointsFormatterCurve } from "../e-shape-points-formatter-curve";
9
8
  import { toPointsBoundary } from "../e-shape-points-formatted";
10
9
  import { EShapePointsMarkerContainerImpl } from "../e-shape-points-marker-container-impl";
10
+ import { EShapePointsFormatters } from "../e-shape-points-formatters";
11
11
  var EShapeLinePoints = /** @class */ (function () {
12
12
  function EShapeLinePoints(parent) {
13
13
  this._parent = parent;
@@ -216,12 +216,7 @@ var EShapeLinePoints = /** @class */ (function () {
216
216
  if (this._formattedId !== id) {
217
217
  this._formattedId = id;
218
218
  var style = this._style;
219
- var formatter = this._formatter;
220
- if (formatter == null) {
221
- if (style & EShapePointsStyle.CURVE) {
222
- formatter = eShapePointsFormatterCurve;
223
- }
224
- }
219
+ var formatter = this._formatter || EShapePointsFormatters.find(style);
225
220
  if (formatter != null) {
226
221
  if (result == null) {
227
222
  result = {
@@ -1 +1 @@
1
- {"version":3,"file":"e-shape-line-points.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-line-points.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Matrix, Point } from \"pixi.js\";\nimport { toIndexOf } from \"../../util/to-index-of\";\nimport { EShape } from \"../e-shape\";\nimport { EShapePoints } from \"../e-shape-points\";\nimport { EShapePointsStyle } from \"../e-shape-points-style\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport { eShapePointsFormatterCurve } from \"../e-shape-points-formatter-curve\";\nimport { EShapePointsFormatter } from \"../e-shape-points-formatter\";\nimport {\n\tEShapePointsFormatted,\n\tEShapePointsFormattedBoundary,\n\tEShapePointsFormattedWithBoundary,\n\ttoPointsBoundary\n} from \"../e-shape-points-formatted\";\nimport { EShapeLineBasePointsHitTester } from \"./e-shape-line-base-points-hit-tester\";\nimport { EShapeLineBasePointsHitTesterToRange } from \"./e-shape-line-base-points-hit-tester-to-range\";\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapePointsMarkerContainer } from \"../e-shape-points-marker-container\";\nimport { EShapePointsMarkerContainerImpl } from \"../e-shape-points-marker-container-impl\";\n\nexport type EShapeLinePointsSerialized = [number[], number[], number, number?];\n\nexport class EShapeLinePoints implements EShapePoints {\n\tprotected static WORK_RANGE: [number, number] = [0, 0];\n\n\tprotected _parent: EShape;\n\tprotected _valuesBase?: number[];\n\tprotected _valuesBaseLength: number;\n\tprotected _values: number[];\n\tprotected _segments: number[];\n\tprotected _parentSizeBase: Point;\n\tprotected _parentSizeFitted: Point;\n\tprotected _id: number;\n\tprotected _style: EShapePointsStyle;\n\tprotected _formattedId: number;\n\tprotected _formatter?: EShapePointsFormatter | null;\n\tprotected _formatted?: EShapePointsFormattedWithBoundary;\n\tprotected _formattedValuesBase?: number[];\n\tprotected _formattedBoundaryBase?: EShapePointsFormattedBoundary;\n\n\tprotected _marker?: EShapePointsMarkerContainer;\n\n\tconstructor(parent: EShape) {\n\t\tthis._parent = parent;\n\t\tthis._valuesBaseLength = 0;\n\t\tthis._values = [];\n\t\tthis._segments = [];\n\t\tconst parentSize = parent.size;\n\t\tconst parentSizeX = parentSize.x;\n\t\tconst parentSizeY = parentSize.y;\n\t\tthis._parentSizeBase = new Point(parentSizeX, parentSizeY);\n\t\tthis._parentSizeFitted = new Point(parentSizeX, parentSizeY);\n\t\tthis._id = 0;\n\t\tthis._style = EShapePointsStyle.NONE;\n\t\tthis._formattedId = -1;\n\t}\n\n\tget length(): number {\n\t\treturn this._values.length >> 1;\n\t}\n\n\ttoFitted(): void {\n\t\tthis._valuesBase = undefined;\n\t\tconst parentSize = this._parent.size;\n\t\tthis._parentSizeFitted.copyFrom(parentSize);\n\t\tthis._parentSizeBase.copyFrom(parentSize);\n\t}\n\n\tprotected fit(): void {\n\t\tconst psizef = this._parentSizeFitted;\n\t\tconst psize = this._parent.size;\n\t\tconst psizeX = psize.x;\n\t\tconst psizeY = psize.y;\n\t\tconst threshold = 0.00001;\n\t\tif (threshold < Math.abs(psizeX - psizef.x) || threshold < Math.abs(psizeY - psizef.y)) {\n\t\t\tpsizef.set(psizeX, psizeY);\n\n\t\t\tconst psizeBase = this._parentSizeBase;\n\t\t\tconst isValidX = threshold < Math.abs(psizeBase.x);\n\t\t\tconst isValidY = threshold < Math.abs(psizeBase.y);\n\t\t\tif (isValidX || isValidY) {\n\t\t\t\tconst scaleX = isValidX ? psizeX / psizeBase.x : 1;\n\t\t\t\tconst scaleY = isValidY ? psizeY / psizeBase.y : 1;\n\n\t\t\t\t// Values\n\t\t\t\tconst values = this._values;\n\t\t\t\tlet valuesBase = this._valuesBase;\n\t\t\t\tif (valuesBase == null) {\n\t\t\t\t\tvaluesBase = [];\n\t\t\t\t\tthis._valuesBase = valuesBase;\n\n\t\t\t\t\tfor (let i = 0, imax = values.length; i < imax; i += 2) {\n\t\t\t\t\t\tconst x = values[i];\n\t\t\t\t\t\tconst y = values[i + 1];\n\t\t\t\t\t\tvalues[i] = x * scaleX;\n\t\t\t\t\t\tvalues[i + 1] = y * scaleY;\n\t\t\t\t\t\tvaluesBase.push(x, y);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor (let i = 0, imax = values.length; i < imax; i += 2) {\n\t\t\t\t\t\tvalues[i] = valuesBase[i] * scaleX;\n\t\t\t\t\t\tvalues[i + 1] = valuesBase[i + 1] * scaleY;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Formatted ID, values and boundary\n\t\t\t\tif (this._id === this._formattedId) {\n\t\t\t\t\tconst formatted = this._formatted;\n\t\t\t\t\tif (formatted != null) {\n\t\t\t\t\t\t// Formatted values\n\t\t\t\t\t\tconst formattedValues = formatted.values;\n\t\t\t\t\t\tlet formattedValuesBase = this._formattedValuesBase;\n\t\t\t\t\t\tif (formattedValuesBase == null) {\n\t\t\t\t\t\t\tformattedValuesBase = [];\n\t\t\t\t\t\t\tthis._formattedValuesBase = formattedValuesBase;\n\n\t\t\t\t\t\t\tfor (let i = 0, imax = formattedValues.length; i < imax; i += 2) {\n\t\t\t\t\t\t\t\tconst x = formattedValues[i];\n\t\t\t\t\t\t\t\tconst y = formattedValues[i + 1];\n\t\t\t\t\t\t\t\tformattedValues[i] = x * scaleX;\n\t\t\t\t\t\t\t\tformattedValues[i + 1] = y * scaleY;\n\t\t\t\t\t\t\t\tformattedValuesBase.push(x, y);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfor (let i = 0, imax = formattedValues.length; i < imax; i += 2) {\n\t\t\t\t\t\t\t\tformattedValues[i] = formattedValuesBase[i] * scaleX;\n\t\t\t\t\t\t\t\tformattedValues[i + 1] = formattedValuesBase[i + 1] * scaleY;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Formatted boundary\n\t\t\t\t\t\tconst formattedBoundary = formatted.boundary;\n\t\t\t\t\t\tlet formattedBoundaryBase = this._formattedBoundaryBase;\n\t\t\t\t\t\tif (formattedBoundaryBase == null) {\n\t\t\t\t\t\t\tformattedBoundaryBase = [0, 0, 0, 0];\n\t\t\t\t\t\t\tthis._formattedBoundaryBase = formattedBoundaryBase;\n\n\t\t\t\t\t\t\tfor (let i = 0, imax = formattedBoundary.length; i < imax; i += 2) {\n\t\t\t\t\t\t\t\tconst x = formattedBoundary[i];\n\t\t\t\t\t\t\t\tconst y = formattedBoundary[i + 1];\n\t\t\t\t\t\t\t\tformattedBoundary[i] = x * scaleX;\n\t\t\t\t\t\t\t\tformattedBoundary[i + 1] = y * scaleY;\n\t\t\t\t\t\t\t\tformattedBoundaryBase[i] = x;\n\t\t\t\t\t\t\t\tformattedBoundaryBase[i + 1] = y;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfor (let i = 0, imax = formattedBoundary.length; i < imax; i += 2) {\n\t\t\t\t\t\t\t\tformattedBoundary[i] = formattedBoundaryBase[i] * scaleX;\n\t\t\t\t\t\t\t\tformattedBoundary[i + 1] = formattedBoundaryBase[i + 1] * scaleY;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Formatted ID\n\t\t\t\t\t\tthis._formattedId += 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis._id += 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tget id(): number {\n\t\tthis.fit();\n\t\treturn this._id;\n\t}\n\n\tget values(): number[] {\n\t\tthis.fit();\n\t\treturn this._values;\n\t}\n\n\tset values(values: number[]) {\n\t\tthis.set(values, undefined, undefined);\n\t}\n\n\tget segments(): number[] {\n\t\treturn this._segments;\n\t}\n\n\t/**\n\t * Must be sorted in ascending order.\n\t */\n\tset segments(segments: number[]) {\n\t\tthis.set(undefined, segments, undefined);\n\t}\n\n\tget style(): EShapePointsStyle {\n\t\treturn this._style;\n\t}\n\n\tset style(style: EShapePointsStyle) {\n\t\tthis.set(undefined, undefined, style);\n\t}\n\n\tget marker(): EShapePointsMarkerContainer {\n\t\tlet result = this._marker;\n\t\tif (result == null) {\n\t\t\tresult = this.newMarker();\n\t\t\tthis._marker = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tgetMarker(): EShapePointsMarkerContainer | undefined {\n\t\treturn this._marker;\n\t}\n\n\tprotected newMarker(): EShapePointsMarkerContainer {\n\t\treturn new EShapePointsMarkerContainerImpl(this);\n\t}\n\n\tonMarkerTypeChange(): void {\n\t\tconst parent = this._parent;\n\t\tparent.uploaded = undefined;\n\t\tparent.toDirty();\n\t}\n\n\tonMarkerSizeChange(): void {\n\t\tthis._parent.updateUploaded();\n\t}\n\n\tonMarkerFillChange(): void {\n\t\tthis._parent.updateUploaded();\n\t}\n\n\tget formatter(): EShapePointsFormatter | null {\n\t\treturn this._formatter || null;\n\t}\n\n\tset formatter(formatter: EShapePointsFormatter | null) {\n\t\tif (this._formatter !== formatter) {\n\t\t\tthis._formattedId = -1;\n\t\t\tthis._formatter = formatter;\n\t\t\tthis.toDirty(true);\n\t\t}\n\t}\n\n\tget formatted(): EShapePointsFormatted {\n\t\tthis.fit();\n\t\tconst id = this._id;\n\t\tlet result = this._formatted;\n\t\tif (this._formattedId !== id) {\n\t\t\tthis._formattedId = id;\n\n\t\t\tconst style = this._style;\n\t\t\tlet formatter = this._formatter;\n\t\t\tif (formatter == null) {\n\t\t\t\tif (style & EShapePointsStyle.CURVE) {\n\t\t\t\t\tformatter = eShapePointsFormatterCurve;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (formatter != null) {\n\t\t\t\tif (result == null) {\n\t\t\t\t\tresult = {\n\t\t\t\t\t\tlength: 0,\n\t\t\t\t\t\tvalues: [],\n\t\t\t\t\t\tsegments: [],\n\t\t\t\t\t\tboundary: [0, 0, 0, 0],\n\t\t\t\t\t\tstyle: EShapePointsStyle.NONE\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst valuesBase = this._valuesBase;\n\t\t\t\tconst segments = this._segments;\n\t\t\t\tif (valuesBase != null) {\n\t\t\t\t\tconst length = valuesBase.length >> 1;\n\t\t\t\t\tformatter(length, valuesBase, segments, style, result);\n\t\t\t\t\ttoPointsBoundary(result.values, result.boundary);\n\n\t\t\t\t\tconst formattedValues = result.values;\n\t\t\t\t\tconst formattedValuesBase = formattedValues.splice(0);\n\t\t\t\t\tthis._formattedValuesBase = formattedValuesBase;\n\n\t\t\t\t\tconst formattedBoundary = result.boundary;\n\t\t\t\t\tconst formattedBoundaryBase: EShapePointsFormattedBoundary = [\n\t\t\t\t\t\tformattedBoundary[0],\n\t\t\t\t\t\tformattedBoundary[1],\n\t\t\t\t\t\tformattedBoundary[2],\n\t\t\t\t\t\tformattedBoundary[3]\n\t\t\t\t\t];\n\t\t\t\t\tthis._formattedBoundaryBase = formattedBoundaryBase;\n\n\t\t\t\t\tthis.toScaled(\n\t\t\t\t\t\tformattedValues,\n\t\t\t\t\t\tformattedValuesBase,\n\t\t\t\t\t\tformattedBoundary,\n\t\t\t\t\t\tformattedBoundaryBase\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tconst values = this._values;\n\t\t\t\t\tconst length = values.length >> 1;\n\t\t\t\t\tformatter(length, values, segments, style, result);\n\t\t\t\t\ttoPointsBoundary(result.values, result.boundary);\n\t\t\t\t\tthis._formattedValuesBase = undefined;\n\t\t\t\t\tthis._formattedBoundaryBase = undefined;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult = undefined;\n\t\t\t\tthis._formattedValuesBase = undefined;\n\t\t\t\tthis._formattedBoundaryBase = undefined;\n\t\t\t}\n\t\t\tthis._formatted = result;\n\t\t}\n\t\treturn result || this;\n\t}\n\n\tprotected toScaled(\n\t\tvalues: number[],\n\t\tvaluesBase: number[],\n\t\tboundary: EShapePointsFormattedBoundary,\n\t\tboundaryBase: EShapePointsFormattedBoundary\n\t): void {\n\t\tconst size = this._parentSizeFitted;\n\t\tconst sizeBase = this._parentSizeBase;\n\t\tconst threshold = 0.00001;\n\t\tconst hasSizeBaseX = threshold < Math.abs(sizeBase.x);\n\t\tconst hasSizeBaseY = threshold < Math.abs(sizeBase.y);\n\t\tif (hasSizeBaseX || hasSizeBaseY) {\n\t\t\tconst scaleX = hasSizeBaseX ? size.x / sizeBase.x : 1;\n\t\t\tconst scaleY = hasSizeBaseY ? size.y / sizeBase.y : 1;\n\n\t\t\tfor (let i = 0, imax = valuesBase.length; i < imax; i += 2) {\n\t\t\t\tvalues[i] = valuesBase[i] * scaleX;\n\t\t\t\tvalues[i + 1] = valuesBase[i + 1] * scaleY;\n\t\t\t}\n\n\t\t\tfor (let i = 0, imax = boundaryBase.length; i < imax; i += 2) {\n\t\t\t\tboundary[i] = boundaryBase[i] * scaleX;\n\t\t\t\tboundary[i + 1] = boundaryBase[i + 1] * scaleY;\n\t\t\t}\n\t\t}\n\t}\n\n\tcopy(source: EShapePoints): this {\n\t\tthis.set(source.values, source.segments, source.style);\n\t\tconst marker = source.getMarker();\n\t\tif (marker) {\n\t\t\tthis.marker.copy(marker);\n\t\t}\n\t\treturn this;\n\t}\n\n\tset(newValues?: number[], newSegments?: number[], newStyle?: EShapePointsStyle): this {\n\t\tlet isDirty = false;\n\t\tlet isUpdated = false;\n\n\t\t// Formatter\n\t\tconst style = this._style;\n\t\tconst styleFormatter = style & EShapePointsStyle.FORMATTER_MASK;\n\t\tconst formatter = this._formatter;\n\n\t\t// Values\n\t\tif (newValues != null) {\n\t\t\tconst values = this._values;\n\t\t\tconst valuesBaseLength = this._valuesBaseLength;\n\t\t\tconst newValuesLength = newValues.length;\n\t\t\tconst iupdate = Math.min(newValuesLength, valuesBaseLength);\n\t\t\tthis.toFitted();\n\t\t\tif (values !== newValues) {\n\t\t\t\tfor (let i = 0; i < iupdate; ++i) {\n\t\t\t\t\tvalues[i] = newValues[i];\n\t\t\t\t}\n\n\t\t\t\tfor (let i = iupdate; i < newValuesLength; ++i) {\n\t\t\t\t\tvalues.push(newValues[i]);\n\t\t\t\t}\n\n\t\t\t\tif (valuesBaseLength !== newValuesLength) {\n\t\t\t\t\tvalues.length = newValuesLength;\n\t\t\t\t\tthis._valuesBaseLength = newValuesLength;\n\t\t\t\t\tisDirty = true;\n\t\t\t\t} else {\n\t\t\t\t\tif (formatter != null || styleFormatter) {\n\t\t\t\t\t\tisDirty = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisUpdated = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (valuesBaseLength !== newValuesLength) {\n\t\t\t\t\tthis._valuesBaseLength = newValuesLength;\n\t\t\t\t\tisDirty = true;\n\t\t\t\t} else {\n\t\t\t\t\tif (formatter != null || styleFormatter) {\n\t\t\t\t\t\tisDirty = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisUpdated = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Segments\n\t\tif (newSegments != null) {\n\t\t\tconst segments = this._segments;\n\t\t\tif (segments !== newSegments) {\n\t\t\t\tconst newSegmentsLength = newSegments.length;\n\t\t\t\tconst iupdate = Math.min(segments.length, newSegmentsLength);\n\t\t\t\tfor (let i = 0; i < iupdate; ++i) {\n\t\t\t\t\tsegments[i] = newSegments[i];\n\t\t\t\t}\n\n\t\t\t\tfor (let i = iupdate; i < newSegmentsLength; ++i) {\n\t\t\t\t\tsegments.push(newSegments[i]);\n\t\t\t\t}\n\n\t\t\t\tif (segments.length !== newSegmentsLength) {\n\t\t\t\t\tsegments.length = newSegmentsLength;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (formatter != null || styleFormatter) {\n\t\t\t\tisDirty = true;\n\t\t\t} else {\n\t\t\t\tisUpdated = true;\n\t\t\t}\n\t\t}\n\n\t\t// Style\n\t\tif (newStyle != null) {\n\t\t\tif (style !== newStyle) {\n\t\t\t\tconst newStyleFormatter = newStyle & EShapePointsStyle.FORMATTER_MASK;\n\t\t\t\tif (styleFormatter !== newStyleFormatter) {\n\t\t\t\t\tisDirty = true;\n\t\t\t\t} else {\n\t\t\t\t\tif (formatter != null || styleFormatter) {\n\t\t\t\t\t\tconst styleClosed = style & EShapePointsStyle.CLOSED;\n\t\t\t\t\t\tconst newStyleClosed = newStyle & EShapePointsStyle.CLOSED;\n\t\t\t\t\t\tif (styleClosed !== newStyleClosed) {\n\t\t\t\t\t\t\tisDirty = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tisUpdated = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisUpdated = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis._style = newStyle;\n\t\t\t}\n\t\t}\n\n\t\t//\n\t\tif (isUpdated || isDirty) {\n\t\t\tthis.toDirty(isDirty);\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected toDirty(revalidate: boolean): void {\n\t\tif (revalidate) {\n\t\t\tthis._id += 1;\n\t\t\tconst parent = this._parent;\n\t\t\tconst uploaded = parent.uploaded;\n\t\t\tif (uploaded) {\n\t\t\t\tif (uploaded.isCompatible(parent)) {\n\t\t\t\t\tparent.updateUploaded();\n\t\t\t\t} else {\n\t\t\t\t\tparent.uploaded = undefined;\n\t\t\t\t\tparent.toDirty();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tparent.updateUploaded();\n\t\t\t}\n\t\t} else {\n\t\t\tthis._id += 1;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tclone(parent: EShape): EShapeLinePoints {\n\t\treturn new EShapeLinePoints(parent).copy(this);\n\t}\n\n\ttoPoints(transform: Matrix): Point[] {\n\t\tconst result: Point[] = [];\n\t\tconst values = this.values;\n\t\tfor (let i = 0, imax = values.length; i < imax; i += 2) {\n\t\t\tconst point = new Point(values[i + 0], values[i + 1]);\n\t\t\tresult.push(transform.apply(point, point));\n\t\t}\n\t\treturn result;\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): number {\n\t\tconst values = JSON.stringify(this._values);\n\t\tconst segments = JSON.stringify(this._segments);\n\t\tconst style = this._style;\n\t\tlet markerId = -1;\n\t\tconst marker = this._marker;\n\t\tif (marker) {\n\t\t\tmarkerId = marker.serialize(manager);\n\t\t}\n\t\treturn manager.addResource(`[${values},${segments},${style},${markerId}]`);\n\t}\n\n\tdeserialize(resourceId: number, manager: EShapeResourceManagerDeserialization): void {\n\t\tconst resources = manager.resources;\n\t\tif (0 <= resourceId && resourceId < resources.length) {\n\t\t\tlet parsed = manager.getExtension<EShapeLinePointsSerialized>(resourceId);\n\t\t\tif (parsed == null) {\n\t\t\t\tparsed = JSON.parse(resources[resourceId]) as EShapeLinePointsSerialized;\n\t\t\t\tmanager.setExtension(resourceId, parsed);\n\t\t\t}\n\t\t\tthis.set(parsed[0], parsed[1], parsed[2]);\n\t\t\tconst markerId = parsed[3];\n\t\t\tif (markerId != null && 0 <= markerId) {\n\t\t\t\tthis.marker.deserialize(markerId, manager);\n\t\t\t}\n\t\t}\n\t}\n\n\tcalcHitPointAbs<RESULT>(\n\t\tx: number,\n\t\ty: number,\n\t\tax: number,\n\t\tay: number,\n\t\tthreshold: number,\n\t\ttoRange: EShapeLineBasePointsHitTesterToRange | null,\n\t\ttester: EShapeLineBasePointsHitTester<RESULT>,\n\t\tresult: RESULT\n\t): boolean {\n\t\tconst formatted = this.formatted;\n\t\tconst length = formatted.length;\n\t\tif (2 <= length) {\n\t\t\tconst values = formatted.values;\n\t\t\tconst segments = formatted.segments;\n\t\t\tconst style = formatted.style;\n\t\t\tlet istart = 0;\n\t\t\tlet iend = length;\n\t\t\tif (toRange) {\n\t\t\t\tconst work = EShapeLinePoints.WORK_RANGE;\n\t\t\t\ttoRange(x, y, threshold, values, work);\n\t\t\t\tistart = work[0];\n\t\t\t\tiend = work[1];\n\t\t\t}\n\t\t\tfor (let i = istart, imax = Math.min(iend, length - 1); i < imax; ++i) {\n\t\t\t\tif (toIndexOf(segments, i + 1) < 0) {\n\t\t\t\t\tconst iv = i << 1;\n\t\t\t\t\tconst p0x = values[iv + 0];\n\t\t\t\t\tconst p0y = values[iv + 1];\n\t\t\t\t\tconst p1x = values[iv + 2];\n\t\t\t\t\tconst p1y = values[iv + 3];\n\t\t\t\t\tif (tester(x, y, p0x, p0y, p1x, p1y, i, threshold, result)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (2 < length && length <= iend && style & EShapePointsStyle.CLOSED) {\n\t\t\t\tif (toIndexOf(segments, 0) < 0) {\n\t\t\t\t\tconst i = length - 1;\n\t\t\t\t\tconst iv = i << 1;\n\t\t\t\t\tconst p0x = values[iv + 0];\n\t\t\t\t\tconst p0y = values[iv + 1];\n\t\t\t\t\tconst p1x = values[0];\n\t\t\t\t\tconst p1y = values[1];\n\t\t\t\t\tif (tester(x, y, p0x, p0y, p1x, p1y, i, threshold, result)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n"]}
1
+ {"version":3,"file":"e-shape-line-points.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-line-points.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Matrix, Point } from \"pixi.js\";\nimport { toIndexOf } from \"../../util/to-index-of\";\nimport { EShape } from \"../e-shape\";\nimport { EShapePoints } from \"../e-shape-points\";\nimport { EShapePointsStyle } from \"../e-shape-points-style\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport { EShapePointsFormatter } from \"../e-shape-points-formatter\";\nimport {\n\tEShapePointsFormatted,\n\tEShapePointsFormattedBoundary,\n\tEShapePointsFormattedWithBoundary,\n\ttoPointsBoundary\n} from \"../e-shape-points-formatted\";\nimport { EShapeLineBasePointsHitTester } from \"./e-shape-line-base-points-hit-tester\";\nimport { EShapeLineBasePointsHitTesterToRange } from \"./e-shape-line-base-points-hit-tester-to-range\";\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapePointsMarkerContainer } from \"../e-shape-points-marker-container\";\nimport { EShapePointsMarkerContainerImpl } from \"../e-shape-points-marker-container-impl\";\nimport { EShapePointsFormatters } from \"../e-shape-points-formatters\";\n\nexport type EShapeLinePointsSerialized = [number[], number[], number, number?];\n\nexport class EShapeLinePoints implements EShapePoints {\n\tprotected static WORK_RANGE: [number, number] = [0, 0];\n\n\tprotected _parent: EShape;\n\tprotected _valuesBase?: number[];\n\tprotected _valuesBaseLength: number;\n\tprotected _values: number[];\n\tprotected _segments: number[];\n\tprotected _parentSizeBase: Point;\n\tprotected _parentSizeFitted: Point;\n\tprotected _id: number;\n\tprotected _style: EShapePointsStyle;\n\tprotected _formattedId: number;\n\tprotected _formatter?: EShapePointsFormatter | null;\n\tprotected _formatted?: EShapePointsFormattedWithBoundary;\n\tprotected _formattedValuesBase?: number[];\n\tprotected _formattedBoundaryBase?: EShapePointsFormattedBoundary;\n\n\tprotected _marker?: EShapePointsMarkerContainer;\n\n\tconstructor(parent: EShape) {\n\t\tthis._parent = parent;\n\t\tthis._valuesBaseLength = 0;\n\t\tthis._values = [];\n\t\tthis._segments = [];\n\t\tconst parentSize = parent.size;\n\t\tconst parentSizeX = parentSize.x;\n\t\tconst parentSizeY = parentSize.y;\n\t\tthis._parentSizeBase = new Point(parentSizeX, parentSizeY);\n\t\tthis._parentSizeFitted = new Point(parentSizeX, parentSizeY);\n\t\tthis._id = 0;\n\t\tthis._style = EShapePointsStyle.NONE;\n\t\tthis._formattedId = -1;\n\t}\n\n\tget length(): number {\n\t\treturn this._values.length >> 1;\n\t}\n\n\ttoFitted(): void {\n\t\tthis._valuesBase = undefined;\n\t\tconst parentSize = this._parent.size;\n\t\tthis._parentSizeFitted.copyFrom(parentSize);\n\t\tthis._parentSizeBase.copyFrom(parentSize);\n\t}\n\n\tprotected fit(): void {\n\t\tconst psizef = this._parentSizeFitted;\n\t\tconst psize = this._parent.size;\n\t\tconst psizeX = psize.x;\n\t\tconst psizeY = psize.y;\n\t\tconst threshold = 0.00001;\n\t\tif (threshold < Math.abs(psizeX - psizef.x) || threshold < Math.abs(psizeY - psizef.y)) {\n\t\t\tpsizef.set(psizeX, psizeY);\n\n\t\t\tconst psizeBase = this._parentSizeBase;\n\t\t\tconst isValidX = threshold < Math.abs(psizeBase.x);\n\t\t\tconst isValidY = threshold < Math.abs(psizeBase.y);\n\t\t\tif (isValidX || isValidY) {\n\t\t\t\tconst scaleX = isValidX ? psizeX / psizeBase.x : 1;\n\t\t\t\tconst scaleY = isValidY ? psizeY / psizeBase.y : 1;\n\n\t\t\t\t// Values\n\t\t\t\tconst values = this._values;\n\t\t\t\tlet valuesBase = this._valuesBase;\n\t\t\t\tif (valuesBase == null) {\n\t\t\t\t\tvaluesBase = [];\n\t\t\t\t\tthis._valuesBase = valuesBase;\n\n\t\t\t\t\tfor (let i = 0, imax = values.length; i < imax; i += 2) {\n\t\t\t\t\t\tconst x = values[i];\n\t\t\t\t\t\tconst y = values[i + 1];\n\t\t\t\t\t\tvalues[i] = x * scaleX;\n\t\t\t\t\t\tvalues[i + 1] = y * scaleY;\n\t\t\t\t\t\tvaluesBase.push(x, y);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor (let i = 0, imax = values.length; i < imax; i += 2) {\n\t\t\t\t\t\tvalues[i] = valuesBase[i] * scaleX;\n\t\t\t\t\t\tvalues[i + 1] = valuesBase[i + 1] * scaleY;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Formatted ID, values and boundary\n\t\t\t\tif (this._id === this._formattedId) {\n\t\t\t\t\tconst formatted = this._formatted;\n\t\t\t\t\tif (formatted != null) {\n\t\t\t\t\t\t// Formatted values\n\t\t\t\t\t\tconst formattedValues = formatted.values;\n\t\t\t\t\t\tlet formattedValuesBase = this._formattedValuesBase;\n\t\t\t\t\t\tif (formattedValuesBase == null) {\n\t\t\t\t\t\t\tformattedValuesBase = [];\n\t\t\t\t\t\t\tthis._formattedValuesBase = formattedValuesBase;\n\n\t\t\t\t\t\t\tfor (let i = 0, imax = formattedValues.length; i < imax; i += 2) {\n\t\t\t\t\t\t\t\tconst x = formattedValues[i];\n\t\t\t\t\t\t\t\tconst y = formattedValues[i + 1];\n\t\t\t\t\t\t\t\tformattedValues[i] = x * scaleX;\n\t\t\t\t\t\t\t\tformattedValues[i + 1] = y * scaleY;\n\t\t\t\t\t\t\t\tformattedValuesBase.push(x, y);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfor (let i = 0, imax = formattedValues.length; i < imax; i += 2) {\n\t\t\t\t\t\t\t\tformattedValues[i] = formattedValuesBase[i] * scaleX;\n\t\t\t\t\t\t\t\tformattedValues[i + 1] = formattedValuesBase[i + 1] * scaleY;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Formatted boundary\n\t\t\t\t\t\tconst formattedBoundary = formatted.boundary;\n\t\t\t\t\t\tlet formattedBoundaryBase = this._formattedBoundaryBase;\n\t\t\t\t\t\tif (formattedBoundaryBase == null) {\n\t\t\t\t\t\t\tformattedBoundaryBase = [0, 0, 0, 0];\n\t\t\t\t\t\t\tthis._formattedBoundaryBase = formattedBoundaryBase;\n\n\t\t\t\t\t\t\tfor (let i = 0, imax = formattedBoundary.length; i < imax; i += 2) {\n\t\t\t\t\t\t\t\tconst x = formattedBoundary[i];\n\t\t\t\t\t\t\t\tconst y = formattedBoundary[i + 1];\n\t\t\t\t\t\t\t\tformattedBoundary[i] = x * scaleX;\n\t\t\t\t\t\t\t\tformattedBoundary[i + 1] = y * scaleY;\n\t\t\t\t\t\t\t\tformattedBoundaryBase[i] = x;\n\t\t\t\t\t\t\t\tformattedBoundaryBase[i + 1] = y;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfor (let i = 0, imax = formattedBoundary.length; i < imax; i += 2) {\n\t\t\t\t\t\t\t\tformattedBoundary[i] = formattedBoundaryBase[i] * scaleX;\n\t\t\t\t\t\t\t\tformattedBoundary[i + 1] = formattedBoundaryBase[i + 1] * scaleY;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Formatted ID\n\t\t\t\t\t\tthis._formattedId += 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis._id += 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tget id(): number {\n\t\tthis.fit();\n\t\treturn this._id;\n\t}\n\n\tget values(): number[] {\n\t\tthis.fit();\n\t\treturn this._values;\n\t}\n\n\tset values(values: number[]) {\n\t\tthis.set(values, undefined, undefined);\n\t}\n\n\tget segments(): number[] {\n\t\treturn this._segments;\n\t}\n\n\t/**\n\t * Must be sorted in ascending order.\n\t */\n\tset segments(segments: number[]) {\n\t\tthis.set(undefined, segments, undefined);\n\t}\n\n\tget style(): EShapePointsStyle {\n\t\treturn this._style;\n\t}\n\n\tset style(style: EShapePointsStyle) {\n\t\tthis.set(undefined, undefined, style);\n\t}\n\n\tget marker(): EShapePointsMarkerContainer {\n\t\tlet result = this._marker;\n\t\tif (result == null) {\n\t\t\tresult = this.newMarker();\n\t\t\tthis._marker = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tgetMarker(): EShapePointsMarkerContainer | undefined {\n\t\treturn this._marker;\n\t}\n\n\tprotected newMarker(): EShapePointsMarkerContainer {\n\t\treturn new EShapePointsMarkerContainerImpl(this);\n\t}\n\n\tonMarkerTypeChange(): void {\n\t\tconst parent = this._parent;\n\t\tparent.uploaded = undefined;\n\t\tparent.toDirty();\n\t}\n\n\tonMarkerSizeChange(): void {\n\t\tthis._parent.updateUploaded();\n\t}\n\n\tonMarkerFillChange(): void {\n\t\tthis._parent.updateUploaded();\n\t}\n\n\tget formatter(): EShapePointsFormatter | null {\n\t\treturn this._formatter || null;\n\t}\n\n\tset formatter(formatter: EShapePointsFormatter | null) {\n\t\tif (this._formatter !== formatter) {\n\t\t\tthis._formattedId = -1;\n\t\t\tthis._formatter = formatter;\n\t\t\tthis.toDirty(true);\n\t\t}\n\t}\n\n\tget formatted(): EShapePointsFormatted {\n\t\tthis.fit();\n\t\tconst id = this._id;\n\t\tlet result = this._formatted;\n\t\tif (this._formattedId !== id) {\n\t\t\tthis._formattedId = id;\n\n\t\t\tconst style = this._style;\n\t\t\tconst formatter = this._formatter || EShapePointsFormatters.find(style);\n\t\t\tif (formatter != null) {\n\t\t\t\tif (result == null) {\n\t\t\t\t\tresult = {\n\t\t\t\t\t\tlength: 0,\n\t\t\t\t\t\tvalues: [],\n\t\t\t\t\t\tsegments: [],\n\t\t\t\t\t\tboundary: [0, 0, 0, 0],\n\t\t\t\t\t\tstyle: EShapePointsStyle.NONE\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst valuesBase = this._valuesBase;\n\t\t\t\tconst segments = this._segments;\n\t\t\t\tif (valuesBase != null) {\n\t\t\t\t\tconst length = valuesBase.length >> 1;\n\t\t\t\t\tformatter(length, valuesBase, segments, style, result);\n\t\t\t\t\ttoPointsBoundary(result.values, result.boundary);\n\n\t\t\t\t\tconst formattedValues = result.values;\n\t\t\t\t\tconst formattedValuesBase = formattedValues.splice(0);\n\t\t\t\t\tthis._formattedValuesBase = formattedValuesBase;\n\n\t\t\t\t\tconst formattedBoundary = result.boundary;\n\t\t\t\t\tconst formattedBoundaryBase: EShapePointsFormattedBoundary = [\n\t\t\t\t\t\tformattedBoundary[0],\n\t\t\t\t\t\tformattedBoundary[1],\n\t\t\t\t\t\tformattedBoundary[2],\n\t\t\t\t\t\tformattedBoundary[3]\n\t\t\t\t\t];\n\t\t\t\t\tthis._formattedBoundaryBase = formattedBoundaryBase;\n\n\t\t\t\t\tthis.toScaled(\n\t\t\t\t\t\tformattedValues,\n\t\t\t\t\t\tformattedValuesBase,\n\t\t\t\t\t\tformattedBoundary,\n\t\t\t\t\t\tformattedBoundaryBase\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tconst values = this._values;\n\t\t\t\t\tconst length = values.length >> 1;\n\t\t\t\t\tformatter(length, values, segments, style, result);\n\t\t\t\t\ttoPointsBoundary(result.values, result.boundary);\n\t\t\t\t\tthis._formattedValuesBase = undefined;\n\t\t\t\t\tthis._formattedBoundaryBase = undefined;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult = undefined;\n\t\t\t\tthis._formattedValuesBase = undefined;\n\t\t\t\tthis._formattedBoundaryBase = undefined;\n\t\t\t}\n\t\t\tthis._formatted = result;\n\t\t}\n\t\treturn result || this;\n\t}\n\n\tprotected toScaled(\n\t\tvalues: number[],\n\t\tvaluesBase: number[],\n\t\tboundary: EShapePointsFormattedBoundary,\n\t\tboundaryBase: EShapePointsFormattedBoundary\n\t): void {\n\t\tconst size = this._parentSizeFitted;\n\t\tconst sizeBase = this._parentSizeBase;\n\t\tconst threshold = 0.00001;\n\t\tconst hasSizeBaseX = threshold < Math.abs(sizeBase.x);\n\t\tconst hasSizeBaseY = threshold < Math.abs(sizeBase.y);\n\t\tif (hasSizeBaseX || hasSizeBaseY) {\n\t\t\tconst scaleX = hasSizeBaseX ? size.x / sizeBase.x : 1;\n\t\t\tconst scaleY = hasSizeBaseY ? size.y / sizeBase.y : 1;\n\n\t\t\tfor (let i = 0, imax = valuesBase.length; i < imax; i += 2) {\n\t\t\t\tvalues[i] = valuesBase[i] * scaleX;\n\t\t\t\tvalues[i + 1] = valuesBase[i + 1] * scaleY;\n\t\t\t}\n\n\t\t\tfor (let i = 0, imax = boundaryBase.length; i < imax; i += 2) {\n\t\t\t\tboundary[i] = boundaryBase[i] * scaleX;\n\t\t\t\tboundary[i + 1] = boundaryBase[i + 1] * scaleY;\n\t\t\t}\n\t\t}\n\t}\n\n\tcopy(source: EShapePoints): this {\n\t\tthis.set(source.values, source.segments, source.style);\n\t\tconst marker = source.getMarker();\n\t\tif (marker) {\n\t\t\tthis.marker.copy(marker);\n\t\t}\n\t\treturn this;\n\t}\n\n\tset(newValues?: number[], newSegments?: number[], newStyle?: EShapePointsStyle): this {\n\t\tlet isDirty = false;\n\t\tlet isUpdated = false;\n\n\t\t// Formatter\n\t\tconst style = this._style;\n\t\tconst styleFormatter = style & EShapePointsStyle.FORMATTER_MASK;\n\t\tconst formatter = this._formatter;\n\n\t\t// Values\n\t\tif (newValues != null) {\n\t\t\tconst values = this._values;\n\t\t\tconst valuesBaseLength = this._valuesBaseLength;\n\t\t\tconst newValuesLength = newValues.length;\n\t\t\tconst iupdate = Math.min(newValuesLength, valuesBaseLength);\n\t\t\tthis.toFitted();\n\t\t\tif (values !== newValues) {\n\t\t\t\tfor (let i = 0; i < iupdate; ++i) {\n\t\t\t\t\tvalues[i] = newValues[i];\n\t\t\t\t}\n\n\t\t\t\tfor (let i = iupdate; i < newValuesLength; ++i) {\n\t\t\t\t\tvalues.push(newValues[i]);\n\t\t\t\t}\n\n\t\t\t\tif (valuesBaseLength !== newValuesLength) {\n\t\t\t\t\tvalues.length = newValuesLength;\n\t\t\t\t\tthis._valuesBaseLength = newValuesLength;\n\t\t\t\t\tisDirty = true;\n\t\t\t\t} else {\n\t\t\t\t\tif (formatter != null || styleFormatter) {\n\t\t\t\t\t\tisDirty = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisUpdated = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (valuesBaseLength !== newValuesLength) {\n\t\t\t\t\tthis._valuesBaseLength = newValuesLength;\n\t\t\t\t\tisDirty = true;\n\t\t\t\t} else {\n\t\t\t\t\tif (formatter != null || styleFormatter) {\n\t\t\t\t\t\tisDirty = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisUpdated = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Segments\n\t\tif (newSegments != null) {\n\t\t\tconst segments = this._segments;\n\t\t\tif (segments !== newSegments) {\n\t\t\t\tconst newSegmentsLength = newSegments.length;\n\t\t\t\tconst iupdate = Math.min(segments.length, newSegmentsLength);\n\t\t\t\tfor (let i = 0; i < iupdate; ++i) {\n\t\t\t\t\tsegments[i] = newSegments[i];\n\t\t\t\t}\n\n\t\t\t\tfor (let i = iupdate; i < newSegmentsLength; ++i) {\n\t\t\t\t\tsegments.push(newSegments[i]);\n\t\t\t\t}\n\n\t\t\t\tif (segments.length !== newSegmentsLength) {\n\t\t\t\t\tsegments.length = newSegmentsLength;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (formatter != null || styleFormatter) {\n\t\t\t\tisDirty = true;\n\t\t\t} else {\n\t\t\t\tisUpdated = true;\n\t\t\t}\n\t\t}\n\n\t\t// Style\n\t\tif (newStyle != null) {\n\t\t\tif (style !== newStyle) {\n\t\t\t\tconst newStyleFormatter = newStyle & EShapePointsStyle.FORMATTER_MASK;\n\t\t\t\tif (styleFormatter !== newStyleFormatter) {\n\t\t\t\t\tisDirty = true;\n\t\t\t\t} else {\n\t\t\t\t\tif (formatter != null || styleFormatter) {\n\t\t\t\t\t\tconst styleClosed = style & EShapePointsStyle.CLOSED;\n\t\t\t\t\t\tconst newStyleClosed = newStyle & EShapePointsStyle.CLOSED;\n\t\t\t\t\t\tif (styleClosed !== newStyleClosed) {\n\t\t\t\t\t\t\tisDirty = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tisUpdated = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisUpdated = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis._style = newStyle;\n\t\t\t}\n\t\t}\n\n\t\t//\n\t\tif (isUpdated || isDirty) {\n\t\t\tthis.toDirty(isDirty);\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected toDirty(revalidate: boolean): void {\n\t\tif (revalidate) {\n\t\t\tthis._id += 1;\n\t\t\tconst parent = this._parent;\n\t\t\tconst uploaded = parent.uploaded;\n\t\t\tif (uploaded) {\n\t\t\t\tif (uploaded.isCompatible(parent)) {\n\t\t\t\t\tparent.updateUploaded();\n\t\t\t\t} else {\n\t\t\t\t\tparent.uploaded = undefined;\n\t\t\t\t\tparent.toDirty();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tparent.updateUploaded();\n\t\t\t}\n\t\t} else {\n\t\t\tthis._id += 1;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tclone(parent: EShape): EShapeLinePoints {\n\t\treturn new EShapeLinePoints(parent).copy(this);\n\t}\n\n\ttoPoints(transform: Matrix): Point[] {\n\t\tconst result: Point[] = [];\n\t\tconst values = this.values;\n\t\tfor (let i = 0, imax = values.length; i < imax; i += 2) {\n\t\t\tconst point = new Point(values[i + 0], values[i + 1]);\n\t\t\tresult.push(transform.apply(point, point));\n\t\t}\n\t\treturn result;\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): number {\n\t\tconst values = JSON.stringify(this._values);\n\t\tconst segments = JSON.stringify(this._segments);\n\t\tconst style = this._style;\n\t\tlet markerId = -1;\n\t\tconst marker = this._marker;\n\t\tif (marker) {\n\t\t\tmarkerId = marker.serialize(manager);\n\t\t}\n\t\treturn manager.addResource(`[${values},${segments},${style},${markerId}]`);\n\t}\n\n\tdeserialize(resourceId: number, manager: EShapeResourceManagerDeserialization): void {\n\t\tconst resources = manager.resources;\n\t\tif (0 <= resourceId && resourceId < resources.length) {\n\t\t\tlet parsed = manager.getExtension<EShapeLinePointsSerialized>(resourceId);\n\t\t\tif (parsed == null) {\n\t\t\t\tparsed = JSON.parse(resources[resourceId]) as EShapeLinePointsSerialized;\n\t\t\t\tmanager.setExtension(resourceId, parsed);\n\t\t\t}\n\t\t\tthis.set(parsed[0], parsed[1], parsed[2]);\n\t\t\tconst markerId = parsed[3];\n\t\t\tif (markerId != null && 0 <= markerId) {\n\t\t\t\tthis.marker.deserialize(markerId, manager);\n\t\t\t}\n\t\t}\n\t}\n\n\tcalcHitPointAbs<RESULT>(\n\t\tx: number,\n\t\ty: number,\n\t\tax: number,\n\t\tay: number,\n\t\tthreshold: number,\n\t\ttoRange: EShapeLineBasePointsHitTesterToRange | null,\n\t\ttester: EShapeLineBasePointsHitTester<RESULT>,\n\t\tresult: RESULT\n\t): boolean {\n\t\tconst formatted = this.formatted;\n\t\tconst length = formatted.length;\n\t\tif (2 <= length) {\n\t\t\tconst values = formatted.values;\n\t\t\tconst segments = formatted.segments;\n\t\t\tconst style = formatted.style;\n\t\t\tlet istart = 0;\n\t\t\tlet iend = length;\n\t\t\tif (toRange) {\n\t\t\t\tconst work = EShapeLinePoints.WORK_RANGE;\n\t\t\t\ttoRange(x, y, threshold, values, work);\n\t\t\t\tistart = work[0];\n\t\t\t\tiend = work[1];\n\t\t\t}\n\t\t\tfor (let i = istart, imax = Math.min(iend, length - 1); i < imax; ++i) {\n\t\t\t\tif (toIndexOf(segments, i + 1) < 0) {\n\t\t\t\t\tconst iv = i << 1;\n\t\t\t\t\tconst p0x = values[iv + 0];\n\t\t\t\t\tconst p0y = values[iv + 1];\n\t\t\t\t\tconst p1x = values[iv + 2];\n\t\t\t\t\tconst p1y = values[iv + 3];\n\t\t\t\t\tif (tester(x, y, p0x, p0y, p1x, p1y, i, threshold, result)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (2 < length && length <= iend && style & EShapePointsStyle.CLOSED) {\n\t\t\t\tif (toIndexOf(segments, 0) < 0) {\n\t\t\t\t\tconst i = length - 1;\n\t\t\t\t\tconst iv = i << 1;\n\t\t\t\t\tconst p0x = values[iv + 0];\n\t\t\t\t\tconst p0y = values[iv + 1];\n\t\t\t\t\tconst p1x = values[0];\n\t\t\t\t\tconst p1y = values[1];\n\t\t\t\t\tif (tester(x, y, p0x, p0y, p1x, p1y, i, threshold, result)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.310.1
2
+ Winter Cardinal UI v0.311.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.310.1
2
+ Winter Cardinal UI v0.311.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.310.1
2
+ Winter Cardinal UI v0.311.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.310.1
2
+ Winter Cardinal UI v0.311.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5