@dooboostore/dom-render 1.0.112 → 1.0.114
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +475 -0
- package/dist/cjs/DomRender.js +6 -6
- package/dist/cjs/DomRender.js.map +3 -3
- package/dist/cjs/DomRenderProxy.js +124 -101
- package/dist/cjs/DomRenderProxy.js.map +3 -3
- package/dist/cjs/bundle-entry.js +4 -32
- package/dist/cjs/bundle-entry.js.map +2 -2
- package/dist/cjs/components/ComponentBase.js +49 -37
- package/dist/cjs/components/ComponentBase.js.map +3 -3
- package/dist/cjs/components/ComponentSet.js.map +2 -2
- package/dist/cjs/components/details/Details.js +6 -6
- package/dist/cjs/components/details/Details.js.map +3 -3
- package/dist/cjs/components/input/Input.js +12 -14
- package/dist/cjs/components/input/Input.js.map +3 -3
- package/dist/cjs/components/promise/PromiseSwitch.js +4 -4
- package/dist/cjs/components/promise/PromiseSwitch.js.map +3 -3
- package/dist/cjs/components/router/Route.js.map +1 -1
- package/dist/cjs/components/router/RouterOutlet.js +3 -0
- package/dist/cjs/components/router/RouterOutlet.js.map +2 -2
- package/dist/cjs/components/select/Select.js +6 -6
- package/dist/cjs/components/select/Select.js.map +3 -3
- package/dist/cjs/components/this/This.js +3 -0
- package/dist/cjs/components/this/This.js.map +2 -2
- package/dist/cjs/configs/DomRenderConfig.js.map +1 -1
- package/dist/cjs/configs/TargetElement.js.map +1 -1
- package/dist/cjs/decorators/DomRenderNoProxy.js +5 -5
- package/dist/cjs/decorators/DomRenderNoProxy.js.map +3 -3
- package/dist/cjs/events/EventManager.js +153 -124
- package/dist/cjs/events/EventManager.js.map +3 -3
- package/dist/cjs/index.js +32 -1
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/messenger/Messenger.js.map +1 -1
- package/dist/cjs/operators/Dr.js +2 -2
- package/dist/cjs/operators/Dr.js.map +2 -2
- package/dist/cjs/operators/DrAppender.js +98 -35
- package/dist/cjs/operators/DrAppender.js.map +2 -2
- package/dist/cjs/operators/DrFor.js +2 -2
- package/dist/cjs/operators/DrFor.js.map +2 -2
- package/dist/cjs/operators/DrForOf.js +98 -119
- package/dist/cjs/operators/DrForOf.js.map +2 -2
- package/dist/cjs/operators/DrForm.js +11 -11
- package/dist/cjs/operators/DrForm.js.map +3 -3
- package/dist/cjs/operators/DrIf.js +4 -4
- package/dist/cjs/operators/DrIf.js.map +2 -2
- package/dist/cjs/operators/DrInnerHTML.js +2 -2
- package/dist/cjs/operators/DrInnerHTML.js.map +2 -2
- package/dist/cjs/operators/DrInnerText.js +2 -2
- package/dist/cjs/operators/DrInnerText.js.map +2 -2
- package/dist/cjs/operators/DrRepeat.js +2 -2
- package/dist/cjs/operators/DrRepeat.js.map +2 -2
- package/dist/cjs/operators/DrStripElement.js +2 -2
- package/dist/cjs/operators/DrStripElement.js.map +2 -2
- package/dist/cjs/operators/DrTargetElement.js +5 -4
- package/dist/cjs/operators/DrTargetElement.js.map +2 -2
- package/dist/cjs/operators/DrTargetElementIsElement.js +5 -4
- package/dist/cjs/operators/DrTargetElementIsElement.js.map +2 -2
- package/dist/cjs/operators/DrThis.js +2 -2
- package/dist/cjs/operators/DrThis.js.map +2 -2
- package/dist/cjs/operators/DrThisProperty.js +4 -4
- package/dist/cjs/operators/DrThisProperty.js.map +2 -2
- package/dist/cjs/operators/OperatorExecuter.js +3 -3
- package/dist/cjs/operators/OperatorExecuter.js.map +2 -2
- package/dist/cjs/rawsets/Attrs.js.map +1 -1
- package/dist/cjs/rawsets/CreatorMetaData.js.map +1 -1
- package/dist/cjs/rawsets/RawSet.js +237 -214
- package/dist/cjs/rawsets/RawSet.js.map +3 -3
- package/dist/cjs/rawsets/Render.js.map +1 -1
- package/dist/cjs/rawsets/index.js +30 -0
- package/dist/cjs/rawsets/index.js.map +3 -3
- package/dist/esm/DomRender.js +3 -3
- package/dist/esm/DomRender.js.map +1 -1
- package/dist/esm/DomRenderProxy.js +110 -87
- package/dist/esm/DomRenderProxy.js.map +3 -3
- package/dist/esm/bundle-entry.js +4 -32
- package/dist/esm/bundle-entry.js.map +2 -2
- package/dist/esm/components/ComponentBase.js +24 -12
- package/dist/esm/components/ComponentBase.js.map +2 -2
- package/dist/esm/components/ComponentSet.js.map +2 -2
- package/dist/esm/components/details/Details.js +2 -2
- package/dist/esm/components/details/Details.js.map +1 -1
- package/dist/esm/components/input/Input.js +3 -5
- package/dist/esm/components/input/Input.js.map +2 -2
- package/dist/esm/components/promise/PromiseSwitch.js +2 -2
- package/dist/esm/components/promise/PromiseSwitch.js.map +1 -1
- package/dist/esm/components/router/Route.js.map +1 -1
- package/dist/esm/components/router/RouterOutlet.js +3 -0
- package/dist/esm/components/router/RouterOutlet.js.map +2 -2
- package/dist/esm/components/select/Select.js +3 -3
- package/dist/esm/components/select/Select.js.map +1 -1
- package/dist/esm/components/this/This.js +3 -0
- package/dist/esm/components/this/This.js.map +2 -2
- package/dist/esm/decorators/DomRenderNoProxy.js +2 -2
- package/dist/esm/decorators/DomRenderNoProxy.js.map +1 -1
- package/dist/esm/events/EventManager.js +120 -91
- package/dist/esm/events/EventManager.js.map +2 -2
- package/dist/esm/index.js +51 -1
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/messenger/Messenger.js.map +1 -1
- package/dist/esm/operators/Dr.js +1 -1
- package/dist/esm/operators/Dr.js.map +2 -2
- package/dist/esm/operators/DrAppender.js +98 -35
- package/dist/esm/operators/DrAppender.js.map +2 -2
- package/dist/esm/operators/DrFor.js +1 -1
- package/dist/esm/operators/DrFor.js.map +2 -2
- package/dist/esm/operators/DrForOf.js +98 -119
- package/dist/esm/operators/DrForOf.js.map +2 -2
- package/dist/esm/operators/DrForm.js +3 -3
- package/dist/esm/operators/DrForm.js.map +2 -2
- package/dist/esm/operators/DrIf.js +1 -1
- package/dist/esm/operators/DrIf.js.map +2 -2
- package/dist/esm/operators/DrInnerHTML.js +1 -1
- package/dist/esm/operators/DrInnerHTML.js.map +2 -2
- package/dist/esm/operators/DrInnerText.js +1 -1
- package/dist/esm/operators/DrInnerText.js.map +2 -2
- package/dist/esm/operators/DrRepeat.js +1 -1
- package/dist/esm/operators/DrRepeat.js.map +2 -2
- package/dist/esm/operators/DrStripElement.js +1 -1
- package/dist/esm/operators/DrStripElement.js.map +2 -2
- package/dist/esm/operators/DrTargetElement.js +4 -3
- package/dist/esm/operators/DrTargetElement.js.map +2 -2
- package/dist/esm/operators/DrTargetElementIsElement.js +4 -3
- package/dist/esm/operators/DrTargetElementIsElement.js.map +2 -2
- package/dist/esm/operators/DrThis.js +1 -1
- package/dist/esm/operators/DrThis.js.map +1 -1
- package/dist/esm/operators/DrThisProperty.js +2 -2
- package/dist/esm/operators/DrThisProperty.js.map +1 -1
- package/dist/esm/operators/OperatorExecuter.js +1 -1
- package/dist/esm/operators/OperatorExecuter.js.map +1 -1
- package/dist/esm/rawsets/RawSet.js +195 -172
- package/dist/esm/rawsets/RawSet.js.map +2 -2
- package/dist/esm/rawsets/index.js +26 -0
- package/dist/esm/rawsets/index.js.map +3 -3
- package/dist/esm-bundle/dooboostore-dom-render.esm.js +16586 -14250
- package/dist/esm-bundle/dooboostore-dom-render.esm.js.map +4 -4
- package/dist/types/DomRender.d.ts +3 -3
- package/dist/types/DomRender.d.ts.map +1 -1
- package/dist/types/DomRenderProxy.d.ts +4 -0
- package/dist/types/DomRenderProxy.d.ts.map +1 -1
- package/dist/types/bundle-entry.d.ts +3 -16
- package/dist/types/bundle-entry.d.ts.map +1 -1
- package/dist/types/components/ComponentBase.d.ts +1 -1
- package/dist/types/components/ComponentBase.d.ts.map +1 -1
- package/dist/types/components/ComponentSet.d.ts +4 -4
- package/dist/types/components/ComponentSet.d.ts.map +1 -1
- package/dist/types/components/a/A.d.ts +1 -1
- package/dist/types/components/appender/Appender.d.ts +1 -1
- package/dist/types/components/checkbox/CheckBox.d.ts +3 -3
- package/dist/types/components/choose/Choose.d.ts +3 -3
- package/dist/types/components/details/Details.d.ts +4 -4
- package/dist/types/components/forOf/ForOf.d.ts +1 -1
- package/dist/types/components/if/If.d.ts +1 -1
- package/dist/types/components/index.d.ts +39 -39
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/components/input/Input.d.ts +1 -1
- package/dist/types/components/input/Input.d.ts.map +1 -1
- package/dist/types/components/promise/PromiseSwitch.d.ts +5 -5
- package/dist/types/components/radio/Radio.d.ts +3 -3
- package/dist/types/components/router/Route.d.ts +2 -2
- package/dist/types/components/router/RouterOutlet.d.ts +2 -1
- package/dist/types/components/router/RouterOutlet.d.ts.map +1 -1
- package/dist/types/components/select/Select.d.ts +10 -10
- package/dist/types/components/this/This.d.ts +2 -1
- package/dist/types/components/this/This.d.ts.map +1 -1
- package/dist/types/components/timer/Timer.d.ts +1 -1
- package/dist/types/configs/DomRenderConfig.d.ts +2 -2
- package/dist/types/configs/DomRenderConfig.d.ts.map +1 -1
- package/dist/types/configs/TargetElement.d.ts +3 -3
- package/dist/types/configs/TargetElement.d.ts.map +1 -1
- package/dist/types/events/EventManager.d.ts +4 -0
- package/dist/types/events/EventManager.d.ts.map +1 -1
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/messenger/Messenger.d.ts +1 -1
- package/dist/types/messenger/Messenger.d.ts.map +1 -1
- package/dist/types/operators/Dr.d.ts.map +1 -1
- package/dist/types/operators/DrAppender.d.ts.map +1 -1
- package/dist/types/operators/DrFor.d.ts.map +1 -1
- package/dist/types/operators/DrForOf.d.ts.map +1 -1
- package/dist/types/operators/DrForm.d.ts.map +1 -1
- package/dist/types/operators/DrIf.d.ts.map +1 -1
- package/dist/types/operators/DrInnerHTML.d.ts.map +1 -1
- package/dist/types/operators/DrInnerText.d.ts.map +1 -1
- package/dist/types/operators/DrRepeat.d.ts.map +1 -1
- package/dist/types/operators/DrStripElement.d.ts.map +1 -1
- package/dist/types/operators/DrTargetElementIsElement.d.ts.map +1 -1
- package/dist/types/rawsets/Attrs.d.ts +5 -0
- package/dist/types/rawsets/Attrs.d.ts.map +1 -1
- package/dist/types/rawsets/CreatorMetaData.d.ts +1 -1
- package/dist/types/rawsets/CreatorMetaData.d.ts.map +1 -1
- package/dist/types/rawsets/RawSet.d.ts +10 -8
- package/dist/types/rawsets/RawSet.d.ts.map +1 -1
- package/dist/types/rawsets/Render.d.ts +1 -1
- package/dist/types/rawsets/Render.d.ts.map +1 -1
- package/dist/types/rawsets/index.d.ts +20 -0
- package/dist/types/rawsets/index.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-dom-render.umd.js +16575 -14239
- package/dist/umd-bundle/dooboostore-dom-render.umd.js.map +4 -4
- package/package.json +13 -7
- package/src/DomRender.ts +5 -5
- package/src/DomRenderProxy.ts +195 -124
- package/src/bundle-entry.ts +7 -18
- package/src/components/ComponentBase.ts +33 -14
- package/src/components/ComponentSet.ts +3 -3
- package/src/components/details/Details.ts +3 -3
- package/src/components/dialog/example/ImageEditorDialog.ts +10 -10
- package/src/components/input/Input.ts +4 -6
- package/src/components/promise/PromiseSwitch.ts +2 -2
- package/src/components/router/Route.ts +1 -1
- package/src/components/router/RouterOutlet.ts +4 -0
- package/src/components/select/Select.ts +4 -4
- package/src/components/this/This.ts +3 -0
- package/src/configs/DomRenderConfig.ts +9 -9
- package/src/configs/TargetElement.ts +3 -3
- package/src/decorators/DomRenderNoProxy.ts +2 -2
- package/src/events/EventManager.ts +171 -101
- package/src/index.ts +33 -17
- package/src/messenger/Messenger.ts +1 -1
- package/src/operators/Dr.ts +1 -2
- package/src/operators/DrAppender.ts +121 -56
- package/src/operators/DrFor.ts +1 -2
- package/src/operators/DrForOf.ts +102 -128
- package/src/operators/DrForm.ts +3 -4
- package/src/operators/DrIf.ts +1 -2
- package/src/operators/DrInnerHTML.ts +1 -2
- package/src/operators/DrInnerText.ts +1 -2
- package/src/operators/DrRepeat.ts +1 -2
- package/src/operators/DrStripElement.ts +1 -2
- package/src/operators/DrTargetElement.ts +4 -4
- package/src/operators/DrTargetElementIsElement.ts +4 -3
- package/src/operators/DrThis.ts +1 -1
- package/src/operators/DrThisProperty.ts +2 -2
- package/src/operators/OperatorExecuter.ts +1 -1
- package/src/rawsets/Attrs.ts +32 -27
- package/src/rawsets/CreatorMetaData.ts +1 -1
- package/src/rawsets/RawSet.ts +226 -256
- package/src/rawsets/Render.ts +1 -1
- package/src/rawsets/index.ts +23 -0
- package/tsconfig.json +2 -1
- package/README.MD +0 -42
- package/dist/cjs/iterators/Range.js +0 -85
- package/dist/cjs/iterators/Range.js.map +0 -7
- package/dist/cjs/iterators/index.js +0 -18
- package/dist/cjs/iterators/index.js.map +0 -7
- package/dist/cjs/routers/HashRouter.js +0 -110
- package/dist/cjs/routers/HashRouter.js.map +0 -7
- package/dist/cjs/routers/PathRouter.js +0 -102
- package/dist/cjs/routers/PathRouter.js.map +0 -7
- package/dist/cjs/routers/Router.js +0 -192
- package/dist/cjs/routers/Router.js.map +0 -7
- package/dist/cjs/routers/index.js +0 -20
- package/dist/cjs/routers/index.js.map +0 -7
- package/dist/cjs/validators/AllCheckedValidatorArray.js +0 -32
- package/dist/cjs/validators/AllCheckedValidatorArray.js.map +0 -7
- package/dist/cjs/validators/AllUnCheckedValidatorArray.js +0 -32
- package/dist/cjs/validators/AllUnCheckedValidatorArray.js.map +0 -7
- package/dist/cjs/validators/CheckedValidator.js +0 -32
- package/dist/cjs/validators/CheckedValidator.js.map +0 -7
- package/dist/cjs/validators/CountEqualsCheckedValidatorArray.js +0 -33
- package/dist/cjs/validators/CountEqualsCheckedValidatorArray.js.map +0 -7
- package/dist/cjs/validators/CountEqualsUnCheckedValidatorArray.js +0 -33
- package/dist/cjs/validators/CountEqualsUnCheckedValidatorArray.js.map +0 -7
- package/dist/cjs/validators/CountGreaterThanCheckedValidatorArray.js +0 -33
- package/dist/cjs/validators/CountGreaterThanCheckedValidatorArray.js.map +0 -7
- package/dist/cjs/validators/CountGreaterThanEqualsCheckedValidatorArray.js +0 -33
- package/dist/cjs/validators/CountGreaterThanEqualsCheckedValidatorArray.js.map +0 -7
- package/dist/cjs/validators/CountGreaterThanEqualsUnCheckedValidatorArray.js +0 -33
- package/dist/cjs/validators/CountGreaterThanEqualsUnCheckedValidatorArray.js.map +0 -7
- package/dist/cjs/validators/CountGreaterThanUnCheckedValidatorArray.js +0 -33
- package/dist/cjs/validators/CountGreaterThanUnCheckedValidatorArray.js.map +0 -7
- package/dist/cjs/validators/CountLessThanCheckedValidatorArray.js +0 -33
- package/dist/cjs/validators/CountLessThanCheckedValidatorArray.js.map +0 -7
- package/dist/cjs/validators/CountLessThanEqualsCheckedValidatorArray.js +0 -33
- package/dist/cjs/validators/CountLessThanEqualsCheckedValidatorArray.js.map +0 -7
- package/dist/cjs/validators/CountLessThanEqualsUnCheckedValidatorArray.js +0 -33
- package/dist/cjs/validators/CountLessThanEqualsUnCheckedValidatorArray.js.map +0 -7
- package/dist/cjs/validators/CountLessThanUnCheckedValidatorArray.js +0 -33
- package/dist/cjs/validators/CountLessThanUnCheckedValidatorArray.js.map +0 -7
- package/dist/cjs/validators/CountUnCheckedValidatorArray.js +0 -33
- package/dist/cjs/validators/CountUnCheckedValidatorArray.js.map +0 -7
- package/dist/cjs/validators/EmptyValidator.js +0 -33
- package/dist/cjs/validators/EmptyValidator.js.map +0 -7
- package/dist/cjs/validators/ExcludeCheckedValidatorArray.js +0 -36
- package/dist/cjs/validators/ExcludeCheckedValidatorArray.js.map +0 -7
- package/dist/cjs/validators/FormValidator.js +0 -38
- package/dist/cjs/validators/FormValidator.js.map +0 -7
- package/dist/cjs/validators/IncludeCheckedValidatorArray.js +0 -36
- package/dist/cjs/validators/IncludeCheckedValidatorArray.js.map +0 -7
- package/dist/cjs/validators/MultipleValidator.js +0 -46
- package/dist/cjs/validators/MultipleValidator.js.map +0 -7
- package/dist/cjs/validators/NonPassValidator.js +0 -32
- package/dist/cjs/validators/NonPassValidator.js.map +0 -7
- package/dist/cjs/validators/NotEmptyValidator.js +0 -33
- package/dist/cjs/validators/NotEmptyValidator.js.map +0 -7
- package/dist/cjs/validators/NotRegExpTestValidator.js +0 -40
- package/dist/cjs/validators/NotRegExpTestValidator.js.map +0 -7
- package/dist/cjs/validators/PassValidator.js +0 -32
- package/dist/cjs/validators/PassValidator.js.map +0 -7
- package/dist/cjs/validators/RegExpTestValidator.js +0 -40
- package/dist/cjs/validators/RegExpTestValidator.js.map +0 -7
- package/dist/cjs/validators/RequiredValidator.js +0 -33
- package/dist/cjs/validators/RequiredValidator.js.map +0 -7
- package/dist/cjs/validators/UnCheckedValidator.js +0 -32
- package/dist/cjs/validators/UnCheckedValidator.js.map +0 -7
- package/dist/cjs/validators/ValidMultipleValidator.js +0 -34
- package/dist/cjs/validators/ValidMultipleValidator.js.map +0 -7
- package/dist/cjs/validators/ValidValidator.js +0 -33
- package/dist/cjs/validators/ValidValidator.js.map +0 -7
- package/dist/cjs/validators/ValidValidatorArray.js +0 -33
- package/dist/cjs/validators/ValidValidatorArray.js.map +0 -7
- package/dist/cjs/validators/Validator.js +0 -206
- package/dist/cjs/validators/Validator.js.map +0 -7
- package/dist/cjs/validators/ValidatorArray.js +0 -91
- package/dist/cjs/validators/ValidatorArray.js.map +0 -7
- package/dist/cjs/validators/ValueEqualsValidator.js +0 -33
- package/dist/cjs/validators/ValueEqualsValidator.js.map +0 -7
- package/dist/cjs/validators/ValueNotEqualsValidator.js +0 -33
- package/dist/cjs/validators/ValueNotEqualsValidator.js.map +0 -7
- package/dist/cjs/validators/index.js +0 -48
- package/dist/cjs/validators/index.js.map +0 -7
- package/dist/esm/iterators/Range.js +0 -66
- package/dist/esm/iterators/Range.js.map +0 -7
- package/dist/esm/iterators/index.js +0 -2
- package/dist/esm/iterators/index.js.map +0 -7
- package/dist/esm/routers/HashRouter.js +0 -91
- package/dist/esm/routers/HashRouter.js.map +0 -7
- package/dist/esm/routers/PathRouter.js +0 -83
- package/dist/esm/routers/PathRouter.js.map +0 -7
- package/dist/esm/routers/Router.js +0 -173
- package/dist/esm/routers/Router.js.map +0 -7
- package/dist/esm/routers/index.js +0 -4
- package/dist/esm/routers/index.js.map +0 -7
- package/dist/esm/validators/AllCheckedValidatorArray.js +0 -13
- package/dist/esm/validators/AllCheckedValidatorArray.js.map +0 -7
- package/dist/esm/validators/AllUnCheckedValidatorArray.js +0 -13
- package/dist/esm/validators/AllUnCheckedValidatorArray.js.map +0 -7
- package/dist/esm/validators/CheckedValidator.js +0 -13
- package/dist/esm/validators/CheckedValidator.js.map +0 -7
- package/dist/esm/validators/CountEqualsCheckedValidatorArray.js +0 -14
- package/dist/esm/validators/CountEqualsCheckedValidatorArray.js.map +0 -7
- package/dist/esm/validators/CountEqualsUnCheckedValidatorArray.js +0 -14
- package/dist/esm/validators/CountEqualsUnCheckedValidatorArray.js.map +0 -7
- package/dist/esm/validators/CountGreaterThanCheckedValidatorArray.js +0 -14
- package/dist/esm/validators/CountGreaterThanCheckedValidatorArray.js.map +0 -7
- package/dist/esm/validators/CountGreaterThanEqualsCheckedValidatorArray.js +0 -14
- package/dist/esm/validators/CountGreaterThanEqualsCheckedValidatorArray.js.map +0 -7
- package/dist/esm/validators/CountGreaterThanEqualsUnCheckedValidatorArray.js +0 -14
- package/dist/esm/validators/CountGreaterThanEqualsUnCheckedValidatorArray.js.map +0 -7
- package/dist/esm/validators/CountGreaterThanUnCheckedValidatorArray.js +0 -14
- package/dist/esm/validators/CountGreaterThanUnCheckedValidatorArray.js.map +0 -7
- package/dist/esm/validators/CountLessThanCheckedValidatorArray.js +0 -14
- package/dist/esm/validators/CountLessThanCheckedValidatorArray.js.map +0 -7
- package/dist/esm/validators/CountLessThanEqualsCheckedValidatorArray.js +0 -14
- package/dist/esm/validators/CountLessThanEqualsCheckedValidatorArray.js.map +0 -7
- package/dist/esm/validators/CountLessThanEqualsUnCheckedValidatorArray.js +0 -14
- package/dist/esm/validators/CountLessThanEqualsUnCheckedValidatorArray.js.map +0 -7
- package/dist/esm/validators/CountLessThanUnCheckedValidatorArray.js +0 -14
- package/dist/esm/validators/CountLessThanUnCheckedValidatorArray.js.map +0 -7
- package/dist/esm/validators/CountUnCheckedValidatorArray.js +0 -14
- package/dist/esm/validators/CountUnCheckedValidatorArray.js.map +0 -7
- package/dist/esm/validators/EmptyValidator.js +0 -14
- package/dist/esm/validators/EmptyValidator.js.map +0 -7
- package/dist/esm/validators/ExcludeCheckedValidatorArray.js +0 -17
- package/dist/esm/validators/ExcludeCheckedValidatorArray.js.map +0 -7
- package/dist/esm/validators/FormValidator.js +0 -19
- package/dist/esm/validators/FormValidator.js.map +0 -7
- package/dist/esm/validators/IncludeCheckedValidatorArray.js +0 -17
- package/dist/esm/validators/IncludeCheckedValidatorArray.js.map +0 -7
- package/dist/esm/validators/MultipleValidator.js +0 -27
- package/dist/esm/validators/MultipleValidator.js.map +0 -7
- package/dist/esm/validators/NonPassValidator.js +0 -13
- package/dist/esm/validators/NonPassValidator.js.map +0 -7
- package/dist/esm/validators/NotEmptyValidator.js +0 -14
- package/dist/esm/validators/NotEmptyValidator.js.map +0 -7
- package/dist/esm/validators/NotRegExpTestValidator.js +0 -21
- package/dist/esm/validators/NotRegExpTestValidator.js.map +0 -7
- package/dist/esm/validators/PassValidator.js +0 -13
- package/dist/esm/validators/PassValidator.js.map +0 -7
- package/dist/esm/validators/RegExpTestValidator.js +0 -21
- package/dist/esm/validators/RegExpTestValidator.js.map +0 -7
- package/dist/esm/validators/RequiredValidator.js +0 -14
- package/dist/esm/validators/RequiredValidator.js.map +0 -7
- package/dist/esm/validators/UnCheckedValidator.js +0 -13
- package/dist/esm/validators/UnCheckedValidator.js.map +0 -7
- package/dist/esm/validators/ValidMultipleValidator.js +0 -15
- package/dist/esm/validators/ValidMultipleValidator.js.map +0 -7
- package/dist/esm/validators/ValidValidator.js +0 -14
- package/dist/esm/validators/ValidValidator.js.map +0 -7
- package/dist/esm/validators/ValidValidatorArray.js +0 -14
- package/dist/esm/validators/ValidValidatorArray.js.map +0 -7
- package/dist/esm/validators/Validator.js +0 -187
- package/dist/esm/validators/Validator.js.map +0 -7
- package/dist/esm/validators/ValidatorArray.js +0 -72
- package/dist/esm/validators/ValidatorArray.js.map +0 -7
- package/dist/esm/validators/ValueEqualsValidator.js +0 -14
- package/dist/esm/validators/ValueEqualsValidator.js.map +0 -7
- package/dist/esm/validators/ValueNotEqualsValidator.js +0 -14
- package/dist/esm/validators/ValueNotEqualsValidator.js.map +0 -7
- package/dist/esm/validators/index.js +0 -32
- package/dist/esm/validators/index.js.map +0 -7
- package/dist/types/iterators/Range.d.ts +0 -24
- package/dist/types/iterators/Range.d.ts.map +0 -1
- package/dist/types/iterators/index.d.ts +0 -2
- package/dist/types/iterators/index.d.ts.map +0 -1
- package/dist/types/routers/HashRouter.d.ts +0 -26
- package/dist/types/routers/HashRouter.d.ts.map +0 -1
- package/dist/types/routers/PathRouter.d.ts +0 -25
- package/dist/types/routers/PathRouter.d.ts.map +0 -1
- package/dist/types/routers/Router.d.ts +0 -83
- package/dist/types/routers/Router.d.ts.map +0 -1
- package/dist/types/routers/index.d.ts +0 -4
- package/dist/types/routers/index.d.ts.map +0 -1
- package/dist/types/validators/AllCheckedValidatorArray.d.ts +0 -7
- package/dist/types/validators/AllCheckedValidatorArray.d.ts.map +0 -1
- package/dist/types/validators/AllUnCheckedValidatorArray.d.ts +0 -7
- package/dist/types/validators/AllUnCheckedValidatorArray.d.ts.map +0 -1
- package/dist/types/validators/CheckedValidator.d.ts +0 -6
- package/dist/types/validators/CheckedValidator.d.ts.map +0 -1
- package/dist/types/validators/CountEqualsCheckedValidatorArray.d.ts +0 -8
- package/dist/types/validators/CountEqualsCheckedValidatorArray.d.ts.map +0 -1
- package/dist/types/validators/CountEqualsUnCheckedValidatorArray.d.ts +0 -8
- package/dist/types/validators/CountEqualsUnCheckedValidatorArray.d.ts.map +0 -1
- package/dist/types/validators/CountGreaterThanCheckedValidatorArray.d.ts +0 -8
- package/dist/types/validators/CountGreaterThanCheckedValidatorArray.d.ts.map +0 -1
- package/dist/types/validators/CountGreaterThanEqualsCheckedValidatorArray.d.ts +0 -8
- package/dist/types/validators/CountGreaterThanEqualsCheckedValidatorArray.d.ts.map +0 -1
- package/dist/types/validators/CountGreaterThanEqualsUnCheckedValidatorArray.d.ts +0 -8
- package/dist/types/validators/CountGreaterThanEqualsUnCheckedValidatorArray.d.ts.map +0 -1
- package/dist/types/validators/CountGreaterThanUnCheckedValidatorArray.d.ts +0 -8
- package/dist/types/validators/CountGreaterThanUnCheckedValidatorArray.d.ts.map +0 -1
- package/dist/types/validators/CountLessThanCheckedValidatorArray.d.ts +0 -8
- package/dist/types/validators/CountLessThanCheckedValidatorArray.d.ts.map +0 -1
- package/dist/types/validators/CountLessThanEqualsCheckedValidatorArray.d.ts +0 -8
- package/dist/types/validators/CountLessThanEqualsCheckedValidatorArray.d.ts.map +0 -1
- package/dist/types/validators/CountLessThanEqualsUnCheckedValidatorArray.d.ts +0 -8
- package/dist/types/validators/CountLessThanEqualsUnCheckedValidatorArray.d.ts.map +0 -1
- package/dist/types/validators/CountLessThanUnCheckedValidatorArray.d.ts +0 -8
- package/dist/types/validators/CountLessThanUnCheckedValidatorArray.d.ts.map +0 -1
- package/dist/types/validators/CountUnCheckedValidatorArray.d.ts +0 -8
- package/dist/types/validators/CountUnCheckedValidatorArray.d.ts.map +0 -1
- package/dist/types/validators/EmptyValidator.d.ts +0 -6
- package/dist/types/validators/EmptyValidator.d.ts.map +0 -1
- package/dist/types/validators/ExcludeCheckedValidatorArray.d.ts +0 -9
- package/dist/types/validators/ExcludeCheckedValidatorArray.d.ts.map +0 -1
- package/dist/types/validators/FormValidator.d.ts +0 -8
- package/dist/types/validators/FormValidator.d.ts.map +0 -1
- package/dist/types/validators/IncludeCheckedValidatorArray.d.ts +0 -9
- package/dist/types/validators/IncludeCheckedValidatorArray.d.ts.map +0 -1
- package/dist/types/validators/MultipleValidator.d.ts +0 -9
- package/dist/types/validators/MultipleValidator.d.ts.map +0 -1
- package/dist/types/validators/NonPassValidator.d.ts +0 -6
- package/dist/types/validators/NonPassValidator.d.ts.map +0 -1
- package/dist/types/validators/NotEmptyValidator.d.ts +0 -6
- package/dist/types/validators/NotEmptyValidator.d.ts.map +0 -1
- package/dist/types/validators/NotRegExpTestValidator.d.ts +0 -7
- package/dist/types/validators/NotRegExpTestValidator.d.ts.map +0 -1
- package/dist/types/validators/PassValidator.d.ts +0 -6
- package/dist/types/validators/PassValidator.d.ts.map +0 -1
- package/dist/types/validators/RegExpTestValidator.d.ts +0 -7
- package/dist/types/validators/RegExpTestValidator.d.ts.map +0 -1
- package/dist/types/validators/RequiredValidator.d.ts +0 -6
- package/dist/types/validators/RequiredValidator.d.ts.map +0 -1
- package/dist/types/validators/UnCheckedValidator.d.ts +0 -6
- package/dist/types/validators/UnCheckedValidator.d.ts.map +0 -1
- package/dist/types/validators/ValidMultipleValidator.d.ts +0 -10
- package/dist/types/validators/ValidMultipleValidator.d.ts.map +0 -1
- package/dist/types/validators/ValidValidator.d.ts +0 -7
- package/dist/types/validators/ValidValidator.d.ts.map +0 -1
- package/dist/types/validators/ValidValidatorArray.d.ts +0 -8
- package/dist/types/validators/ValidValidatorArray.d.ts.map +0 -1
- package/dist/types/validators/Validator.d.ts +0 -58
- package/dist/types/validators/Validator.d.ts.map +0 -1
- package/dist/types/validators/ValidatorArray.d.ts +0 -18
- package/dist/types/validators/ValidatorArray.d.ts.map +0 -1
- package/dist/types/validators/ValueEqualsValidator.d.ts +0 -7
- package/dist/types/validators/ValueEqualsValidator.d.ts.map +0 -1
- package/dist/types/validators/ValueNotEqualsValidator.d.ts +0 -7
- package/dist/types/validators/ValueNotEqualsValidator.d.ts.map +0 -1
- package/dist/types/validators/index.d.ts +0 -32
- package/dist/types/validators/index.d.ts.map +0 -1
- package/src/DomRenderProxy.ts_cache_back +0 -1031
- package/src/iterators/Range.ts +0 -73
- package/src/iterators/index.ts +0 -1
- package/src/routers/HashRouter.ts +0 -110
- package/src/routers/PathRouter.ts +0 -105
- package/src/routers/Router.ts +0 -278
- package/src/routers/index.ts +0 -3
- package/src/validators/AllCheckedValidatorArray.ts +0 -12
- package/src/validators/AllUnCheckedValidatorArray.ts +0 -12
- package/src/validators/CheckedValidator.ts +0 -11
- package/src/validators/CountEqualsCheckedValidatorArray.ts +0 -12
- package/src/validators/CountEqualsUnCheckedValidatorArray.ts +0 -12
- package/src/validators/CountGreaterThanCheckedValidatorArray.ts +0 -12
- package/src/validators/CountGreaterThanEqualsCheckedValidatorArray.ts +0 -12
- package/src/validators/CountGreaterThanEqualsUnCheckedValidatorArray.ts +0 -12
- package/src/validators/CountGreaterThanUnCheckedValidatorArray.ts +0 -12
- package/src/validators/CountLessThanCheckedValidatorArray.ts +0 -12
- package/src/validators/CountLessThanEqualsCheckedValidatorArray.ts +0 -12
- package/src/validators/CountLessThanEqualsUnCheckedValidatorArray.ts +0 -12
- package/src/validators/CountLessThanUnCheckedValidatorArray.ts +0 -12
- package/src/validators/CountUnCheckedValidatorArray.ts +0 -12
- package/src/validators/EmptyValidator.ts +0 -12
- package/src/validators/ExcludeCheckedValidatorArray.ts +0 -16
- package/src/validators/FormValidator.ts +0 -19
- package/src/validators/IncludeCheckedValidatorArray.ts +0 -16
- package/src/validators/MultipleValidator.ts +0 -29
- package/src/validators/NonPassValidator.ts +0 -11
- package/src/validators/NotEmptyValidator.ts +0 -13
- package/src/validators/NotRegExpTestValidator.ts +0 -20
- package/src/validators/PassValidator.ts +0 -11
- package/src/validators/RegExpTestValidator.ts +0 -21
- package/src/validators/RequiredValidator.ts +0 -13
- package/src/validators/UnCheckedValidator.ts +0 -11
- package/src/validators/ValidMultipleValidator.ts +0 -14
- package/src/validators/ValidValidator.ts +0 -11
- package/src/validators/ValidValidatorArray.ts +0 -12
- package/src/validators/Validator.ts +0 -245
- package/src/validators/ValidatorArray.ts +0 -83
- package/src/validators/ValueEqualsValidator.ts +0 -11
- package/src/validators/ValueNotEqualsValidator.ts +0 -11
- package/src/validators/index.ts +0 -31
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/select/Select.ts"],
|
|
4
|
-
"sourcesContent": ["import {attribute, ChildrenSet, ComponentBase} from '../ComponentBase';\nimport {DomRender, DomRenderRunConfig} from '../../DomRender';\nimport {RawSet} from '../../rawsets/RawSet';\nimport {OnCreateRenderData} from '../../lifecycle/OnCreateRenderData';\nimport {OnInitRender} from '../../lifecycle/OnInitRender';\nimport {OnDestroyRender} from '../../lifecycle/OnDestroyRender';\nimport {EventUtils} from '@dooboostore/core-web/event/EventUtils';\nimport {type Subscription} from '@dooboostore/core/message/Subscription';\nimport {ValidUtils} from '@dooboostore/core-web/valid/ValidUtils';\nimport {DomRenderNoProxy} from '../../decorators/DomRenderNoProxy';\nimport {OnCreateRender} from '../../lifecycle/OnCreateRender';\nimport {DomRenderConfig} from '../../configs/DomRenderConfig';\nimport {WindowUtils} from '@dooboostore/core-web/window/WindowUtils';\nimport {OnRawSetRenderedOtherData} from '../../lifecycle';\n\n/** 사용법\n <dr-select class=\"card-select-container\" changeSelected=\"${(data) => @this@.changeSelected(data)}$\"> <!-- multiple attribute optional-->\n <dr-select-summary class=\"card-select-summary-container\">\n <dr-select-summary-placeholder>\n <div class=\"card-select-summary-placeholder-container\">카드사별 사용처 안내 페이지 선택</div>\n </dr-select-summary-placeholder>\n <dr-select-summary-selected>\n <div dr-if=\"@this@.selectedCard\" class=\"card-select-summary-selected-container\">\n <img dr-attr=\"{src:@this@.selectedCard?.iconImg}\"> ${@this@.selectedCard?.name}$\n </div>\n </dr-select-summary-selected>\n </dr-select-summary>\n\n <dr-select-body float=\"bottom-left\" class=\"card-select-body-container\">\n <dr-select-option dr-for-of=\"@this@.cards\" value=\"${#it#.name}$\" selected=\"${#nearForOfIndex# === 0}$\" class=\"card-select-body-option-container\">\n <img dr-attr=\"{src:#it#.iconImg}\"> ${#it#.name}$\n </dr-select-option>\n </dr-select-body>\n </dr-select>\n */\n\nexport namespace Select {\n export const selector = 'dr-select';\n\n // Base for simple hide/show components\n class StateComponent extends ComponentBase {\n public hidden = true;\n public value: string | null = null;\n\n constructor(config: any) {\n super(config);\n }\n\n setValue(value: string | null) {\n this.value = value;\n }\n }\n\n // --- Option Child Components ---\n export class OptionSelected extends StateComponent {\n constructor() {\n super({onlyParentType: Option});\n }\n }\n\n export class OptionUnselected extends StateComponent {\n constructor() {\n super({onlyParentType: Option});\n }\n }\n\n export class OptionDisabled extends StateComponent {\n constructor() {\n super({onlyParentType: Option});\n }\n }\n\n // --- Summary Child Components ---\n export class SummaryPlaceholder extends StateComponent {\n constructor() {\n super({onlyParentType: Summary});\n }\n }\n\n export class SummarySelected extends StateComponent {\n private selectedOptions: Select.Option[] = [];\n\n constructor() {\n super({onlyParentType: Summary});\n }\n\n setOptions(options: Option[] = []) {\n this.selectedOptions = options.filter(it => it.selected);\n }\n }\n\n export class SummaryDisabled extends StateComponent {\n private selectedOptions: Select.Option[] = [];\n\n constructor() {\n super({onlyParentType: Summary});\n }\n\n setOptions(options: Option[] = []) {\n this.selectedOptions = options.filter(it => it.selected);\n }\n }\n\n // --- Select Body Component ---\n export type SelectBodyAttribute = {\n float?: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';\n class?: string;\n }\n // --- Option Component ---\n export type OptionAttribute = { value: string; selected?: boolean | null; disabled?: boolean | null; class?: string; };\n\n export class Option extends ComponentBase<OptionAttribute> implements OnInitRender {\n public hidden = true;\n @attribute({name: 'value'}) public value: string | null = null;\n @attribute({name: 'selected', converter: v => v !== null && v === true}) public selected = false;\n @attribute({name: 'disabled', converter: v => v !== null && v === true}) public disabled = false;\n @attribute({name: 'class', converter: v => (v ? v : null)}) public classAttr: string | null = null;\n\n // public status: 'selected' | 'unselected' | 'disabled' = 'unselected';\n\n constructor() {\n super({onlyParentType: SelectBody});\n }\n\n async onInitRender(param: any, rawSet: RawSet) {\n await super.onInitRender(param, rawSet);\n // console.log('-----', this.value, this.selected)\n // this.getElement()?.addEventListener('click', (e) => {\n // e.stopPropagation();\n // if (!this.disabled) {\n // this.getParentThis<Select>().handleOptionClick(this);\n // }\n // });\n this.updateStatus();\n }\n\n // onCreatedThisChild(child: any, data: OnCreateRenderDataParams) {\n // super.onCreatedThisChild(child, data);\n // this.updateStatus();\n // }\n\n // async onRawSetRendered(rawSet:RawSet, otherData:OnRawSetRenderedOtherData):Promise<void>{\n // await super.onRawSetRendered(rawSet, otherData);\n // }\n onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {\n super.onCreatedThisChildDebounce(childrenSet);\n this.updateStatus();\n }\n\n toggleSelected(event: Event) {\n // console.log('isMultiple', this.isMultiple())\n if (!this.disabled) {\n this.selected = this.isMultiple() ? !this.selected : true;\n // this.selected = !this.selected;\n this.updateStatus();\n this.getParentThis<SelectBody>().changeOptionState(this);\n } else {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n isMultiple() {\n return this.getParentThis<Select.SelectBody>()?.getParentThis<Select.Select>().multiple;\n }\n\n updateStatus() {\n if (this.disabled) {\n this.getChildren(OptionSelected).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n this.getChildren(OptionUnselected).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n this.getChildren(OptionDisabled).forEach(c => {\n c.hidden = false;\n c.setValue(this.value)\n });\n return;\n }\n\n if (this.selected) {\n this.getChildren(OptionSelected).forEach(c => {\n c.hidden = false;\n c.setValue(this.value)\n });\n this.getChildren(OptionUnselected).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n this.getChildren(OptionDisabled).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n }\n\n if (!this.selected) {\n this.getChildren(OptionSelected).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n this.getChildren(OptionUnselected).forEach(c => {\n c.hidden = false;\n c.setValue(this.value)\n });\n this.getChildren(OptionDisabled).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n }\n }\n }\n\n // --- Summary Component ---\n export class Summary extends ComponentBase implements OnInitRender {\n @attribute({name: 'class', converter: v => (v === '' ? null : v)}) public classAttr: string | null = null;\n private options: Select.Option[] = [];\n private disabled: boolean = false;\n public element?: HTMLElement;\n\n // constructor() {\n // super({ onlyParentType: Select });\n // }\n\n setDisabled(disabled: boolean) {\n this.disabled = disabled;\n this.getChildren(SummaryPlaceholder).forEach(it => (it.hidden = true));\n this.getChildren(SummarySelected).forEach(it => (it.hidden = true));\n this.getChildren(SummaryDisabled).forEach(it => (it.hidden = false));\n }\n\n setOptions(options: Option[] = []): void {\n this.options = options;\n\n const selectedOptions = this.options.filter(it => it.selected && !it.disabled);\n if (!this.disabled) {\n if (selectedOptions.length > 0) {\n this.getChildren(SummaryPlaceholder).forEach(it => (it.hidden = true));\n this.getChildren(SummarySelected).forEach(c => {\n c.setOptions(options);\n c.hidden = false;\n });\n this.getChildren(SummaryDisabled).forEach(it => (it.hidden = true));\n } else {\n this.getChildren(SummaryDisabled).forEach(it => (it.hidden = true));\n this.getChildren(SummaryPlaceholder).forEach(it => (it.hidden = false));\n this.getChildren(SummarySelected).forEach(c => (c.hidden = true));\n }\n }\n }\n\n async onInitRender(param: any, rawSet: RawSet) {\n await super.onInitRender(param, rawSet);\n // this.getElement()?.addEventListener('click', (e) => {\n // e.stopPropagation();\n // this.getParentThis<Select>().toggle();\n // });\n }\n\n onInitSummaryElement(element: HTMLElement, event: Event) {\n this.element = element;\n }\n\n updateView(hasSelection: boolean) {\n this.getChildren(SummaryPlaceholder).forEach(c => (c.hidden = hasSelection));\n this.getChildren(SummarySelected).forEach(c => (c.hidden = !hasSelection));\n }\n\n // onCreatedThisChild(child: any, data: OnCreateRenderDataParams) {\n // super.onCreatedThisChild(child, data);\n // }\n // async onRawSetRendered(rawSet: RawSet, otherData: OnRawSetRenderedOtherData): Promise<void> {\n // await super.onRawSetRendered(rawSet, otherData);\n // }\n onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {\n super.onCreatedThisChildDebounce(childrenSet);\n this.updateView(this.getParentThis<Select>()?.selectedValues?.length > 0);\n }\n\n onSummaryClick(element: HTMLElement, event: Event) {\n if (this.getParentThis<Select>()?.disabled) {\n event.stopPropagation();\n event.preventDefault();\n return;\n }\n }\n }\n\n\n export class SelectBody extends ComponentBase<SelectBodyAttribute> {\n @attribute({name: 'class', converter: v => (v === '' ? null : v)}) public classAttr: string | null = null;\n @attribute({name: 'float'}) public float: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right' | null = null;\n\n constructor() {\n super({onlyParentType: Select});\n }\n\n async onRawSetRendered(rawSet: RawSet, otherData: OnRawSetRenderedOtherData): Promise<void> {\n await super.onRawSetRendered(rawSet, otherData);\n // }\n // onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {\n // super.onCreatedThisChildDebounce(childrenSet);\n this.changeOptionState();\n }\n\n changeOptionState(option?: Option) {\n const options = this.getChildren(Option);\n const select = this.getParentThis<Select>();\n // console.log('------opti',option, select);\n // // 멀티플이 아닐때에는 마지막 선택된값으로 처리\n if (!select.multiple) {\n // 내가 선택한게 있으면\n if (option && option.selected) {\n options.filter(it => it !== option).forEach(it => {\n it.selected = false;\n it.updateStatus();\n });\n } else {\n const selectedOptions = options.filter(it => it.selected && !it.disabled);\n selectedOptions.forEach((opt, idx) => {\n const isLast = idx === selectedOptions.length - 1;\n if (!isLast) {\n opt.selected = false;\n opt.updateStatus();\n }\n });\n }\n }\n // console.log('--------', options.map(it=>it.selected))\n select?.setOptions(options);\n }\n }\n\n\n // --- Main Select Component ---\n export type SelectAttribute = {\n multiple?: boolean | null; class?: string;\n onchange?: (value?: string) => void;\n onchangeValues?: (value: string[]) => void;\n name?: string;\n float?: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';\n disableOtherClickClose?: boolean;\n toggle?: (open: boolean) => void;\n disabled?: boolean | null;\n };\n\n export class Select extends ComponentBase<SelectAttribute> implements OnInitRender, OnCreateRender, OnCreateRenderData, OnDestroyRender {\n @attribute({name: 'multiple', converter: v => v !== null}) public multiple = false;\n @attribute({name: 'disabled', converter: v => v !== null}) public disabled = false;\n @attribute({name: 'class', converter: v => (v === '' ? null : v)}) public classAttr: string | null = null;\n @attribute({name: 'name', converter: v => (v === '' ? null : v)}) public name: string | null = null;\n\n // public isOpen = false;\n public selectedValues: (string | null)[] = [];\n public selectedOptions: Option[] = [];\n private value: string | (string | null)[] | null | undefined;\n\n @DomRenderNoProxy private element?: HTMLDetailsElement;\n @DomRenderNoProxy private documentClickSubscription?: Subscription;\n @DomRenderNoProxy private windowBlurSubscription?: Subscription;\n @DomRenderNoProxy public summaryComponent?: Summary;\n @DomRenderNoProxy public selectBodyComponent?: SelectBody;\n private options?: Select.Option[];\n\n constructor(config?: DomRenderConfig) {\n super();\n // console.log('----Select constructor')\n }\n\n // get value(): string | (string | null)[] | null | undefined {\n // return this._value;\n // }\n // set value(val: string | (string | null)[] | null | undefined) {\n // console.log('value set', val)\n // this._value = val;\n // }\n\n get optionComponents(): Option[] {\n return this.getChildren(Option);\n }\n\n onCreateRender() {\n\n }\n\n onCreateRenderData() {\n\n }\n\n async onInitRender(param: any, rawSet: RawSet) {\n await super.onInitRender(param, rawSet);\n // console.log('select onInitRender', this.multiple)\n\n if (ValidUtils.isBrowser() && this.rawSet?.dataSet.config.window) {\n const detailsElement = this.element;\n\n const window = this.rawSet.dataSet!.config!.window!;\n const document = window.document;\n this.documentClickSubscription = EventUtils.htmlElementEventObservable(document, 'click').subscribe(event => {\n const isSummaryClick = this.getChildren(Summary).some(it => event.target && it.element?.contains(event.target as Node) || it.element === event.target)\n if (!isSummaryClick && this.getAttribute('disableOtherClickClose')) {\n return;\n }\n if (!isSummaryClick && !this.multiple && detailsElement) {\n detailsElement.open = false;\n return;\n }\n if (!isSummaryClick && detailsElement && !detailsElement?.contains(event?.target as Node)) {\n detailsElement.open = false;\n }\n })\n\n this.windowBlurSubscription = WindowUtils.eventObservable(window, 'blur').subscribe(() => {\n if (detailsElement?.open && window.document.activeElement?.tagName === 'IFRAME') {\n detailsElement.open = false;\n }\n });\n }\n }\n\n\n toggle(element: HTMLDetailsElement, event: Event) {\n // console.log('------>', this.disabled, event)\n // if (this.disabled) {\n // event.stopPropagation();\n // event.preventDefault();\n // return;\n // }\n const toggleAttribute = this.getAttribute('toggle');\n if (toggleAttribute) {\n toggleAttribute?.(element.open);\n }\n }\n\n setOptions(options: Option[]) {\n const summaries = this.getChildren(Summary);\n\n this.options = options;\n\n const values = this.options.filter(it => it.selected && !it.disabled).map(it => it.value)\n summaries?.forEach(it => {\n it.setDisabled(this.disabled);\n if (!this.disabled) {\n it.setOptions(options);\n }\n });\n this.selectedValues = values;\n this.selectedOptions = this.options.filter(it => it.selected && !it.disabled);\n this.value = this.selectedValues[0];\n this.getAttribute('onchange')?.(this.value);\n this.getAttribute('onchangeValues')?.(values);\n }\n\n onInitDetailsElement(detailsElement: HTMLDetailsElement) {\n // console.log('detailsElement oninit', detailsElement);\n this.element = detailsElement;\n }\n\n onDrThisUnBind() {\n super.onDrThisUnBind();\n this.onDestroyRender();\n }\n\n onDestroyRender() {\n super.onDestroyRender();\n this.documentClickSubscription?.unsubscribe();\n this.windowBlurSubscription?.unsubscribe();\n }\n\n @attribute('value')\n setValue(value: string | null | undefined) {\n this.value = value;\n if (this.options) {\n\n // clear\n this.options.forEach(it=> {\n it.selected = false;\n it.updateStatus();\n });\n for (let option of this.options) {\n if (option.value === value) {\n option.selected = true;\n if (!this.multiple) {\n // 하나만 선택\n break;\n }\n } else {\n option.selected = false;\n }\n option.updateStatus()\n }\n }\n console.log('value set', value)\n }\n\n test() {\n console.log('tttttttt')\n }\n }\n}\n\nconst stateComponentFactory = (name: string, type: any) => {\n return (config?: DomRenderRunConfig) =>\n RawSet.createComponentTargetElement({\n name,\n template: '<div dr-if=\"!@this@.hidden\" dr-option-strip=\"true\">#innerHTML#</div>\\n',\n objFactory: (e, o, r2, constructorParam) => DomRender.run({rootObject: new type(), config})\n });\n};\n\nexport default {\n select: (config?: DomRenderConfig) => {\n return RawSet.createComponentTargetElement({\n name: Select.selector,\n styles:\n '.dr-select-container {\\n' +\n ' position: relative;\\n' +\n '\\n' +\n '}\\n' +\n '.dr-select-options-container {\\n' +\n ' display: none;\\n' +\n ' position: absolute;\\n' +\n ' top: 100%;\\n' +\n ' left: 0;\\n' +\n ' right: 0;\\n' +\n ' z-index: 10;\\n' +\n '}\\n' +\n '.dr-select-container.is-open .dr-select-options-container {\\n' +\n ' display: block;\\n' +\n '}\\n' +\n 'summary::-webkit-details-marker {\\n' +\n ' display: none;\\n' +\n '}\\n' +\n '/* Floating styles for dr-select-body */\\n' +\n '.dr-select-body-container {\\n' +\n ' position: absolute;\\n' +\n '}\\n' +\n '\\n' +\n '.dr-select-body-bottom-left-container {\\n' +\n ' position: absolute;\\n' +\n ' left: 0;\\n' +\n ' top: 100%;\\n' +\n '}\\n' +\n '\\n' +\n '.dr-select-body-bottom-right-container {\\n' +\n ' position: absolute;\\n' +\n ' right: 0;\\n' +\n ' top: 100%;\\n' +\n '}\\n' +\n '\\n' +\n '.dr-select-body-top-left-container {\\n' +\n ' position: absolute;\\n' +\n ' left: 0;\\n' +\n ' bottom: 100%;\\n' +\n '}\\n' +\n '\\n' +\n '.dr-select-body-top-right-container {\\n' +\n ' position: absolute;\\n' +\n ' right: 0;\\n' +\n ' bottom: 100%;\\n' +\n '}\\n' +\n '\\n' +\n '/* Reset default details/summary styles */\\n' +\n '.dr-select-container details {\\n' +\n ' display: block; /* Ensure it behaves like a block element */\\n' +\n '}\\n' +\n '\\n' +\n '.dr-select-container summary {\\n' +\n ' display: block; /* Ensure it behaves like a block element */\\n' +\n ' list-style: none; /* Remove default marker */\\n' +\n \" cursor: pointer; /* Indicate it's clickable */\\n\" +\n '}\\n' +\n '\\n' +\n '.dr-select-container summary::-webkit-details-marker,\\n' +\n '.dr-select-container summary::marker {\\n' +\n ' display: none; /* Hide marker for Webkit and standard */\\n' +\n '}',\n template:\n '<details dr-class=\"{\\n' +\n \" 'dr-select-container': true,\\n\" +\n \" 'is-open': @this@.isOpen,\\n\" +\n ' [@this@.classAttr]: @this@.classAttr\\n' +\n ' }\" dr-on-init=\"@this@.onInitDetailsElement($element)\" dr-option-complete=\"@this@.test()\" dr-event-toggle=\"@this@.toggle($element, $event)\">\\n' +\n '\\n' +\n ' #innerHTML#\\n' +\n '</details>\\n' +\n '<select hidden=\"hidden\" name=\"${@this@.name}$\" disabled=\"${@this@.disabled ? \\'disabled\\' : null}$\" style=\"width: 1500px; height:500px\" multiple>\\n' +\n ' <option dr-for-of=\"@this@.options\" value=\"${#it#.value}$\" selected=\"${#it#.selected ? \\'selected\\' : null}$\">#it# ${#it#.value}$</option>\\n' +\n '</select>',\n objFactory: (e, o, r2, constructorParam) => DomRender.run({rootObject: new Select.Select(config), config})\n });\n },\n selectSummary: (config?: DomRenderRunConfig) => {\n return RawSet.createComponentTargetElement({\n name: `${Select.selector}-summary`,\n template:\n '<summary dr-class=\"{[@this@.classAttr]: @this@.classAttr}\"\\n' +\n ' dr-on-init=\"@this@.onInitSummaryElement($element, $event)\"\\n' +\n ' dr-event-click=\"@this@.onSummaryClick($element, $event)\"\\n' +\n '>\\n' +\n '#innerHTML#\\n' +\n '</summary>',\n objFactory: (e, o, r2, constructorParam) => DomRender.run({rootObject: new Select.Summary(), config})\n });\n },\n selectSummaryPlaceholder: stateComponentFactory(`${Select.selector}-summary-placeholder`, Select.SummaryPlaceholder),\n selectSummarySelected: stateComponentFactory(`${Select.selector}-summary-selected`, Select.SummarySelected),\n selectSummaryDisabled: stateComponentFactory(`${Select.selector}-summary-disabled`, Select.SummaryDisabled),\n\n selectBody: (config?: DomRenderRunConfig) => { // New export\n return RawSet.createComponentTargetElement({\n name: `${Select.selector}-body`,\n template: '<div dr-class=\"{[@this@.classAttr]: @this@.classAttr, \\'dr-select-body-container\\': true, [\\'dr-select-body-\\'+@this@.float+\\'-container\\']: @this@.float}\">#innerHTML#</div>',\n objFactory: (e, o, r2, constructorParam) => {\n return DomRender.run({rootObject: new Select.SelectBody(), config: config});\n }\n })\n },\n\n selectOption: (config?: DomRenderRunConfig) => {\n return RawSet.createComponentTargetElement({\n name: `${Select.selector}-option`,\n template:\n '<a dr-class=\"{[@this@.classAttr]: @this@.classAttr}\" dr-event-click=\"@this@.toggleSelected($event)\">#innerHTML#</a>\\n',\n objFactory: (e, o, r2, constructorParam) => DomRender.run({rootObject: new Select.Option(), config})\n });\n },\n selectOptionSelected: stateComponentFactory(`${Select.selector}-option-selected`, Select.OptionSelected),\n selectOptionUnselected: stateComponentFactory(`${Select.selector}-option-unselected`, Select.OptionUnselected),\n selectOptionDisabled: stateComponentFactory(`${Select.selector}-option-disabled`, Select.OptionDisabled),\n};"],
|
|
4
|
+
"sourcesContent": ["import {attribute, ChildrenSet, ComponentBase} from '../ComponentBase';\nimport {DomRender, DomRenderRunConfig} from '../../DomRender';\nimport {RawSet} from '../../rawsets/RawSet';\nimport {OnCreateRenderData} from '../../lifecycle/OnCreateRenderData';\nimport {OnInitRender} from '../../lifecycle/OnInitRender';\nimport {OnDestroyRender} from '../../lifecycle/OnDestroyRender';\nimport {EventUtils} from '@dooboostore/core-web';\nimport {type Subscription} from '@dooboostore/core';\nimport {ValidUtils} from '@dooboostore/core-web';\nimport {DomRenderNoProxy} from '../../decorators/DomRenderNoProxy';\nimport {OnCreateRender} from '../../lifecycle/OnCreateRender';\nimport {DomRenderConfig} from '../../configs/DomRenderConfig';\nimport {WindowUtils} from '@dooboostore/core-web';\nimport {OnRawSetRenderedOtherData} from '../../lifecycle';\n\n/** 사용법\n <dr-select class=\"card-select-container\" changeSelected=\"${(data) => @this@.changeSelected(data)}$\"> <!-- multiple attribute optional-->\n <dr-select-summary class=\"card-select-summary-container\">\n <dr-select-summary-placeholder>\n <div class=\"card-select-summary-placeholder-container\">카드사별 사용처 안내 페이지 선택</div>\n </dr-select-summary-placeholder>\n <dr-select-summary-selected>\n <div dr-if=\"@this@.selectedCard\" class=\"card-select-summary-selected-container\">\n <img dr-attr=\"{src:@this@.selectedCard?.iconImg}\"> ${@this@.selectedCard?.name}$\n </div>\n </dr-select-summary-selected>\n </dr-select-summary>\n\n <dr-select-body float=\"bottom-left\" class=\"card-select-body-container\">\n <dr-select-option dr-for-of=\"@this@.cards\" value=\"${#it#.name}$\" selected=\"${#nearForOfIndex# === 0}$\" class=\"card-select-body-option-container\">\n <img dr-attr=\"{src:#it#.iconImg}\"> ${#it#.name}$\n </dr-select-option>\n </dr-select-body>\n </dr-select>\n */\n\nexport namespace Select {\n export const selector = 'dr-select';\n\n // Base for simple hide/show components\n class StateComponent extends ComponentBase {\n public hidden = true;\n public value: string | null = null;\n\n constructor(config: any) {\n super(config);\n }\n\n setValue(value: string | null) {\n this.value = value;\n }\n }\n\n // --- Option Child Components ---\n export class OptionSelected extends StateComponent {\n constructor() {\n super({onlyParentType: Option});\n }\n }\n\n export class OptionUnselected extends StateComponent {\n constructor() {\n super({onlyParentType: Option});\n }\n }\n\n export class OptionDisabled extends StateComponent {\n constructor() {\n super({onlyParentType: Option});\n }\n }\n\n // --- Summary Child Components ---\n export class SummaryPlaceholder extends StateComponent {\n constructor() {\n super({onlyParentType: Summary});\n }\n }\n\n export class SummarySelected extends StateComponent {\n private selectedOptions: Select.Option[] = [];\n\n constructor() {\n super({onlyParentType: Summary});\n }\n\n setOptions(options: Option[] = []) {\n this.selectedOptions = options.filter(it => it.selected);\n }\n }\n\n export class SummaryDisabled extends StateComponent {\n private selectedOptions: Select.Option[] = [];\n\n constructor() {\n super({onlyParentType: Summary});\n }\n\n setOptions(options: Option[] = []) {\n this.selectedOptions = options.filter(it => it.selected);\n }\n }\n\n // --- Select Body Component ---\n export type SelectBodyAttribute = {\n float?: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';\n class?: string;\n }\n // --- Option Component ---\n export type OptionAttribute = { value: string; selected?: boolean | null; disabled?: boolean | null; class?: string; };\n\n export class Option extends ComponentBase<OptionAttribute> implements OnInitRender {\n public hidden = true;\n @attribute({name: 'value'}) public value: string | null = null;\n @attribute({name: 'selected', converter: v => v !== null && v === true}) public selected = false;\n @attribute({name: 'disabled', converter: v => v !== null && v === true}) public disabled = false;\n @attribute({name: 'class', converter: v => (v ? v : null)}) public classAttr: string | null = null;\n\n // public status: 'selected' | 'unselected' | 'disabled' = 'unselected';\n\n constructor() {\n super({onlyParentType: SelectBody});\n }\n\n async onInitRender(param: any, rawSet: RawSet) {\n await super.onInitRender(param, rawSet);\n // console.log('-----', this.value, this.selected)\n // this.getElement()?.addEventListener('click', (e) => {\n // e.stopPropagation();\n // if (!this.disabled) {\n // this.getParentThis<Select>().handleOptionClick(this);\n // }\n // });\n this.updateStatus();\n }\n\n // onCreatedThisChild(child: any, data: OnCreateRenderDataParams) {\n // super.onCreatedThisChild(child, data);\n // this.updateStatus();\n // }\n\n // async onRawSetRendered(rawSet:RawSet, otherData:OnRawSetRenderedOtherData):Promise<void>{\n // await super.onRawSetRendered(rawSet, otherData);\n // }\n onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {\n super.onCreatedThisChildDebounce(childrenSet);\n this.updateStatus();\n }\n\n toggleSelected(event: Event) {\n // console.log('isMultiple', this.isMultiple())\n if (!this.disabled) {\n this.selected = this.isMultiple() ? !this.selected : true;\n // this.selected = !this.selected;\n this.updateStatus();\n this.getParentThis<SelectBody>().changeOptionState(this);\n } else {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n isMultiple() {\n return this.getParentThis<Select.SelectBody>()?.getParentThis<Select.Select>().multiple;\n }\n\n updateStatus() {\n if (this.disabled) {\n this.getChildren(OptionSelected).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n this.getChildren(OptionUnselected).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n this.getChildren(OptionDisabled).forEach(c => {\n c.hidden = false;\n c.setValue(this.value)\n });\n return;\n }\n\n if (this.selected) {\n this.getChildren(OptionSelected).forEach(c => {\n c.hidden = false;\n c.setValue(this.value)\n });\n this.getChildren(OptionUnselected).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n this.getChildren(OptionDisabled).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n }\n\n if (!this.selected) {\n this.getChildren(OptionSelected).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n this.getChildren(OptionUnselected).forEach(c => {\n c.hidden = false;\n c.setValue(this.value)\n });\n this.getChildren(OptionDisabled).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n }\n }\n }\n\n // --- Summary Component ---\n export class Summary extends ComponentBase implements OnInitRender {\n @attribute({name: 'class', converter: v => (v === '' ? null : v)}) public classAttr: string | null = null;\n private options: Select.Option[] = [];\n private disabled: boolean = false;\n public element?: HTMLElement;\n\n // constructor() {\n // super({ onlyParentType: Select });\n // }\n\n setDisabled(disabled: boolean) {\n this.disabled = disabled;\n this.getChildren(SummaryPlaceholder).forEach(it => (it.hidden = true));\n this.getChildren(SummarySelected).forEach(it => (it.hidden = true));\n this.getChildren(SummaryDisabled).forEach(it => (it.hidden = false));\n }\n\n setOptions(options: Option[] = []): void {\n this.options = options;\n\n const selectedOptions = this.options.filter(it => it.selected && !it.disabled);\n if (!this.disabled) {\n if (selectedOptions.length > 0) {\n this.getChildren(SummaryPlaceholder).forEach(it => (it.hidden = true));\n this.getChildren(SummarySelected).forEach(c => {\n c.setOptions(options);\n c.hidden = false;\n });\n this.getChildren(SummaryDisabled).forEach(it => (it.hidden = true));\n } else {\n this.getChildren(SummaryDisabled).forEach(it => (it.hidden = true));\n this.getChildren(SummaryPlaceholder).forEach(it => (it.hidden = false));\n this.getChildren(SummarySelected).forEach(c => (c.hidden = true));\n }\n }\n }\n\n async onInitRender(param: any, rawSet: RawSet) {\n await super.onInitRender(param, rawSet);\n // this.getElement()?.addEventListener('click', (e) => {\n // e.stopPropagation();\n // this.getParentThis<Select>().toggle();\n // });\n }\n\n onInitSummaryElement(element: HTMLElement, event: Event) {\n this.element = element;\n }\n\n updateView(hasSelection: boolean) {\n this.getChildren(SummaryPlaceholder).forEach(c => (c.hidden = hasSelection));\n this.getChildren(SummarySelected).forEach(c => (c.hidden = !hasSelection));\n }\n\n // onCreatedThisChild(child: any, data: OnCreateRenderDataParams) {\n // super.onCreatedThisChild(child, data);\n // }\n // async onRawSetRendered(rawSet: RawSet, otherData: OnRawSetRenderedOtherData): Promise<void> {\n // await super.onRawSetRendered(rawSet, otherData);\n // }\n onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {\n super.onCreatedThisChildDebounce(childrenSet);\n this.updateView(this.getParentThis<Select>()?.selectedValues?.length > 0);\n }\n\n onSummaryClick(element: HTMLElement, event: Event) {\n if (this.getParentThis<Select>()?.disabled) {\n event.stopPropagation();\n event.preventDefault();\n return;\n }\n }\n }\n\n\n export class SelectBody extends ComponentBase<SelectBodyAttribute> {\n @attribute({name: 'class', converter: v => (v === '' ? null : v)}) public classAttr: string | null = null;\n @attribute({name: 'float'}) public float: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right' | null = null;\n\n constructor() {\n super({onlyParentType: Select});\n }\n\n async onRawSetRendered(rawSet: RawSet, otherData: OnRawSetRenderedOtherData): Promise<void> {\n await super.onRawSetRendered(rawSet, otherData);\n // }\n // onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {\n // super.onCreatedThisChildDebounce(childrenSet);\n this.changeOptionState();\n }\n\n changeOptionState(option?: Option) {\n const options = this.getChildren(Option);\n const select = this.getParentThis<Select>();\n // console.log('------opti',option, select);\n // // 멀티플이 아닐때에는 마지막 선택된값으로 처리\n if (!select.multiple) {\n // 내가 선택한게 있으면\n if (option && option.selected) {\n options.filter(it => it !== option).forEach(it => {\n it.selected = false;\n it.updateStatus();\n });\n } else {\n const selectedOptions = options.filter(it => it.selected && !it.disabled);\n selectedOptions.forEach((opt, idx) => {\n const isLast = idx === selectedOptions.length - 1;\n if (!isLast) {\n opt.selected = false;\n opt.updateStatus();\n }\n });\n }\n }\n // console.log('--------', options.map(it=>it.selected))\n select?.setOptions(options);\n }\n }\n\n\n // --- Main Select Component ---\n export type SelectAttribute = {\n multiple?: boolean | null; class?: string;\n onchange?: (value?: string) => void;\n onchangeValues?: (value: string[]) => void;\n name?: string;\n float?: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';\n disableOtherClickClose?: boolean;\n toggle?: (open: boolean) => void;\n disabled?: boolean | null;\n };\n\n export class Select extends ComponentBase<SelectAttribute> implements OnInitRender, OnCreateRender, OnCreateRenderData, OnDestroyRender {\n @attribute({name: 'multiple', converter: v => v !== null}) public multiple = false;\n @attribute({name: 'disabled', converter: v => v !== null}) public disabled = false;\n @attribute({name: 'class', converter: v => (v === '' ? null : v)}) public classAttr: string | null = null;\n @attribute({name: 'name', converter: v => (v === '' ? null : v)}) public name: string | null = null;\n\n // public isOpen = false;\n public selectedValues: (string | null)[] = [];\n public selectedOptions: Option[] = [];\n private value: string | (string | null)[] | null | undefined;\n\n @DomRenderNoProxy private element?: HTMLDetailsElement;\n @DomRenderNoProxy private documentClickSubscription?: Subscription;\n @DomRenderNoProxy private windowBlurSubscription?: Subscription;\n @DomRenderNoProxy public summaryComponent?: Summary;\n @DomRenderNoProxy public selectBodyComponent?: SelectBody;\n private options?: Select.Option[];\n\n constructor(config?: DomRenderConfig) {\n super();\n // console.log('----Select constructor')\n }\n\n // get value(): string | (string | null)[] | null | undefined {\n // return this._value;\n // }\n // set value(val: string | (string | null)[] | null | undefined) {\n // console.log('value set', val)\n // this._value = val;\n // }\n\n get optionComponents(): Option[] {\n return this.getChildren(Option);\n }\n\n onCreateRender() {\n\n }\n\n onCreateRenderData() {\n\n }\n\n async onInitRender(param: any, rawSet: RawSet) {\n await super.onInitRender(param, rawSet);\n // console.log('select onInitRender', this.multiple)\n\n if (ValidUtils.isBrowser() && this.rawSet?.dataSet.config.window) {\n const detailsElement = this.element;\n\n const window = this.rawSet.dataSet!.config!.window!;\n const document = window.document;\n this.documentClickSubscription = EventUtils.htmlElementEventObservable(document, 'click').subscribe(event => {\n const isSummaryClick = this.getChildren(Summary).some(it => event.target && it.element?.contains(event.target as Node) || it.element === event.target)\n if (!isSummaryClick && this.getAttribute('disableOtherClickClose')) {\n return;\n }\n if (!isSummaryClick && !this.multiple && detailsElement) {\n detailsElement.open = false;\n return;\n }\n if (!isSummaryClick && detailsElement && !detailsElement?.contains(event?.target as Node)) {\n detailsElement.open = false;\n }\n })\n\n this.windowBlurSubscription = WindowUtils.eventObservable(window, 'blur').subscribe(() => {\n if (detailsElement?.open && window.document.activeElement?.tagName === 'IFRAME') {\n detailsElement.open = false;\n }\n });\n }\n }\n\n\n toggle(element: HTMLDetailsElement, event: Event) {\n // console.log('------>', this.disabled, event)\n // if (this.disabled) {\n // event.stopPropagation();\n // event.preventDefault();\n // return;\n // }\n const toggleAttribute = this.getAttribute('toggle');\n if (toggleAttribute) {\n toggleAttribute?.(element.open);\n }\n }\n\n setOptions(options: Option[]) {\n const summaries = this.getChildren(Summary);\n\n this.options = options;\n\n const values = this.options.filter(it => it.selected && !it.disabled).map(it => it.value)\n summaries?.forEach(it => {\n it.setDisabled(this.disabled);\n if (!this.disabled) {\n it.setOptions(options);\n }\n });\n this.selectedValues = values;\n this.selectedOptions = this.options.filter(it => it.selected && !it.disabled);\n this.value = this.selectedValues[0];\n this.getAttribute('onchange')?.(this.value);\n this.getAttribute('onchangeValues')?.(values);\n }\n\n onInitDetailsElement(detailsElement: HTMLDetailsElement) {\n // console.log('detailsElement oninit', detailsElement);\n this.element = detailsElement;\n }\n\n onDrThisUnBind() {\n super.onDrThisUnBind();\n this.onDestroyRender();\n }\n\n onDestroyRender() {\n super.onDestroyRender();\n this.documentClickSubscription?.unsubscribe();\n this.windowBlurSubscription?.unsubscribe();\n }\n\n @attribute('value')\n setValue(value: string | null | undefined) {\n this.value = value;\n if (this.options) {\n\n // clear\n this.options.forEach(it=> {\n it.selected = false;\n it.updateStatus();\n });\n for (let option of this.options) {\n if (option.value === value) {\n option.selected = true;\n if (!this.multiple) {\n // 하나만 선택\n break;\n }\n } else {\n option.selected = false;\n }\n option.updateStatus()\n }\n }\n console.log('value set', value)\n }\n\n test() {\n console.log('tttttttt')\n }\n }\n}\n\nconst stateComponentFactory = (name: string, type: any) => {\n return (config?: DomRenderRunConfig) =>\n RawSet.createComponentTargetElement({\n name,\n template: '<div dr-if=\"!@this@.hidden\" dr-option-strip=\"true\">#innerHTML#</div>\\n',\n objFactory: (e, o, r2, constructorParam) => DomRender.run({rootObject: new type(), config})\n });\n};\n\nexport default {\n select: (config?: DomRenderConfig) => {\n return RawSet.createComponentTargetElement({\n name: Select.selector,\n styles:\n '.dr-select-container {\\n' +\n ' position: relative;\\n' +\n '\\n' +\n '}\\n' +\n '.dr-select-options-container {\\n' +\n ' display: none;\\n' +\n ' position: absolute;\\n' +\n ' top: 100%;\\n' +\n ' left: 0;\\n' +\n ' right: 0;\\n' +\n ' z-index: 10;\\n' +\n '}\\n' +\n '.dr-select-container.is-open .dr-select-options-container {\\n' +\n ' display: block;\\n' +\n '}\\n' +\n 'summary::-webkit-details-marker {\\n' +\n ' display: none;\\n' +\n '}\\n' +\n '/* Floating styles for dr-select-body */\\n' +\n '.dr-select-body-container {\\n' +\n ' position: absolute;\\n' +\n '}\\n' +\n '\\n' +\n '.dr-select-body-bottom-left-container {\\n' +\n ' position: absolute;\\n' +\n ' left: 0;\\n' +\n ' top: 100%;\\n' +\n '}\\n' +\n '\\n' +\n '.dr-select-body-bottom-right-container {\\n' +\n ' position: absolute;\\n' +\n ' right: 0;\\n' +\n ' top: 100%;\\n' +\n '}\\n' +\n '\\n' +\n '.dr-select-body-top-left-container {\\n' +\n ' position: absolute;\\n' +\n ' left: 0;\\n' +\n ' bottom: 100%;\\n' +\n '}\\n' +\n '\\n' +\n '.dr-select-body-top-right-container {\\n' +\n ' position: absolute;\\n' +\n ' right: 0;\\n' +\n ' bottom: 100%;\\n' +\n '}\\n' +\n '\\n' +\n '/* Reset default details/summary styles */\\n' +\n '.dr-select-container details {\\n' +\n ' display: block; /* Ensure it behaves like a block element */\\n' +\n '}\\n' +\n '\\n' +\n '.dr-select-container summary {\\n' +\n ' display: block; /* Ensure it behaves like a block element */\\n' +\n ' list-style: none; /* Remove default marker */\\n' +\n \" cursor: pointer; /* Indicate it's clickable */\\n\" +\n '}\\n' +\n '\\n' +\n '.dr-select-container summary::-webkit-details-marker,\\n' +\n '.dr-select-container summary::marker {\\n' +\n ' display: none; /* Hide marker for Webkit and standard */\\n' +\n '}',\n template:\n '<details dr-class=\"{\\n' +\n \" 'dr-select-container': true,\\n\" +\n \" 'is-open': @this@.isOpen,\\n\" +\n ' [@this@.classAttr]: @this@.classAttr\\n' +\n ' }\" dr-on-init=\"@this@.onInitDetailsElement($element)\" dr-option-complete=\"@this@.test()\" dr-event-toggle=\"@this@.toggle($element, $event)\">\\n' +\n '\\n' +\n ' #innerHTML#\\n' +\n '</details>\\n' +\n '<select hidden=\"hidden\" name=\"${@this@.name}$\" disabled=\"${@this@.disabled ? \\'disabled\\' : null}$\" style=\"width: 1500px; height:500px\" multiple>\\n' +\n ' <option dr-for-of=\"@this@.options\" value=\"${#it#.value}$\" selected=\"${#it#.selected ? \\'selected\\' : null}$\">#it# ${#it#.value}$</option>\\n' +\n '</select>',\n objFactory: (e, o, r2, constructorParam) => DomRender.run({rootObject: new Select.Select(config), config})\n });\n },\n selectSummary: (config?: DomRenderRunConfig) => {\n return RawSet.createComponentTargetElement({\n name: `${Select.selector}-summary`,\n template:\n '<summary dr-class=\"{[@this@.classAttr]: @this@.classAttr}\"\\n' +\n ' dr-on-init=\"@this@.onInitSummaryElement($element, $event)\"\\n' +\n ' dr-event-click=\"@this@.onSummaryClick($element, $event)\"\\n' +\n '>\\n' +\n '#innerHTML#\\n' +\n '</summary>',\n objFactory: (e, o, r2, constructorParam) => DomRender.run({rootObject: new Select.Summary(), config})\n });\n },\n selectSummaryPlaceholder: stateComponentFactory(`${Select.selector}-summary-placeholder`, Select.SummaryPlaceholder),\n selectSummarySelected: stateComponentFactory(`${Select.selector}-summary-selected`, Select.SummarySelected),\n selectSummaryDisabled: stateComponentFactory(`${Select.selector}-summary-disabled`, Select.SummaryDisabled),\n\n selectBody: (config?: DomRenderRunConfig) => { // New export\n return RawSet.createComponentTargetElement({\n name: `${Select.selector}-body`,\n template: '<div dr-class=\"{[@this@.classAttr]: @this@.classAttr, \\'dr-select-body-container\\': true, [\\'dr-select-body-\\'+@this@.float+\\'-container\\']: @this@.float}\">#innerHTML#</div>',\n objFactory: (e, o, r2, constructorParam) => {\n return DomRender.run({rootObject: new Select.SelectBody(), config: config});\n }\n })\n },\n\n selectOption: (config?: DomRenderRunConfig) => {\n return RawSet.createComponentTargetElement({\n name: `${Select.selector}-option`,\n template:\n '<a dr-class=\"{[@this@.classAttr]: @this@.classAttr}\" dr-event-click=\"@this@.toggleSelected($event)\">#innerHTML#</a>\\n',\n objFactory: (e, o, r2, constructorParam) => DomRender.run({rootObject: new Select.Option(), config})\n });\n },\n selectOptionSelected: stateComponentFactory(`${Select.selector}-option-selected`, Select.OptionSelected),\n selectOptionUnselected: stateComponentFactory(`${Select.selector}-option-unselected`, Select.OptionUnselected),\n selectOptionDisabled: stateComponentFactory(`${Select.selector}-option-disabled`, Select.OptionDisabled),\n};"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["Select"]
|
|
7
7
|
}
|
|
@@ -26,6 +26,9 @@ var This;
|
|
|
26
26
|
onDestroyRender(data) {
|
|
27
27
|
super.onDestroyRender(data);
|
|
28
28
|
}
|
|
29
|
+
onDestroy() {
|
|
30
|
+
super.onDestroy();
|
|
31
|
+
}
|
|
29
32
|
onChangeAttrRender(name, value, other) {
|
|
30
33
|
super.onChangeAttrRender(name, value, other);
|
|
31
34
|
if (this.equalsAttributeName(name, "value")) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/this/This.ts"],
|
|
4
|
-
"sourcesContent": ["import { ComponentBase } from '../ComponentBase';\nimport { DomRender, DomRenderRunConfig } from '../../DomRender';\nimport { RawSet } from '../../rawsets/RawSet';\nimport { isOnChangeAttrRender, OtherData } from '../../lifecycle/OnChangeAttrRender';\nimport { OnInitRender } from '../../lifecycle/OnInitRender';\nimport { ComponentSet } from '../../components/ComponentSet';\nimport { OnDestroyRenderParams } from '../../lifecycle/OnDestroyRender';\n\nexport namespace This {\n export const selector = 'dr-this';\n export type Attribute = {\n value: ComponentSet;\n if: boolean | null;\n createArguments: any[];\n onCreated?: (value: any) => void;\n onDestroyRender?: () => void;\n };\n\n export class This extends ComponentBase<Attribute> implements OnInitRender {\n private value?: ComponentSet;\n private if?: boolean | null = null;\n private createArguments?: any[];\n private childObject?: any;\n private childRawSet?: RawSet;\n private sw = false;\n\n setValue(value: ComponentSet) {\n this.sw = false;\n setTimeout(() => {\n this.value = value;\n }, 0)\n\n setTimeout(() => {\n this.sw = true;\n }, 0)\n }\n\n async onInitRender(param: any, rawSet: RawSet) {\n await super.onInitRender(param, rawSet);\n }\n\n onDestroyRender(data: OnDestroyRenderParams) {\n super.onDestroyRender(data);\n }\n\n onChangeAttrRender(name: string, value: any, other: OtherData) {\n super.onChangeAttrRender(name, value, other);\n if (this.equalsAttributeName(name, 'value')) {\n this.setValue(value);\n }\n if (this.equalsAttributeName(name, 'if')) {\n this.if = value;\n }\n if (this.equalsAttributeName(name, 'createArguments')) {\n this.createArguments = value;\n }\n }\n\n created($component: any, $rawSet: RawSet) {\n this.childObject = $component ??= this.value?.obj;\n this.childRawSet = $rawSet;\n \n if ($component) {\n this.getAttribute('onCreated')?.($component);\n \n // attribute \uC804\uB2EC \uCC98\uB9AC\n if (isOnChangeAttrRender($component)) {\n this.getAttributeNames()\n .filter(it => it.startsWith('attribute-'))\n .forEach(it => {\n const attrName = it.replace(/^attribute-/, '');\n const attrValue = this.getAttribute(it as any);\n $rawSet.dataSet.render.attribute ??= {};\n $rawSet.dataSet.render.attribute[attrName] = attrValue;\n $component.onChangeAttrRender(attrName, attrValue, {rawSet: $rawSet});\n });\n }\n }\n }\n }\n}\n\nexport default {\n this: (config?: DomRenderRunConfig) => {\n return RawSet.createComponentTargetElement({\n name: This.selector,\n template:\n `\n <dr-if value=\"\\${@this@.sw}$\">\n <div dr-this=\"@this@.value\" dr-detect-option-if=\"@this@?.value && @this@?.if\" dr-option-strip=\"true\" dr-on-create:arguments=\"@this@.createArguments\" dr-on-create:callback=\"@this@?.created?.($component, $rawSet)\">#innerHTML#</div>\n </dr-if>\n `,\n objFactory: (e, o, r2, counstructorParam) => {\n return DomRender.run({ rootObject: new This.This(...counstructorParam), config: config });\n }\n });\n }\n};\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,qBAAqB;AAC9B,SAAS,iBAAqC;AAC9C,SAAS,cAAc;AACvB,SAAS,4BAAuC;AAKzC,IAAU;AAAA,CAAV,CAAU,UAAV;AACE,EAAM,iBAAW;AAAA,EASjB,MAAMA,cAAa,cAAiD;AAAA,IAApE;AAAA;AAEL,WAAQ,KAAsB;AAI9B,WAAQ,KAAK;AAAA;AAAA,IAEb,SAAS,OAAqB;AAC5B,WAAK,KAAK;AACV,iBAAW,MAAM;AACf,aAAK,QAAQ;AAAA,MACf,GAAG,CAAC;AAEJ,iBAAW,MAAM;AACf,aAAK,KAAK;AAAA,MACZ,GAAG,CAAC;AAAA,IACN;AAAA,IAEA,MAAM,aAAa,OAAY,QAAgB;AAC7C,YAAM,MAAM,aAAa,OAAO,MAAM;AAAA,IACxC;AAAA,IAEA,gBAAgB,MAA6B;AAC3C,YAAM,gBAAgB,IAAI;AAAA,IAC5B;AAAA,IAEA,mBAAmB,MAAc,OAAY,OAAkB;AAC7D,YAAM,mBAAmB,MAAM,OAAO,KAAK;AAC3C,UAAI,KAAK,oBAAoB,MAAM,OAAO,GAAG;AAC3C,aAAK,SAAS,KAAK;AAAA,MACrB;AACA,UAAI,KAAK,oBAAoB,MAAM,IAAI,GAAG;AACxC,aAAK,KAAK;AAAA,MACZ;AACA,UAAI,KAAK,oBAAoB,MAAM,iBAAiB,GAAG;AACrD,aAAK,kBAAkB;AAAA,MACzB;AAAA,IACF;AAAA,IAEA,QAAQ,YAAiB,SAAiB;AACxC,WAAK,cAAc,4BAAe,KAAK,OAAO;AAC9C,WAAK,cAAc;AAEnB,UAAI,YAAY;AACd,aAAK,aAAa,WAAW,IAAI,UAAU;AAG3C,YAAI,qBAAqB,UAAU,GAAG;AACpC,eAAK,kBAAkB,EACpB,OAAO,QAAM,GAAG,WAAW,YAAY,CAAC,EACxC,QAAQ,QAAM;
|
|
4
|
+
"sourcesContent": ["import { ComponentBase } from '../ComponentBase';\nimport { DomRender, DomRenderRunConfig } from '../../DomRender';\nimport { RawSet } from '../../rawsets/RawSet';\nimport { isOnChangeAttrRender, OtherData } from '../../lifecycle/OnChangeAttrRender';\nimport { OnInitRender } from '../../lifecycle/OnInitRender';\nimport { ComponentSet } from '../../components/ComponentSet';\nimport { OnDestroyRenderParams } from '../../lifecycle/OnDestroyRender';\n\nexport namespace This {\n export const selector = 'dr-this';\n export type Attribute = {\n value: ComponentSet;\n if: boolean | null;\n createArguments: any[];\n onCreated?: (value: any) => void;\n onDestroyRender?: () => void;\n };\n\n export class This extends ComponentBase<Attribute> implements OnInitRender {\n private value?: ComponentSet;\n private if?: boolean | null = null;\n private createArguments?: any[];\n private childObject?: any;\n private childRawSet?: RawSet;\n private sw = false;\n\n setValue(value: ComponentSet) {\n this.sw = false;\n setTimeout(() => {\n this.value = value;\n }, 0)\n\n setTimeout(() => {\n this.sw = true;\n }, 0)\n }\n\n async onInitRender(param: any, rawSet: RawSet) {\n await super.onInitRender(param, rawSet);\n }\n\n onDestroyRender(data: OnDestroyRenderParams) {\n super.onDestroyRender(data);\n }\n onDestroy() {\n super.onDestroy();\n }\n\n onChangeAttrRender(name: string, value: any, other: OtherData) {\n super.onChangeAttrRender(name, value, other);\n if (this.equalsAttributeName(name, 'value')) {\n this.setValue(value);\n }\n if (this.equalsAttributeName(name, 'if')) {\n this.if = value;\n }\n if (this.equalsAttributeName(name, 'createArguments')) {\n this.createArguments = value;\n }\n }\n\n created($component: any, $rawSet: RawSet) {\n this.childObject = $component ??= this.value?.obj;\n this.childRawSet = $rawSet;\n \n if ($component) {\n this.getAttribute('onCreated')?.($component);\n \n // attribute \uC804\uB2EC \uCC98\uB9AC\n if (isOnChangeAttrRender($component)) {\n this.getAttributeNames()\n .filter(it => it.startsWith('attribute-'))\n .forEach(it => {\n const attrName = it.replace(/^attribute-/, '');\n const attrValue = this.getAttribute(it as any);\n $rawSet.dataSet.render.attribute ??= {};\n $rawSet.dataSet.render.attribute[attrName] = attrValue;\n $component.onChangeAttrRender(attrName, attrValue, {rawSet: $rawSet});\n });\n }\n }\n }\n }\n}\n\nexport default {\n this: (config?: DomRenderRunConfig) => {\n return RawSet.createComponentTargetElement({\n name: This.selector,\n template:\n `\n <dr-if value=\"\\${@this@.sw}$\">\n <div dr-this=\"@this@.value\" dr-detect-option-if=\"@this@?.value && @this@?.if\" dr-option-strip=\"true\" dr-on-create:arguments=\"@this@.createArguments\" dr-on-create:callback=\"@this@?.created?.($component, $rawSet)\">#innerHTML#</div>\n </dr-if>\n `,\n objFactory: (e, o, r2, counstructorParam) => {\n return DomRender.run({ rootObject: new This.This(...counstructorParam), config: config });\n }\n });\n }\n};\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,qBAAqB;AAC9B,SAAS,iBAAqC;AAC9C,SAAS,cAAc;AACvB,SAAS,4BAAuC;AAKzC,IAAU;AAAA,CAAV,CAAU,UAAV;AACE,EAAM,iBAAW;AAAA,EASjB,MAAMA,cAAa,cAAiD;AAAA,IAApE;AAAA;AAEL,WAAQ,KAAsB;AAI9B,WAAQ,KAAK;AAAA;AAAA,IAEb,SAAS,OAAqB;AAC5B,WAAK,KAAK;AACV,iBAAW,MAAM;AACf,aAAK,QAAQ;AAAA,MACf,GAAG,CAAC;AAEJ,iBAAW,MAAM;AACf,aAAK,KAAK;AAAA,MACZ,GAAG,CAAC;AAAA,IACN;AAAA,IAEA,MAAM,aAAa,OAAY,QAAgB;AAC7C,YAAM,MAAM,aAAa,OAAO,MAAM;AAAA,IACxC;AAAA,IAEA,gBAAgB,MAA6B;AAC3C,YAAM,gBAAgB,IAAI;AAAA,IAC5B;AAAA,IACA,YAAY;AACV,YAAM,UAAU;AAAA,IAClB;AAAA,IAEA,mBAAmB,MAAc,OAAY,OAAkB;AAC7D,YAAM,mBAAmB,MAAM,OAAO,KAAK;AAC3C,UAAI,KAAK,oBAAoB,MAAM,OAAO,GAAG;AAC3C,aAAK,SAAS,KAAK;AAAA,MACrB;AACA,UAAI,KAAK,oBAAoB,MAAM,IAAI,GAAG;AACxC,aAAK,KAAK;AAAA,MACZ;AACA,UAAI,KAAK,oBAAoB,MAAM,iBAAiB,GAAG;AACrD,aAAK,kBAAkB;AAAA,MACzB;AAAA,IACF;AAAA,IAEA,QAAQ,YAAiB,SAAiB;AACxC,WAAK,cAAc,4BAAe,KAAK,OAAO;AAC9C,WAAK,cAAc;AAEnB,UAAI,YAAY;AACd,aAAK,aAAa,WAAW,IAAI,UAAU;AAG3C,YAAI,qBAAqB,UAAU,GAAG;AACpC,eAAK,kBAAkB,EACpB,OAAO,QAAM,GAAG,WAAW,YAAY,CAAC,EACxC,QAAQ,QAAM;AAxE3B;AAyEc,kBAAM,WAAW,GAAG,QAAQ,eAAe,EAAE;AAC7C,kBAAM,YAAY,KAAK,aAAa,EAAS;AAC7C,0BAAQ,QAAQ,QAAO,cAAvB,GAAuB,YAAc,CAAC;AACtC,oBAAQ,QAAQ,OAAO,UAAU,QAAQ,IAAI;AAC7C,uBAAW,mBAAmB,UAAU,WAAW,EAAC,QAAQ,QAAO,CAAC;AAAA,UACtE,CAAC;AAAA,QACL;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAhEO,QAAM,OAAAA;AAAA,GAVE;AA6EjB,IAAO,eAAQ;AAAA,EACb,MAAM,CAAC,WAAgC;AACrC,WAAO,OAAO,6BAA6B;AAAA,MACzC,MAAM,KAAK;AAAA,MACX,UACE;AAAA;AAAA;AAAA;AAAA;AAAA,MAKF,YAAY,CAAC,GAAG,GAAG,IAAI,sBAAsB;AAC3C,eAAO,UAAU,IAAI,EAAE,YAAY,IAAI,KAAK,KAAK,GAAG,iBAAiB,GAAG,OAAe,CAAC;AAAA,MAC1F;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
|
|
6
6
|
"names": ["This"]
|
|
7
7
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ValidUtils } from "@dooboostore/core
|
|
2
|
-
import { ReflectUtils } from "@dooboostore/core
|
|
1
|
+
import { ValidUtils } from "@dooboostore/core";
|
|
2
|
+
import { ReflectUtils } from "@dooboostore/core";
|
|
3
3
|
const DomRenderNoProxyKey = "DomRender:NoProxy";
|
|
4
4
|
const DomRenderNoProxy = (target, propertyKey) => {
|
|
5
5
|
ReflectUtils.defineMetadata(DomRenderNoProxyKey, true, target, propertyKey);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/decorators/DomRenderNoProxy.ts"],
|
|
4
|
-
"sourcesContent": ["import { ValidUtils } from '@dooboostore/core
|
|
4
|
+
"sourcesContent": ["import { ValidUtils } from '@dooboostore/core';\nimport {ReflectUtils} from \"@dooboostore/core\";\n\nexport const DomRenderNoProxyKey = 'DomRender:NoProxy'\nexport const DomRenderNoProxy = (target: any, propertyKey?: string | symbol) => {\n ReflectUtils.defineMetadata(DomRenderNoProxyKey, true, target, propertyKey);\n // \uD074\uB798\uC2A4 \uB370\uCF54\uB808\uC774\uD130\uB85C \uC0AC\uC6A9\uB41C \uACBD\uC6B0\n // if (propertyKey === undefined) {\n // // target\uC740 \uD074\uB798\uC2A4 \uC0DD\uC131\uC790\n // Reflect.defineMetadata(DomRenderNoProxyKey, true, target);\n // return;\n // }\n //\n // // \uD504\uB85C\uD37C\uD2F0 \uB370\uCF54\uB808\uC774\uD130\uB85C \uC0AC\uC6A9\uB41C \uACBD\uC6B0\n // // target\uC740 \uD504\uB85C\uD1A0\uD0C0\uC785, propertyKey\uB294 \uD504\uB85C\uD37C\uD2F0 \uC774\uB984\n // Reflect.defineMetadata(DomRenderNoProxyKey, true, target, propertyKey);\n};\n\nexport const getDomRenderNoProxy = (target: any, propertyKey?: string | symbol) => {\n // if (ValidUtils.isNotNullUndefined(target)) {\n return ReflectUtils.getMetadata(DomRenderNoProxyKey, target, propertyKey);\n // \uD074\uB798\uC2A4 \uB370\uCF54\uB808\uC774\uD130\n // if (propertyKey === undefined) {\n // return Reflect.getMetadata(DomRenderNoProxyKey, target);\n // }\n // // \uD504\uB85C\uD37C\uD2F0 \uB370\uCF54\uB808\uC774\uD130\n // return Reflect.getMetadata(DomRenderNoProxyKey, target, propertyKey);\n // } else {\n // return undefined;\n // }\n}\n\nexport const isDomRenderNoProxy = (target: any, propertyKey?: string | symbol) => {\n return ValidUtils.isNullOrUndefined(target) || getDomRenderNoProxy(target, propertyKey) === true;\n}"],
|
|
5
5
|
"mappings": "AAAA,SAAS,kBAAkB;AAC3B,SAAQ,oBAAmB;AAEpB,MAAM,sBAAsB;AAC5B,MAAM,mBAAmB,CAAC,QAAa,gBAAkC;AAC5E,eAAa,eAAe,qBAAqB,MAAM,QAAQ,WAAW;AAW9E;AAEO,MAAM,sBAAsB,CAAC,QAAa,gBAAkC;AAE/E,SAAO,aAAa,YAAY,qBAAqB,QAAQ,WAAW;AAU5E;AAEO,MAAM,qBAAqB,CAAC,QAAa,gBAAkC;AAChF,SAAO,WAAW,kBAAkB,MAAM,KAAK,oBAAoB,QAAQ,WAAW,MAAM;AAC9F;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,42 +1,19 @@
|
|
|
1
|
-
import { ScriptUtils } from "@dooboostore/core-web
|
|
2
|
-
import { ElementUtils } from "@dooboostore/core-web
|
|
3
|
-
import { Range } from "
|
|
1
|
+
import { ScriptUtils } from "@dooboostore/core-web";
|
|
2
|
+
import { ElementUtils } from "@dooboostore/core-web";
|
|
3
|
+
import { Range } from "@dooboostore/core";
|
|
4
4
|
import { getDomRenderConfig } from "../DomRenderProxy.js";
|
|
5
|
-
import { ObjectUtils } from "@dooboostore/core
|
|
5
|
+
import { ObjectUtils } from "@dooboostore/core";
|
|
6
6
|
const _EventManager = class _EventManager {
|
|
7
7
|
constructor(window) {
|
|
8
8
|
this.window = window;
|
|
9
|
-
this.eventNames = [
|
|
10
|
-
"click",
|
|
11
|
-
"mousedown",
|
|
12
|
-
"mouseup",
|
|
13
|
-
"dblclick",
|
|
14
|
-
"mouseover",
|
|
15
|
-
"mouseout",
|
|
16
|
-
"mousemove",
|
|
17
|
-
"mouseenter",
|
|
18
|
-
"mouseleave",
|
|
19
|
-
"contextmenu",
|
|
20
|
-
"keyup",
|
|
21
|
-
"keydown",
|
|
22
|
-
"keypress",
|
|
23
|
-
"toggle",
|
|
24
|
-
"change",
|
|
25
|
-
"input",
|
|
26
|
-
"submit",
|
|
27
|
-
"resize",
|
|
28
|
-
"focus",
|
|
29
|
-
"blur",
|
|
30
|
-
"close",
|
|
31
|
-
"cancel"
|
|
32
|
-
];
|
|
9
|
+
this.eventNames = ["click", "mousedown", "mouseup", "dblclick", "mouseover", "mouseout", "mousemove", "mouseenter", "mouseleave", "contextmenu", "keyup", "keydown", "keypress", "toggle", "change", "input", "submit", "resize", "focus", "blur", "close", "cancel", "scroll"];
|
|
33
10
|
this.delegatableEventMap = {
|
|
34
11
|
mouseleave: "mouseout",
|
|
35
12
|
mouseenter: "mouseover",
|
|
36
13
|
focus: "focusin",
|
|
37
14
|
blur: "focusout"
|
|
38
15
|
};
|
|
39
|
-
this.directAttachEvents = /* @__PURE__ */ new Set(["close"]);
|
|
16
|
+
this.directAttachEvents = /* @__PURE__ */ new Set(["close", "scroll"]);
|
|
40
17
|
this.bindScript = `
|
|
41
18
|
const ${_EventManager.VALUE_VARNAME} = this.__render.value;
|
|
42
19
|
const ${_EventManager.SCRIPTS_VARNAME} = this.__render.scripts;
|
|
@@ -271,6 +248,15 @@ const _EventManager = class _EventManager {
|
|
|
271
248
|
}
|
|
272
249
|
}
|
|
273
250
|
});
|
|
251
|
+
this.procAttr(childNodes, _EventManager.srcAttrName, (it, attribute) => {
|
|
252
|
+
const script = attribute;
|
|
253
|
+
if (script) {
|
|
254
|
+
const data = ObjectUtils.Script.evaluateReturn(script, obj);
|
|
255
|
+
if (it.src !== data) {
|
|
256
|
+
it.src = data;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
});
|
|
274
260
|
this.procAttr(childNodes, _EventManager.checkedAttrName, (it, attribute) => {
|
|
275
261
|
const script = attribute;
|
|
276
262
|
if (script) {
|
|
@@ -284,6 +270,11 @@ const _EventManager = class _EventManager {
|
|
|
284
270
|
const script = attribute;
|
|
285
271
|
if (script) {
|
|
286
272
|
const data = ObjectUtils.Script.evaluateReturn(script, obj);
|
|
273
|
+
if (data) {
|
|
274
|
+
it.setAttribute("selected", "selected");
|
|
275
|
+
} else {
|
|
276
|
+
it.removeAttribute("selected");
|
|
277
|
+
}
|
|
287
278
|
if (it.selected !== data) {
|
|
288
279
|
it.selected = data;
|
|
289
280
|
}
|
|
@@ -293,6 +284,11 @@ const _EventManager = class _EventManager {
|
|
|
293
284
|
const script = attribute;
|
|
294
285
|
if (script) {
|
|
295
286
|
const data = ObjectUtils.Script.evaluateReturn(script, obj);
|
|
287
|
+
if (data) {
|
|
288
|
+
it.setAttribute("readonly", "readonly");
|
|
289
|
+
} else {
|
|
290
|
+
it.removeAttribute("readonly");
|
|
291
|
+
}
|
|
296
292
|
if (it.readOnly !== data) {
|
|
297
293
|
it.readOnly = data;
|
|
298
294
|
}
|
|
@@ -302,6 +298,11 @@ const _EventManager = class _EventManager {
|
|
|
302
298
|
const script = attribute;
|
|
303
299
|
if (script) {
|
|
304
300
|
const data = ObjectUtils.Script.evaluateReturn(script, obj);
|
|
301
|
+
if (data) {
|
|
302
|
+
it.setAttribute("disabled", "disabled");
|
|
303
|
+
} else {
|
|
304
|
+
it.removeAttribute("disabled");
|
|
305
|
+
}
|
|
305
306
|
if (it.disabled !== data) {
|
|
306
307
|
it.disabled = data;
|
|
307
308
|
}
|
|
@@ -311,6 +312,11 @@ const _EventManager = class _EventManager {
|
|
|
311
312
|
const script = attribute;
|
|
312
313
|
if (script) {
|
|
313
314
|
const data = ObjectUtils.Script.evaluateReturn(script, obj);
|
|
315
|
+
if (data) {
|
|
316
|
+
it.setAttribute("hidden", "hidden");
|
|
317
|
+
} else {
|
|
318
|
+
it.removeAttribute("hidden");
|
|
319
|
+
}
|
|
314
320
|
if (it.hidden !== data) {
|
|
315
321
|
it.hidden = data;
|
|
316
322
|
}
|
|
@@ -320,6 +326,11 @@ const _EventManager = class _EventManager {
|
|
|
320
326
|
const script = attribute;
|
|
321
327
|
if (script) {
|
|
322
328
|
const data = ObjectUtils.Script.evaluateReturn(script, obj);
|
|
329
|
+
if (data) {
|
|
330
|
+
it.setAttribute("required", "required");
|
|
331
|
+
} else {
|
|
332
|
+
it.removeAttribute("required");
|
|
333
|
+
}
|
|
323
334
|
if (it.required !== data) {
|
|
324
335
|
it.required = data;
|
|
325
336
|
}
|
|
@@ -329,6 +340,11 @@ const _EventManager = class _EventManager {
|
|
|
329
340
|
const script = attribute;
|
|
330
341
|
if (script) {
|
|
331
342
|
const data = ObjectUtils.Script.evaluateReturn(script, obj);
|
|
343
|
+
if (data) {
|
|
344
|
+
it.setAttribute("open", "open");
|
|
345
|
+
} else {
|
|
346
|
+
it.removeAttribute("open");
|
|
347
|
+
}
|
|
332
348
|
if (it.open !== data) {
|
|
333
349
|
it.open = data;
|
|
334
350
|
}
|
|
@@ -353,12 +369,15 @@ const _EventManager = class _EventManager {
|
|
|
353
369
|
});
|
|
354
370
|
script = targetScript;
|
|
355
371
|
}
|
|
356
|
-
const data = ObjectUtils.Script.evaluate(
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
372
|
+
const data = ObjectUtils.Script.evaluate(
|
|
373
|
+
`const $element = this.element; return ${script}`,
|
|
374
|
+
Object.assign(obj, {
|
|
375
|
+
__render: Object.freeze({
|
|
376
|
+
element: it,
|
|
377
|
+
attribute: ElementUtils.getAttributeToObject(it)
|
|
378
|
+
})
|
|
360
379
|
})
|
|
361
|
-
|
|
380
|
+
);
|
|
362
381
|
if (data === null || data === void 0) {
|
|
363
382
|
it.removeAttribute(k);
|
|
364
383
|
} else {
|
|
@@ -428,13 +447,16 @@ const _EventManager = class _EventManager {
|
|
|
428
447
|
script = "return " + script;
|
|
429
448
|
}
|
|
430
449
|
if (script) {
|
|
431
|
-
ObjectUtils.Script.evaluate(
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
450
|
+
ObjectUtils.Script.evaluate(
|
|
451
|
+
`${this.getBindScript(config)}; ${script} `,
|
|
452
|
+
Object.assign(obj, {
|
|
453
|
+
__render: Object.freeze({
|
|
454
|
+
element: it,
|
|
455
|
+
attribute: ElementUtils.getAttributeToObject(it),
|
|
456
|
+
...config?.eventVariables
|
|
457
|
+
})
|
|
436
458
|
})
|
|
437
|
-
|
|
459
|
+
);
|
|
438
460
|
}
|
|
439
461
|
});
|
|
440
462
|
this.onRenderedEvent(obj, childNodes, config);
|
|
@@ -454,13 +476,16 @@ const _EventManager = class _EventManager {
|
|
|
454
476
|
script = "return " + script;
|
|
455
477
|
}
|
|
456
478
|
if (script) {
|
|
457
|
-
ObjectUtils.Script.evaluate(
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
479
|
+
ObjectUtils.Script.evaluate(
|
|
480
|
+
`${this.getBindScript(config)}; ${script} `,
|
|
481
|
+
Object.assign(obj, {
|
|
482
|
+
__render: Object.freeze({
|
|
483
|
+
element: it,
|
|
484
|
+
attribute: ElementUtils.getAttributeToObject(it),
|
|
485
|
+
...config?.eventVariables
|
|
486
|
+
})
|
|
462
487
|
})
|
|
463
|
-
|
|
488
|
+
);
|
|
464
489
|
}
|
|
465
490
|
});
|
|
466
491
|
}
|
|
@@ -471,12 +496,15 @@ const _EventManager = class _EventManager {
|
|
|
471
496
|
script = "return " + script;
|
|
472
497
|
}
|
|
473
498
|
if (_EventManager.isUsingThisVar(script, varName) || varName === void 0) {
|
|
474
|
-
const data = ObjectUtils.Script.evaluate(
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
499
|
+
const data = ObjectUtils.Script.evaluate(
|
|
500
|
+
`const $element = this.__render.element; ${script} `,
|
|
501
|
+
Object.assign(obj, {
|
|
502
|
+
__render: Object.freeze({
|
|
503
|
+
element: it,
|
|
504
|
+
attribute: ElementUtils.getAttributeToObject(it)
|
|
505
|
+
})
|
|
478
506
|
})
|
|
479
|
-
|
|
507
|
+
);
|
|
480
508
|
if (typeof data === "string") {
|
|
481
509
|
data.split(";").forEach((sit) => {
|
|
482
510
|
const [key, value] = sit.split(":").map((s) => s.trim());
|
|
@@ -491,7 +519,7 @@ const _EventManager = class _EventManager {
|
|
|
491
519
|
it.style[key] = value;
|
|
492
520
|
}
|
|
493
521
|
});
|
|
494
|
-
} else {
|
|
522
|
+
} else if (data) {
|
|
495
523
|
for (const [key, value] of Object.entries(data)) {
|
|
496
524
|
it.style[key] = value === null ? null : String(value);
|
|
497
525
|
}
|
|
@@ -504,23 +532,27 @@ const _EventManager = class _EventManager {
|
|
|
504
532
|
script = "return " + script;
|
|
505
533
|
}
|
|
506
534
|
if (_EventManager.isUsingThisVar(script, varName) || varName === void 0) {
|
|
507
|
-
const data = ObjectUtils.Script.evaluate(
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
535
|
+
const data = ObjectUtils.Script.evaluate(
|
|
536
|
+
`const $element = this.element; ${script} `,
|
|
537
|
+
Object.assign(obj, {
|
|
538
|
+
__render: Object.freeze({
|
|
539
|
+
element: it,
|
|
540
|
+
attribute: ElementUtils.getAttributeToObject(it)
|
|
541
|
+
})
|
|
511
542
|
})
|
|
512
|
-
|
|
543
|
+
);
|
|
513
544
|
if (typeof data === "string") {
|
|
514
|
-
data.split(" ").forEach((cit) => it.classList.add(cit.trim()));
|
|
545
|
+
data.split(" ").map((it2) => it2.trim()).filter((it2) => it2.length > 0).forEach((cit) => it.classList.add(cit.trim()));
|
|
515
546
|
} else if (Array.isArray(data)) {
|
|
516
|
-
data.forEach((cit) => it.classList.add(cit.trim()));
|
|
517
|
-
} else {
|
|
547
|
+
data.map((it2) => it2.trim()).filter((it2) => it2.length > 0).forEach((cit) => it.classList.add(cit.trim()));
|
|
548
|
+
} else if (data) {
|
|
518
549
|
for (const [key, value] of Object.entries(data)) {
|
|
519
550
|
if (it instanceof HTMLElement) {
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
551
|
+
const v = key.trim();
|
|
552
|
+
if (value && v) {
|
|
553
|
+
it.classList.add(v);
|
|
554
|
+
} else if (v) {
|
|
555
|
+
it.classList.remove(v);
|
|
524
556
|
}
|
|
525
557
|
}
|
|
526
558
|
}
|
|
@@ -576,7 +608,7 @@ const _EventManager = class _EventManager {
|
|
|
576
608
|
}
|
|
577
609
|
});
|
|
578
610
|
}
|
|
579
|
-
|
|
611
|
+
deepAttributeElements(elements = /* @__PURE__ */ new Set(), attrName) {
|
|
580
612
|
const sets = /* @__PURE__ */ new Set();
|
|
581
613
|
elements.forEach((it) => {
|
|
582
614
|
if (!it) {
|
|
@@ -584,12 +616,18 @@ const _EventManager = class _EventManager {
|
|
|
584
616
|
}
|
|
585
617
|
if (it.nodeType === 1) {
|
|
586
618
|
const e = it;
|
|
587
|
-
|
|
619
|
+
if (e.hasAttribute(attrName)) {
|
|
620
|
+
sets.add(e);
|
|
621
|
+
}
|
|
588
622
|
e.querySelectorAll(`[${attrName}]`).forEach((it2) => {
|
|
589
623
|
sets.add(it2);
|
|
590
624
|
});
|
|
591
625
|
}
|
|
592
626
|
});
|
|
627
|
+
return sets;
|
|
628
|
+
}
|
|
629
|
+
procAttr(elements = /* @__PURE__ */ new Set(), attrName, callBack) {
|
|
630
|
+
const sets = this.deepAttributeElements(elements, attrName);
|
|
593
631
|
sets.forEach((it) => {
|
|
594
632
|
const attr = it.getAttribute(attrName);
|
|
595
633
|
const attrs = ElementUtils.getAttributeToObject(it);
|
|
@@ -607,20 +645,27 @@ const _EventManager = class _EventManager {
|
|
|
607
645
|
}
|
|
608
646
|
setValue(obj, name, value) {
|
|
609
647
|
name = name.replaceAll("this.", "this.this.");
|
|
610
|
-
|
|
648
|
+
ObjectUtils.Script.evaluate(`${name} = this.value;`, {
|
|
611
649
|
this: obj,
|
|
612
650
|
value
|
|
613
651
|
});
|
|
614
652
|
}
|
|
653
|
+
static decodeScriptVar(raws) {
|
|
654
|
+
if (raws) {
|
|
655
|
+
_EventManager.VARNAMES.forEach((it) => {
|
|
656
|
+
raws = raws.replace(RegExp(it.replace("$", "\\$"), "g"), `this.___${it}`);
|
|
657
|
+
});
|
|
658
|
+
return raws;
|
|
659
|
+
}
|
|
660
|
+
return void 0;
|
|
661
|
+
}
|
|
615
662
|
static isUsingThisVar(raws, varName) {
|
|
663
|
+
raws = _EventManager.decodeScriptVar(raws);
|
|
616
664
|
if (varName && raws) {
|
|
617
665
|
if (varName.startsWith("this.")) {
|
|
618
666
|
varName = varName.replace(/this\./, "");
|
|
619
667
|
}
|
|
620
|
-
|
|
621
|
-
raws = raws.replace(RegExp(it.replace("$", "\\$"), "g"), `this.___${it}`);
|
|
622
|
-
});
|
|
623
|
-
const variablePaths = ObjectUtils.Path.detectPathFromScript(raws ?? "", { excludeThis: true });
|
|
668
|
+
const variablePaths = ObjectUtils.Path.detectPathFromScript(raws, { excludeThis: true });
|
|
624
669
|
return variablePaths.has(varName);
|
|
625
670
|
}
|
|
626
671
|
return false;
|
|
@@ -652,6 +697,7 @@ _EventManager.ownerVariablePathAttrName = _EventManager.attrPrefix + "owner-vari
|
|
|
652
697
|
_EventManager.eventParam = _EventManager.attrPrefix + "event";
|
|
653
698
|
_EventManager.onInitAttrName = _EventManager.attrPrefix + "on-init";
|
|
654
699
|
_EventManager.valueAttrName = _EventManager.attrPrefix + "value";
|
|
700
|
+
_EventManager.srcAttrName = _EventManager.attrPrefix + "src";
|
|
655
701
|
_EventManager.checkedAttrName = _EventManager.attrPrefix + "checked";
|
|
656
702
|
_EventManager.selectedAttrName = _EventManager.attrPrefix + "selected";
|
|
657
703
|
_EventManager.readonlyAttrName = _EventManager.attrPrefix + "readonly";
|
|
@@ -700,27 +746,10 @@ _EventManager.NEAR_THIS_PATH_VARNAME = "$nearThisPath";
|
|
|
700
746
|
_EventManager.VARNAMES = [_EventManager.SCRIPTS_VARNAME, _EventManager.FAG_VARNAME, _EventManager.RAWSET_VARNAME, _EventManager.RANGE_VARNAME, _EventManager.ROUTER_VARNAME, _EventManager.ELEMENT_VARNAME, _EventManager.TARGET_VARNAME, _EventManager.EVENT_VARNAME, _EventManager.COMPONENT_VARNAME, _EventManager.INNERHTML_VARNAME, _EventManager.ATTRIBUTE_VARNAME, _EventManager.ATTRIBUTE_VARNAME, _EventManager.CREATOR_META_DATA_VARNAME, _EventManager.PARENT_THIS_PATH_VARNAME, _EventManager.PARENT_THIS_VARNAME];
|
|
701
747
|
_EventManager.WINDOW_EVENT_POPSTATE = "popstate";
|
|
702
748
|
_EventManager.WINDOW_EVENT_RESIZE = "resize";
|
|
703
|
-
_EventManager.
|
|
749
|
+
_EventManager.WINDOW_EVENT_SCROLL = "scroll";
|
|
750
|
+
_EventManager.WINDOW_EVENTS = [_EventManager.WINDOW_EVENT_POPSTATE, _EventManager.WINDOW_EVENT_RESIZE, _EventManager.WINDOW_EVENT_SCROLL];
|
|
704
751
|
_EventManager.noDetectAttr = [_EventManager.normalAttrMapAttrName];
|
|
705
|
-
_EventManager.attrNames = [
|
|
706
|
-
_EventManager.valueAttrName,
|
|
707
|
-
_EventManager.checkedAttrName,
|
|
708
|
-
_EventManager.selectedAttrName,
|
|
709
|
-
_EventManager.readonlyAttrName,
|
|
710
|
-
_EventManager.disabledAttrName,
|
|
711
|
-
_EventManager.hiddenAttrName,
|
|
712
|
-
_EventManager.requiredAttrName,
|
|
713
|
-
_EventManager.openAttrName,
|
|
714
|
-
_EventManager.attrAttrName,
|
|
715
|
-
_EventManager.normalAttrMapAttrName,
|
|
716
|
-
_EventManager.styleAttrName,
|
|
717
|
-
_EventManager.classAttrName,
|
|
718
|
-
_EventManager.attrPrefix + "window-event-" + _EventManager.WINDOW_EVENT_POPSTATE,
|
|
719
|
-
_EventManager.attrPrefix + "window-event-" + _EventManager.WINDOW_EVENT_RESIZE,
|
|
720
|
-
_EventManager.onInitAttrName,
|
|
721
|
-
..._EventManager.linkAttrs.map((it) => it.name),
|
|
722
|
-
_EventManager.eventParam
|
|
723
|
-
];
|
|
752
|
+
_EventManager.attrNames = [_EventManager.valueAttrName, _EventManager.srcAttrName, _EventManager.checkedAttrName, _EventManager.selectedAttrName, _EventManager.readonlyAttrName, _EventManager.disabledAttrName, _EventManager.hiddenAttrName, _EventManager.requiredAttrName, _EventManager.openAttrName, _EventManager.attrAttrName, _EventManager.normalAttrMapAttrName, _EventManager.styleAttrName, _EventManager.classAttrName, _EventManager.attrPrefix + "window-event-" + _EventManager.WINDOW_EVENT_POPSTATE, _EventManager.attrPrefix + "window-event-" + _EventManager.WINDOW_EVENT_RESIZE, _EventManager.attrPrefix + "window-event-" + _EventManager.WINDOW_EVENT_SCROLL, _EventManager.onInitAttrName, ..._EventManager.linkAttrs.map((it) => it.name), _EventManager.eventParam];
|
|
724
753
|
let EventManager = _EventManager;
|
|
725
754
|
export {
|
|
726
755
|
EventManager
|