@wcardinal/wcardinal-ui 0.424.0 → 0.426.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.
Files changed (68) hide show
  1. package/dist/types/wcardinal/ui/d-chart-axis-guide-simple.d.ts +8 -1
  2. package/dist/types/wcardinal/ui/d-dynamic-text-geometry.d.ts +14 -3
  3. package/dist/types/wcardinal/ui/d-pane.d.ts +4 -4
  4. package/dist/types/wcardinal/ui/shape/e-shape-text.d.ts +3 -1
  5. package/dist/types/wcardinal/ui/shape/variant/build-text.d.ts +1 -1
  6. package/dist/types/wcardinal/ui/shape/variant/e-shape-text-impl.d.ts +6 -1
  7. package/dist/types/wcardinal/ui/util/character.d.ts +8 -0
  8. package/dist/types/wcardinal/ui/util/dynamic-font-atlas-character.d.ts +1 -0
  9. package/dist/types/wcardinal/ui/util/dynamic-font-atlas-characters.d.ts +1 -1
  10. package/dist/types/wcardinal/ui/util/dynamic-font-atlas.d.ts +5 -7
  11. package/dist/types/wcardinal/ui/util/dynamic-sdf-font-atlas.d.ts +2 -5
  12. package/dist/types/wcardinal/ui/util/dynamic-sdf-font-atlases.d.ts +2 -2
  13. package/dist/types/wcardinal/ui/util/index.d.ts +1 -0
  14. package/dist/types/wcardinal/ui/util/util-character-iterator.d.ts +0 -8
  15. package/dist/wcardinal/ui/d-chart-axis-guide-simple.js +54 -26
  16. package/dist/wcardinal/ui/d-chart-axis-guide-simple.js.map +1 -1
  17. package/dist/wcardinal/ui/d-dynamic-text-geometry.js +56 -49
  18. package/dist/wcardinal/ui/d-dynamic-text-geometry.js.map +1 -1
  19. package/dist/wcardinal/ui/d-dynamic-text-measure.js +11 -11
  20. package/dist/wcardinal/ui/d-dynamic-text-measure.js.map +1 -1
  21. package/dist/wcardinal/ui/d-pane.js +9 -21
  22. package/dist/wcardinal/ui/d-pane.js.map +1 -1
  23. package/dist/wcardinal/ui/shape/e-shape-renderer.js +3 -3
  24. package/dist/wcardinal/ui/shape/e-shape-renderer.js.map +1 -1
  25. package/dist/wcardinal/ui/shape/e-shape-text.js.map +1 -1
  26. package/dist/wcardinal/ui/shape/variant/build-text.js +13 -14
  27. package/dist/wcardinal/ui/shape/variant/build-text.js.map +1 -1
  28. package/dist/wcardinal/ui/shape/variant/builder-text.js +1 -1
  29. package/dist/wcardinal/ui/shape/variant/builder-text.js.map +1 -1
  30. package/dist/wcardinal/ui/shape/variant/e-shape-text-impl.js +88 -13
  31. package/dist/wcardinal/ui/shape/variant/e-shape-text-impl.js.map +1 -1
  32. package/dist/wcardinal/ui/util/character.js +13 -0
  33. package/dist/wcardinal/ui/util/character.js.map +1 -0
  34. package/dist/wcardinal/ui/util/dynamic-font-atlas-character.js +2 -1
  35. package/dist/wcardinal/ui/util/dynamic-font-atlas-character.js.map +1 -1
  36. package/dist/wcardinal/ui/util/dynamic-font-atlas-characters.js.map +1 -1
  37. package/dist/wcardinal/ui/util/dynamic-font-atlas.js +124 -108
  38. package/dist/wcardinal/ui/util/dynamic-font-atlas.js.map +1 -1
  39. package/dist/wcardinal/ui/util/dynamic-font-atlases.js +2 -1
  40. package/dist/wcardinal/ui/util/dynamic-font-atlases.js.map +1 -1
  41. package/dist/wcardinal/ui/util/dynamic-sdf-font-atlas.js +83 -114
  42. package/dist/wcardinal/ui/util/dynamic-sdf-font-atlas.js.map +1 -1
  43. package/dist/wcardinal/ui/util/dynamic-sdf-font-atlases.js +18 -26
  44. package/dist/wcardinal/ui/util/dynamic-sdf-font-atlases.js.map +1 -1
  45. package/dist/wcardinal/ui/util/index.js +1 -0
  46. package/dist/wcardinal/ui/util/index.js.map +1 -1
  47. package/dist/wcardinal/ui/util/util-character-iterator.js +0 -17
  48. package/dist/wcardinal/ui/util/util-character-iterator.js.map +1 -1
  49. package/dist/wcardinal-ui-theme-dark-en-us.js +1 -1
  50. package/dist/wcardinal-ui-theme-dark-en-us.min.js +1 -1
  51. package/dist/wcardinal-ui-theme-dark-ja-jp.js +1 -1
  52. package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +1 -1
  53. package/dist/wcardinal-ui-theme-dark.js +1 -1
  54. package/dist/wcardinal-ui-theme-dark.min.js +1 -1
  55. package/dist/wcardinal-ui-theme-white-en-us.js +1 -1
  56. package/dist/wcardinal-ui-theme-white-en-us.min.js +1 -1
  57. package/dist/wcardinal-ui-theme-white-ja-jp.js +1 -1
  58. package/dist/wcardinal-ui-theme-white-ja-jp.min.js +1 -1
  59. package/dist/wcardinal-ui-theme-white.js +1 -1
  60. package/dist/wcardinal-ui-theme-white.min.js +1 -1
  61. package/dist/wcardinal-ui.cjs.js +545 -478
  62. package/dist/wcardinal-ui.js +545 -478
  63. package/dist/wcardinal-ui.min.js +2 -2
  64. package/dist/wcardinal-ui.min.js.map +1 -1
  65. package/package.json +1 -1
  66. package/dist/types/wcardinal/ui/util/ascii.d.ts +0 -1
  67. package/dist/wcardinal/ui/util/ascii.js +0 -6
  68. package/dist/wcardinal/ui/util/ascii.js.map +0 -1
@@ -29,6 +29,9 @@ var EShapeTextImpl = /** @class */ (function () {
29
29
  this.padding = new EShapeTextOffsetImpl(parent, 10, 10);
30
30
  this._clipping = false;
31
31
  this._fitting = false;
32
+ this._characters = [];
33
+ this._nacharacters = [];
34
+ this.updateCharacters(value);
32
35
  }
33
36
  Object.defineProperty(EShapeTextImpl.prototype, "enable", {
34
37
  get: function () {
@@ -55,7 +58,8 @@ var EShapeTextImpl = /** @class */ (function () {
55
58
  if (this._plength < length_1) {
56
59
  this._plength = length_1;
57
60
  }
58
- if (this.isCompatible(value)) {
61
+ this.updateCharacters(value);
62
+ if (this.isCompatible()) {
59
63
  this._parent.updateUploaded();
60
64
  }
61
65
  else {
@@ -67,7 +71,78 @@ var EShapeTextImpl = /** @class */ (function () {
67
71
  enumerable: false,
68
72
  configurable: true
69
73
  });
70
- EShapeTextImpl.prototype.isCompatible = function (value) {
74
+ Object.defineProperty(EShapeTextImpl.prototype, "characters", {
75
+ get: function () {
76
+ return this._characters;
77
+ },
78
+ enumerable: false,
79
+ configurable: true
80
+ });
81
+ Object.defineProperty(EShapeTextImpl.prototype, "nacharacters", {
82
+ get: function () {
83
+ return this._nacharacters;
84
+ },
85
+ enumerable: false,
86
+ configurable: true
87
+ });
88
+ EShapeTextImpl.prototype.updateCharacters = function (value) {
89
+ var characters = this._characters;
90
+ var charactersLength = characters.length;
91
+ var icharacters = 0;
92
+ var nacharacters = this._nacharacters;
93
+ var nacharactersLength = nacharacters.length;
94
+ var inacharacters = 0;
95
+ for (var i = 0, imax = value.length; i < imax;) {
96
+ if (value.charCodeAt(i) <= 0xff) {
97
+ // Add an ASCII character
98
+ var ac = value.substring(i, i + 1);
99
+ if (icharacters < charactersLength) {
100
+ characters[icharacters] = ac;
101
+ }
102
+ else {
103
+ characters.push(ac);
104
+ }
105
+ icharacters += 1;
106
+ i += 1;
107
+ continue;
108
+ }
109
+ var j = i + 1;
110
+ for (; j < imax; ++j) {
111
+ var cc = value.charCodeAt(j);
112
+ if ((0xdc00 <= cc && cc <= 0xdfff) || (0xfe00 <= cc && cc <= 0xfe0f)) {
113
+ // Low surrogate
114
+ // Variation selector
115
+ continue;
116
+ }
117
+ break;
118
+ }
119
+ // Add an non-ascii character
120
+ var nac = value.substring(i, j);
121
+ if (icharacters < charactersLength) {
122
+ characters[icharacters] = nac;
123
+ }
124
+ else {
125
+ characters.push(nac);
126
+ }
127
+ icharacters += 1;
128
+ if (inacharacters < nacharactersLength) {
129
+ nacharacters[inacharacters] = nac;
130
+ }
131
+ else {
132
+ nacharacters.push(nac);
133
+ }
134
+ inacharacters += 1;
135
+ // Go to the next
136
+ i = j;
137
+ }
138
+ if (icharacters < charactersLength) {
139
+ characters.length = icharacters;
140
+ }
141
+ if (inacharacters < nacharactersLength) {
142
+ nacharacters.length = inacharacters;
143
+ }
144
+ };
145
+ EShapeTextImpl.prototype.isCompatible = function () {
71
146
  // Compatibility check
72
147
  var parent = this._parent;
73
148
  var uploaded = parent.uploaded;
@@ -76,18 +151,17 @@ var EShapeTextImpl = /** @class */ (function () {
76
151
  }
77
152
  // Character code check
78
153
  var atlas = this.atlas;
79
- var characters = atlas && atlas.characters;
80
- if (characters != null) {
81
- for (var i = 0, imax = value.length; i < imax; ++i) {
82
- var char = value[i];
83
- if (!(char in characters)) {
84
- return false;
85
- }
86
- }
87
- }
88
- else {
154
+ if (atlas == null) {
89
155
  return false;
90
156
  }
157
+ var atlasCharacters = atlas.characters;
158
+ var nacharacters = this._nacharacters;
159
+ for (var i = 0, imax = nacharacters.length; i < imax; ++i) {
160
+ if (!atlasCharacters.has(nacharacters[i])) {
161
+ return false;
162
+ }
163
+ }
164
+ // Done
91
165
  return true;
92
166
  };
93
167
  Object.defineProperty(EShapeTextImpl.prototype, "length", {
@@ -242,7 +316,8 @@ var EShapeTextImpl = /** @class */ (function () {
242
316
  if (this._plength < length_2) {
243
317
  this._plength = length_2;
244
318
  }
245
- if (this.isCompatible(value)) {
319
+ this.updateCharacters(value);
320
+ if (this.isCompatible()) {
246
321
  isChangedUploaded = true;
247
322
  }
248
323
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"e-shape-text-impl.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-text-impl.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Texture } from \"pixi.js\";\nimport { DDiagramSerializedText } from \"../../d-diagram-serialized\";\nimport { DeepPartial } from \"../../util/deep-partial\";\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport {\n\tEShapeText,\n\tEShapeTextAtlas,\n\tEShapeTextLike,\n\tEShapeTextStyle,\n\tEShapeTextWeight\n} from \"../e-shape-text\";\nimport { EShapeTextAlign } from \"../e-shape-text-align\";\nimport { EShapeTextAlignHorizontal } from \"../e-shape-text-align-horizontal\";\nimport { EShapeTextAlignVertical } from \"../e-shape-text-align-vertical\";\nimport { EShapeTextDirection } from \"../e-shape-text-direction\";\nimport { EShapeTextOffset } from \"../e-shape-text-offset\";\nimport { EShapeTextOutline } from \"../e-shape-text-outline\";\nimport { EShapeTextAlignImpl } from \"./e-shape-text-align-impl\";\nimport { EShapeTextImplParent } from \"./e-shape-text-impl-parent\";\nimport { EShapeTextOffsetImpl } from \"./e-shape-text-offset-impl\";\nimport { EShapeTextOutlineImpl } from \"./e-shape-text-outline-impl\";\n\nexport class EShapeTextImpl implements EShapeText {\n\tprotected _parent: EShapeTextImplParent;\n\tprotected _enable: boolean;\n\tprotected _value: string;\n\tprotected _length: number;\n\tprotected _plength: number;\n\tprotected _family: string;\n\tprotected _color: number;\n\tprotected _alpha: number;\n\tprotected _size: number;\n\tprotected _weight: EShapeTextWeight;\n\treadonly align: EShapeTextAlign;\n\treadonly offset: EShapeTextOffset;\n\tprotected _style: EShapeTextStyle;\n\treadonly outline: EShapeTextOutline;\n\treadonly spacing: EShapeTextOffset;\n\tprotected _direction: EShapeTextDirection;\n\treadonly padding: EShapeTextOffset;\n\tprotected _clipping: boolean;\n\tprotected _fitting: boolean;\n\n\ttexture?: Texture; // Used for rendering and updated when rendered\n\tatlas?: EShapeTextAtlas; // Used for rendering and updated when rendered\n\tworld?: number[]; // Updated when rendered\n\n\tconstructor(\n\t\tparent: EShapeTextImplParent,\n\t\tvalue: string,\n\t\tcolor: number,\n\t\talpha: number,\n\t\tfamily: string,\n\t\tsize: number\n\t) {\n\t\tthis._parent = parent;\n\t\tthis._enable = true;\n\t\tthis._value = value;\n\t\tthis._plength = this._length = value.length;\n\t\tthis._color = color;\n\t\tthis._alpha = alpha;\n\t\tthis._family = family;\n\t\tthis._size = size;\n\t\tthis._weight = EShapeTextWeight.NORMAL;\n\t\tthis.align = new EShapeTextAlignImpl(\n\t\t\tparent,\n\t\t\tEShapeTextAlignHorizontal.CENTER,\n\t\t\tEShapeTextAlignVertical.MIDDLE\n\t\t);\n\t\tthis.offset = new EShapeTextOffsetImpl(parent, 0, 0);\n\t\tthis._style = EShapeTextStyle.NORMAL;\n\t\tthis.spacing = new EShapeTextOffsetImpl(parent, 0, 0);\n\t\tthis.outline = new EShapeTextOutlineImpl(parent, false, 0xffffff, 1.0, 0.5);\n\t\tthis._direction = EShapeTextDirection.LEFT_TO_RIGHT;\n\t\tthis.padding = new EShapeTextOffsetImpl(parent, 10, 10);\n\t\tthis._clipping = false;\n\t\tthis._fitting = false;\n\t}\n\n\tget enable(): boolean {\n\t\treturn this._enable;\n\t}\n\n\tset enable(enable: boolean) {\n\t\tif (this._enable !== enable) {\n\t\t\tthis._enable = enable;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget value(): string {\n\t\treturn this._value;\n\t}\n\n\tset value(value: string) {\n\t\tif (this._value !== value) {\n\t\t\tthis._value = value;\n\t\t\tconst length = value.length;\n\t\t\tthis._length = length;\n\t\t\tif (this._plength < length) {\n\t\t\t\tthis._plength = length;\n\t\t\t}\n\t\t\tif (this.isCompatible(value)) {\n\t\t\t\tthis._parent.updateUploaded();\n\t\t\t} else {\n\t\t\t\tthis.atlas = undefined;\n\t\t\t\tthis._parent.toDirty();\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected isCompatible(value: string): boolean {\n\t\t// Compatibility check\n\t\tconst parent = this._parent;\n\t\tconst uploaded = parent.uploaded;\n\t\tif (uploaded == null || !uploaded.isCompatible(parent)) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Character code check\n\t\tconst atlas = this.atlas;\n\t\tconst characters = atlas && atlas.characters;\n\t\tif (characters != null) {\n\t\t\tfor (let i = 0, imax = value.length; i < imax; ++i) {\n\t\t\t\tconst char = value[i];\n\t\t\t\tif (!(char in characters)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tget length(): number {\n\t\treturn this._length;\n\t}\n\n\tget plength(): number {\n\t\treturn this._plength;\n\t}\n\n\tget family(): string {\n\t\treturn this._family;\n\t}\n\n\tset family(family: string) {\n\t\tif (this._family !== family) {\n\t\t\tthis._family = family;\n\t\t\tthis._parent.toDirty();\n\t\t}\n\t}\n\n\tget color(): number {\n\t\treturn this._color;\n\t}\n\n\tset color(color: number) {\n\t\tif (this._color !== color) {\n\t\t\tthis._color = color;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget alpha(): number {\n\t\treturn this._alpha;\n\t}\n\n\tset alpha(alpha: number) {\n\t\tif (this._alpha !== alpha) {\n\t\t\tthis._alpha = alpha;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget size(): number {\n\t\treturn this._size;\n\t}\n\n\tset size(size: number) {\n\t\tif (this._size !== size) {\n\t\t\tthis._size = size;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget weight(): EShapeTextWeight {\n\t\treturn this._weight;\n\t}\n\n\tset weight(weight: EShapeTextWeight) {\n\t\tif (this._weight !== weight) {\n\t\t\tthis._weight = weight;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget style(): EShapeTextStyle {\n\t\treturn this._style;\n\t}\n\n\tset style(style: EShapeTextStyle) {\n\t\tif (this._style !== style) {\n\t\t\tthis._style = style;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget direction(): EShapeTextDirection {\n\t\treturn this._direction;\n\t}\n\n\tset direction(direction: EShapeTextDirection) {\n\t\tif (this._direction !== direction) {\n\t\t\tthis._direction = direction;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget clipping(): boolean {\n\t\treturn this._clipping;\n\t}\n\n\tset clipping(clipping: boolean) {\n\t\tif (this._clipping !== clipping) {\n\t\t\tthis._clipping = clipping;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget fitting(): boolean {\n\t\treturn this._fitting;\n\t}\n\n\tset fitting(fitting: boolean) {\n\t\tif (this._fitting !== fitting) {\n\t\t\tthis._fitting = fitting;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tcopy(target?: DeepPartial<EShapeTextLike>): this {\n\t\tif (target) {\n\t\t\tthis.set(\n\t\t\t\ttarget.value,\n\t\t\t\ttarget.color,\n\t\t\t\ttarget.alpha,\n\t\t\t\ttarget.family,\n\t\t\t\ttarget.size,\n\t\t\t\ttarget.weight,\n\t\t\t\ttarget.style,\n\t\t\t\ttarget.direction,\n\t\t\t\ttarget.clipping,\n\t\t\t\ttarget.fitting\n\t\t\t);\n\t\t\tthis.align.copy(target.align);\n\t\t\tthis.offset.copy(target.offset);\n\t\t\tthis.outline.copy(target.outline);\n\t\t\tthis.spacing.copy(target.spacing);\n\t\t\tthis.padding.copy(target.padding);\n\t\t}\n\t\treturn this;\n\t}\n\n\tset(\n\t\tvalue?: string,\n\t\tcolor?: number,\n\t\talpha?: number,\n\t\tfamily?: string,\n\t\tsize?: number,\n\t\tweight?: EShapeTextWeight,\n\t\tstyle?: EShapeTextStyle,\n\t\tdirection?: EShapeTextDirection,\n\t\tclipping?: boolean,\n\t\tfitting?: boolean\n\t): this {\n\t\tlet isChangedDirty = false;\n\t\tlet isChangedUploaded = false;\n\n\t\tif (value != null && this._value !== value) {\n\t\t\tthis._value = value;\n\t\t\tconst length = value.length;\n\t\t\tthis._length = length;\n\t\t\tif (this._plength < length) {\n\t\t\t\tthis._plength = length;\n\t\t\t}\n\t\t\tif (this.isCompatible(value)) {\n\t\t\t\tisChangedUploaded = true;\n\t\t\t} else {\n\t\t\t\tthis.atlas = undefined;\n\t\t\t\tisChangedDirty = true;\n\t\t\t}\n\t\t}\n\n\t\tif (color != null && this._color !== color) {\n\t\t\tthis._color = color;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (alpha != null && this._alpha !== alpha) {\n\t\t\tthis._alpha = alpha;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (family != null && this._family !== family) {\n\t\t\tthis._family = family;\n\t\t\tisChangedDirty = true;\n\t\t}\n\n\t\tif (size != null && this._size !== size) {\n\t\t\tthis._size = size;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (weight != null && this._weight !== weight) {\n\t\t\tthis._weight = weight;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (style != null && this._style !== style) {\n\t\t\tthis._style = style;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (direction != null && this._direction !== direction) {\n\t\t\tthis._direction = direction;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (clipping != null && this._clipping !== clipping) {\n\t\t\tthis._clipping = clipping;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (fitting != null && this._fitting !== fitting) {\n\t\t\tthis._fitting = fitting;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (isChangedDirty) {\n\t\t\tthis._parent.toDirty();\n\t\t} else if (isChangedUploaded) {\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\n\t\treturn this;\n\t}\n\n\ttoObject(): EShapeTextLike {\n\t\treturn {\n\t\t\tvalue: this._value,\n\t\t\tcolor: this._color,\n\t\t\talpha: this._alpha,\n\t\t\tfamily: this._family,\n\t\t\tsize: this._size,\n\t\t\tweight: this._weight,\n\t\t\talign: this.align.toObject(),\n\t\t\toffset: this.offset.toObject(),\n\t\t\tstyle: this._style,\n\t\t\toutline: this.outline.toObject(),\n\t\t\tdirection: this._direction,\n\t\t\tspacing: this.spacing.toObject(),\n\t\t\tpadding: this.padding.toObject(),\n\t\t\tclipping: this._clipping,\n\t\t\tfitting: this._fitting\n\t\t};\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): number {\n\t\tconst valueId = manager.addResource(this._value);\n\t\tconst familyId = manager.addResource(this._family);\n\t\tconst alignId = this.align.serialize(manager);\n\t\tconst offsetId = this.offset.serialize(manager);\n\t\tconst outlineId = this.outline.serialize(manager);\n\t\tconst spacingId = this.spacing.serialize(manager);\n\t\tconst paddingId = this.padding.serialize(manager);\n\t\tconst clipping = this._clipping ? 1 : 0;\n\t\tconst fitting = this._fitting ? 1 : 0;\n\t\tconst serialized =\n\t\t\t`[${valueId},${this._color},${this._alpha},${familyId},${this._size},` +\n\t\t\t`${this._weight},${alignId},${offsetId},${this._style},${outlineId},` +\n\t\t\t`${spacingId},${this._direction},${paddingId},${clipping},${fitting}]`;\n\t\treturn manager.addResource(serialized);\n\t}\n\n\tdeserialize(target: number, manager: EShapeResourceManagerDeserialization): void {\n\t\tconst resources = manager.resources;\n\t\tif (0 <= target && target < resources.length) {\n\t\t\tlet parsed = manager.getText(target);\n\t\t\tif (parsed == null) {\n\t\t\t\tparsed = JSON.parse(resources[target]) as DDiagramSerializedText;\n\t\t\t\tmanager.setText(target, parsed);\n\t\t\t}\n\t\t\tthis.set(\n\t\t\t\tresources[parsed[0]] || \"\",\n\t\t\t\tparsed[1],\n\t\t\t\tparsed[2],\n\t\t\t\tresources[parsed[3]] || \"auto\",\n\t\t\t\tparsed[4],\n\t\t\t\tparsed[5],\n\t\t\t\tparsed[8],\n\t\t\t\tparsed[11],\n\t\t\t\t!!parsed[13],\n\t\t\t\t!!parsed[14]\n\t\t\t);\n\t\t\tthis.align.deserialize(parsed[6], manager);\n\t\t\tthis.offset.deserialize(parsed[7], manager);\n\t\t\tthis.outline.deserialize(parsed[9], manager);\n\t\t\tthis.spacing.deserialize(parsed[10], manager);\n\t\t\tthis.padding.deserialize(parsed[12], manager);\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"e-shape-text-impl.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-text-impl.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Texture } from \"pixi.js\";\nimport { DDiagramSerializedText } from \"../../d-diagram-serialized\";\nimport { DeepPartial } from \"../../util/deep-partial\";\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport {\n\tEShapeText,\n\tEShapeTextAtlas,\n\tEShapeTextLike,\n\tEShapeTextStyle,\n\tEShapeTextWeight\n} from \"../e-shape-text\";\nimport { EShapeTextAlign } from \"../e-shape-text-align\";\nimport { EShapeTextAlignHorizontal } from \"../e-shape-text-align-horizontal\";\nimport { EShapeTextAlignVertical } from \"../e-shape-text-align-vertical\";\nimport { EShapeTextDirection } from \"../e-shape-text-direction\";\nimport { EShapeTextOffset } from \"../e-shape-text-offset\";\nimport { EShapeTextOutline } from \"../e-shape-text-outline\";\nimport { EShapeTextAlignImpl } from \"./e-shape-text-align-impl\";\nimport { EShapeTextImplParent } from \"./e-shape-text-impl-parent\";\nimport { EShapeTextOffsetImpl } from \"./e-shape-text-offset-impl\";\nimport { EShapeTextOutlineImpl } from \"./e-shape-text-outline-impl\";\n\nexport class EShapeTextImpl implements EShapeText {\n\tprotected _parent: EShapeTextImplParent;\n\tprotected _enable: boolean;\n\tprotected _value: string;\n\tprotected _length: number;\n\tprotected _plength: number;\n\tprotected _family: string;\n\tprotected _color: number;\n\tprotected _alpha: number;\n\tprotected _size: number;\n\tprotected _weight: EShapeTextWeight;\n\treadonly align: EShapeTextAlign;\n\treadonly offset: EShapeTextOffset;\n\tprotected _style: EShapeTextStyle;\n\treadonly outline: EShapeTextOutline;\n\treadonly spacing: EShapeTextOffset;\n\tprotected _direction: EShapeTextDirection;\n\treadonly padding: EShapeTextOffset;\n\tprotected _clipping: boolean;\n\tprotected _fitting: boolean;\n\n\ttexture?: Texture; // Used for rendering and updated when rendered\n\tatlas?: EShapeTextAtlas; // Used for rendering and updated when rendered\n\tprotected _characters: string[];\n\tprotected _nacharacters: string[];\n\tworld?: number[]; // Updated when rendered\n\n\tconstructor(\n\t\tparent: EShapeTextImplParent,\n\t\tvalue: string,\n\t\tcolor: number,\n\t\talpha: number,\n\t\tfamily: string,\n\t\tsize: number\n\t) {\n\t\tthis._parent = parent;\n\t\tthis._enable = true;\n\t\tthis._value = value;\n\t\tthis._plength = this._length = value.length;\n\t\tthis._color = color;\n\t\tthis._alpha = alpha;\n\t\tthis._family = family;\n\t\tthis._size = size;\n\t\tthis._weight = EShapeTextWeight.NORMAL;\n\t\tthis.align = new EShapeTextAlignImpl(\n\t\t\tparent,\n\t\t\tEShapeTextAlignHorizontal.CENTER,\n\t\t\tEShapeTextAlignVertical.MIDDLE\n\t\t);\n\t\tthis.offset = new EShapeTextOffsetImpl(parent, 0, 0);\n\t\tthis._style = EShapeTextStyle.NORMAL;\n\t\tthis.spacing = new EShapeTextOffsetImpl(parent, 0, 0);\n\t\tthis.outline = new EShapeTextOutlineImpl(parent, false, 0xffffff, 1.0, 0.5);\n\t\tthis._direction = EShapeTextDirection.LEFT_TO_RIGHT;\n\t\tthis.padding = new EShapeTextOffsetImpl(parent, 10, 10);\n\t\tthis._clipping = false;\n\t\tthis._fitting = false;\n\t\tthis._characters = [];\n\t\tthis._nacharacters = [];\n\t\tthis.updateCharacters(value);\n\t}\n\n\tget enable(): boolean {\n\t\treturn this._enable;\n\t}\n\n\tset enable(enable: boolean) {\n\t\tif (this._enable !== enable) {\n\t\t\tthis._enable = enable;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget value(): string {\n\t\treturn this._value;\n\t}\n\n\tset value(value: string) {\n\t\tif (this._value !== value) {\n\t\t\tthis._value = value;\n\t\t\tconst length = value.length;\n\t\t\tthis._length = length;\n\t\t\tif (this._plength < length) {\n\t\t\t\tthis._plength = length;\n\t\t\t}\n\t\t\tthis.updateCharacters(value);\n\t\t\tif (this.isCompatible()) {\n\t\t\t\tthis._parent.updateUploaded();\n\t\t\t} else {\n\t\t\t\tthis.atlas = undefined;\n\t\t\t\tthis._parent.toDirty();\n\t\t\t}\n\t\t}\n\t}\n\n\tget characters(): string[] {\n\t\treturn this._characters;\n\t}\n\n\tget nacharacters(): string[] {\n\t\treturn this._nacharacters;\n\t}\n\n\tprotected updateCharacters(value: string): void {\n\t\tconst characters = this._characters;\n\t\tconst charactersLength = characters.length;\n\t\tlet icharacters = 0;\n\t\tconst nacharacters = this._nacharacters;\n\t\tconst nacharactersLength = nacharacters.length;\n\t\tlet inacharacters = 0;\n\t\tfor (let i = 0, imax = value.length; i < imax; ) {\n\t\t\tif (value.charCodeAt(i) <= 0xff) {\n\t\t\t\t// Add an ASCII character\n\t\t\t\tconst ac = value.substring(i, i + 1);\n\t\t\t\tif (icharacters < charactersLength) {\n\t\t\t\t\tcharacters[icharacters] = ac;\n\t\t\t\t} else {\n\t\t\t\t\tcharacters.push(ac);\n\t\t\t\t}\n\t\t\t\ticharacters += 1;\n\t\t\t\ti += 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet j = i + 1;\n\t\t\tfor (; j < imax; ++j) {\n\t\t\t\tconst cc = value.charCodeAt(j);\n\t\t\t\tif ((0xdc00 <= cc && cc <= 0xdfff) || (0xfe00 <= cc && cc <= 0xfe0f)) {\n\t\t\t\t\t// Low surrogate\n\t\t\t\t\t// Variation selector\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t// Add an non-ascii character\n\t\t\tconst nac = value.substring(i, j);\n\t\t\tif (icharacters < charactersLength) {\n\t\t\t\tcharacters[icharacters] = nac;\n\t\t\t} else {\n\t\t\t\tcharacters.push(nac);\n\t\t\t}\n\t\t\ticharacters += 1;\n\t\t\tif (inacharacters < nacharactersLength) {\n\t\t\t\tnacharacters[inacharacters] = nac;\n\t\t\t} else {\n\t\t\t\tnacharacters.push(nac);\n\t\t\t}\n\t\t\tinacharacters += 1;\n\t\t\t// Go to the next\n\t\t\ti = j;\n\t\t}\n\t\tif (icharacters < charactersLength) {\n\t\t\tcharacters.length = icharacters;\n\t\t}\n\t\tif (inacharacters < nacharactersLength) {\n\t\t\tnacharacters.length = inacharacters;\n\t\t}\n\t}\n\n\tprotected isCompatible(): boolean {\n\t\t// Compatibility check\n\t\tconst parent = this._parent;\n\t\tconst uploaded = parent.uploaded;\n\t\tif (uploaded == null || !uploaded.isCompatible(parent)) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Character code check\n\t\tconst atlas = this.atlas;\n\t\tif (atlas == null) {\n\t\t\treturn false;\n\t\t}\n\t\tconst atlasCharacters = atlas.characters;\n\t\tconst nacharacters = this._nacharacters;\n\t\tfor (let i = 0, imax = nacharacters.length; i < imax; ++i) {\n\t\t\tif (!atlasCharacters.has(nacharacters[i])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\t// Done\n\t\treturn true;\n\t}\n\n\tget length(): number {\n\t\treturn this._length;\n\t}\n\n\tget plength(): number {\n\t\treturn this._plength;\n\t}\n\n\tget family(): string {\n\t\treturn this._family;\n\t}\n\n\tset family(family: string) {\n\t\tif (this._family !== family) {\n\t\t\tthis._family = family;\n\t\t\tthis._parent.toDirty();\n\t\t}\n\t}\n\n\tget color(): number {\n\t\treturn this._color;\n\t}\n\n\tset color(color: number) {\n\t\tif (this._color !== color) {\n\t\t\tthis._color = color;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget alpha(): number {\n\t\treturn this._alpha;\n\t}\n\n\tset alpha(alpha: number) {\n\t\tif (this._alpha !== alpha) {\n\t\t\tthis._alpha = alpha;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget size(): number {\n\t\treturn this._size;\n\t}\n\n\tset size(size: number) {\n\t\tif (this._size !== size) {\n\t\t\tthis._size = size;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget weight(): EShapeTextWeight {\n\t\treturn this._weight;\n\t}\n\n\tset weight(weight: EShapeTextWeight) {\n\t\tif (this._weight !== weight) {\n\t\t\tthis._weight = weight;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget style(): EShapeTextStyle {\n\t\treturn this._style;\n\t}\n\n\tset style(style: EShapeTextStyle) {\n\t\tif (this._style !== style) {\n\t\t\tthis._style = style;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget direction(): EShapeTextDirection {\n\t\treturn this._direction;\n\t}\n\n\tset direction(direction: EShapeTextDirection) {\n\t\tif (this._direction !== direction) {\n\t\t\tthis._direction = direction;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget clipping(): boolean {\n\t\treturn this._clipping;\n\t}\n\n\tset clipping(clipping: boolean) {\n\t\tif (this._clipping !== clipping) {\n\t\t\tthis._clipping = clipping;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget fitting(): boolean {\n\t\treturn this._fitting;\n\t}\n\n\tset fitting(fitting: boolean) {\n\t\tif (this._fitting !== fitting) {\n\t\t\tthis._fitting = fitting;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tcopy(target?: DeepPartial<EShapeTextLike>): this {\n\t\tif (target) {\n\t\t\tthis.set(\n\t\t\t\ttarget.value,\n\t\t\t\ttarget.color,\n\t\t\t\ttarget.alpha,\n\t\t\t\ttarget.family,\n\t\t\t\ttarget.size,\n\t\t\t\ttarget.weight,\n\t\t\t\ttarget.style,\n\t\t\t\ttarget.direction,\n\t\t\t\ttarget.clipping,\n\t\t\t\ttarget.fitting\n\t\t\t);\n\t\t\tthis.align.copy(target.align);\n\t\t\tthis.offset.copy(target.offset);\n\t\t\tthis.outline.copy(target.outline);\n\t\t\tthis.spacing.copy(target.spacing);\n\t\t\tthis.padding.copy(target.padding);\n\t\t}\n\t\treturn this;\n\t}\n\n\tset(\n\t\tvalue?: string,\n\t\tcolor?: number,\n\t\talpha?: number,\n\t\tfamily?: string,\n\t\tsize?: number,\n\t\tweight?: EShapeTextWeight,\n\t\tstyle?: EShapeTextStyle,\n\t\tdirection?: EShapeTextDirection,\n\t\tclipping?: boolean,\n\t\tfitting?: boolean\n\t): this {\n\t\tlet isChangedDirty = false;\n\t\tlet isChangedUploaded = false;\n\n\t\tif (value != null && this._value !== value) {\n\t\t\tthis._value = value;\n\t\t\tconst length = value.length;\n\t\t\tthis._length = length;\n\t\t\tif (this._plength < length) {\n\t\t\t\tthis._plength = length;\n\t\t\t}\n\t\t\tthis.updateCharacters(value);\n\t\t\tif (this.isCompatible()) {\n\t\t\t\tisChangedUploaded = true;\n\t\t\t} else {\n\t\t\t\tthis.atlas = undefined;\n\t\t\t\tisChangedDirty = true;\n\t\t\t}\n\t\t}\n\n\t\tif (color != null && this._color !== color) {\n\t\t\tthis._color = color;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (alpha != null && this._alpha !== alpha) {\n\t\t\tthis._alpha = alpha;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (family != null && this._family !== family) {\n\t\t\tthis._family = family;\n\t\t\tisChangedDirty = true;\n\t\t}\n\n\t\tif (size != null && this._size !== size) {\n\t\t\tthis._size = size;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (weight != null && this._weight !== weight) {\n\t\t\tthis._weight = weight;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (style != null && this._style !== style) {\n\t\t\tthis._style = style;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (direction != null && this._direction !== direction) {\n\t\t\tthis._direction = direction;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (clipping != null && this._clipping !== clipping) {\n\t\t\tthis._clipping = clipping;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (fitting != null && this._fitting !== fitting) {\n\t\t\tthis._fitting = fitting;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (isChangedDirty) {\n\t\t\tthis._parent.toDirty();\n\t\t} else if (isChangedUploaded) {\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\n\t\treturn this;\n\t}\n\n\ttoObject(): EShapeTextLike {\n\t\treturn {\n\t\t\tvalue: this._value,\n\t\t\tcolor: this._color,\n\t\t\talpha: this._alpha,\n\t\t\tfamily: this._family,\n\t\t\tsize: this._size,\n\t\t\tweight: this._weight,\n\t\t\talign: this.align.toObject(),\n\t\t\toffset: this.offset.toObject(),\n\t\t\tstyle: this._style,\n\t\t\toutline: this.outline.toObject(),\n\t\t\tdirection: this._direction,\n\t\t\tspacing: this.spacing.toObject(),\n\t\t\tpadding: this.padding.toObject(),\n\t\t\tclipping: this._clipping,\n\t\t\tfitting: this._fitting\n\t\t};\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): number {\n\t\tconst valueId = manager.addResource(this._value);\n\t\tconst familyId = manager.addResource(this._family);\n\t\tconst alignId = this.align.serialize(manager);\n\t\tconst offsetId = this.offset.serialize(manager);\n\t\tconst outlineId = this.outline.serialize(manager);\n\t\tconst spacingId = this.spacing.serialize(manager);\n\t\tconst paddingId = this.padding.serialize(manager);\n\t\tconst clipping = this._clipping ? 1 : 0;\n\t\tconst fitting = this._fitting ? 1 : 0;\n\t\tconst serialized =\n\t\t\t`[${valueId},${this._color},${this._alpha},${familyId},${this._size},` +\n\t\t\t`${this._weight},${alignId},${offsetId},${this._style},${outlineId},` +\n\t\t\t`${spacingId},${this._direction},${paddingId},${clipping},${fitting}]`;\n\t\treturn manager.addResource(serialized);\n\t}\n\n\tdeserialize(target: number, manager: EShapeResourceManagerDeserialization): void {\n\t\tconst resources = manager.resources;\n\t\tif (0 <= target && target < resources.length) {\n\t\t\tlet parsed = manager.getText(target);\n\t\t\tif (parsed == null) {\n\t\t\t\tparsed = JSON.parse(resources[target]) as DDiagramSerializedText;\n\t\t\t\tmanager.setText(target, parsed);\n\t\t\t}\n\t\t\tthis.set(\n\t\t\t\tresources[parsed[0]] || \"\",\n\t\t\t\tparsed[1],\n\t\t\t\tparsed[2],\n\t\t\t\tresources[parsed[3]] || \"auto\",\n\t\t\t\tparsed[4],\n\t\t\t\tparsed[5],\n\t\t\t\tparsed[8],\n\t\t\t\tparsed[11],\n\t\t\t\t!!parsed[13],\n\t\t\t\t!!parsed[14]\n\t\t\t);\n\t\t\tthis.align.deserialize(parsed[6], manager);\n\t\t\tthis.offset.deserialize(parsed[7], manager);\n\t\t\tthis.outline.deserialize(parsed[9], manager);\n\t\t\tthis.spacing.deserialize(parsed[10], manager);\n\t\t\tthis.padding.deserialize(parsed[12], manager);\n\t\t}\n\t}\n}\n"]}
@@ -0,0 +1,13 @@
1
+ /*
2
+ * Copyright (C) 2019 Toshiba Corporation
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ export var Character = {
6
+ ASCII: "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",
7
+ SPACE: " ",
8
+ TAB: "\t",
9
+ SOFT_TAB: " ",
10
+ DOTS: "...",
11
+ NEW_LINE: "\n"
12
+ };
13
+ //# sourceMappingURL=character.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"character.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/character.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,IAAM,SAAS,GAAG;IACxB,KAAK,EAAE,kGAAkG;IACzG,KAAK,EAAE,GAAG;IACV,GAAG,EAAE,IAAI;IACT,QAAQ,EAAE,MAAM;IAChB,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,IAAI;CACL,CAAC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const Character = {\n\tASCII: \"!\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\",\n\tSPACE: \" \",\n\tTAB: \"\\t\",\n\tSOFT_TAB: \" \",\n\tDOTS: \"...\",\n\tNEW_LINE: \"\\n\"\n} as const;\n"]}
@@ -6,7 +6,7 @@ import { DynamicFontAtlasCharacterOrigin } from "./dynamic-font-atlas-chaaracter
6
6
  var DynamicFontAtlasCharacter = /** @class */ (function () {
7
7
  function DynamicFontAtlasCharacter(type, character, x, y, width, height, advance) {
8
8
  this.ref = 1;
9
- this.life = 10;
9
+ this.life = DynamicFontAtlasCharacter.LIFE;
10
10
  this.character = character;
11
11
  this.x = x;
12
12
  this.y = y;
@@ -16,6 +16,7 @@ var DynamicFontAtlasCharacter = /** @class */ (function () {
16
16
  this.origin = new DynamicFontAtlasCharacterOrigin(0, 0);
17
17
  this.type = type;
18
18
  }
19
+ DynamicFontAtlasCharacter.LIFE = 10;
19
20
  return DynamicFontAtlasCharacter;
20
21
  }());
21
22
  export { DynamicFontAtlasCharacter };
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-font-atlas-character.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/dynamic-font-atlas-character.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;AAGzF;IAYC,mCACC,IAAmC,EACnC,SAAiB,EACjB,CAAS,EACT,CAAS,EACT,KAAa,EACb,MAAc,EACd,OAAe;QAEf,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IACF,gCAAC;AAAD,CAAC,AAhCD,IAgCC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DynamicFontAtlasCharacterOrigin } from \"./dynamic-font-atlas-chaaracter-origin\";\nimport { DynamicFontAtlasCharacterType } from \"./dynamic-font-atlas-character-type\";\n\nexport class DynamicFontAtlasCharacter {\n\tref: number;\n\tlife: number;\n\tcharacter: string;\n\tx: number;\n\ty: number;\n\twidth: number;\n\theight: number;\n\tadvance: number;\n\torigin: DynamicFontAtlasCharacterOrigin;\n\ttype: DynamicFontAtlasCharacterType;\n\n\tconstructor(\n\t\ttype: DynamicFontAtlasCharacterType,\n\t\tcharacter: string,\n\t\tx: number,\n\t\ty: number,\n\t\twidth: number,\n\t\theight: number,\n\t\tadvance: number\n\t) {\n\t\tthis.ref = 1;\n\t\tthis.life = 10;\n\t\tthis.character = character;\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\tthis.advance = advance;\n\t\tthis.origin = new DynamicFontAtlasCharacterOrigin(0, 0);\n\t\tthis.type = type;\n\t}\n}\n"]}
1
+ {"version":3,"file":"dynamic-font-atlas-character.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/dynamic-font-atlas-character.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;AAGzF;IAcC,mCACC,IAAmC,EACnC,SAAiB,EACjB,CAAS,EACT,CAAS,EACT,KAAa,EACb,MAAc,EACd,OAAe;QAEf,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAhCM,8BAAI,GAAG,EAAE,CAAC;IAiClB,gCAAC;CAAA,AAlCD,IAkCC;SAlCY,yBAAyB","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DynamicFontAtlasCharacterOrigin } from \"./dynamic-font-atlas-chaaracter-origin\";\nimport { DynamicFontAtlasCharacterType } from \"./dynamic-font-atlas-character-type\";\n\nexport class DynamicFontAtlasCharacter {\n\tstatic LIFE = 10;\n\n\tref: number;\n\tlife: number;\n\tcharacter: string;\n\tx: number;\n\ty: number;\n\twidth: number;\n\theight: number;\n\tadvance: number;\n\torigin: DynamicFontAtlasCharacterOrigin;\n\ttype: DynamicFontAtlasCharacterType;\n\n\tconstructor(\n\t\ttype: DynamicFontAtlasCharacterType,\n\t\tcharacter: string,\n\t\tx: number,\n\t\ty: number,\n\t\twidth: number,\n\t\theight: number,\n\t\tadvance: number\n\t) {\n\t\tthis.ref = 1;\n\t\tthis.life = DynamicFontAtlasCharacter.LIFE;\n\t\tthis.character = character;\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\tthis.advance = advance;\n\t\tthis.origin = new DynamicFontAtlasCharacterOrigin(0, 0);\n\t\tthis.type = type;\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-font-atlas-characters.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/dynamic-font-atlas-characters.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DynamicFontAtlasCharacter } from \"./dynamic-font-atlas-character\";\n\nexport type DynamicFontAtlasCharacters = Record<string, DynamicFontAtlasCharacter>;\n"]}
1
+ {"version":3,"file":"dynamic-font-atlas-characters.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/dynamic-font-atlas-characters.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DynamicFontAtlasCharacter } from \"./dynamic-font-atlas-character\";\n\nexport type DynamicFontAtlasCharacters = Map<string, DynamicFontAtlasCharacter>;\n"]}
@@ -3,11 +3,10 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { MIPMAP_MODES, SCALE_MODES, Texture } from "pixi.js";
6
- import { ASCII_CHARACTERS } from "./ascii";
6
+ import { Character } from "./character";
7
7
  import { DynamicFontAtlasCharacter } from "./dynamic-font-atlas-character";
8
8
  import { DynamicFontAtlasCharacterType } from "./dynamic-font-atlas-character-type";
9
9
  import { DynamicFontAtlasFont } from "./dynamic-font-atlas-font";
10
- import { UtilCharacterIterator } from "./util-character-iterator";
11
10
  import { UtilFont } from "./util-font";
12
11
  var DynamicFontAtlas = /** @class */ (function () {
13
12
  function DynamicFontAtlas(fontId, fontSize, fontColor, resolution) {
@@ -17,26 +16,26 @@ var DynamicFontAtlas = /** @class */ (function () {
17
16
  var padding = this.toPadding(fontSize);
18
17
  this._padding = padding;
19
18
  this._font = new DynamicFontAtlasFont(fontId, fontSize, fontColor, padding);
20
- this._characters = {};
21
- this._length = 0;
22
19
  this._unrefCount = 0;
23
20
  this._width = 1;
24
21
  this._height = 1;
25
- this._revision = 0;
26
22
  this._revisionUpdated = 0;
27
23
  this._texture = Texture.from(this._canvas, {
28
24
  mipmap: MIPMAP_MODES.OFF,
29
25
  resolution: resolution,
30
26
  scaleMode: SCALE_MODES.NEAREST
31
27
  });
32
- var characters = this._characters;
33
- this.add_(" ", " ", characters, DynamicFontAtlasCharacterType.SPACE_R);
34
- this.add_("\t", " ", characters, DynamicFontAtlasCharacterType.SPACE_R);
35
- this.add_("...", "...", characters, DynamicFontAtlasCharacterType.LETTER_RNB);
36
- for (var i = 0, imax = ASCII_CHARACTERS.length; i < imax; ++i) {
37
- var char = ASCII_CHARACTERS[i];
38
- this.add_(char, char, characters, DynamicFontAtlasCharacterType.LETTER_RNB);
28
+ var characters = new Map();
29
+ characters.set(Character.SPACE, this.newChar(Character.SPACE, DynamicFontAtlasCharacterType.SPACE_R));
30
+ characters.set(Character.TAB, this.newChar(Character.SOFT_TAB, DynamicFontAtlasCharacterType.SPACE_R));
31
+ characters.set(Character.DOTS, this.newChar(Character.DOTS, DynamicFontAtlasCharacterType.LETTER_RNB));
32
+ for (var i = 0, imax = Character.ASCII.length; i < imax; ++i) {
33
+ var ac = Character.ASCII[i];
34
+ characters.set(ac, this.newChar(ac, DynamicFontAtlasCharacterType.LETTER_RNB));
39
35
  }
36
+ this._characters = characters;
37
+ this._createds = new Map();
38
+ this._revision = 1;
40
39
  }
41
40
  DynamicFontAtlas.prototype.toPadding = function (fontSize) {
42
41
  return Math.max(3, Math.ceil(fontSize * 0.2));
@@ -90,86 +89,106 @@ var DynamicFontAtlas = /** @class */ (function () {
90
89
  enumerable: false,
91
90
  configurable: true
92
91
  });
93
- DynamicFontAtlas.prototype.add_ = function (id, character, characters, type) {
94
- if (!this.isIgnored(character)) {
95
- var data = characters[id];
96
- if (data != null) {
97
- if (!(data.type & DynamicFontAtlasCharacterType.RESERVED)) {
98
- if (data.ref === 0) {
92
+ DynamicFontAtlas.prototype.newChar = function (character, type) {
93
+ var advance = this.getAdvance(character);
94
+ var padding = this._padding;
95
+ var width = Math.ceil(padding + advance + padding);
96
+ var height = this.font.height;
97
+ return new DynamicFontAtlasCharacter(type, character, -width, // Setting X and Y to zeros leads to render the character at the UV coordinate (0, 0).
98
+ -height, width, height, advance);
99
+ };
100
+ DynamicFontAtlas.prototype.add = function (characters, type) {
101
+ var cs = this._characters;
102
+ var cds = this._createds;
103
+ for (var i = 0, imax = characters.length; i < imax;) {
104
+ if (characters.charCodeAt(i) <= 0xff) {
105
+ // Ignore ASCII characters
106
+ i += 1;
107
+ continue;
108
+ }
109
+ var j = i + 1;
110
+ for (; j < imax; ++j) {
111
+ var cc = characters.charCodeAt(j);
112
+ if ((0xdc00 <= cc && cc <= 0xdfff) || (0xfe00 <= cc && cc <= 0xfe0f)) {
113
+ // Low surrogate
114
+ // Variation selector
115
+ continue;
116
+ }
117
+ break;
118
+ }
119
+ // Increment the reference count or create a new one
120
+ var nac = characters.substring(i, j);
121
+ var c = cs.get(nac);
122
+ if (c != null) {
123
+ if (!(c.type & DynamicFontAtlasCharacterType.RESERVED)) {
124
+ if (c.ref === 0) {
99
125
  this._unrefCount -= 1;
100
126
  }
101
- data.ref += 1;
127
+ c.ref += 1;
102
128
  }
103
129
  }
104
130
  else {
105
- var advance = this.getAdvance(character);
106
- var padding = this._padding;
107
- var width = Math.ceil(padding + advance + padding);
108
- var height = this.font.height;
109
- characters[id] = new DynamicFontAtlasCharacter(type, character, -width, // Setting X and Y to zeros leads to render the letter at the UV coordinate (0, 0).
110
- -height, width, height, advance);
111
- this._length += 1;
131
+ var cd = cds.get(nac);
132
+ if (cd != null) {
133
+ cd.ref = 1;
134
+ cs.set(nac, cd);
135
+ }
136
+ else {
137
+ var newCharacter = this.newChar(nac, type);
138
+ cs.set(nac, newCharacter);
139
+ cds.set(nac, newCharacter);
140
+ }
112
141
  this._revision += 1;
113
142
  }
143
+ // Go to the next
144
+ i = j;
114
145
  }
115
146
  };
116
- DynamicFontAtlas.prototype.isIgnored = function (character) {
117
- switch (character) {
118
- case "\n": // Line feed
119
- return true;
120
- case "\r": // Carriage return
121
- return true;
122
- case "\v": // Vertical tab
123
- return true;
124
- case "\f": // Form feed
125
- return true;
126
- case "\u0085": // Next line
127
- return true;
128
- }
129
- return false;
130
- };
131
- DynamicFontAtlas.prototype.remove_ = function (id, characters) {
132
- var data = characters[id];
133
- if (data != null) {
134
- if (!(data.type & DynamicFontAtlasCharacterType.RESERVED) && 0 < data.ref) {
135
- data.ref -= 1;
136
- if (data.ref === 0) {
147
+ DynamicFontAtlas.prototype.remove = function (characters) {
148
+ var cs = this._characters;
149
+ for (var i = 0, imax = characters.length; i < imax;) {
150
+ if (characters.charCodeAt(i) <= 0xff) {
151
+ // Ignore ASCII characters
152
+ i += 1;
153
+ continue;
154
+ }
155
+ var j = i + 1;
156
+ for (; j < imax; ++j) {
157
+ var cc = characters.charCodeAt(j);
158
+ if ((0xdc00 <= cc && cc <= 0xdfff) || (0xfe00 <= cc && cc <= 0xfe0f)) {
159
+ // Low surrogate
160
+ // Variation selector
161
+ continue;
162
+ }
163
+ break;
164
+ }
165
+ // Decrement the reference count
166
+ var nac = characters.substring(i, j);
167
+ var c = cs.get(nac);
168
+ if (c != null && 0 < c.ref && !(c.type & DynamicFontAtlasCharacterType.RESERVED)) {
169
+ c.ref -= 1;
170
+ if (c.ref === 0) {
137
171
  this._unrefCount += 1;
138
172
  }
139
173
  }
174
+ // Go to the next
175
+ i = j;
140
176
  }
141
177
  };
142
- DynamicFontAtlas.prototype.cleanup_ = function () {
143
- if (this._length >> 1 <= this._unrefCount) {
144
- var characters = this._characters;
145
- for (var character in characters) {
146
- if (characters[character].ref <= 0) {
147
- delete characters[character];
178
+ DynamicFontAtlas.prototype.cleanup = function () {
179
+ var characters = this._characters;
180
+ if (characters.size >> 1 <= this._unrefCount) {
181
+ characters.forEach(function (char, id) {
182
+ if (char.ref <= 0) {
183
+ characters.delete(id);
148
184
  }
149
- }
150
- this._length -= this._unrefCount;
185
+ });
151
186
  this._revision += 1;
152
187
  this._unrefCount = 0;
153
188
  }
154
189
  };
155
- DynamicFontAtlas.prototype.add = function (targets, type) {
156
- if (type === void 0) { type = DynamicFontAtlasCharacterType.LETTER; }
157
- var characters = this._characters;
158
- var iterator = UtilCharacterIterator.from(targets);
159
- while (iterator.hasNext()) {
160
- var character = iterator.next();
161
- this.add_(character, character, characters, type);
162
- }
163
- };
164
- DynamicFontAtlas.prototype.remove = function (targets) {
165
- var characters = this._characters;
166
- var iterator = UtilCharacterIterator.from(targets);
167
- while (iterator.hasNext()) {
168
- this.remove_(iterator.next(), characters);
169
- }
170
- };
171
190
  DynamicFontAtlas.prototype.get = function (id) {
172
- return this._characters[id];
191
+ return this._characters.get(id);
173
192
  };
174
193
  DynamicFontAtlas.prototype.getAdvance = function (target) {
175
194
  var context = this.getContext();
@@ -208,52 +227,50 @@ var DynamicFontAtlas = /** @class */ (function () {
208
227
  return context;
209
228
  };
210
229
  DynamicFontAtlas.prototype.update = function () {
211
- this.cleanup_();
230
+ this.cleanup();
212
231
  if (this._revisionUpdated < this._revision) {
213
232
  this._revisionUpdated = this._revision;
214
233
  var canvas = this._canvas;
215
234
  if (canvas != null) {
216
235
  var font = this._font;
217
- var fontHeight = font.height;
236
+ var fontHeight_1 = font.height;
218
237
  var characters = this._characters;
219
- var width = (this._width = this.toPowerOf2(Math.ceil(Math.sqrt(this._length)) * fontHeight));
220
- var offsetX = this._padding;
221
- var x = 0;
222
- var y = 0;
223
- for (var key in characters) {
224
- var character = characters[key];
225
- if (width <= x + character.width) {
226
- x = 0;
227
- y += fontHeight;
238
+ var width_1 = (this._width = this.toPowerOf2(Math.ceil(Math.sqrt(characters.size)) * fontHeight_1));
239
+ var offsetX_1 = this._padding;
240
+ var x_1 = 0;
241
+ var y_1 = 0;
242
+ characters.forEach(function (character) {
243
+ if (width_1 <= x_1 + character.width) {
244
+ x_1 = 0;
245
+ y_1 += fontHeight_1;
228
246
  }
229
- character.x = x;
230
- character.y = y;
231
- character.origin.x = x + offsetX;
232
- x += character.width;
233
- }
234
- var height = (this._height = y + fontHeight);
247
+ character.x = x_1;
248
+ character.y = y_1;
249
+ character.origin.x = x_1 + offsetX_1;
250
+ x_1 += character.width;
251
+ });
252
+ var height = (this._height = y_1 + fontHeight_1);
235
253
  // Make an input canvas
236
254
  // Here, we need to reset the context because
237
255
  // context settings will be lost when we set the width/height.
238
256
  var baseTexture = this._texture.baseTexture;
239
257
  var resolution = baseTexture.resolution;
240
- var realWidth = Math.ceil(width * resolution);
258
+ var realWidth = Math.ceil(width_1 * resolution);
241
259
  var realHeight = Math.ceil(height * resolution);
242
260
  canvas.width = realWidth;
243
261
  canvas.height = realHeight;
244
- var context = this.getContext();
245
- if (context != null) {
246
- UtilFont.measure(context, font);
247
- var offsetY = Math.round((fontHeight - (font.ascent + font.descent)) * 0.5 + font.ascent);
248
- context.save();
249
- context.scale(resolution, resolution);
250
- context.clearRect(0, 0, width, height);
251
- for (var key in characters) {
252
- var character = characters[key];
253
- character.origin.y = character.y + offsetY;
254
- context.fillText(key, character.origin.x, character.origin.y);
255
- }
256
- context.restore();
262
+ var context_1 = this.getContext();
263
+ if (context_1 != null) {
264
+ UtilFont.measure(context_1, font);
265
+ var offsetY_1 = Math.round((fontHeight_1 - (font.ascent + font.descent)) * 0.5 + font.ascent);
266
+ context_1.save();
267
+ context_1.scale(resolution, resolution);
268
+ context_1.clearRect(0, 0, width_1, height);
269
+ characters.forEach(function (character) {
270
+ character.origin.y = character.y + offsetY_1;
271
+ context_1.fillText(character.character, character.origin.x, character.origin.y);
272
+ });
273
+ context_1.restore();
257
274
  }
258
275
  baseTexture.setRealSize(realWidth, realHeight);
259
276
  return true;
@@ -269,7 +286,7 @@ var DynamicFontAtlas = /** @class */ (function () {
269
286
  };
270
287
  Object.defineProperty(DynamicFontAtlas.prototype, "length", {
271
288
  get: function () {
272
- return this._length;
289
+ return this._characters.size;
273
290
  },
274
291
  enumerable: false,
275
292
  configurable: true
@@ -279,10 +296,9 @@ var DynamicFontAtlas = /** @class */ (function () {
279
296
  if (canvas != null) {
280
297
  this._canvas = null;
281
298
  }
282
- var characters = this._characters;
283
- for (var character in characters) {
284
- delete characters[character];
285
- }
299
+ this._characters.clear();
300
+ this._createds.clear();
301
+ this._unrefCount = 0;
286
302
  };
287
303
  DynamicFontAtlas.prototype.toPowerOf2 = function (size) {
288
304
  var result = 32;