@wcardinal/wcardinal-ui 0.309.0 → 0.310.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.
- package/README.md +1 -1
- package/dist/types/wcardinal/ui/d-base-state-and-value.d.ts +4 -0
- package/dist/types/wcardinal/ui/d-base-state-matcher.d.ts +1 -0
- package/dist/types/wcardinal/ui/d-base-state-set-blinker-datum-impl.d.ts +5 -0
- package/dist/types/wcardinal/ui/d-base-state-set-blinker-impl.d.ts +8 -0
- package/dist/types/wcardinal/ui/d-base-state-set-blinker.d.ts +3 -0
- package/dist/types/wcardinal/ui/d-base-state-set-impl.d.ts +51 -18
- package/dist/types/wcardinal/ui/d-base-state-set-sub-datum-impl.d.ts +17 -0
- package/dist/types/wcardinal/ui/d-base-state-set-sub-datum.d.ts +6 -0
- package/dist/types/wcardinal/ui/d-base-state-set-sub-impl.d.ts +15 -0
- package/dist/types/wcardinal/ui/d-base-state-set-sub.d.ts +6 -0
- package/dist/types/wcardinal/ui/d-base-state-set-ticker-datum-impl.d.ts +5 -0
- package/dist/types/wcardinal/ui/d-base-state-set-ticker-impl.d.ts +8 -0
- package/dist/types/wcardinal/ui/d-base-state-set-ticker.d.ts +3 -0
- package/dist/types/wcardinal/ui/d-base-state-set.d.ts +38 -8
- package/dist/types/wcardinal/ui/d-base.d.ts +23 -1
- package/dist/types/wcardinal/ui/d-chart-axis-base-guide-container.d.ts +21 -0
- package/dist/types/wcardinal/ui/d-chart-axis-base-options-parser.d.ts +6 -0
- package/dist/types/wcardinal/ui/d-chart-axis-base-options.d.ts +5 -0
- package/dist/types/wcardinal/ui/d-chart-axis-base.d.ts +4 -0
- package/dist/types/wcardinal/ui/d-chart-axis-guide-container.d.ts +14 -0
- package/dist/types/wcardinal/ui/d-chart-axis-guide-simple-shape-impl.d.ts +41 -0
- package/dist/types/wcardinal/ui/d-chart-axis-guide-simple-shape.d.ts +80 -0
- package/dist/types/wcardinal/ui/d-chart-axis-guide-simple.d.ts +32 -0
- package/dist/types/wcardinal/ui/d-chart-axis-guide.d.ts +14 -0
- package/dist/types/wcardinal/ui/d-chart-axis.d.ts +2 -0
- package/dist/types/wcardinal/ui/d-dynamic-text-geometry.d.ts +7 -4
- package/dist/types/wcardinal/ui/d-dynamic-text-measure-result.d.ts +3 -0
- package/dist/types/wcardinal/ui/d-dynamic-text-measure.d.ts +4 -3
- package/dist/types/wcardinal/ui/d-dynamic-text-style.d.ts +16 -1
- package/dist/types/wcardinal/ui/d-dynamic-text.d.ts +7 -6
- package/dist/types/wcardinal/ui/d-links.d.ts +2 -1
- package/dist/types/wcardinal/ui/d-text-base.d.ts +1 -0
- package/dist/types/wcardinal/ui/index.d.ts +18 -0
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-text-base.d.ts +1 -0
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-text-base.d.ts +1 -0
- package/dist/types/wcardinal/ui/util/util-font.d.ts +2 -0
- package/dist/wcardinal/ui/d-base-state-and-value.js +2 -0
- package/dist/wcardinal/ui/d-base-state-and-value.js.map +1 -0
- package/dist/wcardinal/ui/d-base-state-matcher.js +2 -0
- package/dist/wcardinal/ui/d-base-state-matcher.js.map +1 -0
- package/dist/wcardinal/ui/d-base-state-set-blinker-datum-impl.js +17 -0
- package/dist/wcardinal/ui/d-base-state-set-blinker-datum-impl.js.map +1 -0
- package/dist/wcardinal/ui/d-base-state-set-blinker-impl.js +16 -0
- package/dist/wcardinal/ui/d-base-state-set-blinker-impl.js.map +1 -0
- package/dist/wcardinal/ui/d-base-state-set-blinker.js +2 -0
- package/dist/wcardinal/ui/d-base-state-set-blinker.js.map +1 -0
- package/dist/wcardinal/ui/d-base-state-set-impl.js +298 -129
- package/dist/wcardinal/ui/d-base-state-set-impl.js.map +1 -1
- package/dist/wcardinal/ui/d-base-state-set-sub-datum-impl.js +75 -0
- package/dist/wcardinal/ui/d-base-state-set-sub-datum-impl.js.map +1 -0
- package/dist/wcardinal/ui/d-base-state-set-sub-datum.js +2 -0
- package/dist/wcardinal/ui/d-base-state-set-sub-datum.js.map +1 -0
- package/dist/wcardinal/ui/d-base-state-set-sub-impl.js +73 -0
- package/dist/wcardinal/ui/d-base-state-set-sub-impl.js.map +1 -0
- package/dist/wcardinal/ui/d-base-state-set-sub.js +2 -0
- package/dist/wcardinal/ui/d-base-state-set-sub.js.map +1 -0
- package/dist/wcardinal/ui/d-base-state-set-ticker-datum-impl.js +17 -0
- package/dist/wcardinal/ui/d-base-state-set-ticker-datum-impl.js.map +1 -0
- package/dist/wcardinal/ui/d-base-state-set-ticker-impl.js +16 -0
- package/dist/wcardinal/ui/d-base-state-set-ticker-impl.js.map +1 -0
- package/dist/wcardinal/ui/d-base-state-set-ticker.js +2 -0
- package/dist/wcardinal/ui/d-base-state-set-ticker.js.map +1 -0
- package/dist/wcardinal/ui/d-base-state-set.js.map +1 -1
- package/dist/wcardinal/ui/d-base.js +34 -2
- package/dist/wcardinal/ui/d-base.js.map +1 -1
- package/dist/wcardinal/ui/d-chart-axis-base-guide-container.js +75 -0
- package/dist/wcardinal/ui/d-chart-axis-base-guide-container.js.map +1 -0
- package/dist/wcardinal/ui/d-chart-axis-base-options-parser.js +7 -0
- package/dist/wcardinal/ui/d-chart-axis-base-options-parser.js.map +1 -1
- package/dist/wcardinal/ui/d-chart-axis-base-options.js.map +1 -1
- package/dist/wcardinal/ui/d-chart-axis-base.js +23 -1
- package/dist/wcardinal/ui/d-chart-axis-base.js.map +1 -1
- package/dist/wcardinal/ui/d-chart-axis-guide-container.js +2 -0
- package/dist/wcardinal/ui/d-chart-axis-guide-container.js.map +1 -0
- package/dist/wcardinal/ui/d-chart-axis-guide-simple-shape-impl.js +328 -0
- package/dist/wcardinal/ui/d-chart-axis-guide-simple-shape-impl.js.map +1 -0
- package/dist/wcardinal/ui/d-chart-axis-guide-simple-shape.js +2 -0
- package/dist/wcardinal/ui/d-chart-axis-guide-simple-shape.js.map +1 -0
- package/dist/wcardinal/ui/d-chart-axis-guide-simple.js +123 -0
- package/dist/wcardinal/ui/d-chart-axis-guide-simple.js.map +1 -0
- package/dist/wcardinal/ui/d-chart-axis-guide.js +2 -0
- package/dist/wcardinal/ui/d-chart-axis-guide.js.map +1 -0
- package/dist/wcardinal/ui/d-chart-axis.js.map +1 -1
- package/dist/wcardinal/ui/d-dynamic-text-geometry.js +17 -10
- package/dist/wcardinal/ui/d-dynamic-text-geometry.js.map +1 -1
- package/dist/wcardinal/ui/d-dynamic-text-measure-result.js +22 -0
- package/dist/wcardinal/ui/d-dynamic-text-measure-result.js.map +1 -1
- package/dist/wcardinal/ui/d-dynamic-text-measure.js +14 -10
- package/dist/wcardinal/ui/d-dynamic-text-measure.js.map +1 -1
- package/dist/wcardinal/ui/d-dynamic-text-style.js +107 -6
- package/dist/wcardinal/ui/d-dynamic-text-style.js.map +1 -1
- package/dist/wcardinal/ui/d-dynamic-text.js +52 -29
- package/dist/wcardinal/ui/d-dynamic-text.js.map +1 -1
- package/dist/wcardinal/ui/d-links.js +18 -1
- package/dist/wcardinal/ui/d-links.js.map +1 -1
- package/dist/wcardinal/ui/d-text-base.js +6 -3
- package/dist/wcardinal/ui/d-text-base.js.map +1 -1
- package/dist/wcardinal/ui/index.js +18 -0
- package/dist/wcardinal/ui/index.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-state-set-impl-observable.js +2 -2
- package/dist/wcardinal/ui/shape/e-shape-state-set-impl-observable.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-text-base.js +3 -0
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-text-base.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-text-base.js +3 -0
- package/dist/wcardinal/ui/theme/white/d-theme-white-text-base.js.map +1 -1
- package/dist/wcardinal/ui/util/util-font.js +18 -11
- package/dist/wcardinal/ui/util/util-font.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark.js +4 -1
- package/dist/wcardinal-ui-theme-dark.min.js +2 -2
- package/dist/wcardinal-ui-theme-dark.min.js.map +1 -1
- package/dist/wcardinal-ui-theme-white.js +4 -1
- package/dist/wcardinal-ui-theme-white.min.js +2 -2
- package/dist/wcardinal-ui-theme-white.min.js.map +1 -1
- package/dist/wcardinal-ui.cjs.js +1403 -275
- package/dist/wcardinal-ui.js +1397 -275
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-dynamic-text-geometry.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-dynamic-text-geometry.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MeshGeometry } from \"pixi.js\";\nimport { DDynamicTextMeasure } from \"./d-dynamic-text-measure\";\nimport { DDynamicTextStyleWordWrap } from \"./d-dynamic-text-style-word-wrap\";\nimport { DynamicFontAtlas } from \"./util/dynamic-font-atlas\";\nimport { DynamicFontAtlasCharacter } from \"./util/dynamic-font-atlas-character\";\n\nexport interface DDynamicTextGeometryClipping {\n\tenable: boolean;\n\twordWrap: DDynamicTextStyleWordWrap;\n\twidth: number;\n\theight: number;\n\tlineHeight: number;\n}\n\nexport class DDynamicTextGeometry extends MeshGeometry {\n\twidth: number;\n\theight: number;\n\tclipped: boolean;\n\n\tconstructor() {\n\t\tsuper(new Float32Array(64), new Float32Array(64), new Uint16Array(48));\n\t\tthis.width = 0;\n\t\tthis.height = 0;\n\t\tthis.clipped = false;\n\t}\n\n\tupdate(\n\t\ttext: string,\n\t\tatlas: DynamicFontAtlas | null,\n\t\tclipping: DDynamicTextGeometryClipping\n\t): void {\n\t\tconst vertexBuffer = this.getBuffer(\"aVertexPosition\");\n\t\tconst uvBuffer = this.getBuffer(\"aTextureCoord\");\n\t\tconst indexBuffer = this.getIndex();\n\n\t\tconst result = DDynamicTextMeasure.measure(text, atlas, clipping);\n\t\tconst requiredTextSize = Math.ceil(result.count / 8) << 3;\n\t\tconst requiredVertexSize = requiredTextSize << 3;\n\t\tif ((vertexBuffer.data as Float32Array).length < requiredVertexSize) {\n\t\t\tvertexBuffer.data = new Float32Array(requiredVertexSize);\n\t\t\tuvBuffer.data = new Float32Array(requiredVertexSize);\n\t\t}\n\t\tconst requiredIndexSize = requiredTextSize * 6;\n\t\tif ((indexBuffer.data as Uint16Array).length < requiredIndexSize) {\n\t\t\tindexBuffer.data = new Uint16Array(requiredIndexSize);\n\t\t}\n\n\t\tconst vertices = vertexBuffer.data as Float32Array;\n\t\tconst uvs = uvBuffer.data as Float32Array;\n\t\tconst indices = indexBuffer.data as Uint16Array;\n\n\t\tif (atlas != null) {\n\t\t\tconst count = result.count;\n\t\t\tconst characters = result.characters;\n\t\t\tfor (let i = 0; i < count; ++i) {\n\t\t\t\tconst character = characters[i];\n\t\t\t\tconst cx = character.x;\n\t\t\t\tconst cy = character.y;\n\t\t\t\tconst cc = character.character;\n\t\t\t\tconst w = atlas.width;\n\t\t\t\tconst h = atlas.height;\n\t\t\t\tthis.writeCharacter(vertices, uvs, indices, i, cx, cy, cc, w, h);\n\t\t\t}\n\t\t\tfor (let i = count, imax = vertices.length >> 3; i < imax; ++i) {\n\t\t\t\tthis.writeCharacterEmpty(vertices, uvs, indices, i);\n\t\t\t}\n\t\t\tthis.width = result.width;\n\t\t\tthis.height = result.height;\n\t\t\tthis.clipped = result.clipped;\n\t\t} else {\n\t\t\tfor (let i = 0, imax = vertices.length >> 3; i < imax; ++i) {\n\t\t\t\tthis.writeCharacterEmpty(vertices, uvs, indices, i);\n\t\t\t}\n\t\t\tthis.width = 0;\n\t\t\tthis.height = 0;\n\t\t\tthis.clipped = false;\n\t\t}\n\n\t\tvertexBuffer.update();\n\t\tuvBuffer.update();\n\t\tindexBuffer.update();\n\t}\n\n\tprotected writeCharacter(\n\t\tvertices: Float32Array,\n\t\tuvs: Float32Array,\n\t\tindices: Uint16Array,\n\t\tindex: number,\n\t\tx: number,\n\t\ty: number,\n\t\tcharacter: DynamicFontAtlasCharacter,\n\t\twidth: number,\n\t\theight: number\n\t): void {\n\t\tconst cx = character.x;\n\t\tconst cy = character.y;\n\t\tconst cw = character.width;\n\t\tconst ch = character.height;\n\t\tconst cox = character.origin.x;\n\n\t\tconst x0 = x + (cx - cox);\n\t\tconst y0 = y;\n\t\tconst x1 = x0 + cw;\n\t\tconst y1 = y0 + ch;\n\n\t\tconst iv = index << 3;\n\t\tvertices[iv + 0] = x0;\n\t\tvertices[iv + 1] = y0;\n\t\tvertices[iv + 2] = x1;\n\t\tvertices[iv + 3] = y0;\n\t\tvertices[iv + 4] = x1;\n\t\tvertices[iv + 5] = y1;\n\t\tvertices[iv + 6] = x0;\n\t\tvertices[iv + 7] = y1;\n\n\t\tconst u0 = cx / width;\n\t\tconst v0 = cy / height;\n\t\tconst u1 = (cx + cw) / width;\n\t\tconst v1 = (cy + ch) / height;\n\t\tuvs[iv + 0] = u0;\n\t\tuvs[iv + 1] = v0;\n\t\tuvs[iv + 2] = u1;\n\t\tuvs[iv + 3] = v0;\n\t\tuvs[iv + 4] = u1;\n\t\tuvs[iv + 5] = v1;\n\t\tuvs[iv + 6] = u0;\n\t\tuvs[iv + 7] = v1;\n\n\t\tconst ii = index * 6;\n\t\tconst vo = index << 2;\n\t\tindices[ii + 0] = vo + 0;\n\t\tindices[ii + 1] = vo + 1;\n\t\tindices[ii + 2] = vo + 3;\n\t\tindices[ii + 3] = vo + 1;\n\t\tindices[ii + 4] = vo + 2;\n\t\tindices[ii + 5] = vo + 3;\n\t}\n\n\tprotected writeCharacterEmpty(\n\t\tvertices: Float32Array,\n\t\tuvs: Float32Array,\n\t\tindices: Uint16Array,\n\t\tindex: number\n\t): void {\n\t\tconst iv = index << 3;\n\t\tvertices[iv + 0] = 0;\n\t\tvertices[iv + 1] = 0;\n\t\tvertices[iv + 2] = 0;\n\t\tvertices[iv + 3] = 0;\n\t\tvertices[iv + 4] = 0;\n\t\tvertices[iv + 5] = 0;\n\t\tvertices[iv + 6] = 0;\n\t\tvertices[iv + 7] = 0;\n\n\t\tuvs[iv + 0] = 0;\n\t\tuvs[iv + 1] = 0;\n\t\tuvs[iv + 2] = 0;\n\t\tuvs[iv + 3] = 0;\n\t\tuvs[iv + 4] = 0;\n\t\tuvs[iv + 5] = 0;\n\t\tuvs[iv + 6] = 0;\n\t\tuvs[iv + 7] = 0;\n\n\t\tconst ii = index * 6;\n\t\tconst vo = index << 2;\n\t\tindices[ii + 0] = vo + 0;\n\t\tindices[ii + 1] = vo + 1;\n\t\tindices[ii + 2] = vo + 3;\n\t\tindices[ii + 3] = vo + 1;\n\t\tindices[ii + 4] = vo + 2;\n\t\tindices[ii + 5] = vo + 3;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"d-dynamic-text-geometry.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-dynamic-text-geometry.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MeshGeometry } from \"pixi.js\";\nimport { DDynamicTextMeasure } from \"./d-dynamic-text-measure\";\nimport { DDynamicTextStyleWordWrap } from \"./d-dynamic-text-style-word-wrap\";\nimport { DynamicFontAtlas } from \"./util/dynamic-font-atlas\";\nimport { DynamicFontAtlasCharacter } from \"./util/dynamic-font-atlas-character\";\n\nexport interface DDynamicTextGeometryModifier {\n\tclipping: boolean;\n\tfitting: boolean;\n\twordWrap: DDynamicTextStyleWordWrap;\n\twidth: number;\n\theight: number;\n\tlineHeight: number;\n}\n\nexport class DDynamicTextGeometry extends MeshGeometry {\n\twidth: number;\n\theight: number;\n\tscale: number;\n\tscaled: boolean;\n\tclipped: boolean;\n\n\tconstructor() {\n\t\tsuper(new Float32Array(64), new Float32Array(64), new Uint16Array(48));\n\t\tthis.width = 0;\n\t\tthis.height = 0;\n\t\tthis.scale = 1;\n\t\tthis.scaled = false;\n\t\tthis.clipped = false;\n\t}\n\n\tupdate(\n\t\ttext: string,\n\t\tatlas: DynamicFontAtlas | null,\n\t\tmodifier: DDynamicTextGeometryModifier\n\t): void {\n\t\tconst vertexBuffer = this.getBuffer(\"aVertexPosition\");\n\t\tconst uvBuffer = this.getBuffer(\"aTextureCoord\");\n\t\tconst indexBuffer = this.getIndex();\n\n\t\tconst result = DDynamicTextMeasure.measure(text, atlas, modifier);\n\t\tconst requiredTextSize = Math.ceil(result.count / 8) << 3;\n\t\tconst requiredVertexSize = requiredTextSize << 3;\n\t\tif ((vertexBuffer.data as Float32Array).length < requiredVertexSize) {\n\t\t\tvertexBuffer.data = new Float32Array(requiredVertexSize);\n\t\t\tuvBuffer.data = new Float32Array(requiredVertexSize);\n\t\t}\n\t\tconst requiredIndexSize = requiredTextSize * 6;\n\t\tif ((indexBuffer.data as Uint16Array).length < requiredIndexSize) {\n\t\t\tindexBuffer.data = new Uint16Array(requiredIndexSize);\n\t\t}\n\n\t\tconst vertices = vertexBuffer.data as Float32Array;\n\t\tconst uvs = uvBuffer.data as Float32Array;\n\t\tconst indices = indexBuffer.data as Uint16Array;\n\n\t\tif (atlas != null) {\n\t\t\tconst count = result.count;\n\t\t\tconst characters = result.characters;\n\t\t\tconst scale = result.scale;\n\t\t\tfor (let i = 0; i < count; ++i) {\n\t\t\t\tconst character = characters[i];\n\t\t\t\tconst cx = character.x;\n\t\t\t\tconst cy = character.y;\n\t\t\t\tconst cc = character.character;\n\t\t\t\tconst w = atlas.width;\n\t\t\t\tconst h = atlas.height;\n\t\t\t\tthis.writeCharacter(vertices, uvs, indices, i, cx, cy, scale, cc, w, h);\n\t\t\t}\n\t\t\tfor (let i = count, imax = vertices.length >> 3; i < imax; ++i) {\n\t\t\t\tthis.writeCharacterEmpty(vertices, uvs, indices, i);\n\t\t\t}\n\t\t\tthis.width = result.width * scale;\n\t\t\tthis.height = result.height * scale;\n\t\t\tthis.scale = scale;\n\t\t\tthis.scaled = result.scaled;\n\t\t\tthis.clipped = result.clipped;\n\t\t} else {\n\t\t\tfor (let i = 0, imax = vertices.length >> 3; i < imax; ++i) {\n\t\t\t\tthis.writeCharacterEmpty(vertices, uvs, indices, i);\n\t\t\t}\n\t\t\tthis.width = 0;\n\t\t\tthis.height = 0;\n\t\t\tthis.scale = 1;\n\t\t\tthis.scaled = false;\n\t\t\tthis.clipped = false;\n\t\t}\n\n\t\tvertexBuffer.update();\n\t\tuvBuffer.update();\n\t\tindexBuffer.update();\n\t}\n\n\tprotected writeCharacter(\n\t\tvertices: Float32Array,\n\t\tuvs: Float32Array,\n\t\tindices: Uint16Array,\n\t\tindex: number,\n\t\tx: number,\n\t\ty: number,\n\t\tscale: number,\n\t\tcharacter: DynamicFontAtlasCharacter,\n\t\twidth: number,\n\t\theight: number\n\t): void {\n\t\tconst cx = character.x;\n\t\tconst cy = character.y;\n\t\tconst cw = character.width;\n\t\tconst ch = character.height;\n\t\tconst cox = character.origin.x;\n\n\t\tconst x0 = (x + (cx - cox)) * scale;\n\t\tconst y0 = y * scale;\n\t\tconst x1 = x0 + cw * scale;\n\t\tconst y1 = y0 + ch * scale;\n\n\t\tconst iv = index << 3;\n\t\tvertices[iv + 0] = x0;\n\t\tvertices[iv + 1] = y0;\n\t\tvertices[iv + 2] = x1;\n\t\tvertices[iv + 3] = y0;\n\t\tvertices[iv + 4] = x1;\n\t\tvertices[iv + 5] = y1;\n\t\tvertices[iv + 6] = x0;\n\t\tvertices[iv + 7] = y1;\n\n\t\tconst u0 = cx / width;\n\t\tconst v0 = cy / height;\n\t\tconst u1 = (cx + cw) / width;\n\t\tconst v1 = (cy + ch) / height;\n\t\tuvs[iv + 0] = u0;\n\t\tuvs[iv + 1] = v0;\n\t\tuvs[iv + 2] = u1;\n\t\tuvs[iv + 3] = v0;\n\t\tuvs[iv + 4] = u1;\n\t\tuvs[iv + 5] = v1;\n\t\tuvs[iv + 6] = u0;\n\t\tuvs[iv + 7] = v1;\n\n\t\tconst ii = index * 6;\n\t\tconst vo = index << 2;\n\t\tindices[ii + 0] = vo + 0;\n\t\tindices[ii + 1] = vo + 1;\n\t\tindices[ii + 2] = vo + 3;\n\t\tindices[ii + 3] = vo + 1;\n\t\tindices[ii + 4] = vo + 2;\n\t\tindices[ii + 5] = vo + 3;\n\t}\n\n\tprotected writeCharacterEmpty(\n\t\tvertices: Float32Array,\n\t\tuvs: Float32Array,\n\t\tindices: Uint16Array,\n\t\tindex: number\n\t): void {\n\t\tconst iv = index << 3;\n\t\tvertices[iv + 0] = 0;\n\t\tvertices[iv + 1] = 0;\n\t\tvertices[iv + 2] = 0;\n\t\tvertices[iv + 3] = 0;\n\t\tvertices[iv + 4] = 0;\n\t\tvertices[iv + 5] = 0;\n\t\tvertices[iv + 6] = 0;\n\t\tvertices[iv + 7] = 0;\n\n\t\tuvs[iv + 0] = 0;\n\t\tuvs[iv + 1] = 0;\n\t\tuvs[iv + 2] = 0;\n\t\tuvs[iv + 3] = 0;\n\t\tuvs[iv + 4] = 0;\n\t\tuvs[iv + 5] = 0;\n\t\tuvs[iv + 6] = 0;\n\t\tuvs[iv + 7] = 0;\n\n\t\tconst ii = index * 6;\n\t\tconst vo = index << 2;\n\t\tindices[ii + 0] = vo + 0;\n\t\tindices[ii + 1] = vo + 1;\n\t\tindices[ii + 2] = vo + 3;\n\t\tindices[ii + 3] = vo + 1;\n\t\tindices[ii + 4] = vo + 2;\n\t\tindices[ii + 5] = vo + 3;\n\t}\n}\n"]}
|
|
@@ -7,6 +7,8 @@ var DDynamicTextMeasureResult = /** @class */ (function () {
|
|
|
7
7
|
this.width = 0;
|
|
8
8
|
this.height = 0;
|
|
9
9
|
this.characters = [];
|
|
10
|
+
this.scale = 1;
|
|
11
|
+
this.scaled = false;
|
|
10
12
|
this.clipped = false;
|
|
11
13
|
this.x = 0;
|
|
12
14
|
this.y = 0;
|
|
@@ -16,6 +18,8 @@ var DDynamicTextMeasureResult = /** @class */ (function () {
|
|
|
16
18
|
this.countPerLine = 0;
|
|
17
19
|
this.width = 0;
|
|
18
20
|
this.height = 0;
|
|
21
|
+
this.scale = 1;
|
|
22
|
+
this.scaled = false;
|
|
19
23
|
this.clipped = false;
|
|
20
24
|
this.x = 0;
|
|
21
25
|
this.y = 0.5 * (lineHeight - fontHeight);
|
|
@@ -102,6 +106,24 @@ var DDynamicTextMeasureResult = /** @class */ (function () {
|
|
|
102
106
|
}
|
|
103
107
|
return false;
|
|
104
108
|
};
|
|
109
|
+
DDynamicTextMeasureResult.prototype.fit = function (width, height) {
|
|
110
|
+
var w = this.width;
|
|
111
|
+
var h = this.height;
|
|
112
|
+
if (1e-4 < w && width < w) {
|
|
113
|
+
if (1e-4 < h && height < h) {
|
|
114
|
+
this.scale = Math.min(width / w, height / h);
|
|
115
|
+
this.scaled = true;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
this.scale = width / w;
|
|
119
|
+
this.scaled = true;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
else if (1e-4 < h && height < h) {
|
|
123
|
+
this.scale = height / h;
|
|
124
|
+
this.scaled = true;
|
|
125
|
+
}
|
|
126
|
+
};
|
|
105
127
|
DDynamicTextMeasureResult.prototype.end = function (lineHeight, fontHeight) {
|
|
106
128
|
this.newLine(lineHeight);
|
|
107
129
|
this.y -= 0.5 * (lineHeight - fontHeight);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-dynamic-text-measure-result.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-dynamic-text-measure-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,2CAA2C,CAAC;AAE/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AAEzF;
|
|
1
|
+
{"version":3,"file":"d-dynamic-text-measure-result.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-dynamic-text-measure-result.ts"],"names":[],"mappings":"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","sourcesContent":["import { DDynamicTextMeasureResultCharacter } from \"./d-dynamic-text-measure-result-character\";\nimport { DynamicFontAtlasCharacter } from \"./util/dynamic-font-atlas-character\";\nimport { DynamicFontAtlasCharacterType } from \"./util/dynamic-font-atlas-character-type\";\n\nexport class DDynamicTextMeasureResult {\n\tcount: number;\n\tcountPerLine: number;\n\twidth: number;\n\theight: number;\n\tcharacters: DDynamicTextMeasureResultCharacter[];\n\tscale: number;\n\tscaled: boolean;\n\tclipped: boolean;\n\n\tx: number;\n\ty: number;\n\n\tconstructor() {\n\t\tthis.count = 0;\n\t\tthis.countPerLine = 0;\n\t\tthis.width = 0;\n\t\tthis.height = 0;\n\t\tthis.characters = [];\n\t\tthis.scale = 1;\n\t\tthis.scaled = false;\n\t\tthis.clipped = false;\n\n\t\tthis.x = 0;\n\t\tthis.y = 0;\n\t}\n\n\tstart(lineHeight: number, fontHeight: number): void {\n\t\tthis.count = 0;\n\t\tthis.countPerLine = 0;\n\t\tthis.width = 0;\n\t\tthis.height = 0;\n\t\tthis.scale = 1;\n\t\tthis.scaled = false;\n\t\tthis.clipped = false;\n\n\t\tthis.x = 0;\n\t\tthis.y = 0.5 * (lineHeight - fontHeight);\n\t}\n\n\tisPushable(width: number, character: DynamicFontAtlasCharacter): boolean {\n\t\tconst x = this.x + character.advance;\n\t\tif (width < x) {\n\t\t\tif (character.type & DynamicFontAtlasCharacterType.SPACE) {\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tisPushableAtNewLine(height: number, lineHeight: number, fontHeight: number): boolean {\n\t\treturn this.y + 1.5 * lineHeight + 0.5 * fontHeight <= height;\n\t}\n\n\tpush(character: DynamicFontAtlasCharacter, isWrappable: boolean): void {\n\t\tconst x = this.x;\n\t\tthis.x += character.advance;\n\t\tconst y = this.y;\n\t\tconst count = this.count;\n\t\tconst characters = this.characters;\n\t\tif (count < characters.length) {\n\t\t\tcharacters[count].set(x, y, character, isWrappable);\n\t\t} else {\n\t\t\tcharacters.push(new DDynamicTextMeasureResultCharacter(x, y, character, isWrappable));\n\t\t}\n\t\tthis.count += 1;\n\t\tthis.countPerLine += 1;\n\t}\n\n\tnewLine(lineHeight: number): void {\n\t\tthis.width = Math.max(this.width, this.x);\n\t\tthis.x = 0;\n\t\tthis.y += lineHeight;\n\t\tthis.countPerLine = 0;\n\t}\n\n\twordWrap(lineHeight: number): boolean {\n\t\tconst countPerLine = this.countPerLine;\n\t\tconst characters = this.characters;\n\t\tif (0 < countPerLine) {\n\t\t\tconst count = this.count;\n\t\t\tfor (let i = count - 1, imin = count - countPerLine; imin < i; --i) {\n\t\t\t\tlet character = characters[i];\n\t\t\t\tif (character.wrappable) {\n\t\t\t\t\tlet x = character.character.advance;\n\t\t\t\t\tconst y = character.y + lineHeight;\n\t\t\t\t\tcharacter.x = 0;\n\t\t\t\t\tcharacter.y = y;\n\t\t\t\t\tfor (let j = i + 1; j < count; ++j) {\n\t\t\t\t\t\tcharacter = characters[j];\n\t\t\t\t\t\tcharacter.x = x;\n\t\t\t\t\t\tcharacter.y = y;\n\t\t\t\t\t\tx += character.character.advance;\n\t\t\t\t\t}\n\t\t\t\t\tthis.x = x;\n\t\t\t\t\tthis.y = y;\n\t\t\t\t\tthis.countPerLine = count - i;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst last = characters[count - 1];\n\t\t\tlast.x = 0;\n\t\t\tlast.y = last.y + lineHeight;\n\t\t\tthis.x = last.character.advance;\n\t\t\tthis.y = last.y;\n\t\t\tthis.countPerLine = 1;\n\t\t\treturn false;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpop(): boolean {\n\t\tconst countPerLine = this.countPerLine;\n\t\tconst characters = this.characters;\n\t\tif (0 < countPerLine) {\n\t\t\tconst character = characters[this.count - 1];\n\t\t\tthis.x -= character.character.advance;\n\t\t\tthis.count -= 1;\n\t\t\tthis.countPerLine -= 1;\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tfit(width: number, height: number): void {\n\t\tconst w = this.width;\n\t\tconst h = this.height;\n\t\tif (1e-4 < w && width < w) {\n\t\t\tif (1e-4 < h && height < h) {\n\t\t\t\tthis.scale = Math.min(width / w, height / h);\n\t\t\t\tthis.scaled = true;\n\t\t\t} else {\n\t\t\t\tthis.scale = width / w;\n\t\t\t\tthis.scaled = true;\n\t\t\t}\n\t\t} else if (1e-4 < h && height < h) {\n\t\t\tthis.scale = height / h;\n\t\t\tthis.scaled = true;\n\t\t}\n\t}\n\n\tend(lineHeight: number, fontHeight: number): void {\n\t\tthis.newLine(lineHeight);\n\t\tthis.y -= 0.5 * (lineHeight - fontHeight);\n\t\tthis.height = this.y;\n\t}\n}\n"]}
|
|
@@ -6,21 +6,22 @@ var NEW_LINE = "\n";
|
|
|
6
6
|
var DDynamicTextMeasure = /** @class */ (function () {
|
|
7
7
|
function DDynamicTextMeasure() {
|
|
8
8
|
}
|
|
9
|
-
DDynamicTextMeasure.measure = function (text, atlas,
|
|
9
|
+
DDynamicTextMeasure.measure = function (text, atlas, modifier) {
|
|
10
10
|
var result = DDynamicTextMeasure.RESULT || new DDynamicTextMeasureResult();
|
|
11
11
|
DDynamicTextMeasure.RESULT = result;
|
|
12
12
|
if (atlas != null) {
|
|
13
13
|
var itr = UtilCharacterIterator.from(text);
|
|
14
14
|
var fh = atlas.font.height;
|
|
15
|
-
var lh =
|
|
16
|
-
var
|
|
17
|
-
var
|
|
18
|
-
var
|
|
19
|
-
var
|
|
15
|
+
var lh = modifier.lineHeight;
|
|
16
|
+
var cf = modifier.fitting;
|
|
17
|
+
var cc = !cf && modifier.clipping;
|
|
18
|
+
var cw = modifier.width;
|
|
19
|
+
var ch = modifier.height;
|
|
20
|
+
var cp = !cf && modifier.wordWrap;
|
|
20
21
|
result.start(lh, fh);
|
|
21
22
|
switch (cp) {
|
|
22
23
|
case DDynamicTextStyleWordWrap.BREAK_ALL:
|
|
23
|
-
if (
|
|
24
|
+
if (cc) {
|
|
24
25
|
this.measure1(itr, cw, ch, fh, lh, atlas, result);
|
|
25
26
|
}
|
|
26
27
|
else {
|
|
@@ -30,7 +31,7 @@ var DDynamicTextMeasure = /** @class */ (function () {
|
|
|
30
31
|
case DDynamicTextStyleWordWrap.NORMAL:
|
|
31
32
|
var lb = this.newLineBreaker(text);
|
|
32
33
|
if (lb) {
|
|
33
|
-
if (
|
|
34
|
+
if (cc) {
|
|
34
35
|
this.measure1a(lb, itr, cw, ch, fh, lh, atlas, result);
|
|
35
36
|
}
|
|
36
37
|
else {
|
|
@@ -38,7 +39,7 @@ var DDynamicTextMeasure = /** @class */ (function () {
|
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
41
|
else {
|
|
41
|
-
if (
|
|
42
|
+
if (cc) {
|
|
42
43
|
this.measure1b(itr, cw, ch, fh, lh, atlas, result);
|
|
43
44
|
}
|
|
44
45
|
else {
|
|
@@ -47,7 +48,7 @@ var DDynamicTextMeasure = /** @class */ (function () {
|
|
|
47
48
|
}
|
|
48
49
|
break;
|
|
49
50
|
default:
|
|
50
|
-
if (
|
|
51
|
+
if (cc) {
|
|
51
52
|
this.measure3(itr, cw, lh, atlas, result);
|
|
52
53
|
}
|
|
53
54
|
else {
|
|
@@ -56,6 +57,9 @@ var DDynamicTextMeasure = /** @class */ (function () {
|
|
|
56
57
|
break;
|
|
57
58
|
}
|
|
58
59
|
result.end(lh, fh);
|
|
60
|
+
if (cf) {
|
|
61
|
+
result.fit(cw, ch);
|
|
62
|
+
}
|
|
59
63
|
}
|
|
60
64
|
else {
|
|
61
65
|
result.start(0, 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-dynamic-text-measure.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-dynamic-text-measure.ts"],"names":[],"mappings":"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","sourcesContent":["import { DDynamicTextMeasureResult } from \"./d-dynamic-text-measure-result\";\nimport { DynamicFontAtlas } from \"./util/dynamic-font-atlas\";\nimport { UtilCharacterIterator } from \"./util/util-character-iterator\";\nimport type { LineBreaker } from \"css-line-break\";\nimport { LineBreak } from \"css-line-break/dist/types/LineBreak\";\nimport { DDynamicTextStyleWordWrap } from \"./d-dynamic-text-style-word-wrap\";\nimport { DynamicFontAtlasCharacter } from \"./util/dynamic-font-atlas-character\";\nimport { DynamicFontAtlasCharacterType } from \"./util/dynamic-font-atlas-character-type\";\n\nexport interface DDynamicTextMeasureClipping {\n\tenable: boolean;\n\twordWrap: DDynamicTextStyleWordWrap;\n\twidth: number;\n\theight: number;\n\tlineHeight: number;\n}\n\nconst NEW_LINE = \"\\n\";\n\nexport class DDynamicTextMeasure {\n\tprotected static RESULT: DDynamicTextMeasureResult | null = null;\n\n\tstatic measure(\n\t\ttext: string,\n\t\tatlas: DynamicFontAtlas | null,\n\t\tclipping: DDynamicTextMeasureClipping\n\t): DDynamicTextMeasureResult {\n\t\tconst result = DDynamicTextMeasure.RESULT || new DDynamicTextMeasureResult();\n\t\tDDynamicTextMeasure.RESULT = result;\n\t\tif (atlas != null) {\n\t\t\tconst itr = UtilCharacterIterator.from(text);\n\t\t\tconst fh = atlas.font.height;\n\t\t\tconst lh = clipping.lineHeight;\n\t\t\tconst ce = clipping.enable;\n\t\t\tconst cw = clipping.width;\n\t\t\tconst ch = clipping.height;\n\t\t\tconst cp = clipping.wordWrap;\n\t\t\tresult.start(lh, fh);\n\t\t\tswitch (cp) {\n\t\t\t\tcase DDynamicTextStyleWordWrap.BREAK_ALL:\n\t\t\t\t\tif (ce) {\n\t\t\t\t\t\tthis.measure1(itr, cw, ch, fh, lh, atlas, result);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.measure2(itr, cw, lh, atlas, result);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase DDynamicTextStyleWordWrap.NORMAL:\n\t\t\t\t\tconst lb = this.newLineBreaker(text);\n\t\t\t\t\tif (lb) {\n\t\t\t\t\t\tif (ce) {\n\t\t\t\t\t\t\tthis.measure1a(lb, itr, cw, ch, fh, lh, atlas, result);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.measure2a(lb, itr, cw, lh, atlas, result);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (ce) {\n\t\t\t\t\t\t\tthis.measure1b(itr, cw, ch, fh, lh, atlas, result);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.measure2b(itr, cw, lh, atlas, result);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tif (ce) {\n\t\t\t\t\t\tthis.measure3(itr, cw, lh, atlas, result);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.measure4(itr, lh, atlas, result);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tresult.end(lh, fh);\n\t\t} else {\n\t\t\tresult.start(0, 0);\n\t\t\tresult.end(0, 0);\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate static measure1a(\n\t\tlineBreaker: ReturnType<typeof LineBreaker>,\n\t\titerator: UtilCharacterIterator,\n\t\tclippingWidth: number,\n\t\tclippingHeight: number,\n\t\tfontHeight: number,\n\t\tlineHeight: number,\n\t\tatlas: DynamicFontAtlas,\n\t\tresult: DDynamicTextMeasureResult\n\t): void {\n\t\tlet lineBreak = lineBreaker.next();\n\t\twhile (iterator.hasNext()) {\n\t\t\tconst characterPosition = iterator.position;\n\t\t\tconst character = iterator.next();\n\t\t\tif (character === NEW_LINE) {\n\t\t\t\tresult.newLine(lineHeight);\n\t\t\t} else {\n\t\t\t\tconst a = atlas.get(character);\n\t\t\t\tif (a == null) continue;\n\n\t\t\t\tlineBreak = this.advance(characterPosition, lineBreak, lineBreaker);\n\t\t\t\tconst isWrappable = this.isWrappable1(characterPosition, lineBreak);\n\n\t\t\t\tif (result.isPushable(clippingWidth, a)) {\n\t\t\t\t\tresult.push(a, isWrappable);\n\t\t\t\t} else {\n\t\t\t\t\tif (result.isPushableAtNewLine(clippingHeight, lineHeight, fontHeight)) {\n\t\t\t\t\t\tresult.push(a, isWrappable);\n\t\t\t\t\t\tresult.wordWrap(lineHeight);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.measure5(iterator, clippingWidth, lineHeight, atlas, result, true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static measure1b(\n\t\titerator: UtilCharacterIterator,\n\t\tclippingWidth: number,\n\t\tclippingHeight: number,\n\t\tfontHeight: number,\n\t\tlineHeight: number,\n\t\tatlas: DynamicFontAtlas,\n\t\tresult: DDynamicTextMeasureResult\n\t): void {\n\t\twhile (iterator.hasNext()) {\n\t\t\tconst character = iterator.next();\n\t\t\tif (character === NEW_LINE) {\n\t\t\t\tresult.newLine(lineHeight);\n\t\t\t} else {\n\t\t\t\tconst a = atlas.get(character);\n\t\t\t\tif (a == null) continue;\n\n\t\t\t\tconst isWrappable = this.isWrappable2(result, a);\n\t\t\t\tif (result.isPushable(clippingWidth, a)) {\n\t\t\t\t\tresult.push(a, isWrappable);\n\t\t\t\t} else {\n\t\t\t\t\tif (result.isPushableAtNewLine(clippingHeight, lineHeight, fontHeight)) {\n\t\t\t\t\t\tresult.push(a, isWrappable);\n\t\t\t\t\t\tresult.wordWrap(lineHeight);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.measure5(iterator, clippingWidth, lineHeight, atlas, result, true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static measure1(\n\t\titerator: UtilCharacterIterator,\n\t\tclippingWidth: number,\n\t\tclippingHeight: number,\n\t\tfontHeight: number,\n\t\tlineHeight: number,\n\t\tatlas: DynamicFontAtlas,\n\t\tresult: DDynamicTextMeasureResult\n\t): void {\n\t\twhile (iterator.hasNext()) {\n\t\t\tconst character = iterator.next();\n\t\t\tif (character === NEW_LINE) {\n\t\t\t\tresult.newLine(lineHeight);\n\t\t\t} else {\n\t\t\t\tconst a = atlas.get(character);\n\t\t\t\tif (a == null) continue;\n\n\t\t\t\tif (result.isPushable(clippingWidth, a)) {\n\t\t\t\t\tresult.push(a, true);\n\t\t\t\t} else {\n\t\t\t\t\tif (result.isPushableAtNewLine(clippingHeight, lineHeight, fontHeight)) {\n\t\t\t\t\t\tresult.newLine(lineHeight);\n\t\t\t\t\t\tresult.push(a, true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.measure5(iterator, clippingWidth, lineHeight, atlas, result, true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static measure2a(\n\t\tlineBreaker: ReturnType<typeof LineBreaker>,\n\t\titerator: UtilCharacterIterator,\n\t\tclippingWidth: number,\n\t\tlineHeight: number,\n\t\tatlas: DynamicFontAtlas,\n\t\tresult: DDynamicTextMeasureResult\n\t): void {\n\t\tlet lineBreak = lineBreaker.next();\n\t\twhile (iterator.hasNext()) {\n\t\t\tconst characterPosition = iterator.position;\n\t\t\tconst character = iterator.next();\n\t\t\tif (character === NEW_LINE) {\n\t\t\t\tresult.newLine(lineHeight);\n\t\t\t} else {\n\t\t\t\tconst a = atlas.get(character);\n\t\t\t\tif (a == null) continue;\n\n\t\t\t\tlineBreak = this.advance(characterPosition, lineBreak, lineBreaker);\n\t\t\t\tconst isWrappable = this.isWrappable1(characterPosition, lineBreak);\n\n\t\t\t\tif (result.isPushable(clippingWidth, a)) {\n\t\t\t\t\tresult.push(a, isWrappable);\n\t\t\t\t} else {\n\t\t\t\t\tresult.push(a, isWrappable);\n\t\t\t\t\tresult.wordWrap(lineHeight);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static measure2b(\n\t\titerator: UtilCharacterIterator,\n\t\tclippingWidth: number,\n\t\tlineHeight: number,\n\t\tatlas: DynamicFontAtlas,\n\t\tresult: DDynamicTextMeasureResult\n\t): void {\n\t\twhile (iterator.hasNext()) {\n\t\t\tconst character = iterator.next();\n\t\t\tif (character === NEW_LINE) {\n\t\t\t\tresult.newLine(lineHeight);\n\t\t\t} else {\n\t\t\t\tconst a = atlas.get(character);\n\t\t\t\tif (a == null) continue;\n\n\t\t\t\tconst isWrappable = this.isWrappable2(result, a);\n\n\t\t\t\tif (result.isPushable(clippingWidth, a)) {\n\t\t\t\t\tresult.push(a, isWrappable);\n\t\t\t\t} else {\n\t\t\t\t\tresult.push(a, isWrappable);\n\t\t\t\t\tresult.wordWrap(lineHeight);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static measure2(\n\t\titerator: UtilCharacterIterator,\n\t\tclippingWidth: number,\n\t\tlineHeight: number,\n\t\tatlas: DynamicFontAtlas,\n\t\tresult: DDynamicTextMeasureResult\n\t): void {\n\t\twhile (iterator.hasNext()) {\n\t\t\tconst character = iterator.next();\n\t\t\tif (character === NEW_LINE) {\n\t\t\t\tresult.newLine(lineHeight);\n\t\t\t} else {\n\t\t\t\tconst a = atlas.get(character);\n\t\t\t\tif (a == null) continue;\n\n\t\t\t\tif (result.isPushable(clippingWidth, a)) {\n\t\t\t\t\tresult.push(a, false);\n\t\t\t\t} else {\n\t\t\t\t\tresult.newLine(lineHeight);\n\t\t\t\t\tresult.push(a, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static measure3(\n\t\titerator: UtilCharacterIterator,\n\t\tclippingWidth: number,\n\t\tlineHeight: number,\n\t\tatlas: DynamicFontAtlas,\n\t\tresult: DDynamicTextMeasureResult\n\t): void {\n\t\twhile (iterator.hasNext()) {\n\t\t\tconst character = iterator.next();\n\t\t\tif (character === NEW_LINE) {\n\t\t\t\tresult.newLine(lineHeight);\n\t\t\t} else {\n\t\t\t\tconst a = atlas.get(character);\n\t\t\t\tif (a == null) continue;\n\n\t\t\t\tif (result.isPushable(clippingWidth, a)) {\n\t\t\t\t\tresult.push(a, false);\n\t\t\t\t} else {\n\t\t\t\t\tthis.measure5(iterator, clippingWidth, lineHeight, atlas, result, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static measure4(\n\t\titerator: UtilCharacterIterator,\n\t\tlineHeight: number,\n\t\tatlas: DynamicFontAtlas,\n\t\tresult: DDynamicTextMeasureResult\n\t): void {\n\t\twhile (iterator.hasNext()) {\n\t\t\tconst character = iterator.next();\n\t\t\tif (character === NEW_LINE) {\n\t\t\t\tresult.newLine(lineHeight);\n\t\t\t} else {\n\t\t\t\tconst a = atlas.get(character);\n\t\t\t\tif (a == null) continue;\n\t\t\t\tresult.push(a, false);\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic measure5(\n\t\titerator: UtilCharacterIterator,\n\t\tclippingWidth: number,\n\t\tlineHeight: number,\n\t\tatlas: DynamicFontAtlas,\n\t\tresult: DDynamicTextMeasureResult,\n\t\tclose: boolean\n\t): void {\n\t\tresult.clipped = true;\n\t\tconst dots = atlas.get(\"...\");\n\t\tif (dots != null) {\n\t\t\twhile (!result.isPushable(clippingWidth, dots)) {\n\t\t\t\tif (!result.pop()) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (result.isPushable(clippingWidth, dots)) {\n\t\t\t\tresult.push(dots, false);\n\t\t\t}\n\t\t}\n\t\tif (close) {\n\t\t\titerator.close();\n\t\t} else {\n\t\t\twhile (iterator.hasNext()) {\n\t\t\t\tif (iterator.next() === NEW_LINE) {\n\t\t\t\t\tresult.newLine(lineHeight);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static isWrappable2(\n\t\tresult: DDynamicTextMeasureResult,\n\t\tcharacter: DynamicFontAtlasCharacter\n\t): boolean {\n\t\tif (result.countPerLine <= 0) {\n\t\t\treturn false;\n\t\t}\n\t\tconst last = result.characters[result.count - 1];\n\t\tconst lastType = last.character.type;\n\t\tconst type = character.type;\n\t\tif (lastType & DynamicFontAtlasCharacterType.SPACE) {\n\t\t\tif (type & DynamicFontAtlasCharacterType.SPACE) {\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\tif (lastType & DynamicFontAtlasCharacterType.NON_BREAKING) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (type & DynamicFontAtlasCharacterType.SPACE) {\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\tif (lastType & DynamicFontAtlasCharacterType.NON_BREAKING) {\n\t\t\t\t\tif (type & DynamicFontAtlasCharacterType.NON_BREAKING) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static advance(\n\t\tposition: number,\n\t\tlineBreak: LineBreak,\n\t\tlineBreaker: ReturnType<typeof LineBreaker>\n\t): LineBreak {\n\t\tif (lineBreak.done) {\n\t\t\treturn lineBreak;\n\t\t}\n\t\tif (position <= lineBreak.value.end) {\n\t\t\treturn lineBreak;\n\t\t}\n\t\tlineBreak = lineBreaker.next();\n\t\treturn lineBreak;\n\t}\n\n\tprivate static isWrappable1(position: number, lineBreak: LineBreak): boolean {\n\t\tif (lineBreak.done) {\n\t\t\treturn false;\n\t\t}\n\t\tconst value = lineBreak.value;\n\t\treturn value.start === position || value.end === position;\n\t}\n\n\tprivate static newLineBreaker(target: string): ReturnType<typeof LineBreaker> | null {\n\t\tif (\"css-line-break\" in window) {\n\t\t\tconst cssLineBreak = (window as any)[\"css-line-break\"] as {\n\t\t\t\tLineBreaker: typeof LineBreaker;\n\t\t\t};\n\t\t\treturn cssLineBreak.LineBreaker(target, {\n\t\t\t\tlineBreak: \"strict\",\n\t\t\t\twordBreak: \"normal\"\n\t\t\t});\n\t\t}\n\t\treturn null;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"d-dynamic-text-measure.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-dynamic-text-measure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAE5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAGvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AAWzF,IAAM,QAAQ,GAAG,IAAI,CAAC;AAEtB;IAAA;IAwYA,CAAC;IArYO,2BAAO,GAAd,UACC,IAAY,EACZ,KAA8B,EAC9B,QAAqC;QAErC,IAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,IAAI,IAAI,yBAAyB,EAAE,CAAC;QAC7E,mBAAmB,CAAC,MAAM,GAAG,MAAM,CAAC;QACpC,IAAI,KAAK,IAAI,IAAI,EAAE;YAClB,IAAM,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;YAC7B,IAAM,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC;YAC/B,IAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC5B,IAAM,EAAE,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC;YACpC,IAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC1B,IAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC3B,IAAM,EAAE,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACrB,QAAQ,EAAE,EAAE;gBACX,KAAK,yBAAyB,CAAC,SAAS;oBACvC,IAAI,EAAE,EAAE;wBACP,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;qBAClD;yBAAM;wBACN,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;qBAC1C;oBACD,MAAM;gBACP,KAAK,yBAAyB,CAAC,MAAM;oBACpC,IAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;oBACrC,IAAI,EAAE,EAAE;wBACP,IAAI,EAAE,EAAE;4BACP,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;yBACvD;6BAAM;4BACN,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;yBAC/C;qBACD;yBAAM;wBACN,IAAI,EAAE,EAAE;4BACP,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;yBACnD;6BAAM;4BACN,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;yBAC3C;qBACD;oBACD,MAAM;gBACP;oBACC,IAAI,EAAE,EAAE;wBACP,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;qBAC1C;yBAAM;wBACN,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;qBACtC;oBACD,MAAM;aACP;YACD,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACnB,IAAI,EAAE,EAAE;gBACP,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;aACnB;SACD;aAAM;YACN,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACjB;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAEc,6BAAS,GAAxB,UACC,WAA2C,EAC3C,QAA+B,EAC/B,aAAqB,EACrB,cAAsB,EACtB,UAAkB,EAClB,UAAkB,EAClB,KAAuB,EACvB,MAAiC;QAEjC,IAAI,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,QAAQ,CAAC,OAAO,EAAE,EAAE;YAC1B,IAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC5C,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,SAAS,KAAK,QAAQ,EAAE;gBAC3B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;aAC3B;iBAAM;gBACN,IAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,IAAI,IAAI;oBAAE,SAAS;gBAExB,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;gBACpE,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;gBAEpE,IAAI,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE;oBACxC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;iBAC5B;qBAAM;oBACN,IAAI,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE;wBACvE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;wBAC5B,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;qBAC5B;yBAAM;wBACN,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;qBACxE;iBACD;aACD;SACD;IACF,CAAC;IAEc,6BAAS,GAAxB,UACC,QAA+B,EAC/B,aAAqB,EACrB,cAAsB,EACtB,UAAkB,EAClB,UAAkB,EAClB,KAAuB,EACvB,MAAiC;QAEjC,OAAO,QAAQ,CAAC,OAAO,EAAE,EAAE;YAC1B,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,SAAS,KAAK,QAAQ,EAAE;gBAC3B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;aAC3B;iBAAM;gBACN,IAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,IAAI,IAAI;oBAAE,SAAS;gBAExB,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBACjD,IAAI,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE;oBACxC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;iBAC5B;qBAAM;oBACN,IAAI,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE;wBACvE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;wBAC5B,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;qBAC5B;yBAAM;wBACN,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;qBACxE;iBACD;aACD;SACD;IACF,CAAC;IAEc,4BAAQ,GAAvB,UACC,QAA+B,EAC/B,aAAqB,EACrB,cAAsB,EACtB,UAAkB,EAClB,UAAkB,EAClB,KAAuB,EACvB,MAAiC;QAEjC,OAAO,QAAQ,CAAC,OAAO,EAAE,EAAE;YAC1B,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,SAAS,KAAK,QAAQ,EAAE;gBAC3B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;aAC3B;iBAAM;gBACN,IAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,IAAI,IAAI;oBAAE,SAAS;gBAExB,IAAI,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE;oBACxC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;iBACrB;qBAAM;oBACN,IAAI,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE;wBACvE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;wBAC3B,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;qBACrB;yBAAM;wBACN,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;qBACxE;iBACD;aACD;SACD;IACF,CAAC;IAEc,6BAAS,GAAxB,UACC,WAA2C,EAC3C,QAA+B,EAC/B,aAAqB,EACrB,UAAkB,EAClB,KAAuB,EACvB,MAAiC;QAEjC,IAAI,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,QAAQ,CAAC,OAAO,EAAE,EAAE;YAC1B,IAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC5C,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,SAAS,KAAK,QAAQ,EAAE;gBAC3B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;aAC3B;iBAAM;gBACN,IAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,IAAI,IAAI;oBAAE,SAAS;gBAExB,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;gBACpE,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;gBAEpE,IAAI,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE;oBACxC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;iBAC5B;qBAAM;oBACN,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;oBAC5B,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;iBAC5B;aACD;SACD;IACF,CAAC;IAEc,6BAAS,GAAxB,UACC,QAA+B,EAC/B,aAAqB,EACrB,UAAkB,EAClB,KAAuB,EACvB,MAAiC;QAEjC,OAAO,QAAQ,CAAC,OAAO,EAAE,EAAE;YAC1B,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,SAAS,KAAK,QAAQ,EAAE;gBAC3B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;aAC3B;iBAAM;gBACN,IAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,IAAI,IAAI;oBAAE,SAAS;gBAExB,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAEjD,IAAI,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE;oBACxC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;iBAC5B;qBAAM;oBACN,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;oBAC5B,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;iBAC5B;aACD;SACD;IACF,CAAC;IAEc,4BAAQ,GAAvB,UACC,QAA+B,EAC/B,aAAqB,EACrB,UAAkB,EAClB,KAAuB,EACvB,MAAiC;QAEjC,OAAO,QAAQ,CAAC,OAAO,EAAE,EAAE;YAC1B,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,SAAS,KAAK,QAAQ,EAAE;gBAC3B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;aAC3B;iBAAM;gBACN,IAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,IAAI,IAAI;oBAAE,SAAS;gBAExB,IAAI,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE;oBACxC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;iBACtB;qBAAM;oBACN,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC3B,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;iBACtB;aACD;SACD;IACF,CAAC;IAEc,4BAAQ,GAAvB,UACC,QAA+B,EAC/B,aAAqB,EACrB,UAAkB,EAClB,KAAuB,EACvB,MAAiC;QAEjC,OAAO,QAAQ,CAAC,OAAO,EAAE,EAAE;YAC1B,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,SAAS,KAAK,QAAQ,EAAE;gBAC3B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;aAC3B;iBAAM;gBACN,IAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,IAAI,IAAI;oBAAE,SAAS;gBAExB,IAAI,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE;oBACxC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;iBACtB;qBAAM;oBACN,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;iBACzE;aACD;SACD;IACF,CAAC;IAEc,4BAAQ,GAAvB,UACC,QAA+B,EAC/B,UAAkB,EAClB,KAAuB,EACvB,MAAiC;QAEjC,OAAO,QAAQ,CAAC,OAAO,EAAE,EAAE;YAC1B,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,SAAS,KAAK,QAAQ,EAAE;gBAC3B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;aAC3B;iBAAM;gBACN,IAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,IAAI,IAAI;oBAAE,SAAS;gBACxB,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;aACtB;SACD;IACF,CAAC;IAEM,4BAAQ,GAAf,UACC,QAA+B,EAC/B,aAAqB,EACrB,UAAkB,EAClB,KAAuB,EACvB,MAAiC,EACjC,KAAc;QAEd,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,IAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,IAAI,IAAI,IAAI,EAAE;YACjB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE;gBAC/C,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE;oBAClB,MAAM;iBACN;aACD;YACD,IAAI,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE;gBAC3C,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACzB;SACD;QACD,IAAI,KAAK,EAAE;YACV,QAAQ,CAAC,KAAK,EAAE,CAAC;SACjB;aAAM;YACN,OAAO,QAAQ,CAAC,OAAO,EAAE,EAAE;gBAC1B,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,QAAQ,EAAE;oBACjC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC3B,MAAM;iBACN;aACD;SACD;IACF,CAAC;IAEc,gCAAY,GAA3B,UACC,MAAiC,EACjC,SAAoC;QAEpC,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,EAAE;YAC7B,OAAO,KAAK,CAAC;SACb;QACD,IAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACjD,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QACrC,IAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAC5B,IAAI,QAAQ,GAAG,6BAA6B,CAAC,KAAK,EAAE;YACnD,IAAI,IAAI,GAAG,6BAA6B,CAAC,KAAK,EAAE;gBAC/C,OAAO,KAAK,CAAC;aACb;iBAAM;gBACN,IAAI,QAAQ,GAAG,6BAA6B,CAAC,YAAY,EAAE;oBAC1D,OAAO,KAAK,CAAC;iBACb;qBAAM;oBACN,OAAO,IAAI,CAAC;iBACZ;aACD;SACD;aAAM;YACN,IAAI,IAAI,GAAG,6BAA6B,CAAC,KAAK,EAAE;gBAC/C,OAAO,KAAK,CAAC;aACb;iBAAM;gBACN,IAAI,QAAQ,GAAG,6BAA6B,CAAC,YAAY,EAAE;oBAC1D,IAAI,IAAI,GAAG,6BAA6B,CAAC,YAAY,EAAE;wBACtD,OAAO,KAAK,CAAC;qBACb;yBAAM;wBACN,OAAO,IAAI,CAAC;qBACZ;iBACD;qBAAM;oBACN,OAAO,IAAI,CAAC;iBACZ;aACD;SACD;IACF,CAAC;IAEc,2BAAO,GAAtB,UACC,QAAgB,EAChB,SAAoB,EACpB,WAA2C;QAE3C,IAAI,SAAS,CAAC,IAAI,EAAE;YACnB,OAAO,SAAS,CAAC;SACjB;QACD,IAAI,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;YACpC,OAAO,SAAS,CAAC;SACjB;QACD,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IAClB,CAAC;IAEc,gCAAY,GAA3B,UAA4B,QAAgB,EAAE,SAAoB;QACjE,IAAI,SAAS,CAAC,IAAI,EAAE;YACnB,OAAO,KAAK,CAAC;SACb;QACD,IAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAC9B,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC;IAC3D,CAAC;IAEc,kCAAc,GAA7B,UAA8B,MAAc;QAC3C,IAAI,gBAAgB,IAAI,MAAM,EAAE;YAC/B,IAAM,YAAY,GAAI,MAAc,CAAC,gBAAgB,CAEpD,CAAC;YACF,OAAO,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE;gBACvC,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,QAAQ;aACnB,CAAC,CAAC;SACH;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAtYgB,0BAAM,GAAqC,IAAI,CAAC;IAuYlE,0BAAC;CAAA,AAxYD,IAwYC;SAxYY,mBAAmB","sourcesContent":["import { DDynamicTextMeasureResult } from \"./d-dynamic-text-measure-result\";\nimport { DynamicFontAtlas } from \"./util/dynamic-font-atlas\";\nimport { UtilCharacterIterator } from \"./util/util-character-iterator\";\nimport type { LineBreaker } from \"css-line-break\";\nimport { LineBreak } from \"css-line-break/dist/types/LineBreak\";\nimport { DDynamicTextStyleWordWrap } from \"./d-dynamic-text-style-word-wrap\";\nimport { DynamicFontAtlasCharacter } from \"./util/dynamic-font-atlas-character\";\nimport { DynamicFontAtlasCharacterType } from \"./util/dynamic-font-atlas-character-type\";\n\nexport interface DDynamicTextMeasureModifier {\n\tclipping: boolean;\n\tfitting: boolean;\n\twordWrap: DDynamicTextStyleWordWrap;\n\twidth: number;\n\theight: number;\n\tlineHeight: number;\n}\n\nconst NEW_LINE = \"\\n\";\n\nexport class DDynamicTextMeasure {\n\tprotected static RESULT: DDynamicTextMeasureResult | null = null;\n\n\tstatic measure(\n\t\ttext: string,\n\t\tatlas: DynamicFontAtlas | null,\n\t\tmodifier: DDynamicTextMeasureModifier\n\t): DDynamicTextMeasureResult {\n\t\tconst result = DDynamicTextMeasure.RESULT || new DDynamicTextMeasureResult();\n\t\tDDynamicTextMeasure.RESULT = result;\n\t\tif (atlas != null) {\n\t\t\tconst itr = UtilCharacterIterator.from(text);\n\t\t\tconst fh = atlas.font.height;\n\t\t\tconst lh = modifier.lineHeight;\n\t\t\tconst cf = modifier.fitting;\n\t\t\tconst cc = !cf && modifier.clipping;\n\t\t\tconst cw = modifier.width;\n\t\t\tconst ch = modifier.height;\n\t\t\tconst cp = !cf && modifier.wordWrap;\n\t\t\tresult.start(lh, fh);\n\t\t\tswitch (cp) {\n\t\t\t\tcase DDynamicTextStyleWordWrap.BREAK_ALL:\n\t\t\t\t\tif (cc) {\n\t\t\t\t\t\tthis.measure1(itr, cw, ch, fh, lh, atlas, result);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.measure2(itr, cw, lh, atlas, result);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase DDynamicTextStyleWordWrap.NORMAL:\n\t\t\t\t\tconst lb = this.newLineBreaker(text);\n\t\t\t\t\tif (lb) {\n\t\t\t\t\t\tif (cc) {\n\t\t\t\t\t\t\tthis.measure1a(lb, itr, cw, ch, fh, lh, atlas, result);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.measure2a(lb, itr, cw, lh, atlas, result);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (cc) {\n\t\t\t\t\t\t\tthis.measure1b(itr, cw, ch, fh, lh, atlas, result);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.measure2b(itr, cw, lh, atlas, result);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tif (cc) {\n\t\t\t\t\t\tthis.measure3(itr, cw, lh, atlas, result);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.measure4(itr, lh, atlas, result);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tresult.end(lh, fh);\n\t\t\tif (cf) {\n\t\t\t\tresult.fit(cw, ch);\n\t\t\t}\n\t\t} else {\n\t\t\tresult.start(0, 0);\n\t\t\tresult.end(0, 0);\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate static measure1a(\n\t\tlineBreaker: ReturnType<typeof LineBreaker>,\n\t\titerator: UtilCharacterIterator,\n\t\tclippingWidth: number,\n\t\tclippingHeight: number,\n\t\tfontHeight: number,\n\t\tlineHeight: number,\n\t\tatlas: DynamicFontAtlas,\n\t\tresult: DDynamicTextMeasureResult\n\t): void {\n\t\tlet lineBreak = lineBreaker.next();\n\t\twhile (iterator.hasNext()) {\n\t\t\tconst characterPosition = iterator.position;\n\t\t\tconst character = iterator.next();\n\t\t\tif (character === NEW_LINE) {\n\t\t\t\tresult.newLine(lineHeight);\n\t\t\t} else {\n\t\t\t\tconst a = atlas.get(character);\n\t\t\t\tif (a == null) continue;\n\n\t\t\t\tlineBreak = this.advance(characterPosition, lineBreak, lineBreaker);\n\t\t\t\tconst isWrappable = this.isWrappable1(characterPosition, lineBreak);\n\n\t\t\t\tif (result.isPushable(clippingWidth, a)) {\n\t\t\t\t\tresult.push(a, isWrappable);\n\t\t\t\t} else {\n\t\t\t\t\tif (result.isPushableAtNewLine(clippingHeight, lineHeight, fontHeight)) {\n\t\t\t\t\t\tresult.push(a, isWrappable);\n\t\t\t\t\t\tresult.wordWrap(lineHeight);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.measure5(iterator, clippingWidth, lineHeight, atlas, result, true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static measure1b(\n\t\titerator: UtilCharacterIterator,\n\t\tclippingWidth: number,\n\t\tclippingHeight: number,\n\t\tfontHeight: number,\n\t\tlineHeight: number,\n\t\tatlas: DynamicFontAtlas,\n\t\tresult: DDynamicTextMeasureResult\n\t): void {\n\t\twhile (iterator.hasNext()) {\n\t\t\tconst character = iterator.next();\n\t\t\tif (character === NEW_LINE) {\n\t\t\t\tresult.newLine(lineHeight);\n\t\t\t} else {\n\t\t\t\tconst a = atlas.get(character);\n\t\t\t\tif (a == null) continue;\n\n\t\t\t\tconst isWrappable = this.isWrappable2(result, a);\n\t\t\t\tif (result.isPushable(clippingWidth, a)) {\n\t\t\t\t\tresult.push(a, isWrappable);\n\t\t\t\t} else {\n\t\t\t\t\tif (result.isPushableAtNewLine(clippingHeight, lineHeight, fontHeight)) {\n\t\t\t\t\t\tresult.push(a, isWrappable);\n\t\t\t\t\t\tresult.wordWrap(lineHeight);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.measure5(iterator, clippingWidth, lineHeight, atlas, result, true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static measure1(\n\t\titerator: UtilCharacterIterator,\n\t\tclippingWidth: number,\n\t\tclippingHeight: number,\n\t\tfontHeight: number,\n\t\tlineHeight: number,\n\t\tatlas: DynamicFontAtlas,\n\t\tresult: DDynamicTextMeasureResult\n\t): void {\n\t\twhile (iterator.hasNext()) {\n\t\t\tconst character = iterator.next();\n\t\t\tif (character === NEW_LINE) {\n\t\t\t\tresult.newLine(lineHeight);\n\t\t\t} else {\n\t\t\t\tconst a = atlas.get(character);\n\t\t\t\tif (a == null) continue;\n\n\t\t\t\tif (result.isPushable(clippingWidth, a)) {\n\t\t\t\t\tresult.push(a, true);\n\t\t\t\t} else {\n\t\t\t\t\tif (result.isPushableAtNewLine(clippingHeight, lineHeight, fontHeight)) {\n\t\t\t\t\t\tresult.newLine(lineHeight);\n\t\t\t\t\t\tresult.push(a, true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.measure5(iterator, clippingWidth, lineHeight, atlas, result, true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static measure2a(\n\t\tlineBreaker: ReturnType<typeof LineBreaker>,\n\t\titerator: UtilCharacterIterator,\n\t\tclippingWidth: number,\n\t\tlineHeight: number,\n\t\tatlas: DynamicFontAtlas,\n\t\tresult: DDynamicTextMeasureResult\n\t): void {\n\t\tlet lineBreak = lineBreaker.next();\n\t\twhile (iterator.hasNext()) {\n\t\t\tconst characterPosition = iterator.position;\n\t\t\tconst character = iterator.next();\n\t\t\tif (character === NEW_LINE) {\n\t\t\t\tresult.newLine(lineHeight);\n\t\t\t} else {\n\t\t\t\tconst a = atlas.get(character);\n\t\t\t\tif (a == null) continue;\n\n\t\t\t\tlineBreak = this.advance(characterPosition, lineBreak, lineBreaker);\n\t\t\t\tconst isWrappable = this.isWrappable1(characterPosition, lineBreak);\n\n\t\t\t\tif (result.isPushable(clippingWidth, a)) {\n\t\t\t\t\tresult.push(a, isWrappable);\n\t\t\t\t} else {\n\t\t\t\t\tresult.push(a, isWrappable);\n\t\t\t\t\tresult.wordWrap(lineHeight);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static measure2b(\n\t\titerator: UtilCharacterIterator,\n\t\tclippingWidth: number,\n\t\tlineHeight: number,\n\t\tatlas: DynamicFontAtlas,\n\t\tresult: DDynamicTextMeasureResult\n\t): void {\n\t\twhile (iterator.hasNext()) {\n\t\t\tconst character = iterator.next();\n\t\t\tif (character === NEW_LINE) {\n\t\t\t\tresult.newLine(lineHeight);\n\t\t\t} else {\n\t\t\t\tconst a = atlas.get(character);\n\t\t\t\tif (a == null) continue;\n\n\t\t\t\tconst isWrappable = this.isWrappable2(result, a);\n\n\t\t\t\tif (result.isPushable(clippingWidth, a)) {\n\t\t\t\t\tresult.push(a, isWrappable);\n\t\t\t\t} else {\n\t\t\t\t\tresult.push(a, isWrappable);\n\t\t\t\t\tresult.wordWrap(lineHeight);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static measure2(\n\t\titerator: UtilCharacterIterator,\n\t\tclippingWidth: number,\n\t\tlineHeight: number,\n\t\tatlas: DynamicFontAtlas,\n\t\tresult: DDynamicTextMeasureResult\n\t): void {\n\t\twhile (iterator.hasNext()) {\n\t\t\tconst character = iterator.next();\n\t\t\tif (character === NEW_LINE) {\n\t\t\t\tresult.newLine(lineHeight);\n\t\t\t} else {\n\t\t\t\tconst a = atlas.get(character);\n\t\t\t\tif (a == null) continue;\n\n\t\t\t\tif (result.isPushable(clippingWidth, a)) {\n\t\t\t\t\tresult.push(a, false);\n\t\t\t\t} else {\n\t\t\t\t\tresult.newLine(lineHeight);\n\t\t\t\t\tresult.push(a, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static measure3(\n\t\titerator: UtilCharacterIterator,\n\t\tclippingWidth: number,\n\t\tlineHeight: number,\n\t\tatlas: DynamicFontAtlas,\n\t\tresult: DDynamicTextMeasureResult\n\t): void {\n\t\twhile (iterator.hasNext()) {\n\t\t\tconst character = iterator.next();\n\t\t\tif (character === NEW_LINE) {\n\t\t\t\tresult.newLine(lineHeight);\n\t\t\t} else {\n\t\t\t\tconst a = atlas.get(character);\n\t\t\t\tif (a == null) continue;\n\n\t\t\t\tif (result.isPushable(clippingWidth, a)) {\n\t\t\t\t\tresult.push(a, false);\n\t\t\t\t} else {\n\t\t\t\t\tthis.measure5(iterator, clippingWidth, lineHeight, atlas, result, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static measure4(\n\t\titerator: UtilCharacterIterator,\n\t\tlineHeight: number,\n\t\tatlas: DynamicFontAtlas,\n\t\tresult: DDynamicTextMeasureResult\n\t): void {\n\t\twhile (iterator.hasNext()) {\n\t\t\tconst character = iterator.next();\n\t\t\tif (character === NEW_LINE) {\n\t\t\t\tresult.newLine(lineHeight);\n\t\t\t} else {\n\t\t\t\tconst a = atlas.get(character);\n\t\t\t\tif (a == null) continue;\n\t\t\t\tresult.push(a, false);\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic measure5(\n\t\titerator: UtilCharacterIterator,\n\t\tclippingWidth: number,\n\t\tlineHeight: number,\n\t\tatlas: DynamicFontAtlas,\n\t\tresult: DDynamicTextMeasureResult,\n\t\tclose: boolean\n\t): void {\n\t\tresult.clipped = true;\n\t\tconst dots = atlas.get(\"...\");\n\t\tif (dots != null) {\n\t\t\twhile (!result.isPushable(clippingWidth, dots)) {\n\t\t\t\tif (!result.pop()) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (result.isPushable(clippingWidth, dots)) {\n\t\t\t\tresult.push(dots, false);\n\t\t\t}\n\t\t}\n\t\tif (close) {\n\t\t\titerator.close();\n\t\t} else {\n\t\t\twhile (iterator.hasNext()) {\n\t\t\t\tif (iterator.next() === NEW_LINE) {\n\t\t\t\t\tresult.newLine(lineHeight);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static isWrappable2(\n\t\tresult: DDynamicTextMeasureResult,\n\t\tcharacter: DynamicFontAtlasCharacter\n\t): boolean {\n\t\tif (result.countPerLine <= 0) {\n\t\t\treturn false;\n\t\t}\n\t\tconst last = result.characters[result.count - 1];\n\t\tconst lastType = last.character.type;\n\t\tconst type = character.type;\n\t\tif (lastType & DynamicFontAtlasCharacterType.SPACE) {\n\t\t\tif (type & DynamicFontAtlasCharacterType.SPACE) {\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\tif (lastType & DynamicFontAtlasCharacterType.NON_BREAKING) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (type & DynamicFontAtlasCharacterType.SPACE) {\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\tif (lastType & DynamicFontAtlasCharacterType.NON_BREAKING) {\n\t\t\t\t\tif (type & DynamicFontAtlasCharacterType.NON_BREAKING) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static advance(\n\t\tposition: number,\n\t\tlineBreak: LineBreak,\n\t\tlineBreaker: ReturnType<typeof LineBreaker>\n\t): LineBreak {\n\t\tif (lineBreak.done) {\n\t\t\treturn lineBreak;\n\t\t}\n\t\tif (position <= lineBreak.value.end) {\n\t\t\treturn lineBreak;\n\t\t}\n\t\tlineBreak = lineBreaker.next();\n\t\treturn lineBreak;\n\t}\n\n\tprivate static isWrappable1(position: number, lineBreak: LineBreak): boolean {\n\t\tif (lineBreak.done) {\n\t\t\treturn false;\n\t\t}\n\t\tconst value = lineBreak.value;\n\t\treturn value.start === position || value.end === position;\n\t}\n\n\tprivate static newLineBreaker(target: string): ReturnType<typeof LineBreaker> | null {\n\t\tif (\"css-line-break\" in window) {\n\t\t\tconst cssLineBreak = (window as any)[\"css-line-break\"] as {\n\t\t\t\tLineBreaker: typeof LineBreaker;\n\t\t\t};\n\t\t\treturn cssLineBreak.LineBreaker(target, {\n\t\t\t\tlineBreak: \"strict\",\n\t\t\t\twordBreak: \"normal\"\n\t\t\t});\n\t\t}\n\t\treturn null;\n\t}\n}\n"]}
|
|
@@ -8,7 +8,7 @@ import { DThemes } from "./theme/d-themes";
|
|
|
8
8
|
import { toEnum } from "./util/to-enum";
|
|
9
9
|
var DDynamicTextStyle = /** @class */ (function () {
|
|
10
10
|
function DDynamicTextStyle(options, onChange) {
|
|
11
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
11
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
12
12
|
this._id = 0;
|
|
13
13
|
this._idApproved = -1;
|
|
14
14
|
var defaultOptions = this.getDefaultOptions();
|
|
@@ -21,8 +21,9 @@ var DDynamicTextStyle = /** @class */ (function () {
|
|
|
21
21
|
this._fontWeight = (_f = options.fontWeight) !== null && _f !== void 0 ? _f : defaultOptions.fontWeight;
|
|
22
22
|
this._fill = (_g = options.fill) !== null && _g !== void 0 ? _g : defaultOptions.fill;
|
|
23
23
|
this._clipping = (_h = options.clipping) !== null && _h !== void 0 ? _h : defaultOptions.clipping;
|
|
24
|
-
this.
|
|
25
|
-
this.
|
|
24
|
+
this._fitting = (_j = options.fitting) !== null && _j !== void 0 ? _j : defaultOptions.fitting;
|
|
25
|
+
this._wordWrap = toEnum((_k = options.wordWrap) !== null && _k !== void 0 ? _k : defaultOptions.wordWrap, DDynamicTextStyleWordWrap);
|
|
26
|
+
this._lineHeight = (_l = options.lineHeight) !== null && _l !== void 0 ? _l : defaultOptions.lineHeight;
|
|
26
27
|
}
|
|
27
28
|
else {
|
|
28
29
|
this._align = defaultOptions.align;
|
|
@@ -33,9 +34,14 @@ var DDynamicTextStyle = /** @class */ (function () {
|
|
|
33
34
|
this._fontWeight = defaultOptions.fontWeight;
|
|
34
35
|
this._fill = defaultOptions.fill;
|
|
35
36
|
this._clipping = defaultOptions.clipping;
|
|
37
|
+
this._fitting = defaultOptions.fitting;
|
|
36
38
|
this._wordWrap = toEnum(defaultOptions.wordWrap, DDynamicTextStyleWordWrap);
|
|
37
39
|
this._lineHeight = defaultOptions.lineHeight;
|
|
38
40
|
}
|
|
41
|
+
this._fontSizeFitted = this._fontSize;
|
|
42
|
+
this._lineHeightFitted = this._lineHeight;
|
|
43
|
+
this._isFontFitted = false;
|
|
44
|
+
this._fontIdFontSize = this._fontSize;
|
|
39
45
|
this._fontIdId = -1;
|
|
40
46
|
this._fontId = "";
|
|
41
47
|
this._fontIdApproved = "";
|
|
@@ -61,6 +67,7 @@ var DDynamicTextStyle = /** @class */ (function () {
|
|
|
61
67
|
fontWeight: "normal",
|
|
62
68
|
fill: theme.getColor(new DBaseStateSetImpl()),
|
|
63
69
|
clipping: true,
|
|
70
|
+
fitting: false,
|
|
64
71
|
wordWrap: DDynamicTextStyleWordWrap.NONE,
|
|
65
72
|
lineHeight: theme.getLineHeight()
|
|
66
73
|
};
|
|
@@ -87,6 +94,14 @@ var DDynamicTextStyle = /** @class */ (function () {
|
|
|
87
94
|
enumerable: false,
|
|
88
95
|
configurable: true
|
|
89
96
|
});
|
|
97
|
+
Object.defineProperty(DDynamicTextStyle.prototype, "fontIdFontSize", {
|
|
98
|
+
get: function () {
|
|
99
|
+
this.update();
|
|
100
|
+
return this._fontSizeFitted;
|
|
101
|
+
},
|
|
102
|
+
enumerable: false,
|
|
103
|
+
configurable: true
|
|
104
|
+
});
|
|
90
105
|
Object.defineProperty(DDynamicTextStyle.prototype, "fontIdApproved", {
|
|
91
106
|
get: function () {
|
|
92
107
|
return this._fontIdApproved;
|
|
@@ -144,12 +159,29 @@ var DDynamicTextStyle = /** @class */ (function () {
|
|
|
144
159
|
set: function (fontSize) {
|
|
145
160
|
if (this._fontSize !== fontSize) {
|
|
146
161
|
this._fontSize = fontSize;
|
|
162
|
+
this._fontSizeFitted = fontSize;
|
|
163
|
+
this._lineHeightFitted = this._lineHeight;
|
|
164
|
+
this._isFontFitted = false;
|
|
147
165
|
this.onChange();
|
|
148
166
|
}
|
|
149
167
|
},
|
|
150
168
|
enumerable: false,
|
|
151
169
|
configurable: true
|
|
152
170
|
});
|
|
171
|
+
Object.defineProperty(DDynamicTextStyle.prototype, "fontSizeFitted", {
|
|
172
|
+
get: function () {
|
|
173
|
+
return this._fontSizeFitted;
|
|
174
|
+
},
|
|
175
|
+
enumerable: false,
|
|
176
|
+
configurable: true
|
|
177
|
+
});
|
|
178
|
+
Object.defineProperty(DDynamicTextStyle.prototype, "isFontFitted", {
|
|
179
|
+
get: function () {
|
|
180
|
+
return this._isFontFitted;
|
|
181
|
+
},
|
|
182
|
+
enumerable: false,
|
|
183
|
+
configurable: true
|
|
184
|
+
});
|
|
153
185
|
Object.defineProperty(DDynamicTextStyle.prototype, "fontStyle", {
|
|
154
186
|
get: function () {
|
|
155
187
|
return this._fontStyle;
|
|
@@ -192,11 +224,13 @@ var DDynamicTextStyle = /** @class */ (function () {
|
|
|
192
224
|
DDynamicTextStyle.prototype.update = function () {
|
|
193
225
|
if (this._fontIdId !== this._id) {
|
|
194
226
|
this._fontIdId = this._id;
|
|
195
|
-
this.
|
|
227
|
+
var fontIdFontSize = this._fitting ? this._fontSizeFitted : this._fontSize;
|
|
228
|
+
this._fontIdFontSize = fontIdFontSize;
|
|
229
|
+
this._fontId = this.toFontId(fontIdFontSize);
|
|
196
230
|
}
|
|
197
231
|
};
|
|
198
|
-
DDynamicTextStyle.prototype.
|
|
199
|
-
return "".concat(this._fontStyle, " ").concat(this._fontVariant, " ").concat(this._fontWeight, " ").concat(
|
|
232
|
+
DDynamicTextStyle.prototype.toFontId = function (fontSize) {
|
|
233
|
+
return "".concat(this._fontStyle, " ").concat(this._fontVariant, " ").concat(this._fontWeight, " ").concat(fontSize, "px ").concat(this._fontFamily);
|
|
200
234
|
};
|
|
201
235
|
Object.defineProperty(DDynamicTextStyle.prototype, "clipping", {
|
|
202
236
|
get: function () {
|
|
@@ -211,6 +245,19 @@ var DDynamicTextStyle = /** @class */ (function () {
|
|
|
211
245
|
enumerable: false,
|
|
212
246
|
configurable: true
|
|
213
247
|
});
|
|
248
|
+
Object.defineProperty(DDynamicTextStyle.prototype, "fitting", {
|
|
249
|
+
get: function () {
|
|
250
|
+
return this._fitting;
|
|
251
|
+
},
|
|
252
|
+
set: function (fitting) {
|
|
253
|
+
if (this._fitting !== fitting) {
|
|
254
|
+
this._fitting = fitting;
|
|
255
|
+
this.onChange();
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
enumerable: false,
|
|
259
|
+
configurable: true
|
|
260
|
+
});
|
|
214
261
|
Object.defineProperty(DDynamicTextStyle.prototype, "wordWrap", {
|
|
215
262
|
get: function () {
|
|
216
263
|
return this._wordWrap;
|
|
@@ -231,12 +278,66 @@ var DDynamicTextStyle = /** @class */ (function () {
|
|
|
231
278
|
set: function (lineHeight) {
|
|
232
279
|
if (this._lineHeight !== lineHeight) {
|
|
233
280
|
this._lineHeight = lineHeight;
|
|
281
|
+
this._fontSizeFitted = this._fontSize;
|
|
282
|
+
this._lineHeightFitted = lineHeight;
|
|
283
|
+
this._isFontFitted = false;
|
|
284
|
+
this.onChange();
|
|
285
|
+
}
|
|
286
|
+
},
|
|
287
|
+
enumerable: false,
|
|
288
|
+
configurable: true
|
|
289
|
+
});
|
|
290
|
+
Object.defineProperty(DDynamicTextStyle.prototype, "lineHeightFitted", {
|
|
291
|
+
get: function () {
|
|
292
|
+
return this._lineHeightFitted;
|
|
293
|
+
},
|
|
294
|
+
set: function (lineHeightFitted) {
|
|
295
|
+
if (this._lineHeightFitted !== lineHeightFitted) {
|
|
296
|
+
this._lineHeightFitted = lineHeightFitted;
|
|
234
297
|
this.onChange();
|
|
235
298
|
}
|
|
236
299
|
},
|
|
237
300
|
enumerable: false,
|
|
238
301
|
configurable: true
|
|
239
302
|
});
|
|
303
|
+
DDynamicTextStyle.prototype.fit = function (fontSize, lineHeight) {
|
|
304
|
+
var isChanged = false;
|
|
305
|
+
if (fontSize < this._fontSizeFitted) {
|
|
306
|
+
this._fontSizeFitted = fontSize;
|
|
307
|
+
isChanged = true;
|
|
308
|
+
}
|
|
309
|
+
if (this._lineHeightFitted !== lineHeight) {
|
|
310
|
+
this._lineHeightFitted = lineHeight;
|
|
311
|
+
isChanged = true;
|
|
312
|
+
}
|
|
313
|
+
if (this._isFontFitted !== true) {
|
|
314
|
+
this._isFontFitted = true;
|
|
315
|
+
isChanged = true;
|
|
316
|
+
}
|
|
317
|
+
if (isChanged) {
|
|
318
|
+
this.onChange();
|
|
319
|
+
}
|
|
320
|
+
return isChanged;
|
|
321
|
+
};
|
|
322
|
+
DDynamicTextStyle.prototype.unfit = function () {
|
|
323
|
+
var isChanged = false;
|
|
324
|
+
if (this._isFontFitted !== false) {
|
|
325
|
+
this._isFontFitted = false;
|
|
326
|
+
isChanged = true;
|
|
327
|
+
}
|
|
328
|
+
if (this._fontSizeFitted !== this._fontSize) {
|
|
329
|
+
this._fontSizeFitted = this._fontSize;
|
|
330
|
+
isChanged = true;
|
|
331
|
+
}
|
|
332
|
+
if (this._lineHeightFitted !== this._lineHeight) {
|
|
333
|
+
this._lineHeightFitted = this._lineHeight;
|
|
334
|
+
isChanged = true;
|
|
335
|
+
}
|
|
336
|
+
if (isChanged) {
|
|
337
|
+
this.onChange();
|
|
338
|
+
}
|
|
339
|
+
return isChanged;
|
|
340
|
+
};
|
|
240
341
|
return DDynamicTextStyle;
|
|
241
342
|
}());
|
|
242
343
|
export { DDynamicTextStyle };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-dynamic-text-style.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-dynamic-text-style.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DBaseStateSetImpl } from \"./d-base-state-set-impl\";\nimport { DDynamicTextStyleWordWrap } from \"./d-dynamic-text-style-word-wrap\";\nimport { DFontStyle, DFontVariant, DFontWeight, DThemeFont } from \"./d-font\";\nimport { DThemes } from \"./theme/d-themes\";\nimport { toEnum } from \"./util/to-enum\";\n\nexport type DDynamicTextAlign = \"left\" | \"center\" | \"right\";\n\nexport interface DDynamicTextStyleOptions {\n\talign?: DDynamicTextAlign;\n\tfontFamily?: string;\n\tfontSize?: number;\n\tfontStyle?: DFontStyle;\n\tfontVariant?: DFontVariant;\n\tfontWeight?: DFontWeight;\n\tfill?: number;\n\tclipping?: boolean;\n\twordWrap?: DDynamicTextStyleWordWrap | keyof typeof DDynamicTextStyleWordWrap;\n\tlineHeight?: number;\n}\n\nexport class DDynamicTextStyle {\n\tprotected static DEFAULT_OPTIONS?: Required<DDynamicTextStyleOptions>;\n\n\tprotected _id: number;\n\tprotected _idApproved: number;\n\tprotected _fontIdId: number;\n\tprotected _fontId: string;\n\tprotected _fontIdApproved: string;\n\tprotected _align: DDynamicTextAlign;\n\tprotected _fontFamily: string;\n\tprotected _fontSize: number;\n\tprotected _fontStyle: DFontStyle;\n\tprotected _fontVariant: DFontVariant;\n\tprotected _fontWeight: DFontWeight;\n\tprotected _fill: number;\n\tprotected _fillApproved: number;\n\tprotected _clipping: boolean;\n\tprotected _wordWrap: DDynamicTextStyleWordWrap;\n\tprotected _lineHeight: number;\n\tprotected _onChange: () => void;\n\n\tconstructor(options: DDynamicTextStyleOptions | undefined, onChange: () => void) {\n\t\tthis._id = 0;\n\t\tthis._idApproved = -1;\n\n\t\tconst defaultOptions = this.getDefaultOptions();\n\t\tif (options) {\n\t\t\tthis._align = options.align ?? defaultOptions.align;\n\t\t\tthis._fontFamily = options.fontFamily ?? defaultOptions.fontFamily;\n\t\t\tthis._fontSize = options.fontSize ?? defaultOptions.fontSize;\n\t\t\tthis._fontStyle = options.fontStyle ?? defaultOptions.fontStyle;\n\t\t\tthis._fontVariant = options.fontVariant ?? defaultOptions.fontVariant;\n\t\t\tthis._fontWeight = options.fontWeight ?? defaultOptions.fontWeight;\n\t\t\tthis._fill = options.fill ?? defaultOptions.fill;\n\t\t\tthis._clipping = options.clipping ?? defaultOptions.clipping;\n\t\t\tthis._wordWrap = toEnum(\n\t\t\t\toptions.wordWrap ?? defaultOptions.wordWrap,\n\t\t\t\tDDynamicTextStyleWordWrap\n\t\t\t);\n\t\t\tthis._lineHeight = options.lineHeight ?? defaultOptions.lineHeight;\n\t\t} else {\n\t\t\tthis._align = defaultOptions.align;\n\t\t\tthis._fontFamily = defaultOptions.fontFamily;\n\t\t\tthis._fontSize = defaultOptions.fontSize;\n\t\t\tthis._fontStyle = defaultOptions.fontStyle;\n\t\t\tthis._fontVariant = defaultOptions.fontVariant;\n\t\t\tthis._fontWeight = defaultOptions.fontWeight;\n\t\t\tthis._fill = defaultOptions.fill;\n\t\t\tthis._clipping = defaultOptions.clipping;\n\t\t\tthis._wordWrap = toEnum(defaultOptions.wordWrap, DDynamicTextStyleWordWrap);\n\t\t\tthis._lineHeight = defaultOptions.lineHeight;\n\t\t}\n\n\t\tthis._fontIdId = -1;\n\t\tthis._fontId = \"\";\n\t\tthis._fontIdApproved = \"\";\n\t\tthis._fillApproved = 0x000000;\n\n\t\tthis._onChange = onChange;\n\t}\n\n\tprotected getDefaultOptions(): Required<DDynamicTextStyleOptions> {\n\t\tlet result = DDynamicTextStyle.DEFAULT_OPTIONS;\n\t\tif (result == null) {\n\t\t\tresult = this.newDefaultOptions();\n\t\t\tDDynamicTextStyle.DEFAULT_OPTIONS = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newDefaultOptions(): Required<DDynamicTextStyleOptions> {\n\t\tconst theme = DThemes.getInstance().get(\"DBase\") as DThemeFont;\n\t\treturn {\n\t\t\talign: \"left\",\n\t\t\tfontFamily: theme.getFontFamilly(),\n\t\t\tfontSize: theme.getFontSize(),\n\t\t\tfontStyle: \"normal\",\n\t\t\tfontVariant: \"normal\",\n\t\t\tfontWeight: \"normal\",\n\t\t\tfill: theme.getColor(new DBaseStateSetImpl()),\n\t\t\tclipping: true,\n\t\t\twordWrap: DDynamicTextStyleWordWrap.NONE,\n\t\t\tlineHeight: theme.getLineHeight()\n\t\t};\n\t}\n\n\tget id(): number {\n\t\treturn this._id;\n\t}\n\n\tget idApproved(): number {\n\t\treturn this._idApproved;\n\t}\n\n\tget fontId(): string {\n\t\tthis.update();\n\t\treturn this._fontId;\n\t}\n\n\tget fontIdApproved(): string {\n\t\treturn this._fontIdApproved;\n\t}\n\n\tget fill(): number {\n\t\treturn this._fill;\n\t}\n\n\tset fill(fill: number) {\n\t\tif (this._fill !== fill) {\n\t\t\tthis._fill = fill;\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tprotected onChange(): void {\n\t\tthis._id += 1;\n\t\tthis._onChange();\n\t}\n\n\tget fillApproved(): number {\n\t\treturn this._fillApproved;\n\t}\n\n\tapprove(): void {\n\t\tthis.update();\n\t\tthis._idApproved = this._id;\n\t\tthis._fontIdApproved = this._fontId;\n\t\tthis._fillApproved = this._fill;\n\t}\n\n\tget fontFamily(): string {\n\t\treturn this._fontFamily;\n\t}\n\n\tset fontFamily(fontFamily: string) {\n\t\tif (this._fontFamily !== fontFamily) {\n\t\t\tthis._fontFamily = fontFamily;\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tget fontSize(): number {\n\t\treturn this._fontSize;\n\t}\n\n\tset fontSize(fontSize: number) {\n\t\tif (this._fontSize !== fontSize) {\n\t\t\tthis._fontSize = fontSize;\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tget fontStyle(): DFontStyle {\n\t\treturn this._fontStyle;\n\t}\n\n\tset fontStyle(fontStyle: DFontStyle) {\n\t\tif (this._fontStyle !== fontStyle) {\n\t\t\tthis._fontStyle = fontStyle;\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tget fontVariant(): DFontVariant {\n\t\treturn this._fontVariant;\n\t}\n\n\tset fontVariant(fontVariant: DFontVariant) {\n\t\tif (this._fontVariant !== fontVariant) {\n\t\t\tthis._fontVariant = fontVariant;\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tget fontWeight(): DFontWeight {\n\t\treturn this._fontWeight;\n\t}\n\n\tset fontWeight(fontWeight: DFontWeight) {\n\t\tif (this._fontWeight !== fontWeight) {\n\t\t\tthis._fontWeight = fontWeight;\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tprotected update(): void {\n\t\tif (this._fontIdId !== this._id) {\n\t\t\tthis._fontIdId = this._id;\n\t\t\tthis._fontId = this.newFontId();\n\t\t}\n\t}\n\n\tprotected newFontId(): string {\n\t\treturn `${this._fontStyle} ${this._fontVariant} ${this._fontWeight} ${this._fontSize}px ${this._fontFamily}`;\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.onChange();\n\t\t}\n\t}\n\n\tget wordWrap(): DDynamicTextStyleWordWrap {\n\t\treturn this._wordWrap;\n\t}\n\n\tset wordWrap(wordWrap: DDynamicTextStyleWordWrap) {\n\t\tif (this._wordWrap !== wordWrap) {\n\t\t\tthis._wordWrap = wordWrap;\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tget lineHeight(): number {\n\t\treturn this._lineHeight;\n\t}\n\n\tset lineHeight(lineHeight: number) {\n\t\tif (this._lineHeight !== lineHeight) {\n\t\t\tthis._lineHeight = lineHeight;\n\t\t\tthis.onChange();\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"d-dynamic-text-style.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-dynamic-text-style.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAkBxC;IA0BC,2BAAY,OAA6C,EAAE,QAAoB;;QAC9E,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAEtB,IAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAChD,IAAI,OAAO,EAAE;YACZ,IAAI,CAAC,MAAM,GAAG,MAAA,OAAO,CAAC,KAAK,mCAAI,cAAc,CAAC,KAAK,CAAC;YACpD,IAAI,CAAC,WAAW,GAAG,MAAA,OAAO,CAAC,UAAU,mCAAI,cAAc,CAAC,UAAU,CAAC;YACnE,IAAI,CAAC,SAAS,GAAG,MAAA,OAAO,CAAC,QAAQ,mCAAI,cAAc,CAAC,QAAQ,CAAC;YAC7D,IAAI,CAAC,UAAU,GAAG,MAAA,OAAO,CAAC,SAAS,mCAAI,cAAc,CAAC,SAAS,CAAC;YAChE,IAAI,CAAC,YAAY,GAAG,MAAA,OAAO,CAAC,WAAW,mCAAI,cAAc,CAAC,WAAW,CAAC;YACtE,IAAI,CAAC,WAAW,GAAG,MAAA,OAAO,CAAC,UAAU,mCAAI,cAAc,CAAC,UAAU,CAAC;YACnE,IAAI,CAAC,KAAK,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,cAAc,CAAC,IAAI,CAAC;YACjD,IAAI,CAAC,SAAS,GAAG,MAAA,OAAO,CAAC,QAAQ,mCAAI,cAAc,CAAC,QAAQ,CAAC;YAC7D,IAAI,CAAC,QAAQ,GAAG,MAAA,OAAO,CAAC,OAAO,mCAAI,cAAc,CAAC,OAAO,CAAC;YAC1D,IAAI,CAAC,SAAS,GAAG,MAAM,CACtB,MAAA,OAAO,CAAC,QAAQ,mCAAI,cAAc,CAAC,QAAQ,EAC3C,yBAAyB,CACzB,CAAC;YACF,IAAI,CAAC,WAAW,GAAG,MAAA,OAAO,CAAC,UAAU,mCAAI,cAAc,CAAC,UAAU,CAAC;SACnE;aAAM;YACN,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC;YAC7C,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC;YACzC,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,WAAW,CAAC;YAC/C,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC;YAC7C,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC;YACzC,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;YAC5E,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC;SAC7C;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC;QAC1C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAE9B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAES,6CAAiB,GAA3B;QACC,IAAI,MAAM,GAAG,iBAAiB,CAAC,eAAe,CAAC;QAC/C,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAClC,iBAAiB,CAAC,eAAe,GAAG,MAAM,CAAC;SAC3C;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAES,6CAAiB,GAA3B;QACC,IAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,CAAe,CAAC;QAC/D,OAAO;YACN,KAAK,EAAE,MAAM;YACb,UAAU,EAAE,KAAK,CAAC,cAAc,EAAE;YAClC,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE;YAC7B,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,QAAQ;YACrB,UAAU,EAAE,QAAQ;YACpB,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,iBAAiB,EAAE,CAAC;YAC7C,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,yBAAyB,CAAC,IAAI;YACxC,UAAU,EAAE,KAAK,CAAC,aAAa,EAAE;SACjC,CAAC;IACH,CAAC;IAED,sBAAI,iCAAE;aAAN;YACC,OAAO,IAAI,CAAC,GAAG,CAAC;QACjB,CAAC;;;OAAA;IAED,sBAAI,yCAAU;aAAd;YACC,OAAO,IAAI,CAAC,WAAW,CAAC;QACzB,CAAC;;;OAAA;IAED,sBAAI,qCAAM;aAAV;YACC,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;;;OAAA;IAED,sBAAI,6CAAc;aAAlB;YACC,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,eAAe,CAAC;QAC7B,CAAC;;;OAAA;IAED,sBAAI,6CAAc;aAAlB;YACC,OAAO,IAAI,CAAC,eAAe,CAAC;QAC7B,CAAC;;;OAAA;IAED,sBAAI,mCAAI;aAAR;YACC,OAAO,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;aAED,UAAS,IAAY;YACpB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;gBACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;aAChB;QACF,CAAC;;;OAPA;IASS,oCAAQ,GAAlB;QACC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACd,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,sBAAI,2CAAY;aAAhB;YACC,OAAO,IAAI,CAAC,aAAa,CAAC;QAC3B,CAAC;;;OAAA;IAED,mCAAO,GAAP;QACC,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;IACjC,CAAC;IAED,sBAAI,yCAAU;aAAd;YACC,OAAO,IAAI,CAAC,WAAW,CAAC;QACzB,CAAC;aAED,UAAe,UAAkB;YAChC,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;gBACpC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;gBAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;aAChB;QACF,CAAC;;;OAPA;IASD,sBAAI,uCAAQ;aAAZ;YACC,OAAO,IAAI,CAAC,SAAS,CAAC;QACvB,CAAC;aAED,UAAa,QAAgB;YAC5B,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;gBAChC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;gBAC1B,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;gBAChC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC1C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;aAChB;QACF,CAAC;;;OAVA;IAYD,sBAAI,6CAAc;aAAlB;YACC,OAAO,IAAI,CAAC,eAAe,CAAC;QAC7B,CAAC;;;OAAA;IAED,sBAAI,2CAAY;aAAhB;YACC,OAAO,IAAI,CAAC,aAAa,CAAC;QAC3B,CAAC;;;OAAA;IAED,sBAAI,wCAAS;aAAb;YACC,OAAO,IAAI,CAAC,UAAU,CAAC;QACxB,CAAC;aAED,UAAc,SAAqB;YAClC,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBAClC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;gBAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;aAChB;QACF,CAAC;;;OAPA;IASD,sBAAI,0CAAW;aAAf;YACC,OAAO,IAAI,CAAC,YAAY,CAAC;QAC1B,CAAC;aAED,UAAgB,WAAyB;YACxC,IAAI,IAAI,CAAC,YAAY,KAAK,WAAW,EAAE;gBACtC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;gBAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;aAChB;QACF,CAAC;;;OAPA;IASD,sBAAI,yCAAU;aAAd;YACC,OAAO,IAAI,CAAC,WAAW,CAAC;QACzB,CAAC;aAED,UAAe,UAAuB;YACrC,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;gBACpC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;gBAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;aAChB;QACF,CAAC;;;OAPA;IASS,kCAAM,GAAhB;QACC,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,GAAG,EAAE;YAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC;YAC1B,IAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7E,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;YACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;SAC7C;IACF,CAAC;IAED,oCAAQ,GAAR,UAAS,QAAgB;QACxB,OAAO,UAAG,IAAI,CAAC,UAAU,cAAI,IAAI,CAAC,YAAY,cAAI,IAAI,CAAC,WAAW,cAAI,QAAQ,gBAAM,IAAI,CAAC,WAAW,CAAE,CAAC;IACxG,CAAC;IAED,sBAAI,uCAAQ;aAAZ;YACC,OAAO,IAAI,CAAC,SAAS,CAAC;QACvB,CAAC;aAED,UAAa,QAAiB;YAC7B,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;gBAChC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;gBAC1B,IAAI,CAAC,QAAQ,EAAE,CAAC;aAChB;QACF,CAAC;;;OAPA;IASD,sBAAI,sCAAO;aAAX;YACC,OAAO,IAAI,CAAC,QAAQ,CAAC;QACtB,CAAC;aAED,UAAY,OAAgB;YAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;gBAC9B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;gBACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;aAChB;QACF,CAAC;;;OAPA;IASD,sBAAI,uCAAQ;aAAZ;YACC,OAAO,IAAI,CAAC,SAAS,CAAC;QACvB,CAAC;aAED,UAAa,QAAmC;YAC/C,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;gBAChC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;gBAC1B,IAAI,CAAC,QAAQ,EAAE,CAAC;aAChB;QACF,CAAC;;;OAPA;IASD,sBAAI,yCAAU;aAAd;YACC,OAAO,IAAI,CAAC,WAAW,CAAC;QACzB,CAAC;aAED,UAAe,UAAkB;YAChC,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;gBACpC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;gBAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;gBACtC,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC;gBACpC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;aAChB;QACF,CAAC;;;OAVA;IAYD,sBAAI,+CAAgB;aAApB;YACC,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAC/B,CAAC;aAED,UAAqB,gBAAwB;YAC5C,IAAI,IAAI,CAAC,iBAAiB,KAAK,gBAAgB,EAAE;gBAChD,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;gBAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;aAChB;QACF,CAAC;;;OAPA;IASD,+BAAG,GAAH,UAAI,QAAgB,EAAE,UAAkB;QACvC,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE;YACpC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;YAChC,SAAS,GAAG,IAAI,CAAC;SACjB;QACD,IAAI,IAAI,CAAC,iBAAiB,KAAK,UAAU,EAAE;YAC1C,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC;YACpC,SAAS,GAAG,IAAI,CAAC;SACjB;QACD,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE;YAChC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,SAAS,GAAG,IAAI,CAAC;SACjB;QACD,IAAI,SAAS,EAAE;YACd,IAAI,CAAC,QAAQ,EAAE,CAAC;SAChB;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,iCAAK,GAAL;QACC,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,EAAE;YACjC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,SAAS,GAAG,IAAI,CAAC;SACjB;QACD,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,SAAS,EAAE;YAC5C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;YACtC,SAAS,GAAG,IAAI,CAAC;SACjB;QACD,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,WAAW,EAAE;YAChD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC;YAC1C,SAAS,GAAG,IAAI,CAAC;SACjB;QACD,IAAI,SAAS,EAAE;YACd,IAAI,CAAC,QAAQ,EAAE,CAAC;SAChB;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IACF,wBAAC;AAAD,CAAC,AAnUD,IAmUC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DBaseStateSetImpl } from \"./d-base-state-set-impl\";\nimport { DDynamicTextStyleWordWrap } from \"./d-dynamic-text-style-word-wrap\";\nimport { DFontStyle, DFontVariant, DFontWeight, DThemeFont } from \"./d-font\";\nimport { DThemes } from \"./theme/d-themes\";\nimport { toEnum } from \"./util/to-enum\";\n\nexport type DDynamicTextAlign = \"left\" | \"center\" | \"right\";\n\nexport interface DDynamicTextStyleOptions {\n\talign?: DDynamicTextAlign;\n\tfontFamily?: string;\n\tfontSize?: number;\n\tfontStyle?: DFontStyle;\n\tfontVariant?: DFontVariant;\n\tfontWeight?: DFontWeight;\n\tfill?: number;\n\tclipping?: boolean;\n\tfitting?: boolean;\n\twordWrap?: DDynamicTextStyleWordWrap | keyof typeof DDynamicTextStyleWordWrap;\n\tlineHeight?: number;\n}\n\nexport class DDynamicTextStyle {\n\tprotected static DEFAULT_OPTIONS?: Required<DDynamicTextStyleOptions>;\n\n\tprotected _id: number;\n\tprotected _idApproved: number;\n\tprotected _fontIdId: number;\n\tprotected _fontId: string;\n\tprotected _fontIdApproved: string;\n\tprotected _fontIdFontSize: number;\n\tprotected _align: DDynamicTextAlign;\n\tprotected _fontFamily: string;\n\tprotected _fontSize: number;\n\tprotected _fontSizeFitted: number;\n\tprotected _isFontFitted: boolean;\n\tprotected _fontStyle: DFontStyle;\n\tprotected _fontVariant: DFontVariant;\n\tprotected _fontWeight: DFontWeight;\n\tprotected _fill: number;\n\tprotected _fillApproved: number;\n\tprotected _clipping: boolean;\n\tprotected _fitting: boolean;\n\tprotected _wordWrap: DDynamicTextStyleWordWrap;\n\tprotected _lineHeight: number;\n\tprotected _lineHeightFitted: number;\n\tprotected _onChange: () => void;\n\n\tconstructor(options: DDynamicTextStyleOptions | undefined, onChange: () => void) {\n\t\tthis._id = 0;\n\t\tthis._idApproved = -1;\n\n\t\tconst defaultOptions = this.getDefaultOptions();\n\t\tif (options) {\n\t\t\tthis._align = options.align ?? defaultOptions.align;\n\t\t\tthis._fontFamily = options.fontFamily ?? defaultOptions.fontFamily;\n\t\t\tthis._fontSize = options.fontSize ?? defaultOptions.fontSize;\n\t\t\tthis._fontStyle = options.fontStyle ?? defaultOptions.fontStyle;\n\t\t\tthis._fontVariant = options.fontVariant ?? defaultOptions.fontVariant;\n\t\t\tthis._fontWeight = options.fontWeight ?? defaultOptions.fontWeight;\n\t\t\tthis._fill = options.fill ?? defaultOptions.fill;\n\t\t\tthis._clipping = options.clipping ?? defaultOptions.clipping;\n\t\t\tthis._fitting = options.fitting ?? defaultOptions.fitting;\n\t\t\tthis._wordWrap = toEnum(\n\t\t\t\toptions.wordWrap ?? defaultOptions.wordWrap,\n\t\t\t\tDDynamicTextStyleWordWrap\n\t\t\t);\n\t\t\tthis._lineHeight = options.lineHeight ?? defaultOptions.lineHeight;\n\t\t} else {\n\t\t\tthis._align = defaultOptions.align;\n\t\t\tthis._fontFamily = defaultOptions.fontFamily;\n\t\t\tthis._fontSize = defaultOptions.fontSize;\n\t\t\tthis._fontStyle = defaultOptions.fontStyle;\n\t\t\tthis._fontVariant = defaultOptions.fontVariant;\n\t\t\tthis._fontWeight = defaultOptions.fontWeight;\n\t\t\tthis._fill = defaultOptions.fill;\n\t\t\tthis._clipping = defaultOptions.clipping;\n\t\t\tthis._fitting = defaultOptions.fitting;\n\t\t\tthis._wordWrap = toEnum(defaultOptions.wordWrap, DDynamicTextStyleWordWrap);\n\t\t\tthis._lineHeight = defaultOptions.lineHeight;\n\t\t}\n\n\t\tthis._fontSizeFitted = this._fontSize;\n\t\tthis._lineHeightFitted = this._lineHeight;\n\t\tthis._isFontFitted = false;\n\t\tthis._fontIdFontSize = this._fontSize;\n\t\tthis._fontIdId = -1;\n\t\tthis._fontId = \"\";\n\t\tthis._fontIdApproved = \"\";\n\t\tthis._fillApproved = 0x000000;\n\n\t\tthis._onChange = onChange;\n\t}\n\n\tprotected getDefaultOptions(): Required<DDynamicTextStyleOptions> {\n\t\tlet result = DDynamicTextStyle.DEFAULT_OPTIONS;\n\t\tif (result == null) {\n\t\t\tresult = this.newDefaultOptions();\n\t\t\tDDynamicTextStyle.DEFAULT_OPTIONS = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newDefaultOptions(): Required<DDynamicTextStyleOptions> {\n\t\tconst theme = DThemes.getInstance().get(\"DBase\") as DThemeFont;\n\t\treturn {\n\t\t\talign: \"left\",\n\t\t\tfontFamily: theme.getFontFamilly(),\n\t\t\tfontSize: theme.getFontSize(),\n\t\t\tfontStyle: \"normal\",\n\t\t\tfontVariant: \"normal\",\n\t\t\tfontWeight: \"normal\",\n\t\t\tfill: theme.getColor(new DBaseStateSetImpl()),\n\t\t\tclipping: true,\n\t\t\tfitting: false,\n\t\t\twordWrap: DDynamicTextStyleWordWrap.NONE,\n\t\t\tlineHeight: theme.getLineHeight()\n\t\t};\n\t}\n\n\tget id(): number {\n\t\treturn this._id;\n\t}\n\n\tget idApproved(): number {\n\t\treturn this._idApproved;\n\t}\n\n\tget fontId(): string {\n\t\tthis.update();\n\t\treturn this._fontId;\n\t}\n\n\tget fontIdFontSize(): number {\n\t\tthis.update();\n\t\treturn this._fontSizeFitted;\n\t}\n\n\tget fontIdApproved(): string {\n\t\treturn this._fontIdApproved;\n\t}\n\n\tget fill(): number {\n\t\treturn this._fill;\n\t}\n\n\tset fill(fill: number) {\n\t\tif (this._fill !== fill) {\n\t\t\tthis._fill = fill;\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tprotected onChange(): void {\n\t\tthis._id += 1;\n\t\tthis._onChange();\n\t}\n\n\tget fillApproved(): number {\n\t\treturn this._fillApproved;\n\t}\n\n\tapprove(): void {\n\t\tthis.update();\n\t\tthis._idApproved = this._id;\n\t\tthis._fontIdApproved = this._fontId;\n\t\tthis._fillApproved = this._fill;\n\t}\n\n\tget fontFamily(): string {\n\t\treturn this._fontFamily;\n\t}\n\n\tset fontFamily(fontFamily: string) {\n\t\tif (this._fontFamily !== fontFamily) {\n\t\t\tthis._fontFamily = fontFamily;\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tget fontSize(): number {\n\t\treturn this._fontSize;\n\t}\n\n\tset fontSize(fontSize: number) {\n\t\tif (this._fontSize !== fontSize) {\n\t\t\tthis._fontSize = fontSize;\n\t\t\tthis._fontSizeFitted = fontSize;\n\t\t\tthis._lineHeightFitted = this._lineHeight;\n\t\t\tthis._isFontFitted = false;\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tget fontSizeFitted(): number {\n\t\treturn this._fontSizeFitted;\n\t}\n\n\tget isFontFitted(): boolean {\n\t\treturn this._isFontFitted;\n\t}\n\n\tget fontStyle(): DFontStyle {\n\t\treturn this._fontStyle;\n\t}\n\n\tset fontStyle(fontStyle: DFontStyle) {\n\t\tif (this._fontStyle !== fontStyle) {\n\t\t\tthis._fontStyle = fontStyle;\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tget fontVariant(): DFontVariant {\n\t\treturn this._fontVariant;\n\t}\n\n\tset fontVariant(fontVariant: DFontVariant) {\n\t\tif (this._fontVariant !== fontVariant) {\n\t\t\tthis._fontVariant = fontVariant;\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tget fontWeight(): DFontWeight {\n\t\treturn this._fontWeight;\n\t}\n\n\tset fontWeight(fontWeight: DFontWeight) {\n\t\tif (this._fontWeight !== fontWeight) {\n\t\t\tthis._fontWeight = fontWeight;\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tprotected update(): void {\n\t\tif (this._fontIdId !== this._id) {\n\t\t\tthis._fontIdId = this._id;\n\t\t\tconst fontIdFontSize = this._fitting ? this._fontSizeFitted : this._fontSize;\n\t\t\tthis._fontIdFontSize = fontIdFontSize;\n\t\t\tthis._fontId = this.toFontId(fontIdFontSize);\n\t\t}\n\t}\n\n\ttoFontId(fontSize: number): string {\n\t\treturn `${this._fontStyle} ${this._fontVariant} ${this._fontWeight} ${fontSize}px ${this._fontFamily}`;\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.onChange();\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.onChange();\n\t\t}\n\t}\n\n\tget wordWrap(): DDynamicTextStyleWordWrap {\n\t\treturn this._wordWrap;\n\t}\n\n\tset wordWrap(wordWrap: DDynamicTextStyleWordWrap) {\n\t\tif (this._wordWrap !== wordWrap) {\n\t\t\tthis._wordWrap = wordWrap;\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tget lineHeight(): number {\n\t\treturn this._lineHeight;\n\t}\n\n\tset lineHeight(lineHeight: number) {\n\t\tif (this._lineHeight !== lineHeight) {\n\t\t\tthis._lineHeight = lineHeight;\n\t\t\tthis._fontSizeFitted = this._fontSize;\n\t\t\tthis._lineHeightFitted = lineHeight;\n\t\t\tthis._isFontFitted = false;\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tget lineHeightFitted(): number {\n\t\treturn this._lineHeightFitted;\n\t}\n\n\tset lineHeightFitted(lineHeightFitted: number) {\n\t\tif (this._lineHeightFitted !== lineHeightFitted) {\n\t\t\tthis._lineHeightFitted = lineHeightFitted;\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tfit(fontSize: number, lineHeight: number): boolean {\n\t\tlet isChanged = false;\n\t\tif (fontSize < this._fontSizeFitted) {\n\t\t\tthis._fontSizeFitted = fontSize;\n\t\t\tisChanged = true;\n\t\t}\n\t\tif (this._lineHeightFitted !== lineHeight) {\n\t\t\tthis._lineHeightFitted = lineHeight;\n\t\t\tisChanged = true;\n\t\t}\n\t\tif (this._isFontFitted !== true) {\n\t\t\tthis._isFontFitted = true;\n\t\t\tisChanged = true;\n\t\t}\n\t\tif (isChanged) {\n\t\t\tthis.onChange();\n\t\t}\n\t\treturn isChanged;\n\t}\n\n\tunfit(): boolean {\n\t\tlet isChanged = false;\n\t\tif (this._isFontFitted !== false) {\n\t\t\tthis._isFontFitted = false;\n\t\t\tisChanged = true;\n\t\t}\n\t\tif (this._fontSizeFitted !== this._fontSize) {\n\t\t\tthis._fontSizeFitted = this._fontSize;\n\t\t\tisChanged = true;\n\t\t}\n\t\tif (this._lineHeightFitted !== this._lineHeight) {\n\t\t\tthis._lineHeightFitted = this._lineHeight;\n\t\t\tisChanged = true;\n\t\t}\n\t\tif (isChanged) {\n\t\t\tthis.onChange();\n\t\t}\n\t\treturn isChanged;\n\t}\n}\n"]}
|