@dooboostore/simple-web-component 1.0.18 → 1.0.21
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 +2065 -164
- package/dist/cjs/config/config.js +2 -0
- package/dist/cjs/config/config.js.map +2 -2
- package/dist/cjs/decorators/addEventListener.js +8 -8
- package/dist/cjs/decorators/addEventListener.js.map +2 -2
- package/dist/cjs/decorators/appendChild.js +53 -9
- package/dist/cjs/decorators/appendChild.js.map +2 -2
- package/dist/cjs/decorators/attribute.js +141 -0
- package/dist/cjs/decorators/attribute.js.map +7 -0
- package/dist/cjs/decorators/changedAttribute.js +5 -5
- package/dist/cjs/decorators/changedAttribute.js.map +2 -2
- package/dist/cjs/decorators/classList.js +104 -0
- package/dist/cjs/decorators/classList.js.map +7 -0
- package/dist/cjs/decorators/elementDefine.js +334 -425
- package/dist/cjs/decorators/elementDefine.js.map +3 -3
- package/dist/cjs/decorators/emitCustomEvent.js +65 -13
- package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
- package/dist/cjs/decorators/index.js +4 -0
- package/dist/cjs/decorators/index.js.map +2 -2
- package/dist/cjs/decorators/lifecycles.js +4 -4
- package/dist/cjs/decorators/lifecycles.js.map +2 -2
- package/dist/cjs/decorators/onConnectedInnerHtml.js +4 -4
- package/dist/cjs/decorators/onConnectedInnerHtml.js.map +2 -2
- package/dist/cjs/decorators/query.js +60 -36
- package/dist/cjs/decorators/query.js.map +2 -2
- package/dist/cjs/decorators/queryAll.js +47 -23
- package/dist/cjs/decorators/queryAll.js.map +2 -2
- package/dist/cjs/decorators/replaceChildren.js +32 -6
- package/dist/cjs/decorators/replaceChildren.js.map +2 -2
- package/dist/cjs/decorators/setAttribute.js +64 -10
- package/dist/cjs/decorators/setAttribute.js.map +2 -2
- package/dist/cjs/decorators/style.js +88 -0
- package/dist/cjs/decorators/style.js.map +7 -0
- package/dist/cjs/elements/SwcAppEngine.js +30 -15
- package/dist/cjs/elements/SwcAppEngine.js.map +3 -3
- package/dist/cjs/elements/SwcAppMixin.js +79 -0
- package/dist/cjs/elements/SwcAppMixin.js.map +7 -0
- package/dist/cjs/elements/SwcAsync.js +58 -123
- package/dist/cjs/elements/SwcAsync.js.map +3 -3
- package/dist/cjs/elements/SwcChoose.js +52 -76
- package/dist/cjs/elements/SwcChoose.js.map +3 -3
- package/dist/cjs/elements/SwcIf.js +66 -94
- package/dist/cjs/elements/SwcIf.js.map +3 -3
- package/dist/cjs/elements/SwcLoop.js +73 -174
- package/dist/cjs/elements/SwcLoop.js.map +3 -3
- package/dist/cjs/elements/SwcSubTemplates.js +12 -37
- package/dist/cjs/elements/SwcSubTemplates.js.map +3 -3
- package/dist/cjs/elements/index.js +1 -8
- package/dist/cjs/elements/index.js.map +2 -2
- package/dist/cjs/elements/register.js +831 -0
- package/dist/cjs/elements/register.js.map +7 -0
- package/dist/cjs/index.js +14 -3
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/router/ElementRouter.js +7 -7
- package/dist/cjs/router/ElementRouter.js.map +2 -2
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils/TemplateUtils.js +103 -0
- package/dist/cjs/utils/TemplateUtils.js.map +7 -0
- package/dist/cjs/utils/Utils.js +10 -7
- package/dist/cjs/utils/Utils.js.map +2 -2
- package/dist/esm/config/config.js +2 -0
- package/dist/esm/config/config.js.map +2 -2
- package/dist/esm/decorators/addEventListener.js +5 -5
- package/dist/esm/decorators/addEventListener.js.map +2 -2
- package/dist/esm/decorators/appendChild.js +52 -8
- package/dist/esm/decorators/appendChild.js.map +2 -2
- package/dist/esm/decorators/attribute.js +122 -0
- package/dist/esm/decorators/attribute.js.map +7 -0
- package/dist/esm/decorators/changedAttribute.js +1 -1
- package/dist/esm/decorators/changedAttribute.js.map +1 -1
- package/dist/esm/decorators/classList.js +85 -0
- package/dist/esm/decorators/classList.js.map +7 -0
- package/dist/esm/decorators/elementDefine.js +334 -425
- package/dist/esm/decorators/elementDefine.js.map +3 -3
- package/dist/esm/decorators/emitCustomEvent.js +62 -10
- package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
- package/dist/esm/decorators/index.js +4 -0
- package/dist/esm/decorators/index.js.map +2 -2
- package/dist/esm/decorators/lifecycles.js +1 -1
- package/dist/esm/decorators/lifecycles.js.map +1 -1
- package/dist/esm/decorators/onConnectedInnerHtml.js +1 -1
- package/dist/esm/decorators/onConnectedInnerHtml.js.map +1 -1
- package/dist/esm/decorators/query.js +58 -34
- package/dist/esm/decorators/query.js.map +2 -2
- package/dist/esm/decorators/queryAll.js +45 -21
- package/dist/esm/decorators/queryAll.js.map +2 -2
- package/dist/esm/decorators/replaceChildren.js +28 -2
- package/dist/esm/decorators/replaceChildren.js.map +2 -2
- package/dist/esm/decorators/setAttribute.js +62 -8
- package/dist/esm/decorators/setAttribute.js.map +2 -2
- package/dist/esm/decorators/style.js +69 -0
- package/dist/esm/decorators/style.js.map +7 -0
- package/dist/esm/elements/SwcAppEngine.js +27 -12
- package/dist/esm/elements/SwcAppEngine.js.map +2 -2
- package/dist/esm/elements/SwcAppMixin.js +60 -0
- package/dist/esm/elements/SwcAppMixin.js.map +7 -0
- package/dist/esm/elements/SwcAsync.js +58 -123
- package/dist/esm/elements/SwcAsync.js.map +3 -3
- package/dist/esm/elements/SwcChoose.js +52 -76
- package/dist/esm/elements/SwcChoose.js.map +3 -3
- package/dist/esm/elements/SwcIf.js +66 -94
- package/dist/esm/elements/SwcIf.js.map +3 -3
- package/dist/esm/elements/SwcLoop.js +72 -173
- package/dist/esm/elements/SwcLoop.js.map +3 -3
- package/dist/esm/elements/SwcSubTemplates.js +12 -37
- package/dist/esm/elements/SwcSubTemplates.js.map +3 -3
- package/dist/esm/elements/index.js +1 -8
- package/dist/esm/elements/index.js.map +2 -2
- package/dist/esm/elements/register.js +812 -0
- package/dist/esm/elements/register.js.map +7 -0
- package/dist/esm/index.js +14 -3
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/router/ElementRouter.js +2 -2
- package/dist/esm/router/ElementRouter.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils/TemplateUtils.js +84 -0
- package/dist/esm/utils/TemplateUtils.js.map +7 -0
- package/dist/esm/utils/Utils.js +6 -3
- package/dist/esm/utils/Utils.js.map +2 -2
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +4910 -7463
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
- package/dist/types/config/config.d.ts +1 -0
- package/dist/types/config/config.d.ts.map +1 -1
- package/dist/types/decorators/addEventListener.d.ts +11 -11
- package/dist/types/decorators/addEventListener.d.ts.map +1 -1
- package/dist/types/decorators/appendChild.d.ts +1 -1
- package/dist/types/decorators/appendChild.d.ts.map +1 -1
- package/dist/types/decorators/attribute.d.ts +23 -0
- package/dist/types/decorators/attribute.d.ts.map +1 -0
- package/dist/types/decorators/classList.d.ts +34 -0
- package/dist/types/decorators/classList.d.ts.map +1 -0
- package/dist/types/decorators/elementDefine.d.ts +9 -5
- package/dist/types/decorators/elementDefine.d.ts.map +1 -1
- package/dist/types/decorators/emitCustomEvent.d.ts +7 -4
- package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
- package/dist/types/decorators/index.d.ts +4 -0
- package/dist/types/decorators/index.d.ts.map +1 -1
- package/dist/types/decorators/query.d.ts +7 -8
- package/dist/types/decorators/query.d.ts.map +1 -1
- package/dist/types/decorators/queryAll.d.ts +5 -9
- package/dist/types/decorators/queryAll.d.ts.map +1 -1
- package/dist/types/decorators/replaceChildren.d.ts.map +1 -1
- package/dist/types/decorators/setAttribute.d.ts +16 -3
- package/dist/types/decorators/setAttribute.d.ts.map +1 -1
- package/dist/types/decorators/style.d.ts +24 -0
- package/dist/types/decorators/style.d.ts.map +1 -0
- package/dist/types/elements/SwcAppEngine.d.ts +6 -5
- package/dist/types/elements/SwcAppEngine.d.ts.map +1 -1
- package/dist/types/elements/SwcAppMixin.d.ts +364 -0
- package/dist/types/elements/SwcAppMixin.d.ts.map +1 -0
- package/dist/types/elements/SwcAsync.d.ts +2 -6
- package/dist/types/elements/SwcAsync.d.ts.map +1 -1
- package/dist/types/elements/SwcChoose.d.ts +2 -1
- package/dist/types/elements/SwcChoose.d.ts.map +1 -1
- package/dist/types/elements/SwcIf.d.ts +5 -6
- package/dist/types/elements/SwcIf.d.ts.map +1 -1
- package/dist/types/elements/SwcLoop.d.ts +4 -10
- package/dist/types/elements/SwcLoop.d.ts.map +1 -1
- package/dist/types/elements/SwcSubTemplates.d.ts.map +1 -1
- package/dist/types/elements/index.d.ts +1 -8
- package/dist/types/elements/index.d.ts.map +1 -1
- package/dist/types/elements/register.d.ts +2 -0
- package/dist/types/elements/register.d.ts.map +1 -0
- package/dist/types/index.d.ts +8 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/router/ElementRouter.d.ts +1 -1
- package/dist/types/router/ElementRouter.d.ts.map +1 -1
- package/dist/types/types.d.ts +8 -2
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils/TemplateUtils.d.ts +54 -0
- package/dist/types/utils/TemplateUtils.d.ts.map +1 -0
- package/dist/types/utils/Utils.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +4910 -7463
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
- package/package.json +11 -6
- package/src/config/config.ts +2 -0
- package/src/decorators/addEventListener.ts +13 -12
- package/src/decorators/appendChild.ts +53 -9
- package/src/decorators/attribute.ts +158 -0
- package/src/decorators/changedAttribute.ts +1 -1
- package/src/decorators/classList.ts +117 -0
- package/src/decorators/elementDefine.ts +371 -425
- package/src/decorators/emitCustomEvent.ts +77 -13
- package/src/decorators/index.ts +4 -0
- package/src/decorators/lifecycles.ts +1 -1
- package/src/decorators/onConnectedInnerHtml.ts +1 -1
- package/src/decorators/query.ts +58 -38
- package/src/decorators/queryAll.ts +45 -29
- package/src/decorators/replaceChildren.ts +31 -2
- package/src/decorators/setAttribute.ts +86 -12
- package/src/decorators/style.ts +89 -0
- package/src/elements/SwcAppEngine.ts +34 -18
- package/src/elements/SwcAppMixin.ts +65 -0
- package/src/elements/SwcAsync.ts +58 -128
- package/src/elements/SwcChoose.ts +51 -77
- package/src/elements/SwcIf.ts +64 -86
- package/src/elements/SwcLoop.ts +71 -168
- package/src/elements/SwcSubTemplates.ts +0 -13
- package/src/elements/index.ts +1 -8
- package/src/elements/register.ts +735 -0
- package/src/index.ts +17 -5
- package/src/router/ElementRouter.ts +2 -2
- package/src/types.ts +15 -6
- package/src/utils/TemplateUtils.ts +83 -0
- package/src/utils/Utils.ts +6 -3
- package/dist/cjs/elements/SwcApp.js +0 -55
- package/dist/cjs/elements/SwcApp.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppAnchor.js +0 -55
- package/dist/cjs/elements/is/SwcAppAnchor.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppArea.js +0 -55
- package/dist/cjs/elements/is/SwcAppArea.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppAudio.js +0 -55
- package/dist/cjs/elements/is/SwcAppAudio.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppBase.js +0 -55
- package/dist/cjs/elements/is/SwcAppBase.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppBody.js +0 -55
- package/dist/cjs/elements/is/SwcAppBody.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppButton.js +0 -55
- package/dist/cjs/elements/is/SwcAppButton.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppCanvas.js +0 -55
- package/dist/cjs/elements/is/SwcAppCanvas.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppData.js +0 -55
- package/dist/cjs/elements/is/SwcAppData.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppDataList.js +0 -55
- package/dist/cjs/elements/is/SwcAppDataList.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppDetails.js +0 -55
- package/dist/cjs/elements/is/SwcAppDetails.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppDialog.js +0 -55
- package/dist/cjs/elements/is/SwcAppDialog.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppDiv.js +0 -55
- package/dist/cjs/elements/is/SwcAppDiv.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppDl.js +0 -55
- package/dist/cjs/elements/is/SwcAppDl.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppEmbed.js +0 -55
- package/dist/cjs/elements/is/SwcAppEmbed.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppFieldSet.js +0 -55
- package/dist/cjs/elements/is/SwcAppFieldSet.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppForm.js +0 -55
- package/dist/cjs/elements/is/SwcAppForm.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppHeading.js +0 -55
- package/dist/cjs/elements/is/SwcAppHeading.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppHr.js +0 -55
- package/dist/cjs/elements/is/SwcAppHr.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppIFrame.js +0 -55
- package/dist/cjs/elements/is/SwcAppIFrame.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppImage.js +0 -55
- package/dist/cjs/elements/is/SwcAppImage.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppInput.js +0 -55
- package/dist/cjs/elements/is/SwcAppInput.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppLabel.js +0 -55
- package/dist/cjs/elements/is/SwcAppLabel.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppLegend.js +0 -55
- package/dist/cjs/elements/is/SwcAppLegend.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppLi.js +0 -55
- package/dist/cjs/elements/is/SwcAppLi.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppLink.js +0 -55
- package/dist/cjs/elements/is/SwcAppLink.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppMap.js +0 -55
- package/dist/cjs/elements/is/SwcAppMap.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppMeta.js +0 -55
- package/dist/cjs/elements/is/SwcAppMeta.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppMeter.js +0 -55
- package/dist/cjs/elements/is/SwcAppMeter.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppMod.js +0 -55
- package/dist/cjs/elements/is/SwcAppMod.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppObject.js +0 -55
- package/dist/cjs/elements/is/SwcAppObject.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppOl.js +0 -55
- package/dist/cjs/elements/is/SwcAppOl.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppOptGroup.js +0 -55
- package/dist/cjs/elements/is/SwcAppOptGroup.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppOption.js +0 -55
- package/dist/cjs/elements/is/SwcAppOption.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppOutput.js +0 -55
- package/dist/cjs/elements/is/SwcAppOutput.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppParagraph.js +0 -55
- package/dist/cjs/elements/is/SwcAppParagraph.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppParam.js +0 -55
- package/dist/cjs/elements/is/SwcAppParam.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppPicture.js +0 -55
- package/dist/cjs/elements/is/SwcAppPicture.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppPre.js +0 -55
- package/dist/cjs/elements/is/SwcAppPre.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppProgress.js +0 -55
- package/dist/cjs/elements/is/SwcAppProgress.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppQuote.js +0 -55
- package/dist/cjs/elements/is/SwcAppQuote.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppScript.js +0 -55
- package/dist/cjs/elements/is/SwcAppScript.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppSelect.js +0 -55
- package/dist/cjs/elements/is/SwcAppSelect.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppSlot.js +0 -55
- package/dist/cjs/elements/is/SwcAppSlot.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppSource.js +0 -55
- package/dist/cjs/elements/is/SwcAppSource.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppSpan.js +0 -55
- package/dist/cjs/elements/is/SwcAppSpan.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppStyle.js +0 -55
- package/dist/cjs/elements/is/SwcAppStyle.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppTable.js +0 -55
- package/dist/cjs/elements/is/SwcAppTable.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppTableCell.js +0 -55
- package/dist/cjs/elements/is/SwcAppTableCell.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppTableRow.js +0 -55
- package/dist/cjs/elements/is/SwcAppTableRow.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppTableSection.js +0 -55
- package/dist/cjs/elements/is/SwcAppTableSection.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppTemplate.js +0 -55
- package/dist/cjs/elements/is/SwcAppTemplate.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppTextArea.js +0 -55
- package/dist/cjs/elements/is/SwcAppTextArea.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppTime.js +0 -55
- package/dist/cjs/elements/is/SwcAppTime.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppTitle.js +0 -55
- package/dist/cjs/elements/is/SwcAppTitle.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppTrack.js +0 -55
- package/dist/cjs/elements/is/SwcAppTrack.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppUl.js +0 -55
- package/dist/cjs/elements/is/SwcAppUl.js.map +0 -7
- package/dist/cjs/elements/is/SwcAppVideo.js +0 -55
- package/dist/cjs/elements/is/SwcAppVideo.js.map +0 -7
- package/dist/cjs/elements/is/index.js +0 -74
- package/dist/cjs/elements/is/index.js.map +0 -7
- package/dist/esm/elements/SwcApp.js +0 -36
- package/dist/esm/elements/SwcApp.js.map +0 -7
- package/dist/esm/elements/is/SwcAppAnchor.js +0 -36
- package/dist/esm/elements/is/SwcAppAnchor.js.map +0 -7
- package/dist/esm/elements/is/SwcAppArea.js +0 -36
- package/dist/esm/elements/is/SwcAppArea.js.map +0 -7
- package/dist/esm/elements/is/SwcAppAudio.js +0 -36
- package/dist/esm/elements/is/SwcAppAudio.js.map +0 -7
- package/dist/esm/elements/is/SwcAppBase.js +0 -36
- package/dist/esm/elements/is/SwcAppBase.js.map +0 -7
- package/dist/esm/elements/is/SwcAppBody.js +0 -36
- package/dist/esm/elements/is/SwcAppBody.js.map +0 -7
- package/dist/esm/elements/is/SwcAppButton.js +0 -36
- package/dist/esm/elements/is/SwcAppButton.js.map +0 -7
- package/dist/esm/elements/is/SwcAppCanvas.js +0 -36
- package/dist/esm/elements/is/SwcAppCanvas.js.map +0 -7
- package/dist/esm/elements/is/SwcAppData.js +0 -36
- package/dist/esm/elements/is/SwcAppData.js.map +0 -7
- package/dist/esm/elements/is/SwcAppDataList.js +0 -36
- package/dist/esm/elements/is/SwcAppDataList.js.map +0 -7
- package/dist/esm/elements/is/SwcAppDetails.js +0 -36
- package/dist/esm/elements/is/SwcAppDetails.js.map +0 -7
- package/dist/esm/elements/is/SwcAppDialog.js +0 -36
- package/dist/esm/elements/is/SwcAppDialog.js.map +0 -7
- package/dist/esm/elements/is/SwcAppDiv.js +0 -36
- package/dist/esm/elements/is/SwcAppDiv.js.map +0 -7
- package/dist/esm/elements/is/SwcAppDl.js +0 -36
- package/dist/esm/elements/is/SwcAppDl.js.map +0 -7
- package/dist/esm/elements/is/SwcAppEmbed.js +0 -36
- package/dist/esm/elements/is/SwcAppEmbed.js.map +0 -7
- package/dist/esm/elements/is/SwcAppFieldSet.js +0 -36
- package/dist/esm/elements/is/SwcAppFieldSet.js.map +0 -7
- package/dist/esm/elements/is/SwcAppForm.js +0 -36
- package/dist/esm/elements/is/SwcAppForm.js.map +0 -7
- package/dist/esm/elements/is/SwcAppHeading.js +0 -36
- package/dist/esm/elements/is/SwcAppHeading.js.map +0 -7
- package/dist/esm/elements/is/SwcAppHr.js +0 -36
- package/dist/esm/elements/is/SwcAppHr.js.map +0 -7
- package/dist/esm/elements/is/SwcAppIFrame.js +0 -36
- package/dist/esm/elements/is/SwcAppIFrame.js.map +0 -7
- package/dist/esm/elements/is/SwcAppImage.js +0 -36
- package/dist/esm/elements/is/SwcAppImage.js.map +0 -7
- package/dist/esm/elements/is/SwcAppInput.js +0 -36
- package/dist/esm/elements/is/SwcAppInput.js.map +0 -7
- package/dist/esm/elements/is/SwcAppLabel.js +0 -36
- package/dist/esm/elements/is/SwcAppLabel.js.map +0 -7
- package/dist/esm/elements/is/SwcAppLegend.js +0 -36
- package/dist/esm/elements/is/SwcAppLegend.js.map +0 -7
- package/dist/esm/elements/is/SwcAppLi.js +0 -36
- package/dist/esm/elements/is/SwcAppLi.js.map +0 -7
- package/dist/esm/elements/is/SwcAppLink.js +0 -36
- package/dist/esm/elements/is/SwcAppLink.js.map +0 -7
- package/dist/esm/elements/is/SwcAppMap.js +0 -36
- package/dist/esm/elements/is/SwcAppMap.js.map +0 -7
- package/dist/esm/elements/is/SwcAppMeta.js +0 -36
- package/dist/esm/elements/is/SwcAppMeta.js.map +0 -7
- package/dist/esm/elements/is/SwcAppMeter.js +0 -36
- package/dist/esm/elements/is/SwcAppMeter.js.map +0 -7
- package/dist/esm/elements/is/SwcAppMod.js +0 -36
- package/dist/esm/elements/is/SwcAppMod.js.map +0 -7
- package/dist/esm/elements/is/SwcAppObject.js +0 -36
- package/dist/esm/elements/is/SwcAppObject.js.map +0 -7
- package/dist/esm/elements/is/SwcAppOl.js +0 -36
- package/dist/esm/elements/is/SwcAppOl.js.map +0 -7
- package/dist/esm/elements/is/SwcAppOptGroup.js +0 -36
- package/dist/esm/elements/is/SwcAppOptGroup.js.map +0 -7
- package/dist/esm/elements/is/SwcAppOption.js +0 -36
- package/dist/esm/elements/is/SwcAppOption.js.map +0 -7
- package/dist/esm/elements/is/SwcAppOutput.js +0 -36
- package/dist/esm/elements/is/SwcAppOutput.js.map +0 -7
- package/dist/esm/elements/is/SwcAppParagraph.js +0 -36
- package/dist/esm/elements/is/SwcAppParagraph.js.map +0 -7
- package/dist/esm/elements/is/SwcAppParam.js +0 -36
- package/dist/esm/elements/is/SwcAppParam.js.map +0 -7
- package/dist/esm/elements/is/SwcAppPicture.js +0 -36
- package/dist/esm/elements/is/SwcAppPicture.js.map +0 -7
- package/dist/esm/elements/is/SwcAppPre.js +0 -36
- package/dist/esm/elements/is/SwcAppPre.js.map +0 -7
- package/dist/esm/elements/is/SwcAppProgress.js +0 -36
- package/dist/esm/elements/is/SwcAppProgress.js.map +0 -7
- package/dist/esm/elements/is/SwcAppQuote.js +0 -36
- package/dist/esm/elements/is/SwcAppQuote.js.map +0 -7
- package/dist/esm/elements/is/SwcAppScript.js +0 -36
- package/dist/esm/elements/is/SwcAppScript.js.map +0 -7
- package/dist/esm/elements/is/SwcAppSelect.js +0 -36
- package/dist/esm/elements/is/SwcAppSelect.js.map +0 -7
- package/dist/esm/elements/is/SwcAppSlot.js +0 -36
- package/dist/esm/elements/is/SwcAppSlot.js.map +0 -7
- package/dist/esm/elements/is/SwcAppSource.js +0 -36
- package/dist/esm/elements/is/SwcAppSource.js.map +0 -7
- package/dist/esm/elements/is/SwcAppSpan.js +0 -36
- package/dist/esm/elements/is/SwcAppSpan.js.map +0 -7
- package/dist/esm/elements/is/SwcAppStyle.js +0 -36
- package/dist/esm/elements/is/SwcAppStyle.js.map +0 -7
- package/dist/esm/elements/is/SwcAppTable.js +0 -36
- package/dist/esm/elements/is/SwcAppTable.js.map +0 -7
- package/dist/esm/elements/is/SwcAppTableCell.js +0 -36
- package/dist/esm/elements/is/SwcAppTableCell.js.map +0 -7
- package/dist/esm/elements/is/SwcAppTableRow.js +0 -36
- package/dist/esm/elements/is/SwcAppTableRow.js.map +0 -7
- package/dist/esm/elements/is/SwcAppTableSection.js +0 -36
- package/dist/esm/elements/is/SwcAppTableSection.js.map +0 -7
- package/dist/esm/elements/is/SwcAppTemplate.js +0 -36
- package/dist/esm/elements/is/SwcAppTemplate.js.map +0 -7
- package/dist/esm/elements/is/SwcAppTextArea.js +0 -36
- package/dist/esm/elements/is/SwcAppTextArea.js.map +0 -7
- package/dist/esm/elements/is/SwcAppTime.js +0 -36
- package/dist/esm/elements/is/SwcAppTime.js.map +0 -7
- package/dist/esm/elements/is/SwcAppTitle.js +0 -36
- package/dist/esm/elements/is/SwcAppTitle.js.map +0 -7
- package/dist/esm/elements/is/SwcAppTrack.js +0 -36
- package/dist/esm/elements/is/SwcAppTrack.js.map +0 -7
- package/dist/esm/elements/is/SwcAppUl.js +0 -36
- package/dist/esm/elements/is/SwcAppUl.js.map +0 -7
- package/dist/esm/elements/is/SwcAppVideo.js +0 -36
- package/dist/esm/elements/is/SwcAppVideo.js.map +0 -7
- package/dist/esm/elements/is/index.js +0 -58
- package/dist/esm/elements/is/index.js.map +0 -7
- package/dist/types/elements/SwcApp.d.ts +0 -9
- package/dist/types/elements/SwcApp.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppAnchor.d.ts +0 -9
- package/dist/types/elements/is/SwcAppAnchor.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppArea.d.ts +0 -9
- package/dist/types/elements/is/SwcAppArea.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppAudio.d.ts +0 -9
- package/dist/types/elements/is/SwcAppAudio.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppBase.d.ts +0 -9
- package/dist/types/elements/is/SwcAppBase.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppBody.d.ts +0 -9
- package/dist/types/elements/is/SwcAppBody.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppButton.d.ts +0 -9
- package/dist/types/elements/is/SwcAppButton.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppCanvas.d.ts +0 -9
- package/dist/types/elements/is/SwcAppCanvas.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppData.d.ts +0 -9
- package/dist/types/elements/is/SwcAppData.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppDataList.d.ts +0 -9
- package/dist/types/elements/is/SwcAppDataList.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppDetails.d.ts +0 -9
- package/dist/types/elements/is/SwcAppDetails.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppDialog.d.ts +0 -9
- package/dist/types/elements/is/SwcAppDialog.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppDiv.d.ts +0 -9
- package/dist/types/elements/is/SwcAppDiv.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppDl.d.ts +0 -9
- package/dist/types/elements/is/SwcAppDl.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppEmbed.d.ts +0 -9
- package/dist/types/elements/is/SwcAppEmbed.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppFieldSet.d.ts +0 -9
- package/dist/types/elements/is/SwcAppFieldSet.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppForm.d.ts +0 -9
- package/dist/types/elements/is/SwcAppForm.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppHeading.d.ts +0 -9
- package/dist/types/elements/is/SwcAppHeading.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppHr.d.ts +0 -9
- package/dist/types/elements/is/SwcAppHr.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppIFrame.d.ts +0 -9
- package/dist/types/elements/is/SwcAppIFrame.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppImage.d.ts +0 -9
- package/dist/types/elements/is/SwcAppImage.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppInput.d.ts +0 -9
- package/dist/types/elements/is/SwcAppInput.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppLabel.d.ts +0 -9
- package/dist/types/elements/is/SwcAppLabel.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppLegend.d.ts +0 -9
- package/dist/types/elements/is/SwcAppLegend.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppLi.d.ts +0 -9
- package/dist/types/elements/is/SwcAppLi.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppLink.d.ts +0 -9
- package/dist/types/elements/is/SwcAppLink.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppMap.d.ts +0 -9
- package/dist/types/elements/is/SwcAppMap.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppMeta.d.ts +0 -9
- package/dist/types/elements/is/SwcAppMeta.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppMeter.d.ts +0 -9
- package/dist/types/elements/is/SwcAppMeter.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppMod.d.ts +0 -9
- package/dist/types/elements/is/SwcAppMod.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppObject.d.ts +0 -9
- package/dist/types/elements/is/SwcAppObject.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppOl.d.ts +0 -9
- package/dist/types/elements/is/SwcAppOl.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppOptGroup.d.ts +0 -9
- package/dist/types/elements/is/SwcAppOptGroup.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppOption.d.ts +0 -9
- package/dist/types/elements/is/SwcAppOption.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppOutput.d.ts +0 -9
- package/dist/types/elements/is/SwcAppOutput.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppParagraph.d.ts +0 -9
- package/dist/types/elements/is/SwcAppParagraph.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppParam.d.ts +0 -9
- package/dist/types/elements/is/SwcAppParam.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppPicture.d.ts +0 -9
- package/dist/types/elements/is/SwcAppPicture.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppPre.d.ts +0 -9
- package/dist/types/elements/is/SwcAppPre.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppProgress.d.ts +0 -9
- package/dist/types/elements/is/SwcAppProgress.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppQuote.d.ts +0 -9
- package/dist/types/elements/is/SwcAppQuote.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppScript.d.ts +0 -9
- package/dist/types/elements/is/SwcAppScript.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppSelect.d.ts +0 -9
- package/dist/types/elements/is/SwcAppSelect.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppSlot.d.ts +0 -9
- package/dist/types/elements/is/SwcAppSlot.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppSource.d.ts +0 -9
- package/dist/types/elements/is/SwcAppSource.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppSpan.d.ts +0 -9
- package/dist/types/elements/is/SwcAppSpan.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppStyle.d.ts +0 -9
- package/dist/types/elements/is/SwcAppStyle.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppTable.d.ts +0 -9
- package/dist/types/elements/is/SwcAppTable.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppTableCell.d.ts +0 -9
- package/dist/types/elements/is/SwcAppTableCell.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppTableRow.d.ts +0 -9
- package/dist/types/elements/is/SwcAppTableRow.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppTableSection.d.ts +0 -9
- package/dist/types/elements/is/SwcAppTableSection.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppTemplate.d.ts +0 -9
- package/dist/types/elements/is/SwcAppTemplate.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppTextArea.d.ts +0 -9
- package/dist/types/elements/is/SwcAppTextArea.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppTime.d.ts +0 -9
- package/dist/types/elements/is/SwcAppTime.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppTitle.d.ts +0 -9
- package/dist/types/elements/is/SwcAppTitle.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppTrack.d.ts +0 -9
- package/dist/types/elements/is/SwcAppTrack.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppUl.d.ts +0 -9
- package/dist/types/elements/is/SwcAppUl.d.ts.map +0 -1
- package/dist/types/elements/is/SwcAppVideo.d.ts +0 -9
- package/dist/types/elements/is/SwcAppVideo.d.ts.map +0 -1
- package/dist/types/elements/is/index.d.ts +0 -58
- package/dist/types/elements/is/index.d.ts.map +0 -1
- package/src/elements/SwcApp.ts +0 -26
- package/src/elements/is/SwcAppAnchor.ts +0 -26
- package/src/elements/is/SwcAppArea.ts +0 -26
- package/src/elements/is/SwcAppAudio.ts +0 -26
- package/src/elements/is/SwcAppBase.ts +0 -26
- package/src/elements/is/SwcAppBody.ts +0 -26
- package/src/elements/is/SwcAppButton.ts +0 -26
- package/src/elements/is/SwcAppCanvas.ts +0 -26
- package/src/elements/is/SwcAppData.ts +0 -26
- package/src/elements/is/SwcAppDataList.ts +0 -26
- package/src/elements/is/SwcAppDetails.ts +0 -26
- package/src/elements/is/SwcAppDialog.ts +0 -26
- package/src/elements/is/SwcAppDiv.ts +0 -26
- package/src/elements/is/SwcAppDl.ts +0 -26
- package/src/elements/is/SwcAppEmbed.ts +0 -26
- package/src/elements/is/SwcAppFieldSet.ts +0 -26
- package/src/elements/is/SwcAppForm.ts +0 -26
- package/src/elements/is/SwcAppHeading.ts +0 -26
- package/src/elements/is/SwcAppHr.ts +0 -26
- package/src/elements/is/SwcAppIFrame.ts +0 -26
- package/src/elements/is/SwcAppImage.ts +0 -26
- package/src/elements/is/SwcAppInput.ts +0 -26
- package/src/elements/is/SwcAppLabel.ts +0 -26
- package/src/elements/is/SwcAppLegend.ts +0 -26
- package/src/elements/is/SwcAppLi.ts +0 -26
- package/src/elements/is/SwcAppLink.ts +0 -26
- package/src/elements/is/SwcAppMap.ts +0 -26
- package/src/elements/is/SwcAppMeta.ts +0 -26
- package/src/elements/is/SwcAppMeter.ts +0 -26
- package/src/elements/is/SwcAppMod.ts +0 -26
- package/src/elements/is/SwcAppObject.ts +0 -26
- package/src/elements/is/SwcAppOl.ts +0 -26
- package/src/elements/is/SwcAppOptGroup.ts +0 -26
- package/src/elements/is/SwcAppOption.ts +0 -26
- package/src/elements/is/SwcAppOutput.ts +0 -26
- package/src/elements/is/SwcAppParagraph.ts +0 -26
- package/src/elements/is/SwcAppParam.ts +0 -26
- package/src/elements/is/SwcAppPicture.ts +0 -26
- package/src/elements/is/SwcAppPre.ts +0 -26
- package/src/elements/is/SwcAppProgress.ts +0 -26
- package/src/elements/is/SwcAppQuote.ts +0 -26
- package/src/elements/is/SwcAppScript.ts +0 -26
- package/src/elements/is/SwcAppSelect.ts +0 -26
- package/src/elements/is/SwcAppSlot.ts +0 -26
- package/src/elements/is/SwcAppSource.ts +0 -26
- package/src/elements/is/SwcAppSpan.ts +0 -26
- package/src/elements/is/SwcAppStyle.ts +0 -26
- package/src/elements/is/SwcAppTable.ts +0 -26
- package/src/elements/is/SwcAppTableCell.ts +0 -26
- package/src/elements/is/SwcAppTableRow.ts +0 -26
- package/src/elements/is/SwcAppTableSection.ts +0 -26
- package/src/elements/is/SwcAppTemplate.ts +0 -26
- package/src/elements/is/SwcAppTextArea.ts +0 -26
- package/src/elements/is/SwcAppTime.ts +0 -26
- package/src/elements/is/SwcAppTitle.ts +0 -26
- package/src/elements/is/SwcAppTrack.ts +0 -26
- package/src/elements/is/SwcAppUl.ts +0 -26
- package/src/elements/is/SwcAppVideo.ts +0 -26
- package/src/elements/is/index.ts +0 -57
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
import { SimpleApplication } from '@dooboostore/simple-boot/SimpleApplication';
|
|
2
|
-
import { PathRouter } from '@dooboostore/core-web
|
|
3
|
-
import { HashRouter } from '@dooboostore/core-web
|
|
2
|
+
import { PathRouter } from '@dooboostore/core-web';
|
|
3
|
+
import { HashRouter } from '@dooboostore/core-web';
|
|
4
4
|
import { ElementRouter } from '../router/ElementRouter';
|
|
5
5
|
import { SimOption } from '@dooboostore/simple-boot/SimOption';
|
|
6
|
-
import { Router, RouterEventType } from '@dooboostore/core-web
|
|
7
|
-
import { Subscription } from '@dooboostore/core
|
|
8
|
-
import { ConstructorType,
|
|
9
|
-
import { FunctionUtils } from '@dooboostore/core
|
|
6
|
+
import { Router, RouterEventType } from '@dooboostore/core-web';
|
|
7
|
+
import { Subscription } from '@dooboostore/core';
|
|
8
|
+
import { ConstructorType, OptionalType } from '@dooboostore/core';
|
|
9
|
+
import { FunctionUtils } from '@dooboostore/core';
|
|
10
|
+
import { SwcUtils } from '../utils/Utils';
|
|
10
11
|
|
|
11
12
|
export type SwcConfigType = {
|
|
12
|
-
rootRouter: ConstructorType<any
|
|
13
|
+
rootRouter: ConstructorType<any> | symbol;
|
|
13
14
|
routeType: 'path' | 'hash' | 'element';
|
|
15
|
+
connectMode?: 'direct' | 'swap';
|
|
14
16
|
path?: string;
|
|
15
17
|
window: Window;
|
|
16
18
|
};
|
|
17
19
|
|
|
18
|
-
export type SwcAttributeConfigType =
|
|
20
|
+
export type SwcAttributeConfigType = OptionalType<SwcConfigType, 'routeType' | 'window'>;
|
|
19
21
|
|
|
20
22
|
export class SwcAppEngine {
|
|
21
23
|
public simpleApplication?: SimpleApplication;
|
|
@@ -25,22 +27,35 @@ export class SwcAppEngine {
|
|
|
25
27
|
|
|
26
28
|
constructor(private host: HTMLElement) {}
|
|
27
29
|
|
|
28
|
-
async connect() {
|
|
30
|
+
async connect(config?: SwcAttributeConfigType) {
|
|
29
31
|
if (this._isInitialized) return;
|
|
30
|
-
this._isInitialized = true;
|
|
31
32
|
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
let userConfig = config;
|
|
34
|
+
const win = this.host.ownerDocument?.defaultView || window;
|
|
35
|
+
const Node = (win as any).Node as typeof globalThis.Node;
|
|
36
|
+
if (!userConfig) {
|
|
37
|
+
const configStr = this.host.getAttribute('swc-get-application-config');
|
|
38
|
+
if (configStr) {
|
|
39
|
+
try {
|
|
40
|
+
userConfig = FunctionUtils.executeReturn({
|
|
41
|
+
script: configStr,
|
|
42
|
+
context: this.host,
|
|
43
|
+
args: SwcUtils.getHelperAndHostSet(win, this.host)
|
|
44
|
+
});
|
|
45
|
+
} catch (e) {
|
|
46
|
+
console.error('[SWC-APP-ENGINE] Script execution failed:', e);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
34
50
|
|
|
35
|
-
|
|
36
|
-
|
|
51
|
+
if (!userConfig) return;
|
|
52
|
+
this._isInitialized = true;
|
|
37
53
|
|
|
38
54
|
try {
|
|
39
|
-
|
|
40
|
-
if (userConfig && userConfig.rootRouter) {
|
|
55
|
+
if (userConfig.rootRouter) {
|
|
41
56
|
const _config: SwcConfigType = {
|
|
42
57
|
routeType: 'element',
|
|
43
|
-
window:
|
|
58
|
+
window: win,
|
|
44
59
|
...userConfig
|
|
45
60
|
} as SwcConfigType;
|
|
46
61
|
|
|
@@ -62,6 +77,7 @@ export class SwcAppEngine {
|
|
|
62
77
|
});
|
|
63
78
|
}
|
|
64
79
|
|
|
80
|
+
|
|
65
81
|
// App start
|
|
66
82
|
this.simpleApplication = new SimpleApplication(new SimOption({ excludeProxys: [Node], rootRouter: _config.rootRouter }));
|
|
67
83
|
|
|
@@ -76,7 +92,7 @@ export class SwcAppEngine {
|
|
|
76
92
|
else this.host.replaceChildren(data);
|
|
77
93
|
}
|
|
78
94
|
|
|
79
|
-
if (_config.path)
|
|
95
|
+
if (_config.path) this.router?.go(_config.path);
|
|
80
96
|
}
|
|
81
97
|
} catch (e) {
|
|
82
98
|
console.error('[SWC-APP-ENGINE] Init failed:', e);
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { SwcAppEngine, SwcAttributeConfigType } from './SwcAppEngine';
|
|
2
|
+
|
|
3
|
+
export function SwcAppMixin<T extends { new (...args: any[]): HTMLElement }>(Base: T) {
|
|
4
|
+
return class extends Base {
|
|
5
|
+
__swc_engine = new SwcAppEngine(this as any);
|
|
6
|
+
|
|
7
|
+
get simpleApplication() {
|
|
8
|
+
return this.__swc_engine.simpleApplication;
|
|
9
|
+
}
|
|
10
|
+
get router() {
|
|
11
|
+
return this.__swc_engine.router;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
async connect(config?: SwcAttributeConfigType) {
|
|
15
|
+
const mode = config?.connectMode || 'direct';
|
|
16
|
+
|
|
17
|
+
if (mode !== 'swap') {
|
|
18
|
+
await this.__swc_engine.connect(config);
|
|
19
|
+
this.setAttribute('swc-connect-mode', 'direct');
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const parent = this.parentNode;
|
|
24
|
+
if (!parent) {
|
|
25
|
+
await this.__swc_engine.connect(config);
|
|
26
|
+
this.setAttribute('swc-connect-mode', 'direct');
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const clonedApp = this.cloneNode(true) as any;
|
|
31
|
+
clonedApp.style.display = 'none';
|
|
32
|
+
parent.insertBefore(clonedApp, this.nextSibling);
|
|
33
|
+
|
|
34
|
+
try {
|
|
35
|
+
await clonedApp.connect({ ...(config || {}), connectMode: 'direct' });
|
|
36
|
+
if (this.parentNode) {
|
|
37
|
+
this.parentNode.removeChild(this);
|
|
38
|
+
}
|
|
39
|
+
clonedApp.setAttribute('swc-connect-mode', 'swap');
|
|
40
|
+
clonedApp.style.display = '';
|
|
41
|
+
} catch (e) {
|
|
42
|
+
if (clonedApp.parentNode) {
|
|
43
|
+
clonedApp.parentNode.removeChild(clonedApp);
|
|
44
|
+
}
|
|
45
|
+
throw e;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
connectedCallback() {
|
|
50
|
+
// @ts-ignore
|
|
51
|
+
if (super.connectedCallback) super.connectedCallback();
|
|
52
|
+
this.connect();
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
disconnectedCallback() {
|
|
56
|
+
// @ts-ignore
|
|
57
|
+
if (super.disconnectedCallback) super.disconnectedCallback();
|
|
58
|
+
this.__swc_engine.disconnect();
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
async routing(path: string) {
|
|
62
|
+
await this.__swc_engine.router?.go(path);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
}
|
package/src/elements/SwcAsync.ts
CHANGED
|
@@ -1,162 +1,92 @@
|
|
|
1
|
-
import { elementDefine } from '../decorators/elementDefine';
|
|
2
1
|
import { changedAttribute } from '../decorators/changedAttribute';
|
|
3
2
|
import { SwcUtils } from '../utils/Utils';
|
|
4
|
-
import { FunctionUtils } from '@dooboostore/core
|
|
5
|
-
import { SwcLoading, SwcError, SwcSuccess, SwcDefault } from './SwcSubTemplates';
|
|
3
|
+
import { FunctionUtils } from '@dooboostore/core';
|
|
6
4
|
|
|
7
|
-
@elementDefine({ name: 'swc-async', extends: 'template' })
|
|
8
5
|
export class SwcAsync extends HTMLTemplateElement {
|
|
9
6
|
private _nodes: Node[] = [];
|
|
10
|
-
private _currentPromise: Promise<any> | null = null;
|
|
11
7
|
private _value: any = null;
|
|
12
8
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
set value(nv: any) {
|
|
18
|
-
if (nv instanceof Promise) {
|
|
19
|
-
this.handlePromise(nv);
|
|
20
|
-
} else {
|
|
21
|
-
this._value = nv;
|
|
22
|
-
this.render(nv === null ? 'default' : 'success', nv);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
9
|
+
private _resolvePortal(): Element | null {
|
|
10
|
+
const portalScript = this.getAttribute('on-get-portal');
|
|
11
|
+
if (!portalScript) return this.parentElement;
|
|
25
12
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
if (!this.parentElement) return;
|
|
34
|
-
|
|
35
|
-
const helperHostSet = SwcUtils.getHelperAndHostSet(window, this);
|
|
36
|
-
try {
|
|
37
|
-
const result = FunctionUtils.executeReturn({
|
|
38
|
-
script,
|
|
39
|
-
context: this,
|
|
40
|
-
args: helperHostSet
|
|
41
|
-
});
|
|
13
|
+
const win = this.ownerDocument?.defaultView || window;
|
|
14
|
+
const res = FunctionUtils.executeReturn({
|
|
15
|
+
script: portalScript,
|
|
16
|
+
context: this,
|
|
17
|
+
args: SwcUtils.getHelperAndHostSet(win, this)
|
|
18
|
+
});
|
|
42
19
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
this.value = result;
|
|
47
|
-
}
|
|
48
|
-
} catch (e) {
|
|
49
|
-
this.render('error', e);
|
|
50
|
-
}
|
|
20
|
+
if (res instanceof HTMLElement) return res;
|
|
21
|
+
if (typeof res === 'string') return win.document.querySelector(res);
|
|
22
|
+
return this.parentElement;
|
|
51
23
|
}
|
|
52
24
|
|
|
53
|
-
private
|
|
54
|
-
|
|
55
|
-
|
|
25
|
+
private _executeCloneCallback(attr: string, args: any) {
|
|
26
|
+
const script = this.getAttribute(attr);
|
|
27
|
+
if (!script) return;
|
|
28
|
+
FunctionUtils.execute({ script, context: this, args });
|
|
29
|
+
}
|
|
56
30
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
31
|
+
@changedAttribute('on-get-value')
|
|
32
|
+
private refresh() {
|
|
33
|
+
const script = this.getAttribute('on-get-value');
|
|
34
|
+
if (!script) return;
|
|
35
|
+
const win = this.ownerDocument?.defaultView || window;
|
|
36
|
+
const result = FunctionUtils.executeReturn({ script, context: this, args: SwcUtils.getHelperAndHostSet(win, this) });
|
|
37
|
+
|
|
38
|
+
if (result instanceof Promise) {
|
|
39
|
+
this.render('loading');
|
|
40
|
+
result
|
|
41
|
+
.then(v => {
|
|
42
|
+
this._value = v;
|
|
43
|
+
this.render('success');
|
|
44
|
+
})
|
|
45
|
+
.catch(e => this.render('error'));
|
|
46
|
+
} else {
|
|
60
47
|
this._value = result;
|
|
61
|
-
this.render('success'
|
|
62
|
-
} catch (e) {
|
|
63
|
-
if (this._currentPromise !== promise) return;
|
|
64
|
-
this.render('error', e);
|
|
48
|
+
this.render('success');
|
|
65
49
|
}
|
|
66
50
|
}
|
|
67
51
|
|
|
68
|
-
private render(state:
|
|
52
|
+
private render(state: string) {
|
|
69
53
|
this.cleanup();
|
|
70
|
-
|
|
54
|
+
const portal = this._resolvePortal();
|
|
55
|
+
if (!portal) return;
|
|
56
|
+
|
|
57
|
+
const win = this.ownerDocument?.defaultView || window;
|
|
58
|
+
const helperSet = SwcUtils.getHelperAndHostSet(win, this);
|
|
59
|
+
|
|
60
|
+
const t = this.content.querySelector(`template[is="swc-${state}"]`) as HTMLTemplateElement;
|
|
61
|
+
if (t) {
|
|
62
|
+
const clone = t.content.cloneNode(true) as DocumentFragment;
|
|
63
|
+
this._nodes = Array.from(clone.childNodes);
|
|
64
|
+
const elements = this._nodes.filter(n => n.nodeType === 1) as HTMLElement[];
|
|
65
|
+
const groupArgs = { ...helperSet, $value: this._value, $nodes: this._nodes, $elements: elements, $firstElement: elements[0], $state: state };
|
|
66
|
+
|
|
67
|
+
this._nodes.forEach((n, nodeIdx) => {
|
|
68
|
+
if (n instanceof HTMLElement) (n as any).__swc_host = this;
|
|
69
|
+
this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: n, $nodeIndex: nodeIdx, $isElement: n.nodeType === 1 });
|
|
70
|
+
});
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
const ctx: any = {
|
|
74
|
-
$nodes: [],
|
|
75
|
-
$elements: [],
|
|
76
|
-
$state: state,
|
|
77
|
-
$value: null,
|
|
78
|
-
$error: null
|
|
79
|
-
};
|
|
72
|
+
this._executeCloneCallback('on-clone-nodes', groupArgs);
|
|
80
73
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
fragment = t ? (t.content.cloneNode(true) as DocumentFragment) : document.createDocumentFragment();
|
|
84
|
-
} else if (state === 'loading') {
|
|
85
|
-
const t = this.content.querySelector('template[is="swc-loading"]') as HTMLTemplateElement;
|
|
86
|
-
fragment = t ? (t.content.cloneNode(true) as DocumentFragment) : document.createDocumentFragment();
|
|
87
|
-
} else if (state === 'error') {
|
|
88
|
-
const t = this.content.querySelector('template[is="swc-error"]') as HTMLTemplateElement;
|
|
89
|
-
ctx.$error = data;
|
|
90
|
-
fragment = t ? (t.content.cloneNode(true) as DocumentFragment) : document.createDocumentFragment();
|
|
91
|
-
} else {
|
|
92
|
-
// Success
|
|
93
|
-
const t = this.content.querySelector('template[is="swc-success"]') as HTMLTemplateElement;
|
|
94
|
-
ctx.$value = data;
|
|
95
|
-
if (t) {
|
|
96
|
-
fragment = t.content.cloneNode(true) as DocumentFragment;
|
|
74
|
+
if (portal === this.parentElement) {
|
|
75
|
+
portal.insertBefore(clone, this.nextSibling);
|
|
97
76
|
} else {
|
|
98
|
-
|
|
99
|
-
Array.from(clone.querySelectorAll('template[is="swc-loading"], template[is="swc-error"], template[is="swc-success"], template[is="swc-default"]')).forEach(tmp => tmp.remove());
|
|
100
|
-
fragment = clone;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
this.mount(fragment, ctx);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
private mount(fragment: DocumentFragment, ctx: any) {
|
|
108
|
-
const nodes = Array.from(fragment.childNodes);
|
|
109
|
-
const elements = nodes.filter(n => n.nodeType === 1) as HTMLElement[];
|
|
110
|
-
|
|
111
|
-
Object.assign(ctx, {
|
|
112
|
-
$nodes: nodes,
|
|
113
|
-
$elements: elements,
|
|
114
|
-
$firstNode: nodes[0],
|
|
115
|
-
$lastNode: nodes[nodes.length - 1],
|
|
116
|
-
$firstElement: elements[0],
|
|
117
|
-
$lastElement: elements[elements.length - 1]
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
// Execution Callbacks
|
|
121
|
-
this._executeCallback('on-clone-nodes', ctx);
|
|
122
|
-
nodes.forEach((node, nodeIndex) => {
|
|
123
|
-
if (node instanceof HTMLElement) {
|
|
124
|
-
(node as any).__swc_host = this;
|
|
77
|
+
portal.appendChild(clone);
|
|
125
78
|
}
|
|
126
|
-
this._executeCallback('on-clone-node', {
|
|
127
|
-
...ctx,
|
|
128
|
-
$node: node,
|
|
129
|
-
$nodeIndex: nodeIndex,
|
|
130
|
-
$isElement: node.nodeType === 1
|
|
131
|
-
});
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
this._nodes = nodes;
|
|
135
|
-
this.parentElement?.insertBefore(fragment, this.nextSibling);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
private _executeCallback(attrName: string, extraArgs: Record<string, any>) {
|
|
139
|
-
const script = this.getAttribute(attrName);
|
|
140
|
-
if (!script) return;
|
|
141
|
-
const helperHostSet = SwcUtils.getHelperAndHostSet(window, this);
|
|
142
|
-
try {
|
|
143
|
-
FunctionUtils.execute({ script, context: this, args: { ...helperHostSet, ...extraArgs } });
|
|
144
|
-
} catch (e) {
|
|
145
|
-
console.error(`[SwcAsync] Error in ${attrName}:`, e);
|
|
146
79
|
}
|
|
147
80
|
}
|
|
148
81
|
|
|
149
82
|
private cleanup() {
|
|
150
|
-
this._nodes.forEach(n =>
|
|
151
|
-
if (n.parentElement) n.parentElement.removeChild(n);
|
|
152
|
-
});
|
|
83
|
+
this._nodes.forEach(n => n.parentElement?.removeChild(n));
|
|
153
84
|
this._nodes = [];
|
|
154
85
|
}
|
|
155
86
|
|
|
156
87
|
connectedCallback() {
|
|
157
88
|
this.refresh();
|
|
158
89
|
}
|
|
159
|
-
|
|
160
90
|
disconnectedCallback() {
|
|
161
91
|
this.cleanup();
|
|
162
92
|
}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import { elementDefine } from '../decorators/elementDefine';
|
|
2
1
|
import { changedAttribute } from '../decorators/changedAttribute';
|
|
3
2
|
import { SwcUtils } from '../utils/Utils';
|
|
4
|
-
import { FunctionUtils } from '@dooboostore/core
|
|
5
|
-
import { SwcWhen, SwcOtherwise } from './SwcSubTemplates';
|
|
3
|
+
import { FunctionUtils } from '@dooboostore/core';
|
|
6
4
|
|
|
7
|
-
@elementDefine({ name: 'swc-choose', extends: 'template' })
|
|
8
5
|
export class SwcChoose extends HTMLTemplateElement {
|
|
9
6
|
private _nodes: Node[] = [];
|
|
10
7
|
private _value: any = null;
|
|
@@ -12,115 +9,92 @@ export class SwcChoose extends HTMLTemplateElement {
|
|
|
12
9
|
get value(): any {
|
|
13
10
|
return this._value;
|
|
14
11
|
}
|
|
15
|
-
|
|
16
12
|
set value(nv: any) {
|
|
17
13
|
this._value = nv;
|
|
18
14
|
this.render();
|
|
19
15
|
}
|
|
20
16
|
|
|
21
|
-
private
|
|
22
|
-
const
|
|
17
|
+
private _resolvePortal(): Element | null {
|
|
18
|
+
const portalScript = this.getAttribute('on-get-portal');
|
|
19
|
+
if (!portalScript) return this.parentElement;
|
|
20
|
+
|
|
21
|
+
const win = this.ownerDocument?.defaultView || window;
|
|
22
|
+
const res = FunctionUtils.executeReturn({
|
|
23
|
+
script: portalScript,
|
|
24
|
+
context: this,
|
|
25
|
+
args: SwcUtils.getHelperAndHostSet(win, this)
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
if (res instanceof HTMLElement) return res;
|
|
29
|
+
if (typeof res === 'string') return win.document.querySelector(res);
|
|
30
|
+
return this.parentElement;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
private _executeCloneCallback(attr: string, args: any) {
|
|
34
|
+
const script = this.getAttribute(attr);
|
|
23
35
|
if (!script) return;
|
|
24
|
-
|
|
25
|
-
try {
|
|
26
|
-
FunctionUtils.execute({ script, context: this, args: { ...helperHostSet, ...extraArgs } });
|
|
27
|
-
} catch (e) {
|
|
28
|
-
console.error(`[SwcChoose] Error in ${attrName}:`, e);
|
|
29
|
-
}
|
|
36
|
+
FunctionUtils.execute({ script, context: this, args });
|
|
30
37
|
}
|
|
31
38
|
|
|
32
39
|
@changedAttribute('on-get-value')
|
|
33
|
-
private refresh(
|
|
34
|
-
const script =
|
|
40
|
+
private refresh() {
|
|
41
|
+
const script = this.getAttribute('on-get-value');
|
|
35
42
|
if (!script) {
|
|
36
43
|
this.value = null;
|
|
37
44
|
return;
|
|
38
45
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
try {
|
|
43
|
-
const result = FunctionUtils.executeReturn({
|
|
44
|
-
script,
|
|
45
|
-
context: this,
|
|
46
|
-
args: helperHostSet
|
|
47
|
-
});
|
|
48
|
-
this.value = result;
|
|
49
|
-
} catch (e) {
|
|
50
|
-
console.error('[SwcChoose] Error in on-get-value:', e);
|
|
51
|
-
}
|
|
46
|
+
const win = this.ownerDocument?.defaultView || window;
|
|
47
|
+
const result = FunctionUtils.executeReturn({ script, context: this, args: SwcUtils.getHelperAndHostSet(win, this) });
|
|
48
|
+
this.value = result;
|
|
52
49
|
}
|
|
53
50
|
|
|
54
51
|
private render() {
|
|
55
52
|
this.cleanup();
|
|
56
|
-
|
|
53
|
+
const portal = this._resolvePortal();
|
|
54
|
+
if (!portal) return;
|
|
55
|
+
|
|
56
|
+
const win = this.ownerDocument?.defaultView || window;
|
|
57
|
+
const helperSet = SwcUtils.getHelperAndHostSet(win, this);
|
|
57
58
|
|
|
58
59
|
const templates = Array.from(this.content.querySelectorAll('template'));
|
|
59
60
|
let selected: HTMLTemplateElement | null = null;
|
|
60
|
-
let otherwise: HTMLTemplateElement | null = null;
|
|
61
|
-
let defaultTmp: HTMLTemplateElement | null = null;
|
|
62
|
-
|
|
63
61
|
for (const t of templates) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
if (String(whenVal) === String(this._value)) {
|
|
68
|
-
selected = t;
|
|
69
|
-
break;
|
|
70
|
-
}
|
|
71
|
-
} else if (is === 'swc-otherwise') {
|
|
72
|
-
otherwise = t;
|
|
73
|
-
} else if (is === 'swc-default') {
|
|
74
|
-
defaultTmp = t;
|
|
62
|
+
if (t.getAttribute('is') === 'swc-when' && String(t.getAttribute('value')) === String(this._value)) {
|
|
63
|
+
selected = t;
|
|
64
|
+
break;
|
|
75
65
|
}
|
|
76
66
|
}
|
|
67
|
+
const target = selected || (this.content.querySelector('template[is="swc-otherwise"]') as HTMLTemplateElement);
|
|
68
|
+
|
|
69
|
+
if (target) {
|
|
70
|
+
const clone = target.content.cloneNode(true) as DocumentFragment;
|
|
71
|
+
this._nodes = Array.from(clone.childNodes);
|
|
72
|
+
const elements = this._nodes.filter(n => n.nodeType === 1) as HTMLElement[];
|
|
73
|
+
const groupArgs = { ...helperSet, $value: this._value, $nodes: this._nodes, $elements: elements, $firstElement: elements[0] };
|
|
77
74
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
const nodes = Array.from(clone.childNodes);
|
|
82
|
-
const elements = nodes.filter(n => n.nodeType === 1) as HTMLElement[];
|
|
83
|
-
|
|
84
|
-
const ctx = {
|
|
85
|
-
$value: this._value,
|
|
86
|
-
$nodes: nodes,
|
|
87
|
-
$elements: elements,
|
|
88
|
-
$firstNode: nodes[0],
|
|
89
|
-
$lastNode: nodes[nodes.length - 1],
|
|
90
|
-
$firstElement: elements[0],
|
|
91
|
-
$lastElement: elements[elements.length - 1]
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
// Execution Callbacks
|
|
95
|
-
this._executeCallback('on-clone-nodes', ctx);
|
|
96
|
-
nodes.forEach((node, nodeIndex) => {
|
|
97
|
-
if (node instanceof HTMLElement) {
|
|
98
|
-
(node as any).__swc_host = this;
|
|
99
|
-
}
|
|
100
|
-
this._executeCallback('on-clone-node', {
|
|
101
|
-
...ctx,
|
|
102
|
-
$node: node,
|
|
103
|
-
$nodeIndex: nodeIndex,
|
|
104
|
-
$isElement: node.nodeType === 1
|
|
105
|
-
});
|
|
75
|
+
this._nodes.forEach((n, nodeIdx) => {
|
|
76
|
+
if (n instanceof HTMLElement) (n as any).__swc_host = this;
|
|
77
|
+
this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: n, $nodeIndex: nodeIdx, $isElement: n.nodeType === 1 });
|
|
106
78
|
});
|
|
107
79
|
|
|
108
|
-
this.
|
|
109
|
-
|
|
80
|
+
this._executeCloneCallback('on-clone-nodes', groupArgs);
|
|
81
|
+
|
|
82
|
+
if (portal === this.parentElement) {
|
|
83
|
+
portal.insertBefore(clone, this.nextSibling);
|
|
84
|
+
} else {
|
|
85
|
+
portal.appendChild(clone);
|
|
86
|
+
}
|
|
110
87
|
}
|
|
111
88
|
}
|
|
112
89
|
|
|
113
90
|
private cleanup() {
|
|
114
|
-
this._nodes.forEach(n =>
|
|
115
|
-
if (n.parentElement) n.parentElement.removeChild(n);
|
|
116
|
-
});
|
|
91
|
+
this._nodes.forEach(n => n.parentElement?.removeChild(n));
|
|
117
92
|
this._nodes = [];
|
|
118
93
|
}
|
|
119
94
|
|
|
120
95
|
connectedCallback() {
|
|
121
96
|
this.refresh();
|
|
122
97
|
}
|
|
123
|
-
|
|
124
98
|
disconnectedCallback() {
|
|
125
99
|
this.cleanup();
|
|
126
100
|
}
|