@wcardinal/wcardinal-ui 0.395.0 → 0.397.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-base.d.ts +1 -3
- package/dist/types/wcardinal/ui/d-button-base.d.ts +8 -8
- package/dist/types/wcardinal/ui/d-button-color-gradient.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-button-color.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-button-date.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-button-datetime.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-button-file.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-button-link.d.ts +3 -3
- package/dist/types/wcardinal/ui/d-button-redo.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-button-select.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-button-time.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-button-undo.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-canvas-container.d.ts +3 -3
- package/dist/types/wcardinal/ui/d-chart-plot-area-impl.d.ts +3 -3
- package/dist/types/wcardinal/ui/d-chart-selection-simple.d.ts +5 -5
- package/dist/types/wcardinal/ui/d-diagram-canvas-base.d.ts +0 -1
- package/dist/types/wcardinal/ui/d-diagram-canvas.d.ts +13 -13
- package/dist/types/wcardinal/ui/d-diagram.d.ts +1 -3
- package/dist/types/wcardinal/ui/d-dropdown-base.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-expandable-header.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-html-element.d.ts +3 -3
- package/dist/types/wcardinal/ui/d-link.d.ts +1 -2
- package/dist/types/wcardinal/ui/d-list-item.d.ts +4 -4
- package/dist/types/wcardinal/ui/d-menu-bar-item.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-menu-item-base.d.ts +4 -4
- package/dist/types/wcardinal/ui/d-menu-item-check.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-menu-item-link.d.ts +3 -3
- package/dist/types/wcardinal/ui/d-menu-item-menu.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-menu-item-text.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-pane.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-picker-color-gradient-view.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-picker-color-gradient.d.ts +1 -2
- package/dist/types/wcardinal/ui/d-picker-color.d.ts +1 -2
- package/dist/types/wcardinal/ui/d-scroll-bar-horizontal.d.ts +1 -2
- package/dist/types/wcardinal/ui/d-scroll-bar-vertical.d.ts +1 -2
- package/dist/types/wcardinal/ui/d-shadow.d.ts +2 -1
- package/dist/types/wcardinal/ui/d-slider.d.ts +1 -3
- package/dist/types/wcardinal/ui/d-table-body-cell-button.d.ts +5 -5
- package/dist/types/wcardinal/ui/d-table-body-cell-check.d.ts +3 -3
- package/dist/types/wcardinal/ui/d-table-body-cell-input-tree.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-table-body-cell-link.d.ts +3 -3
- package/dist/types/wcardinal/ui/d-table-body-cell-select-dialog.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-table-body-cell-select-promise.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-table-body-cell-tree.d.ts +4 -4
- package/dist/types/wcardinal/ui/d-table-body-cell.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-table-body.d.ts +2 -3
- package/dist/types/wcardinal/ui/d-table-header-cell.d.ts +1 -2
- package/dist/types/wcardinal/ui/d-table.d.ts +1 -2
- package/dist/types/wcardinal/ui/d-tree-item-button.d.ts +5 -5
- package/dist/types/wcardinal/ui/d-tree-item-non-editable.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-tree-item-text.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-view-gesture-impl.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-view-impl.d.ts +5 -5
- package/dist/types/wcardinal/ui/shape/action/e-shape-action-runtime-base.d.ts +1 -3
- package/dist/types/wcardinal/ui/shape/action/e-shape-action-runtime-gesture-layer.d.ts +1 -2
- package/dist/types/wcardinal/ui/shape/action/e-shape-action-runtime-gesture-shape.d.ts +1 -2
- package/dist/types/wcardinal/ui/shape/action/e-shape-action-runtime-misc-html-element-base.d.ts +1 -3
- package/dist/types/wcardinal/ui/shape/action/e-shape-action-runtime.d.ts +1 -3
- package/dist/types/wcardinal/ui/shape/e-shape-runtime-impl.d.ts +1 -3
- package/dist/types/wcardinal/ui/shape/e-shape-runtime.d.ts +1 -3
- package/dist/types/wcardinal/ui/shape/variant/e-shape-button-runtime.d.ts +2 -2
- package/dist/types/wcardinal/ui/util/util-click-outside.d.ts +1 -2
- package/dist/types/wcardinal/ui/util/util-gesture-data.d.ts +1 -3
- package/dist/types/wcardinal/ui/util/util-gesture-modifiers.d.ts +2 -2
- package/dist/types/wcardinal/ui/util/util-gesture.d.ts +1 -2
- package/dist/types/wcardinal/ui/util/util-html-element.d.ts +4 -4
- package/dist/types/wcardinal/ui/util/util-pointer-event.d.ts +2 -3
- package/dist/wcardinal/ui/d-application-layer.js +7 -1
- package/dist/wcardinal/ui/d-application-layer.js.map +1 -1
- package/dist/wcardinal/ui/d-base.js.map +1 -1
- package/dist/wcardinal/ui/d-button-base.js +5 -3
- package/dist/wcardinal/ui/d-button-base.js.map +1 -1
- package/dist/wcardinal/ui/d-button-color-gradient.js.map +1 -1
- package/dist/wcardinal/ui/d-button-color.js.map +1 -1
- package/dist/wcardinal/ui/d-button-date.js.map +1 -1
- package/dist/wcardinal/ui/d-button-datetime.js.map +1 -1
- package/dist/wcardinal/ui/d-button-file.js.map +1 -1
- package/dist/wcardinal/ui/d-button-link.js.map +1 -1
- package/dist/wcardinal/ui/d-button-redo.js.map +1 -1
- package/dist/wcardinal/ui/d-button-select.js.map +1 -1
- package/dist/wcardinal/ui/d-button-time.js.map +1 -1
- package/dist/wcardinal/ui/d-button-undo.js.map +1 -1
- package/dist/wcardinal/ui/d-canvas-container.js.map +1 -1
- package/dist/wcardinal/ui/d-chart-plot-area-impl.js.map +1 -1
- package/dist/wcardinal/ui/d-chart-selection-simple.js.map +1 -1
- package/dist/wcardinal/ui/d-diagram-canvas-base.js +2 -1
- package/dist/wcardinal/ui/d-diagram-canvas-base.js.map +1 -1
- package/dist/wcardinal/ui/d-diagram-canvas.js.map +1 -1
- package/dist/wcardinal/ui/d-diagram.js.map +1 -1
- package/dist/wcardinal/ui/d-dropdown-base.js.map +1 -1
- package/dist/wcardinal/ui/d-expandable-header.js.map +1 -1
- package/dist/wcardinal/ui/d-html-element.js.map +1 -1
- package/dist/wcardinal/ui/d-item-updater.js +1 -1
- package/dist/wcardinal/ui/d-item-updater.js.map +1 -1
- package/dist/wcardinal/ui/d-link.js +1 -2
- package/dist/wcardinal/ui/d-link.js.map +1 -1
- package/dist/wcardinal/ui/d-list-item.js.map +1 -1
- package/dist/wcardinal/ui/d-menu-bar-item.js.map +1 -1
- package/dist/wcardinal/ui/d-menu-item-base.js.map +1 -1
- package/dist/wcardinal/ui/d-menu-item-check.js.map +1 -1
- package/dist/wcardinal/ui/d-menu-item-link.js.map +1 -1
- package/dist/wcardinal/ui/d-menu-item-menu.js.map +1 -1
- package/dist/wcardinal/ui/d-menu-item-text.js.map +1 -1
- package/dist/wcardinal/ui/d-pane.js.map +1 -1
- package/dist/wcardinal/ui/d-picker-color-gradient-view.js +7 -4
- package/dist/wcardinal/ui/d-picker-color-gradient-view.js.map +1 -1
- package/dist/wcardinal/ui/d-picker-color-gradient.js.map +1 -1
- package/dist/wcardinal/ui/d-picker-color.js.map +1 -1
- package/dist/wcardinal/ui/d-scroll-bar-horizontal.js.map +1 -1
- package/dist/wcardinal/ui/d-scroll-bar-vertical.js.map +1 -1
- package/dist/wcardinal/ui/d-shadow.js.map +1 -1
- package/dist/wcardinal/ui/d-slider.js.map +1 -1
- package/dist/wcardinal/ui/d-table-body-cell-button.js.map +1 -1
- package/dist/wcardinal/ui/d-table-body-cell-check.js.map +1 -1
- package/dist/wcardinal/ui/d-table-body-cell-input-tree.js.map +1 -1
- package/dist/wcardinal/ui/d-table-body-cell-link.js.map +1 -1
- package/dist/wcardinal/ui/d-table-body-cell-select-dialog.js.map +1 -1
- package/dist/wcardinal/ui/d-table-body-cell-select-promise.js.map +1 -1
- package/dist/wcardinal/ui/d-table-body-cell-tree.js.map +1 -1
- package/dist/wcardinal/ui/d-table-body-cell.js.map +1 -1
- package/dist/wcardinal/ui/d-table-body.js +1 -1
- package/dist/wcardinal/ui/d-table-body.js.map +1 -1
- package/dist/wcardinal/ui/d-table-header-cell.js +1 -2
- package/dist/wcardinal/ui/d-table-header-cell.js.map +1 -1
- package/dist/wcardinal/ui/d-table.js.map +1 -1
- package/dist/wcardinal/ui/d-tree-item-button.js.map +1 -1
- package/dist/wcardinal/ui/d-tree-item-non-editable.js.map +1 -1
- package/dist/wcardinal/ui/d-tree-item-text.js.map +1 -1
- package/dist/wcardinal/ui/d-view-gesture-impl.js.map +1 -1
- package/dist/wcardinal/ui/d-view-impl.js.map +1 -1
- package/dist/wcardinal/ui/shape/action/e-shape-action-runtime-base.js.map +1 -1
- package/dist/wcardinal/ui/shape/action/e-shape-action-runtime-gesture-layer.js +1 -2
- package/dist/wcardinal/ui/shape/action/e-shape-action-runtime-gesture-layer.js.map +1 -1
- package/dist/wcardinal/ui/shape/action/e-shape-action-runtime-gesture-shape.js +1 -2
- package/dist/wcardinal/ui/shape/action/e-shape-action-runtime-gesture-shape.js.map +1 -1
- package/dist/wcardinal/ui/shape/action/e-shape-action-runtime-misc-html-element-base.js.map +1 -1
- package/dist/wcardinal/ui/shape/action/e-shape-action-runtime.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-runtime-impl.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-runtime.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-button-runtime.js.map +1 -1
- package/dist/wcardinal/ui/util/util-click-outside.js.map +1 -1
- package/dist/wcardinal/ui/util/util-gesture-data.js.map +1 -1
- package/dist/wcardinal/ui/util/util-gesture-modifiers.js.map +1 -1
- package/dist/wcardinal/ui/util/util-gesture.js.map +1 -1
- package/dist/wcardinal/ui/util/util-html-element.js.map +1 -1
- package/dist/wcardinal/ui/util/util-pointer-event.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 +27 -19
- package/dist/wcardinal-ui.js +27 -19
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util-gesture.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-gesture.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { interaction, utils } from \"pixi.js\";\nimport { DApplicationTarget } from \"../d-application-like\";\nimport { DApplications } from \"../d-applications\";\nimport { DBaseStateSet } from \"../d-base-state-set\";\nimport { UtilGestureModifier } from \"./util-gesture-modifier\";\nimport { UtilGestureModifiers } from \"./util-gesture-modifiers\";\nimport { UtilGestureData } from \"./util-gesture-data\";\nimport { UtilGestureEasing, UtilGestureEasingOptions } from \"./util-gesture-easing\";\nimport { UtilPointerEvent } from \"./util-pointer-event\";\nimport InteractionEvent = interaction.InteractionEvent;\n\nexport interface UtilGestureTarget extends DApplicationTarget {\n\tstate: DBaseStateSet;\n}\nexport type UtilGestureOnMove<TARGET> = (\n\ttarget: TARGET,\n\tdx: number,\n\tdy: number,\n\tx: number,\n\ty: number,\n\tds: number\n) => void;\nexport type UtilGestureOnStart<TARGET> = (target: TARGET) => void;\nexport type UtilGestureOnEnd<TARGET> = (target: TARGET) => void;\nexport type UtilGestureOnStop<TARGET> = (target: TARGET) => void;\nexport type UtilGestureOnEasingStart<TARGET> = (target: TARGET) => void;\nexport type UtilGestureOnEasingEnd<TARGET> = (target: TARGET) => void;\nexport type UtilGestureChecker<TARGET> = (\n\te: InteractionEvent,\n\tmodifier: UtilGestureModifier,\n\ttarget: TARGET\n) => boolean;\n\nexport interface UtilGestureCheckerOptions<TARGET> {\n\tstart?: UtilGestureChecker<TARGET>;\n\tmove?: UtilGestureChecker<TARGET>;\n}\n\nexport interface UtilGestureOnEasingOptions<TARGET> {\n\tstart?: UtilGestureOnEasingStart<TARGET>;\n\tend?: UtilGestureOnEasingEnd<TARGET>;\n}\n\nexport interface UtilGestureOnOptions<TARGET> {\n\tstart?: UtilGestureOnStart<TARGET>;\n\tmove?: UtilGestureOnMove<TARGET>;\n\tend?: UtilGestureOnEnd<TARGET>;\n\tstop?: UtilGestureOnStop<TARGET>;\n\teasing?: UtilGestureOnEasingOptions<TARGET>;\n}\n\nexport interface UtilGestureOptions<TARGET> {\n\t/**\n\t * True to restrict to touch gestures only.\n\t */\n\ttouch?: boolean;\n\n\t/**\n\t * Expected mouse modifiers\n\t */\n\tmodifier?: UtilGestureModifier;\n\n\t/**\n\t * Checker options\n\t */\n\tchecker?: UtilGestureCheckerOptions<TARGET>;\n\n\t/**\n\t * Easing options\n\t */\n\teasing?: boolean | UtilGestureEasingOptions;\n\n\t/** Binds the pointerdown event of the given target. */\n\tbind?: TARGET & utils.EventEmitter;\n\n\t/** Event options */\n\ton?: UtilGestureOnOptions<TARGET>;\n}\n\nexport class UtilGesture<TARGET extends UtilGestureTarget> {\n\tprotected _onStart?: UtilGestureOnStart<TARGET>;\n\tprotected _onMove?: UtilGestureOnMove<TARGET>;\n\tprotected _onEnd?: UtilGestureOnEnd<TARGET>;\n\tprotected _onStop?: UtilGestureOnStop<TARGET>;\n\tprotected _onEasingStart?: UtilGestureOnEasingStart<TARGET>;\n\tprotected _onEasingEnd?: UtilGestureOnEasingEnd<TARGET>;\n\tprotected _modifier: UtilGestureModifier;\n\tprotected _checkerStart: UtilGestureChecker<TARGET>;\n\tprotected _checkerMove: UtilGestureChecker<TARGET>;\n\tprotected _easing?: boolean | UtilGestureEasingOptions;\n\tprotected _touch: boolean;\n\n\tprotected _unused: Array<UtilGestureData<TARGET>>;\n\tprotected _used: Map<TARGET, UtilGestureData<TARGET>>;\n\n\tconstructor(options: UtilGestureOptions<TARGET>) {\n\t\tconst on = options.on;\n\t\tif (on) {\n\t\t\tthis._onStart = on.start;\n\t\t\tthis._onMove = on.move;\n\t\t\tthis._onEnd = on.end;\n\t\t\tthis._onStop = on.stop;\n\t\t\tconst easing = on.easing;\n\t\t\tif (easing != null) {\n\t\t\t\tthis._onEasingStart = easing.start;\n\t\t\t\tthis._onEasingEnd = easing.end;\n\t\t\t}\n\t\t}\n\t\tthis._modifier = options?.modifier ?? UtilGestureModifier.NONE;\n\t\tconst checker = options.checker;\n\t\tconst defaultChecker = UtilGestureModifiers.match;\n\t\tthis._checkerStart = checker?.start ?? defaultChecker;\n\t\tthis._checkerMove = checker?.move ?? defaultChecker;\n\t\tthis._easing = options.easing;\n\t\tthis._touch = !!options.touch;\n\n\t\tthis._unused = [];\n\t\tthis._used = new Map<TARGET, UtilGestureData<TARGET>>();\n\n\t\tconst bind = options.bind;\n\t\tif (bind != null) {\n\t\t\tthis.bind(bind);\n\t\t}\n\t}\n\n\tprotected newData(target: TARGET): UtilGestureData<TARGET> {\n\t\tconst used = this._used;\n\t\tconst result = used.get(target);\n\t\tif (result != null) {\n\t\t\treturn result;\n\t\t}\n\t\tconst poped = this._unused.pop();\n\t\tif (poped != null) {\n\t\t\tused.set(target, poped);\n\t\t\treturn poped;\n\t\t}\n\t\tconst created = new UtilGestureData<TARGET>();\n\t\tcreated.easing = this.newEasing(created);\n\t\tcreated.onMove = this.newOnMove(created);\n\t\tcreated.onEnd = this.newOnEnd(created);\n\t\tused.set(target, created);\n\t\treturn created;\n\t}\n\n\tprotected newEasing(data: UtilGestureData<TARGET>): UtilGestureEasing | undefined {\n\t\tconst easing = this._easing;\n\t\tif (easing == null || easing !== false) {\n\t\t\tconst onEasingMoveBound = (dx: number, dy: number, ds: number, time: number): void => {\n\t\t\t\tthis.onEasingMove(dx, dy, ds, time, data);\n\t\t\t};\n\t\t\tconst onEasingEndBound = (): void => {\n\t\t\t\tthis.onEasingEnd(data);\n\t\t\t};\n\t\t\treturn new UtilGestureEasing(\n\t\t\t\tonEasingMoveBound,\n\t\t\t\tonEasingEndBound,\n\t\t\t\tthis.toEasingOptions(easing)\n\t\t\t);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprotected toEasingOptions(\n\t\toptions?: true | UtilGestureEasingOptions\n\t): UtilGestureEasingOptions | undefined {\n\t\treturn options == null || options === true ? undefined : options;\n\t}\n\n\tprotected deleteData(data: UtilGestureData<TARGET>): void {\n\t\tconst target = data.target;\n\t\tif (target) {\n\t\t\tif (this._used.delete(target)) {\n\t\t\t\tdata.target = undefined;\n\t\t\t\tdata.pointers.clear();\n\t\t\t\tthis._unused.push(data);\n\t\t\t}\n\t\t}\n\t}\n\n\tbind(target: TARGET & utils.EventEmitter): this {\n\t\ttarget.on(UtilPointerEvent.down, (e: InteractionEvent): void => {\n\t\t\tthis.onDown(target, e);\n\t\t});\n\t\treturn this;\n\t}\n\n\tprotected isTouch(e: InteractionEvent): boolean {\n\t\tconst oe = e.data.originalEvent;\n\t\tif (\"touches\" in oe) {\n\t\t\treturn true;\n\t\t} else if (\"pointerId\" in oe) {\n\t\t\treturn oe.pointerType !== \"mouse\";\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tonDown(target: TARGET, e: InteractionEvent): void {\n\t\tif (this._touch && !this.isTouch(e)) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this._checkerStart(e, this._modifier, target)) {\n\t\t\treturn;\n\t\t}\n\t\tconst layer = DApplications.getLayer(target);\n\t\tif (layer == null) {\n\t\t\treturn;\n\t\t}\n\n\t\te.stopPropagation();\n\t\tif (target.state.isGesturing) {\n\t\t\tthis._used.get(target)?.start(e);\n\t\t} else {\n\t\t\t// User-defined handler\n\t\t\tconst onStart = this._onStart;\n\t\t\tif (onStart != null) {\n\t\t\t\tonStart(target);\n\t\t\t}\n\n\t\t\tconst data = this.newData(target);\n\t\t\tdata.target = target;\n\t\t\ttarget.state.isGesturing = true;\n\n\t\t\t// Interaction manager\n\t\t\tconst interactionManager = layer.renderer.plugins.interaction;\n\t\t\tdata.interactionManager = interactionManager;\n\n\t\t\t// Update the center\n\t\t\tdata.start(e);\n\n\t\t\t// Easing util\n\t\t\tconst easing = data.easing;\n\t\t\tif (easing) {\n\t\t\t\teasing.onStart();\n\t\t\t}\n\n\t\t\t// Event handler\n\t\t\tdata.bind(e);\n\t\t}\n\t}\n\n\tprotected newOnMove(data: UtilGestureData<TARGET>): (e: InteractionEvent) => void {\n\t\treturn (e: InteractionEvent): void => {\n\t\t\tthis.onMove(e, data);\n\t\t};\n\t}\n\n\tprotected newOnEnd(data: UtilGestureData<TARGET>): (e: InteractionEvent) => void {\n\t\treturn (e: InteractionEvent): void => {\n\t\t\tthis.onEnd(e, data);\n\t\t};\n\t}\n\n\tprotected onMove(e: InteractionEvent, data: UtilGestureData<TARGET>): void {\n\t\tconst target = data.target;\n\t\tif (target == null || !target.state.isGesturing) {\n\t\t\treturn;\n\t\t}\n\t\tif (!data.isUpdatable(e) || !this._checkerMove(e, this._modifier, target)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Update the center\n\t\tconst center = data.center;\n\t\tconst oldCenterX = center.x;\n\t\tconst oldCenterY = center.y;\n\t\tconst oldScale = data.scale;\n\t\tconst oldTime = data.time;\n\t\tdata.update(e);\n\t\tconst newCenterX = center.x;\n\t\tconst newCenterY = center.y;\n\t\tconst newScale = data.scale;\n\t\tconst newTime = data.time;\n\n\t\t// Calculate the position\n\t\tconst dx = newCenterX - oldCenterX;\n\t\tconst dy = newCenterY - oldCenterY;\n\t\tconst dt = newTime - oldTime;\n\t\tconst epsilon = 0.00001;\n\t\tconst ds = epsilon < oldScale && epsilon < newScale ? newScale / oldScale : 1;\n\n\t\t// Easing\n\t\tconst easing = data.easing;\n\t\tif (easing) {\n\t\t\teasing.onMove(dx, dy, ds, dt);\n\t\t}\n\n\t\t// Call the user-defined handler\n\t\tconst onMove = this._onMove;\n\t\tif (onMove != null) {\n\t\t\tif (dx !== 0 || dy !== 0 || ds !== 1) {\n\t\t\t\tonMove(target, dx, dy, newCenterX, newCenterY, ds);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onEnd(e: InteractionEvent, data: UtilGestureData<TARGET>): void {\n\t\tconst target = data.target;\n\t\tif (target == null || !target.state.isGesturing) {\n\t\t\treturn;\n\t\t}\n\t\tif (!data.end(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// State\n\t\ttarget.state.isGesturing = false;\n\n\t\t// Remove event handlers\n\t\tconst interactionManager = data.interactionManager;\n\t\tdata.interactionManager = undefined;\n\t\tif (interactionManager) {\n\t\t\tconst onMoveBound = data.onMove;\n\t\t\tif (onMoveBound) {\n\t\t\t\tinteractionManager.off(UtilPointerEvent.move, onMoveBound);\n\t\t\t}\n\t\t\tconst onEndBound = data.onEnd;\n\t\t\tif (onEndBound) {\n\t\t\t\tinteractionManager.off(UtilPointerEvent.up, onEndBound);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.cancel, onEndBound);\n\t\t\t}\n\t\t}\n\n\t\t// Call the user-defined handler\n\t\tconst onEnd = this._onEnd;\n\t\tif (onEnd != null) {\n\t\t\tonEnd(target);\n\t\t}\n\n\t\t// Start the Easing\n\t\tconst onEasingStart = this._onEasingStart;\n\t\tif (onEasingStart) {\n\t\t\tonEasingStart(data.target!);\n\t\t}\n\t\tconst easing = data.easing;\n\t\tif (easing) {\n\t\t\teasing.onEnd(e.data.originalEvent.timeStamp - data.time);\n\t\t} else {\n\t\t\tthis.deleteData(data);\n\t\t\tconst onEasingEnd = this._onEasingEnd;\n\t\t\tif (onEasingEnd) {\n\t\t\t\tonEasingEnd(data.target!);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onEasingMove(\n\t\tdx: number,\n\t\tdy: number,\n\t\tds: number,\n\t\ttime: number,\n\t\tdata: UtilGestureData<TARGET>\n\t): void {\n\t\tconst target = data.target;\n\t\tif (target == null) {\n\t\t\treturn;\n\t\t}\n\t\tconst onMove = this._onMove;\n\t\tif (onMove == null) {\n\t\t\treturn;\n\t\t}\n\t\tif (dx === 0 && dy === 0 && ds === 1) {\n\t\t\treturn;\n\t\t}\n\t\tconst center = data.center;\n\t\tconst x = center.x + dx;\n\t\tconst y = center.y + dy;\n\t\tcenter.set(x, y);\n\t\tonMove(data.target!, dx, dy, x, y, ds);\n\t}\n\n\tprotected onEasingEnd(data: UtilGestureData<TARGET>): void {\n\t\tconst target = data.target;\n\t\tthis.deleteData(data);\n\t\tconst onEasingEnd = this._onEasingEnd;\n\t\tif (onEasingEnd && target != null) {\n\t\t\tonEasingEnd(target);\n\t\t}\n\t}\n\n\tstop(target: TARGET): void {\n\t\tconst data = this._used.get(target);\n\t\tif (data == null) {\n\t\t\treturn;\n\t\t}\n\t\tdata.easing?.stop();\n\t\tthis.deleteData(data);\n\t\tconst onStop = this._onStop;\n\t\tif (onStop) {\n\t\t\tonStop(target);\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"util-gesture.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-gesture.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAA4B,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAsExD;IAgBC,qBAAY,OAAmC;;QAC9C,IAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACtB,IAAI,EAAE,EAAE;YACP,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC;YACzB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC;YACrB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;YACvB,IAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;YACzB,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC;gBACnC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC;aAC/B;SACD;QACD,IAAI,CAAC,SAAS,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,mBAAmB,CAAC,IAAI,CAAC;QAC/D,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAM,cAAc,GAAG,oBAAoB,CAAC,KAAK,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,mCAAI,cAAc,CAAC;QACtD,IAAI,CAAC,YAAY,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,mCAAI,cAAc,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAE9B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAmC,CAAC;QAExD,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,IAAI,IAAI,IAAI,IAAI,EAAE;YACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChB;IACF,CAAC;IAES,6BAAO,GAAjB,UAAkB,MAAc;QAC/B,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,OAAO,MAAM,CAAC;SACd;QACD,IAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,KAAK,IAAI,IAAI,EAAE;YAClB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACxB,OAAO,KAAK,CAAC;SACb;QACD,IAAM,OAAO,GAAG,IAAI,eAAe,EAAU,CAAC;QAC9C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1B,OAAO,OAAO,CAAC;IAChB,CAAC;IAES,+BAAS,GAAnB,UAAoB,IAA6B;QAAjD,iBAgBC;QAfA,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,KAAK,EAAE;YACvC,IAAM,iBAAiB,GAAG,UAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,IAAY;gBAC1E,KAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3C,CAAC,CAAC;YACF,IAAM,gBAAgB,GAAG;gBACxB,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC,CAAC;YACF,OAAO,IAAI,iBAAiB,CAC3B,iBAAiB,EACjB,gBAAgB,EAChB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAC5B,CAAC;SACF;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAES,qCAAe,GAAzB,UACC,OAAyC;QAEzC,OAAO,OAAO,IAAI,IAAI,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;IAClE,CAAC;IAES,gCAAU,GAApB,UAAqB,IAA6B;QACjD,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE;YACX,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;gBAC9B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;SACD;IACF,CAAC;IAED,0BAAI,GAAJ,UAAK,MAAmC;QAAxC,iBAKC;QAJA,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAC,CAAmB;YACpD,KAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACb,CAAC;IAES,6BAAO,GAAjB,UAAkB,CAAmB;QACpC,IAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QAChC,IAAI,SAAS,IAAI,EAAE,EAAE;YACpB,OAAO,IAAI,CAAC;SACZ;aAAM,IAAI,WAAW,IAAI,EAAE,EAAE;YAC7B,OAAO,EAAE,CAAC,WAAW,KAAK,OAAO,CAAC;SAClC;aAAM;YACN,OAAO,KAAK,CAAC;SACb;IACF,CAAC;IAED,4BAAM,GAAN,UAAO,MAAc,EAAE,CAAmB;;QACzC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACpC,OAAO;SACP;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;YACnD,OAAO;SACP;QACD,IAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,KAAK,IAAI,IAAI,EAAE;YAClB,OAAO;SACP;QAED,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE;YAC7B,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,0CAAE,KAAK,CAAC,CAAC,CAAC,CAAC;SACjC;aAAM;YACN,uBAAuB;YACvB,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,OAAO,IAAI,IAAI,EAAE;gBACpB,OAAO,CAAC,MAAM,CAAC,CAAC;aAChB;YAED,IAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;YAEhC,sBAAsB;YACtB,IAAM,kBAAkB,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;YAC9D,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;YAE7C,oBAAoB;YACpB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEd,cAAc;YACd,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,MAAM,EAAE;gBACX,MAAM,CAAC,OAAO,EAAE,CAAC;aACjB;YAED,gBAAgB;YAChB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACb;IACF,CAAC;IAES,+BAAS,GAAnB,UAAoB,IAA6B;QAAjD,iBAIC;QAHA,OAAO,UAAC,CAAmB;YAC1B,KAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACtB,CAAC,CAAC;IACH,CAAC;IAES,8BAAQ,GAAlB,UAAmB,IAA6B;QAAhD,iBAIC;QAHA,OAAO,UAAC,CAAmB;YAC1B,KAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC;IACH,CAAC;IAES,4BAAM,GAAhB,UAAiB,CAAmB,EAAE,IAA6B;QAClE,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE;YAChD,OAAO;SACP;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;YAC1E,OAAO;SACP;QAED,oBAAoB;QACpB,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC;QAC5B,IAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC;QAC5B,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,IAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACf,IAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC;QAC5B,IAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC;QAC5B,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,IAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAE1B,yBAAyB;QACzB,IAAM,EAAE,GAAG,UAAU,GAAG,UAAU,CAAC;QACnC,IAAM,EAAE,GAAG,UAAU,GAAG,UAAU,CAAC;QACnC,IAAM,EAAE,GAAG,OAAO,GAAG,OAAO,CAAC;QAC7B,IAAM,OAAO,GAAG,OAAO,CAAC;QACxB,IAAM,EAAE,GAAG,OAAO,GAAG,QAAQ,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9E,SAAS;QACT,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE;YACX,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SAC9B;QAED,gCAAgC;QAChC,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;gBACrC,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;aACnD;SACD;IACF,CAAC;IAES,2BAAK,GAAf,UAAgB,CAAmB,EAAE,IAA6B;QACjE,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE;YAChD,OAAO;SACP;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACjB,OAAO;SACP;QAED,QAAQ;QACR,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;QAEjC,wBAAwB;QACxB,IAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnD,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,IAAI,kBAAkB,EAAE;YACvB,IAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;YAChC,IAAI,WAAW,EAAE;gBAChB,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;aAC3D;YACD,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YAC9B,IAAI,UAAU,EAAE;gBACf,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;gBACxD,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;aAC5D;SACD;QAED,gCAAgC;QAChC,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,KAAK,IAAI,IAAI,EAAE;YAClB,KAAK,CAAC,MAAM,CAAC,CAAC;SACd;QAED,mBAAmB;QACnB,IAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,aAAa,EAAE;YAClB,aAAa,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC;SAC5B;QACD,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE;YACX,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;SACzD;aAAM;YACN,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtB,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YACtC,IAAI,WAAW,EAAE;gBAChB,WAAW,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC;aAC1B;SACD;IACF,CAAC;IAES,kCAAY,GAAtB,UACC,EAAU,EACV,EAAU,EACV,EAAU,EACV,IAAY,EACZ,IAA6B;QAE7B,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,OAAO;SACP;QACD,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,OAAO;SACP;QACD,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;YACrC,OAAO;SACP;QACD,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;QACxB,IAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,MAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IAES,iCAAW,GAArB,UAAsB,IAA6B;QAClD,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtB,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,WAAW,IAAI,MAAM,IAAI,IAAI,EAAE;YAClC,WAAW,CAAC,MAAM,CAAC,CAAC;SACpB;IACF,CAAC;IAED,0BAAI,GAAJ,UAAK,MAAc;;QAClB,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,IAAI,IAAI,IAAI,EAAE;YACjB,OAAO;SACP;QACD,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtB,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,MAAM,EAAE;YACX,MAAM,CAAC,MAAM,CAAC,CAAC;SACf;IACF,CAAC;IACF,kBAAC;AAAD,CAAC,AAzTD,IAyTC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { InteractionEvent, utils } from \"pixi.js\";\nimport { DApplicationTarget } from \"../d-application-like\";\nimport { DApplications } from \"../d-applications\";\nimport { DBaseStateSet } from \"../d-base-state-set\";\nimport { UtilGestureModifier } from \"./util-gesture-modifier\";\nimport { UtilGestureModifiers } from \"./util-gesture-modifiers\";\nimport { UtilGestureData } from \"./util-gesture-data\";\nimport { UtilGestureEasing, UtilGestureEasingOptions } from \"./util-gesture-easing\";\nimport { UtilPointerEvent } from \"./util-pointer-event\";\n\nexport interface UtilGestureTarget extends DApplicationTarget {\n\tstate: DBaseStateSet;\n}\nexport type UtilGestureOnMove<TARGET> = (\n\ttarget: TARGET,\n\tdx: number,\n\tdy: number,\n\tx: number,\n\ty: number,\n\tds: number\n) => void;\nexport type UtilGestureOnStart<TARGET> = (target: TARGET) => void;\nexport type UtilGestureOnEnd<TARGET> = (target: TARGET) => void;\nexport type UtilGestureOnStop<TARGET> = (target: TARGET) => void;\nexport type UtilGestureOnEasingStart<TARGET> = (target: TARGET) => void;\nexport type UtilGestureOnEasingEnd<TARGET> = (target: TARGET) => void;\nexport type UtilGestureChecker<TARGET> = (\n\te: InteractionEvent,\n\tmodifier: UtilGestureModifier,\n\ttarget: TARGET\n) => boolean;\n\nexport interface UtilGestureCheckerOptions<TARGET> {\n\tstart?: UtilGestureChecker<TARGET>;\n\tmove?: UtilGestureChecker<TARGET>;\n}\n\nexport interface UtilGestureOnEasingOptions<TARGET> {\n\tstart?: UtilGestureOnEasingStart<TARGET>;\n\tend?: UtilGestureOnEasingEnd<TARGET>;\n}\n\nexport interface UtilGestureOnOptions<TARGET> {\n\tstart?: UtilGestureOnStart<TARGET>;\n\tmove?: UtilGestureOnMove<TARGET>;\n\tend?: UtilGestureOnEnd<TARGET>;\n\tstop?: UtilGestureOnStop<TARGET>;\n\teasing?: UtilGestureOnEasingOptions<TARGET>;\n}\n\nexport interface UtilGestureOptions<TARGET> {\n\t/**\n\t * True to restrict to touch gestures only.\n\t */\n\ttouch?: boolean;\n\n\t/**\n\t * Expected mouse modifiers\n\t */\n\tmodifier?: UtilGestureModifier;\n\n\t/**\n\t * Checker options\n\t */\n\tchecker?: UtilGestureCheckerOptions<TARGET>;\n\n\t/**\n\t * Easing options\n\t */\n\teasing?: boolean | UtilGestureEasingOptions;\n\n\t/** Binds the pointerdown event of the given target. */\n\tbind?: TARGET & utils.EventEmitter;\n\n\t/** Event options */\n\ton?: UtilGestureOnOptions<TARGET>;\n}\n\nexport class UtilGesture<TARGET extends UtilGestureTarget> {\n\tprotected _onStart?: UtilGestureOnStart<TARGET>;\n\tprotected _onMove?: UtilGestureOnMove<TARGET>;\n\tprotected _onEnd?: UtilGestureOnEnd<TARGET>;\n\tprotected _onStop?: UtilGestureOnStop<TARGET>;\n\tprotected _onEasingStart?: UtilGestureOnEasingStart<TARGET>;\n\tprotected _onEasingEnd?: UtilGestureOnEasingEnd<TARGET>;\n\tprotected _modifier: UtilGestureModifier;\n\tprotected _checkerStart: UtilGestureChecker<TARGET>;\n\tprotected _checkerMove: UtilGestureChecker<TARGET>;\n\tprotected _easing?: boolean | UtilGestureEasingOptions;\n\tprotected _touch: boolean;\n\n\tprotected _unused: Array<UtilGestureData<TARGET>>;\n\tprotected _used: Map<TARGET, UtilGestureData<TARGET>>;\n\n\tconstructor(options: UtilGestureOptions<TARGET>) {\n\t\tconst on = options.on;\n\t\tif (on) {\n\t\t\tthis._onStart = on.start;\n\t\t\tthis._onMove = on.move;\n\t\t\tthis._onEnd = on.end;\n\t\t\tthis._onStop = on.stop;\n\t\t\tconst easing = on.easing;\n\t\t\tif (easing != null) {\n\t\t\t\tthis._onEasingStart = easing.start;\n\t\t\t\tthis._onEasingEnd = easing.end;\n\t\t\t}\n\t\t}\n\t\tthis._modifier = options?.modifier ?? UtilGestureModifier.NONE;\n\t\tconst checker = options.checker;\n\t\tconst defaultChecker = UtilGestureModifiers.match;\n\t\tthis._checkerStart = checker?.start ?? defaultChecker;\n\t\tthis._checkerMove = checker?.move ?? defaultChecker;\n\t\tthis._easing = options.easing;\n\t\tthis._touch = !!options.touch;\n\n\t\tthis._unused = [];\n\t\tthis._used = new Map<TARGET, UtilGestureData<TARGET>>();\n\n\t\tconst bind = options.bind;\n\t\tif (bind != null) {\n\t\t\tthis.bind(bind);\n\t\t}\n\t}\n\n\tprotected newData(target: TARGET): UtilGestureData<TARGET> {\n\t\tconst used = this._used;\n\t\tconst result = used.get(target);\n\t\tif (result != null) {\n\t\t\treturn result;\n\t\t}\n\t\tconst poped = this._unused.pop();\n\t\tif (poped != null) {\n\t\t\tused.set(target, poped);\n\t\t\treturn poped;\n\t\t}\n\t\tconst created = new UtilGestureData<TARGET>();\n\t\tcreated.easing = this.newEasing(created);\n\t\tcreated.onMove = this.newOnMove(created);\n\t\tcreated.onEnd = this.newOnEnd(created);\n\t\tused.set(target, created);\n\t\treturn created;\n\t}\n\n\tprotected newEasing(data: UtilGestureData<TARGET>): UtilGestureEasing | undefined {\n\t\tconst easing = this._easing;\n\t\tif (easing == null || easing !== false) {\n\t\t\tconst onEasingMoveBound = (dx: number, dy: number, ds: number, time: number): void => {\n\t\t\t\tthis.onEasingMove(dx, dy, ds, time, data);\n\t\t\t};\n\t\t\tconst onEasingEndBound = (): void => {\n\t\t\t\tthis.onEasingEnd(data);\n\t\t\t};\n\t\t\treturn new UtilGestureEasing(\n\t\t\t\tonEasingMoveBound,\n\t\t\t\tonEasingEndBound,\n\t\t\t\tthis.toEasingOptions(easing)\n\t\t\t);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprotected toEasingOptions(\n\t\toptions?: true | UtilGestureEasingOptions\n\t): UtilGestureEasingOptions | undefined {\n\t\treturn options == null || options === true ? undefined : options;\n\t}\n\n\tprotected deleteData(data: UtilGestureData<TARGET>): void {\n\t\tconst target = data.target;\n\t\tif (target) {\n\t\t\tif (this._used.delete(target)) {\n\t\t\t\tdata.target = undefined;\n\t\t\t\tdata.pointers.clear();\n\t\t\t\tthis._unused.push(data);\n\t\t\t}\n\t\t}\n\t}\n\n\tbind(target: TARGET & utils.EventEmitter): this {\n\t\ttarget.on(UtilPointerEvent.down, (e: InteractionEvent): void => {\n\t\t\tthis.onDown(target, e);\n\t\t});\n\t\treturn this;\n\t}\n\n\tprotected isTouch(e: InteractionEvent): boolean {\n\t\tconst oe = e.data.originalEvent;\n\t\tif (\"touches\" in oe) {\n\t\t\treturn true;\n\t\t} else if (\"pointerId\" in oe) {\n\t\t\treturn oe.pointerType !== \"mouse\";\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tonDown(target: TARGET, e: InteractionEvent): void {\n\t\tif (this._touch && !this.isTouch(e)) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this._checkerStart(e, this._modifier, target)) {\n\t\t\treturn;\n\t\t}\n\t\tconst layer = DApplications.getLayer(target);\n\t\tif (layer == null) {\n\t\t\treturn;\n\t\t}\n\n\t\te.stopPropagation();\n\t\tif (target.state.isGesturing) {\n\t\t\tthis._used.get(target)?.start(e);\n\t\t} else {\n\t\t\t// User-defined handler\n\t\t\tconst onStart = this._onStart;\n\t\t\tif (onStart != null) {\n\t\t\t\tonStart(target);\n\t\t\t}\n\n\t\t\tconst data = this.newData(target);\n\t\t\tdata.target = target;\n\t\t\ttarget.state.isGesturing = true;\n\n\t\t\t// Interaction manager\n\t\t\tconst interactionManager = layer.renderer.plugins.interaction;\n\t\t\tdata.interactionManager = interactionManager;\n\n\t\t\t// Update the center\n\t\t\tdata.start(e);\n\n\t\t\t// Easing util\n\t\t\tconst easing = data.easing;\n\t\t\tif (easing) {\n\t\t\t\teasing.onStart();\n\t\t\t}\n\n\t\t\t// Event handler\n\t\t\tdata.bind(e);\n\t\t}\n\t}\n\n\tprotected newOnMove(data: UtilGestureData<TARGET>): (e: InteractionEvent) => void {\n\t\treturn (e: InteractionEvent): void => {\n\t\t\tthis.onMove(e, data);\n\t\t};\n\t}\n\n\tprotected newOnEnd(data: UtilGestureData<TARGET>): (e: InteractionEvent) => void {\n\t\treturn (e: InteractionEvent): void => {\n\t\t\tthis.onEnd(e, data);\n\t\t};\n\t}\n\n\tprotected onMove(e: InteractionEvent, data: UtilGestureData<TARGET>): void {\n\t\tconst target = data.target;\n\t\tif (target == null || !target.state.isGesturing) {\n\t\t\treturn;\n\t\t}\n\t\tif (!data.isUpdatable(e) || !this._checkerMove(e, this._modifier, target)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Update the center\n\t\tconst center = data.center;\n\t\tconst oldCenterX = center.x;\n\t\tconst oldCenterY = center.y;\n\t\tconst oldScale = data.scale;\n\t\tconst oldTime = data.time;\n\t\tdata.update(e);\n\t\tconst newCenterX = center.x;\n\t\tconst newCenterY = center.y;\n\t\tconst newScale = data.scale;\n\t\tconst newTime = data.time;\n\n\t\t// Calculate the position\n\t\tconst dx = newCenterX - oldCenterX;\n\t\tconst dy = newCenterY - oldCenterY;\n\t\tconst dt = newTime - oldTime;\n\t\tconst epsilon = 0.00001;\n\t\tconst ds = epsilon < oldScale && epsilon < newScale ? newScale / oldScale : 1;\n\n\t\t// Easing\n\t\tconst easing = data.easing;\n\t\tif (easing) {\n\t\t\teasing.onMove(dx, dy, ds, dt);\n\t\t}\n\n\t\t// Call the user-defined handler\n\t\tconst onMove = this._onMove;\n\t\tif (onMove != null) {\n\t\t\tif (dx !== 0 || dy !== 0 || ds !== 1) {\n\t\t\t\tonMove(target, dx, dy, newCenterX, newCenterY, ds);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onEnd(e: InteractionEvent, data: UtilGestureData<TARGET>): void {\n\t\tconst target = data.target;\n\t\tif (target == null || !target.state.isGesturing) {\n\t\t\treturn;\n\t\t}\n\t\tif (!data.end(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// State\n\t\ttarget.state.isGesturing = false;\n\n\t\t// Remove event handlers\n\t\tconst interactionManager = data.interactionManager;\n\t\tdata.interactionManager = undefined;\n\t\tif (interactionManager) {\n\t\t\tconst onMoveBound = data.onMove;\n\t\t\tif (onMoveBound) {\n\t\t\t\tinteractionManager.off(UtilPointerEvent.move, onMoveBound);\n\t\t\t}\n\t\t\tconst onEndBound = data.onEnd;\n\t\t\tif (onEndBound) {\n\t\t\t\tinteractionManager.off(UtilPointerEvent.up, onEndBound);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.cancel, onEndBound);\n\t\t\t}\n\t\t}\n\n\t\t// Call the user-defined handler\n\t\tconst onEnd = this._onEnd;\n\t\tif (onEnd != null) {\n\t\t\tonEnd(target);\n\t\t}\n\n\t\t// Start the Easing\n\t\tconst onEasingStart = this._onEasingStart;\n\t\tif (onEasingStart) {\n\t\t\tonEasingStart(data.target!);\n\t\t}\n\t\tconst easing = data.easing;\n\t\tif (easing) {\n\t\t\teasing.onEnd(e.data.originalEvent.timeStamp - data.time);\n\t\t} else {\n\t\t\tthis.deleteData(data);\n\t\t\tconst onEasingEnd = this._onEasingEnd;\n\t\t\tif (onEasingEnd) {\n\t\t\t\tonEasingEnd(data.target!);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onEasingMove(\n\t\tdx: number,\n\t\tdy: number,\n\t\tds: number,\n\t\ttime: number,\n\t\tdata: UtilGestureData<TARGET>\n\t): void {\n\t\tconst target = data.target;\n\t\tif (target == null) {\n\t\t\treturn;\n\t\t}\n\t\tconst onMove = this._onMove;\n\t\tif (onMove == null) {\n\t\t\treturn;\n\t\t}\n\t\tif (dx === 0 && dy === 0 && ds === 1) {\n\t\t\treturn;\n\t\t}\n\t\tconst center = data.center;\n\t\tconst x = center.x + dx;\n\t\tconst y = center.y + dy;\n\t\tcenter.set(x, y);\n\t\tonMove(data.target!, dx, dy, x, y, ds);\n\t}\n\n\tprotected onEasingEnd(data: UtilGestureData<TARGET>): void {\n\t\tconst target = data.target;\n\t\tthis.deleteData(data);\n\t\tconst onEasingEnd = this._onEasingEnd;\n\t\tif (onEasingEnd && target != null) {\n\t\t\tonEasingEnd(target);\n\t\t}\n\t}\n\n\tstop(target: TARGET): void {\n\t\tconst data = this._used.get(target);\n\t\tif (data == null) {\n\t\t\treturn;\n\t\t}\n\t\tdata.easing?.stop();\n\t\tthis.deleteData(data);\n\t\tconst onStop = this._onStop;\n\t\tif (onStop) {\n\t\t\tonStop(target);\n\t\t}\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util-html-element.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-html-element.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { interaction, Matrix, Point, Rectangle, Renderer } from \"pixi.js\";\nimport { DApplications } from \"../d-applications\";\nimport { DBase } from \"../d-base\";\nimport { DBaseStateSet } from \"../d-base-state-set\";\nimport { DFocusableMightBe } from \"../d-controller-focus\";\nimport { toEnum } from \"./to-enum\";\nimport { UtilHtmlElementClipperEx } from \"./util-html-element-clipper-ex\";\nimport { UtilHtmlElementClipperExImpl } from \"./util-html-element-clipper-ex-impl\";\nimport { UtilHtmlElementClipperExRects } from \"./util-html-element-clipper-ex-rects\";\nimport { UtilHtmlElementClipperExRectsImpl } from \"./util-html-element-clipper-ex-rects-impl\";\nimport { UtilHtmlElementWhen } from \"./util-html-element-when\";\n\nexport interface UtilHtmlElementPaddingLTRB {\n\tgetLeft(): number;\n\tgetTop(): number;\n\tgetRight(): number;\n\tgetBottom(): number;\n}\n\nexport interface UtilHtmlElementPaddingVH {\n\treadonly horizontal: number;\n\treadonly vertical: number;\n}\n\nexport type UtilHtmlElementPadding = UtilHtmlElementPaddingVH | UtilHtmlElementPaddingLTRB;\n\nexport type UtilHtmlElementCreator<T extends HTMLElement> = (container: HTMLElement) => T | null;\nexport type UtilHtmlElementStyler<T extends HTMLElement> = (\n\ttarget: T,\n\tstate: DBaseStateSet,\n\tpadding: UtilHtmlElementPadding | null,\n\telementRect: Rectangle | null,\n\telementMatrix: Matrix | null,\n\tclipperRect: Rectangle | null,\n\tclipperEx: UtilHtmlElementClipperEx | null | undefined\n) => void;\n\nexport type UtilHtmlElementStylerBefore = (target: HTMLDivElement) => void;\nexport type UtilHtmlElementStylerAfter = (target: HTMLDivElement) => void;\nexport type UtilHtmlElementToRect = (\n\tresolution: number,\n\twork: Point,\n\tresult: Rectangle\n) => Rectangle | null;\nexport type UtilHtmlElementToMatrix = () => Matrix | null;\n\nexport interface UtilHtmlElementElementOptions<ELEMENT extends HTMLElement> {\n\tcreator?: UtilHtmlElementCreator<ELEMENT>;\n\tstyler?: UtilHtmlElementStyler<ELEMENT>;\n}\n\nexport interface UtilHtmlElementClipperOptions {\n\tcreator?: UtilHtmlElementCreator<HTMLDivElement>;\n\tstyler?: UtilHtmlElementStyler<HTMLDivElement>;\n\textended?: boolean;\n}\n\nexport interface UtilHtmlElementBeforeOptions {\n\tcreator?: UtilHtmlElementCreator<HTMLDivElement>;\n\tstyler?: UtilHtmlElementStylerBefore;\n}\n\nexport interface UtilHtmlElementAfterOptions {\n\tcreator?: UtilHtmlElementCreator<HTMLDivElement>;\n\tstyler?: UtilHtmlElementStylerAfter;\n}\n\nexport interface UtilHtmlElementOptions<ELEMENT extends HTMLElement = HTMLElement> {\n\telement?: UtilHtmlElementElementOptions<ELEMENT>;\n\tclipper?: UtilHtmlElementClipperOptions;\n\tbefore?: UtilHtmlElementBeforeOptions;\n\tafter?: UtilHtmlElementAfterOptions;\n\twhen?: UtilHtmlElementWhen | keyof typeof UtilHtmlElementWhen;\n\tselect?: boolean;\n}\n\nexport interface UtilThemeHtmlElement<ELEMENT extends HTMLElement> {\n\tgetElementCreator(): UtilHtmlElementCreator<ELEMENT>;\n\tsetElementStyle(\n\t\ttarget: ELEMENT,\n\t\tstate: DBaseStateSet,\n\t\tpadding: UtilHtmlElementPadding | null,\n\t\telementRect: Rectangle | null,\n\t\telementMatrix: Matrix | null,\n\t\tclipperRect: Rectangle | null,\n\t\tclipperEx: UtilHtmlElementClipperEx | null | undefined\n\t): void;\n\tgetClipperCreator(): UtilHtmlElementCreator<HTMLDivElement>;\n\tsetClipperStyle(\n\t\ttarget: HTMLDivElement,\n\t\tstate: DBaseStateSet,\n\t\tpadding: UtilHtmlElementPadding | null,\n\t\telementRect: Rectangle | null,\n\t\telementMatrix: Matrix | null,\n\t\tclipperRect: Rectangle | null,\n\t\tclipperEx: UtilHtmlElementClipperEx | null | undefined\n\t): void;\n\tisClipperExEnabled(): boolean;\n\tgetBeforeCreator(): UtilHtmlElementCreator<HTMLDivElement>;\n\tsetBeforeStyle(target: HTMLDivElement): void;\n\tgetAfterCreator(): UtilHtmlElementCreator<HTMLDivElement>;\n\tsetAfterStyle(target: HTMLDivElement): void;\n\tgetWhen(): UtilHtmlElementWhen;\n\tgetSelect(): boolean;\n}\n\nexport interface UtilHtmlElementElementData<ELEMENT extends HTMLElement> {\n\tcreator: UtilHtmlElementCreator<ELEMENT>;\n\tstyler: UtilHtmlElementStyler<ELEMENT>;\n}\n\nexport interface UtilHtmlElementClipperData {\n\tcreator: UtilHtmlElementCreator<HTMLDivElement>;\n\tstyler: UtilHtmlElementStyler<HTMLDivElement>;\n\textended: boolean;\n}\n\nexport interface UtilHtmlElementBeforeData {\n\tcreator: UtilHtmlElementCreator<HTMLDivElement>;\n\tstyler: UtilHtmlElementStylerBefore;\n}\n\nexport interface UtilHtmlElementAfterData {\n\tcreator: UtilHtmlElementCreator<HTMLDivElement>;\n\tstyler: UtilHtmlElementStylerAfter;\n}\n\nexport interface UtilHtmlElementData<ELEMENT extends HTMLElement = HTMLElement> {\n\telement: UtilHtmlElementElementData<ELEMENT>;\n\tclipper: UtilHtmlElementClipperData;\n\tbefore: UtilHtmlElementBeforeData;\n\tafter: UtilHtmlElementAfterData;\n\twhen: UtilHtmlElementWhen;\n\tselect: boolean;\n}\n\nexport interface UtilHtmlElementTarget extends DFocusableMightBe {\n\treadonly state: DBaseStateSet;\n\treadonly cursor?: string;\n\treadonly worldVisible: boolean;\n\n\tfocus(): void;\n}\n\nexport interface UtilHtmlElementOperation<ELEMENT extends HTMLElement> {\n\tgetElementRect(resolution: number, work: Point, result: Rectangle): Rectangle | null;\n\tgetElementMatrix(): Matrix | null;\n\tgetClipperRect(resolution: number, work: Point, result: Rectangle): Rectangle | null;\n\tgetClipperExRects?(result: UtilHtmlElementClipperExRects): void;\n\tgetPadding(): UtilHtmlElementPadding | null;\n\tcontainsPoint(point: Point): boolean;\n\tonStart(): void;\n\tonCancel(): void;\n\tonEnd(): void;\n}\n\nexport class UtilHtmlElement<\n\tELEMENT extends HTMLElement = HTMLElement,\n\tTARGET extends UtilHtmlElementTarget = UtilHtmlElementTarget,\n\tOPERATION extends UtilHtmlElementOperation<ELEMENT> = UtilHtmlElementOperation<ELEMENT>,\n\tTHEME extends UtilThemeHtmlElement<ELEMENT> = UtilThemeHtmlElement<ELEMENT>,\n\tOPTIONS extends UtilHtmlElementOptions<ELEMENT> = UtilHtmlElementOptions<ELEMENT>\n> {\n\tprotected _target: TARGET;\n\tprotected _operation: OPERATION;\n\tprotected _data: UtilHtmlElementData<ELEMENT>;\n\n\tprotected _point?: Point;\n\n\tprotected _clipper?: HTMLDivElement | null;\n\tprotected _clipperRectResult?: Rectangle;\n\n\tprotected _clipperEx?: UtilHtmlElementClipperEx | null;\n\tprotected _clipperExRects?: UtilHtmlElementClipperExRects | null;\n\n\tprotected _element?: ELEMENT | null;\n\tprotected _elementRectResult?: Rectangle;\n\tprotected _isElementShown: boolean;\n\tprotected _onElementFocusBound: (e: FocusEvent) => void;\n\n\tprotected _before?: HTMLDivElement | null;\n\tprotected _onBeforeFocusBound: (e: FocusEvent) => void;\n\n\tprotected _after?: HTMLDivElement | null;\n\tprotected _onAfterFocusBound!: (e: FocusEvent) => void;\n\n\tprotected _isStarted: boolean;\n\tprotected _wasStarted: boolean;\n\tprotected _doSelectBound: () => void;\n\tprotected _isStartRequested: boolean;\n\n\tprotected _rendererBound?: Renderer;\n\tprotected _onPostRenderBound: () => void;\n\n\tconstructor(target: TARGET, operation: OPERATION, theme: THEME, options?: OPTIONS) {\n\t\tthis._target = target;\n\t\tthis._operation = operation;\n\t\tconst data = this.toData(theme, options);\n\t\tthis._data = data;\n\n\t\tthis._isElementShown = false;\n\t\tthis._onElementFocusBound = (e: FocusEvent): void => {\n\t\t\tthis.onElementFocus(e);\n\t\t};\n\n\t\tthis._onBeforeFocusBound = (e: FocusEvent): void => {\n\t\t\tthis.onBeforeFocus(e);\n\t\t};\n\n\t\tthis._onAfterFocusBound = (e: FocusEvent): void => {\n\t\t\tthis.onAfterFocus(e);\n\t\t};\n\n\t\tthis._isStarted = false;\n\t\tthis._wasStarted = false;\n\t\tthis._doSelectBound = () => {\n\t\t\tthis.doSelect();\n\t\t};\n\t\tthis._isStartRequested = this._data.when === UtilHtmlElementWhen.ALWAYS;\n\t\tthis._onPostRenderBound = () => {\n\t\t\tthis.updateElement(this._rendererBound!);\n\t\t};\n\t}\n\n\tprotected toData(theme: THEME, options?: OPTIONS): UtilHtmlElementData<ELEMENT> {\n\t\treturn {\n\t\t\telement: this.toElementData(theme, options?.element),\n\t\t\tclipper: this.toClipperData(theme, options?.clipper),\n\t\t\tbefore: this.toBeforeData(theme, options?.before),\n\t\t\tafter: this.toAfterData(theme, options?.after),\n\t\t\twhen: toEnum(options?.when ?? theme.getWhen(), UtilHtmlElementWhen),\n\t\t\tselect: options?.select ?? theme.getSelect()\n\t\t};\n\t}\n\n\tprotected toElementData(\n\t\ttheme: THEME,\n\t\toptions?: OPTIONS[\"element\"]\n\t): UtilHtmlElementElementData<ELEMENT> {\n\t\treturn {\n\t\t\tcreator: options?.creator ?? theme.getElementCreator(),\n\t\t\tstyler: options?.styler ?? this.newElementStyler(theme)\n\t\t};\n\t}\n\n\tprotected newElementStyler(theme: THEME) {\n\t\treturn (\n\t\t\ttarget: ELEMENT,\n\t\t\tstate: DBaseStateSet,\n\t\t\tpadding: UtilHtmlElementPadding | null,\n\t\t\telementRect: Rectangle | null,\n\t\t\telementMatrix: Matrix | null,\n\t\t\tclipperRect: Rectangle | null,\n\t\t\tclipperEx: UtilHtmlElementClipperEx | null | undefined\n\t\t): void => {\n\t\t\treturn theme.setElementStyle(\n\t\t\t\ttarget,\n\t\t\t\tstate,\n\t\t\t\tpadding,\n\t\t\t\telementRect,\n\t\t\t\telementMatrix,\n\t\t\t\tclipperRect,\n\t\t\t\tclipperEx\n\t\t\t);\n\t\t};\n\t}\n\n\tprotected toClipperData(\n\t\ttheme: THEME,\n\t\toptions?: OPTIONS[\"clipper\"]\n\t): UtilHtmlElementClipperData {\n\t\treturn {\n\t\t\tcreator: options?.creator ?? theme.getClipperCreator(),\n\t\t\tstyler: options?.styler ?? this.newClipperStyler(theme),\n\t\t\textended: options?.extended ?? theme.isClipperExEnabled()\n\t\t};\n\t}\n\n\tprotected newClipperStyler(theme: THEME) {\n\t\treturn (\n\t\t\ttarget: HTMLDivElement,\n\t\t\tstate: DBaseStateSet,\n\t\t\tpadding: UtilHtmlElementPadding | null,\n\t\t\telementRect: Rectangle | null,\n\t\t\telementMatrix: Matrix | null,\n\t\t\tclipperRect: Rectangle | null,\n\t\t\tclipperEx: UtilHtmlElementClipperEx | null | undefined\n\t\t): void => {\n\t\t\treturn theme.setClipperStyle(\n\t\t\t\ttarget,\n\t\t\t\tstate,\n\t\t\t\tpadding,\n\t\t\t\telementRect,\n\t\t\t\telementMatrix,\n\t\t\t\tclipperRect,\n\t\t\t\tclipperEx\n\t\t\t);\n\t\t};\n\t}\n\n\tprotected toBeforeData(theme: THEME, options?: OPTIONS[\"before\"]): UtilHtmlElementBeforeData {\n\t\treturn {\n\t\t\tcreator: options?.creator ?? theme.getBeforeCreator(),\n\t\t\tstyler: options?.styler ?? this.newBeforeStyler(theme)\n\t\t};\n\t}\n\n\tprotected newBeforeStyler(theme: THEME) {\n\t\treturn (target: HTMLDivElement): void => {\n\t\t\ttheme.setBeforeStyle(target);\n\t\t};\n\t}\n\n\tprotected toAfterData(theme: THEME, options?: OPTIONS[\"after\"]): UtilHtmlElementAfterData {\n\t\treturn {\n\t\t\tcreator: options?.creator ?? theme.getAfterCreator(),\n\t\t\tstyler: options?.styler ?? this.newAfterStyler(theme)\n\t\t};\n\t}\n\n\tprotected newAfterStyler(theme: THEME) {\n\t\treturn (target: HTMLDivElement): void => {\n\t\t\ttheme.setAfterStyle(target);\n\t\t};\n\t}\n\n\tget element(): ELEMENT | null {\n\t\treturn this._element ?? null;\n\t}\n\n\tget when(): UtilHtmlElementWhen {\n\t\treturn this._data.when;\n\t}\n\n\tonDowning(e: interaction.InteractionEvent | KeyboardEvent): void {\n\t\tthis._wasStarted = this._isStarted;\n\t\tswitch (this.when) {\n\t\t\tcase UtilHtmlElementWhen.CLICKED:\n\t\t\t\tthis.start();\n\t\t\t\tbreak;\n\t\t\tcase UtilHtmlElementWhen.FOCUSED:\n\t\t\t\tif (this._target.state.isFocused) {\n\t\t\t\t\tthis.start();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tonDown(e: interaction.InteractionEvent | KeyboardEvent): void {\n\t\tif (!this._wasStarted && this._isStarted) {\n\t\t\tif (\"data\" in e) {\n\t\t\t\te.data.originalEvent.preventDefault();\n\t\t\t} else {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\n\tonDblClick(\n\t\te: MouseEvent | TouchEvent | KeyboardEvent,\n\t\tinteractionManager: interaction.InteractionManager\n\t): void {\n\t\tswitch (this.when) {\n\t\t\tcase UtilHtmlElementWhen.DOUBLE_CLICKED:\n\t\t\t\tthis.start();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tonFocus(): void {\n\t\tswitch (this.when) {\n\t\t\tcase UtilHtmlElementWhen.FOCUSED:\n\t\t\t\tthis.start();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthis._element?.focus();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tonBlur(): void {\n\t\tswitch (this.when) {\n\t\t\tcase UtilHtmlElementWhen.CLICKED:\n\t\t\tcase UtilHtmlElementWhen.DOUBLE_CLICKED:\n\t\t\tcase UtilHtmlElementWhen.FOCUSED:\n\t\t\t\tthis.onEndByBlur();\n\t\t\t\tthis.cancel();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthis._element?.blur();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tisStartable(): boolean {\n\t\tswitch (this.when) {\n\t\t\tcase UtilHtmlElementWhen.CLICKED:\n\t\t\tcase UtilHtmlElementWhen.DOUBLE_CLICKED:\n\t\t\tcase UtilHtmlElementWhen.FOCUSED:\n\t\t\t\treturn this._target.state.isActionable;\n\t\t\tdefault:\n\t\t\t\treturn true;\n\t\t}\n\t}\n\n\tstart(): void {\n\t\tif (!this._isStarted && this.isStartable()) {\n\t\t\tthis._isStarted = true;\n\t\t\tif (this._target.worldVisible) {\n\t\t\t\tthis.doStart();\n\t\t\t} else {\n\t\t\t\tthis._isStartRequested = true;\n\t\t\t}\n\t\t\tDApplications.update(this._target);\n\t\t}\n\t}\n\n\tisShown(): boolean {\n\t\treturn this._isElementShown;\n\t}\n\n\tonRender(renderer: Renderer): void {\n\t\tif (\n\t\t\tthis._isStartRequested ||\n\t\t\t(!this._isElementShown && this.when === UtilHtmlElementWhen.ALWAYS)\n\t\t) {\n\t\t\tthis._isStartRequested = false;\n\t\t\tthis.doStart(renderer);\n\t\t}\n\t\tif (this._isStarted) {\n\t\t\tthis._isStarted = false;\n\t\t}\n\t}\n\n\tprotected getElementRect(resolution: number): Rectangle | null {\n\t\tconst point = this._point || new Point(0, 0);\n\t\tthis._point = point;\n\t\tconst result = this._elementRectResult || new Rectangle();\n\t\tthis._elementRectResult = result;\n\t\treturn this._operation.getElementRect(resolution, point, result);\n\t}\n\n\tprotected getElementMatrix(): Matrix | null {\n\t\treturn this._operation.getElementMatrix();\n\t}\n\n\tprotected getClipperRect(resolution: number): Rectangle | null {\n\t\tconst point = this._point || new Point(0, 0);\n\t\tthis._point = point;\n\t\tconst result = this._clipperRectResult || new Rectangle();\n\t\tthis._clipperRectResult = result;\n\t\treturn this._operation.getClipperRect(resolution, point, result);\n\t}\n\n\tprotected fillClipperExRects(\n\t\tresolution: number,\n\t\tresult: UtilHtmlElementClipperExRects\n\t): boolean {\n\t\tconst operation = this._operation;\n\t\tif (operation.getClipperExRects) {\n\t\t\toperation.getClipperExRects(result);\n\t\t}\n\t\treturn result.isDirty();\n\t}\n\n\tprotected doStart(renderer?: Renderer): void {\n\t\tif (!this._isElementShown) {\n\t\t\tthis._isElementShown = true;\n\n\t\t\tconst rendererBound = this._rendererBound;\n\t\t\tif (rendererBound != null) {\n\t\t\t\tthis._rendererBound = undefined;\n\t\t\t\trendererBound.off(\"postrender\", this._onPostRenderBound);\n\t\t\t}\n\n\t\t\tconst target = this._target;\n\t\t\tif (renderer == null) {\n\t\t\t\trenderer = DApplications.getLayer(target)?.renderer;\n\t\t\t}\n\t\t\tif (renderer) {\n\t\t\t\tthis._rendererBound = renderer;\n\t\t\t\trenderer.on(\"postrender\", this._onPostRenderBound);\n\t\t\t}\n\n\t\t\tthis.onStart();\n\n\t\t\tconst clipper = this.getClipper();\n\t\t\tif (clipper) {\n\t\t\t\tconst before = this.getBefore(clipper);\n\t\t\t\tconst element = this.getElement(clipper);\n\t\t\t\tconst after = this.getAfter(clipper);\n\t\t\t\tconst clipperEx = this.getClipperEx(clipper);\n\t\t\t\tif (element) {\n\t\t\t\t\tconst resolution = renderer?.resolution ?? DApplications.getResolution(target);\n\t\t\t\t\tconst elementRect = this.getElementRect(resolution);\n\t\t\t\t\tconst elementMatrix = this.getElementMatrix();\n\t\t\t\t\tconst clipperRect = this.toClipperRectAdjusted(\n\t\t\t\t\t\telementRect,\n\t\t\t\t\t\telementMatrix,\n\t\t\t\t\t\tthis.getClipperRect(resolution)\n\t\t\t\t\t);\n\t\t\t\t\tconst state = target.state;\n\t\t\t\t\tconst padding = this._operation.getPadding();\n\t\t\t\t\tconst options = this._data;\n\t\t\t\t\toptions.clipper.styler(\n\t\t\t\t\t\tclipper,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tpadding,\n\t\t\t\t\t\telementRect,\n\t\t\t\t\t\telementMatrix,\n\t\t\t\t\t\tclipperRect,\n\t\t\t\t\t\tclipperEx\n\t\t\t\t\t);\n\t\t\t\t\toptions.element.styler(\n\t\t\t\t\t\telement,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tpadding,\n\t\t\t\t\t\telementRect,\n\t\t\t\t\t\telementMatrix,\n\t\t\t\t\t\tclipperRect,\n\t\t\t\t\t\tclipperEx\n\t\t\t\t\t);\n\t\t\t\t\tif (before) {\n\t\t\t\t\t\toptions.before.styler(before);\n\t\t\t\t\t}\n\t\t\t\t\tif (after) {\n\t\t\t\t\t\toptions.after.styler(after);\n\t\t\t\t\t}\n\t\t\t\t\tthis.onElementAttached(element, before, after);\n\t\t\t\t\tif (clipperEx) {\n\t\t\t\t\t\tconst clipperExRects = this.getClipperExRects();\n\t\t\t\t\t\tif (clipperExRects) {\n\t\t\t\t\t\t\tif (this.fillClipperExRects(resolution, clipperExRects)) {\n\t\t\t\t\t\t\t\tclipperEx.update(elementRect, elementMatrix, clipperExRects);\n\t\t\t\t\t\t\t\tclipperExRects.toClean();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Show HTML elements\n\t\t\t\t\tclipper.style.display = \"\";\n\t\t\t\t\tif (state.isFocused) {\n\t\t\t\t\t\tthis.toElementFocused(element);\n\t\t\t\t\t}\n\t\t\t\t\tclipper.scrollTop = 0;\n\t\t\t\t\tclipper.scrollLeft = 0;\n\n\t\t\t\t\t// Select the element if required.\n\t\t\t\t\t// Note that a selecting without the setTimeout causes a key stroke drop on Microsoft Edge.\n\t\t\t\t\tif (this._data.select) {\n\t\t\t\t\t\tsetTimeout(this._doSelectBound, 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected toElementFocused(element: ELEMENT): void {\n\t\telement.focus({\n\t\t\tpreventScroll: true\n\t\t});\n\t}\n\n\tprotected onStart(): void {\n\t\tthis._operation.onStart();\n\t}\n\n\tprotected doSelect(): void {\n\t\tconst element = this._element;\n\t\tif (element) {\n\t\t\tif (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {\n\t\t\t\t// The following does not work on mobile devices.\n\t\t\t\t// I think selecting texts on a tap is annoying.\n\t\t\t\t// Therefore, I leave this untouched.\n\t\t\t\telement.select();\n\t\t\t}\n\t\t}\n\t}\n\n\tcancel(): void {\n\t\tif (this._isElementShown) {\n\t\t\tthis._isElementShown = false;\n\n\t\t\tconst rendererBound = this._rendererBound;\n\t\t\tif (rendererBound != null) {\n\t\t\t\tthis._rendererBound = undefined;\n\t\t\t\trendererBound.off(\"postrender\", this._onPostRenderBound);\n\t\t\t}\n\n\t\t\tthis.onCancel();\n\n\t\t\tconst target = this._target;\n\t\t\tconst layer = DApplications.getLayer(target);\n\t\t\tif (layer) {\n\t\t\t\tconst view = layer.view;\n\t\t\t\tswitch (this.when) {\n\t\t\t\t\tcase UtilHtmlElementWhen.CLICKED:\n\t\t\t\t\tcase UtilHtmlElementWhen.DOUBLE_CLICKED:\n\t\t\t\t\tcase UtilHtmlElementWhen.FOCUSED:\n\t\t\t\t\t\tif (document.activeElement === this._element) {\n\t\t\t\t\t\t\tview.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tconst state = target.state;\n\t\t\t\tconst interactionManager = layer.renderer.plugins.interaction;\n\t\t\t\tif (\n\t\t\t\t\tthis._operation.containsPoint(interactionManager.mouse.global) &&\n\t\t\t\t\t!state.isHovered\n\t\t\t\t) {\n\t\t\t\t\tstate.isHovered = true;\n\t\t\t\t\tview.style.cursor = target.cursor ?? \"\";\n\t\t\t\t}\n\n\t\t\t\tlayer.update();\n\t\t\t}\n\n\t\t\tconst element = this._element;\n\t\t\tif (element != null) {\n\t\t\t\tthis.onElementDetached(element, this._before, this._after);\n\t\t\t}\n\n\t\t\tconst clipper = this._clipper;\n\t\t\tif (clipper != null) {\n\t\t\t\tclipper.style.display = \"none\";\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onCancel(): void {\n\t\tthis._operation.onCancel();\n\t}\n\n\tprotected onElementAttached(\n\t\telement: ELEMENT,\n\t\tbefore?: HTMLDivElement | null,\n\t\tafter?: HTMLDivElement | null\n\t): void {\n\t\tbefore?.addEventListener(\"focus\", this._onBeforeFocusBound);\n\t\tafter?.addEventListener(\"focus\", this._onAfterFocusBound);\n\t\telement.addEventListener(\"focus\", this._onElementFocusBound, true);\n\t}\n\n\tprotected onElementDetached(\n\t\telement: ELEMENT,\n\t\tbefore?: HTMLDivElement | null,\n\t\tafter?: HTMLDivElement | null\n\t): void {\n\t\tbefore?.removeEventListener(\"focus\", this._onBeforeFocusBound);\n\t\tafter?.removeEventListener(\"focus\", this._onAfterFocusBound);\n\t\telement.removeEventListener(\"focus\", this._onElementFocusBound, true);\n\t}\n\n\tprotected getClipper(): HTMLDivElement | null {\n\t\tlet result = this._clipper;\n\t\tif (result == null) {\n\t\t\tconst layer = DApplications.getLayer(this._target);\n\t\t\tresult = layer ? this._data.clipper.creator(layer.getElementContainer()) : null;\n\t\t\tthis._clipper = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected getClipperEx(clipper: HTMLDivElement): UtilHtmlElementClipperEx | null {\n\t\tlet result = this._clipperEx;\n\t\tif (result === undefined) {\n\t\t\tconst clipperExRects = this.getClipperExRects();\n\t\t\tif (clipperExRects != null) {\n\t\t\t\tresult = new UtilHtmlElementClipperExImpl(clipper);\n\t\t\t} else {\n\t\t\t\tresult = null;\n\t\t\t}\n\t\t\tthis._clipperEx = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected getClipperExRects(): UtilHtmlElementClipperExRects | null {\n\t\tlet result = this._clipperExRects;\n\t\tif (result === undefined) {\n\t\t\tif (this._data.clipper.extended) {\n\t\t\t\tresult = new UtilHtmlElementClipperExRectsImpl();\n\t\t\t} else {\n\t\t\t\tresult = null;\n\t\t\t}\n\t\t\tthis._clipperExRects = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected getElement(clipper: HTMLDivElement): ELEMENT | null {\n\t\tlet result = this._element;\n\t\tif (result == null) {\n\t\t\tresult = this._data.element.creator(clipper);\n\t\t\tthis._element = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected getBefore(clipper: HTMLDivElement): HTMLDivElement | null {\n\t\tlet result = this._before;\n\t\tif (result == null) {\n\t\t\tresult = this._data.before.creator(clipper);\n\t\t\tthis._before = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected getAfter(clipper: HTMLDivElement): HTMLDivElement | null {\n\t\tlet result = this._after;\n\t\tif (result == null) {\n\t\t\tresult = this._data.after.creator(clipper);\n\t\t\tthis._after = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected onBeforeFocus(e: FocusEvent): void {\n\t\tconst target = this._target;\n\t\tconst layer = DApplications.getLayer(target);\n\t\tif (layer) {\n\t\t\tconst focusController = layer.getFocusController();\n\t\t\tconst focusable = focusController.find(target, false, false, false);\n\t\t\tlayer.view.focus();\n\t\t\tfocusController.focus(focusable);\n\t\t\te.preventDefault();\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\t}\n\n\tprotected onAfterFocus(e: FocusEvent): void {\n\t\tconst target = this._target;\n\t\tconst layer = DApplications.getLayer(target);\n\t\tif (layer) {\n\t\t\tconst focusController = layer.getFocusController();\n\t\t\tconst focusable = focusController.find(target, false, false, true);\n\t\t\tlayer.view.focus();\n\t\t\tfocusController.focus(focusable);\n\t\t\te.preventDefault();\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\t}\n\n\tprotected onElementFocus(e: FocusEvent): void {\n\t\tif (this.when === UtilHtmlElementWhen.ALWAYS) {\n\t\t\tconst target = this._target;\n\t\t\tif (!target.state.isFocused) {\n\t\t\t\ttarget.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onEndByBlur(): void {\n\t\tthis.onEnd();\n\t}\n\n\tprotected onEnd(): void {\n\t\tthis._operation.onEnd();\n\t}\n\n\tend(): void {\n\t\tthis.onEnd();\n\t\tthis.cancel();\n\t}\n\n\tselect(): this {\n\t\tif (this._isElementShown && this._data.select) {\n\t\t\tthis.doSelect();\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected toClipperRectAdjusted(\n\t\telementRect: Rectangle | null,\n\t\telementMatrix: Matrix | null,\n\t\tclipperRect: Rectangle | null\n\t): Rectangle | null {\n\t\tif (clipperRect && elementRect && elementMatrix == null) {\n\t\t\tconst ex0 = elementRect.x;\n\t\t\tconst ey0 = elementRect.y;\n\t\t\tconst ex1 = ex0 + elementRect.width;\n\t\t\tconst ey1 = ey0 + elementRect.height;\n\t\t\tconst cx0 = clipperRect.x;\n\t\t\tconst cy0 = clipperRect.y;\n\t\t\tconst cx1 = cx0 + clipperRect.width;\n\t\t\tconst cy1 = cy0 + clipperRect.height;\n\t\t\tconst ncx0 = Math.min(Math.max(cx0, ex0), cx1);\n\t\t\tconst ncx1 = Math.min(Math.max(cx0, ex1), cx1);\n\t\t\tconst ncy0 = Math.min(Math.max(cy0, ey0), cy1);\n\t\t\tconst ncy1 = Math.min(Math.max(cy0, ey1), cy1);\n\t\t\tclipperRect.x = ncx0;\n\t\t\tclipperRect.y = ncy0;\n\t\t\tclipperRect.width = ncx1 - ncx0;\n\t\t\tclipperRect.height = ncy1 - ncy0;\n\t\t}\n\t\treturn clipperRect;\n\t}\n\n\tprotected updateElement(renderer: Renderer): void {\n\t\tif (this._isElementShown) {\n\t\t\tconst target = this._target;\n\t\t\tif (target.worldVisible) {\n\t\t\t\tconst element = this._element;\n\t\t\t\tconst clipper = this._clipper;\n\t\t\t\tconst clipperEx = this._clipperEx;\n\t\t\t\tif (element && clipper) {\n\t\t\t\t\tconst resolution = renderer.resolution;\n\t\t\t\t\tconst elementRect = this.getElementRect(resolution);\n\t\t\t\t\tconst elementMatrix = this.getElementMatrix();\n\t\t\t\t\tconst clipperRect = this.toClipperRectAdjusted(\n\t\t\t\t\t\telementRect,\n\t\t\t\t\t\telementMatrix,\n\t\t\t\t\t\tthis.getClipperRect(resolution)\n\t\t\t\t\t);\n\t\t\t\t\tconst state = target.state;\n\t\t\t\t\tconst padding = this._operation.getPadding();\n\t\t\t\t\tconst options = this._data;\n\t\t\t\t\toptions.clipper.styler(\n\t\t\t\t\t\tclipper,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tpadding,\n\t\t\t\t\t\telementRect,\n\t\t\t\t\t\telementMatrix,\n\t\t\t\t\t\tclipperRect,\n\t\t\t\t\t\tclipperEx\n\t\t\t\t\t);\n\t\t\t\t\toptions.element.styler(\n\t\t\t\t\t\telement,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tpadding,\n\t\t\t\t\t\telementRect,\n\t\t\t\t\t\telementMatrix,\n\t\t\t\t\t\tclipperRect,\n\t\t\t\t\t\tclipperEx\n\t\t\t\t\t);\n\t\t\t\t\tif (clipperEx) {\n\t\t\t\t\t\tconst clipperExRects = this.getClipperExRects();\n\t\t\t\t\t\tif (clipperExRects) {\n\t\t\t\t\t\t\tif (this.fillClipperExRects(resolution, clipperExRects)) {\n\t\t\t\t\t\t\t\tclipperEx.update(elementRect, elementMatrix, clipperExRects);\n\t\t\t\t\t\t\t\tclipperExRects.toClean();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch (this.when) {\n\t\t\t\t\tcase UtilHtmlElementWhen.ALWAYS:\n\t\t\t\t\t\tconst clipper = this._clipper;\n\t\t\t\t\t\tif (clipper) {\n\t\t\t\t\t\t\tclipper.style.display = \"none\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.cancel();\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic getClipperRect(\n\t\tparent: unknown,\n\t\ttarget: unknown,\n\t\tresolution: number,\n\t\tpoint: Point,\n\t\tresult: Rectangle\n\t): Rectangle | null {\n\t\tlet isFirst = true;\n\n\t\tlet x0 = 0;\n\t\tlet y0 = 0;\n\t\tlet x1 = 0;\n\t\tlet y1 = 0;\n\n\t\tlet current = parent;\n\t\twhile (current instanceof DBase) {\n\t\t\tcurrent.getClippingRect(target, result);\n\n\t\t\tpoint.set(result.x, result.y);\n\t\t\tcurrent.toGlobal(point, point, false);\n\t\t\tconst cx0 = ((point.x * resolution) | 0) / resolution;\n\t\t\tconst cy0 = ((point.y * resolution) | 0) / resolution;\n\n\t\t\tpoint.set(result.x + result.width, result.y + result.height);\n\t\t\tcurrent.toGlobal(point, point, true);\n\t\t\tconst cx1 = point.x;\n\t\t\tconst cy1 = point.y;\n\n\t\t\tconst dx0 = Math.min(cx0, cx1);\n\t\t\tconst dy0 = Math.min(cy0, cy1);\n\t\t\tconst dx1 = Math.max(cx0, cx1);\n\t\t\tconst dy1 = Math.max(cy0, cy1);\n\n\t\t\tif (isFirst) {\n\t\t\t\tisFirst = false;\n\t\t\t\tx0 = dx0;\n\t\t\t\ty0 = dy0;\n\t\t\t\tx1 = dx1;\n\t\t\t\ty1 = dy1;\n\t\t\t} else {\n\t\t\t\tx0 = Math.min(Math.max(x0, dx0), dx1);\n\t\t\t\ty0 = Math.min(Math.max(y0, dy0), dy1);\n\t\t\t\tx1 = Math.min(Math.max(x1, dx0), dx1);\n\t\t\t\ty1 = Math.min(Math.max(y1, dy0), dy1);\n\t\t\t}\n\n\t\t\tcurrent = current.parent;\n\t\t}\n\n\t\tif (isFirst) {\n\t\t\treturn null;\n\t\t}\n\n\t\tresult.x = x0;\n\t\tresult.y = y0;\n\t\tresult.width = x1 - x0;\n\t\tresult.height = y1 - y0;\n\t\treturn result;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"util-html-element.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-html-element.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { InteractionEvent, InteractionManager, Matrix, Point, Rectangle, Renderer } from \"pixi.js\";\nimport { DApplications } from \"../d-applications\";\nimport { DBase } from \"../d-base\";\nimport { DBaseStateSet } from \"../d-base-state-set\";\nimport { DFocusableMightBe } from \"../d-controller-focus\";\nimport { toEnum } from \"./to-enum\";\nimport { UtilHtmlElementClipperEx } from \"./util-html-element-clipper-ex\";\nimport { UtilHtmlElementClipperExImpl } from \"./util-html-element-clipper-ex-impl\";\nimport { UtilHtmlElementClipperExRects } from \"./util-html-element-clipper-ex-rects\";\nimport { UtilHtmlElementClipperExRectsImpl } from \"./util-html-element-clipper-ex-rects-impl\";\nimport { UtilHtmlElementWhen } from \"./util-html-element-when\";\n\nexport interface UtilHtmlElementPaddingLTRB {\n\tgetLeft(): number;\n\tgetTop(): number;\n\tgetRight(): number;\n\tgetBottom(): number;\n}\n\nexport interface UtilHtmlElementPaddingVH {\n\treadonly horizontal: number;\n\treadonly vertical: number;\n}\n\nexport type UtilHtmlElementPadding = UtilHtmlElementPaddingVH | UtilHtmlElementPaddingLTRB;\n\nexport type UtilHtmlElementCreator<T extends HTMLElement> = (container: HTMLElement) => T | null;\nexport type UtilHtmlElementStyler<T extends HTMLElement> = (\n\ttarget: T,\n\tstate: DBaseStateSet,\n\tpadding: UtilHtmlElementPadding | null,\n\telementRect: Rectangle | null,\n\telementMatrix: Matrix | null,\n\tclipperRect: Rectangle | null,\n\tclipperEx: UtilHtmlElementClipperEx | null | undefined\n) => void;\n\nexport type UtilHtmlElementStylerBefore = (target: HTMLDivElement) => void;\nexport type UtilHtmlElementStylerAfter = (target: HTMLDivElement) => void;\nexport type UtilHtmlElementToRect = (\n\tresolution: number,\n\twork: Point,\n\tresult: Rectangle\n) => Rectangle | null;\nexport type UtilHtmlElementToMatrix = () => Matrix | null;\n\nexport interface UtilHtmlElementElementOptions<ELEMENT extends HTMLElement> {\n\tcreator?: UtilHtmlElementCreator<ELEMENT>;\n\tstyler?: UtilHtmlElementStyler<ELEMENT>;\n}\n\nexport interface UtilHtmlElementClipperOptions {\n\tcreator?: UtilHtmlElementCreator<HTMLDivElement>;\n\tstyler?: UtilHtmlElementStyler<HTMLDivElement>;\n\textended?: boolean;\n}\n\nexport interface UtilHtmlElementBeforeOptions {\n\tcreator?: UtilHtmlElementCreator<HTMLDivElement>;\n\tstyler?: UtilHtmlElementStylerBefore;\n}\n\nexport interface UtilHtmlElementAfterOptions {\n\tcreator?: UtilHtmlElementCreator<HTMLDivElement>;\n\tstyler?: UtilHtmlElementStylerAfter;\n}\n\nexport interface UtilHtmlElementOptions<ELEMENT extends HTMLElement = HTMLElement> {\n\telement?: UtilHtmlElementElementOptions<ELEMENT>;\n\tclipper?: UtilHtmlElementClipperOptions;\n\tbefore?: UtilHtmlElementBeforeOptions;\n\tafter?: UtilHtmlElementAfterOptions;\n\twhen?: UtilHtmlElementWhen | keyof typeof UtilHtmlElementWhen;\n\tselect?: boolean;\n}\n\nexport interface UtilThemeHtmlElement<ELEMENT extends HTMLElement> {\n\tgetElementCreator(): UtilHtmlElementCreator<ELEMENT>;\n\tsetElementStyle(\n\t\ttarget: ELEMENT,\n\t\tstate: DBaseStateSet,\n\t\tpadding: UtilHtmlElementPadding | null,\n\t\telementRect: Rectangle | null,\n\t\telementMatrix: Matrix | null,\n\t\tclipperRect: Rectangle | null,\n\t\tclipperEx: UtilHtmlElementClipperEx | null | undefined\n\t): void;\n\tgetClipperCreator(): UtilHtmlElementCreator<HTMLDivElement>;\n\tsetClipperStyle(\n\t\ttarget: HTMLDivElement,\n\t\tstate: DBaseStateSet,\n\t\tpadding: UtilHtmlElementPadding | null,\n\t\telementRect: Rectangle | null,\n\t\telementMatrix: Matrix | null,\n\t\tclipperRect: Rectangle | null,\n\t\tclipperEx: UtilHtmlElementClipperEx | null | undefined\n\t): void;\n\tisClipperExEnabled(): boolean;\n\tgetBeforeCreator(): UtilHtmlElementCreator<HTMLDivElement>;\n\tsetBeforeStyle(target: HTMLDivElement): void;\n\tgetAfterCreator(): UtilHtmlElementCreator<HTMLDivElement>;\n\tsetAfterStyle(target: HTMLDivElement): void;\n\tgetWhen(): UtilHtmlElementWhen;\n\tgetSelect(): boolean;\n}\n\nexport interface UtilHtmlElementElementData<ELEMENT extends HTMLElement> {\n\tcreator: UtilHtmlElementCreator<ELEMENT>;\n\tstyler: UtilHtmlElementStyler<ELEMENT>;\n}\n\nexport interface UtilHtmlElementClipperData {\n\tcreator: UtilHtmlElementCreator<HTMLDivElement>;\n\tstyler: UtilHtmlElementStyler<HTMLDivElement>;\n\textended: boolean;\n}\n\nexport interface UtilHtmlElementBeforeData {\n\tcreator: UtilHtmlElementCreator<HTMLDivElement>;\n\tstyler: UtilHtmlElementStylerBefore;\n}\n\nexport interface UtilHtmlElementAfterData {\n\tcreator: UtilHtmlElementCreator<HTMLDivElement>;\n\tstyler: UtilHtmlElementStylerAfter;\n}\n\nexport interface UtilHtmlElementData<ELEMENT extends HTMLElement = HTMLElement> {\n\telement: UtilHtmlElementElementData<ELEMENT>;\n\tclipper: UtilHtmlElementClipperData;\n\tbefore: UtilHtmlElementBeforeData;\n\tafter: UtilHtmlElementAfterData;\n\twhen: UtilHtmlElementWhen;\n\tselect: boolean;\n}\n\nexport interface UtilHtmlElementTarget extends DFocusableMightBe {\n\treadonly state: DBaseStateSet;\n\treadonly cursor?: string;\n\treadonly worldVisible: boolean;\n\n\tfocus(): void;\n}\n\nexport interface UtilHtmlElementOperation<ELEMENT extends HTMLElement> {\n\tgetElementRect(resolution: number, work: Point, result: Rectangle): Rectangle | null;\n\tgetElementMatrix(): Matrix | null;\n\tgetClipperRect(resolution: number, work: Point, result: Rectangle): Rectangle | null;\n\tgetClipperExRects?(result: UtilHtmlElementClipperExRects): void;\n\tgetPadding(): UtilHtmlElementPadding | null;\n\tcontainsPoint(point: Point): boolean;\n\tonStart(): void;\n\tonCancel(): void;\n\tonEnd(): void;\n}\n\nexport class UtilHtmlElement<\n\tELEMENT extends HTMLElement = HTMLElement,\n\tTARGET extends UtilHtmlElementTarget = UtilHtmlElementTarget,\n\tOPERATION extends UtilHtmlElementOperation<ELEMENT> = UtilHtmlElementOperation<ELEMENT>,\n\tTHEME extends UtilThemeHtmlElement<ELEMENT> = UtilThemeHtmlElement<ELEMENT>,\n\tOPTIONS extends UtilHtmlElementOptions<ELEMENT> = UtilHtmlElementOptions<ELEMENT>\n> {\n\tprotected _target: TARGET;\n\tprotected _operation: OPERATION;\n\tprotected _data: UtilHtmlElementData<ELEMENT>;\n\n\tprotected _point?: Point;\n\n\tprotected _clipper?: HTMLDivElement | null;\n\tprotected _clipperRectResult?: Rectangle;\n\n\tprotected _clipperEx?: UtilHtmlElementClipperEx | null;\n\tprotected _clipperExRects?: UtilHtmlElementClipperExRects | null;\n\n\tprotected _element?: ELEMENT | null;\n\tprotected _elementRectResult?: Rectangle;\n\tprotected _isElementShown: boolean;\n\tprotected _onElementFocusBound: (e: FocusEvent) => void;\n\n\tprotected _before?: HTMLDivElement | null;\n\tprotected _onBeforeFocusBound: (e: FocusEvent) => void;\n\n\tprotected _after?: HTMLDivElement | null;\n\tprotected _onAfterFocusBound!: (e: FocusEvent) => void;\n\n\tprotected _isStarted: boolean;\n\tprotected _wasStarted: boolean;\n\tprotected _doSelectBound: () => void;\n\tprotected _isStartRequested: boolean;\n\n\tprotected _rendererBound?: Renderer;\n\tprotected _onPostRenderBound: () => void;\n\n\tconstructor(target: TARGET, operation: OPERATION, theme: THEME, options?: OPTIONS) {\n\t\tthis._target = target;\n\t\tthis._operation = operation;\n\t\tconst data = this.toData(theme, options);\n\t\tthis._data = data;\n\n\t\tthis._isElementShown = false;\n\t\tthis._onElementFocusBound = (e: FocusEvent): void => {\n\t\t\tthis.onElementFocus(e);\n\t\t};\n\n\t\tthis._onBeforeFocusBound = (e: FocusEvent): void => {\n\t\t\tthis.onBeforeFocus(e);\n\t\t};\n\n\t\tthis._onAfterFocusBound = (e: FocusEvent): void => {\n\t\t\tthis.onAfterFocus(e);\n\t\t};\n\n\t\tthis._isStarted = false;\n\t\tthis._wasStarted = false;\n\t\tthis._doSelectBound = () => {\n\t\t\tthis.doSelect();\n\t\t};\n\t\tthis._isStartRequested = this._data.when === UtilHtmlElementWhen.ALWAYS;\n\t\tthis._onPostRenderBound = () => {\n\t\t\tthis.updateElement(this._rendererBound!);\n\t\t};\n\t}\n\n\tprotected toData(theme: THEME, options?: OPTIONS): UtilHtmlElementData<ELEMENT> {\n\t\treturn {\n\t\t\telement: this.toElementData(theme, options?.element),\n\t\t\tclipper: this.toClipperData(theme, options?.clipper),\n\t\t\tbefore: this.toBeforeData(theme, options?.before),\n\t\t\tafter: this.toAfterData(theme, options?.after),\n\t\t\twhen: toEnum(options?.when ?? theme.getWhen(), UtilHtmlElementWhen),\n\t\t\tselect: options?.select ?? theme.getSelect()\n\t\t};\n\t}\n\n\tprotected toElementData(\n\t\ttheme: THEME,\n\t\toptions?: OPTIONS[\"element\"]\n\t): UtilHtmlElementElementData<ELEMENT> {\n\t\treturn {\n\t\t\tcreator: options?.creator ?? theme.getElementCreator(),\n\t\t\tstyler: options?.styler ?? this.newElementStyler(theme)\n\t\t};\n\t}\n\n\tprotected newElementStyler(theme: THEME) {\n\t\treturn (\n\t\t\ttarget: ELEMENT,\n\t\t\tstate: DBaseStateSet,\n\t\t\tpadding: UtilHtmlElementPadding | null,\n\t\t\telementRect: Rectangle | null,\n\t\t\telementMatrix: Matrix | null,\n\t\t\tclipperRect: Rectangle | null,\n\t\t\tclipperEx: UtilHtmlElementClipperEx | null | undefined\n\t\t): void => {\n\t\t\treturn theme.setElementStyle(\n\t\t\t\ttarget,\n\t\t\t\tstate,\n\t\t\t\tpadding,\n\t\t\t\telementRect,\n\t\t\t\telementMatrix,\n\t\t\t\tclipperRect,\n\t\t\t\tclipperEx\n\t\t\t);\n\t\t};\n\t}\n\n\tprotected toClipperData(\n\t\ttheme: THEME,\n\t\toptions?: OPTIONS[\"clipper\"]\n\t): UtilHtmlElementClipperData {\n\t\treturn {\n\t\t\tcreator: options?.creator ?? theme.getClipperCreator(),\n\t\t\tstyler: options?.styler ?? this.newClipperStyler(theme),\n\t\t\textended: options?.extended ?? theme.isClipperExEnabled()\n\t\t};\n\t}\n\n\tprotected newClipperStyler(theme: THEME) {\n\t\treturn (\n\t\t\ttarget: HTMLDivElement,\n\t\t\tstate: DBaseStateSet,\n\t\t\tpadding: UtilHtmlElementPadding | null,\n\t\t\telementRect: Rectangle | null,\n\t\t\telementMatrix: Matrix | null,\n\t\t\tclipperRect: Rectangle | null,\n\t\t\tclipperEx: UtilHtmlElementClipperEx | null | undefined\n\t\t): void => {\n\t\t\treturn theme.setClipperStyle(\n\t\t\t\ttarget,\n\t\t\t\tstate,\n\t\t\t\tpadding,\n\t\t\t\telementRect,\n\t\t\t\telementMatrix,\n\t\t\t\tclipperRect,\n\t\t\t\tclipperEx\n\t\t\t);\n\t\t};\n\t}\n\n\tprotected toBeforeData(theme: THEME, options?: OPTIONS[\"before\"]): UtilHtmlElementBeforeData {\n\t\treturn {\n\t\t\tcreator: options?.creator ?? theme.getBeforeCreator(),\n\t\t\tstyler: options?.styler ?? this.newBeforeStyler(theme)\n\t\t};\n\t}\n\n\tprotected newBeforeStyler(theme: THEME) {\n\t\treturn (target: HTMLDivElement): void => {\n\t\t\ttheme.setBeforeStyle(target);\n\t\t};\n\t}\n\n\tprotected toAfterData(theme: THEME, options?: OPTIONS[\"after\"]): UtilHtmlElementAfterData {\n\t\treturn {\n\t\t\tcreator: options?.creator ?? theme.getAfterCreator(),\n\t\t\tstyler: options?.styler ?? this.newAfterStyler(theme)\n\t\t};\n\t}\n\n\tprotected newAfterStyler(theme: THEME) {\n\t\treturn (target: HTMLDivElement): void => {\n\t\t\ttheme.setAfterStyle(target);\n\t\t};\n\t}\n\n\tget element(): ELEMENT | null {\n\t\treturn this._element ?? null;\n\t}\n\n\tget when(): UtilHtmlElementWhen {\n\t\treturn this._data.when;\n\t}\n\n\tonDowning(e: InteractionEvent | KeyboardEvent): void {\n\t\tthis._wasStarted = this._isStarted;\n\t\tswitch (this.when) {\n\t\t\tcase UtilHtmlElementWhen.CLICKED:\n\t\t\t\tthis.start();\n\t\t\t\tbreak;\n\t\t\tcase UtilHtmlElementWhen.FOCUSED:\n\t\t\t\tif (this._target.state.isFocused) {\n\t\t\t\t\tthis.start();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tonDown(e: InteractionEvent | KeyboardEvent): void {\n\t\tif (!this._wasStarted && this._isStarted) {\n\t\t\tif (\"data\" in e) {\n\t\t\t\te.data.originalEvent.preventDefault();\n\t\t\t} else {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\n\tonDblClick(\n\t\te: MouseEvent | TouchEvent | KeyboardEvent,\n\t\tinteractionManager: InteractionManager\n\t): void {\n\t\tswitch (this.when) {\n\t\t\tcase UtilHtmlElementWhen.DOUBLE_CLICKED:\n\t\t\t\tthis.start();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tonFocus(): void {\n\t\tswitch (this.when) {\n\t\t\tcase UtilHtmlElementWhen.FOCUSED:\n\t\t\t\tthis.start();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthis._element?.focus();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tonBlur(): void {\n\t\tswitch (this.when) {\n\t\t\tcase UtilHtmlElementWhen.CLICKED:\n\t\t\tcase UtilHtmlElementWhen.DOUBLE_CLICKED:\n\t\t\tcase UtilHtmlElementWhen.FOCUSED:\n\t\t\t\tthis.onEndByBlur();\n\t\t\t\tthis.cancel();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthis._element?.blur();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tisStartable(): boolean {\n\t\tswitch (this.when) {\n\t\t\tcase UtilHtmlElementWhen.CLICKED:\n\t\t\tcase UtilHtmlElementWhen.DOUBLE_CLICKED:\n\t\t\tcase UtilHtmlElementWhen.FOCUSED:\n\t\t\t\treturn this._target.state.isActionable;\n\t\t\tdefault:\n\t\t\t\treturn true;\n\t\t}\n\t}\n\n\tstart(): void {\n\t\tif (!this._isStarted && this.isStartable()) {\n\t\t\tthis._isStarted = true;\n\t\t\tif (this._target.worldVisible) {\n\t\t\t\tthis.doStart();\n\t\t\t} else {\n\t\t\t\tthis._isStartRequested = true;\n\t\t\t}\n\t\t\tDApplications.update(this._target);\n\t\t}\n\t}\n\n\tisShown(): boolean {\n\t\treturn this._isElementShown;\n\t}\n\n\tonRender(renderer: Renderer): void {\n\t\tif (\n\t\t\tthis._isStartRequested ||\n\t\t\t(!this._isElementShown && this.when === UtilHtmlElementWhen.ALWAYS)\n\t\t) {\n\t\t\tthis._isStartRequested = false;\n\t\t\tthis.doStart(renderer);\n\t\t}\n\t\tif (this._isStarted) {\n\t\t\tthis._isStarted = false;\n\t\t}\n\t}\n\n\tprotected getElementRect(resolution: number): Rectangle | null {\n\t\tconst point = this._point || new Point(0, 0);\n\t\tthis._point = point;\n\t\tconst result = this._elementRectResult || new Rectangle();\n\t\tthis._elementRectResult = result;\n\t\treturn this._operation.getElementRect(resolution, point, result);\n\t}\n\n\tprotected getElementMatrix(): Matrix | null {\n\t\treturn this._operation.getElementMatrix();\n\t}\n\n\tprotected getClipperRect(resolution: number): Rectangle | null {\n\t\tconst point = this._point || new Point(0, 0);\n\t\tthis._point = point;\n\t\tconst result = this._clipperRectResult || new Rectangle();\n\t\tthis._clipperRectResult = result;\n\t\treturn this._operation.getClipperRect(resolution, point, result);\n\t}\n\n\tprotected fillClipperExRects(\n\t\tresolution: number,\n\t\tresult: UtilHtmlElementClipperExRects\n\t): boolean {\n\t\tconst operation = this._operation;\n\t\tif (operation.getClipperExRects) {\n\t\t\toperation.getClipperExRects(result);\n\t\t}\n\t\treturn result.isDirty();\n\t}\n\n\tprotected doStart(renderer?: Renderer): void {\n\t\tif (!this._isElementShown) {\n\t\t\tthis._isElementShown = true;\n\n\t\t\tconst rendererBound = this._rendererBound;\n\t\t\tif (rendererBound != null) {\n\t\t\t\tthis._rendererBound = undefined;\n\t\t\t\trendererBound.off(\"postrender\", this._onPostRenderBound);\n\t\t\t}\n\n\t\t\tconst target = this._target;\n\t\t\tif (renderer == null) {\n\t\t\t\trenderer = DApplications.getLayer(target)?.renderer;\n\t\t\t}\n\t\t\tif (renderer) {\n\t\t\t\tthis._rendererBound = renderer;\n\t\t\t\trenderer.on(\"postrender\", this._onPostRenderBound);\n\t\t\t}\n\n\t\t\tthis.onStart();\n\n\t\t\tconst clipper = this.getClipper();\n\t\t\tif (clipper) {\n\t\t\t\tconst before = this.getBefore(clipper);\n\t\t\t\tconst element = this.getElement(clipper);\n\t\t\t\tconst after = this.getAfter(clipper);\n\t\t\t\tconst clipperEx = this.getClipperEx(clipper);\n\t\t\t\tif (element) {\n\t\t\t\t\tconst resolution = renderer?.resolution ?? DApplications.getResolution(target);\n\t\t\t\t\tconst elementRect = this.getElementRect(resolution);\n\t\t\t\t\tconst elementMatrix = this.getElementMatrix();\n\t\t\t\t\tconst clipperRect = this.toClipperRectAdjusted(\n\t\t\t\t\t\telementRect,\n\t\t\t\t\t\telementMatrix,\n\t\t\t\t\t\tthis.getClipperRect(resolution)\n\t\t\t\t\t);\n\t\t\t\t\tconst state = target.state;\n\t\t\t\t\tconst padding = this._operation.getPadding();\n\t\t\t\t\tconst options = this._data;\n\t\t\t\t\toptions.clipper.styler(\n\t\t\t\t\t\tclipper,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tpadding,\n\t\t\t\t\t\telementRect,\n\t\t\t\t\t\telementMatrix,\n\t\t\t\t\t\tclipperRect,\n\t\t\t\t\t\tclipperEx\n\t\t\t\t\t);\n\t\t\t\t\toptions.element.styler(\n\t\t\t\t\t\telement,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tpadding,\n\t\t\t\t\t\telementRect,\n\t\t\t\t\t\telementMatrix,\n\t\t\t\t\t\tclipperRect,\n\t\t\t\t\t\tclipperEx\n\t\t\t\t\t);\n\t\t\t\t\tif (before) {\n\t\t\t\t\t\toptions.before.styler(before);\n\t\t\t\t\t}\n\t\t\t\t\tif (after) {\n\t\t\t\t\t\toptions.after.styler(after);\n\t\t\t\t\t}\n\t\t\t\t\tthis.onElementAttached(element, before, after);\n\t\t\t\t\tif (clipperEx) {\n\t\t\t\t\t\tconst clipperExRects = this.getClipperExRects();\n\t\t\t\t\t\tif (clipperExRects) {\n\t\t\t\t\t\t\tif (this.fillClipperExRects(resolution, clipperExRects)) {\n\t\t\t\t\t\t\t\tclipperEx.update(elementRect, elementMatrix, clipperExRects);\n\t\t\t\t\t\t\t\tclipperExRects.toClean();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Show HTML elements\n\t\t\t\t\tclipper.style.display = \"\";\n\t\t\t\t\tif (state.isFocused) {\n\t\t\t\t\t\tthis.toElementFocused(element);\n\t\t\t\t\t}\n\t\t\t\t\tclipper.scrollTop = 0;\n\t\t\t\t\tclipper.scrollLeft = 0;\n\n\t\t\t\t\t// Select the element if required.\n\t\t\t\t\t// Note that a selecting without the setTimeout causes a key stroke drop on Microsoft Edge.\n\t\t\t\t\tif (this._data.select) {\n\t\t\t\t\t\tsetTimeout(this._doSelectBound, 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected toElementFocused(element: ELEMENT): void {\n\t\telement.focus({\n\t\t\tpreventScroll: true\n\t\t});\n\t}\n\n\tprotected onStart(): void {\n\t\tthis._operation.onStart();\n\t}\n\n\tprotected doSelect(): void {\n\t\tconst element = this._element;\n\t\tif (element) {\n\t\t\tif (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {\n\t\t\t\t// The following does not work on mobile devices.\n\t\t\t\t// I think selecting texts on a tap is annoying.\n\t\t\t\t// Therefore, I leave this untouched.\n\t\t\t\telement.select();\n\t\t\t}\n\t\t}\n\t}\n\n\tcancel(): void {\n\t\tif (this._isElementShown) {\n\t\t\tthis._isElementShown = false;\n\n\t\t\tconst rendererBound = this._rendererBound;\n\t\t\tif (rendererBound != null) {\n\t\t\t\tthis._rendererBound = undefined;\n\t\t\t\trendererBound.off(\"postrender\", this._onPostRenderBound);\n\t\t\t}\n\n\t\t\tthis.onCancel();\n\n\t\t\tconst target = this._target;\n\t\t\tconst layer = DApplications.getLayer(target);\n\t\t\tif (layer) {\n\t\t\t\tconst view = layer.view;\n\t\t\t\tswitch (this.when) {\n\t\t\t\t\tcase UtilHtmlElementWhen.CLICKED:\n\t\t\t\t\tcase UtilHtmlElementWhen.DOUBLE_CLICKED:\n\t\t\t\t\tcase UtilHtmlElementWhen.FOCUSED:\n\t\t\t\t\t\tif (document.activeElement === this._element) {\n\t\t\t\t\t\t\tview.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tconst state = target.state;\n\t\t\t\tconst interactionManager = layer.renderer.plugins.interaction;\n\t\t\t\tif (\n\t\t\t\t\tthis._operation.containsPoint(interactionManager.mouse.global) &&\n\t\t\t\t\t!state.isHovered\n\t\t\t\t) {\n\t\t\t\t\tstate.isHovered = true;\n\t\t\t\t\tview.style.cursor = target.cursor ?? \"\";\n\t\t\t\t}\n\n\t\t\t\tlayer.update();\n\t\t\t}\n\n\t\t\tconst element = this._element;\n\t\t\tif (element != null) {\n\t\t\t\tthis.onElementDetached(element, this._before, this._after);\n\t\t\t}\n\n\t\t\tconst clipper = this._clipper;\n\t\t\tif (clipper != null) {\n\t\t\t\tclipper.style.display = \"none\";\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onCancel(): void {\n\t\tthis._operation.onCancel();\n\t}\n\n\tprotected onElementAttached(\n\t\telement: ELEMENT,\n\t\tbefore?: HTMLDivElement | null,\n\t\tafter?: HTMLDivElement | null\n\t): void {\n\t\tbefore?.addEventListener(\"focus\", this._onBeforeFocusBound);\n\t\tafter?.addEventListener(\"focus\", this._onAfterFocusBound);\n\t\telement.addEventListener(\"focus\", this._onElementFocusBound, true);\n\t}\n\n\tprotected onElementDetached(\n\t\telement: ELEMENT,\n\t\tbefore?: HTMLDivElement | null,\n\t\tafter?: HTMLDivElement | null\n\t): void {\n\t\tbefore?.removeEventListener(\"focus\", this._onBeforeFocusBound);\n\t\tafter?.removeEventListener(\"focus\", this._onAfterFocusBound);\n\t\telement.removeEventListener(\"focus\", this._onElementFocusBound, true);\n\t}\n\n\tprotected getClipper(): HTMLDivElement | null {\n\t\tlet result = this._clipper;\n\t\tif (result == null) {\n\t\t\tconst layer = DApplications.getLayer(this._target);\n\t\t\tresult = layer ? this._data.clipper.creator(layer.getElementContainer()) : null;\n\t\t\tthis._clipper = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected getClipperEx(clipper: HTMLDivElement): UtilHtmlElementClipperEx | null {\n\t\tlet result = this._clipperEx;\n\t\tif (result === undefined) {\n\t\t\tconst clipperExRects = this.getClipperExRects();\n\t\t\tif (clipperExRects != null) {\n\t\t\t\tresult = new UtilHtmlElementClipperExImpl(clipper);\n\t\t\t} else {\n\t\t\t\tresult = null;\n\t\t\t}\n\t\t\tthis._clipperEx = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected getClipperExRects(): UtilHtmlElementClipperExRects | null {\n\t\tlet result = this._clipperExRects;\n\t\tif (result === undefined) {\n\t\t\tif (this._data.clipper.extended) {\n\t\t\t\tresult = new UtilHtmlElementClipperExRectsImpl();\n\t\t\t} else {\n\t\t\t\tresult = null;\n\t\t\t}\n\t\t\tthis._clipperExRects = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected getElement(clipper: HTMLDivElement): ELEMENT | null {\n\t\tlet result = this._element;\n\t\tif (result == null) {\n\t\t\tresult = this._data.element.creator(clipper);\n\t\t\tthis._element = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected getBefore(clipper: HTMLDivElement): HTMLDivElement | null {\n\t\tlet result = this._before;\n\t\tif (result == null) {\n\t\t\tresult = this._data.before.creator(clipper);\n\t\t\tthis._before = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected getAfter(clipper: HTMLDivElement): HTMLDivElement | null {\n\t\tlet result = this._after;\n\t\tif (result == null) {\n\t\t\tresult = this._data.after.creator(clipper);\n\t\t\tthis._after = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected onBeforeFocus(e: FocusEvent): void {\n\t\tconst target = this._target;\n\t\tconst layer = DApplications.getLayer(target);\n\t\tif (layer) {\n\t\t\tconst focusController = layer.getFocusController();\n\t\t\tconst focusable = focusController.find(target, false, false, false);\n\t\t\tlayer.view.focus();\n\t\t\tfocusController.focus(focusable);\n\t\t\te.preventDefault();\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\t}\n\n\tprotected onAfterFocus(e: FocusEvent): void {\n\t\tconst target = this._target;\n\t\tconst layer = DApplications.getLayer(target);\n\t\tif (layer) {\n\t\t\tconst focusController = layer.getFocusController();\n\t\t\tconst focusable = focusController.find(target, false, false, true);\n\t\t\tlayer.view.focus();\n\t\t\tfocusController.focus(focusable);\n\t\t\te.preventDefault();\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\t}\n\n\tprotected onElementFocus(e: FocusEvent): void {\n\t\tif (this.when === UtilHtmlElementWhen.ALWAYS) {\n\t\t\tconst target = this._target;\n\t\t\tif (!target.state.isFocused) {\n\t\t\t\ttarget.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onEndByBlur(): void {\n\t\tthis.onEnd();\n\t}\n\n\tprotected onEnd(): void {\n\t\tthis._operation.onEnd();\n\t}\n\n\tend(): void {\n\t\tthis.onEnd();\n\t\tthis.cancel();\n\t}\n\n\tselect(): this {\n\t\tif (this._isElementShown && this._data.select) {\n\t\t\tthis.doSelect();\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected toClipperRectAdjusted(\n\t\telementRect: Rectangle | null,\n\t\telementMatrix: Matrix | null,\n\t\tclipperRect: Rectangle | null\n\t): Rectangle | null {\n\t\tif (clipperRect && elementRect && elementMatrix == null) {\n\t\t\tconst ex0 = elementRect.x;\n\t\t\tconst ey0 = elementRect.y;\n\t\t\tconst ex1 = ex0 + elementRect.width;\n\t\t\tconst ey1 = ey0 + elementRect.height;\n\t\t\tconst cx0 = clipperRect.x;\n\t\t\tconst cy0 = clipperRect.y;\n\t\t\tconst cx1 = cx0 + clipperRect.width;\n\t\t\tconst cy1 = cy0 + clipperRect.height;\n\t\t\tconst ncx0 = Math.min(Math.max(cx0, ex0), cx1);\n\t\t\tconst ncx1 = Math.min(Math.max(cx0, ex1), cx1);\n\t\t\tconst ncy0 = Math.min(Math.max(cy0, ey0), cy1);\n\t\t\tconst ncy1 = Math.min(Math.max(cy0, ey1), cy1);\n\t\t\tclipperRect.x = ncx0;\n\t\t\tclipperRect.y = ncy0;\n\t\t\tclipperRect.width = ncx1 - ncx0;\n\t\t\tclipperRect.height = ncy1 - ncy0;\n\t\t}\n\t\treturn clipperRect;\n\t}\n\n\tprotected updateElement(renderer: Renderer): void {\n\t\tif (this._isElementShown) {\n\t\t\tconst target = this._target;\n\t\t\tif (target.worldVisible) {\n\t\t\t\tconst element = this._element;\n\t\t\t\tconst clipper = this._clipper;\n\t\t\t\tconst clipperEx = this._clipperEx;\n\t\t\t\tif (element && clipper) {\n\t\t\t\t\tconst resolution = renderer.resolution;\n\t\t\t\t\tconst elementRect = this.getElementRect(resolution);\n\t\t\t\t\tconst elementMatrix = this.getElementMatrix();\n\t\t\t\t\tconst clipperRect = this.toClipperRectAdjusted(\n\t\t\t\t\t\telementRect,\n\t\t\t\t\t\telementMatrix,\n\t\t\t\t\t\tthis.getClipperRect(resolution)\n\t\t\t\t\t);\n\t\t\t\t\tconst state = target.state;\n\t\t\t\t\tconst padding = this._operation.getPadding();\n\t\t\t\t\tconst options = this._data;\n\t\t\t\t\toptions.clipper.styler(\n\t\t\t\t\t\tclipper,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tpadding,\n\t\t\t\t\t\telementRect,\n\t\t\t\t\t\telementMatrix,\n\t\t\t\t\t\tclipperRect,\n\t\t\t\t\t\tclipperEx\n\t\t\t\t\t);\n\t\t\t\t\toptions.element.styler(\n\t\t\t\t\t\telement,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tpadding,\n\t\t\t\t\t\telementRect,\n\t\t\t\t\t\telementMatrix,\n\t\t\t\t\t\tclipperRect,\n\t\t\t\t\t\tclipperEx\n\t\t\t\t\t);\n\t\t\t\t\tif (clipperEx) {\n\t\t\t\t\t\tconst clipperExRects = this.getClipperExRects();\n\t\t\t\t\t\tif (clipperExRects) {\n\t\t\t\t\t\t\tif (this.fillClipperExRects(resolution, clipperExRects)) {\n\t\t\t\t\t\t\t\tclipperEx.update(elementRect, elementMatrix, clipperExRects);\n\t\t\t\t\t\t\t\tclipperExRects.toClean();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch (this.when) {\n\t\t\t\t\tcase UtilHtmlElementWhen.ALWAYS:\n\t\t\t\t\t\tconst clipper = this._clipper;\n\t\t\t\t\t\tif (clipper) {\n\t\t\t\t\t\t\tclipper.style.display = \"none\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.cancel();\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic getClipperRect(\n\t\tparent: unknown,\n\t\ttarget: unknown,\n\t\tresolution: number,\n\t\tpoint: Point,\n\t\tresult: Rectangle\n\t): Rectangle | null {\n\t\tlet isFirst = true;\n\n\t\tlet x0 = 0;\n\t\tlet y0 = 0;\n\t\tlet x1 = 0;\n\t\tlet y1 = 0;\n\n\t\tlet current = parent;\n\t\twhile (current instanceof DBase) {\n\t\t\tcurrent.getClippingRect(target, result);\n\n\t\t\tpoint.set(result.x, result.y);\n\t\t\tcurrent.toGlobal(point, point, false);\n\t\t\tconst cx0 = ((point.x * resolution) | 0) / resolution;\n\t\t\tconst cy0 = ((point.y * resolution) | 0) / resolution;\n\n\t\t\tpoint.set(result.x + result.width, result.y + result.height);\n\t\t\tcurrent.toGlobal(point, point, true);\n\t\t\tconst cx1 = point.x;\n\t\t\tconst cy1 = point.y;\n\n\t\t\tconst dx0 = Math.min(cx0, cx1);\n\t\t\tconst dy0 = Math.min(cy0, cy1);\n\t\t\tconst dx1 = Math.max(cx0, cx1);\n\t\t\tconst dy1 = Math.max(cy0, cy1);\n\n\t\t\tif (isFirst) {\n\t\t\t\tisFirst = false;\n\t\t\t\tx0 = dx0;\n\t\t\t\ty0 = dy0;\n\t\t\t\tx1 = dx1;\n\t\t\t\ty1 = dy1;\n\t\t\t} else {\n\t\t\t\tx0 = Math.min(Math.max(x0, dx0), dx1);\n\t\t\t\ty0 = Math.min(Math.max(y0, dy0), dy1);\n\t\t\t\tx1 = Math.min(Math.max(x1, dx0), dx1);\n\t\t\t\ty1 = Math.min(Math.max(y1, dy0), dy1);\n\t\t\t}\n\n\t\t\tcurrent = current.parent;\n\t\t}\n\n\t\tif (isFirst) {\n\t\t\treturn null;\n\t\t}\n\n\t\tresult.x = x0;\n\t\tresult.y = y0;\n\t\tresult.width = x1 - x0;\n\t\tresult.height = y1 - y0;\n\t\treturn result;\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util-pointer-event.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-pointer-event.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"util-pointer-event.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-pointer-event.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DisplayObject, InteractionEvent, InteractionManager, Point } from \"pixi.js\";\nimport { DApplicationTarget } from \"../d-application-like\";\n\nexport type UtilPointerEventOnClick = (e: InteractionEvent, isSimulated: boolean) => void;\n\nexport type UtilPointerEventOnDblClick = (e: MouseEvent | TouchEvent, isSimulated: boolean) => void;\n\nexport interface UtilPointerEventClickTarget extends DApplicationTarget {\n\ton(name: string, handler: UtilPointerEventOnClick): void;\n}\n\nexport class UtilPointerEvent {\n\tstatic CLICK_DISTANCE_THRESHOLD: number = 10;\n\tstatic DBLCLICK_INTERVAL_THRESHOLD: number = 333;\n\tstatic LONG_CLICK_THRESHOLD: number = 750;\n\n\tstatic get touchable(): boolean {\n\t\treturn \"ontouchstart\" in document;\n\t}\n\n\tstatic get tap(): string {\n\t\treturn \"pointertap\";\n\t}\n\n\tstatic get down(): string {\n\t\treturn \"pointerdown\";\n\t}\n\n\tstatic get enter(): string {\n\t\treturn \"pointerenter\";\n\t}\n\n\tstatic get leave(): string {\n\t\treturn \"pointerleave\";\n\t}\n\n\tstatic get move(): string {\n\t\treturn \"pointermove\";\n\t}\n\n\tstatic get out(): string {\n\t\treturn \"pointerout\";\n\t}\n\n\tstatic get over(): string {\n\t\treturn \"pointerover\";\n\t}\n\n\tstatic get up(): string {\n\t\treturn \"pointerup\";\n\t}\n\n\tstatic get upoutside(): string {\n\t\treturn \"pointerupoutside\";\n\t}\n\n\tstatic get cancel(): string {\n\t\treturn \"pointercancel\";\n\t}\n\n\tstatic get righttap(): string {\n\t\treturn \"rightclick\";\n\t}\n\n\tstatic get rightdown(): string {\n\t\treturn \"rightdown\";\n\t}\n\n\tstatic get rightup(): string {\n\t\treturn \"rightup\";\n\t}\n\n\tstatic get rightupoutside(): string {\n\t\treturn \"rightupoutside\";\n\t}\n\n\tstatic toGlobal(\n\t\te: MouseEvent | TouchEvent,\n\t\tinteractionManager: InteractionManager,\n\t\tresult: Point\n\t): Point {\n\t\tif (\"touches\" in e) {\n\t\t\tconst touches = e.changedTouches;\n\t\t\tconst touch = touches[touches.length - 1];\n\t\t\tif (touch != null) {\n\t\t\t\tinteractionManager.mapPositionToPoint(result, touch.clientX, touch.clientY);\n\t\t\t} else {\n\t\t\t\tinteractionManager.mapPositionToPoint(result, 0, 0);\n\t\t\t}\n\t\t} else {\n\t\t\tinteractionManager.mapPositionToPoint(result, e.clientX, e.clientY);\n\t\t}\n\t\treturn result;\n\t}\n\n\tstatic onDblClick(target: HTMLElement, onDblClick: UtilPointerEventOnDblClick): void {\n\t\ttarget.addEventListener(\"dblclick\", (e) => onDblClick(e, false));\n\n\t\tif (this.touchable) {\n\t\t\tlet isDowned = 0;\n\t\t\tlet downX = 0;\n\t\t\tlet downY = 0;\n\t\t\tlet clickTime = 0;\n\n\t\t\ttarget.addEventListener(\"touchstart\", (e: TouchEvent): void => {\n\t\t\t\tif (isDowned !== 0 && isDowned !== 2) {\n\t\t\t\t\tisDowned = 0;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst touches = e.touches;\n\t\t\t\tconst touchesLength = touches.length;\n\t\t\t\tif (touchesLength <= 0) {\n\t\t\t\t\tisDowned = 0;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst touch = touches.item(touchesLength - 1);\n\t\t\t\tif (touch == null) {\n\t\t\t\t\tisDowned = 0;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tisDowned += 1;\n\t\t\t\tdownX = touch.clientX;\n\t\t\t\tdownY = touch.clientY;\n\t\t\t});\n\n\t\t\ttarget.addEventListener(\"touchend\", (e: TouchEvent): void => {\n\t\t\t\tif (isDowned !== 1 && isDowned !== 3) {\n\t\t\t\t\tisDowned = 0;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst touches = e.changedTouches;\n\t\t\t\tconst touchesLength = touches.length;\n\t\t\t\tif (touchesLength <= 0) {\n\t\t\t\t\tisDowned = 0;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst touch = touches[touchesLength - 1];\n\t\t\t\tif (touch == null) {\n\t\t\t\t\tisDowned = 0;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst dx = downX - touch.clientX;\n\t\t\t\tconst dy = downY - touch.clientY;\n\t\t\t\tif (this.CLICK_DISTANCE_THRESHOLD <= Math.abs(dx) + Math.abs(dy)) {\n\t\t\t\t\tisDowned = 0;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (isDowned === 1) {\n\t\t\t\t\tclickTime = e.timeStamp;\n\t\t\t\t\tisDowned = 2;\n\t\t\t\t} else {\n\t\t\t\t\tconst elapsedTime = e.timeStamp - clickTime;\n\t\t\t\t\tif (elapsedTime < this.DBLCLICK_INTERVAL_THRESHOLD) {\n\t\t\t\t\t\tisDowned = 0;\n\t\t\t\t\t\tonDblClick(e, true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclickTime = e.timeStamp;\n\t\t\t\t\t\tisDowned = 2;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\ttarget.addEventListener(\"touchcancel\", (): void => {\n\t\t\t\tisDowned = 0;\n\t\t\t});\n\t\t}\n\t}\n\n\tstatic contains(target: unknown, targetOrChild: DisplayObject | null): boolean {\n\t\tlet current = targetOrChild;\n\t\twhile (current != null && current !== target) {\n\t\t\tcurrent = current.parent;\n\t\t}\n\t\treturn current === target;\n\t}\n}\n"]}
|