@wcardinal/wcardinal-ui 0.450.0 → 0.451.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 (88) hide show
  1. package/dist/types/wcardinal/ui/d-select-multiple.d.ts +4 -2
  2. package/dist/types/wcardinal/ui/d-select.d.ts +2 -0
  3. package/dist/types/wcardinal/ui/d-table-body-cell-action-menu.d.ts +2 -1
  4. package/dist/types/wcardinal/ui/d-table-body-cell-check.d.ts +1 -1
  5. package/dist/types/wcardinal/ui/d-table-body-cell-color.d.ts +1 -1
  6. package/dist/types/wcardinal/ui/d-table-body-cell-date.d.ts +2 -1
  7. package/dist/types/wcardinal/ui/d-table-body-cell-datetime.d.ts +2 -1
  8. package/dist/types/wcardinal/ui/d-table-body-cell-index.d.ts +2 -1
  9. package/dist/types/wcardinal/ui/d-table-body-cell-input-integer.d.ts +2 -1
  10. package/dist/types/wcardinal/ui/d-table-body-cell-input-real.d.ts +2 -1
  11. package/dist/types/wcardinal/ui/d-table-body-cell-input-text-area.d.ts +2 -1
  12. package/dist/types/wcardinal/ui/d-table-body-cell-input-text.d.ts +2 -1
  13. package/dist/types/wcardinal/ui/d-table-body-cell-input-tree.d.ts +2 -1
  14. package/dist/types/wcardinal/ui/d-table-body-cell-select-dialog.d.ts +2 -1
  15. package/dist/types/wcardinal/ui/d-table-body-cell-select-menu.d.ts +2 -1
  16. package/dist/types/wcardinal/ui/d-table-body-cell-select-multiple.d.ts +2 -1
  17. package/dist/types/wcardinal/ui/d-table-body-cell-select-promise.d.ts +2 -1
  18. package/dist/types/wcardinal/ui/d-table-body-cell-text.d.ts +2 -1
  19. package/dist/types/wcardinal/ui/d-table-body-cell-time.d.ts +2 -1
  20. package/dist/types/wcardinal/ui/d-table-body-cell.d.ts +1 -1
  21. package/dist/types/wcardinal/ui/d-table-body-row.d.ts +1 -1
  22. package/dist/types/wcardinal/ui/d-table-column-selecting.d.ts +1 -1
  23. package/dist/types/wcardinal/ui/util/dynamic-atlas.d.ts +1 -0
  24. package/dist/wcardinal/ui/d-select-multiple.js +17 -11
  25. package/dist/wcardinal/ui/d-select-multiple.js.map +1 -1
  26. package/dist/wcardinal/ui/d-select.js +18 -12
  27. package/dist/wcardinal/ui/d-select.js.map +1 -1
  28. package/dist/wcardinal/ui/d-table-body-cell-action-menu.js +4 -2
  29. package/dist/wcardinal/ui/d-table-body-cell-action-menu.js.map +1 -1
  30. package/dist/wcardinal/ui/d-table-body-cell-check.js +1 -1
  31. package/dist/wcardinal/ui/d-table-body-cell-check.js.map +1 -1
  32. package/dist/wcardinal/ui/d-table-body-cell-color.js +1 -1
  33. package/dist/wcardinal/ui/d-table-body-cell-color.js.map +1 -1
  34. package/dist/wcardinal/ui/d-table-body-cell-date.js +4 -7
  35. package/dist/wcardinal/ui/d-table-body-cell-date.js.map +1 -1
  36. package/dist/wcardinal/ui/d-table-body-cell-datetime.js +4 -7
  37. package/dist/wcardinal/ui/d-table-body-cell-datetime.js.map +1 -1
  38. package/dist/wcardinal/ui/d-table-body-cell-index.js +4 -2
  39. package/dist/wcardinal/ui/d-table-body-cell-index.js.map +1 -1
  40. package/dist/wcardinal/ui/d-table-body-cell-input-integer.js +4 -2
  41. package/dist/wcardinal/ui/d-table-body-cell-input-integer.js.map +1 -1
  42. package/dist/wcardinal/ui/d-table-body-cell-input-real.js +4 -2
  43. package/dist/wcardinal/ui/d-table-body-cell-input-real.js.map +1 -1
  44. package/dist/wcardinal/ui/d-table-body-cell-input-text-area.js +4 -2
  45. package/dist/wcardinal/ui/d-table-body-cell-input-text-area.js.map +1 -1
  46. package/dist/wcardinal/ui/d-table-body-cell-input-text.js +4 -2
  47. package/dist/wcardinal/ui/d-table-body-cell-input-text.js.map +1 -1
  48. package/dist/wcardinal/ui/d-table-body-cell-input-tree.js +4 -2
  49. package/dist/wcardinal/ui/d-table-body-cell-input-tree.js.map +1 -1
  50. package/dist/wcardinal/ui/d-table-body-cell-select-dialog.js +5 -8
  51. package/dist/wcardinal/ui/d-table-body-cell-select-dialog.js.map +1 -1
  52. package/dist/wcardinal/ui/d-table-body-cell-select-menu.js +4 -2
  53. package/dist/wcardinal/ui/d-table-body-cell-select-menu.js.map +1 -1
  54. package/dist/wcardinal/ui/d-table-body-cell-select-multiple.js +4 -2
  55. package/dist/wcardinal/ui/d-table-body-cell-select-multiple.js.map +1 -1
  56. package/dist/wcardinal/ui/d-table-body-cell-select-promise.js +4 -7
  57. package/dist/wcardinal/ui/d-table-body-cell-select-promise.js.map +1 -1
  58. package/dist/wcardinal/ui/d-table-body-cell-text.js +4 -2
  59. package/dist/wcardinal/ui/d-table-body-cell-text.js.map +1 -1
  60. package/dist/wcardinal/ui/d-table-body-cell-time.js +4 -7
  61. package/dist/wcardinal/ui/d-table-body-cell-time.js.map +1 -1
  62. package/dist/wcardinal/ui/d-table-body-cell.js.map +1 -1
  63. package/dist/wcardinal/ui/d-table-body-row.js +3 -3
  64. package/dist/wcardinal/ui/d-table-body-row.js.map +1 -1
  65. package/dist/wcardinal/ui/d-table-body.js +2 -2
  66. package/dist/wcardinal/ui/d-table-body.js.map +1 -1
  67. package/dist/wcardinal/ui/d-table-column-selecting.js.map +1 -1
  68. package/dist/wcardinal/ui/util/dynamic-atlas.js +3 -0
  69. package/dist/wcardinal/ui/util/dynamic-atlas.js.map +1 -1
  70. package/dist/wcardinal/ui/util/dynamic-sdf-font-atlases.js +6 -1
  71. package/dist/wcardinal/ui/util/dynamic-sdf-font-atlases.js.map +1 -1
  72. package/dist/wcardinal-ui-theme-dark-en-us.js +1 -1
  73. package/dist/wcardinal-ui-theme-dark-en-us.min.js +1 -1
  74. package/dist/wcardinal-ui-theme-dark-ja-jp.js +1 -1
  75. package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +1 -1
  76. package/dist/wcardinal-ui-theme-dark.js +1 -1
  77. package/dist/wcardinal-ui-theme-dark.min.js +1 -1
  78. package/dist/wcardinal-ui-theme-white-en-us.js +1 -1
  79. package/dist/wcardinal-ui-theme-white-en-us.min.js +1 -1
  80. package/dist/wcardinal-ui-theme-white-ja-jp.js +1 -1
  81. package/dist/wcardinal-ui-theme-white-ja-jp.min.js +1 -1
  82. package/dist/wcardinal-ui-theme-white.js +1 -1
  83. package/dist/wcardinal-ui-theme-white.min.js +1 -1
  84. package/dist/wcardinal-ui.cjs.js +113 -88
  85. package/dist/wcardinal-ui.js +113 -88
  86. package/dist/wcardinal-ui.min.js +2 -2
  87. package/dist/wcardinal-ui.min.js.map +1 -1
  88. package/package.json +1 -1
@@ -137,6 +137,9 @@ var DynamicAtlas = /** @class */ (function () {
137
137
  }
138
138
  return null;
139
139
  };
140
+ DynamicAtlas.prototype.contains = function (id) {
141
+ return id in this._idToDatum;
142
+ };
140
143
  DynamicAtlas.prototype.set = function (id, item) {
141
144
  var result = this._idToDatum[id];
142
145
  item.ref += 1;
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-atlas.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/dynamic-atlas.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseTexture, MIPMAP_MODES, Texture } from \"pixi.js\";\nimport { DynamicAtlasItem } from \"./dynamic-atlas-item\";\nimport { DynamicAtlasItemEmpty } from \"./dynamic-atlas-item-empty\";\nimport { DynamicAtlasItemWhite } from \"./dynamic-atlas-item-white\";\n\nconst MAXIMUM_TEXTURE_SIZE = 4096;\n\nexport class DynamicAtlas {\n\tprotected static INSTANCE: DynamicAtlas | null;\n\n\tprotected _canvas: HTMLCanvasElement;\n\tprotected _sortedData: DynamicAtlasItem[];\n\tprotected _idToDatum: Record<string, DynamicAtlasItem>;\n\tprotected _baseTexture: BaseTexture;\n\tprotected _isDirty: boolean;\n\tprotected _predefined: Record<string, DynamicAtlasItem>;\n\n\tconstructor(resolution: number) {\n\t\tconst canvas = (this._canvas = document.createElement(\"canvas\"));\n\t\tcanvas.width = canvas.height = 256;\n\n\t\tconst baseTexture = BaseTexture.from(canvas, {\n\t\t\tmipmap: MIPMAP_MODES.OFF,\n\t\t\tresolution\n\t\t});\n\t\tthis._baseTexture = baseTexture;\n\n\t\tthis._idToDatum = {};\n\t\tthis._sortedData = [];\n\t\tthis._predefined = {\n\t\t\tempty: new DynamicAtlasItemEmpty(\"empty\", 10, 10, 0, baseTexture),\n\t\t\twhite: new DynamicAtlasItemWhite(\"white\", 10, 10, 0, baseTexture)\n\t\t};\n\n\t\tthis._isDirty = true;\n\t}\n\n\tupdateFrames(width: number, data: DynamicAtlasItem[]): number {\n\t\tconst padding = 4;\n\t\tlet x = padding;\n\t\tlet y = padding;\n\t\tlet maxRowHeight = 0;\n\t\tfor (let i = 0, imax = data.length; i < imax; ++i) {\n\t\t\tconst datum = data[i];\n\t\t\tif (width < x + datum.frame.width + padding) {\n\t\t\t\tx = padding;\n\t\t\t\ty += maxRowHeight + padding;\n\t\t\t\tmaxRowHeight = 0;\n\t\t\t}\n\t\t\tdatum.frame.x = x | 0;\n\t\t\tdatum.frame.y = y | 0;\n\t\t\tx += datum.frame.width + padding;\n\t\t\tmaxRowHeight = Math.max(maxRowHeight, datum.frame.height);\n\t\t}\n\n\t\tconst minHeight = y + maxRowHeight + padding;\n\t\tlet result = 256;\n\t\twhile (result < minHeight) {\n\t\t\tresult <<= 1;\n\t\t}\n\t\treturn Math.min(MAXIMUM_TEXTURE_SIZE, result);\n\t}\n\n\trenderFrames(width: number, height: number, data: DynamicAtlasItem[]): void {\n\t\tconst canvas = this._canvas;\n\t\tcanvas.width = width;\n\t\tcanvas.height = height;\n\t\tconst context = canvas.getContext(\"2d\");\n\t\tif (context != null) {\n\t\t\tfor (let i = 0, imax = data.length; i < imax; ++i) {\n\t\t\t\tconst datum = data[i];\n\t\t\t\tdatum.render(context);\n\t\t\t}\n\t\t}\n\t}\n\n\tapplyFrames(data: DynamicAtlasItem[]): void {\n\t\tfor (let i = 0, imax = data.length; i < imax; ++i) {\n\t\t\tconst datum = data[i];\n\t\t\tdatum.applyFrame();\n\t\t}\n\t}\n\n\tcalcCanvasWidth(data: DynamicAtlasItem[]): number {\n\t\tlet result = 512;\n\t\tfor (let i = data.length - 1; 0 <= i; --i) {\n\t\t\tconst datum = data[i];\n\t\t\tconst size = Math.max(datum.frame.width, datum.frame.height);\n\t\t\twhile (result < size) {\n\t\t\t\tresult <<= 1;\n\t\t\t}\n\t\t}\n\t\treturn Math.min(MAXIMUM_TEXTURE_SIZE, result << 1);\n\t}\n\n\tcleanup(data: DynamicAtlasItem[]): void {\n\t\tdata.sort(DynamicAtlas.ITEM_COMPARATOR);\n\t\tfor (let i = data.length - 1; 0 <= i; --i) {\n\t\t\tconst datum = data[i];\n\t\t\tif (0 < datum.ref) {\n\t\t\t\tdata.length = i + 1;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tdata.length = 0;\n\t}\n\n\tbegin(): void {\n\t\tconst data = this._sortedData;\n\t\tfor (let i = 0, imax = data.length; i < imax; ++i) {\n\t\t\tconst datum = data[i];\n\t\t\tdatum.ref = 0;\n\t\t}\n\n\t\tthis._isDirty = false;\n\t}\n\n\tend(): void {\n\t\tconst idToDatum = this._idToDatum;\n\t\tconst data = this._sortedData;\n\t\tfor (let i = 0, imax = data.length; i < imax; ++i) {\n\t\t\tconst datum = data[i];\n\t\t\tif (datum.ref <= 0) {\n\t\t\t\tif (!(datum.id in this._predefined)) {\n\t\t\t\t\tdatum.destroy();\n\t\t\t\t}\n\t\t\t\tdelete idToDatum[datum.id];\n\t\t\t\tthis._isDirty = true;\n\t\t\t}\n\t\t}\n\t}\n\n\trepack(forcibly?: boolean): void {\n\t\tif (forcibly === true || this._isDirty) {\n\t\t\tthis._isDirty = false;\n\t\t\tconst data = this._sortedData;\n\t\t\tthis.cleanup(data);\n\t\t\tconst canvasWidth = this.calcCanvasWidth(data);\n\t\t\tconst canvasHeight = this.updateFrames(canvasWidth, data);\n\t\t\tthis.renderFrames(canvasWidth, canvasHeight, data);\n\t\t\tthis._baseTexture.setRealSize(canvasWidth, canvasHeight);\n\t\t\tthis.applyFrames(data);\n\t\t}\n\t}\n\n\tget(id: string): DynamicAtlasItem | null {\n\t\tconst idToDatum = this._idToDatum;\n\t\tconst datum = idToDatum[id];\n\t\tif (datum != null) {\n\t\t\tdatum.ref += 1;\n\t\t\treturn datum;\n\t\t} else {\n\t\t\tconst predefined = this._predefined[id];\n\t\t\tif (predefined != null) {\n\t\t\t\tthis.set(id, predefined);\n\t\t\t\treturn predefined;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tset(id: string, item: DynamicAtlasItem): DynamicAtlasItem | undefined {\n\t\tconst result = this._idToDatum[id];\n\t\titem.ref += 1;\n\t\tthis._idToDatum[id] = item;\n\t\tthis._sortedData.push(item);\n\t\tthis._isDirty = true;\n\t\treturn result;\n\t}\n\n\ttoDirty(): void {\n\t\tthis._isDirty = true;\n\t}\n\n\tgetDefaultTexture(): Texture {\n\t\treturn this.get(\"white\")!.texture;\n\t}\n\n\tgetBaseTexture(): BaseTexture {\n\t\treturn this._baseTexture;\n\t}\n\n\trelease(id: string): void {\n\t\tconst idToDatum = this._idToDatum;\n\t\tconst datum = idToDatum[id];\n\t\tif (datum != null) {\n\t\t\tdatum.ref -= 1;\n\t\t\tif (datum.ref <= 0) {\n\t\t\t\tif (!(datum.id in this._predefined)) {\n\t\t\t\t\tdatum.destroy();\n\t\t\t\t}\n\t\t\t\tdelete idToDatum[id];\n\t\t\t\tthis._isDirty = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tdestroy(): void {\n\t\tconst baseTexture = this._baseTexture;\n\t\tif (baseTexture != null) {\n\t\t\tbaseTexture.destroy();\n\t\t}\n\t}\n\n\tstatic ITEM_COMPARATOR = (a: DynamicAtlasItem, b: DynamicAtlasItem): number => {\n\t\tif (a.ref <= 0) {\n\t\t\tif (b.ref <= 0) {\n\t\t\t\treturn 0;\n\t\t\t} else {\n\t\t\t\treturn +1;\n\t\t\t}\n\t\t} else {\n\t\t\tif (b.ref <= 0) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\n\t\tif (a.frame.height < b.frame.height) {\n\t\t\treturn -1;\n\t\t} else if (b.frame.height < a.frame.height) {\n\t\t\treturn +1;\n\t\t} else {\n\t\t\treturn a.frame.width - b.frame.width;\n\t\t}\n\t};\n}\n"]}
1
+ {"version":3,"file":"dynamic-atlas.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/dynamic-atlas.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseTexture, MIPMAP_MODES, Texture } from \"pixi.js\";\nimport { DynamicAtlasItem } from \"./dynamic-atlas-item\";\nimport { DynamicAtlasItemEmpty } from \"./dynamic-atlas-item-empty\";\nimport { DynamicAtlasItemWhite } from \"./dynamic-atlas-item-white\";\n\nconst MAXIMUM_TEXTURE_SIZE = 4096;\n\nexport class DynamicAtlas {\n\tprotected static INSTANCE: DynamicAtlas | null;\n\n\tprotected _canvas: HTMLCanvasElement;\n\tprotected _sortedData: DynamicAtlasItem[];\n\tprotected _idToDatum: Record<string, DynamicAtlasItem>;\n\tprotected _baseTexture: BaseTexture;\n\tprotected _isDirty: boolean;\n\tprotected _predefined: Record<string, DynamicAtlasItem>;\n\n\tconstructor(resolution: number) {\n\t\tconst canvas = (this._canvas = document.createElement(\"canvas\"));\n\t\tcanvas.width = canvas.height = 256;\n\n\t\tconst baseTexture = BaseTexture.from(canvas, {\n\t\t\tmipmap: MIPMAP_MODES.OFF,\n\t\t\tresolution\n\t\t});\n\t\tthis._baseTexture = baseTexture;\n\n\t\tthis._idToDatum = {};\n\t\tthis._sortedData = [];\n\t\tthis._predefined = {\n\t\t\tempty: new DynamicAtlasItemEmpty(\"empty\", 10, 10, 0, baseTexture),\n\t\t\twhite: new DynamicAtlasItemWhite(\"white\", 10, 10, 0, baseTexture)\n\t\t};\n\n\t\tthis._isDirty = true;\n\t}\n\n\tupdateFrames(width: number, data: DynamicAtlasItem[]): number {\n\t\tconst padding = 4;\n\t\tlet x = padding;\n\t\tlet y = padding;\n\t\tlet maxRowHeight = 0;\n\t\tfor (let i = 0, imax = data.length; i < imax; ++i) {\n\t\t\tconst datum = data[i];\n\t\t\tif (width < x + datum.frame.width + padding) {\n\t\t\t\tx = padding;\n\t\t\t\ty += maxRowHeight + padding;\n\t\t\t\tmaxRowHeight = 0;\n\t\t\t}\n\t\t\tdatum.frame.x = x | 0;\n\t\t\tdatum.frame.y = y | 0;\n\t\t\tx += datum.frame.width + padding;\n\t\t\tmaxRowHeight = Math.max(maxRowHeight, datum.frame.height);\n\t\t}\n\n\t\tconst minHeight = y + maxRowHeight + padding;\n\t\tlet result = 256;\n\t\twhile (result < minHeight) {\n\t\t\tresult <<= 1;\n\t\t}\n\t\treturn Math.min(MAXIMUM_TEXTURE_SIZE, result);\n\t}\n\n\trenderFrames(width: number, height: number, data: DynamicAtlasItem[]): void {\n\t\tconst canvas = this._canvas;\n\t\tcanvas.width = width;\n\t\tcanvas.height = height;\n\t\tconst context = canvas.getContext(\"2d\");\n\t\tif (context != null) {\n\t\t\tfor (let i = 0, imax = data.length; i < imax; ++i) {\n\t\t\t\tconst datum = data[i];\n\t\t\t\tdatum.render(context);\n\t\t\t}\n\t\t}\n\t}\n\n\tapplyFrames(data: DynamicAtlasItem[]): void {\n\t\tfor (let i = 0, imax = data.length; i < imax; ++i) {\n\t\t\tconst datum = data[i];\n\t\t\tdatum.applyFrame();\n\t\t}\n\t}\n\n\tcalcCanvasWidth(data: DynamicAtlasItem[]): number {\n\t\tlet result = 512;\n\t\tfor (let i = data.length - 1; 0 <= i; --i) {\n\t\t\tconst datum = data[i];\n\t\t\tconst size = Math.max(datum.frame.width, datum.frame.height);\n\t\t\twhile (result < size) {\n\t\t\t\tresult <<= 1;\n\t\t\t}\n\t\t}\n\t\treturn Math.min(MAXIMUM_TEXTURE_SIZE, result << 1);\n\t}\n\n\tcleanup(data: DynamicAtlasItem[]): void {\n\t\tdata.sort(DynamicAtlas.ITEM_COMPARATOR);\n\t\tfor (let i = data.length - 1; 0 <= i; --i) {\n\t\t\tconst datum = data[i];\n\t\t\tif (0 < datum.ref) {\n\t\t\t\tdata.length = i + 1;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tdata.length = 0;\n\t}\n\n\tbegin(): void {\n\t\tconst data = this._sortedData;\n\t\tfor (let i = 0, imax = data.length; i < imax; ++i) {\n\t\t\tconst datum = data[i];\n\t\t\tdatum.ref = 0;\n\t\t}\n\n\t\tthis._isDirty = false;\n\t}\n\n\tend(): void {\n\t\tconst idToDatum = this._idToDatum;\n\t\tconst data = this._sortedData;\n\t\tfor (let i = 0, imax = data.length; i < imax; ++i) {\n\t\t\tconst datum = data[i];\n\t\t\tif (datum.ref <= 0) {\n\t\t\t\tif (!(datum.id in this._predefined)) {\n\t\t\t\t\tdatum.destroy();\n\t\t\t\t}\n\t\t\t\tdelete idToDatum[datum.id];\n\t\t\t\tthis._isDirty = true;\n\t\t\t}\n\t\t}\n\t}\n\n\trepack(forcibly?: boolean): void {\n\t\tif (forcibly === true || this._isDirty) {\n\t\t\tthis._isDirty = false;\n\t\t\tconst data = this._sortedData;\n\t\t\tthis.cleanup(data);\n\t\t\tconst canvasWidth = this.calcCanvasWidth(data);\n\t\t\tconst canvasHeight = this.updateFrames(canvasWidth, data);\n\t\t\tthis.renderFrames(canvasWidth, canvasHeight, data);\n\t\t\tthis._baseTexture.setRealSize(canvasWidth, canvasHeight);\n\t\t\tthis.applyFrames(data);\n\t\t}\n\t}\n\n\tget(id: string): DynamicAtlasItem | null {\n\t\tconst idToDatum = this._idToDatum;\n\t\tconst datum = idToDatum[id];\n\t\tif (datum != null) {\n\t\t\tdatum.ref += 1;\n\t\t\treturn datum;\n\t\t} else {\n\t\t\tconst predefined = this._predefined[id];\n\t\t\tif (predefined != null) {\n\t\t\t\tthis.set(id, predefined);\n\t\t\t\treturn predefined;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tcontains(id: string): boolean {\n\t\treturn id in this._idToDatum;\n\t}\n\n\tset(id: string, item: DynamicAtlasItem): DynamicAtlasItem | undefined {\n\t\tconst result = this._idToDatum[id];\n\t\titem.ref += 1;\n\t\tthis._idToDatum[id] = item;\n\t\tthis._sortedData.push(item);\n\t\tthis._isDirty = true;\n\t\treturn result;\n\t}\n\n\ttoDirty(): void {\n\t\tthis._isDirty = true;\n\t}\n\n\tgetDefaultTexture(): Texture {\n\t\treturn this.get(\"white\")!.texture;\n\t}\n\n\tgetBaseTexture(): BaseTexture {\n\t\treturn this._baseTexture;\n\t}\n\n\trelease(id: string): void {\n\t\tconst idToDatum = this._idToDatum;\n\t\tconst datum = idToDatum[id];\n\t\tif (datum != null) {\n\t\t\tdatum.ref -= 1;\n\t\t\tif (datum.ref <= 0) {\n\t\t\t\tif (!(datum.id in this._predefined)) {\n\t\t\t\t\tdatum.destroy();\n\t\t\t\t}\n\t\t\t\tdelete idToDatum[id];\n\t\t\t\tthis._isDirty = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tdestroy(): void {\n\t\tconst baseTexture = this._baseTexture;\n\t\tif (baseTexture != null) {\n\t\t\tbaseTexture.destroy();\n\t\t}\n\t}\n\n\tstatic ITEM_COMPARATOR = (a: DynamicAtlasItem, b: DynamicAtlasItem): number => {\n\t\tif (a.ref <= 0) {\n\t\t\tif (b.ref <= 0) {\n\t\t\t\treturn 0;\n\t\t\t} else {\n\t\t\t\treturn +1;\n\t\t\t}\n\t\t} else {\n\t\t\tif (b.ref <= 0) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\n\t\tif (a.frame.height < b.frame.height) {\n\t\t\treturn -1;\n\t\t} else if (b.frame.height < a.frame.height) {\n\t\t\treturn +1;\n\t\t} else {\n\t\t\treturn a.frame.width - b.frame.width;\n\t\t}\n\t};\n}\n"]}
@@ -45,8 +45,8 @@ var DynamicSDFFontAtlases = /** @class */ (function () {
45
45
  DynamicSDFFontAtlases.prototype.update = function (baseAtlas) {
46
46
  var baseTexture = baseAtlas.getBaseTexture();
47
47
  this._atlases.forEach(function (atlas) {
48
+ var atlasId = atlas.id;
48
49
  if (atlas.update()) {
49
- var atlasId = atlas.id;
50
50
  var item = baseAtlas.get(atlasId);
51
51
  if (item != null) {
52
52
  var width = atlas.width;
@@ -62,6 +62,11 @@ var DynamicSDFFontAtlases = /** @class */ (function () {
62
62
  baseAtlas.set(atlasId, new DynamicAtlasItemFontAtlas(atlas, baseTexture));
63
63
  }
64
64
  }
65
+ else {
66
+ if (!baseAtlas.contains(atlasId)) {
67
+ baseAtlas.set(atlasId, new DynamicAtlasItemFontAtlas(atlas, baseTexture));
68
+ }
69
+ }
65
70
  });
66
71
  };
67
72
  DynamicSDFFontAtlases.prototype.destroy = function () {
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-sdf-font-atlases.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/dynamic-sdf-font-atlases.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DynamicAtlas } from \"./dynamic-atlas\";\nimport { DynamicAtlasItemFontAtlas } from \"./dynamic-atlas-item-font-atlas\";\nimport { DynamicSDFFontAtlas } from \"./dynamic-sdf-font-atlas\";\n\nexport class DynamicSDFFontAtlases {\n\tprotected _atlases: Map<string, DynamicSDFFontAtlas>;\n\n\tconstructor() {\n\t\tthis._atlases = new Map<string, DynamicSDFFontAtlas>();\n\t}\n\n\tbegin(): void {\n\t\tthis._atlases.forEach((atlas) => {\n\t\t\tatlas.begin();\n\t\t});\n\t}\n\n\tend(): void {\n\t\tconst atlases = this._atlases;\n\t\tatlases.forEach((atlas, family) => {\n\t\t\tatlas.end();\n\t\t\tif (atlas.length <= 0) {\n\t\t\t\tatlas.destroy();\n\t\t\t\tatlases.delete(family);\n\t\t\t}\n\t\t});\n\t}\n\n\tadd(family: string, characters: string[], nacharacters: string[]): void {\n\t\tconst atlases = this._atlases;\n\t\tconst atlas = atlases.get(family);\n\t\tif (atlas != null) {\n\t\t\tatlas.add(characters, nacharacters);\n\t\t} else {\n\t\t\tconst newAtlas = new DynamicSDFFontAtlas(family);\n\t\t\tnewAtlas.add(characters, nacharacters);\n\t\t\tatlases.set(family, newAtlas);\n\t\t}\n\t}\n\n\tget(family: string): DynamicSDFFontAtlas | null {\n\t\tconst atlas = this._atlases.get(family);\n\t\tif (atlas != null) {\n\t\t\treturn atlas;\n\t\t}\n\t\treturn null;\n\t}\n\n\tupdate(baseAtlas: DynamicAtlas): void {\n\t\tconst baseTexture = baseAtlas.getBaseTexture();\n\t\tthis._atlases.forEach((atlas) => {\n\t\t\tif (atlas.update()) {\n\t\t\t\tconst atlasId = atlas.id;\n\t\t\t\tconst item = baseAtlas.get(atlasId);\n\t\t\t\tif (item != null) {\n\t\t\t\t\tconst width = atlas.width;\n\t\t\t\t\tconst height = atlas.height;\n\t\t\t\t\tconst resolution = baseTexture.resolution;\n\t\t\t\t\titem.frame.width = width;\n\t\t\t\t\titem.frame.height = height;\n\t\t\t\t\titem.width = width / resolution;\n\t\t\t\t\titem.height = height / resolution;\n\t\t\t\t\tbaseAtlas.toDirty();\n\t\t\t\t} else {\n\t\t\t\t\tbaseAtlas.set(atlasId, new DynamicAtlasItemFontAtlas(atlas, baseTexture));\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tdestroy(): void {\n\t\tconst atlases = this._atlases;\n\t\tatlases.forEach((atlas) => {\n\t\t\tatlas.destroy();\n\t\t});\n\t\tatlases.clear();\n\t}\n}\n"]}
1
+ {"version":3,"file":"dynamic-sdf-font-atlases.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/dynamic-sdf-font-atlases.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DynamicAtlas } from \"./dynamic-atlas\";\nimport { DynamicAtlasItemFontAtlas } from \"./dynamic-atlas-item-font-atlas\";\nimport { DynamicSDFFontAtlas } from \"./dynamic-sdf-font-atlas\";\n\nexport class DynamicSDFFontAtlases {\n\tprotected _atlases: Map<string, DynamicSDFFontAtlas>;\n\n\tconstructor() {\n\t\tthis._atlases = new Map<string, DynamicSDFFontAtlas>();\n\t}\n\n\tbegin(): void {\n\t\tthis._atlases.forEach((atlas) => {\n\t\t\tatlas.begin();\n\t\t});\n\t}\n\n\tend(): void {\n\t\tconst atlases = this._atlases;\n\t\tatlases.forEach((atlas, family) => {\n\t\t\tatlas.end();\n\t\t\tif (atlas.length <= 0) {\n\t\t\t\tatlas.destroy();\n\t\t\t\tatlases.delete(family);\n\t\t\t}\n\t\t});\n\t}\n\n\tadd(family: string, characters: string[], nacharacters: string[]): void {\n\t\tconst atlases = this._atlases;\n\t\tconst atlas = atlases.get(family);\n\t\tif (atlas != null) {\n\t\t\tatlas.add(characters, nacharacters);\n\t\t} else {\n\t\t\tconst newAtlas = new DynamicSDFFontAtlas(family);\n\t\t\tnewAtlas.add(characters, nacharacters);\n\t\t\tatlases.set(family, newAtlas);\n\t\t}\n\t}\n\n\tget(family: string): DynamicSDFFontAtlas | null {\n\t\tconst atlas = this._atlases.get(family);\n\t\tif (atlas != null) {\n\t\t\treturn atlas;\n\t\t}\n\t\treturn null;\n\t}\n\n\tupdate(baseAtlas: DynamicAtlas): void {\n\t\tconst baseTexture = baseAtlas.getBaseTexture();\n\t\tthis._atlases.forEach((atlas) => {\n\t\t\tconst atlasId = atlas.id;\n\t\t\tif (atlas.update()) {\n\t\t\t\tconst item = baseAtlas.get(atlasId);\n\t\t\t\tif (item != null) {\n\t\t\t\t\tconst width = atlas.width;\n\t\t\t\t\tconst height = atlas.height;\n\t\t\t\t\tconst resolution = baseTexture.resolution;\n\t\t\t\t\titem.frame.width = width;\n\t\t\t\t\titem.frame.height = height;\n\t\t\t\t\titem.width = width / resolution;\n\t\t\t\t\titem.height = height / resolution;\n\t\t\t\t\tbaseAtlas.toDirty();\n\t\t\t\t} else {\n\t\t\t\t\tbaseAtlas.set(atlasId, new DynamicAtlasItemFontAtlas(atlas, baseTexture));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!baseAtlas.contains(atlasId)) {\n\t\t\t\t\tbaseAtlas.set(atlasId, new DynamicAtlasItemFontAtlas(atlas, baseTexture));\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tdestroy(): void {\n\t\tconst atlases = this._atlases;\n\t\tatlases.forEach((atlas) => {\n\t\t\tatlas.destroy();\n\t\t});\n\t\tatlases.clear();\n\t}\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.450.0
2
+ Winter Cardinal UI v0.451.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.450.0
2
+ Winter Cardinal UI v0.451.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.450.0
2
+ Winter Cardinal UI v0.451.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.450.0
2
+ Winter Cardinal UI v0.451.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.450.0
2
+ Winter Cardinal UI v0.451.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.450.0
2
+ Winter Cardinal UI v0.451.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.450.0
2
+ Winter Cardinal UI v0.451.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.450.0
2
+ Winter Cardinal UI v0.451.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.450.0
2
+ Winter Cardinal UI v0.451.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.450.0
2
+ Winter Cardinal UI v0.451.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.450.0
2
+ Winter Cardinal UI v0.451.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.450.0
2
+ Winter Cardinal UI v0.451.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5