@dooboostore/dom-render 1.0.112 → 1.0.113
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 +449 -15
- 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 +1 -3
- package/dist/cjs/bundle-entry.js.map +2 -2
- package/dist/cjs/components/ComponentBase.js +46 -34
- 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 +31 -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 +1 -3
- package/dist/esm/bundle-entry.js.map +2 -2
- package/dist/esm/components/ComponentBase.js +21 -9
- 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 +6 -8
- 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 +49 -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 +11429 -8895
- 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 +1 -3
- 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 +11491 -8957
- package/dist/umd-bundle/dooboostore-dom-render.umd.js.map +4 -4
- package/package.json +6 -10
- package/src/DomRender.ts +5 -5
- package/src/DomRenderProxy.ts +195 -124
- package/src/bundle-entry.ts +2 -4
- package/src/components/ComponentBase.ts +30 -11
- 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 +7 -9
- 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 +32 -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/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
package/src/rawsets/RawSet.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { RandomUtils } from '@dooboostore/core
|
|
2
|
-
import { StringUtils } from '@dooboostore/core
|
|
1
|
+
import { RandomUtils } from '@dooboostore/core';
|
|
2
|
+
import { StringUtils } from '@dooboostore/core';
|
|
3
3
|
import { EventManager, NormalAttrDataType } from '../events/EventManager';
|
|
4
4
|
import type { DomRenderConfig } from '../configs/DomRenderConfig';
|
|
5
|
-
import { Range } from '
|
|
6
|
-
import { ElementUtils } from '@dooboostore/core-web
|
|
5
|
+
import { Range } from '@dooboostore/core';
|
|
6
|
+
import { ElementUtils } from '@dooboostore/core-web';
|
|
7
7
|
import { ComponentSet } from '../components/ComponentSet';
|
|
8
8
|
import { DrPre } from '../operators/DrPre';
|
|
9
9
|
import { Dr } from '../operators/Dr';
|
|
@@ -30,7 +30,7 @@ import { RawSetType } from './RawSetType';
|
|
|
30
30
|
import { Render } from './Render';
|
|
31
31
|
import { DrThisProperty } from '../operators/DrThisProperty';
|
|
32
32
|
import { RawSetOperatorType } from './RawSetOperatorType';
|
|
33
|
-
import { CssParser, CssRule, isStyleRule, isAtRule } from '@dooboostore/core
|
|
33
|
+
import { CssParser, CssRule, isStyleRule, isAtRule } from '@dooboostore/core';
|
|
34
34
|
import { isOnCreateRenderData, OnCreateRenderDataParams } from '../lifecycle/OnCreateRenderData';
|
|
35
35
|
import { isOnCreateRender } from '../lifecycle/OnCreateRender';
|
|
36
36
|
import { isOnChangeAttrRender } from '../lifecycle/OnChangeAttrRender';
|
|
@@ -38,9 +38,10 @@ import { isOnInitRender } from '../lifecycle/OnInitRender';
|
|
|
38
38
|
import { isOnCreatedThisChild } from '../lifecycle/OnCreatedThisChild';
|
|
39
39
|
import { isOnDestroyRender, OnDestroyRenderParams } from '../lifecycle/OnDestroyRender';
|
|
40
40
|
import { DrTargetElementIsElement } from '../operators/DrTargetElementIsElement';
|
|
41
|
-
import { ObjectUtils } from '@dooboostore/core
|
|
42
|
-
import { NodeUtils } from '@dooboostore/core-web
|
|
43
|
-
import { ConvertUtils } from '@dooboostore/core
|
|
41
|
+
import { ObjectUtils } from '@dooboostore/core';
|
|
42
|
+
import { NodeUtils } from '@dooboostore/core-web';
|
|
43
|
+
import { ConvertUtils } from '@dooboostore/core';
|
|
44
|
+
import { DomRenderComponentMetaKey } from './index';
|
|
44
45
|
|
|
45
46
|
export type RenderResult = { raws: RawSet[]; executedOperators: OperatorExecuter[] };
|
|
46
47
|
|
|
@@ -88,7 +89,13 @@ export class RawSet {
|
|
|
88
89
|
|
|
89
90
|
public static readonly DR_VARIABLE_NAME_OPTIONNAME = 'dr-option-variable-name';
|
|
90
91
|
public static readonly DR_ITEM_VARIABLE_NAME_OPTIONNAME = 'dr-option-item-variable-name';
|
|
92
|
+
public static readonly DR_ITEM_VARIABLE_NAME_OPTIONNAME_DEFAULT = 'it';
|
|
91
93
|
public static readonly DR_ITEM_INDEX_VARIABLE_NAME_OPTIONNAME = 'dr-option-item-index-variable-name';
|
|
94
|
+
public static readonly DR_ITEM_OFFSET_INDEX_VARIABLE_NAME_OPTIONNAME = 'dr-option-item-offset-index-variable-name';
|
|
95
|
+
public static readonly DR_ITEM_INDEX_OFFSET_OPTIONNAME = 'dr-option-item-index-offset';
|
|
96
|
+
public static readonly DR_ITEM_INDEX_VARIABLE_NAME_OPTIONNAME_DEFAULT = 'index';
|
|
97
|
+
public static readonly DR_ITEM_OFFSET_INDEX_VARIABLE_NAME_OPTIONNAME_DEFAULT = 'offsetIndex';
|
|
98
|
+
|
|
92
99
|
public static readonly DR_INNER_HTML_NAME_OPTIONNAME = 'dr-option-inner-html-name';
|
|
93
100
|
public static readonly DR_INNER_TEXT_NAME_OPTIONNAME = 'dr-option-inner-text-name';
|
|
94
101
|
public static readonly DR_INNER_HTML_ESCAPED_NAME_OPTIONNAME = 'dr-option-inner-html-escaped-name';
|
|
@@ -98,13 +105,8 @@ export class RawSet {
|
|
|
98
105
|
|
|
99
106
|
public static readonly DR_ON_CREATE_ARGUMENTS_OPTIONNAME = 'dr-on-create:arguments';
|
|
100
107
|
public static readonly DR_ON_CREATED_CALLBACK_OPTIONNAME = 'dr-on-create:callback';
|
|
101
|
-
/** 우선 쓰는곳이 없어서 deprecated를 걸어놨음
|
|
102
|
-
@deprecated
|
|
103
|
-
*/
|
|
104
|
-
public static readonly DR_ON_INIT_ARGUMENTS_OPTIONNAME = 'dr-on-init:arguments';
|
|
105
108
|
public static readonly DR_ON_CONSTRUCTOR_ARGUMENTS_OPTIONNAME = 'dr-on-constructor:arguments';
|
|
106
109
|
|
|
107
|
-
|
|
108
110
|
public static readonly drAttrsOriginName: Attrs = {
|
|
109
111
|
dr: RawSet.DR_NAME,
|
|
110
112
|
drIf: RawSet.DR_IF_NAME,
|
|
@@ -131,7 +133,12 @@ export class RawSet {
|
|
|
131
133
|
drDetectIfOption: RawSet.DR_DETECT_IF_OPTIONNAME,
|
|
132
134
|
drDestroyOption: RawSet.DR_DESTROY_OPTIONNAME,
|
|
133
135
|
drHasKeysOption: RawSet.DR_HAS_KEYS_OPTIONNAME,
|
|
134
|
-
drKeyOption: RawSet.DR_KEY_OPTIONNAME
|
|
136
|
+
drKeyOption: RawSet.DR_KEY_OPTIONNAME,
|
|
137
|
+
drItemIndexOffsetOption: RawSet.DR_ITEM_INDEX_OFFSET_OPTIONNAME,
|
|
138
|
+
drVariableNameOption: RawSet.DR_VARIABLE_NAME_OPTIONNAME,
|
|
139
|
+
drItemVariableNameOption: RawSet.DR_ITEM_VARIABLE_NAME_OPTIONNAME,
|
|
140
|
+
drItemIndexVariableNameOption: RawSet.DR_ITEM_INDEX_VARIABLE_NAME_OPTIONNAME,
|
|
141
|
+
drItemOffsetIndexVariableNameOption: RawSet.DR_ITEM_OFFSET_INDEX_VARIABLE_NAME_OPTIONNAME
|
|
135
142
|
};
|
|
136
143
|
|
|
137
144
|
public static readonly DR_TAGS = [];
|
|
@@ -140,9 +147,7 @@ export class RawSet {
|
|
|
140
147
|
// RawSet.DR_REPLACE_TARGET_ELEMENT_IS_NAME
|
|
141
148
|
// ]
|
|
142
149
|
|
|
143
|
-
public static readonly DR_ELEMENTS = [
|
|
144
|
-
RawSet.DR_TARGET_ELEMENT_ELEMENTNAME
|
|
145
|
-
];
|
|
150
|
+
public static readonly DR_ELEMENTS = [RawSet.DR_TARGET_ELEMENT_ELEMENTNAME];
|
|
146
151
|
|
|
147
152
|
public static readonly DR_ATTRIBUTES = [
|
|
148
153
|
RawSet.DR_NAME,
|
|
@@ -187,9 +192,7 @@ export class RawSet {
|
|
|
187
192
|
|
|
188
193
|
get isConnected() {
|
|
189
194
|
// console.log('isConnect???', this, this.point.start.isConnected, this.point.end.isConnected);
|
|
190
|
-
return
|
|
191
|
-
this.point && this.point.start && this.point.end && this.point.start.isConnected && this.point.end.isConnected
|
|
192
|
-
);
|
|
195
|
+
return this.point && this.point.start && this.point.end && this.point.start.isConnected && this.point.end.isConnected;
|
|
193
196
|
}
|
|
194
197
|
|
|
195
198
|
// 중요
|
|
@@ -209,12 +212,7 @@ export class RawSet {
|
|
|
209
212
|
// console.log('--', expressionGroups, script)
|
|
210
213
|
} else if (cNode.nodeType === Node.ELEMENT_NODE) {
|
|
211
214
|
const element = cNode as Element;
|
|
212
|
-
const targetAttrNames = (config?.targetAttrs?.map(it => it.name) ?? []).concat(
|
|
213
|
-
RawSet.DR_ATTRIBUTES,
|
|
214
|
-
RawSet.DR_DETECT_FILTER_OPTIONNAME,
|
|
215
|
-
RawSet.DR_DETECT_IF_OPTIONNAME,
|
|
216
|
-
RawSet.DR_DETECT_ATTR_OPTIONNAME
|
|
217
|
-
); // .concat(EventManager.normalAttrMapAttrName);
|
|
215
|
+
const targetAttrNames = (config?.targetAttrs?.map(it => it.name) ?? []).concat(RawSet.DR_ATTRIBUTES, RawSet.DR_DETECT_FILTER_OPTIONNAME, RawSet.DR_DETECT_IF_OPTIONNAME, RawSet.DR_DETECT_ATTR_OPTIONNAME); // .concat(EventManager.normalAttrMapAttrName);
|
|
218
216
|
const targetScripts = targetAttrNames
|
|
219
217
|
.map(it => element.getAttribute(it))
|
|
220
218
|
.filter(it => it)
|
|
@@ -316,10 +314,13 @@ export class RawSet {
|
|
|
316
314
|
};
|
|
317
315
|
|
|
318
316
|
try {
|
|
319
|
-
const newValue = ObjectUtils.Script.evaluateReturn(
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
317
|
+
const newValue = ObjectUtils.Script.evaluateReturn(
|
|
318
|
+
{
|
|
319
|
+
bodyScript: __render.bindScript,
|
|
320
|
+
returnScript: runText
|
|
321
|
+
},
|
|
322
|
+
Object.assign(obj, { __render })
|
|
323
|
+
);
|
|
323
324
|
|
|
324
325
|
const newValueStr = String(newValue);
|
|
325
326
|
if (this.lastRenderedValue === newValueStr) {
|
|
@@ -395,8 +396,7 @@ export class RawSet {
|
|
|
395
396
|
// console.log('--->', RawSet.exporesionGrouops(textContent), textContent,runText, runText[0][1])
|
|
396
397
|
let newNode: Node;
|
|
397
398
|
if (textContent?.startsWith('#')) {
|
|
398
|
-
const r = ObjectUtils.Script.evaluateReturn({ bodyScript: __render.bindScript, returnScript: runText }, Object.assign(obj, { __render })
|
|
399
|
-
);
|
|
399
|
+
const r = ObjectUtils.Script.evaluateReturn({ bodyScript: __render.bindScript, returnScript: runText }, Object.assign(obj, { __render }));
|
|
400
400
|
const template = config.window.document.createElement('template') as HTMLTemplateElement;
|
|
401
401
|
template.innerHTML = r;
|
|
402
402
|
newNode = template.content;
|
|
@@ -439,7 +439,12 @@ export class RawSet {
|
|
|
439
439
|
drDestroyOption: this.getAttributeAndDelete(element, RawSet.DR_DESTROY_OPTIONNAME),
|
|
440
440
|
drKeyOption: this.getAttributeAndDelete(element, RawSet.DR_KEY_OPTIONNAME),
|
|
441
441
|
drDetectIfOption: this.getAttribute(element, RawSet.DR_DETECT_IF_OPTIONNAME),
|
|
442
|
-
drHasKeysOption: this.getAttribute(element, RawSet.DR_HAS_KEYS_OPTIONNAME)
|
|
442
|
+
drHasKeysOption: this.getAttribute(element, RawSet.DR_HAS_KEYS_OPTIONNAME),
|
|
443
|
+
drItemIndexOffsetOption: this.getAttributeAndDelete(element, RawSet.DR_ITEM_INDEX_OFFSET_OPTIONNAME),
|
|
444
|
+
drVariableNameOption: this.getAttributeAndDelete(element, RawSet.DR_VARIABLE_NAME_OPTIONNAME),
|
|
445
|
+
drItemVariableNameOption: this.getAttributeAndDelete(element, RawSet.DR_ITEM_VARIABLE_NAME_OPTIONNAME),
|
|
446
|
+
drItemIndexVariableNameOption: this.getAttributeAndDelete(element, RawSet.DR_ITEM_INDEX_VARIABLE_NAME_OPTIONNAME),
|
|
447
|
+
drItemOffsetIndexVariableNameOption: this.getAttributeAndDelete(element, RawSet.DR_ITEM_OFFSET_INDEX_VARIABLE_NAME_OPTIONNAME)
|
|
443
448
|
};
|
|
444
449
|
drAttrs.push(drAttr);
|
|
445
450
|
// 아래 순서 중요
|
|
@@ -480,7 +485,6 @@ export class RawSet {
|
|
|
480
485
|
it.point.parentRawSet = this;
|
|
481
486
|
});
|
|
482
487
|
|
|
483
|
-
|
|
484
488
|
// console.log('pppppppppppppp', this);
|
|
485
489
|
|
|
486
490
|
// replaceBody와 applyEvent 순서를 바꿨다 20250511
|
|
@@ -525,7 +529,6 @@ export class RawSet {
|
|
|
525
529
|
}
|
|
526
530
|
// console.log(`RawSet const it of onThisComponentSetCallBacks took ${performance.now() - t0} milliseconds.`);
|
|
527
531
|
|
|
528
|
-
|
|
529
532
|
for (const it of onElementInitCallBacks) {
|
|
530
533
|
if (isOnInitRender(this.dataSet.render?.currentThis)) {
|
|
531
534
|
// TODO: 나중에 파라미터 들어가야될듯. 지금은 리팩토링하느라 빠짐
|
|
@@ -566,14 +569,14 @@ export class RawSet {
|
|
|
566
569
|
// console.log(`RawSet for (const it of onAttrInitCallBacks) { took ${performance.now() - t0} milliseconds.`);
|
|
567
570
|
|
|
568
571
|
// component destroy
|
|
569
|
-
if (obj.
|
|
570
|
-
Object.entries(obj.
|
|
572
|
+
if (obj[DomRenderComponentMetaKey.DOMRENDER_COMPONENTS_KEY]) {
|
|
573
|
+
Object.entries(obj[DomRenderComponentMetaKey.DOMRENDER_COMPONENTS_KEY]).forEach(([key, value]) => {
|
|
571
574
|
const rawSet = (value as any).__rawSet as RawSet;
|
|
572
575
|
const drAttrs: Attrs | undefined = rawSet?.dataSet.render?.attribute;
|
|
573
576
|
if (rawSet && !rawSet.isConnected) {
|
|
574
577
|
const destroyOptions = drAttrs?.drDestroyOption?.split(',') ?? [];
|
|
575
|
-
RawSet.destroy(obj.
|
|
576
|
-
delete obj.
|
|
578
|
+
RawSet.destroy(obj[DomRenderComponentMetaKey.DOMRENDER_COMPONENTS_KEY][key], { rawSet: rawSet }, config, destroyOptions);
|
|
579
|
+
delete obj[DomRenderComponentMetaKey.DOMRENDER_COMPONENTS_KEY][key];
|
|
577
580
|
}
|
|
578
581
|
});
|
|
579
582
|
}
|
|
@@ -609,6 +612,8 @@ export class RawSet {
|
|
|
609
612
|
styleBody = styleBody.join('\n');
|
|
610
613
|
}
|
|
611
614
|
styleBody = styleBody.replaceAll('#uuid#', componentKey);
|
|
615
|
+
const { cleanedCss, importRules } = RawSet.extractCssImports(styleBody);
|
|
616
|
+
styleBody = cleanedCss;
|
|
612
617
|
const start = `#${componentKey}-start`;
|
|
613
618
|
const end = `#${componentKey}-end`;
|
|
614
619
|
// 이거뭐하는지 까먹었네 뭐였지??..
|
|
@@ -632,9 +637,7 @@ export class RawSet {
|
|
|
632
637
|
}
|
|
633
638
|
} else if (isAtRule(rule)) {
|
|
634
639
|
if (rule.name === 'media') {
|
|
635
|
-
const hasRoot = rule.children.some(
|
|
636
|
-
childRule => isStyleRule(childRule) && childRule.selector.includes(':root')
|
|
637
|
-
);
|
|
640
|
+
const hasRoot = rule.children.some(childRule => isStyleRule(childRule) && childRule.selector.includes(':root'));
|
|
638
641
|
if (!hasRoot) {
|
|
639
642
|
rule.children.forEach(childRule => {
|
|
640
643
|
if (isStyleRule(childRule)) {
|
|
@@ -660,6 +663,10 @@ export class RawSet {
|
|
|
660
663
|
after = after.replaceAll('/*$', '${');
|
|
661
664
|
after = after.replaceAll('$*/', '}$');
|
|
662
665
|
|
|
666
|
+
if (importRules.length) {
|
|
667
|
+
after = `${importRules.join('\n')}\n${after}`;
|
|
668
|
+
}
|
|
669
|
+
|
|
663
670
|
if (styleTagWrap) {
|
|
664
671
|
styleBody = `<style id='${componentKey}-style' domstyle>${after}</style>`;
|
|
665
672
|
}
|
|
@@ -668,13 +675,56 @@ export class RawSet {
|
|
|
668
675
|
return styleBody;
|
|
669
676
|
}
|
|
670
677
|
|
|
678
|
+
private static extractCssImports(styleBody: string) {
|
|
679
|
+
const importRules: string[] = [];
|
|
680
|
+
let result = '';
|
|
681
|
+
let i = 0;
|
|
682
|
+
while (i < styleBody.length) {
|
|
683
|
+
const importIndex = styleBody.indexOf('@import', i);
|
|
684
|
+
if (importIndex === -1) {
|
|
685
|
+
result += styleBody.slice(i);
|
|
686
|
+
break;
|
|
687
|
+
}
|
|
688
|
+
result += styleBody.slice(i, importIndex);
|
|
689
|
+
|
|
690
|
+
let j = importIndex + '@import'.length;
|
|
691
|
+
let inSingleQuote = false;
|
|
692
|
+
let inDoubleQuote = false;
|
|
693
|
+
let parenDepth = 0;
|
|
694
|
+
while (j < styleBody.length) {
|
|
695
|
+
const ch = styleBody[j];
|
|
696
|
+
if (ch === '\\') {
|
|
697
|
+
j += 2;
|
|
698
|
+
continue;
|
|
699
|
+
}
|
|
700
|
+
if (!inDoubleQuote && ch === "'") {
|
|
701
|
+
inSingleQuote = !inSingleQuote;
|
|
702
|
+
} else if (!inSingleQuote && ch === '"') {
|
|
703
|
+
inDoubleQuote = !inDoubleQuote;
|
|
704
|
+
} else if (!inSingleQuote && !inDoubleQuote) {
|
|
705
|
+
if (ch === '(') {
|
|
706
|
+
parenDepth += 1;
|
|
707
|
+
} else if (ch === ')' && parenDepth > 0) {
|
|
708
|
+
parenDepth -= 1;
|
|
709
|
+
} else if (ch === ';' && parenDepth === 0) {
|
|
710
|
+
j += 1;
|
|
711
|
+
break;
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
j += 1;
|
|
715
|
+
}
|
|
716
|
+
const importRule = styleBody.slice(importIndex, j).trim();
|
|
717
|
+
if (importRule) {
|
|
718
|
+
importRules.push(importRule);
|
|
719
|
+
}
|
|
720
|
+
i = j;
|
|
721
|
+
}
|
|
722
|
+
return { cleanedCss: result, importRules };
|
|
723
|
+
}
|
|
724
|
+
|
|
671
725
|
public applyEvent(obj: any, fragment = this.dataSet.fragment, config?: DomRenderConfig) {
|
|
672
726
|
// const t0 = performance.now();
|
|
673
|
-
this.dataSet.config.eventManager.applyEvent(
|
|
674
|
-
obj,
|
|
675
|
-
this.dataSet.config.eventManager.findAttrElements(fragment, config),
|
|
676
|
-
config
|
|
677
|
-
);
|
|
727
|
+
this.dataSet.config.eventManager.applyEvent(obj, this.dataSet.config.eventManager.findAttrElements(fragment, config), config);
|
|
678
728
|
// console.log(`RawSet applyEvent took ${performance.now() - t0} milliseconds.`);
|
|
679
729
|
}
|
|
680
730
|
|
|
@@ -700,10 +750,7 @@ export class RawSet {
|
|
|
700
750
|
let data = element.getAttribute(RawSet.DR_APPENDER_NAME);
|
|
701
751
|
// if (data && !/\[[0-9]+\]/g.test(data)) {
|
|
702
752
|
if (data && !/\[.+\]/g.test(data)) {
|
|
703
|
-
const currentIndex = ObjectUtils.Script.evaluateReturn(
|
|
704
|
-
`${ObjectUtils.Path.toOptionalChainPath(data)}?.length -1`,
|
|
705
|
-
obj
|
|
706
|
-
);
|
|
753
|
+
const currentIndex = ObjectUtils.Script.evaluateReturn(`${ObjectUtils.Path.toOptionalChainPath(data)}?.length -1`, obj);
|
|
707
754
|
// console.log('------?', currentIndex)
|
|
708
755
|
// if (currentIndex === undefined || isNaN(currentIndex)) {
|
|
709
756
|
// return undefined;
|
|
@@ -762,10 +809,7 @@ export class RawSet {
|
|
|
762
809
|
// const between = StringUtils.betweenRegexpStr('[$#]\\{', '\\}', StringUtils.deleteEnter((node as Text).data ?? ''))
|
|
763
810
|
const between = RawSet.expressionGroups(StringUtils.deleteEnter((node as Text).data ?? ''));
|
|
764
811
|
// console.log('bbbb', between)
|
|
765
|
-
const r =
|
|
766
|
-
between?.length > 0
|
|
767
|
-
? NodeUtils.FindNodesFilterResult.MATCH_AND_SKIP_CHILDREN
|
|
768
|
-
: NodeUtils.FindNodesFilterResult.NO_MATCH_AND_SKIP_CHILDREN;
|
|
812
|
+
const r = between?.length > 0 ? NodeUtils.FindNodesFilterResult.MATCH_AND_SKIP_CHILDREN : NodeUtils.FindNodesFilterResult.NO_MATCH_AND_SKIP_CHILDREN;
|
|
769
813
|
// console.log('acceptNodeReturn node', r);
|
|
770
814
|
return r;
|
|
771
815
|
// return /\$\{.*?\}/g.test(StringUtils.deleteEnter((node as Text).data ?? '')) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
|
|
@@ -786,11 +830,10 @@ export class RawSet {
|
|
|
786
830
|
const script = element.getAttribute(EventManager.attrAttrName) ?? '';
|
|
787
831
|
// console.log('scriptscriptscriptscriptscriptscript,', script)
|
|
788
832
|
// const keyValuePairs = Array.from(script.matchAll(/['"]?(\w+)['"]?:\s*([^,}]+)/g))
|
|
789
|
-
const keyValuePairs = Array.from(script.matchAll(/['"]?([\w-_]+)['"]?:\s*([^,}]+)/g))
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
}));
|
|
833
|
+
const keyValuePairs = Array.from(script.matchAll(/['"]?([\w-_]+)['"]?:\s*([^,}]+)/g)).map(match => ({
|
|
834
|
+
key: match[1],
|
|
835
|
+
value: match[2]
|
|
836
|
+
}));
|
|
794
837
|
|
|
795
838
|
(keyValuePairs ?? []).forEach(it => {
|
|
796
839
|
element.setAttribute(it.key, '${' + it.value + '}$');
|
|
@@ -799,10 +842,8 @@ export class RawSet {
|
|
|
799
842
|
// element.setAttribute('dr-event-click', 'console.log(11)');
|
|
800
843
|
const targetElementIs = element.getAttribute(RawSet.DR_REPLACE_TARGET_ELEMENT_IS_NAME);
|
|
801
844
|
const targetElementNames = config.targetElements?.map(it => it.name.toLowerCase()) ?? [];
|
|
802
|
-
targetElementNames.push(...RawSet.DR_ELEMENTS)
|
|
803
|
-
const isElement =
|
|
804
|
-
targetElementNames.includes(element.tagName.toLowerCase()) ||
|
|
805
|
-
targetElementNames.includes(targetElementIs?.toLowerCase() as any);
|
|
845
|
+
targetElementNames.push(...RawSet.DR_ELEMENTS);
|
|
846
|
+
const isElement = targetElementNames.includes(element.tagName.toLowerCase()) || targetElementNames.includes(targetElementIs?.toLowerCase() as any);
|
|
806
847
|
// if (isElement) {
|
|
807
848
|
// (element as HTMLElement).style.display = 'none';
|
|
808
849
|
// (element as HTMLElement).style.width = '100px';
|
|
@@ -816,38 +857,41 @@ export class RawSet {
|
|
|
816
857
|
const linkVariables = new Map<string, string>();
|
|
817
858
|
const linkNames = EventManager.linkAttrs.map(it => it.name);
|
|
818
859
|
const isAttr =
|
|
819
|
-
element
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
860
|
+
element
|
|
861
|
+
.getAttributeNames()
|
|
862
|
+
.filter(it => !EventManager.noDetectAttr.includes(it))
|
|
863
|
+
.filter(it => {
|
|
864
|
+
const value = element.getAttribute(it)?.trim();
|
|
865
|
+
|
|
866
|
+
// link일때
|
|
867
|
+
if (value && linkNames.includes(it)) {
|
|
868
|
+
linkVariables.set(it, value);
|
|
869
|
+
} else if (value && RawSet.isExpression(value)) {
|
|
870
|
+
// 표현식있을떄
|
|
871
|
+
const variablePaths: { origin: string; inner: string }[] = RawSet.expressionGroups(value).map(it => ({
|
|
872
|
+
origin: it[0].trim(),
|
|
873
|
+
inner: it[1].trim()
|
|
874
|
+
}));
|
|
875
|
+
const isStringTemplate = variablePaths.length > 1 || (variablePaths[0] && variablePaths[0].origin !== value);
|
|
876
|
+
// normal Attribute 초반에 셋팅해주기.
|
|
877
|
+
// TODO: 이거 하긴했는데 사이드 이팩트?
|
|
878
|
+
// let variablePath: string = RawSet.expressionGroups(value)[0][1];
|
|
879
|
+
// const originVariable = variablePath;
|
|
880
|
+
// variablePath = variablePath.replace(/#[^#]*#/g, '({})');
|
|
881
|
+
// const optionalChainPath = ObjectUtils.Path.toOptionalChainPath(variablePath);
|
|
882
|
+
// const cval = ObjectUtils.Script.evaluateReturn(optionalChainPath, Object.assign(obj));
|
|
883
|
+
|
|
884
|
+
let targetScript = value;
|
|
885
|
+
variablePaths.forEach(it => {
|
|
886
|
+
let r = it.inner.replace(/#[^#]*#/g, '({})');
|
|
887
|
+
r = ObjectUtils.Path.toOptionalChainPath(r);
|
|
888
|
+
targetScript = targetScript.replaceAll(it.origin, `\${${r}}`);
|
|
889
|
+
});
|
|
890
|
+
const cval = ObjectUtils.Script.evaluateReturn('`' + targetScript + '`', Object.assign(obj));
|
|
891
|
+
|
|
892
|
+
if (cval === null) {
|
|
893
|
+
element.removeAttribute(it);
|
|
894
|
+
/* TODO: 여기 더 추가되어야될듯
|
|
851
895
|
TODO: 훔..... 없어도될듯?
|
|
852
896
|
*
|
|
853
897
|
<select dr-event-change="@this@.onMarketChange($event)" class="market-select">
|
|
@@ -857,27 +901,24 @@ export class RawSet {
|
|
|
857
901
|
</option>
|
|
858
902
|
</select>
|
|
859
903
|
*/
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
904
|
+
// } else if (
|
|
905
|
+
// !(element.hasAttribute(RawSet.DR_VARIABLE_NAME_OPTIONNAME) || element.hasAttribute(RawSet.DR_ITEM_VARIABLE_NAME_OPTIONNAME) || element.hasAttribute(RawSet.DR_ITEM_INDEX_VARIABLE_NAME_OPTIONNAME))
|
|
906
|
+
// ) {
|
|
907
|
+
// element.setAttribute(it, cval);
|
|
908
|
+
} else {
|
|
909
|
+
element.setAttribute(it, cval);
|
|
910
|
+
}
|
|
911
|
+
normalAttrs.set(it, { originalAttrValue: value, variablePaths: variablePaths, isStringTemplate });
|
|
912
|
+
// normalAttrs.set(it, originVariable);
|
|
913
|
+
// console.log('normalAttribute', it, variablePath);
|
|
866
914
|
}
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
}
|
|
871
|
-
// console.log(element.getAttribute(it), attrExpresion);
|
|
872
|
-
const isTargetAttr = targetAttrNames.includes(it.toLowerCase());
|
|
873
|
-
return isTargetAttr;
|
|
874
|
-
}).length > 0;
|
|
915
|
+
// console.log(element.getAttribute(it), attrExpresion);
|
|
916
|
+
const isTargetAttr = targetAttrNames.includes(it.toLowerCase());
|
|
917
|
+
return isTargetAttr;
|
|
918
|
+
}).length > 0;
|
|
875
919
|
|
|
876
920
|
if (linkVariables.size) {
|
|
877
|
-
element.setAttribute(
|
|
878
|
-
EventManager.linkTargetMapAttrName,
|
|
879
|
-
JSON.stringify(Array.from(linkVariables.entries()))
|
|
880
|
-
);
|
|
921
|
+
element.setAttribute(EventManager.linkTargetMapAttrName, JSON.stringify(Array.from(linkVariables.entries())));
|
|
881
922
|
}
|
|
882
923
|
// 기본 attribute를 처리하기위해
|
|
883
924
|
if (normalAttrs.size) {
|
|
@@ -893,8 +934,7 @@ export class RawSet {
|
|
|
893
934
|
const r = NodeUtils.FindNodesFilterResult.NO_MATCH_AND_CONTINUE;
|
|
894
935
|
// console.log('acceptNodeReturn nothing', r);
|
|
895
936
|
return r;
|
|
896
|
-
}
|
|
897
|
-
)
|
|
937
|
+
});
|
|
898
938
|
|
|
899
939
|
const pars: RawSet[] = [];
|
|
900
940
|
let currentNode: Node | null;
|
|
@@ -981,10 +1021,8 @@ export class RawSet {
|
|
|
981
1021
|
// 여기서 등록한 component 추가한다.
|
|
982
1022
|
const targetElementIs = element.getAttribute(RawSet.DR_REPLACE_TARGET_ELEMENT_IS_NAME);
|
|
983
1023
|
const targetElementNames = config.targetElements?.map(it => it.name.toLowerCase()) ?? [];
|
|
984
|
-
targetElementNames.push(...RawSet.DR_ELEMENTS)
|
|
985
|
-
const isElement =
|
|
986
|
-
targetElementNames.includes(element.tagName.toLowerCase()) ||
|
|
987
|
-
targetElementNames.includes(targetElementIs?.toLowerCase() as any);
|
|
1024
|
+
targetElementNames.push(...RawSet.DR_ELEMENTS);
|
|
1025
|
+
const isElement = targetElementNames.includes(element.tagName.toLowerCase()) || targetElementNames.includes(targetElementIs?.toLowerCase() as any);
|
|
988
1026
|
// if (isElement) {
|
|
989
1027
|
// (element as HTMLElement).style.display = 'none'
|
|
990
1028
|
// }
|
|
@@ -1119,30 +1157,19 @@ export class RawSet {
|
|
|
1119
1157
|
public static drItOtherEncoding(element: Element | DocumentFragment, postFix?: string) {
|
|
1120
1158
|
const random = RandomUtils.uuid() + postFix;
|
|
1121
1159
|
const regex = /#it#/g;
|
|
1122
|
-
element
|
|
1123
|
-
.
|
|
1124
|
-
|
|
1125
|
-
)
|
|
1126
|
-
.forEach(it => {
|
|
1127
|
-
it.innerHTML = it.innerHTML.replace(regex, random);
|
|
1128
|
-
});
|
|
1160
|
+
element.querySelectorAll(`[${RawSet.DR_IT_OPTIONNAME}], [${RawSet.DR_FOR_OF_NAME}], [${RawSet.DR_REPEAT_NAME}], [${RawSet.DR_APPENDER_NAME}]`).forEach(it => {
|
|
1161
|
+
it.innerHTML = it.innerHTML.replace(regex, random);
|
|
1162
|
+
});
|
|
1129
1163
|
return random;
|
|
1130
1164
|
}
|
|
1131
1165
|
|
|
1132
1166
|
public static drItOtherDecoding(element: Element | DocumentFragment, random: string) {
|
|
1133
|
-
element
|
|
1134
|
-
.
|
|
1135
|
-
|
|
1136
|
-
)
|
|
1137
|
-
.forEach(it => {
|
|
1138
|
-
it.innerHTML = it.innerHTML.replace(RegExp(random, 'g'), '#it#');
|
|
1139
|
-
});
|
|
1167
|
+
element.querySelectorAll(`[${RawSet.DR_IT_OPTIONNAME}], [${RawSet.DR_FOR_OF_NAME}], [${RawSet.DR_REPEAT_NAME}], [${RawSet.DR_APPENDER_NAME}]`).forEach(it => {
|
|
1168
|
+
it.innerHTML = it.innerHTML.replace(RegExp(random, 'g'), '#it#');
|
|
1169
|
+
});
|
|
1140
1170
|
}
|
|
1141
1171
|
|
|
1142
|
-
public static drVarDecoding(
|
|
1143
|
-
element: Element,
|
|
1144
|
-
vars: { name: string; value: string; regex: RegExp; random: string }[]
|
|
1145
|
-
) {
|
|
1172
|
+
public static drVarDecoding(element: Element, vars: { name: string; value: string; regex: RegExp; random: string }[]) {
|
|
1146
1173
|
element.querySelectorAll(`[${RawSet.DR_THIS_NAME}]`).forEach(it => {
|
|
1147
1174
|
vars
|
|
1148
1175
|
.filter(vit => vit.value && vit.name)
|
|
@@ -1199,28 +1226,20 @@ export class RawSet {
|
|
|
1199
1226
|
return thisRandom;
|
|
1200
1227
|
}
|
|
1201
1228
|
|
|
1202
|
-
public static drThisBindEncoding(
|
|
1203
|
-
element: Element,
|
|
1204
|
-
variable: RegExp,
|
|
1205
|
-
config: { config: DomRenderConfig; otherReplaceVariablePath?: string }
|
|
1206
|
-
) {
|
|
1229
|
+
public static drThisBindEncoding(element: Element, variable: RegExp, config: { config: DomRenderConfig; otherReplaceVariablePath?: string }) {
|
|
1207
1230
|
element.querySelectorAll(`[${RawSet.DR_THIS_NAME}]`).forEach(eIt => {
|
|
1208
1231
|
let message = eIt.innerHTML;
|
|
1209
1232
|
// StringUtils.regexExec(/([^(dr\-)])?this(?=.?)/g, message).reverse().forEach(it => {
|
|
1210
1233
|
StringUtils.regexExec(variable, message)
|
|
1211
1234
|
.reverse()
|
|
1212
1235
|
.forEach(it => {
|
|
1213
|
-
message =
|
|
1214
|
-
message.substr(0, it.index) +
|
|
1215
|
-
message.substr(it.index).replace(it[0], `${it[1] ?? ''}${eIt.getAttribute(RawSet.DR_THIS_NAME)}`);
|
|
1236
|
+
message = message.substr(0, it.index) + message.substr(it.index).replace(it[0], `${it[1] ?? ''}${eIt.getAttribute(RawSet.DR_THIS_NAME)}`);
|
|
1216
1237
|
});
|
|
1217
1238
|
eIt.innerHTML = message;
|
|
1218
1239
|
});
|
|
1219
1240
|
|
|
1220
1241
|
const targetElements = config.config.targetElements ?? [];
|
|
1221
|
-
const targetElementNames = targetElements
|
|
1222
|
-
.map(it => it.name.replaceAll('.', '\\.').replaceAll(':', '\\:'))
|
|
1223
|
-
.join(',');
|
|
1242
|
+
const targetElementNames = targetElements.map(it => it.name.replaceAll('.', '\\.').replaceAll(':', '\\:')).join(',');
|
|
1224
1243
|
const thisRandom = RandomUtils.uuid();
|
|
1225
1244
|
// console.log('thisRandom', thisRandom, variable);
|
|
1226
1245
|
element.querySelectorAll(targetElementNames).forEach(it => {
|
|
@@ -1236,9 +1255,7 @@ export class RawSet {
|
|
|
1236
1255
|
StringUtils.regexExec(variable, message)
|
|
1237
1256
|
.reverse()
|
|
1238
1257
|
.forEach(it => {
|
|
1239
|
-
message =
|
|
1240
|
-
message.substr(0, it.index) +
|
|
1241
|
-
message.substr(it.index).replace(it[0], `${it[1] ?? ''}${config.otherReplaceVariablePath}`);
|
|
1258
|
+
message = message.substr(0, it.index) + message.substr(it.index).replace(it[0], `${it[1] ?? ''}${config.otherReplaceVariablePath}`);
|
|
1242
1259
|
});
|
|
1243
1260
|
element.innerHTML = message;
|
|
1244
1261
|
}
|
|
@@ -1247,9 +1264,7 @@ export class RawSet {
|
|
|
1247
1264
|
|
|
1248
1265
|
public static drThisBindDecoding(element: Element, config: { asIs: string; toBe: string; config: DomRenderConfig }) {
|
|
1249
1266
|
const targetElements = config.config.targetElements ?? [];
|
|
1250
|
-
const targetElementNames = targetElements
|
|
1251
|
-
.map(it => it.name.replaceAll('.', '\\.').replaceAll(':', '\\:'))
|
|
1252
|
-
.join(',');
|
|
1267
|
+
const targetElementNames = targetElements.map(it => it.name.replaceAll('.', '\\.').replaceAll(':', '\\:')).join(',');
|
|
1253
1268
|
element.querySelectorAll(targetElementNames).forEach(it => {
|
|
1254
1269
|
it.innerHTML = it.innerHTML.replace(RegExp(config.asIs, 'g'), config.toBe);
|
|
1255
1270
|
});
|
|
@@ -1320,16 +1335,7 @@ export class RawSet {
|
|
|
1320
1335
|
return vars;
|
|
1321
1336
|
}
|
|
1322
1337
|
|
|
1323
|
-
public static async drThisCreate(
|
|
1324
|
-
rawSet: RawSet,
|
|
1325
|
-
element: Element,
|
|
1326
|
-
drThis: string,
|
|
1327
|
-
drVarOption: string,
|
|
1328
|
-
drStripOption: boolean | string | null,
|
|
1329
|
-
obj: any,
|
|
1330
|
-
config: DomRenderConfig,
|
|
1331
|
-
set?: ComponentSet
|
|
1332
|
-
): Promise<DocumentFragment | undefined> {
|
|
1338
|
+
public static async drThisCreate(rawSet: RawSet, element: Element, drThis: string, drVarOption: string, drStripOption: boolean | string | null, obj: any, config: DomRenderConfig, set?: ComponentSet): Promise<DocumentFragment | undefined> {
|
|
1333
1339
|
// console.log('ttttttttttttttttttttt',element.innerHTML, drThis, set, obj);
|
|
1334
1340
|
const fag = config.window.document?.createDocumentFragment();
|
|
1335
1341
|
if (!fag) {
|
|
@@ -1339,9 +1345,10 @@ export class RawSet {
|
|
|
1339
1345
|
let targetObj = obj;
|
|
1340
1346
|
if (set) {
|
|
1341
1347
|
targetObj = set.obj;
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1348
|
+
const templateStringSet = await RawSet.fetchTemplateStyle(set, targetObj);
|
|
1349
|
+
set.setTemplateStyle(templateStringSet);
|
|
1350
|
+
const style = RawSet.generateStyleTransform(templateStringSet.styles ?? [], rawSet.uuid, true);
|
|
1351
|
+
targetElement.innerHTML = style + (templateStringSet.template ?? '');
|
|
1345
1352
|
} else {
|
|
1346
1353
|
targetObj = ObjectUtils.Script.evaluateReturn(ObjectUtils.Path.toOptionalChainPath(drThis), obj);
|
|
1347
1354
|
}
|
|
@@ -1393,11 +1400,8 @@ export class RawSet {
|
|
|
1393
1400
|
render = Object.freeze(render);
|
|
1394
1401
|
|
|
1395
1402
|
// dr-on-create data onCreateRender
|
|
1396
|
-
const onCreateDataScript = `
|
|
1397
|
-
const onCreateDataParam = ObjectUtils.Script.
|
|
1398
|
-
onCreateDataScript,
|
|
1399
|
-
Object.assign(obj, { __render: render })
|
|
1400
|
-
);
|
|
1403
|
+
const onCreateDataScript = `{rootParent: this, render: this.__render}`;
|
|
1404
|
+
const onCreateDataParam = ObjectUtils.Script.evaluateReturn<OnCreateRenderDataParams>(onCreateDataScript, Object.assign(obj, { __render: render }));
|
|
1401
1405
|
if (isOnCreateRenderData(targetObj)) {
|
|
1402
1406
|
targetObj?.onCreateRenderData(onCreateDataParam as OnCreateRenderDataParams);
|
|
1403
1407
|
}
|
|
@@ -1410,10 +1414,7 @@ export class RawSet {
|
|
|
1410
1414
|
const onCreate = element.getAttribute(RawSet.DR_ON_CREATE_ARGUMENTS_OPTIONNAME);
|
|
1411
1415
|
let createParam: any[] = [];
|
|
1412
1416
|
if (onCreate) {
|
|
1413
|
-
createParam = ObjectUtils.Script.evaluateReturn<any[]>(
|
|
1414
|
-
{ bodyScript: renderScript, returnScript: ObjectUtils.Path.toOptionalChainPath(onCreate) },
|
|
1415
|
-
obj
|
|
1416
|
-
);
|
|
1417
|
+
createParam = ObjectUtils.Script.evaluateReturn<any[]>({ bodyScript: renderScript, returnScript: ObjectUtils.Path.toOptionalChainPath(onCreate) }, obj);
|
|
1417
1418
|
if (!Array.isArray(createParam)) {
|
|
1418
1419
|
createParam = [createParam];
|
|
1419
1420
|
}
|
|
@@ -1502,9 +1503,7 @@ export class RawSet {
|
|
|
1502
1503
|
const componentName = targetElement.getAttribute(RawSet.DR_VARIABLE_NAME_OPTIONNAME) ?? 'component';
|
|
1503
1504
|
const optionThisName = targetElement.getAttribute(RawSet.DR_THIS_NAME_OPTIONNAME);
|
|
1504
1505
|
// console.log('11111111111111', optionThisName)
|
|
1505
|
-
targetElement
|
|
1506
|
-
.getAttributeNames()
|
|
1507
|
-
.forEach(it => targetElement.setAttribute(it, targetElement.getAttribute(it)!.replace(/#this#/g, drThis)));
|
|
1506
|
+
targetElement.getAttributeNames().forEach(it => targetElement.setAttribute(it, targetElement.getAttribute(it)!.replace(/#this#/g, drThis)));
|
|
1508
1507
|
const thisRandom = this.drThisEncoding(targetElement, drThis, { asIs: /@this@/g });
|
|
1509
1508
|
// console.log('@@@@@@@@@@@@@0', thisRandom);
|
|
1510
1509
|
// let thisNameRandom: string | undefined = undefined;
|
|
@@ -1561,21 +1560,31 @@ export class RawSet {
|
|
|
1561
1560
|
return fag;
|
|
1562
1561
|
}
|
|
1563
1562
|
|
|
1564
|
-
private static async fetchTemplateStyle(set: { template?: string; styles?: string | string[] }) {
|
|
1563
|
+
private static async fetchTemplateStyle<T>(set: { template?: string | ((instance: T) => Promise<string> | string); styles?: string | string[] | ((instance: T) => Promise<string | string[]> | string | string[]) }, obj?: T) {
|
|
1565
1564
|
// const id = RandomUtils.getRandomString(20);
|
|
1566
1565
|
const stylePromises: Promise<string>[] = [];
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1566
|
+
|
|
1567
|
+
const resolveLazy = async (value?: string) => {
|
|
1568
|
+
if (!value) {
|
|
1569
|
+
return value;
|
|
1570
|
+
}
|
|
1571
|
+
return value.startsWith('lazy://') ? (await fetch(value.substring(6))).text() : value;
|
|
1572
|
+
};
|
|
1573
|
+
|
|
1574
|
+
const templateValue = typeof set.template === 'function' ? await set.template(obj as T) : set.template;
|
|
1575
|
+
const templatePromise = typeof templateValue === 'string' ? resolveLazy(templateValue) : Promise.resolve(templateValue);
|
|
1576
|
+
|
|
1577
|
+
const stylesValue = typeof set.styles === 'function' ? await set.styles(obj as T) : set.styles;
|
|
1578
|
+
|
|
1579
|
+
if (Array.isArray(stylesValue)) {
|
|
1580
|
+
for (let i = 0; i < stylesValue.length; i++) {
|
|
1581
|
+
const it = stylesValue[i];
|
|
1582
|
+
stylePromises.push(resolveLazy(it) as Promise<string>);
|
|
1575
1583
|
}
|
|
1576
|
-
} else if (
|
|
1577
|
-
stylePromises.push(
|
|
1584
|
+
} else if (typeof stylesValue === 'string') {
|
|
1585
|
+
stylePromises.push(resolveLazy(stylesValue) as Promise<string>);
|
|
1578
1586
|
}
|
|
1587
|
+
|
|
1579
1588
|
// const tempTemplate = config.window.document.createElement('template');
|
|
1580
1589
|
// tempTemplate.innerHTML = await templatePromise;
|
|
1581
1590
|
// const tempContainer = config.window.document.createElement('div');
|
|
@@ -1585,11 +1594,7 @@ export class RawSet {
|
|
|
1585
1594
|
};
|
|
1586
1595
|
}
|
|
1587
1596
|
|
|
1588
|
-
public static createComponentTargetAttribute(
|
|
1589
|
-
name: string,
|
|
1590
|
-
getThisObj: (element: Element, attrValue: string, obj: any, rawSet: RawSet) => any,
|
|
1591
|
-
factory: (element: Element, attrValue: string, obj: any, rawSet: RawSet) => DocumentFragment
|
|
1592
|
-
) {
|
|
1597
|
+
public static createComponentTargetAttribute(name: string, getThisObj: (element: Element, attrValue: string, obj: any, rawSet: RawSet) => any, factory: (element: Element, attrValue: string, obj: any, rawSet: RawSet) => DocumentFragment) {
|
|
1593
1598
|
const targetAttribute: TargetAttr = {
|
|
1594
1599
|
name,
|
|
1595
1600
|
callBack(element: Element, attrValue: string, obj: any, rawSet: RawSet): DocumentFragment {
|
|
@@ -1610,36 +1615,16 @@ export class RawSet {
|
|
|
1610
1615
|
return targetAttribute;
|
|
1611
1616
|
}
|
|
1612
1617
|
|
|
1613
|
-
public static createComponentTargetElement({
|
|
1614
|
-
|
|
1615
|
-
objFactory,
|
|
1616
|
-
template = '',
|
|
1617
|
-
styles = [],
|
|
1618
|
-
noStrip
|
|
1619
|
-
}: {
|
|
1620
|
-
name: string;
|
|
1621
|
-
noStrip?: boolean;
|
|
1622
|
-
objFactory: (element: Element, obj: any, rawSet: RawSet, counstructorParam: any[]) => any;
|
|
1623
|
-
template?: string;
|
|
1624
|
-
styles?: string | string[];
|
|
1625
|
-
}): TargetElement {
|
|
1626
|
-
const targetElement: TargetElement = {
|
|
1618
|
+
public static createComponentTargetElement<T = any>({ name, objFactory, template = '', styles = [], noStrip }: { name: string; noStrip?: boolean; objFactory: (element: Element, obj: any, rawSet: RawSet, counstructorParam: any[]) => any; template?: string | ((instance: T) => Promise<string>); styles?: string | string[] | ((instance: T) => Promise<string>) }): TargetElement<T> {
|
|
1619
|
+
const targetElement: TargetElement<T> = {
|
|
1627
1620
|
name,
|
|
1628
|
-
styles,
|
|
1629
|
-
template,
|
|
1621
|
+
styles: styles,
|
|
1622
|
+
template: template,
|
|
1630
1623
|
noStrip,
|
|
1631
|
-
async callBack(
|
|
1632
|
-
|
|
1633
|
-
obj
|
|
1634
|
-
|
|
1635
|
-
attrs: Attrs,
|
|
1636
|
-
config: DomRenderConfig
|
|
1637
|
-
): Promise<DocumentFragment | undefined> {
|
|
1638
|
-
const templateStyle = await RawSet.fetchTemplateStyle({ template: this.template, styles: this.styles });
|
|
1639
|
-
this.template = templateStyle.template;
|
|
1640
|
-
this.styles = templateStyle.styles;
|
|
1641
|
-
obj.__domrender_components ??= {};
|
|
1642
|
-
const domrenderComponents = obj.__domrender_components;
|
|
1624
|
+
async callBack(element: Element, obj: any, rawSet: RawSet, attrs: Attrs, config: DomRenderConfig): Promise<DocumentFragment | undefined> {
|
|
1625
|
+
obj[DomRenderComponentMetaKey.DOMRENDER_COMPONENTS_KEY] ??= {};
|
|
1626
|
+
const domrenderComponents = obj[DomRenderComponentMetaKey.DOMRENDER_COMPONENTS_KEY];
|
|
1627
|
+
|
|
1643
1628
|
// debugger;
|
|
1644
1629
|
const renderScript = ` /*createComponentTargetElement*/
|
|
1645
1630
|
var ${EventManager.RAWSET_VARNAME} = this.__render.rawSet;
|
|
@@ -1681,11 +1666,7 @@ export class RawSet {
|
|
|
1681
1666
|
//
|
|
1682
1667
|
// // dr-constructor
|
|
1683
1668
|
if (constructor) {
|
|
1684
|
-
let param =
|
|
1685
|
-
ObjectUtils.Script.evaluateReturn(
|
|
1686
|
-
{ bodyScript: renderScript, returnScript: ObjectUtils.Path.toOptionalChainPath(constructor) },
|
|
1687
|
-
Object.assign(obj, { __render: render })
|
|
1688
|
-
) ?? [];
|
|
1669
|
+
let param = ObjectUtils.Script.evaluateReturn({ bodyScript: renderScript, returnScript: ObjectUtils.Path.toOptionalChainPath(constructor) }, Object.assign(obj, { __render: render })) ?? [];
|
|
1689
1670
|
if (!Array.isArray(param)) {
|
|
1690
1671
|
param = [param];
|
|
1691
1672
|
}
|
|
@@ -1693,7 +1674,7 @@ export class RawSet {
|
|
|
1693
1674
|
}
|
|
1694
1675
|
|
|
1695
1676
|
// // console.log('------22', attrs);
|
|
1696
|
-
const instance = (domrenderComponents[rawSet.uuid] = objFactory(element, obj, rawSet, constructorParam));
|
|
1677
|
+
const instance = (domrenderComponents[rawSet.uuid] = await objFactory(element, obj, rawSet, constructorParam));
|
|
1697
1678
|
render = {
|
|
1698
1679
|
currentThis: instance,
|
|
1699
1680
|
// creatorMetaData: i,
|
|
@@ -1703,6 +1684,10 @@ export class RawSet {
|
|
|
1703
1684
|
// 추적 및 destroy 위해.
|
|
1704
1685
|
instance.__rawSet = rawSet;
|
|
1705
1686
|
|
|
1687
|
+
const templateStyle = await RawSet.fetchTemplateStyle({ template: this.template, styles: this.styles }, instance);
|
|
1688
|
+
this.template = templateStyle.template;
|
|
1689
|
+
this.styles = templateStyle.styles;
|
|
1690
|
+
|
|
1706
1691
|
let applayTemplate = element.innerHTML;
|
|
1707
1692
|
let applayTemplateText = element.textContent?.trim() ?? '';
|
|
1708
1693
|
let applayTemplateEscape = ConvertUtils.escapeHTML(element.innerHTML);
|
|
@@ -1736,7 +1721,7 @@ export class RawSet {
|
|
|
1736
1721
|
// RawSet.replaceInnerHTML(
|
|
1737
1722
|
// applayTemplate = StringUtils.regexExecArrayReplace(this.template, RegExp(`#${innerHTMLName}#`, 'g'), applayTemplate)
|
|
1738
1723
|
// applayTemplate = StringUtils.regexExecArrayReplace(this.template, [RegExp(`#${innerHTMLName}#`, 'g')], applayTemplate)
|
|
1739
|
-
applayTemplate = StringUtils.replaceSequentially(
|
|
1724
|
+
applayTemplate = StringUtils.replaceSequentially(this.template ?? '', [
|
|
1740
1725
|
{
|
|
1741
1726
|
regex: new RegExp(`#${innerHTMLName}#`, 'g'),
|
|
1742
1727
|
callback: () => applayTemplate
|
|
@@ -1765,15 +1750,7 @@ export class RawSet {
|
|
|
1765
1750
|
|
|
1766
1751
|
// 여기서 targetElement의 옷을 벗긴다.
|
|
1767
1752
|
// console.log('---createComponentTargetElement', element);
|
|
1768
|
-
let data = await RawSet.drThisCreate(
|
|
1769
|
-
rawSet,
|
|
1770
|
-
element,
|
|
1771
|
-
`this.__domrender_components.${rawSet.uuid}`,
|
|
1772
|
-
'',
|
|
1773
|
-
!noStrip,
|
|
1774
|
-
obj,
|
|
1775
|
-
config
|
|
1776
|
-
);
|
|
1753
|
+
let data = await RawSet.drThisCreate(rawSet, element, `this.${DomRenderComponentMetaKey.DOMRENDER_COMPONENTS_KEY}.${rawSet.uuid}`, '', !noStrip, obj, config);
|
|
1777
1754
|
// const tempDiv = document.createElement("div");
|
|
1778
1755
|
// tempDiv.appendChild(data.cloneNode(true)); // 원본 보존
|
|
1779
1756
|
// console.log('-------------ddddddddddddd', element.innerHTML, tempDiv.innerHTML);
|
|
@@ -1793,7 +1770,7 @@ export class RawSet {
|
|
|
1793
1770
|
// console.log('-----XX', ElementUtils.toInnerHTML(data, {document: config.window.document}));
|
|
1794
1771
|
// template.innerHTML = template.innerHTML.replace(RegExp(innerHTMLThisRandom, 'g'), 'this.');
|
|
1795
1772
|
let s = ElementUtils.toInnerHTML(data, { document: config.window.document });
|
|
1796
|
-
template.innerHTML = s.replace(RegExp(innerHTMLThisRandom, 'g'), 'this.')
|
|
1773
|
+
template.innerHTML = s.replace(RegExp(innerHTMLThisRandom, 'g'), 'this.');
|
|
1797
1774
|
// console.log('ccc?', template.innerHTML);
|
|
1798
1775
|
// template.innerHTML = '<div>zzzzzzz</div>'
|
|
1799
1776
|
data = template.content;
|
|
@@ -1819,12 +1796,7 @@ export class RawSet {
|
|
|
1819
1796
|
return StringUtils.regexExec(reg, data ?? '');
|
|
1820
1797
|
}
|
|
1821
1798
|
|
|
1822
|
-
public static destroy(
|
|
1823
|
-
obj: any | undefined,
|
|
1824
|
-
parameter: OnDestroyRenderParams,
|
|
1825
|
-
config: DomRenderConfig,
|
|
1826
|
-
destroyOptions: (DestroyOptionType | string)[] = []
|
|
1827
|
-
): void {
|
|
1799
|
+
public static destroy(obj: any | undefined, parameter: OnDestroyRenderParams, config: DomRenderConfig, destroyOptions: (DestroyOptionType | string)[] = []): void {
|
|
1828
1800
|
// console.log('destroy destroydestroydestroydestroy', obj, parameter, config, destroyOptions);
|
|
1829
1801
|
if (!destroyOptions.some(it => it === DestroyOptionType.NO_DESTROY)) {
|
|
1830
1802
|
if (!destroyOptions.some(it => it === DestroyOptionType.NO_MESSENGER_DESTROY)) {
|
|
@@ -1832,6 +1804,11 @@ export class RawSet {
|
|
|
1832
1804
|
config.messenger.deleteChannelFromObj(obj);
|
|
1833
1805
|
}
|
|
1834
1806
|
}
|
|
1807
|
+
|
|
1808
|
+
if (obj && obj.onDestroy === 'function') {
|
|
1809
|
+
obj.onDestroy();
|
|
1810
|
+
}
|
|
1811
|
+
|
|
1835
1812
|
// console.log('------------destroy', obj);
|
|
1836
1813
|
if (isOnDestroyRender(obj)) {
|
|
1837
1814
|
obj.onDestroyRender?.(parameter);
|
|
@@ -1871,11 +1848,7 @@ export class RawSet {
|
|
|
1871
1848
|
const findPath = (rawSet: RawSet) => {
|
|
1872
1849
|
if (rawSet && rawSet.point) {
|
|
1873
1850
|
// jsDom에서 instranceof HTMLMetaElement가 안먹히는것같아? 간혈적으로?
|
|
1874
|
-
if (
|
|
1875
|
-
rawSet.point?.start &&
|
|
1876
|
-
'getAttribute' in rawSet.point.start &&
|
|
1877
|
-
rawSet.point.start.getAttribute('this-path')
|
|
1878
|
-
) {
|
|
1851
|
+
if (rawSet.point?.start && 'getAttribute' in rawSet.point.start && rawSet.point.start.getAttribute('this-path')) {
|
|
1879
1852
|
paths.push(rawSet.point.start.getAttribute('this-path')!);
|
|
1880
1853
|
}
|
|
1881
1854
|
if (rawSet.point.parentRawSet) findPath(rawSet.point.parentRawSet);
|
|
@@ -1907,10 +1880,7 @@ export class RawSet {
|
|
|
1907
1880
|
let r = ObjectUtils.Path.toOptionalChainPath(variablePaths[0].inner);
|
|
1908
1881
|
targetScript = targetScript.replaceAll(variablePaths[0].origin, r);
|
|
1909
1882
|
}
|
|
1910
|
-
const cval = ObjectUtils.Script.evaluateReturn(
|
|
1911
|
-
{ bodyScript: config.script, returnScript: v.isStringTemplate ? '`' + targetScript + '`' : targetScript },
|
|
1912
|
-
Object.assign(config.obj, config.renderData ? { __render: config.renderData } : undefined)
|
|
1913
|
-
);
|
|
1883
|
+
const cval = ObjectUtils.Script.evaluateReturn({ bodyScript: config.script, returnScript: v.isStringTemplate ? '`' + targetScript + '`' : targetScript }, Object.assign(config.obj, config.renderData ? { __render: config.renderData } : undefined));
|
|
1914
1884
|
attribute[k] = cval;
|
|
1915
1885
|
});
|
|
1916
1886
|
}
|