@wcardinal/wcardinal-ui 0.425.0 → 0.427.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/dist/types/wcardinal/ui/d-dynamic-text-geometry.d.ts +14 -3
- package/dist/types/wcardinal/ui/d-pane.d.ts +4 -4
- package/dist/types/wcardinal/ui/shape/e-shape-text.d.ts +3 -1
- package/dist/types/wcardinal/ui/shape/variant/build-text.d.ts +1 -1
- package/dist/types/wcardinal/ui/shape/variant/e-shape-text-impl.d.ts +6 -1
- package/dist/types/wcardinal/ui/util/character.d.ts +8 -0
- package/dist/types/wcardinal/ui/util/dynamic-font-atlas-character.d.ts +1 -0
- package/dist/types/wcardinal/ui/util/dynamic-font-atlas-characters.d.ts +1 -1
- package/dist/types/wcardinal/ui/util/dynamic-font-atlas.d.ts +5 -7
- package/dist/types/wcardinal/ui/util/dynamic-sdf-font-atlas.d.ts +4 -5
- package/dist/types/wcardinal/ui/util/dynamic-sdf-font-atlases.d.ts +2 -2
- package/dist/types/wcardinal/ui/util/index.d.ts +1 -0
- package/dist/types/wcardinal/ui/util/util-character-iterator.d.ts +0 -8
- package/dist/wcardinal/ui/d-dynamic-text-geometry.js +56 -49
- package/dist/wcardinal/ui/d-dynamic-text-geometry.js.map +1 -1
- package/dist/wcardinal/ui/d-dynamic-text-measure.js +11 -11
- package/dist/wcardinal/ui/d-dynamic-text-measure.js.map +1 -1
- package/dist/wcardinal/ui/d-pane.js +9 -21
- package/dist/wcardinal/ui/d-pane.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-renderer.js +3 -3
- package/dist/wcardinal/ui/shape/e-shape-renderer.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-text.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/build-text.js +13 -14
- package/dist/wcardinal/ui/shape/variant/build-text.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-text.js +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-text.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-text-impl.js +88 -13
- package/dist/wcardinal/ui/shape/variant/e-shape-text-impl.js.map +1 -1
- package/dist/wcardinal/ui/util/character.js +13 -0
- package/dist/wcardinal/ui/util/character.js.map +1 -0
- package/dist/wcardinal/ui/util/dynamic-font-atlas-character.js +2 -1
- package/dist/wcardinal/ui/util/dynamic-font-atlas-character.js.map +1 -1
- package/dist/wcardinal/ui/util/dynamic-font-atlas-characters.js.map +1 -1
- package/dist/wcardinal/ui/util/dynamic-font-atlas.js +124 -108
- package/dist/wcardinal/ui/util/dynamic-font-atlas.js.map +1 -1
- package/dist/wcardinal/ui/util/dynamic-font-atlases.js +2 -1
- package/dist/wcardinal/ui/util/dynamic-font-atlases.js.map +1 -1
- package/dist/wcardinal/ui/util/dynamic-sdf-font-atlas.js +99 -112
- package/dist/wcardinal/ui/util/dynamic-sdf-font-atlas.js.map +1 -1
- package/dist/wcardinal/ui/util/dynamic-sdf-font-atlases.js +18 -26
- package/dist/wcardinal/ui/util/dynamic-sdf-font-atlases.js.map +1 -1
- package/dist/wcardinal/ui/util/index.js +1 -0
- package/dist/wcardinal/ui/util/index.js.map +1 -1
- package/dist/wcardinal/ui/util/util-character-iterator.js +0 -17
- package/dist/wcardinal/ui/util/util-character-iterator.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark-en-us.js +1 -1
- package/dist/wcardinal-ui-theme-dark-en-us.min.js +1 -1
- package/dist/wcardinal-ui-theme-dark-ja-jp.js +1 -1
- package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +1 -1
- package/dist/wcardinal-ui-theme-dark.js +1 -1
- package/dist/wcardinal-ui-theme-dark.min.js +1 -1
- package/dist/wcardinal-ui-theme-white-en-us.js +1 -1
- package/dist/wcardinal-ui-theme-white-en-us.min.js +1 -1
- package/dist/wcardinal-ui-theme-white-ja-jp.js +1 -1
- package/dist/wcardinal-ui-theme-white-ja-jp.min.js +1 -1
- package/dist/wcardinal-ui-theme-white.js +1 -1
- package/dist/wcardinal-ui-theme-white.min.js +1 -1
- package/dist/wcardinal-ui.cjs.js +508 -450
- package/dist/wcardinal-ui.js +508 -450
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
- package/dist/types/wcardinal/ui/util/ascii.d.ts +0 -1
- package/dist/wcardinal/ui/util/ascii.js +0 -6
- package/dist/wcardinal/ui/util/ascii.js.map +0 -1
|
@@ -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 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, ch, fh, 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\tif (result.isPushableAtNewLine(clippingHeight, lineHeight, fontHeight)) {\n\t\t\t\t\tresult.newLine(lineHeight);\n\t\t\t\t} else {\n\t\t\t\t\tthis.measure5(iterator, clippingWidth, lineHeight, atlas, result, true);\n\t\t\t\t}\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\tif (result.isPushableAtNewLine(clippingHeight, lineHeight, fontHeight)) {\n\t\t\t\t\tresult.newLine(lineHeight);\n\t\t\t\t} else {\n\t\t\t\t\tthis.measure5(iterator, clippingWidth, lineHeight, atlas, result, true);\n\t\t\t\t}\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\tif (result.isPushableAtNewLine(clippingHeight, lineHeight, fontHeight)) {\n\t\t\t\t\tresult.newLine(lineHeight);\n\t\t\t\t} else {\n\t\t\t\t\tthis.measure5(iterator, clippingWidth, lineHeight, atlas, result, true);\n\t\t\t\t}\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\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\tif (result.isPushableAtNewLine(clippingHeight, lineHeight, fontHeight)) {\n\t\t\t\t\tresult.newLine(lineHeight);\n\t\t\t\t} else {\n\t\t\t\t\tthis.measure5(iterator, clippingWidth, lineHeight, atlas, result, true);\n\t\t\t\t}\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":"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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\";\nimport { Character } from \"./util/character\";\n\nexport interface DDynamicTextMeasureModifier {\n\tclipping: boolean;\n\tfitting: boolean;\n\twordWrap: DDynamicTextStyleWordWrap;\n\twidth: number;\n\theight: number;\n\tlineHeight: number;\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, ch, fh, 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 === Character.NEW_LINE) {\n\t\t\t\tif (result.isPushableAtNewLine(clippingHeight, lineHeight, fontHeight)) {\n\t\t\t\t\tresult.newLine(lineHeight);\n\t\t\t\t} else {\n\t\t\t\t\tthis.measure5(iterator, clippingWidth, lineHeight, atlas, result, true);\n\t\t\t\t}\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 === Character.NEW_LINE) {\n\t\t\t\tif (result.isPushableAtNewLine(clippingHeight, lineHeight, fontHeight)) {\n\t\t\t\t\tresult.newLine(lineHeight);\n\t\t\t\t} else {\n\t\t\t\t\tthis.measure5(iterator, clippingWidth, lineHeight, atlas, result, true);\n\t\t\t\t}\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 === Character.NEW_LINE) {\n\t\t\t\tif (result.isPushableAtNewLine(clippingHeight, lineHeight, fontHeight)) {\n\t\t\t\t\tresult.newLine(lineHeight);\n\t\t\t\t} else {\n\t\t\t\t\tthis.measure5(iterator, clippingWidth, lineHeight, atlas, result, true);\n\t\t\t\t}\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 === 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 === 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 === 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\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 === Character.NEW_LINE) {\n\t\t\t\tif (result.isPushableAtNewLine(clippingHeight, lineHeight, fontHeight)) {\n\t\t\t\t\tresult.newLine(lineHeight);\n\t\t\t\t} else {\n\t\t\t\t\tthis.measure5(iterator, clippingWidth, lineHeight, atlas, result, true);\n\t\t\t\t}\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 === 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(Character.DOTS);\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() === Character.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"]}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { __extends } from "tslib";
|
|
6
6
|
import { Point, Rectangle } from "pixi.js";
|
|
7
|
-
import { DApplications } from "./d-applications";
|
|
8
7
|
import { DBase } from "./d-base";
|
|
9
8
|
import { DBaseOverflowMask } from "./d-base-overflow-mask";
|
|
10
9
|
import { DContent } from "./d-content";
|
|
@@ -81,22 +80,7 @@ var DPane = /** @class */ (function (_super) {
|
|
|
81
80
|
});
|
|
82
81
|
};
|
|
83
82
|
DPane.prototype.onScrollBarUpdate = function (isRegionVisible) {
|
|
84
|
-
|
|
85
|
-
if (overflowMask != null) {
|
|
86
|
-
var content = this.content;
|
|
87
|
-
if (isRegionVisible) {
|
|
88
|
-
if (content.mask !== overflowMask) {
|
|
89
|
-
content.mask = overflowMask;
|
|
90
|
-
DApplications.update(this);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
if (content.mask) {
|
|
95
|
-
content.mask = null;
|
|
96
|
-
DApplications.update(this);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
83
|
+
// DO NOTHING
|
|
100
84
|
};
|
|
101
85
|
DPane.prototype.initScrollBar = function (scrollbar) {
|
|
102
86
|
var _this = this;
|
|
@@ -169,14 +153,18 @@ var DPane = /** @class */ (function (_super) {
|
|
|
169
153
|
};
|
|
170
154
|
DPane.prototype.getOverflowMask = function () {
|
|
171
155
|
var result = this._overflowMask;
|
|
172
|
-
if (result
|
|
173
|
-
result =
|
|
156
|
+
if (result === undefined) {
|
|
157
|
+
result = this.newOverflowMask();
|
|
174
158
|
this._overflowMask = result;
|
|
175
|
-
this.reflowable.add(result);
|
|
176
|
-
this.toDirty();
|
|
177
159
|
}
|
|
178
160
|
return result;
|
|
179
161
|
};
|
|
162
|
+
DPane.prototype.newOverflowMask = function () {
|
|
163
|
+
var result = new DBaseOverflowMask(this);
|
|
164
|
+
this.reflowable.add(result);
|
|
165
|
+
this.toDirty();
|
|
166
|
+
return result;
|
|
167
|
+
};
|
|
180
168
|
DPane.prototype.onWheel = function (e, deltas, global) {
|
|
181
169
|
var content = this.content;
|
|
182
170
|
var x = this.getWheelContentX(content, deltas.deltaX * deltas.lowest);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-pane.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-pane.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAoB,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,KAAK,EAA4B,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAmB,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAyB,MAAM,oBAAoB,CAAC;AA2C3E,QAAQ;AACR;IAIU,yBAAqB;IAS9B,eAAY,OAAiB;;QAA7B,YACC,kBAAM,OAAO,CAAC,SAmBd;QAjBA,OAAO;QACP,IAAM,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;QACzB,IAAI,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,mCAAI,KAAK,CAAC,qBAAqB,EAAE,EAAE;YACnD,KAAI,CAAC,IAAI,GAAG,KAAI,CAAC,eAAe,EAAE,CAAC;SACnC;QAED,UAAU;QACV,KAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,OAAO,CAAC,CAAC;QAE5B,aAAa;QACb,IAAM,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;QACjC,KAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAClC,KAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACpC,SAAS,CAAC,MAAM,EAAE,CAAC;QAEnB,UAAU;QACV,KAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;;IAClC,CAAC;IAES,2BAAW,GAArB,UAAsB,KAAY,EAAE,OAAiB;QAArD,iBAyBC;;QAxBA,sGAAsG;QACtG,qHAAqH;QACrH,gFAAgF;QAChF,IAAM,IAAI,GAAG,MAAM,CAAC,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,0CAAE,IAAI,mCAAI,KAAK,CAAC,cAAc,EAAE,EAAE,eAAe,CAAC,CAAC;QACvF,IAAI,IAAI,KAAK,eAAe,CAAC,EAAE,IAAI,IAAI,KAAK,eAAe,CAAC,KAAK,EAAE;YAClE,IAAM,UAAQ,GAAG,IAAI,KAAK,EAAE,CAAC;YAC7B,IAAM,SAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,WAAW,CAAQ;gBAC1C,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,IAAI,KAAK,eAAe,CAAC,KAAK;gBACrC,EAAE,EAAE;oBACH,KAAK,EAAE;wBACN,UAAQ,CAAC,QAAQ,CAAC,SAAO,CAAC,QAAQ,CAAC,CAAC;oBACrC,CAAC;oBACD,IAAI,EAAE,UAAC,MAAa,EAAE,EAAU,EAAE,EAAU;wBAC3C,UAAQ,CAAC,GAAG,CAAC,UAAQ,CAAC,CAAC,GAAG,EAAE,EAAE,UAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC/C,SAAO,CAAC,QAAQ,CAAC,GAAG,CACnB,KAAI,CAAC,UAAU,CAAC,SAAO,EAAE,UAAQ,CAAC,CAAC,CAAC,EACpC,KAAI,CAAC,UAAU,CAAC,SAAO,EAAE,UAAQ,CAAC,CAAC,CAAC,CACpC,CAAC;oBACH,CAAC;iBACD;aACD,CAAC,CAAC;SACH;IACF,CAAC;IAED,sBAAI,4BAAS;aAAb;;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;YAC7B,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAA,IAAI,CAAC,QAAQ,0CAAE,SAAS,CAAC,CAAC;gBACrD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBAC3B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;aACzB;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,4BAAY,GAAtB,UAAuB,OAA+B;QAAtD,iBAIC;QAHA,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,UAAC,eAAwB;YACjE,KAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACJ,CAAC;IAES,iCAAiB,GAA3B,UAA4B,eAAwB;QACnD,IAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,YAAY,IAAI,IAAI,EAAE;YACzB,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC7B,IAAI,eAAe,EAAE;gBACpB,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE;oBAClC,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;oBAC5B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAC3B;aACD;iBAAM;gBACN,IAAI,OAAO,CAAC,IAAI,EAAE;oBAChB,OAAe,CAAC,IAAI,GAAG,IAAI,CAAC;oBAC7B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAC3B;aACD;SACD;IACF,CAAC;IAES,6BAAa,GAAvB,UAAwB,SAAyB;QAAjD,iBAOC;QANA,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,UAAC,KAAa;YACjD,KAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,UAAC,KAAa;YACnD,KAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACJ,CAAC;IAES,gCAAgB,GAA1B,UAA2B,KAAa;QACvC,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,WAAW,IAAI,IAAI,EAAE;YACxB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvB;QACD,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IACpC,CAAC;IAES,gCAAgB,GAA1B,UAA2B,KAAa;QACvC,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,WAAW,IAAI,IAAI,EAAE;YACxB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvB;QACD,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;IACrC,CAAC;IAEkB,sBAAM,GAAzB,UAA0B,CAAmB;QAC5C,iBAAM,MAAM,YAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAES,uBAAO,GAAjB;QACC,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,sBAAI,0BAAO;aAAX;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC3B,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACzB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;aACvB;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,yBAAS,GAAnB,UAAoB,OAAiB;QACpC,IAAM,OAAO,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC;QACjC,IAAI,OAAO,EAAE;YACZ,IAAI,OAAO,YAAY,KAAK,EAAE;gBAC7B,OAAO,OAAO,CAAC;aACf;iBAAM;gBACN,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;aAChC;SACD;QACD,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;IAES,0BAAU,GAApB,UAAqB,OAAyB;QAC7C,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAES,2BAAW,GAArB,UAAsB,OAAc;QAApC,iBAOC;QANA,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;YAClB,KAAI,CAAC,eAAe,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE;YACpB,KAAI,CAAC,eAAe,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACJ,CAAC;IAES,+BAAe,GAAzB;QACC,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QAChC,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,MAAM,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;SACf;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAES,uBAAO,GAAjB,UAAkB,CAAa,EAAE,MAA4B,EAAE,MAAa;QAC3E,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACxE,IAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE;YACvC,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YACtC,IAAI,WAAW,IAAI,IAAI,EAAE;gBACxB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvB;YACD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAES,gCAAgB,GAA1B,UAA2B,OAAc,EAAE,KAAa;QACvD,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE;YAC3B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;SAC3D;QACD,OAAO,OAAO,CAAC,CAAC,CAAC;IAClB,CAAC;IAES,gCAAgB,GAA1B,UAA2B,OAAc,EAAE,KAAa;QACvD,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE;YAC3B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;SAC3D;QACD,OAAO,OAAO,CAAC,CAAC,CAAC;IAClB,CAAC;IAES,0BAAU,GAApB,UAAqB,OAAc,EAAE,CAAS;QAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAES,0BAAU,GAApB,UAAqB,OAAc,EAAE,CAAS;QAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAES,2BAAW,GAArB,UAAsB,MAAW;QAChC,OAAO,iBAAM,WAAW,YAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,YAAY,UAAU,CAAC,CAAC;IACrE,CAAC;IAED,wBAAQ,GAAR,UAAS,QAAgB,EAAE,SAAiB,EAAE,QAAgB,EAAE,SAAiB;QAChF,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,SAAS,CAAC,IAAI,EAAE,CAAC;QACjB,iBAAM,QAAQ,YAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QACzD,SAAS,CAAC,MAAM,EAAE,CAAC;QACnB,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAES,+BAAe,GAAzB;QACC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAES,2CAA2B,GAArC,UACC,OAAc,EACd,QAAgB,EAChB,QAAgB,EAChB,YAAoB,EACpB,aAAqB,EACrB,KAAa,EACb,MAAc,EACd,MAAiB;QAEjB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,OAAO,MAAM,CAAC;IACf,CAAC;IAES,4BAAY,GAAtB,UAAuB,OAAc;QACpC,IAAM,KAAK,GAAG,KAAK,CAAC,UAAU,IAAI,IAAI,KAAK,EAAE,CAAC;QAC9C,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;QAEzB,oBAAoB;QACpB,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;QAC3B,IAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;QAC3B,IAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;QACnC,IAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;QAErC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChB,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAChD,IAAM,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAM,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAM,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAM,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpE,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAM,YAAY,GAAG,KAAK,CAAC,cAAc,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7D,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC;QACpC,IAAI,CAAC,2BAA2B,CAC/B,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,KAAK,EACL,MAAM,EACN,YAAY,CACZ,CAAC;QACF,IAAM,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC;QACrC,IAAM,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC;QACrC,IAAM,cAAc,GAAG,aAAa,CAAC;QACrC,IAAM,cAAc,GAAG,aAAa,CAAC;QACrC,IAAM,cAAc,GAAG,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC;QAC1D,IAAM,cAAc,GAAG,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC;QAE3D,IAAI,IAAI,GAAkB,IAAI,CAAC;QAC/B,IAAI,EAAE,GAAG,cAAc,EAAE;YACxB,IAAI,EAAE,IAAI,cAAc,EAAE;gBACzB,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,EAAE,EAAE,cAAc,GAAG,EAAE,CAAC,CAAC;gBACrE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;aACzD;SACD;aAAM,IAAI,cAAc,GAAG,EAAE,EAAE;YAC/B,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,cAAc,EAAE,EAAE,GAAG,cAAc,CAAC,CAAC;YACrE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;SACzD;QAED,IAAI,IAAI,GAAkB,IAAI,CAAC;QAC/B,IAAI,EAAE,GAAG,cAAc,EAAE;YACxB,IAAI,EAAE,IAAI,cAAc,EAAE;gBACzB,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,EAAE,EAAE,cAAc,GAAG,EAAE,CAAC,CAAC;gBACrE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;aAC3D;SACD;aAAM,IAAI,cAAc,GAAG,EAAE,EAAE;YAC/B,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,cAAc,EAAE,EAAE,GAAG,cAAc,CAAC,CAAC;YACrE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;SAC3D;QAED,IAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;QACzC,IAAI,IAAI,IAAI,IAAI,EAAE;YACjB,IAAI,IAAI,IAAI,IAAI,EAAE;gBACjB,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAChC;iBAAM;gBACN,eAAe,CAAC,CAAC,GAAG,IAAI,CAAC;aACzB;SACD;aAAM;YACN,IAAI,IAAI,IAAI,IAAI,EAAE;gBACjB,eAAe,CAAC,CAAC,GAAG,IAAI,CAAC;aACzB;SACD;QAED,iBAAM,YAAY,YAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,uBAAO,GAAP;QACC,gBAAgB;QAChB,IAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,YAAY,IAAI,IAAI,EAAE;YACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,YAAY,CAAC,OAAO,EAAE,CAAC;SACvB;QACA,IAAY,CAAC,IAAI,GAAG,IAAI,CAAC;QAE1B,iBAAM,OAAO,WAAE,CAAC;IACjB,CAAC;IACF,YAAC;AAAD,CAAC,AAvVD,CAIU,KAAK,GAmVd","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { InteractionEvent, Point, Rectangle } from \"pixi.js\";\nimport { DApplications } from \"./d-applications\";\nimport { DBase, DBaseOptions, DThemeBase } from \"./d-base\";\nimport { DBaseOverflowMask } from \"./d-base-overflow-mask\";\nimport { DContent, DContentOptions } from \"./d-content\";\nimport { UtilGestureMode } from \"./util/util-gesture-mode\";\nimport { DScrollBar } from \"./d-scroll-bar\";\nimport { toEnum } from \"./util/to-enum\";\nimport { UtilGesture } from \"./util/util-gesture\";\nimport { UtilWheelEventDeltas } from \"./util/util-wheel-event\";\nimport { DPaneScrollBar, DPaneScrollBarOptions } from \"./d-pane-scrollbar\";\n\n/**\n * {@link DPane} gesture options.\n */\nexport interface DPaneGestureOptions {\n\tmode?: keyof typeof UtilGestureMode | UtilGestureMode;\n}\n\n/**\n * {@link DPane} options.\n */\nexport interface DPaneOptions<\n\tTHEME extends DThemePane = DThemePane,\n\tCONTENT_OPTIONS extends DBaseOptions = DContentOptions\n> extends DBaseOptions<THEME> {\n\t/**\n\t * True to enable an overflow mask.\n\t */\n\tmask?: boolean;\n\n\t/**\n\t * Content options or a content.\n\t */\n\tcontent?: CONTENT_OPTIONS | DBase;\n\n\t/**\n\t * Scroll bar options.\n\t */\n\tscrollbar?: DPaneScrollBarOptions;\n\n\t/**\n\t * Gesture options.\n\t */\n\tgesture?: DPaneGestureOptions;\n}\n\nexport interface DThemePane extends DThemeBase {\n\tisOverflowMaskEnabled(): boolean;\n\tgetWheelSpeed(): number;\n\tgetGestureMode(): UtilGestureMode;\n}\n\n// Class\nexport class DPane<\n\tTHEME extends DThemePane = DThemePane,\n\tCONTENT_OPTIONS extends DBaseOptions = DContentOptions,\n\tOPTIONS extends DPaneOptions<THEME, CONTENT_OPTIONS> = DPaneOptions<THEME, CONTENT_OPTIONS>\n> extends DBase<THEME, OPTIONS> {\n\tprotected static WORK_POINT?: Point;\n\tprotected static WORK_RECTANGLE?: Rectangle;\n\n\tprotected _content?: DBase;\n\tprotected _overflowMask?: DBaseOverflowMask | null;\n\tprotected _scrollbar?: DPaneScrollBar;\n\tprotected _gestureUtil?: UtilGesture<DPane>;\n\n\tconstructor(options?: OPTIONS) {\n\t\tsuper(options);\n\n\t\t// Mask\n\t\tconst theme = this.theme;\n\t\tif (options?.mask ?? theme.isOverflowMaskEnabled()) {\n\t\t\tthis.mask = this.getOverflowMask();\n\t\t}\n\n\t\t// Content\n\t\tthis.addChild(this.content);\n\n\t\t// Scroll bar\n\t\tconst scrollbar = this.scrollbar;\n\t\tthis.addChild(scrollbar.vertical);\n\t\tthis.addChild(scrollbar.horizontal);\n\t\tscrollbar.update();\n\n\t\t// Gesture\n\t\tthis.initGesture(theme, options);\n\t}\n\n\tprotected initGesture(theme: THEME, options?: OPTIONS): void {\n\t\t// Edge does not fire the wheel event when scrolling using the 2-fingure scroll gesture on a touchpad.\n\t\t// Instead, it fires touch events. This is why the gesture is enabled regardless of the `UtilPointerEvent.touchable`.\n\t\t// https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/7134034/\n\t\tconst mode = toEnum(options?.gesture?.mode ?? theme.getGestureMode(), UtilGestureMode);\n\t\tif (mode === UtilGestureMode.ON || mode === UtilGestureMode.TOUCH) {\n\t\t\tconst position = new Point();\n\t\t\tconst content = this.content;\n\t\t\tthis._gestureUtil = new UtilGesture<DPane>({\n\t\t\t\tbind: this,\n\t\t\t\ttouch: mode === UtilGestureMode.TOUCH,\n\t\t\t\ton: {\n\t\t\t\t\tstart: (): void => {\n\t\t\t\t\t\tposition.copyFrom(content.position);\n\t\t\t\t\t},\n\t\t\t\t\tmove: (target: DPane, dx: number, dy: number): void => {\n\t\t\t\t\t\tposition.set(position.x + dx, position.y + dy);\n\t\t\t\t\t\tcontent.position.set(\n\t\t\t\t\t\t\tthis.toContentX(content, position.x),\n\t\t\t\t\t\t\tthis.toContentY(content, position.y)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tget scrollbar(): DPaneScrollBar {\n\t\tlet result = this._scrollbar;\n\t\tif (result == null) {\n\t\t\tresult = this.newScrollBar(this._options?.scrollbar);\n\t\t\tthis.initScrollBar(result);\n\t\t\tthis._scrollbar = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newScrollBar(options?: DPaneScrollBarOptions): DPaneScrollBar {\n\t\treturn new DPaneScrollBar(this, options, (isRegionVisible: boolean): void => {\n\t\t\tthis.onScrollBarUpdate(isRegionVisible);\n\t\t});\n\t}\n\n\tprotected onScrollBarUpdate(isRegionVisible: boolean): void {\n\t\tconst overflowMask = this._overflowMask;\n\t\tif (overflowMask != null) {\n\t\t\tconst content = this.content;\n\t\t\tif (isRegionVisible) {\n\t\t\t\tif (content.mask !== overflowMask) {\n\t\t\t\t\tcontent.mask = overflowMask;\n\t\t\t\t\tDApplications.update(this);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (content.mask) {\n\t\t\t\t\t(content as any).mask = null;\n\t\t\t\t\tDApplications.update(this);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected initScrollBar(scrollbar: DPaneScrollBar): void {\n\t\tscrollbar.vertical.on(\"regionmove\", (start: number): void => {\n\t\t\tthis.onScrollBarMoveY(start);\n\t\t});\n\t\tscrollbar.horizontal.on(\"regionmove\", (start: number): void => {\n\t\t\tthis.onScrollBarMoveX(start);\n\t\t});\n\t}\n\n\tprotected onScrollBarMoveX(start: number): void {\n\t\tconst gestureUtil = this._gestureUtil;\n\t\tif (gestureUtil != null) {\n\t\t\tgestureUtil.stop(this);\n\t\t}\n\t\tconst content = this.content;\n\t\tcontent.x = -content.width * start;\n\t}\n\n\tprotected onScrollBarMoveY(start: number): void {\n\t\tconst gestureUtil = this._gestureUtil;\n\t\tif (gestureUtil != null) {\n\t\t\tgestureUtil.stop(this);\n\t\t}\n\t\tconst content = this.content;\n\t\tcontent.y = -content.height * start;\n\t}\n\n\tprotected override onOver(e: InteractionEvent): void {\n\t\tsuper.onOver(e);\n\t\tthis.scrollbar.touch();\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DPane\";\n\t}\n\n\tget content(): DBase {\n\t\tlet result = this._content;\n\t\tif (result == null) {\n\t\t\tresult = this.toContent(this._options);\n\t\t\tthis.initContent(result);\n\t\t\tthis._content = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected toContent(options?: OPTIONS): DBase {\n\t\tconst content = options?.content;\n\t\tif (content) {\n\t\t\tif (content instanceof DBase) {\n\t\t\t\treturn content;\n\t\t\t} else {\n\t\t\t\treturn this.newContent(content);\n\t\t\t}\n\t\t}\n\t\treturn this.newContent();\n\t}\n\n\tprotected newContent(options?: CONTENT_OPTIONS): DBase {\n\t\treturn new DContent(options);\n\t}\n\n\tprotected initContent(content: DBase): void {\n\t\tcontent.on(\"move\", (): void => {\n\t\t\tthis.onContentChange();\n\t\t});\n\t\tcontent.on(\"resize\", (): void => {\n\t\t\tthis.onContentChange();\n\t\t});\n\t}\n\n\tprotected getOverflowMask(): DBaseOverflowMask {\n\t\tlet result = this._overflowMask;\n\t\tif (result == null) {\n\t\t\tresult = new DBaseOverflowMask(this);\n\t\t\tthis._overflowMask = result;\n\t\t\tthis.reflowable.add(result);\n\t\t\tthis.toDirty();\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected onWheel(e: WheelEvent, deltas: UtilWheelEventDeltas, global: Point): boolean {\n\t\tconst content = this.content;\n\t\tconst x = this.getWheelContentX(content, deltas.deltaX * deltas.lowest);\n\t\tconst y = this.getWheelContentY(content, deltas.deltaY * deltas.lowest);\n\t\tif (content.x !== x || content.y !== y) {\n\t\t\tconst gestureUtil = this._gestureUtil;\n\t\t\tif (gestureUtil != null) {\n\t\t\t\tgestureUtil.stop(this);\n\t\t\t}\n\t\t\tcontent.position.set(x, y);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected getWheelContentX(content: DBase, delta: number): number {\n\t\tif (0 < delta || delta < 0) {\n\t\t\tconst speed = this.theme.getWheelSpeed();\n\t\t\treturn this.toContentX(content, content.x - delta * speed);\n\t\t}\n\t\treturn content.x;\n\t}\n\n\tprotected getWheelContentY(content: DBase, delta: number): number {\n\t\tif (0 < delta || delta < 0) {\n\t\t\tconst speed = this.theme.getWheelSpeed();\n\t\t\treturn this.toContentY(content, content.y + delta * speed);\n\t\t}\n\t\treturn content.y;\n\t}\n\n\tprotected toContentX(content: DBase, x: number): number {\n\t\treturn Math.min(0, Math.max(this.width - content.width, x));\n\t}\n\n\tprotected toContentY(content: DBase, y: number): number {\n\t\treturn Math.min(0, Math.max(this.height - content.height, y));\n\t}\n\n\tprotected isRefitable(target: any): target is DBase<any, any> {\n\t\treturn super.isRefitable(target) && !(target instanceof DScrollBar);\n\t}\n\n\tonResize(newWidth: number, newHeight: number, oldWidth: number, oldHeight: number): void {\n\t\tconst scrollbar = this.scrollbar;\n\t\tscrollbar.lock();\n\t\tsuper.onResize(newWidth, newHeight, oldWidth, oldHeight);\n\t\tscrollbar.update();\n\t\tscrollbar.unlock(true);\n\t}\n\n\tprotected onContentChange(): void {\n\t\tthis.scrollbar.update();\n\t}\n\n\tprotected getFocusedChildClippingRect(\n\t\tfocused: DBase,\n\t\tcontentX: number,\n\t\tcontentY: number,\n\t\tcontentWidth: number,\n\t\tcontentHeight: number,\n\t\twidth: number,\n\t\theight: number,\n\t\tresult: Rectangle\n\t): Rectangle {\n\t\tresult.x = 0;\n\t\tresult.y = 0;\n\t\tresult.width = width;\n\t\tresult.height = height;\n\t\treturn result;\n\t}\n\n\tprotected onChildFocus(focused: DBase): void {\n\t\tconst point = DPane.WORK_POINT || new Point();\n\t\tDPane.WORK_POINT = point;\n\n\t\t// Content rectangle\n\t\tconst content = this.content;\n\t\tconst contentX = content.x;\n\t\tconst contentY = content.y;\n\t\tconst contentWidth = content.width;\n\t\tconst contentHeight = content.height;\n\n\t\tpoint.set(0, 0);\n\t\tfocused.toGlobal(point, point, false);\n\t\tcontent.toLocal(point, undefined, point, false);\n\t\tconst x0 = contentX + Math.min(contentWidth, Math.max(0, point.x));\n\t\tconst y0 = contentY + Math.min(contentHeight, Math.max(0, point.y));\n\n\t\tpoint.set(focused.width, focused.height);\n\t\tfocused.toGlobal(point, point, true);\n\t\tcontent.toLocal(point, undefined, point, true);\n\t\tconst x1 = contentX + Math.min(contentWidth, Math.max(0, point.x));\n\t\tconst y1 = contentY + Math.min(contentHeight, Math.max(0, point.y));\n\n\t\tconst width = this.width;\n\t\tconst height = this.height;\n\t\tconst clippingRect = DPane.WORK_RECTANGLE || new Rectangle();\n\t\tDPane.WORK_RECTANGLE = clippingRect;\n\t\tthis.getFocusedChildClippingRect(\n\t\t\tfocused,\n\t\t\tcontentX,\n\t\t\tcontentY,\n\t\t\tcontentWidth,\n\t\t\tcontentHeight,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tclippingRect\n\t\t);\n\t\tconst clippingRectX = clippingRect.x;\n\t\tconst clippingRectY = clippingRect.y;\n\t\tconst clippingRectX0 = clippingRectX;\n\t\tconst clippingRectY0 = clippingRectY;\n\t\tconst clippingRectX1 = clippingRectX + clippingRect.width;\n\t\tconst clippingRectY1 = clippingRectY + clippingRect.height;\n\n\t\tlet newX: number | null = null;\n\t\tif (x0 < clippingRectX0) {\n\t\t\tif (x1 <= clippingRectX1) {\n\t\t\t\tnewX = contentX + Math.min(clippingRectX0 - x0, clippingRectX1 - x1);\n\t\t\t\tnewX = Math.max(width - contentWidth, Math.min(0, newX));\n\t\t\t}\n\t\t} else if (clippingRectX1 < x1) {\n\t\t\tnewX = contentX - Math.min(x0 - clippingRectX0, x1 - clippingRectX1);\n\t\t\tnewX = Math.max(width - contentWidth, Math.min(0, newX));\n\t\t}\n\n\t\tlet newY: number | null = null;\n\t\tif (y0 < clippingRectY0) {\n\t\t\tif (y1 <= clippingRectY1) {\n\t\t\t\tnewY = contentY + Math.min(clippingRectY0 - y0, clippingRectY1 - y1);\n\t\t\t\tnewY = Math.max(height - contentHeight, Math.min(0, newY));\n\t\t\t}\n\t\t} else if (clippingRectY1 < y1) {\n\t\t\tnewY = contentY - Math.min(y0 - clippingRectY0, y1 - clippingRectY1);\n\t\t\tnewY = Math.max(height - contentHeight, Math.min(0, newY));\n\t\t}\n\n\t\tconst contentPosition = content.position;\n\t\tif (newX != null) {\n\t\t\tif (newY != null) {\n\t\t\t\tcontentPosition.set(newX, newY);\n\t\t\t} else {\n\t\t\t\tcontentPosition.x = newX;\n\t\t\t}\n\t\t} else {\n\t\t\tif (newY != null) {\n\t\t\t\tcontentPosition.y = newY;\n\t\t\t}\n\t\t}\n\n\t\tsuper.onChildFocus(focused);\n\t}\n\n\tdestroy(): void {\n\t\t// Overflow mask\n\t\tconst overflowMask = this._overflowMask;\n\t\tif (overflowMask != null) {\n\t\t\tthis._overflowMask = null;\n\t\t\toverflowMask.destroy();\n\t\t}\n\t\t(this as any).mask = null;\n\n\t\tsuper.destroy();\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"d-pane.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-pane.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Graphics, InteractionEvent, Point, Rectangle } from \"pixi.js\";\nimport { DBase, DBaseOptions, DThemeBase } from \"./d-base\";\nimport { DBaseOverflowMask } from \"./d-base-overflow-mask\";\nimport { DContent, DContentOptions } from \"./d-content\";\nimport { UtilGestureMode } from \"./util/util-gesture-mode\";\nimport { DScrollBar } from \"./d-scroll-bar\";\nimport { toEnum } from \"./util/to-enum\";\nimport { UtilGesture } from \"./util/util-gesture\";\nimport { UtilWheelEventDeltas } from \"./util/util-wheel-event\";\nimport { DPaneScrollBar, DPaneScrollBarOptions } from \"./d-pane-scrollbar\";\n\n/**\n * {@link DPane} gesture options.\n */\nexport interface DPaneGestureOptions {\n\tmode?: keyof typeof UtilGestureMode | UtilGestureMode;\n}\n\n/**\n * {@link DPane} options.\n */\nexport interface DPaneOptions<\n\tTHEME extends DThemePane = DThemePane,\n\tCONTENT_OPTIONS extends DBaseOptions = DContentOptions\n> extends DBaseOptions<THEME> {\n\t/**\n\t * True to enable an overflow mask.\n\t */\n\tmask?: boolean;\n\n\t/**\n\t * Content options or a content.\n\t */\n\tcontent?: CONTENT_OPTIONS | DBase;\n\n\t/**\n\t * Scroll bar options.\n\t */\n\tscrollbar?: DPaneScrollBarOptions;\n\n\t/**\n\t * Gesture options.\n\t */\n\tgesture?: DPaneGestureOptions;\n}\n\nexport interface DThemePane extends DThemeBase {\n\tisOverflowMaskEnabled(): boolean;\n\tgetWheelSpeed(): number;\n\tgetGestureMode(): UtilGestureMode;\n}\n\n// Class\nexport class DPane<\n\tTHEME extends DThemePane = DThemePane,\n\tCONTENT_OPTIONS extends DBaseOptions = DContentOptions,\n\tOPTIONS extends DPaneOptions<THEME, CONTENT_OPTIONS> = DPaneOptions<THEME, CONTENT_OPTIONS>\n> extends DBase<THEME, OPTIONS> {\n\tprotected static WORK_POINT?: Point;\n\tprotected static WORK_RECTANGLE?: Rectangle;\n\n\tprotected _content?: DBase;\n\tprotected _overflowMask?: Graphics | null;\n\tprotected _scrollbar?: DPaneScrollBar;\n\tprotected _gestureUtil?: UtilGesture<DPane>;\n\n\tconstructor(options?: OPTIONS) {\n\t\tsuper(options);\n\n\t\t// Mask\n\t\tconst theme = this.theme;\n\t\tif (options?.mask ?? theme.isOverflowMaskEnabled()) {\n\t\t\tthis.mask = this.getOverflowMask();\n\t\t}\n\n\t\t// Content\n\t\tthis.addChild(this.content);\n\n\t\t// Scroll bar\n\t\tconst scrollbar = this.scrollbar;\n\t\tthis.addChild(scrollbar.vertical);\n\t\tthis.addChild(scrollbar.horizontal);\n\t\tscrollbar.update();\n\n\t\t// Gesture\n\t\tthis.initGesture(theme, options);\n\t}\n\n\tprotected initGesture(theme: THEME, options?: OPTIONS): void {\n\t\t// Edge does not fire the wheel event when scrolling using the 2-fingure scroll gesture on a touchpad.\n\t\t// Instead, it fires touch events. This is why the gesture is enabled regardless of the `UtilPointerEvent.touchable`.\n\t\t// https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/7134034/\n\t\tconst mode = toEnum(options?.gesture?.mode ?? theme.getGestureMode(), UtilGestureMode);\n\t\tif (mode === UtilGestureMode.ON || mode === UtilGestureMode.TOUCH) {\n\t\t\tconst position = new Point();\n\t\t\tconst content = this.content;\n\t\t\tthis._gestureUtil = new UtilGesture<DPane>({\n\t\t\t\tbind: this,\n\t\t\t\ttouch: mode === UtilGestureMode.TOUCH,\n\t\t\t\ton: {\n\t\t\t\t\tstart: (): void => {\n\t\t\t\t\t\tposition.copyFrom(content.position);\n\t\t\t\t\t},\n\t\t\t\t\tmove: (target: DPane, dx: number, dy: number): void => {\n\t\t\t\t\t\tposition.set(position.x + dx, position.y + dy);\n\t\t\t\t\t\tcontent.position.set(\n\t\t\t\t\t\t\tthis.toContentX(content, position.x),\n\t\t\t\t\t\t\tthis.toContentY(content, position.y)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tget scrollbar(): DPaneScrollBar {\n\t\tlet result = this._scrollbar;\n\t\tif (result == null) {\n\t\t\tresult = this.newScrollBar(this._options?.scrollbar);\n\t\t\tthis.initScrollBar(result);\n\t\t\tthis._scrollbar = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newScrollBar(options?: DPaneScrollBarOptions): DPaneScrollBar {\n\t\treturn new DPaneScrollBar(this, options, (isRegionVisible: boolean): void => {\n\t\t\tthis.onScrollBarUpdate(isRegionVisible);\n\t\t});\n\t}\n\n\tprotected onScrollBarUpdate(isRegionVisible: boolean): void {\n\t\t// DO NOTHING\n\t}\n\n\tprotected initScrollBar(scrollbar: DPaneScrollBar): void {\n\t\tscrollbar.vertical.on(\"regionmove\", (start: number): void => {\n\t\t\tthis.onScrollBarMoveY(start);\n\t\t});\n\t\tscrollbar.horizontal.on(\"regionmove\", (start: number): void => {\n\t\t\tthis.onScrollBarMoveX(start);\n\t\t});\n\t}\n\n\tprotected onScrollBarMoveX(start: number): void {\n\t\tconst gestureUtil = this._gestureUtil;\n\t\tif (gestureUtil != null) {\n\t\t\tgestureUtil.stop(this);\n\t\t}\n\t\tconst content = this.content;\n\t\tcontent.x = -content.width * start;\n\t}\n\n\tprotected onScrollBarMoveY(start: number): void {\n\t\tconst gestureUtil = this._gestureUtil;\n\t\tif (gestureUtil != null) {\n\t\t\tgestureUtil.stop(this);\n\t\t}\n\t\tconst content = this.content;\n\t\tcontent.y = -content.height * start;\n\t}\n\n\tprotected override onOver(e: InteractionEvent): void {\n\t\tsuper.onOver(e);\n\t\tthis.scrollbar.touch();\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DPane\";\n\t}\n\n\tget content(): DBase {\n\t\tlet result = this._content;\n\t\tif (result == null) {\n\t\t\tresult = this.toContent(this._options);\n\t\t\tthis.initContent(result);\n\t\t\tthis._content = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected toContent(options?: OPTIONS): DBase {\n\t\tconst content = options?.content;\n\t\tif (content) {\n\t\t\tif (content instanceof DBase) {\n\t\t\t\treturn content;\n\t\t\t} else {\n\t\t\t\treturn this.newContent(content);\n\t\t\t}\n\t\t}\n\t\treturn this.newContent();\n\t}\n\n\tprotected newContent(options?: CONTENT_OPTIONS): DBase {\n\t\treturn new DContent(options);\n\t}\n\n\tprotected initContent(content: DBase): void {\n\t\tcontent.on(\"move\", (): void => {\n\t\t\tthis.onContentChange();\n\t\t});\n\t\tcontent.on(\"resize\", (): void => {\n\t\t\tthis.onContentChange();\n\t\t});\n\t}\n\n\tprotected getOverflowMask(): Graphics | null {\n\t\tlet result = this._overflowMask;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newOverflowMask();\n\t\t\tthis._overflowMask = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newOverflowMask(): Graphics | null {\n\t\tconst result = new DBaseOverflowMask(this);\n\t\tthis.reflowable.add(result);\n\t\tthis.toDirty();\n\t\treturn result;\n\t}\n\n\tprotected onWheel(e: WheelEvent, deltas: UtilWheelEventDeltas, global: Point): boolean {\n\t\tconst content = this.content;\n\t\tconst x = this.getWheelContentX(content, deltas.deltaX * deltas.lowest);\n\t\tconst y = this.getWheelContentY(content, deltas.deltaY * deltas.lowest);\n\t\tif (content.x !== x || content.y !== y) {\n\t\t\tconst gestureUtil = this._gestureUtil;\n\t\t\tif (gestureUtil != null) {\n\t\t\t\tgestureUtil.stop(this);\n\t\t\t}\n\t\t\tcontent.position.set(x, y);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected getWheelContentX(content: DBase, delta: number): number {\n\t\tif (0 < delta || delta < 0) {\n\t\t\tconst speed = this.theme.getWheelSpeed();\n\t\t\treturn this.toContentX(content, content.x - delta * speed);\n\t\t}\n\t\treturn content.x;\n\t}\n\n\tprotected getWheelContentY(content: DBase, delta: number): number {\n\t\tif (0 < delta || delta < 0) {\n\t\t\tconst speed = this.theme.getWheelSpeed();\n\t\t\treturn this.toContentY(content, content.y + delta * speed);\n\t\t}\n\t\treturn content.y;\n\t}\n\n\tprotected toContentX(content: DBase, x: number): number {\n\t\treturn Math.min(0, Math.max(this.width - content.width, x));\n\t}\n\n\tprotected toContentY(content: DBase, y: number): number {\n\t\treturn Math.min(0, Math.max(this.height - content.height, y));\n\t}\n\n\tprotected isRefitable(target: any): target is DBase<any, any> {\n\t\treturn super.isRefitable(target) && !(target instanceof DScrollBar);\n\t}\n\n\tonResize(newWidth: number, newHeight: number, oldWidth: number, oldHeight: number): void {\n\t\tconst scrollbar = this.scrollbar;\n\t\tscrollbar.lock();\n\t\tsuper.onResize(newWidth, newHeight, oldWidth, oldHeight);\n\t\tscrollbar.update();\n\t\tscrollbar.unlock(true);\n\t}\n\n\tprotected onContentChange(): void {\n\t\tthis.scrollbar.update();\n\t}\n\n\tprotected getFocusedChildClippingRect(\n\t\tfocused: DBase,\n\t\tcontentX: number,\n\t\tcontentY: number,\n\t\tcontentWidth: number,\n\t\tcontentHeight: number,\n\t\twidth: number,\n\t\theight: number,\n\t\tresult: Rectangle\n\t): Rectangle {\n\t\tresult.x = 0;\n\t\tresult.y = 0;\n\t\tresult.width = width;\n\t\tresult.height = height;\n\t\treturn result;\n\t}\n\n\tprotected onChildFocus(focused: DBase): void {\n\t\tconst point = DPane.WORK_POINT || new Point();\n\t\tDPane.WORK_POINT = point;\n\n\t\t// Content rectangle\n\t\tconst content = this.content;\n\t\tconst contentX = content.x;\n\t\tconst contentY = content.y;\n\t\tconst contentWidth = content.width;\n\t\tconst contentHeight = content.height;\n\n\t\tpoint.set(0, 0);\n\t\tfocused.toGlobal(point, point, false);\n\t\tcontent.toLocal(point, undefined, point, false);\n\t\tconst x0 = contentX + Math.min(contentWidth, Math.max(0, point.x));\n\t\tconst y0 = contentY + Math.min(contentHeight, Math.max(0, point.y));\n\n\t\tpoint.set(focused.width, focused.height);\n\t\tfocused.toGlobal(point, point, true);\n\t\tcontent.toLocal(point, undefined, point, true);\n\t\tconst x1 = contentX + Math.min(contentWidth, Math.max(0, point.x));\n\t\tconst y1 = contentY + Math.min(contentHeight, Math.max(0, point.y));\n\n\t\tconst width = this.width;\n\t\tconst height = this.height;\n\t\tconst clippingRect = DPane.WORK_RECTANGLE || new Rectangle();\n\t\tDPane.WORK_RECTANGLE = clippingRect;\n\t\tthis.getFocusedChildClippingRect(\n\t\t\tfocused,\n\t\t\tcontentX,\n\t\t\tcontentY,\n\t\t\tcontentWidth,\n\t\t\tcontentHeight,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tclippingRect\n\t\t);\n\t\tconst clippingRectX = clippingRect.x;\n\t\tconst clippingRectY = clippingRect.y;\n\t\tconst clippingRectX0 = clippingRectX;\n\t\tconst clippingRectY0 = clippingRectY;\n\t\tconst clippingRectX1 = clippingRectX + clippingRect.width;\n\t\tconst clippingRectY1 = clippingRectY + clippingRect.height;\n\n\t\tlet newX: number | null = null;\n\t\tif (x0 < clippingRectX0) {\n\t\t\tif (x1 <= clippingRectX1) {\n\t\t\t\tnewX = contentX + Math.min(clippingRectX0 - x0, clippingRectX1 - x1);\n\t\t\t\tnewX = Math.max(width - contentWidth, Math.min(0, newX));\n\t\t\t}\n\t\t} else if (clippingRectX1 < x1) {\n\t\t\tnewX = contentX - Math.min(x0 - clippingRectX0, x1 - clippingRectX1);\n\t\t\tnewX = Math.max(width - contentWidth, Math.min(0, newX));\n\t\t}\n\n\t\tlet newY: number | null = null;\n\t\tif (y0 < clippingRectY0) {\n\t\t\tif (y1 <= clippingRectY1) {\n\t\t\t\tnewY = contentY + Math.min(clippingRectY0 - y0, clippingRectY1 - y1);\n\t\t\t\tnewY = Math.max(height - contentHeight, Math.min(0, newY));\n\t\t\t}\n\t\t} else if (clippingRectY1 < y1) {\n\t\t\tnewY = contentY - Math.min(y0 - clippingRectY0, y1 - clippingRectY1);\n\t\t\tnewY = Math.max(height - contentHeight, Math.min(0, newY));\n\t\t}\n\n\t\tconst contentPosition = content.position;\n\t\tif (newX != null) {\n\t\t\tif (newY != null) {\n\t\t\t\tcontentPosition.set(newX, newY);\n\t\t\t} else {\n\t\t\t\tcontentPosition.x = newX;\n\t\t\t}\n\t\t} else {\n\t\t\tif (newY != null) {\n\t\t\t\tcontentPosition.y = newY;\n\t\t\t}\n\t\t}\n\n\t\tsuper.onChildFocus(focused);\n\t}\n\n\tdestroy(): void {\n\t\t// Overflow mask\n\t\tconst overflowMask = this._overflowMask;\n\t\tif (overflowMask != null) {\n\t\t\tthis._overflowMask = null;\n\t\t\toverflowMask.destroy();\n\t\t}\n\t\tthis.mask = null;\n\n\t\tsuper.destroy();\n\t}\n}\n"]}
|
|
@@ -49,9 +49,9 @@ var EShapeRenderer = /** @class */ (function (_super) {
|
|
|
49
49
|
}
|
|
50
50
|
// Font texture atlas
|
|
51
51
|
var text = shape.text;
|
|
52
|
-
var
|
|
53
|
-
if (0 <
|
|
54
|
-
fontAtlases.add(text.family,
|
|
52
|
+
var textCharacters = text.characters;
|
|
53
|
+
if (0 < textCharacters.length) {
|
|
54
|
+
fontAtlases.add(text.family, textCharacters, text.nacharacters);
|
|
55
55
|
}
|
|
56
56
|
};
|
|
57
57
|
EShapeRenderer.prototype.updateAtlases = function (shapes, atlas, fontAtlases, defaultTexture, baseTexture) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-renderer.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-renderer.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n\tBaseTexture,\n\tBLEND_MODES,\n\tObjectRenderer,\n\tRenderer,\n\tShader,\n\tTexture,\n\tutils\n} from \"pixi.js\";\nimport { DynamicAtlas } from \"../util/dynamic-atlas\";\nimport { DynamicAtlasItemImage } from \"../util/dynamic-atlas-item-image\";\nimport { DynamicSDFFontAtlases } from \"../util/dynamic-sdf-font-atlases\";\nimport { EShape } from \"./e-shape\";\nimport { EShapeBuffer } from \"./e-shape-buffer\";\nimport { EShapeContainer } from \"./e-shape-container\";\nimport { EShapeRendererIterator } from \"./e-shape-renderer-iterator\";\n\nconst VERTEX_SHADER = `\nattribute highp vec2 aPosition;\nattribute highp vec2 aStepA;\nattribute highp vec4 aStepB;\nattribute highp vec3 aColor;\nattribute highp vec2 aUv;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mediump float shapeScale;\nuniform mediump float antialiasWeight;\n\nvarying mediump float vType;\nvarying mediump vec2 vStepA;\nvarying mediump vec4 vStepB;\nvarying mediump vec4 vColorFill;\nvarying mediump vec4 vColorStroke;\nvarying mediump vec2 vUv;\n\nvec2 toInverse(in vec2 v) {\n\treturn vec2(-v.y, v.x);\n}\n\nvec4 toGeneral(in float v) {\n\tvec4 c = vec4(1.0, 1.0/64.0, 1.0/64.0/64.0, 1.0/64.0/64.0/64.0) * v;\n\tc -= fract(c);\n\tc -= c.yzwx * vec4(64.0, 64.0, 64.0, 0.0);\n\treturn c;\n}\n\nfloat toStrokeWidthScale(in float scale) {\n\treturn (\n\t\tscale == 3.0 || scale == 7.0 ?\n\t\tshapeScale : (\n\t\t\tscale == 1.0 || scale == 5.0 ?\n\t\t\tmin(1.0, shapeScale) : (\n\t\t\t\tscale == 2.0 || scale == 6.0 ?\n\t\t\t\tmax(1.0, shapeScale) : 1.0\n\t\t\t)\n\t\t)\n\t);\n}\n\nvec2 toUnpackedF2x1024(in float v) {\n\tvec2 c = vec2(1.0, 1.0/1024.0) * v;\n\tc -= fract(c);\n\tc -= c.yx * vec2(1024.0, 0.0);\n\tc /= vec2(1023.0, 1023.0);\n\treturn c;\n}\n\nvec3 toUnpackedF3x256(in float v) {\n\tvec3 c = vec3(1.0, 1.0/256.0, 1.0/256.0/256.0) * v;\n\tc -= fract(c);\n\tc -= c.yzx * vec3(256.0, 256.0, 0.0);\n\tc /= 255.0;\n\treturn c;\n}\n\nvec2 toPosition012(in vec2 v) {\n\treturn (projectionMatrix * translationMatrix * vec3(v, 1.0)).xy;\n}\n\nvec4 toStepB01(in vec4 sb) {\n\treturn vec4(sb.xy, toUnpackedF2x1024(sb.z));\n}\n\nvec4 toStepB2(in vec4 sb, in float strokeWidth) {\n\tfloat x = min(0.4, 0.4 / 12.0 * sb.x * antialiasWeight);\n\tfloat w = clamp(strokeWidth, 0.0, 1.0) * 0.4;\n\tfloat p = w * sb.y + sb.z;\n\tfloat y = 0.5 - p;\n\tfloat z = 0.5 - p - w;\n\treturn vec4(y, z, y - max(0.01, y - x), z - max(0.01, z - x));\n}\n\nvec2 toPosition3(in float type, in vec2 p, in float npacked, in float length, in float strokeWidth, out float shift) {\n\tvec3 t = vec3(1.0, 1.0/1024.0, 1.0/1024.0/1024.0) * npacked;\n\tt -= fract(t);\n\tt -= t.yzx * vec3(1024.0, 1024.0, 0.0);\n\tt *= vec3(1.0/511.5, 1.0/511.5, 1.0);\n\tt -= vec3(1.0, 1.0, 0.0);\n\tvec2 n0 = vec2(t.x, ((0.5 < t.z && t.z < 1.5) || 2.5 < t.z ? +1.0 : -1.0) * sqrt(max(0.0, 1.0 - t.x * t.x)));\n\tvec2 n1 = vec2(t.y, (1.5 < t.z ? +1.0 : -1.0) * sqrt(max(0.0, 1.0 - t.y * t.y)));\n\n\tvec2 n0i = toInverse(n0);\n\tvec2 n1i = toInverse(n1);\n\tfloat direction = sign(4.5 - type);\n\n\t// Offset\n\tfloat cross = dot(n0i, n1);\n\tbool bcross = 0.00001 < abs(cross);\n\tfloat crossi = (bcross ? 1.0 / cross : 0.0);\n\tfloat b = dot(n1 - n0, n0) * crossi;\n\tfloat offsetSize = direction * strokeWidth * 0.5;\n\tvec2 offset = n1 + n1i * b;\n\n\t// Miter\n\tvec2 pmiter = p + offsetSize * offset;\n\tfloat miterAngle0 = dot( n0i, offsetSize * offset - length * n0i );\n\tfloat miterAngle1 = dot( n1i, offsetSize * offset + length * n1i );\n\tfloat miterLength = dot( offset, offset );\n\tfloat miterSide = direction * cross;\n\n\t// Bevel\n\tvec2 n = (type == 4.0 || type == 6.0 ? n1 : n0);\n\tvec2 pbevel = p + offsetSize * n;\n\n\t//\n\tvec2 presult = (\n\t\t0.0 <= miterSide ?\n\t\t(miterAngle0 < 0.0 && 0.0 <= miterAngle1 && bcross ? pmiter : pbevel) :\n\t\t(miterLength < 6.0 && bcross ? pmiter : pbevel)\n\t);\n\tvec2 ni = (type == 4.0 || type == 6.0 ? n1i : n0i);\n\tshift = dot(ni, p - presult);\n\treturn toPosition012(presult);\n}\n\nvec2 toStepA3(in float type, in float strokeWidth) {\n\treturn vec2(type < 4.5 ? 1.0 : 0.0, strokeWidth);\n}\n\nvec4 toStepB3(in float shift, in float dash, in float strokeScaling, in float strokeWidthScale) {\n\tfloat l = aStepB.y + shift;\n\tfloat s = aStepA.x * (\n\t\tstrokeScaling == 4.0 || strokeScaling == 5.0 ||\n\t\tstrokeScaling == 6.0 || strokeScaling == 7.0 ?\n\t\tstrokeWidthScale : 1.0\n\t);\n\tfloat lt = aStepB.z;\n\treturn (dash < 0.5 ?\n\t\tvec4(l, 2.0 * abs(lt), 0.0, lt) :\n\t\t(dash < 3.5 ?\n\t\t\t(dash < 1.5 ?\n\t\t\t\tvec4(l, s, s, lt) :\n\t\t\t\t(2.5 < dash ?\n\t\t\t\t\tvec4(l, s, 2.0 * s, lt) :\n\t\t\t\t\tvec4(l, s, 0.5 * s, lt)\n\t\t\t\t)\n\t\t\t) :\n\t\t\t(dash < 4.5 ?\n\t\t\t\tvec4(l, 2.0 * s, s, lt) :\n\t\t\t\t(5.5 < dash ?\n\t\t\t\t\tvec4(l, 2.0 * s, 2.0 * s, lt) :\n\t\t\t\t\tvec4(l, 2.0 * s, 0.5 * s, lt)\n\t\t\t\t)\n\t\t\t)\n\t\t)\n\t);\n}\n\nvoid toColors(in vec3 source, out vec4 fillColor, out vec4 strokeColor) {\n\tvec2 a = toUnpackedF2x1024(source.z);\n\tfillColor.xyz = toUnpackedF3x256(source.x).zyx * a.x;\n\tfillColor.w = a.x;\n\tstrokeColor.xyz = toUnpackedF3x256(source.y).zyx * a.y;\n\tstrokeColor.w = a.y;\n}\n\nvoid main(void) {\n\tvec4 general = toGeneral(aStepA.y);\n\tfloat type = general.x;\n\tfloat strokeScaling = general.y;\n\tfloat strokeWidthScale = toStrokeWidthScale(strokeScaling);\n\tfloat strokeWidth = strokeWidthScale * aStepA.x;\n\n\t// Type 0, 1\n\tvec2 p012 = toPosition012(aPosition);\n\tvec2 sa012 = strokeWidth * general.zw;\n\tvec4 sb01 = toStepB01(aStepB);\n\n\t// Type 2\n\tvec4 sb2 = toStepB2(aStepB, strokeWidth);\n\n\t// Type 3 ~ 6\n\tfloat shift3 = 0.0;\n\tvec2 p3 = toPosition3(type, aPosition, aStepB.x, aStepB.w, strokeWidth, shift3);\n\tvec2 sa3 = toStepA3(type, strokeWidth);\n\tvec4 sb3 = toStepB3(shift3, general.z, strokeScaling, strokeWidthScale);\n\n\t//\n\tgl_Position = vec4((2.5 < type ? p3 : p012), 0.0, 1.0);\n\tvType = type;\n\tvStepA = (2.5 < type ? sa3 : sa012);\n\tvStepB = (1.5 < type ? (2.5 < type ? sb3 : sb2) : sb01);\n\ttoColors(aColor, vColorFill, vColorStroke);\n\tvUv = aUv;\n}`;\n\nconst FRAGMENT_SHADER = `\nvarying mediump float vType;\nvarying mediump vec2 vStepA;\nvarying mediump vec4 vStepB;\nvarying mediump vec4 vColorFill;\nvarying mediump vec4 vColorStroke;\nvarying mediump vec2 vUv;\n\nuniform sampler2D sampler;\nuniform mediump float antialiasWeight;\n\nvec4 toColor0(in vec4 texture) {\n\tvec2 d = vStepB.xy;\n\tvec2 c = vStepB.zw;\n\tvec2 awd = antialiasWeight / d;\n\tvec2 swd = vStepA / d;\n\tvec2 one = vec2(1.0);\n\tvec2 zero = vec2(0.0);\n\tvec2 p0 = clamp(one - awd, zero, one);\n\tvec2 p1 = clamp(one - swd, zero, one);\n\tvec2 p2 = clamp(one - swd - awd, zero, one);\n\tvec2 s0 = smoothstep(p0, one, c);\n\tvec2 s1 = smoothstep(p2, p1, c);\n\tfloat s2 = max(s0.x, s0.y);\n\tfloat s3 = max(s1.x, s1.y);\n\treturn texture * (\n\t\tvColorStroke * (s3 - s2) +\n\t\tvColorFill * (1.0 - s3)\n\t);\n}\n\nvec4 toColor1(in vec4 texture) {\n\tvec2 d = vStepB.xy;\n\tvec2 c = vStepB.zw;\n\tvec2 awd = antialiasWeight / d;\n\tvec2 swd = vStepA / d;\n\tvec2 one = vec2(1.0);\n\tvec2 zero = vec2(0.0);\n\tfloat s0 = smoothstep(length(c), length(c/clamp(one - awd, zero, one)), 1.0);\n\tfloat s1 = smoothstep(length(c/clamp(one - swd, zero, one)), length(c/clamp(one - swd - awd, zero, one)), 1.0);\n\treturn texture * (\n\t\tvColorStroke * (s0 - s1) +\n\t\tvColorFill * s1\n\t);\n}\n\nvec4 toColor2(in vec4 texture) {\n\tvec2 p0 = vStepB.xy;\n\tvec2 p1 = vStepB.zw;\n\tvec2 d = vec2(dot(texture, vec4(1.0, 1.0/255.0, 1.0/255.0/255.0, 0.0)));\n\tvec2 s = smoothstep(p0 - p1, p0 + p1, d);\n\treturn vColorStroke * (s.y - s.x) + vColorFill * s.x;\n}\n\nvec4 toColor3(in vec4 texture) {\n\tfloat l = vStepB.x;\n\tfloat lp0 = vStepB.y;\n\tfloat lp1 = vStepB.z;\n\tfloat lt = vStepB.w;\n\tfloat ld = antialiasWeight;\n\tfloat lm = mod(l, lp0 + lp1);\n\tfloat ls0 = (0.0 < lp1 ? smoothstep(0.0, ld, lm) - smoothstep(lp0, lp0 + ld, lm) : 1.0);\n\tfloat ls1 = (0.0 <= lt ? smoothstep(0.0, ld, l) - smoothstep(lt - ld, lt, l) : 1.0);\n\n\tfloat c = vStepA.x;\n\tfloat awd = antialiasWeight / vStepA.y;\n\tfloat p0 = clamp(awd, 0.0, 1.0);\n\tfloat p1 = clamp(1.0 - awd, 0.0, 1.0);\n\tfloat s0 = smoothstep(0.0, p0, c);\n\tfloat s1 = smoothstep(p1, 1.0, c);\n\treturn texture * vColorStroke * (s0 - s1) * ls0 * ls1;\n}\n\nvoid main(void) {\n\tvec4 texture = texture2D(sampler, vUv);\n\tgl_FragColor = (vType < 1.5 ?\n\t\t(vType < 0.5 ?\n\t\t\ttoColor0(texture) :\n\t\t\ttoColor1(texture)\n\t\t) :\n\t\t(vType < 2.5 ?\n\t\t\ttoColor2(texture) :\n\t\t\ttoColor3(texture)\n\t\t)\n\t);\n}`;\n\nexport class EShapeRenderer extends ObjectRenderer {\n\tstatic SHADER: Shader | null = null;\n\n\tprotected _shader: Shader | null;\n\tprotected _iterator: EShapeRendererIterator;\n\tprotected _bufferSizeMax: number;\n\n\tconstructor(renderer: Renderer) {\n\t\tsuper(renderer);\n\t\tEShapeRenderer.SHADER =\n\t\t\tEShapeRenderer.SHADER || Shader.from(VERTEX_SHADER, FRAGMENT_SHADER);\n\t\tthis._shader = EShapeRenderer.SHADER;\n\t\tthis._iterator = new EShapeRendererIterator();\n\t\tthis._bufferSizeMax = this.getBufferSizeMax(renderer);\n\t}\n\n\tprotected getBufferSizeMax(renderer: Renderer): number {\n\t\tconst context = renderer.context;\n\t\tconst extensions = context.extensions as any;\n\t\tif (1 < context.webGLVersion || !!extensions.uint32ElementIndex) {\n\t\t\treturn 1431655765; // 2^32 / 3\n\t\t}\n\t\treturn 21845; // 2^16 / 3\n\t}\n\n\tupdateAtlas(\n\t\tshape: EShape,\n\t\tatlas: DynamicAtlas,\n\t\tfontAtlases: DynamicSDFFontAtlases,\n\t\tdefaultTexture: Texture,\n\t\tbaseTexture: BaseTexture\n\t): void {\n\t\t// Texture\n\t\t// Do not access the shape.image.source here.\n\t\t// It slows down the rendering speed significantly.\n\t\tconst image = shape.image;\n\t\tif (image != null) {\n\t\t\tconst textureItem = atlas.get(image.url);\n\t\t\tif (textureItem != null) {\n\t\t\t\tshape.texture = textureItem.texture;\n\t\t\t} else {\n\t\t\t\tconst newTextureItem = new DynamicAtlasItemImage(\n\t\t\t\t\timage.url,\n\t\t\t\t\timage.width,\n\t\t\t\t\timage.height,\n\t\t\t\t\timage.source,\n\t\t\t\t\tbaseTexture\n\t\t\t\t);\n\t\t\t\tshape.texture = newTextureItem.texture;\n\t\t\t\tatlas.set(newTextureItem.id, newTextureItem);\n\t\t\t}\n\t\t} else {\n\t\t\tshape.texture = defaultTexture;\n\t\t}\n\n\t\t// Font texture atlas\n\t\tconst text = shape.text;\n\t\tconst textValue = text.value;\n\t\tif (0 < textValue.length) {\n\t\t\tfontAtlases.add(text.family, textValue);\n\t\t}\n\t}\n\n\tupdateAtlases(\n\t\tshapes: EShape[],\n\t\tatlas: DynamicAtlas,\n\t\tfontAtlases: DynamicSDFFontAtlases,\n\t\tdefaultTexture: Texture,\n\t\tbaseTexture: BaseTexture\n\t): void {\n\t\tfor (let i = 0, imax = shapes.length; i < imax; ++i) {\n\t\t\tconst shape = shapes[i];\n\t\t\tthis.updateAtlas(shape, atlas, fontAtlases, defaultTexture, baseTexture);\n\t\t\tconst children = shape.children;\n\t\t\tfor (let j = 0, jmax = children.length; j < jmax; ++j) {\n\t\t\t\tconst child = children[j];\n\t\t\t\tthis.updateAtlas(child, atlas, fontAtlases, defaultTexture, baseTexture);\n\t\t\t\tthis.updateAtlases(child.children, atlas, fontAtlases, defaultTexture, baseTexture);\n\t\t\t}\n\t\t}\n\t}\n\n\tupdateFontAtlas(\n\t\tshape: EShape,\n\t\tatlas: DynamicAtlas,\n\t\tfontAtlases: DynamicSDFFontAtlases,\n\t\tdefaultTexture: Texture\n\t): void {\n\t\tconst text = shape.text;\n\t\tconst fontAtlas = fontAtlases.get(text.family);\n\t\tif (fontAtlas != null) {\n\t\t\tconst textureItem = atlas.get(fontAtlas.id);\n\t\t\tif (textureItem != null) {\n\t\t\t\ttext.atlas = fontAtlas;\n\t\t\t\ttext.texture = textureItem.texture;\n\t\t\t} else {\n\t\t\t\ttext.atlas = undefined;\n\t\t\t\ttext.texture = defaultTexture;\n\t\t\t}\n\t\t} else {\n\t\t\ttext.atlas = undefined;\n\t\t\ttext.texture = defaultTexture;\n\t\t}\n\t}\n\n\tupdateFontAtlases(\n\t\tshapes: EShape[],\n\t\tatlas: DynamicAtlas,\n\t\tfontAtlases: DynamicSDFFontAtlases,\n\t\tdefaultTexture: Texture\n\t): void {\n\t\tfor (let i = 0, imax = shapes.length; i < imax; ++i) {\n\t\t\tconst shape = shapes[i];\n\t\t\tthis.updateFontAtlas(shape, atlas, fontAtlases, defaultTexture);\n\t\t\tconst children = shape.children;\n\t\t\tfor (let j = 0, jmax = children.length; j < jmax; ++j) {\n\t\t\t\tconst child = children[j];\n\t\t\t\tthis.updateFontAtlas(child, atlas, fontAtlases, defaultTexture);\n\t\t\t\tthis.updateFontAtlases(child.children, atlas, fontAtlases, defaultTexture);\n\t\t\t}\n\t\t}\n\t}\n\n\trender_(\n\t\tcontainer: EShapeContainer,\n\t\tshape: EShape | null,\n\t\tshapes: EShape[],\n\t\tisDirty: boolean\n\t): void {\n\t\tconst renderer = this.renderer;\n\t\tconst shader = this._shader;\n\n\t\tif (shader != null && (shape != null || 0 < shapes.length)) {\n\t\t\tconst resolution = renderer.resolution;\n\t\t\tconst buffers = container.getBuffers();\n\t\t\tconst antialiasWeight = container.toAntialiasWeight(resolution);\n\n\t\t\t// Update textures\n\t\t\tif (isDirty) {\n\t\t\t\t// Atlases\n\t\t\t\tconst atlas = container.getAtlas(resolution);\n\t\t\t\tconst fontAtlases = container.getFontAtlases();\n\t\t\t\tatlas.begin();\n\t\t\t\tfontAtlases.begin();\n\t\t\t\tconst defaultTexture = atlas.getDefaultTexture();\n\t\t\t\tconst baseTexture: BaseTexture = atlas.getBaseTexture();\n\t\t\t\tthis.updateAtlases(shapes, atlas, fontAtlases, defaultTexture, baseTexture);\n\t\t\t\tfontAtlases.end();\n\t\t\t\tfontAtlases.update(atlas);\n\t\t\t\tthis.updateFontAtlases(shapes, atlas, fontAtlases, defaultTexture);\n\t\t\t\tatlas.end();\n\t\t\t\tatlas.repack();\n\n\t\t\t\t// Update buffers\n\t\t\t\tthis.updateBuffers(shape, shapes, buffers, renderer, antialiasWeight);\n\t\t\t}\n\n\t\t\t// Render buffers\n\t\t\tshader.uniforms.shapeScale = container.toShapeScale();\n\t\t\tshader.uniforms.antialiasWeight = container.toPixelScale(resolution) * antialiasWeight;\n\t\t\tshader.uniforms.translationMatrix = container.worldTransform.toArray(true);\n\t\t\trenderer.shader.bind(shader, false);\n\t\t\trenderer.state.setBlendMode(utils.correctBlendMode(BLEND_MODES.NORMAL, true));\n\t\t\tconst buffersLength = buffers.length;\n\t\t\tif (1 < buffersLength) {\n\t\t\t\tfor (let i = 0; i < buffersLength; ++i) {\n\t\t\t\t\tbuffers[i].upload();\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i = 0; i < buffersLength; ++i) {\n\t\t\t\tbuffers[i].render(shader);\n\t\t\t}\n\t\t}\n\t}\n\n\tupdateBuffers(\n\t\tshape: EShape | null,\n\t\tshapes: EShape[],\n\t\tbuffers: EShapeBuffer[],\n\t\trenderer: Renderer,\n\t\tantialiasWeight: number\n\t): void {\n\t\tconst iterator = this._iterator;\n\t\titerator.reset(shape, shapes);\n\n\t\tlet ib = 0;\n\t\tlet bufferSize = 0;\n\t\tconst bufferSizeBase = 5000;\n\t\tconst bufferSizeMax = this._bufferSizeMax;\n\t\twhile (iterator.get() != null) {\n\t\t\tlet buffer: EShapeBuffer | null = null;\n\t\t\tlet noMoreThanOne = false;\n\t\t\tif (0 < bufferSize) {\n\t\t\t\tbuffer = new EShapeBuffer(bufferSize, renderer);\n\t\t\t\tbuffers.splice(ib, 0, buffer);\n\t\t\t\tnoMoreThanOne = true;\n\t\t\t} else if (ib < buffers.length) {\n\t\t\t\tbuffer = buffers[ib];\n\t\t\t\tnoMoreThanOne = false;\n\t\t\t} else {\n\t\t\t\tbuffer = new EShapeBuffer(bufferSizeBase, renderer);\n\t\t\t\tbuffers.push(buffer);\n\t\t\t\tnoMoreThanOne = false;\n\t\t\t}\n\t\t\tif (buffer.update(iterator, antialiasWeight, noMoreThanOne)) {\n\t\t\t\tbufferSize = 0;\n\t\t\t\tib += 1;\n\t\t\t} else {\n\t\t\t\tbufferSize = buffer.indexCountRequested;\n\t\t\t\tif (bufferSize <= bufferSizeMax) {\n\t\t\t\t\tbufferSize = Math.ceil(bufferSize / bufferSizeBase) * bufferSizeBase;\n\t\t\t\t\tbufferSize = Math.min(bufferSize, bufferSizeMax);\n\t\t\t\t} else {\n\t\t\t\t\t// No way to render\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (ib < buffers.length) {\n\t\t\tfor (let jb = ib, ibmax = buffers.length; jb < ibmax; ++jb) {\n\t\t\t\tbuffers[jb].destroy();\n\t\t\t}\n\t\t\tbuffers.length = ib;\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"e-shape-renderer.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-renderer.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n\tBaseTexture,\n\tBLEND_MODES,\n\tObjectRenderer,\n\tRenderer,\n\tShader,\n\tTexture,\n\tutils\n} from \"pixi.js\";\nimport { DynamicAtlas } from \"../util/dynamic-atlas\";\nimport { DynamicAtlasItemImage } from \"../util/dynamic-atlas-item-image\";\nimport { DynamicSDFFontAtlases } from \"../util/dynamic-sdf-font-atlases\";\nimport { EShape } from \"./e-shape\";\nimport { EShapeBuffer } from \"./e-shape-buffer\";\nimport { EShapeContainer } from \"./e-shape-container\";\nimport { EShapeRendererIterator } from \"./e-shape-renderer-iterator\";\n\nconst VERTEX_SHADER = `\nattribute highp vec2 aPosition;\nattribute highp vec2 aStepA;\nattribute highp vec4 aStepB;\nattribute highp vec3 aColor;\nattribute highp vec2 aUv;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mediump float shapeScale;\nuniform mediump float antialiasWeight;\n\nvarying mediump float vType;\nvarying mediump vec2 vStepA;\nvarying mediump vec4 vStepB;\nvarying mediump vec4 vColorFill;\nvarying mediump vec4 vColorStroke;\nvarying mediump vec2 vUv;\n\nvec2 toInverse(in vec2 v) {\n\treturn vec2(-v.y, v.x);\n}\n\nvec4 toGeneral(in float v) {\n\tvec4 c = vec4(1.0, 1.0/64.0, 1.0/64.0/64.0, 1.0/64.0/64.0/64.0) * v;\n\tc -= fract(c);\n\tc -= c.yzwx * vec4(64.0, 64.0, 64.0, 0.0);\n\treturn c;\n}\n\nfloat toStrokeWidthScale(in float scale) {\n\treturn (\n\t\tscale == 3.0 || scale == 7.0 ?\n\t\tshapeScale : (\n\t\t\tscale == 1.0 || scale == 5.0 ?\n\t\t\tmin(1.0, shapeScale) : (\n\t\t\t\tscale == 2.0 || scale == 6.0 ?\n\t\t\t\tmax(1.0, shapeScale) : 1.0\n\t\t\t)\n\t\t)\n\t);\n}\n\nvec2 toUnpackedF2x1024(in float v) {\n\tvec2 c = vec2(1.0, 1.0/1024.0) * v;\n\tc -= fract(c);\n\tc -= c.yx * vec2(1024.0, 0.0);\n\tc /= vec2(1023.0, 1023.0);\n\treturn c;\n}\n\nvec3 toUnpackedF3x256(in float v) {\n\tvec3 c = vec3(1.0, 1.0/256.0, 1.0/256.0/256.0) * v;\n\tc -= fract(c);\n\tc -= c.yzx * vec3(256.0, 256.0, 0.0);\n\tc /= 255.0;\n\treturn c;\n}\n\nvec2 toPosition012(in vec2 v) {\n\treturn (projectionMatrix * translationMatrix * vec3(v, 1.0)).xy;\n}\n\nvec4 toStepB01(in vec4 sb) {\n\treturn vec4(sb.xy, toUnpackedF2x1024(sb.z));\n}\n\nvec4 toStepB2(in vec4 sb, in float strokeWidth) {\n\tfloat x = min(0.4, 0.4 / 12.0 * sb.x * antialiasWeight);\n\tfloat w = clamp(strokeWidth, 0.0, 1.0) * 0.4;\n\tfloat p = w * sb.y + sb.z;\n\tfloat y = 0.5 - p;\n\tfloat z = 0.5 - p - w;\n\treturn vec4(y, z, y - max(0.01, y - x), z - max(0.01, z - x));\n}\n\nvec2 toPosition3(in float type, in vec2 p, in float npacked, in float length, in float strokeWidth, out float shift) {\n\tvec3 t = vec3(1.0, 1.0/1024.0, 1.0/1024.0/1024.0) * npacked;\n\tt -= fract(t);\n\tt -= t.yzx * vec3(1024.0, 1024.0, 0.0);\n\tt *= vec3(1.0/511.5, 1.0/511.5, 1.0);\n\tt -= vec3(1.0, 1.0, 0.0);\n\tvec2 n0 = vec2(t.x, ((0.5 < t.z && t.z < 1.5) || 2.5 < t.z ? +1.0 : -1.0) * sqrt(max(0.0, 1.0 - t.x * t.x)));\n\tvec2 n1 = vec2(t.y, (1.5 < t.z ? +1.0 : -1.0) * sqrt(max(0.0, 1.0 - t.y * t.y)));\n\n\tvec2 n0i = toInverse(n0);\n\tvec2 n1i = toInverse(n1);\n\tfloat direction = sign(4.5 - type);\n\n\t// Offset\n\tfloat cross = dot(n0i, n1);\n\tbool bcross = 0.00001 < abs(cross);\n\tfloat crossi = (bcross ? 1.0 / cross : 0.0);\n\tfloat b = dot(n1 - n0, n0) * crossi;\n\tfloat offsetSize = direction * strokeWidth * 0.5;\n\tvec2 offset = n1 + n1i * b;\n\n\t// Miter\n\tvec2 pmiter = p + offsetSize * offset;\n\tfloat miterAngle0 = dot( n0i, offsetSize * offset - length * n0i );\n\tfloat miterAngle1 = dot( n1i, offsetSize * offset + length * n1i );\n\tfloat miterLength = dot( offset, offset );\n\tfloat miterSide = direction * cross;\n\n\t// Bevel\n\tvec2 n = (type == 4.0 || type == 6.0 ? n1 : n0);\n\tvec2 pbevel = p + offsetSize * n;\n\n\t//\n\tvec2 presult = (\n\t\t0.0 <= miterSide ?\n\t\t(miterAngle0 < 0.0 && 0.0 <= miterAngle1 && bcross ? pmiter : pbevel) :\n\t\t(miterLength < 6.0 && bcross ? pmiter : pbevel)\n\t);\n\tvec2 ni = (type == 4.0 || type == 6.0 ? n1i : n0i);\n\tshift = dot(ni, p - presult);\n\treturn toPosition012(presult);\n}\n\nvec2 toStepA3(in float type, in float strokeWidth) {\n\treturn vec2(type < 4.5 ? 1.0 : 0.0, strokeWidth);\n}\n\nvec4 toStepB3(in float shift, in float dash, in float strokeScaling, in float strokeWidthScale) {\n\tfloat l = aStepB.y + shift;\n\tfloat s = aStepA.x * (\n\t\tstrokeScaling == 4.0 || strokeScaling == 5.0 ||\n\t\tstrokeScaling == 6.0 || strokeScaling == 7.0 ?\n\t\tstrokeWidthScale : 1.0\n\t);\n\tfloat lt = aStepB.z;\n\treturn (dash < 0.5 ?\n\t\tvec4(l, 2.0 * abs(lt), 0.0, lt) :\n\t\t(dash < 3.5 ?\n\t\t\t(dash < 1.5 ?\n\t\t\t\tvec4(l, s, s, lt) :\n\t\t\t\t(2.5 < dash ?\n\t\t\t\t\tvec4(l, s, 2.0 * s, lt) :\n\t\t\t\t\tvec4(l, s, 0.5 * s, lt)\n\t\t\t\t)\n\t\t\t) :\n\t\t\t(dash < 4.5 ?\n\t\t\t\tvec4(l, 2.0 * s, s, lt) :\n\t\t\t\t(5.5 < dash ?\n\t\t\t\t\tvec4(l, 2.0 * s, 2.0 * s, lt) :\n\t\t\t\t\tvec4(l, 2.0 * s, 0.5 * s, lt)\n\t\t\t\t)\n\t\t\t)\n\t\t)\n\t);\n}\n\nvoid toColors(in vec3 source, out vec4 fillColor, out vec4 strokeColor) {\n\tvec2 a = toUnpackedF2x1024(source.z);\n\tfillColor.xyz = toUnpackedF3x256(source.x).zyx * a.x;\n\tfillColor.w = a.x;\n\tstrokeColor.xyz = toUnpackedF3x256(source.y).zyx * a.y;\n\tstrokeColor.w = a.y;\n}\n\nvoid main(void) {\n\tvec4 general = toGeneral(aStepA.y);\n\tfloat type = general.x;\n\tfloat strokeScaling = general.y;\n\tfloat strokeWidthScale = toStrokeWidthScale(strokeScaling);\n\tfloat strokeWidth = strokeWidthScale * aStepA.x;\n\n\t// Type 0, 1\n\tvec2 p012 = toPosition012(aPosition);\n\tvec2 sa012 = strokeWidth * general.zw;\n\tvec4 sb01 = toStepB01(aStepB);\n\n\t// Type 2\n\tvec4 sb2 = toStepB2(aStepB, strokeWidth);\n\n\t// Type 3 ~ 6\n\tfloat shift3 = 0.0;\n\tvec2 p3 = toPosition3(type, aPosition, aStepB.x, aStepB.w, strokeWidth, shift3);\n\tvec2 sa3 = toStepA3(type, strokeWidth);\n\tvec4 sb3 = toStepB3(shift3, general.z, strokeScaling, strokeWidthScale);\n\n\t//\n\tgl_Position = vec4((2.5 < type ? p3 : p012), 0.0, 1.0);\n\tvType = type;\n\tvStepA = (2.5 < type ? sa3 : sa012);\n\tvStepB = (1.5 < type ? (2.5 < type ? sb3 : sb2) : sb01);\n\ttoColors(aColor, vColorFill, vColorStroke);\n\tvUv = aUv;\n}`;\n\nconst FRAGMENT_SHADER = `\nvarying mediump float vType;\nvarying mediump vec2 vStepA;\nvarying mediump vec4 vStepB;\nvarying mediump vec4 vColorFill;\nvarying mediump vec4 vColorStroke;\nvarying mediump vec2 vUv;\n\nuniform sampler2D sampler;\nuniform mediump float antialiasWeight;\n\nvec4 toColor0(in vec4 texture) {\n\tvec2 d = vStepB.xy;\n\tvec2 c = vStepB.zw;\n\tvec2 awd = antialiasWeight / d;\n\tvec2 swd = vStepA / d;\n\tvec2 one = vec2(1.0);\n\tvec2 zero = vec2(0.0);\n\tvec2 p0 = clamp(one - awd, zero, one);\n\tvec2 p1 = clamp(one - swd, zero, one);\n\tvec2 p2 = clamp(one - swd - awd, zero, one);\n\tvec2 s0 = smoothstep(p0, one, c);\n\tvec2 s1 = smoothstep(p2, p1, c);\n\tfloat s2 = max(s0.x, s0.y);\n\tfloat s3 = max(s1.x, s1.y);\n\treturn texture * (\n\t\tvColorStroke * (s3 - s2) +\n\t\tvColorFill * (1.0 - s3)\n\t);\n}\n\nvec4 toColor1(in vec4 texture) {\n\tvec2 d = vStepB.xy;\n\tvec2 c = vStepB.zw;\n\tvec2 awd = antialiasWeight / d;\n\tvec2 swd = vStepA / d;\n\tvec2 one = vec2(1.0);\n\tvec2 zero = vec2(0.0);\n\tfloat s0 = smoothstep(length(c), length(c/clamp(one - awd, zero, one)), 1.0);\n\tfloat s1 = smoothstep(length(c/clamp(one - swd, zero, one)), length(c/clamp(one - swd - awd, zero, one)), 1.0);\n\treturn texture * (\n\t\tvColorStroke * (s0 - s1) +\n\t\tvColorFill * s1\n\t);\n}\n\nvec4 toColor2(in vec4 texture) {\n\tvec2 p0 = vStepB.xy;\n\tvec2 p1 = vStepB.zw;\n\tvec2 d = vec2(dot(texture, vec4(1.0, 1.0/255.0, 1.0/255.0/255.0, 0.0)));\n\tvec2 s = smoothstep(p0 - p1, p0 + p1, d);\n\treturn vColorStroke * (s.y - s.x) + vColorFill * s.x;\n}\n\nvec4 toColor3(in vec4 texture) {\n\tfloat l = vStepB.x;\n\tfloat lp0 = vStepB.y;\n\tfloat lp1 = vStepB.z;\n\tfloat lt = vStepB.w;\n\tfloat ld = antialiasWeight;\n\tfloat lm = mod(l, lp0 + lp1);\n\tfloat ls0 = (0.0 < lp1 ? smoothstep(0.0, ld, lm) - smoothstep(lp0, lp0 + ld, lm) : 1.0);\n\tfloat ls1 = (0.0 <= lt ? smoothstep(0.0, ld, l) - smoothstep(lt - ld, lt, l) : 1.0);\n\n\tfloat c = vStepA.x;\n\tfloat awd = antialiasWeight / vStepA.y;\n\tfloat p0 = clamp(awd, 0.0, 1.0);\n\tfloat p1 = clamp(1.0 - awd, 0.0, 1.0);\n\tfloat s0 = smoothstep(0.0, p0, c);\n\tfloat s1 = smoothstep(p1, 1.0, c);\n\treturn texture * vColorStroke * (s0 - s1) * ls0 * ls1;\n}\n\nvoid main(void) {\n\tvec4 texture = texture2D(sampler, vUv);\n\tgl_FragColor = (vType < 1.5 ?\n\t\t(vType < 0.5 ?\n\t\t\ttoColor0(texture) :\n\t\t\ttoColor1(texture)\n\t\t) :\n\t\t(vType < 2.5 ?\n\t\t\ttoColor2(texture) :\n\t\t\ttoColor3(texture)\n\t\t)\n\t);\n}`;\n\nexport class EShapeRenderer extends ObjectRenderer {\n\tstatic SHADER: Shader | null = null;\n\n\tprotected _shader: Shader | null;\n\tprotected _iterator: EShapeRendererIterator;\n\tprotected _bufferSizeMax: number;\n\n\tconstructor(renderer: Renderer) {\n\t\tsuper(renderer);\n\t\tEShapeRenderer.SHADER =\n\t\t\tEShapeRenderer.SHADER || Shader.from(VERTEX_SHADER, FRAGMENT_SHADER);\n\t\tthis._shader = EShapeRenderer.SHADER;\n\t\tthis._iterator = new EShapeRendererIterator();\n\t\tthis._bufferSizeMax = this.getBufferSizeMax(renderer);\n\t}\n\n\tprotected getBufferSizeMax(renderer: Renderer): number {\n\t\tconst context = renderer.context;\n\t\tconst extensions = context.extensions as any;\n\t\tif (1 < context.webGLVersion || !!extensions.uint32ElementIndex) {\n\t\t\treturn 1431655765; // 2^32 / 3\n\t\t}\n\t\treturn 21845; // 2^16 / 3\n\t}\n\n\tupdateAtlas(\n\t\tshape: EShape,\n\t\tatlas: DynamicAtlas,\n\t\tfontAtlases: DynamicSDFFontAtlases,\n\t\tdefaultTexture: Texture,\n\t\tbaseTexture: BaseTexture\n\t): void {\n\t\t// Texture\n\t\t// Do not access the shape.image.source here.\n\t\t// It slows down the rendering speed significantly.\n\t\tconst image = shape.image;\n\t\tif (image != null) {\n\t\t\tconst textureItem = atlas.get(image.url);\n\t\t\tif (textureItem != null) {\n\t\t\t\tshape.texture = textureItem.texture;\n\t\t\t} else {\n\t\t\t\tconst newTextureItem = new DynamicAtlasItemImage(\n\t\t\t\t\timage.url,\n\t\t\t\t\timage.width,\n\t\t\t\t\timage.height,\n\t\t\t\t\timage.source,\n\t\t\t\t\tbaseTexture\n\t\t\t\t);\n\t\t\t\tshape.texture = newTextureItem.texture;\n\t\t\t\tatlas.set(newTextureItem.id, newTextureItem);\n\t\t\t}\n\t\t} else {\n\t\t\tshape.texture = defaultTexture;\n\t\t}\n\n\t\t// Font texture atlas\n\t\tconst text = shape.text;\n\t\tconst textCharacters = text.characters;\n\t\tif (0 < textCharacters.length) {\n\t\t\tfontAtlases.add(text.family, textCharacters, text.nacharacters);\n\t\t}\n\t}\n\n\tupdateAtlases(\n\t\tshapes: EShape[],\n\t\tatlas: DynamicAtlas,\n\t\tfontAtlases: DynamicSDFFontAtlases,\n\t\tdefaultTexture: Texture,\n\t\tbaseTexture: BaseTexture\n\t): void {\n\t\tfor (let i = 0, imax = shapes.length; i < imax; ++i) {\n\t\t\tconst shape = shapes[i];\n\t\t\tthis.updateAtlas(shape, atlas, fontAtlases, defaultTexture, baseTexture);\n\t\t\tconst children = shape.children;\n\t\t\tfor (let j = 0, jmax = children.length; j < jmax; ++j) {\n\t\t\t\tconst child = children[j];\n\t\t\t\tthis.updateAtlas(child, atlas, fontAtlases, defaultTexture, baseTexture);\n\t\t\t\tthis.updateAtlases(child.children, atlas, fontAtlases, defaultTexture, baseTexture);\n\t\t\t}\n\t\t}\n\t}\n\n\tupdateFontAtlas(\n\t\tshape: EShape,\n\t\tatlas: DynamicAtlas,\n\t\tfontAtlases: DynamicSDFFontAtlases,\n\t\tdefaultTexture: Texture\n\t): void {\n\t\tconst text = shape.text;\n\t\tconst fontAtlas = fontAtlases.get(text.family);\n\t\tif (fontAtlas != null) {\n\t\t\tconst textureItem = atlas.get(fontAtlas.id);\n\t\t\tif (textureItem != null) {\n\t\t\t\ttext.atlas = fontAtlas;\n\t\t\t\ttext.texture = textureItem.texture;\n\t\t\t} else {\n\t\t\t\ttext.atlas = undefined;\n\t\t\t\ttext.texture = defaultTexture;\n\t\t\t}\n\t\t} else {\n\t\t\ttext.atlas = undefined;\n\t\t\ttext.texture = defaultTexture;\n\t\t}\n\t}\n\n\tupdateFontAtlases(\n\t\tshapes: EShape[],\n\t\tatlas: DynamicAtlas,\n\t\tfontAtlases: DynamicSDFFontAtlases,\n\t\tdefaultTexture: Texture\n\t): void {\n\t\tfor (let i = 0, imax = shapes.length; i < imax; ++i) {\n\t\t\tconst shape = shapes[i];\n\t\t\tthis.updateFontAtlas(shape, atlas, fontAtlases, defaultTexture);\n\t\t\tconst children = shape.children;\n\t\t\tfor (let j = 0, jmax = children.length; j < jmax; ++j) {\n\t\t\t\tconst child = children[j];\n\t\t\t\tthis.updateFontAtlas(child, atlas, fontAtlases, defaultTexture);\n\t\t\t\tthis.updateFontAtlases(child.children, atlas, fontAtlases, defaultTexture);\n\t\t\t}\n\t\t}\n\t}\n\n\trender_(\n\t\tcontainer: EShapeContainer,\n\t\tshape: EShape | null,\n\t\tshapes: EShape[],\n\t\tisDirty: boolean\n\t): void {\n\t\tconst renderer = this.renderer;\n\t\tconst shader = this._shader;\n\n\t\tif (shader != null && (shape != null || 0 < shapes.length)) {\n\t\t\tconst resolution = renderer.resolution;\n\t\t\tconst buffers = container.getBuffers();\n\t\t\tconst antialiasWeight = container.toAntialiasWeight(resolution);\n\n\t\t\t// Update textures\n\t\t\tif (isDirty) {\n\t\t\t\t// Atlases\n\t\t\t\tconst atlas = container.getAtlas(resolution);\n\t\t\t\tconst fontAtlases = container.getFontAtlases();\n\t\t\t\tatlas.begin();\n\t\t\t\tfontAtlases.begin();\n\t\t\t\tconst defaultTexture = atlas.getDefaultTexture();\n\t\t\t\tconst baseTexture: BaseTexture = atlas.getBaseTexture();\n\t\t\t\tthis.updateAtlases(shapes, atlas, fontAtlases, defaultTexture, baseTexture);\n\t\t\t\tfontAtlases.end();\n\t\t\t\tfontAtlases.update(atlas);\n\t\t\t\tthis.updateFontAtlases(shapes, atlas, fontAtlases, defaultTexture);\n\t\t\t\tatlas.end();\n\t\t\t\tatlas.repack();\n\n\t\t\t\t// Update buffers\n\t\t\t\tthis.updateBuffers(shape, shapes, buffers, renderer, antialiasWeight);\n\t\t\t}\n\n\t\t\t// Render buffers\n\t\t\tshader.uniforms.shapeScale = container.toShapeScale();\n\t\t\tshader.uniforms.antialiasWeight = container.toPixelScale(resolution) * antialiasWeight;\n\t\t\tshader.uniforms.translationMatrix = container.worldTransform.toArray(true);\n\t\t\trenderer.shader.bind(shader, false);\n\t\t\trenderer.state.setBlendMode(utils.correctBlendMode(BLEND_MODES.NORMAL, true));\n\t\t\tconst buffersLength = buffers.length;\n\t\t\tif (1 < buffersLength) {\n\t\t\t\tfor (let i = 0; i < buffersLength; ++i) {\n\t\t\t\t\tbuffers[i].upload();\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i = 0; i < buffersLength; ++i) {\n\t\t\t\tbuffers[i].render(shader);\n\t\t\t}\n\t\t}\n\t}\n\n\tupdateBuffers(\n\t\tshape: EShape | null,\n\t\tshapes: EShape[],\n\t\tbuffers: EShapeBuffer[],\n\t\trenderer: Renderer,\n\t\tantialiasWeight: number\n\t): void {\n\t\tconst iterator = this._iterator;\n\t\titerator.reset(shape, shapes);\n\n\t\tlet ib = 0;\n\t\tlet bufferSize = 0;\n\t\tconst bufferSizeBase = 5000;\n\t\tconst bufferSizeMax = this._bufferSizeMax;\n\t\twhile (iterator.get() != null) {\n\t\t\tlet buffer: EShapeBuffer | null = null;\n\t\t\tlet noMoreThanOne = false;\n\t\t\tif (0 < bufferSize) {\n\t\t\t\tbuffer = new EShapeBuffer(bufferSize, renderer);\n\t\t\t\tbuffers.splice(ib, 0, buffer);\n\t\t\t\tnoMoreThanOne = true;\n\t\t\t} else if (ib < buffers.length) {\n\t\t\t\tbuffer = buffers[ib];\n\t\t\t\tnoMoreThanOne = false;\n\t\t\t} else {\n\t\t\t\tbuffer = new EShapeBuffer(bufferSizeBase, renderer);\n\t\t\t\tbuffers.push(buffer);\n\t\t\t\tnoMoreThanOne = false;\n\t\t\t}\n\t\t\tif (buffer.update(iterator, antialiasWeight, noMoreThanOne)) {\n\t\t\t\tbufferSize = 0;\n\t\t\t\tib += 1;\n\t\t\t} else {\n\t\t\t\tbufferSize = buffer.indexCountRequested;\n\t\t\t\tif (bufferSize <= bufferSizeMax) {\n\t\t\t\t\tbufferSize = Math.ceil(bufferSize / bufferSizeBase) * bufferSizeBase;\n\t\t\t\t\tbufferSize = Math.min(bufferSize, bufferSizeMax);\n\t\t\t\t} else {\n\t\t\t\t\t// No way to render\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (ib < buffers.length) {\n\t\t\tfor (let jb = ib, ibmax = buffers.length; jb < ibmax; ++jb) {\n\t\t\t\tbuffers[jb].destroy();\n\t\t\t}\n\t\t\tbuffers.length = ib;\n\t\t}\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-text.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-text.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,CAAC,IAAM,gBAAgB,GAAG;IAC/B,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;CACE,CAAC;AAIX,MAAM,CAAC,IAAM,eAAe,GAAG;IAC9B,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;CACA,CAAC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Texture } from \"pixi.js\";\nimport { DeepPartial } from \"../util/deep-partial\";\nimport { EShapeResourceManagerDeserialization } from \"./e-shape-resource-manager-deserialization\";\nimport { EShapeResourceManagerSerialization } from \"./e-shape-resource-manager-serialization\";\nimport { EShapeTextAlign, EShapeTextAlignLike } from \"./e-shape-text-align\";\nimport { EShapeTextDirection } from \"./e-shape-text-direction\";\nimport { EShapeTextOffset, EShapeTextOffsetLike } from \"./e-shape-text-offset\";\nimport { EShapeTextOutline, EShapeTextOutlineLike } from \"./e-shape-text-outline\";\n\nexport const EShapeTextWeight = {\n\tNORMAL: 0,\n\tBOLD: 1\n} as const;\n\nexport type EShapeTextWeight = (typeof EShapeTextWeight)[keyof typeof EShapeTextWeight];\n\nexport const EShapeTextStyle = {\n\tNORMAL: 0,\n\tITALIC: 1\n} as const;\n\nexport type EShapeTextStyle = (typeof EShapeTextStyle)[keyof typeof EShapeTextStyle];\n\nexport interface EShapeTextLike {\n\tvalue: string;\n\tcolor: number;\n\talpha: number;\n\tfamily: string;\n\tsize: number;\n\tweight: EShapeTextWeight;\n\talign: EShapeTextAlignLike;\n\toffset: EShapeTextOffsetLike;\n\tstyle: EShapeTextStyle;\n\toutline: EShapeTextOutlineLike;\n\tspacing: EShapeTextOffsetLike;\n\tdirection: EShapeTextDirection;\n\tpadding: EShapeTextOffsetLike;\n\tclipping: boolean;\n\tfitting: boolean;\n}\n\nexport interface EShapeTextAtlasCharacter {\n\tx: number;\n\ty: number;\n\twidth: number;\n\theight: number;\n\tadvance: number;\n\torigin: {\n\t\tx: number;\n\t\ty: number;\n\t};\n}\n\nexport type EShapeTextAtlasCharacters =
|
|
1
|
+
{"version":3,"file":"e-shape-text.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-text.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,CAAC,IAAM,gBAAgB,GAAG;IAC/B,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;CACE,CAAC;AAIX,MAAM,CAAC,IAAM,eAAe,GAAG;IAC9B,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;CACA,CAAC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Texture } from \"pixi.js\";\nimport { DeepPartial } from \"../util/deep-partial\";\nimport { EShapeResourceManagerDeserialization } from \"./e-shape-resource-manager-deserialization\";\nimport { EShapeResourceManagerSerialization } from \"./e-shape-resource-manager-serialization\";\nimport { EShapeTextAlign, EShapeTextAlignLike } from \"./e-shape-text-align\";\nimport { EShapeTextDirection } from \"./e-shape-text-direction\";\nimport { EShapeTextOffset, EShapeTextOffsetLike } from \"./e-shape-text-offset\";\nimport { EShapeTextOutline, EShapeTextOutlineLike } from \"./e-shape-text-outline\";\n\nexport const EShapeTextWeight = {\n\tNORMAL: 0,\n\tBOLD: 1\n} as const;\n\nexport type EShapeTextWeight = (typeof EShapeTextWeight)[keyof typeof EShapeTextWeight];\n\nexport const EShapeTextStyle = {\n\tNORMAL: 0,\n\tITALIC: 1\n} as const;\n\nexport type EShapeTextStyle = (typeof EShapeTextStyle)[keyof typeof EShapeTextStyle];\n\nexport interface EShapeTextLike {\n\tvalue: string;\n\tcolor: number;\n\talpha: number;\n\tfamily: string;\n\tsize: number;\n\tweight: EShapeTextWeight;\n\talign: EShapeTextAlignLike;\n\toffset: EShapeTextOffsetLike;\n\tstyle: EShapeTextStyle;\n\toutline: EShapeTextOutlineLike;\n\tspacing: EShapeTextOffsetLike;\n\tdirection: EShapeTextDirection;\n\tpadding: EShapeTextOffsetLike;\n\tclipping: boolean;\n\tfitting: boolean;\n}\n\nexport interface EShapeTextAtlasCharacter {\n\tx: number;\n\ty: number;\n\twidth: number;\n\theight: number;\n\tadvance: number;\n\torigin: {\n\t\tx: number;\n\t\ty: number;\n\t};\n}\n\nexport type EShapeTextAtlasCharacters = Map<string, EShapeTextAtlasCharacter>;\n\nexport interface EShapeTextAtlas {\n\twidth: number;\n\theight: number;\n\tfont: {\n\t\tsize: number;\n\t};\n\tcharacters: EShapeTextAtlasCharacters;\n}\n\nexport interface EShapeText extends EShapeTextLike {\n\tenable: boolean;\n\n\talign: EShapeTextAlign;\n\toffset: EShapeTextOffset;\n\toutline: EShapeTextOutline;\n\tspacing: EShapeTextOffset;\n\tpadding: EShapeTextOffset;\n\n\ttexture?: Texture; // Used for rendering and updated when rendered\n\tatlas?: EShapeTextAtlas; // Used for rendering and updated when rendered\n\tcharacters: string[];\n\tnacharacters: string[];\n\tworld?: number[]; // Updated when rendered\n\n\treadonly length: number;\n\t/** Peak length */\n\treadonly plength: number;\n\n\tcopy(target?: DeepPartial<EShapeTextLike>): this;\n\tset(\n\t\tvalue?: string,\n\t\tcolor?: number,\n\t\talpha?: number,\n\t\tfamily?: string,\n\t\tsize?: number,\n\t\tweight?: EShapeTextWeight,\n\t\tstyle?: EShapeTextStyle,\n\t\tdirection?: EShapeTextDirection,\n\t\tclipping?: boolean,\n\t\tfitting?: boolean\n\t): this;\n\ttoObject(): EShapeTextLike;\n\tserialize(manager: EShapeResourceManagerSerialization): number;\n\tdeserialize(target: number, manager: EShapeResourceManagerDeserialization): void;\n}\n"]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Point } from "pixi.js";
|
|
2
|
-
import { UtilCharacterIterator } from "../../util/util-character-iterator";
|
|
3
2
|
import { EShapeStrokeStyle } from "../e-shape-stroke-style";
|
|
4
3
|
import { EShapeTextStyle, EShapeTextWeight } from "../e-shape-text";
|
|
5
4
|
import { EShapeTextAlignHorizontal } from "../e-shape-text-align-horizontal";
|
|
@@ -8,6 +7,7 @@ import { EShapeTextDirection } from "../e-shape-text-direction";
|
|
|
8
7
|
import { toLength } from "./to-length";
|
|
9
8
|
import { toScaleInvariant } from "./to-scale-invariant";
|
|
10
9
|
import { toPackedI4x64 } from "./to-packed";
|
|
10
|
+
import { Character } from "../../util/character";
|
|
11
11
|
export var TEXT_VERTEX_COUNT = 4;
|
|
12
12
|
export var TEXT_VERTEX_COUNT_SHIFT = 2;
|
|
13
13
|
export var TEXT_INDEX_COUNT = 2;
|
|
@@ -354,7 +354,7 @@ var invertAlignVertical = function (align) {
|
|
|
354
354
|
return EShapeTextAlignVertical.OUTSIDE_TOP;
|
|
355
355
|
}
|
|
356
356
|
};
|
|
357
|
-
export var buildTextVertex = function (vertices, uvs, voffset, vcount, originX, originY, sizeX, sizeY, textAtlas, textSize,
|
|
357
|
+
export var buildTextVertex = function (vertices, uvs, voffset, vcount, originX, originY, sizeX, sizeY, textAtlas, textSize, textCharacters, textStyle, textAlignHorizontal, textAlignVertical, textOffsetHorizontal, textOffsetVertical, textSpacingHorizontal, textSpacingVertical, textDirection, textPaddingHorizontal, textPaddingVertical, textClipping, textFitting, textWorld, textureUvs, internalTransform) {
|
|
358
358
|
// Calculate the transformed positions
|
|
359
359
|
//
|
|
360
360
|
// 0 1
|
|
@@ -446,15 +446,14 @@ export var buildTextVertex = function (vertices, uvs, voffset, vcount, originX,
|
|
|
446
446
|
var lineWidth = 0;
|
|
447
447
|
var lineCount = 1;
|
|
448
448
|
var textAtlasCharacters = textAtlas.characters;
|
|
449
|
-
var iterator = UtilCharacterIterator.from(textValue);
|
|
450
449
|
var advancePrevious = 0;
|
|
451
|
-
|
|
452
|
-
var character =
|
|
453
|
-
if (character !==
|
|
450
|
+
for (var i = 0, imax = textCharacters.length; i < imax; ++i) {
|
|
451
|
+
var character = textCharacters[i];
|
|
452
|
+
if (character !== Character.NEW_LINE) {
|
|
454
453
|
if (0 < advancePrevious) {
|
|
455
454
|
lineWidth += Math.max(0, advancePrevious + textSpacingHorizontal);
|
|
456
455
|
}
|
|
457
|
-
var data = textAtlasCharacters
|
|
456
|
+
var data = textAtlasCharacters.get(character);
|
|
458
457
|
if (data) {
|
|
459
458
|
advancePrevious = data.advance;
|
|
460
459
|
heightChar = data.height;
|
|
@@ -598,12 +597,11 @@ export var buildTextVertex = function (vertices, uvs, voffset, vcount, originX,
|
|
|
598
597
|
var cy3 = by3;
|
|
599
598
|
lineWidth = 0;
|
|
600
599
|
advancePrevious = 0;
|
|
601
|
-
iterator.position = 0;
|
|
602
600
|
lineCount = 0;
|
|
603
601
|
var iv = voffset * 2;
|
|
604
|
-
for (
|
|
605
|
-
var character =
|
|
606
|
-
if (character !==
|
|
602
|
+
for (var i = 0, imax = textCharacters.length; i < imax; i += 1, iv += 8) {
|
|
603
|
+
var character = textCharacters[i];
|
|
604
|
+
if (character !== Character.NEW_LINE) {
|
|
607
605
|
var lineWidthPrevious = lineWidth;
|
|
608
606
|
if (0 < advancePrevious) {
|
|
609
607
|
lineWidth += Math.max(0, advancePrevious + textSpacingHorizontal);
|
|
@@ -614,12 +612,12 @@ export var buildTextVertex = function (vertices, uvs, voffset, vcount, originX,
|
|
|
614
612
|
cy0 = by0 + ay;
|
|
615
613
|
cx3 = bx3 + ax;
|
|
616
614
|
cy3 = by3 + ay;
|
|
617
|
-
var data = textAtlasCharacters
|
|
615
|
+
var data = textAtlasCharacters.get(character);
|
|
618
616
|
lineCount += 1;
|
|
619
617
|
if (data) {
|
|
620
618
|
var advance = data.advance;
|
|
621
619
|
if (lineWidthMaximum < (lineWidth + advance) * scaleX) {
|
|
622
|
-
var dots = textAtlasCharacters
|
|
620
|
+
var dots = textAtlasCharacters.get(Character.DOTS);
|
|
623
621
|
if (dots) {
|
|
624
622
|
if (1 < lineCount &&
|
|
625
623
|
lineWidthMaximum < (lineWidth + dots.advance) * scaleX) {
|
|
@@ -636,9 +634,10 @@ export var buildTextVertex = function (vertices, uvs, voffset, vcount, originX,
|
|
|
636
634
|
advancePrevious = dots.advance;
|
|
637
635
|
writeCharacter(vertices, uvs, iv, dots, textAtlas, snx, sny, cx0, cy0, cx3, cy3, duvx01, duvy01, duvx03, duvy03, uvx0, uvy0);
|
|
638
636
|
for (iv += 8; true; iv += 8) {
|
|
639
|
-
if (
|
|
637
|
+
if (i + 1 < imax && textCharacters[i + 1] !== Character.NEW_LINE) {
|
|
640
638
|
writeCharacterEmpty(vertices, uvs, iv, cx0, cy0, cx3, cy3, uvx0, uvy0, uvx3, uvy3);
|
|
641
639
|
lineCount += 1;
|
|
640
|
+
i += 1;
|
|
642
641
|
}
|
|
643
642
|
else {
|
|
644
643
|
iv -= 8;
|