@dooboostore/simple-web-component 1.0.5 → 1.0.6
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 +112 -66
- package/dist/cjs/decorators/addEventListener.js +3 -2
- package/dist/cjs/decorators/addEventListener.js.map +2 -2
- package/dist/cjs/decorators/attribute.js +79 -0
- package/dist/cjs/decorators/attribute.js.map +7 -0
- package/dist/cjs/decorators/elementDefine.js +217 -86
- package/dist/cjs/decorators/elementDefine.js.map +2 -2
- package/dist/cjs/decorators/emitCustomEvent.js +60 -0
- package/dist/cjs/decorators/emitCustomEvent.js.map +7 -0
- package/dist/cjs/decorators/lifecycles.js +38 -0
- package/dist/cjs/decorators/lifecycles.js.map +2 -2
- package/dist/cjs/decorators/state.js +50 -0
- package/dist/cjs/decorators/state.js.map +7 -0
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/is/SwcChooseAnchor.js.map +2 -2
- package/dist/cjs/is/SwcChooseArea.js.map +2 -2
- package/dist/cjs/is/SwcChooseAudio.js.map +2 -2
- package/dist/cjs/is/SwcChooseBase.js.map +2 -2
- package/dist/cjs/is/SwcChooseButton.js.map +2 -2
- package/dist/cjs/is/SwcChooseCanvas.js.map +2 -2
- package/dist/cjs/is/SwcChooseData.js.map +2 -2
- package/dist/cjs/is/SwcChooseDataList.js.map +2 -2
- package/dist/cjs/is/SwcChooseDetails.js.map +2 -2
- package/dist/cjs/is/SwcChooseDialog.js.map +2 -2
- package/dist/cjs/is/SwcChooseDiv.js.map +2 -2
- package/dist/cjs/is/SwcChooseDl.js.map +2 -2
- package/dist/cjs/is/SwcChooseEmbed.js.map +2 -2
- package/dist/cjs/is/SwcChooseFieldSet.js.map +2 -2
- package/dist/cjs/is/SwcChooseForm.js.map +2 -2
- package/dist/cjs/is/SwcChooseHeading.js.map +2 -2
- package/dist/cjs/is/SwcChooseHr.js.map +2 -2
- package/dist/cjs/is/SwcChooseIFrame.js.map +2 -2
- package/dist/cjs/is/SwcChooseImage.js.map +2 -2
- package/dist/cjs/is/SwcChooseInput.js.map +2 -2
- package/dist/cjs/is/SwcChooseLabel.js.map +2 -2
- package/dist/cjs/is/SwcChooseLegend.js.map +2 -2
- package/dist/cjs/is/SwcChooseLi.js.map +2 -2
- package/dist/cjs/is/SwcChooseLink.js.map +2 -2
- package/dist/cjs/is/SwcChooseMap.js.map +2 -2
- package/dist/cjs/is/SwcChooseMeta.js.map +2 -2
- package/dist/cjs/is/SwcChooseMeter.js.map +2 -2
- package/dist/cjs/is/SwcChooseMod.js.map +2 -2
- package/dist/cjs/is/SwcChooseObject.js.map +2 -2
- package/dist/cjs/is/SwcChooseOl.js.map +2 -2
- package/dist/cjs/is/SwcChooseOptGroup.js.map +2 -2
- package/dist/cjs/is/SwcChooseOption.js.map +2 -2
- package/dist/cjs/is/SwcChooseOutput.js.map +2 -2
- package/dist/cjs/is/SwcChooseParagraph.js.map +2 -2
- package/dist/cjs/is/SwcChooseParam.js.map +2 -2
- package/dist/cjs/is/SwcChoosePicture.js.map +2 -2
- package/dist/cjs/is/SwcChoosePre.js.map +2 -2
- package/dist/cjs/is/SwcChooseProgress.js.map +2 -2
- package/dist/cjs/is/SwcChooseQuote.js.map +2 -2
- package/dist/cjs/is/SwcChooseScript.js.map +2 -2
- package/dist/cjs/is/SwcChooseSelect.js.map +2 -2
- package/dist/cjs/is/SwcChooseSlot.js.map +2 -2
- package/dist/cjs/is/SwcChooseSource.js.map +2 -2
- package/dist/cjs/is/SwcChooseSpan.js.map +2 -2
- package/dist/cjs/is/SwcChooseStyle.js.map +2 -2
- package/dist/cjs/is/SwcChooseTable.js.map +2 -2
- package/dist/cjs/is/SwcChooseTableCell.js.map +2 -2
- package/dist/cjs/is/SwcChooseTableRow.js.map +2 -2
- package/dist/cjs/is/SwcChooseTableSection.js.map +2 -2
- package/dist/cjs/is/SwcChooseTemplate.js.map +2 -2
- package/dist/cjs/is/SwcChooseTextArea.js.map +2 -2
- package/dist/cjs/is/SwcChooseTime.js.map +2 -2
- package/dist/cjs/is/SwcChooseTitle.js.map +2 -2
- package/dist/cjs/is/SwcChooseTrack.js.map +2 -2
- package/dist/cjs/is/SwcChooseUl.js.map +2 -2
- package/dist/cjs/is/SwcChooseVideo.js.map +2 -2
- package/dist/cjs/is/SwcIfAnchor.js +1 -1
- package/dist/cjs/is/SwcIfAnchor.js.map +2 -2
- package/dist/cjs/is/SwcIfArea.js +1 -1
- package/dist/cjs/is/SwcIfArea.js.map +2 -2
- package/dist/cjs/is/SwcIfAudio.js +1 -1
- package/dist/cjs/is/SwcIfAudio.js.map +2 -2
- package/dist/cjs/is/SwcIfBase.js +1 -1
- package/dist/cjs/is/SwcIfBase.js.map +2 -2
- package/dist/cjs/is/SwcIfButton.js +1 -1
- package/dist/cjs/is/SwcIfButton.js.map +2 -2
- package/dist/cjs/is/SwcIfCanvas.js +1 -1
- package/dist/cjs/is/SwcIfCanvas.js.map +2 -2
- package/dist/cjs/is/SwcIfData.js +1 -1
- package/dist/cjs/is/SwcIfData.js.map +2 -2
- package/dist/cjs/is/SwcIfDataList.js +1 -1
- package/dist/cjs/is/SwcIfDataList.js.map +2 -2
- package/dist/cjs/is/SwcIfDetails.js +1 -1
- package/dist/cjs/is/SwcIfDetails.js.map +2 -2
- package/dist/cjs/is/SwcIfDialog.js +1 -1
- package/dist/cjs/is/SwcIfDialog.js.map +2 -2
- package/dist/cjs/is/SwcIfDiv.js +1 -1
- package/dist/cjs/is/SwcIfDiv.js.map +2 -2
- package/dist/cjs/is/SwcIfDl.js +1 -1
- package/dist/cjs/is/SwcIfDl.js.map +2 -2
- package/dist/cjs/is/SwcIfEmbed.js +1 -1
- package/dist/cjs/is/SwcIfEmbed.js.map +2 -2
- package/dist/cjs/is/SwcIfFieldSet.js +1 -1
- package/dist/cjs/is/SwcIfFieldSet.js.map +2 -2
- package/dist/cjs/is/SwcIfForm.js +1 -1
- package/dist/cjs/is/SwcIfForm.js.map +2 -2
- package/dist/cjs/is/SwcIfHeading.js +1 -1
- package/dist/cjs/is/SwcIfHeading.js.map +2 -2
- package/dist/cjs/is/SwcIfHr.js +1 -1
- package/dist/cjs/is/SwcIfHr.js.map +2 -2
- package/dist/cjs/is/SwcIfIFrame.js +1 -1
- package/dist/cjs/is/SwcIfIFrame.js.map +2 -2
- package/dist/cjs/is/SwcIfImage.js +1 -1
- package/dist/cjs/is/SwcIfImage.js.map +2 -2
- package/dist/cjs/is/SwcIfInput.js +1 -1
- package/dist/cjs/is/SwcIfInput.js.map +2 -2
- package/dist/cjs/is/SwcIfLabel.js +1 -1
- package/dist/cjs/is/SwcIfLabel.js.map +2 -2
- package/dist/cjs/is/SwcIfLegend.js +1 -1
- package/dist/cjs/is/SwcIfLegend.js.map +2 -2
- package/dist/cjs/is/SwcIfLi.js +1 -1
- package/dist/cjs/is/SwcIfLi.js.map +2 -2
- package/dist/cjs/is/SwcIfLink.js +1 -1
- package/dist/cjs/is/SwcIfLink.js.map +2 -2
- package/dist/cjs/is/SwcIfMap.js +1 -1
- package/dist/cjs/is/SwcIfMap.js.map +2 -2
- package/dist/cjs/is/SwcIfMeta.js +1 -1
- package/dist/cjs/is/SwcIfMeta.js.map +2 -2
- package/dist/cjs/is/SwcIfMeter.js +1 -1
- package/dist/cjs/is/SwcIfMeter.js.map +2 -2
- package/dist/cjs/is/SwcIfMod.js +1 -1
- package/dist/cjs/is/SwcIfMod.js.map +2 -2
- package/dist/cjs/is/SwcIfObject.js +1 -1
- package/dist/cjs/is/SwcIfObject.js.map +2 -2
- package/dist/cjs/is/SwcIfOl.js +1 -1
- package/dist/cjs/is/SwcIfOl.js.map +2 -2
- package/dist/cjs/is/SwcIfOptGroup.js +1 -1
- package/dist/cjs/is/SwcIfOptGroup.js.map +2 -2
- package/dist/cjs/is/SwcIfOption.js +1 -1
- package/dist/cjs/is/SwcIfOption.js.map +2 -2
- package/dist/cjs/is/SwcIfOutput.js +1 -1
- package/dist/cjs/is/SwcIfOutput.js.map +2 -2
- package/dist/cjs/is/SwcIfParagraph.js +1 -1
- package/dist/cjs/is/SwcIfParagraph.js.map +2 -2
- package/dist/cjs/is/SwcIfParam.js +1 -1
- package/dist/cjs/is/SwcIfParam.js.map +2 -2
- package/dist/cjs/is/SwcIfPicture.js +1 -1
- package/dist/cjs/is/SwcIfPicture.js.map +2 -2
- package/dist/cjs/is/SwcIfPre.js +1 -1
- package/dist/cjs/is/SwcIfPre.js.map +2 -2
- package/dist/cjs/is/SwcIfProgress.js +1 -1
- package/dist/cjs/is/SwcIfProgress.js.map +2 -2
- package/dist/cjs/is/SwcIfQuote.js +1 -1
- package/dist/cjs/is/SwcIfQuote.js.map +2 -2
- package/dist/cjs/is/SwcIfScript.js +1 -1
- package/dist/cjs/is/SwcIfScript.js.map +2 -2
- package/dist/cjs/is/SwcIfSelect.js +1 -1
- package/dist/cjs/is/SwcIfSelect.js.map +2 -2
- package/dist/cjs/is/SwcIfSlot.js +1 -1
- package/dist/cjs/is/SwcIfSlot.js.map +2 -2
- package/dist/cjs/is/SwcIfSource.js +1 -1
- package/dist/cjs/is/SwcIfSource.js.map +2 -2
- package/dist/cjs/is/SwcIfSpan.js +1 -1
- package/dist/cjs/is/SwcIfSpan.js.map +2 -2
- package/dist/cjs/is/SwcIfStyle.js +1 -1
- package/dist/cjs/is/SwcIfStyle.js.map +2 -2
- package/dist/cjs/is/SwcIfTable.js +1 -1
- package/dist/cjs/is/SwcIfTable.js.map +2 -2
- package/dist/cjs/is/SwcIfTableCell.js +1 -1
- package/dist/cjs/is/SwcIfTableCell.js.map +2 -2
- package/dist/cjs/is/SwcIfTableRow.js +1 -1
- package/dist/cjs/is/SwcIfTableRow.js.map +2 -2
- package/dist/cjs/is/SwcIfTableSection.js +1 -1
- package/dist/cjs/is/SwcIfTableSection.js.map +2 -2
- package/dist/cjs/is/SwcIfTemplate.js +1 -1
- package/dist/cjs/is/SwcIfTemplate.js.map +2 -2
- package/dist/cjs/is/SwcIfTextArea.js +1 -1
- package/dist/cjs/is/SwcIfTextArea.js.map +2 -2
- package/dist/cjs/is/SwcIfTime.js +1 -1
- package/dist/cjs/is/SwcIfTime.js.map +2 -2
- package/dist/cjs/is/SwcIfTitle.js +1 -1
- package/dist/cjs/is/SwcIfTitle.js.map +2 -2
- package/dist/cjs/is/SwcIfTrack.js +1 -1
- package/dist/cjs/is/SwcIfTrack.js.map +2 -2
- package/dist/cjs/is/SwcIfUl.js +1 -1
- package/dist/cjs/is/SwcIfUl.js.map +2 -2
- package/dist/cjs/is/SwcIfVideo.js +1 -1
- package/dist/cjs/is/SwcIfVideo.js.map +2 -2
- package/dist/cjs/is/SwcOtherAnchor.js.map +2 -2
- package/dist/cjs/is/SwcOtherArea.js.map +2 -2
- package/dist/cjs/is/SwcOtherAudio.js.map +2 -2
- package/dist/cjs/is/SwcOtherBase.js.map +2 -2
- package/dist/cjs/is/SwcOtherButton.js.map +2 -2
- package/dist/cjs/is/SwcOtherCanvas.js.map +2 -2
- package/dist/cjs/is/SwcOtherData.js.map +2 -2
- package/dist/cjs/is/SwcOtherDataList.js.map +2 -2
- package/dist/cjs/is/SwcOtherDetails.js.map +2 -2
- package/dist/cjs/is/SwcOtherDialog.js.map +2 -2
- package/dist/cjs/is/SwcOtherDiv.js.map +2 -2
- package/dist/cjs/is/SwcOtherDl.js.map +2 -2
- package/dist/cjs/is/SwcOtherEmbed.js.map +2 -2
- package/dist/cjs/is/SwcOtherFieldSet.js.map +2 -2
- package/dist/cjs/is/SwcOtherForm.js.map +2 -2
- package/dist/cjs/is/SwcOtherHeading.js.map +2 -2
- package/dist/cjs/is/SwcOtherHr.js.map +2 -2
- package/dist/cjs/is/SwcOtherIFrame.js.map +2 -2
- package/dist/cjs/is/SwcOtherImage.js.map +2 -2
- package/dist/cjs/is/SwcOtherInput.js.map +2 -2
- package/dist/cjs/is/SwcOtherLabel.js.map +2 -2
- package/dist/cjs/is/SwcOtherLegend.js.map +2 -2
- package/dist/cjs/is/SwcOtherLi.js.map +2 -2
- package/dist/cjs/is/SwcOtherLink.js.map +2 -2
- package/dist/cjs/is/SwcOtherMap.js.map +2 -2
- package/dist/cjs/is/SwcOtherMeta.js.map +2 -2
- package/dist/cjs/is/SwcOtherMeter.js.map +2 -2
- package/dist/cjs/is/SwcOtherMod.js.map +2 -2
- package/dist/cjs/is/SwcOtherObject.js.map +2 -2
- package/dist/cjs/is/SwcOtherOl.js.map +2 -2
- package/dist/cjs/is/SwcOtherOptGroup.js.map +2 -2
- package/dist/cjs/is/SwcOtherOption.js.map +2 -2
- package/dist/cjs/is/SwcOtherOutput.js.map +2 -2
- package/dist/cjs/is/SwcOtherParagraph.js.map +2 -2
- package/dist/cjs/is/SwcOtherParam.js.map +2 -2
- package/dist/cjs/is/SwcOtherPicture.js.map +2 -2
- package/dist/cjs/is/SwcOtherPre.js.map +2 -2
- package/dist/cjs/is/SwcOtherProgress.js.map +2 -2
- package/dist/cjs/is/SwcOtherQuote.js.map +2 -2
- package/dist/cjs/is/SwcOtherScript.js.map +2 -2
- package/dist/cjs/is/SwcOtherSelect.js.map +2 -2
- package/dist/cjs/is/SwcOtherSlot.js.map +2 -2
- package/dist/cjs/is/SwcOtherSource.js.map +2 -2
- package/dist/cjs/is/SwcOtherSpan.js.map +2 -2
- package/dist/cjs/is/SwcOtherStyle.js.map +2 -2
- package/dist/cjs/is/SwcOtherTable.js.map +2 -2
- package/dist/cjs/is/SwcOtherTableCell.js.map +2 -2
- package/dist/cjs/is/SwcOtherTableRow.js.map +2 -2
- package/dist/cjs/is/SwcOtherTableSection.js.map +2 -2
- package/dist/cjs/is/SwcOtherTemplate.js.map +2 -2
- package/dist/cjs/is/SwcOtherTextArea.js.map +2 -2
- package/dist/cjs/is/SwcOtherTime.js.map +2 -2
- package/dist/cjs/is/SwcOtherTitle.js.map +2 -2
- package/dist/cjs/is/SwcOtherTrack.js.map +2 -2
- package/dist/cjs/is/SwcOtherUl.js.map +2 -2
- package/dist/cjs/is/SwcOtherVideo.js.map +2 -2
- package/dist/cjs/is/SwcWhenAnchor.js.map +2 -2
- package/dist/cjs/is/SwcWhenArea.js.map +2 -2
- package/dist/cjs/is/SwcWhenAudio.js.map +2 -2
- package/dist/cjs/is/SwcWhenBase.js.map +2 -2
- package/dist/cjs/is/SwcWhenButton.js.map +2 -2
- package/dist/cjs/is/SwcWhenCanvas.js.map +2 -2
- package/dist/cjs/is/SwcWhenData.js.map +2 -2
- package/dist/cjs/is/SwcWhenDataList.js.map +2 -2
- package/dist/cjs/is/SwcWhenDetails.js.map +2 -2
- package/dist/cjs/is/SwcWhenDialog.js.map +2 -2
- package/dist/cjs/is/SwcWhenDiv.js.map +2 -2
- package/dist/cjs/is/SwcWhenDl.js.map +2 -2
- package/dist/cjs/is/SwcWhenEmbed.js.map +2 -2
- package/dist/cjs/is/SwcWhenFieldSet.js.map +2 -2
- package/dist/cjs/is/SwcWhenForm.js.map +2 -2
- package/dist/cjs/is/SwcWhenHeading.js.map +2 -2
- package/dist/cjs/is/SwcWhenHr.js.map +2 -2
- package/dist/cjs/is/SwcWhenIFrame.js.map +2 -2
- package/dist/cjs/is/SwcWhenImage.js.map +2 -2
- package/dist/cjs/is/SwcWhenInput.js.map +2 -2
- package/dist/cjs/is/SwcWhenLabel.js.map +2 -2
- package/dist/cjs/is/SwcWhenLegend.js.map +2 -2
- package/dist/cjs/is/SwcWhenLi.js.map +2 -2
- package/dist/cjs/is/SwcWhenLink.js.map +2 -2
- package/dist/cjs/is/SwcWhenMap.js.map +2 -2
- package/dist/cjs/is/SwcWhenMeta.js.map +2 -2
- package/dist/cjs/is/SwcWhenMeter.js.map +2 -2
- package/dist/cjs/is/SwcWhenMod.js.map +2 -2
- package/dist/cjs/is/SwcWhenObject.js.map +2 -2
- package/dist/cjs/is/SwcWhenOl.js.map +2 -2
- package/dist/cjs/is/SwcWhenOptGroup.js.map +2 -2
- package/dist/cjs/is/SwcWhenOption.js.map +2 -2
- package/dist/cjs/is/SwcWhenOutput.js.map +2 -2
- package/dist/cjs/is/SwcWhenParagraph.js.map +2 -2
- package/dist/cjs/is/SwcWhenParam.js.map +2 -2
- package/dist/cjs/is/SwcWhenPicture.js.map +2 -2
- package/dist/cjs/is/SwcWhenPre.js.map +2 -2
- package/dist/cjs/is/SwcWhenProgress.js.map +2 -2
- package/dist/cjs/is/SwcWhenQuote.js.map +2 -2
- package/dist/cjs/is/SwcWhenScript.js.map +2 -2
- package/dist/cjs/is/SwcWhenSelect.js.map +2 -2
- package/dist/cjs/is/SwcWhenSlot.js.map +2 -2
- package/dist/cjs/is/SwcWhenSource.js.map +2 -2
- package/dist/cjs/is/SwcWhenSpan.js.map +2 -2
- package/dist/cjs/is/SwcWhenStyle.js.map +2 -2
- package/dist/cjs/is/SwcWhenTable.js.map +2 -2
- package/dist/cjs/is/SwcWhenTableCell.js.map +2 -2
- package/dist/cjs/is/SwcWhenTableRow.js.map +2 -2
- package/dist/cjs/is/SwcWhenTableSection.js.map +2 -2
- package/dist/cjs/is/SwcWhenTemplate.js.map +2 -2
- package/dist/cjs/is/SwcWhenTextArea.js.map +2 -2
- package/dist/cjs/is/SwcWhenTime.js.map +2 -2
- package/dist/cjs/is/SwcWhenTitle.js.map +2 -2
- package/dist/cjs/is/SwcWhenTrack.js.map +2 -2
- package/dist/cjs/is/SwcWhenUl.js.map +2 -2
- package/dist/cjs/is/SwcWhenVideo.js.map +2 -2
- package/dist/cjs/utils/Utils.js +49 -17
- package/dist/cjs/utils/Utils.js.map +2 -2
- package/dist/esm/decorators/addEventListener.js +3 -2
- package/dist/esm/decorators/addEventListener.js.map +2 -2
- package/dist/esm/decorators/attribute.js +60 -0
- package/dist/esm/decorators/attribute.js.map +7 -0
- package/dist/esm/decorators/elementDefine.js +218 -87
- package/dist/esm/decorators/elementDefine.js.map +2 -2
- package/dist/esm/decorators/emitCustomEvent.js +41 -0
- package/dist/esm/decorators/emitCustomEvent.js.map +7 -0
- package/dist/esm/decorators/lifecycles.js +38 -0
- package/dist/esm/decorators/lifecycles.js.map +2 -2
- package/dist/esm/decorators/state.js +31 -0
- package/dist/esm/decorators/state.js.map +7 -0
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/is/SwcChooseAnchor.js.map +2 -2
- package/dist/esm/is/SwcChooseArea.js.map +2 -2
- package/dist/esm/is/SwcChooseAudio.js.map +2 -2
- package/dist/esm/is/SwcChooseBase.js.map +2 -2
- package/dist/esm/is/SwcChooseButton.js.map +2 -2
- package/dist/esm/is/SwcChooseCanvas.js.map +2 -2
- package/dist/esm/is/SwcChooseData.js.map +2 -2
- package/dist/esm/is/SwcChooseDataList.js.map +2 -2
- package/dist/esm/is/SwcChooseDetails.js.map +2 -2
- package/dist/esm/is/SwcChooseDialog.js.map +2 -2
- package/dist/esm/is/SwcChooseDiv.js.map +2 -2
- package/dist/esm/is/SwcChooseDl.js.map +2 -2
- package/dist/esm/is/SwcChooseEmbed.js.map +2 -2
- package/dist/esm/is/SwcChooseFieldSet.js.map +2 -2
- package/dist/esm/is/SwcChooseForm.js.map +2 -2
- package/dist/esm/is/SwcChooseHeading.js.map +2 -2
- package/dist/esm/is/SwcChooseHr.js.map +2 -2
- package/dist/esm/is/SwcChooseIFrame.js.map +2 -2
- package/dist/esm/is/SwcChooseImage.js.map +2 -2
- package/dist/esm/is/SwcChooseInput.js.map +2 -2
- package/dist/esm/is/SwcChooseLabel.js.map +2 -2
- package/dist/esm/is/SwcChooseLegend.js.map +2 -2
- package/dist/esm/is/SwcChooseLi.js.map +2 -2
- package/dist/esm/is/SwcChooseLink.js.map +2 -2
- package/dist/esm/is/SwcChooseMap.js.map +2 -2
- package/dist/esm/is/SwcChooseMeta.js.map +2 -2
- package/dist/esm/is/SwcChooseMeter.js.map +2 -2
- package/dist/esm/is/SwcChooseMod.js.map +2 -2
- package/dist/esm/is/SwcChooseObject.js.map +2 -2
- package/dist/esm/is/SwcChooseOl.js.map +2 -2
- package/dist/esm/is/SwcChooseOptGroup.js.map +2 -2
- package/dist/esm/is/SwcChooseOption.js.map +2 -2
- package/dist/esm/is/SwcChooseOutput.js.map +2 -2
- package/dist/esm/is/SwcChooseParagraph.js.map +2 -2
- package/dist/esm/is/SwcChooseParam.js.map +2 -2
- package/dist/esm/is/SwcChoosePicture.js.map +2 -2
- package/dist/esm/is/SwcChoosePre.js.map +2 -2
- package/dist/esm/is/SwcChooseProgress.js.map +2 -2
- package/dist/esm/is/SwcChooseQuote.js.map +2 -2
- package/dist/esm/is/SwcChooseScript.js.map +2 -2
- package/dist/esm/is/SwcChooseSelect.js.map +2 -2
- package/dist/esm/is/SwcChooseSlot.js.map +2 -2
- package/dist/esm/is/SwcChooseSource.js.map +2 -2
- package/dist/esm/is/SwcChooseSpan.js.map +2 -2
- package/dist/esm/is/SwcChooseStyle.js.map +2 -2
- package/dist/esm/is/SwcChooseTable.js.map +2 -2
- package/dist/esm/is/SwcChooseTableCell.js.map +2 -2
- package/dist/esm/is/SwcChooseTableRow.js.map +2 -2
- package/dist/esm/is/SwcChooseTableSection.js.map +2 -2
- package/dist/esm/is/SwcChooseTemplate.js.map +2 -2
- package/dist/esm/is/SwcChooseTextArea.js.map +2 -2
- package/dist/esm/is/SwcChooseTime.js.map +2 -2
- package/dist/esm/is/SwcChooseTitle.js.map +2 -2
- package/dist/esm/is/SwcChooseTrack.js.map +2 -2
- package/dist/esm/is/SwcChooseUl.js.map +2 -2
- package/dist/esm/is/SwcChooseVideo.js.map +2 -2
- package/dist/esm/is/SwcIfAnchor.js +1 -1
- package/dist/esm/is/SwcIfAnchor.js.map +2 -2
- package/dist/esm/is/SwcIfArea.js +1 -1
- package/dist/esm/is/SwcIfArea.js.map +2 -2
- package/dist/esm/is/SwcIfAudio.js +1 -1
- package/dist/esm/is/SwcIfAudio.js.map +2 -2
- package/dist/esm/is/SwcIfBase.js +1 -1
- package/dist/esm/is/SwcIfBase.js.map +2 -2
- package/dist/esm/is/SwcIfButton.js +1 -1
- package/dist/esm/is/SwcIfButton.js.map +2 -2
- package/dist/esm/is/SwcIfCanvas.js +1 -1
- package/dist/esm/is/SwcIfCanvas.js.map +2 -2
- package/dist/esm/is/SwcIfData.js +1 -1
- package/dist/esm/is/SwcIfData.js.map +2 -2
- package/dist/esm/is/SwcIfDataList.js +1 -1
- package/dist/esm/is/SwcIfDataList.js.map +2 -2
- package/dist/esm/is/SwcIfDetails.js +1 -1
- package/dist/esm/is/SwcIfDetails.js.map +2 -2
- package/dist/esm/is/SwcIfDialog.js +1 -1
- package/dist/esm/is/SwcIfDialog.js.map +2 -2
- package/dist/esm/is/SwcIfDiv.js +1 -1
- package/dist/esm/is/SwcIfDiv.js.map +2 -2
- package/dist/esm/is/SwcIfDl.js +1 -1
- package/dist/esm/is/SwcIfDl.js.map +2 -2
- package/dist/esm/is/SwcIfEmbed.js +1 -1
- package/dist/esm/is/SwcIfEmbed.js.map +2 -2
- package/dist/esm/is/SwcIfFieldSet.js +1 -1
- package/dist/esm/is/SwcIfFieldSet.js.map +2 -2
- package/dist/esm/is/SwcIfForm.js +1 -1
- package/dist/esm/is/SwcIfForm.js.map +2 -2
- package/dist/esm/is/SwcIfHeading.js +1 -1
- package/dist/esm/is/SwcIfHeading.js.map +2 -2
- package/dist/esm/is/SwcIfHr.js +1 -1
- package/dist/esm/is/SwcIfHr.js.map +2 -2
- package/dist/esm/is/SwcIfIFrame.js +1 -1
- package/dist/esm/is/SwcIfIFrame.js.map +2 -2
- package/dist/esm/is/SwcIfImage.js +1 -1
- package/dist/esm/is/SwcIfImage.js.map +2 -2
- package/dist/esm/is/SwcIfInput.js +1 -1
- package/dist/esm/is/SwcIfInput.js.map +2 -2
- package/dist/esm/is/SwcIfLabel.js +1 -1
- package/dist/esm/is/SwcIfLabel.js.map +2 -2
- package/dist/esm/is/SwcIfLegend.js +1 -1
- package/dist/esm/is/SwcIfLegend.js.map +2 -2
- package/dist/esm/is/SwcIfLi.js +1 -1
- package/dist/esm/is/SwcIfLi.js.map +2 -2
- package/dist/esm/is/SwcIfLink.js +1 -1
- package/dist/esm/is/SwcIfLink.js.map +2 -2
- package/dist/esm/is/SwcIfMap.js +1 -1
- package/dist/esm/is/SwcIfMap.js.map +2 -2
- package/dist/esm/is/SwcIfMeta.js +1 -1
- package/dist/esm/is/SwcIfMeta.js.map +2 -2
- package/dist/esm/is/SwcIfMeter.js +1 -1
- package/dist/esm/is/SwcIfMeter.js.map +2 -2
- package/dist/esm/is/SwcIfMod.js +1 -1
- package/dist/esm/is/SwcIfMod.js.map +2 -2
- package/dist/esm/is/SwcIfObject.js +1 -1
- package/dist/esm/is/SwcIfObject.js.map +2 -2
- package/dist/esm/is/SwcIfOl.js +1 -1
- package/dist/esm/is/SwcIfOl.js.map +2 -2
- package/dist/esm/is/SwcIfOptGroup.js +1 -1
- package/dist/esm/is/SwcIfOptGroup.js.map +2 -2
- package/dist/esm/is/SwcIfOption.js +1 -1
- package/dist/esm/is/SwcIfOption.js.map +2 -2
- package/dist/esm/is/SwcIfOutput.js +1 -1
- package/dist/esm/is/SwcIfOutput.js.map +2 -2
- package/dist/esm/is/SwcIfParagraph.js +1 -1
- package/dist/esm/is/SwcIfParagraph.js.map +2 -2
- package/dist/esm/is/SwcIfParam.js +1 -1
- package/dist/esm/is/SwcIfParam.js.map +2 -2
- package/dist/esm/is/SwcIfPicture.js +1 -1
- package/dist/esm/is/SwcIfPicture.js.map +2 -2
- package/dist/esm/is/SwcIfPre.js +1 -1
- package/dist/esm/is/SwcIfPre.js.map +2 -2
- package/dist/esm/is/SwcIfProgress.js +1 -1
- package/dist/esm/is/SwcIfProgress.js.map +2 -2
- package/dist/esm/is/SwcIfQuote.js +1 -1
- package/dist/esm/is/SwcIfQuote.js.map +2 -2
- package/dist/esm/is/SwcIfScript.js +1 -1
- package/dist/esm/is/SwcIfScript.js.map +2 -2
- package/dist/esm/is/SwcIfSelect.js +1 -1
- package/dist/esm/is/SwcIfSelect.js.map +2 -2
- package/dist/esm/is/SwcIfSlot.js +1 -1
- package/dist/esm/is/SwcIfSlot.js.map +2 -2
- package/dist/esm/is/SwcIfSource.js +1 -1
- package/dist/esm/is/SwcIfSource.js.map +2 -2
- package/dist/esm/is/SwcIfSpan.js +1 -1
- package/dist/esm/is/SwcIfSpan.js.map +2 -2
- package/dist/esm/is/SwcIfStyle.js +1 -1
- package/dist/esm/is/SwcIfStyle.js.map +2 -2
- package/dist/esm/is/SwcIfTable.js +1 -1
- package/dist/esm/is/SwcIfTable.js.map +2 -2
- package/dist/esm/is/SwcIfTableCell.js +1 -1
- package/dist/esm/is/SwcIfTableCell.js.map +2 -2
- package/dist/esm/is/SwcIfTableRow.js +1 -1
- package/dist/esm/is/SwcIfTableRow.js.map +2 -2
- package/dist/esm/is/SwcIfTableSection.js +1 -1
- package/dist/esm/is/SwcIfTableSection.js.map +2 -2
- package/dist/esm/is/SwcIfTemplate.js +1 -1
- package/dist/esm/is/SwcIfTemplate.js.map +2 -2
- package/dist/esm/is/SwcIfTextArea.js +1 -1
- package/dist/esm/is/SwcIfTextArea.js.map +2 -2
- package/dist/esm/is/SwcIfTime.js +1 -1
- package/dist/esm/is/SwcIfTime.js.map +2 -2
- package/dist/esm/is/SwcIfTitle.js +1 -1
- package/dist/esm/is/SwcIfTitle.js.map +2 -2
- package/dist/esm/is/SwcIfTrack.js +1 -1
- package/dist/esm/is/SwcIfTrack.js.map +2 -2
- package/dist/esm/is/SwcIfUl.js +1 -1
- package/dist/esm/is/SwcIfUl.js.map +2 -2
- package/dist/esm/is/SwcIfVideo.js +1 -1
- package/dist/esm/is/SwcIfVideo.js.map +2 -2
- package/dist/esm/is/SwcOtherAnchor.js.map +2 -2
- package/dist/esm/is/SwcOtherArea.js.map +2 -2
- package/dist/esm/is/SwcOtherAudio.js.map +2 -2
- package/dist/esm/is/SwcOtherBase.js.map +2 -2
- package/dist/esm/is/SwcOtherButton.js.map +2 -2
- package/dist/esm/is/SwcOtherCanvas.js.map +2 -2
- package/dist/esm/is/SwcOtherData.js.map +2 -2
- package/dist/esm/is/SwcOtherDataList.js.map +2 -2
- package/dist/esm/is/SwcOtherDetails.js.map +2 -2
- package/dist/esm/is/SwcOtherDialog.js.map +2 -2
- package/dist/esm/is/SwcOtherDiv.js.map +2 -2
- package/dist/esm/is/SwcOtherDl.js.map +2 -2
- package/dist/esm/is/SwcOtherEmbed.js.map +2 -2
- package/dist/esm/is/SwcOtherFieldSet.js.map +2 -2
- package/dist/esm/is/SwcOtherForm.js.map +2 -2
- package/dist/esm/is/SwcOtherHeading.js.map +2 -2
- package/dist/esm/is/SwcOtherHr.js.map +2 -2
- package/dist/esm/is/SwcOtherIFrame.js.map +2 -2
- package/dist/esm/is/SwcOtherImage.js.map +2 -2
- package/dist/esm/is/SwcOtherInput.js.map +2 -2
- package/dist/esm/is/SwcOtherLabel.js.map +2 -2
- package/dist/esm/is/SwcOtherLegend.js.map +2 -2
- package/dist/esm/is/SwcOtherLi.js.map +2 -2
- package/dist/esm/is/SwcOtherLink.js.map +2 -2
- package/dist/esm/is/SwcOtherMap.js.map +2 -2
- package/dist/esm/is/SwcOtherMeta.js.map +2 -2
- package/dist/esm/is/SwcOtherMeter.js.map +2 -2
- package/dist/esm/is/SwcOtherMod.js.map +2 -2
- package/dist/esm/is/SwcOtherObject.js.map +2 -2
- package/dist/esm/is/SwcOtherOl.js.map +2 -2
- package/dist/esm/is/SwcOtherOptGroup.js.map +2 -2
- package/dist/esm/is/SwcOtherOption.js.map +2 -2
- package/dist/esm/is/SwcOtherOutput.js.map +2 -2
- package/dist/esm/is/SwcOtherParagraph.js.map +2 -2
- package/dist/esm/is/SwcOtherParam.js.map +2 -2
- package/dist/esm/is/SwcOtherPicture.js.map +2 -2
- package/dist/esm/is/SwcOtherPre.js.map +2 -2
- package/dist/esm/is/SwcOtherProgress.js.map +2 -2
- package/dist/esm/is/SwcOtherQuote.js.map +2 -2
- package/dist/esm/is/SwcOtherScript.js.map +2 -2
- package/dist/esm/is/SwcOtherSelect.js.map +2 -2
- package/dist/esm/is/SwcOtherSlot.js.map +2 -2
- package/dist/esm/is/SwcOtherSource.js.map +2 -2
- package/dist/esm/is/SwcOtherSpan.js.map +2 -2
- package/dist/esm/is/SwcOtherStyle.js.map +2 -2
- package/dist/esm/is/SwcOtherTable.js.map +2 -2
- package/dist/esm/is/SwcOtherTableCell.js.map +2 -2
- package/dist/esm/is/SwcOtherTableRow.js.map +2 -2
- package/dist/esm/is/SwcOtherTableSection.js.map +2 -2
- package/dist/esm/is/SwcOtherTemplate.js.map +2 -2
- package/dist/esm/is/SwcOtherTextArea.js.map +2 -2
- package/dist/esm/is/SwcOtherTime.js.map +2 -2
- package/dist/esm/is/SwcOtherTitle.js.map +2 -2
- package/dist/esm/is/SwcOtherTrack.js.map +2 -2
- package/dist/esm/is/SwcOtherUl.js.map +2 -2
- package/dist/esm/is/SwcOtherVideo.js.map +2 -2
- package/dist/esm/is/SwcWhenAnchor.js.map +2 -2
- package/dist/esm/is/SwcWhenArea.js.map +2 -2
- package/dist/esm/is/SwcWhenAudio.js.map +2 -2
- package/dist/esm/is/SwcWhenBase.js.map +2 -2
- package/dist/esm/is/SwcWhenButton.js.map +2 -2
- package/dist/esm/is/SwcWhenCanvas.js.map +2 -2
- package/dist/esm/is/SwcWhenData.js.map +2 -2
- package/dist/esm/is/SwcWhenDataList.js.map +2 -2
- package/dist/esm/is/SwcWhenDetails.js.map +2 -2
- package/dist/esm/is/SwcWhenDialog.js.map +2 -2
- package/dist/esm/is/SwcWhenDiv.js.map +2 -2
- package/dist/esm/is/SwcWhenDl.js.map +2 -2
- package/dist/esm/is/SwcWhenEmbed.js.map +2 -2
- package/dist/esm/is/SwcWhenFieldSet.js.map +2 -2
- package/dist/esm/is/SwcWhenForm.js.map +2 -2
- package/dist/esm/is/SwcWhenHeading.js.map +2 -2
- package/dist/esm/is/SwcWhenHr.js.map +2 -2
- package/dist/esm/is/SwcWhenIFrame.js.map +2 -2
- package/dist/esm/is/SwcWhenImage.js.map +2 -2
- package/dist/esm/is/SwcWhenInput.js.map +2 -2
- package/dist/esm/is/SwcWhenLabel.js.map +2 -2
- package/dist/esm/is/SwcWhenLegend.js.map +2 -2
- package/dist/esm/is/SwcWhenLi.js.map +2 -2
- package/dist/esm/is/SwcWhenLink.js.map +2 -2
- package/dist/esm/is/SwcWhenMap.js.map +2 -2
- package/dist/esm/is/SwcWhenMeta.js.map +2 -2
- package/dist/esm/is/SwcWhenMeter.js.map +2 -2
- package/dist/esm/is/SwcWhenMod.js.map +2 -2
- package/dist/esm/is/SwcWhenObject.js.map +2 -2
- package/dist/esm/is/SwcWhenOl.js.map +2 -2
- package/dist/esm/is/SwcWhenOptGroup.js.map +2 -2
- package/dist/esm/is/SwcWhenOption.js.map +2 -2
- package/dist/esm/is/SwcWhenOutput.js.map +2 -2
- package/dist/esm/is/SwcWhenParagraph.js.map +2 -2
- package/dist/esm/is/SwcWhenParam.js.map +2 -2
- package/dist/esm/is/SwcWhenPicture.js.map +2 -2
- package/dist/esm/is/SwcWhenPre.js.map +2 -2
- package/dist/esm/is/SwcWhenProgress.js.map +2 -2
- package/dist/esm/is/SwcWhenQuote.js.map +2 -2
- package/dist/esm/is/SwcWhenScript.js.map +2 -2
- package/dist/esm/is/SwcWhenSelect.js.map +2 -2
- package/dist/esm/is/SwcWhenSlot.js.map +2 -2
- package/dist/esm/is/SwcWhenSource.js.map +2 -2
- package/dist/esm/is/SwcWhenSpan.js.map +2 -2
- package/dist/esm/is/SwcWhenStyle.js.map +2 -2
- package/dist/esm/is/SwcWhenTable.js.map +2 -2
- package/dist/esm/is/SwcWhenTableCell.js.map +2 -2
- package/dist/esm/is/SwcWhenTableRow.js.map +2 -2
- package/dist/esm/is/SwcWhenTableSection.js.map +2 -2
- package/dist/esm/is/SwcWhenTemplate.js.map +2 -2
- package/dist/esm/is/SwcWhenTextArea.js.map +2 -2
- package/dist/esm/is/SwcWhenTime.js.map +2 -2
- package/dist/esm/is/SwcWhenTitle.js.map +2 -2
- package/dist/esm/is/SwcWhenTrack.js.map +2 -2
- package/dist/esm/is/SwcWhenUl.js.map +2 -2
- package/dist/esm/is/SwcWhenVideo.js.map +2 -2
- package/dist/esm/utils/Utils.js +49 -17
- package/dist/esm/utils/Utils.js.map +2 -2
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +533 -249
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
- package/dist/types/decorators/addEventListener.d.ts +7 -3
- package/dist/types/decorators/addEventListener.d.ts.map +1 -1
- package/dist/types/decorators/attribute.d.ts +13 -0
- package/dist/types/decorators/attribute.d.ts.map +1 -0
- package/dist/types/decorators/elementDefine.d.ts +2 -0
- package/dist/types/decorators/elementDefine.d.ts.map +1 -1
- package/dist/types/decorators/emitCustomEvent.d.ts +15 -0
- package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -0
- package/dist/types/decorators/lifecycles.d.ts +7 -1
- package/dist/types/decorators/lifecycles.d.ts.map +1 -1
- package/dist/types/decorators/state.d.ts +12 -0
- package/dist/types/decorators/state.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/is/SwcChooseAnchor.d.ts.map +1 -1
- package/dist/types/is/SwcChooseArea.d.ts.map +1 -1
- package/dist/types/is/SwcChooseAudio.d.ts.map +1 -1
- package/dist/types/is/SwcChooseBase.d.ts.map +1 -1
- package/dist/types/is/SwcChooseButton.d.ts.map +1 -1
- package/dist/types/is/SwcChooseCanvas.d.ts.map +1 -1
- package/dist/types/is/SwcChooseData.d.ts.map +1 -1
- package/dist/types/is/SwcChooseDataList.d.ts.map +1 -1
- package/dist/types/is/SwcChooseDetails.d.ts.map +1 -1
- package/dist/types/is/SwcChooseDialog.d.ts.map +1 -1
- package/dist/types/is/SwcChooseDiv.d.ts.map +1 -1
- package/dist/types/is/SwcChooseDl.d.ts.map +1 -1
- package/dist/types/is/SwcChooseEmbed.d.ts.map +1 -1
- package/dist/types/is/SwcChooseFieldSet.d.ts.map +1 -1
- package/dist/types/is/SwcChooseForm.d.ts.map +1 -1
- package/dist/types/is/SwcChooseHeading.d.ts.map +1 -1
- package/dist/types/is/SwcChooseHr.d.ts.map +1 -1
- package/dist/types/is/SwcChooseIFrame.d.ts.map +1 -1
- package/dist/types/is/SwcChooseImage.d.ts.map +1 -1
- package/dist/types/is/SwcChooseInput.d.ts.map +1 -1
- package/dist/types/is/SwcChooseLabel.d.ts.map +1 -1
- package/dist/types/is/SwcChooseLegend.d.ts.map +1 -1
- package/dist/types/is/SwcChooseLi.d.ts.map +1 -1
- package/dist/types/is/SwcChooseLink.d.ts.map +1 -1
- package/dist/types/is/SwcChooseMap.d.ts.map +1 -1
- package/dist/types/is/SwcChooseMeta.d.ts.map +1 -1
- package/dist/types/is/SwcChooseMeter.d.ts.map +1 -1
- package/dist/types/is/SwcChooseMod.d.ts.map +1 -1
- package/dist/types/is/SwcChooseObject.d.ts.map +1 -1
- package/dist/types/is/SwcChooseOl.d.ts.map +1 -1
- package/dist/types/is/SwcChooseOptGroup.d.ts.map +1 -1
- package/dist/types/is/SwcChooseOption.d.ts.map +1 -1
- package/dist/types/is/SwcChooseOutput.d.ts.map +1 -1
- package/dist/types/is/SwcChooseParagraph.d.ts.map +1 -1
- package/dist/types/is/SwcChooseParam.d.ts.map +1 -1
- package/dist/types/is/SwcChoosePicture.d.ts.map +1 -1
- package/dist/types/is/SwcChoosePre.d.ts.map +1 -1
- package/dist/types/is/SwcChooseProgress.d.ts.map +1 -1
- package/dist/types/is/SwcChooseQuote.d.ts.map +1 -1
- package/dist/types/is/SwcChooseScript.d.ts.map +1 -1
- package/dist/types/is/SwcChooseSelect.d.ts.map +1 -1
- package/dist/types/is/SwcChooseSlot.d.ts.map +1 -1
- package/dist/types/is/SwcChooseSource.d.ts.map +1 -1
- package/dist/types/is/SwcChooseSpan.d.ts.map +1 -1
- package/dist/types/is/SwcChooseStyle.d.ts.map +1 -1
- package/dist/types/is/SwcChooseTable.d.ts.map +1 -1
- package/dist/types/is/SwcChooseTableCell.d.ts.map +1 -1
- package/dist/types/is/SwcChooseTableRow.d.ts.map +1 -1
- package/dist/types/is/SwcChooseTableSection.d.ts.map +1 -1
- package/dist/types/is/SwcChooseTemplate.d.ts.map +1 -1
- package/dist/types/is/SwcChooseTextArea.d.ts.map +1 -1
- package/dist/types/is/SwcChooseTime.d.ts.map +1 -1
- package/dist/types/is/SwcChooseTitle.d.ts.map +1 -1
- package/dist/types/is/SwcChooseTrack.d.ts.map +1 -1
- package/dist/types/is/SwcChooseUl.d.ts.map +1 -1
- package/dist/types/is/SwcChooseVideo.d.ts.map +1 -1
- package/dist/types/is/SwcIfAnchor.d.ts.map +1 -1
- package/dist/types/is/SwcIfArea.d.ts.map +1 -1
- package/dist/types/is/SwcIfAudio.d.ts.map +1 -1
- package/dist/types/is/SwcIfBase.d.ts.map +1 -1
- package/dist/types/is/SwcIfButton.d.ts.map +1 -1
- package/dist/types/is/SwcIfCanvas.d.ts.map +1 -1
- package/dist/types/is/SwcIfData.d.ts.map +1 -1
- package/dist/types/is/SwcIfDataList.d.ts.map +1 -1
- package/dist/types/is/SwcIfDetails.d.ts.map +1 -1
- package/dist/types/is/SwcIfDialog.d.ts.map +1 -1
- package/dist/types/is/SwcIfDiv.d.ts.map +1 -1
- package/dist/types/is/SwcIfDl.d.ts.map +1 -1
- package/dist/types/is/SwcIfEmbed.d.ts.map +1 -1
- package/dist/types/is/SwcIfFieldSet.d.ts.map +1 -1
- package/dist/types/is/SwcIfForm.d.ts.map +1 -1
- package/dist/types/is/SwcIfHeading.d.ts.map +1 -1
- package/dist/types/is/SwcIfHr.d.ts.map +1 -1
- package/dist/types/is/SwcIfIFrame.d.ts.map +1 -1
- package/dist/types/is/SwcIfImage.d.ts.map +1 -1
- package/dist/types/is/SwcIfInput.d.ts.map +1 -1
- package/dist/types/is/SwcIfLabel.d.ts.map +1 -1
- package/dist/types/is/SwcIfLegend.d.ts.map +1 -1
- package/dist/types/is/SwcIfLi.d.ts.map +1 -1
- package/dist/types/is/SwcIfLink.d.ts.map +1 -1
- package/dist/types/is/SwcIfMap.d.ts.map +1 -1
- package/dist/types/is/SwcIfMeta.d.ts.map +1 -1
- package/dist/types/is/SwcIfMeter.d.ts.map +1 -1
- package/dist/types/is/SwcIfMod.d.ts.map +1 -1
- package/dist/types/is/SwcIfObject.d.ts.map +1 -1
- package/dist/types/is/SwcIfOl.d.ts.map +1 -1
- package/dist/types/is/SwcIfOptGroup.d.ts.map +1 -1
- package/dist/types/is/SwcIfOption.d.ts.map +1 -1
- package/dist/types/is/SwcIfOutput.d.ts.map +1 -1
- package/dist/types/is/SwcIfParagraph.d.ts.map +1 -1
- package/dist/types/is/SwcIfParam.d.ts.map +1 -1
- package/dist/types/is/SwcIfPicture.d.ts.map +1 -1
- package/dist/types/is/SwcIfPre.d.ts.map +1 -1
- package/dist/types/is/SwcIfProgress.d.ts.map +1 -1
- package/dist/types/is/SwcIfQuote.d.ts.map +1 -1
- package/dist/types/is/SwcIfScript.d.ts.map +1 -1
- package/dist/types/is/SwcIfSelect.d.ts.map +1 -1
- package/dist/types/is/SwcIfSlot.d.ts.map +1 -1
- package/dist/types/is/SwcIfSource.d.ts.map +1 -1
- package/dist/types/is/SwcIfSpan.d.ts.map +1 -1
- package/dist/types/is/SwcIfStyle.d.ts.map +1 -1
- package/dist/types/is/SwcIfTable.d.ts.map +1 -1
- package/dist/types/is/SwcIfTableCell.d.ts.map +1 -1
- package/dist/types/is/SwcIfTableRow.d.ts.map +1 -1
- package/dist/types/is/SwcIfTableSection.d.ts.map +1 -1
- package/dist/types/is/SwcIfTemplate.d.ts.map +1 -1
- package/dist/types/is/SwcIfTextArea.d.ts.map +1 -1
- package/dist/types/is/SwcIfTime.d.ts.map +1 -1
- package/dist/types/is/SwcIfTitle.d.ts.map +1 -1
- package/dist/types/is/SwcIfTrack.d.ts.map +1 -1
- package/dist/types/is/SwcIfUl.d.ts.map +1 -1
- package/dist/types/is/SwcIfVideo.d.ts.map +1 -1
- package/dist/types/is/SwcWhenAnchor.d.ts.map +1 -1
- package/dist/types/is/SwcWhenArea.d.ts.map +1 -1
- package/dist/types/is/SwcWhenAudio.d.ts.map +1 -1
- package/dist/types/is/SwcWhenBase.d.ts.map +1 -1
- package/dist/types/is/SwcWhenButton.d.ts.map +1 -1
- package/dist/types/is/SwcWhenCanvas.d.ts.map +1 -1
- package/dist/types/is/SwcWhenData.d.ts.map +1 -1
- package/dist/types/is/SwcWhenDataList.d.ts.map +1 -1
- package/dist/types/is/SwcWhenDetails.d.ts.map +1 -1
- package/dist/types/is/SwcWhenDialog.d.ts.map +1 -1
- package/dist/types/is/SwcWhenDiv.d.ts.map +1 -1
- package/dist/types/is/SwcWhenDl.d.ts.map +1 -1
- package/dist/types/is/SwcWhenEmbed.d.ts.map +1 -1
- package/dist/types/is/SwcWhenFieldSet.d.ts.map +1 -1
- package/dist/types/is/SwcWhenForm.d.ts.map +1 -1
- package/dist/types/is/SwcWhenHeading.d.ts.map +1 -1
- package/dist/types/is/SwcWhenHr.d.ts.map +1 -1
- package/dist/types/is/SwcWhenIFrame.d.ts.map +1 -1
- package/dist/types/is/SwcWhenImage.d.ts.map +1 -1
- package/dist/types/is/SwcWhenInput.d.ts.map +1 -1
- package/dist/types/is/SwcWhenLabel.d.ts.map +1 -1
- package/dist/types/is/SwcWhenLegend.d.ts.map +1 -1
- package/dist/types/is/SwcWhenLi.d.ts.map +1 -1
- package/dist/types/is/SwcWhenLink.d.ts.map +1 -1
- package/dist/types/is/SwcWhenMap.d.ts.map +1 -1
- package/dist/types/is/SwcWhenMeta.d.ts.map +1 -1
- package/dist/types/is/SwcWhenMeter.d.ts.map +1 -1
- package/dist/types/is/SwcWhenMod.d.ts.map +1 -1
- package/dist/types/is/SwcWhenObject.d.ts.map +1 -1
- package/dist/types/is/SwcWhenOl.d.ts.map +1 -1
- package/dist/types/is/SwcWhenOptGroup.d.ts.map +1 -1
- package/dist/types/is/SwcWhenOption.d.ts.map +1 -1
- package/dist/types/is/SwcWhenOutput.d.ts.map +1 -1
- package/dist/types/is/SwcWhenParagraph.d.ts.map +1 -1
- package/dist/types/is/SwcWhenParam.d.ts.map +1 -1
- package/dist/types/is/SwcWhenPicture.d.ts.map +1 -1
- package/dist/types/is/SwcWhenPre.d.ts.map +1 -1
- package/dist/types/is/SwcWhenProgress.d.ts.map +1 -1
- package/dist/types/is/SwcWhenQuote.d.ts.map +1 -1
- package/dist/types/is/SwcWhenScript.d.ts.map +1 -1
- package/dist/types/is/SwcWhenSelect.d.ts.map +1 -1
- package/dist/types/is/SwcWhenSlot.d.ts.map +1 -1
- package/dist/types/is/SwcWhenSource.d.ts.map +1 -1
- package/dist/types/is/SwcWhenSpan.d.ts.map +1 -1
- package/dist/types/is/SwcWhenStyle.d.ts.map +1 -1
- package/dist/types/is/SwcWhenTable.d.ts.map +1 -1
- package/dist/types/is/SwcWhenTableCell.d.ts.map +1 -1
- package/dist/types/is/SwcWhenTableRow.d.ts.map +1 -1
- package/dist/types/is/SwcWhenTableSection.d.ts.map +1 -1
- package/dist/types/is/SwcWhenTemplate.d.ts.map +1 -1
- package/dist/types/is/SwcWhenTextArea.d.ts.map +1 -1
- package/dist/types/is/SwcWhenTime.d.ts.map +1 -1
- package/dist/types/is/SwcWhenTitle.d.ts.map +1 -1
- package/dist/types/is/SwcWhenTrack.d.ts.map +1 -1
- package/dist/types/is/SwcWhenUl.d.ts.map +1 -1
- package/dist/types/is/SwcWhenVideo.d.ts.map +1 -1
- package/dist/types/utils/Utils.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +533 -249
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
- package/package.json +1 -1
- package/src/decorators/addEventListener.ts +10 -4
- package/src/decorators/attribute.ts +77 -0
- package/src/decorators/elementDefine.ts +222 -131
- package/src/decorators/emitCustomEvent.ts +57 -0
- package/src/decorators/lifecycles.ts +44 -4
- package/src/decorators/state.ts +44 -0
- package/src/index.ts +3 -1
- package/src/is/SwcChooseAnchor.ts +0 -1
- package/src/is/SwcChooseArea.ts +0 -1
- package/src/is/SwcChooseAudio.ts +0 -1
- package/src/is/SwcChooseBase.ts +0 -1
- package/src/is/SwcChooseButton.ts +0 -1
- package/src/is/SwcChooseCanvas.ts +0 -1
- package/src/is/SwcChooseData.ts +0 -1
- package/src/is/SwcChooseDataList.ts +0 -1
- package/src/is/SwcChooseDetails.ts +0 -1
- package/src/is/SwcChooseDialog.ts +0 -1
- package/src/is/SwcChooseDiv.ts +0 -1
- package/src/is/SwcChooseDl.ts +0 -1
- package/src/is/SwcChooseEmbed.ts +0 -1
- package/src/is/SwcChooseFieldSet.ts +0 -1
- package/src/is/SwcChooseForm.ts +0 -1
- package/src/is/SwcChooseHeading.ts +0 -1
- package/src/is/SwcChooseHr.ts +0 -1
- package/src/is/SwcChooseIFrame.ts +0 -1
- package/src/is/SwcChooseImage.ts +0 -1
- package/src/is/SwcChooseInput.ts +0 -1
- package/src/is/SwcChooseLabel.ts +0 -1
- package/src/is/SwcChooseLegend.ts +0 -1
- package/src/is/SwcChooseLi.ts +0 -1
- package/src/is/SwcChooseLink.ts +0 -1
- package/src/is/SwcChooseMap.ts +0 -1
- package/src/is/SwcChooseMeta.ts +0 -1
- package/src/is/SwcChooseMeter.ts +0 -1
- package/src/is/SwcChooseMod.ts +0 -1
- package/src/is/SwcChooseObject.ts +0 -1
- package/src/is/SwcChooseOl.ts +0 -1
- package/src/is/SwcChooseOptGroup.ts +0 -1
- package/src/is/SwcChooseOption.ts +0 -1
- package/src/is/SwcChooseOutput.ts +0 -1
- package/src/is/SwcChooseParagraph.ts +0 -1
- package/src/is/SwcChooseParam.ts +0 -1
- package/src/is/SwcChoosePicture.ts +0 -1
- package/src/is/SwcChoosePre.ts +0 -1
- package/src/is/SwcChooseProgress.ts +0 -1
- package/src/is/SwcChooseQuote.ts +0 -1
- package/src/is/SwcChooseScript.ts +0 -1
- package/src/is/SwcChooseSelect.ts +0 -1
- package/src/is/SwcChooseSlot.ts +0 -1
- package/src/is/SwcChooseSource.ts +0 -1
- package/src/is/SwcChooseSpan.ts +0 -1
- package/src/is/SwcChooseStyle.ts +0 -1
- package/src/is/SwcChooseTable.ts +0 -1
- package/src/is/SwcChooseTableCell.ts +0 -1
- package/src/is/SwcChooseTableRow.ts +0 -1
- package/src/is/SwcChooseTableSection.ts +0 -1
- package/src/is/SwcChooseTemplate.ts +0 -1
- package/src/is/SwcChooseTextArea.ts +0 -1
- package/src/is/SwcChooseTime.ts +0 -1
- package/src/is/SwcChooseTitle.ts +0 -1
- package/src/is/SwcChooseTrack.ts +0 -1
- package/src/is/SwcChooseUl.ts +0 -1
- package/src/is/SwcChooseVideo.ts +0 -1
- package/src/is/SwcIfAnchor.ts +1 -2
- package/src/is/SwcIfArea.ts +1 -2
- package/src/is/SwcIfAudio.ts +1 -2
- package/src/is/SwcIfBase.ts +1 -2
- package/src/is/SwcIfButton.ts +1 -2
- package/src/is/SwcIfCanvas.ts +1 -2
- package/src/is/SwcIfData.ts +1 -2
- package/src/is/SwcIfDataList.ts +1 -2
- package/src/is/SwcIfDetails.ts +1 -2
- package/src/is/SwcIfDialog.ts +1 -2
- package/src/is/SwcIfDiv.ts +1 -2
- package/src/is/SwcIfDl.ts +1 -2
- package/src/is/SwcIfEmbed.ts +1 -2
- package/src/is/SwcIfFieldSet.ts +1 -2
- package/src/is/SwcIfForm.ts +1 -2
- package/src/is/SwcIfHeading.ts +1 -2
- package/src/is/SwcIfHr.ts +1 -2
- package/src/is/SwcIfIFrame.ts +1 -2
- package/src/is/SwcIfImage.ts +1 -2
- package/src/is/SwcIfInput.ts +1 -2
- package/src/is/SwcIfLabel.ts +1 -2
- package/src/is/SwcIfLegend.ts +1 -2
- package/src/is/SwcIfLi.ts +1 -2
- package/src/is/SwcIfLink.ts +1 -2
- package/src/is/SwcIfMap.ts +1 -2
- package/src/is/SwcIfMeta.ts +1 -2
- package/src/is/SwcIfMeter.ts +1 -2
- package/src/is/SwcIfMod.ts +1 -2
- package/src/is/SwcIfObject.ts +1 -2
- package/src/is/SwcIfOl.ts +1 -2
- package/src/is/SwcIfOptGroup.ts +1 -2
- package/src/is/SwcIfOption.ts +1 -2
- package/src/is/SwcIfOutput.ts +1 -2
- package/src/is/SwcIfParagraph.ts +1 -2
- package/src/is/SwcIfParam.ts +1 -2
- package/src/is/SwcIfPicture.ts +1 -2
- package/src/is/SwcIfPre.ts +1 -2
- package/src/is/SwcIfProgress.ts +1 -2
- package/src/is/SwcIfQuote.ts +1 -2
- package/src/is/SwcIfScript.ts +1 -2
- package/src/is/SwcIfSelect.ts +1 -2
- package/src/is/SwcIfSlot.ts +1 -2
- package/src/is/SwcIfSource.ts +1 -2
- package/src/is/SwcIfSpan.ts +1 -2
- package/src/is/SwcIfStyle.ts +1 -2
- package/src/is/SwcIfTable.ts +1 -2
- package/src/is/SwcIfTableCell.ts +1 -2
- package/src/is/SwcIfTableRow.ts +1 -2
- package/src/is/SwcIfTableSection.ts +1 -2
- package/src/is/SwcIfTemplate.ts +1 -2
- package/src/is/SwcIfTextArea.ts +1 -2
- package/src/is/SwcIfTime.ts +1 -2
- package/src/is/SwcIfTitle.ts +1 -2
- package/src/is/SwcIfTrack.ts +1 -2
- package/src/is/SwcIfUl.ts +1 -2
- package/src/is/SwcIfVideo.ts +1 -2
- package/src/is/SwcOtherAnchor.ts +1 -1
- package/src/is/SwcOtherArea.ts +1 -1
- package/src/is/SwcOtherAudio.ts +1 -1
- package/src/is/SwcOtherBase.ts +1 -1
- package/src/is/SwcOtherButton.ts +1 -1
- package/src/is/SwcOtherCanvas.ts +1 -1
- package/src/is/SwcOtherData.ts +1 -1
- package/src/is/SwcOtherDataList.ts +1 -1
- package/src/is/SwcOtherDetails.ts +1 -1
- package/src/is/SwcOtherDialog.ts +1 -1
- package/src/is/SwcOtherDiv.ts +1 -1
- package/src/is/SwcOtherDl.ts +1 -1
- package/src/is/SwcOtherEmbed.ts +1 -1
- package/src/is/SwcOtherFieldSet.ts +1 -1
- package/src/is/SwcOtherForm.ts +1 -1
- package/src/is/SwcOtherHeading.ts +1 -1
- package/src/is/SwcOtherHr.ts +1 -1
- package/src/is/SwcOtherIFrame.ts +1 -1
- package/src/is/SwcOtherImage.ts +1 -1
- package/src/is/SwcOtherInput.ts +1 -1
- package/src/is/SwcOtherLabel.ts +1 -1
- package/src/is/SwcOtherLegend.ts +1 -1
- package/src/is/SwcOtherLi.ts +1 -1
- package/src/is/SwcOtherLink.ts +1 -1
- package/src/is/SwcOtherMap.ts +1 -1
- package/src/is/SwcOtherMeta.ts +1 -1
- package/src/is/SwcOtherMeter.ts +1 -1
- package/src/is/SwcOtherMod.ts +1 -1
- package/src/is/SwcOtherObject.ts +1 -1
- package/src/is/SwcOtherOl.ts +1 -1
- package/src/is/SwcOtherOptGroup.ts +1 -1
- package/src/is/SwcOtherOption.ts +1 -1
- package/src/is/SwcOtherOutput.ts +1 -1
- package/src/is/SwcOtherParagraph.ts +1 -1
- package/src/is/SwcOtherParam.ts +1 -1
- package/src/is/SwcOtherPicture.ts +1 -1
- package/src/is/SwcOtherPre.ts +1 -1
- package/src/is/SwcOtherProgress.ts +1 -1
- package/src/is/SwcOtherQuote.ts +1 -1
- package/src/is/SwcOtherScript.ts +1 -1
- package/src/is/SwcOtherSelect.ts +1 -1
- package/src/is/SwcOtherSlot.ts +1 -1
- package/src/is/SwcOtherSource.ts +1 -1
- package/src/is/SwcOtherSpan.ts +1 -1
- package/src/is/SwcOtherStyle.ts +1 -1
- package/src/is/SwcOtherTable.ts +1 -1
- package/src/is/SwcOtherTableCell.ts +1 -1
- package/src/is/SwcOtherTableRow.ts +1 -1
- package/src/is/SwcOtherTableSection.ts +1 -1
- package/src/is/SwcOtherTemplate.ts +1 -1
- package/src/is/SwcOtherTextArea.ts +1 -1
- package/src/is/SwcOtherTime.ts +1 -1
- package/src/is/SwcOtherTitle.ts +1 -1
- package/src/is/SwcOtherTrack.ts +1 -1
- package/src/is/SwcOtherUl.ts +1 -1
- package/src/is/SwcOtherVideo.ts +1 -1
- package/src/is/SwcWhenAnchor.ts +1 -3
- package/src/is/SwcWhenArea.ts +1 -3
- package/src/is/SwcWhenAudio.ts +1 -3
- package/src/is/SwcWhenBase.ts +1 -3
- package/src/is/SwcWhenButton.ts +1 -3
- package/src/is/SwcWhenCanvas.ts +1 -3
- package/src/is/SwcWhenData.ts +1 -3
- package/src/is/SwcWhenDataList.ts +1 -3
- package/src/is/SwcWhenDetails.ts +1 -3
- package/src/is/SwcWhenDialog.ts +1 -3
- package/src/is/SwcWhenDiv.ts +1 -3
- package/src/is/SwcWhenDl.ts +1 -3
- package/src/is/SwcWhenEmbed.ts +1 -3
- package/src/is/SwcWhenFieldSet.ts +1 -3
- package/src/is/SwcWhenForm.ts +1 -3
- package/src/is/SwcWhenHeading.ts +1 -3
- package/src/is/SwcWhenHr.ts +1 -3
- package/src/is/SwcWhenIFrame.ts +1 -3
- package/src/is/SwcWhenImage.ts +1 -3
- package/src/is/SwcWhenInput.ts +1 -3
- package/src/is/SwcWhenLabel.ts +1 -3
- package/src/is/SwcWhenLegend.ts +1 -3
- package/src/is/SwcWhenLi.ts +1 -3
- package/src/is/SwcWhenLink.ts +1 -3
- package/src/is/SwcWhenMap.ts +1 -3
- package/src/is/SwcWhenMeta.ts +1 -3
- package/src/is/SwcWhenMeter.ts +1 -3
- package/src/is/SwcWhenMod.ts +1 -3
- package/src/is/SwcWhenObject.ts +1 -3
- package/src/is/SwcWhenOl.ts +1 -3
- package/src/is/SwcWhenOptGroup.ts +1 -3
- package/src/is/SwcWhenOption.ts +1 -3
- package/src/is/SwcWhenOutput.ts +1 -3
- package/src/is/SwcWhenParagraph.ts +1 -3
- package/src/is/SwcWhenParam.ts +1 -3
- package/src/is/SwcWhenPicture.ts +1 -3
- package/src/is/SwcWhenPre.ts +1 -3
- package/src/is/SwcWhenProgress.ts +1 -3
- package/src/is/SwcWhenQuote.ts +1 -3
- package/src/is/SwcWhenScript.ts +1 -3
- package/src/is/SwcWhenSelect.ts +1 -3
- package/src/is/SwcWhenSlot.ts +1 -3
- package/src/is/SwcWhenSource.ts +1 -3
- package/src/is/SwcWhenSpan.ts +1 -3
- package/src/is/SwcWhenStyle.ts +1 -3
- package/src/is/SwcWhenTable.ts +1 -3
- package/src/is/SwcWhenTableCell.ts +1 -3
- package/src/is/SwcWhenTableRow.ts +1 -3
- package/src/is/SwcWhenTableSection.ts +1 -3
- package/src/is/SwcWhenTemplate.ts +1 -3
- package/src/is/SwcWhenTextArea.ts +1 -3
- package/src/is/SwcWhenTime.ts +1 -3
- package/src/is/SwcWhenTitle.ts +1 -3
- package/src/is/SwcWhenTrack.ts +1 -3
- package/src/is/SwcWhenUl.ts +1 -3
- package/src/is/SwcWhenVideo.ts +1 -3
- package/src/utils/Utils.ts +65 -22
- package/dist/cjs/decorators/attributeChanged.js +0 -62
- package/dist/cjs/decorators/attributeChanged.js.map +0 -7
- package/dist/esm/decorators/attributeChanged.js +0 -43
- package/dist/esm/decorators/attributeChanged.js.map +0 -7
- package/dist/types/decorators/attributeChanged.d.ts +0 -6
- package/dist/types/decorators/attributeChanged.d.ts.map +0 -1
- package/src/decorators/attributeChanged.ts +0 -43
package/package.json
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';
|
|
2
2
|
|
|
3
3
|
export interface AddEventListenerOptions extends EventListenerOptions {
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
query?: string;
|
|
5
|
+
type: string;
|
|
6
6
|
useShadow?: boolean;
|
|
7
7
|
capture?: boolean;
|
|
8
8
|
once?: boolean;
|
|
9
9
|
passive?: boolean;
|
|
10
|
+
stopPropagation?: boolean;
|
|
11
|
+
stopImmediatePropagation?: boolean;
|
|
12
|
+
preventDefault?: boolean;
|
|
10
13
|
}
|
|
11
14
|
|
|
12
15
|
export interface AddEventListenerMetadata {
|
|
@@ -16,9 +19,12 @@ export interface AddEventListenerMetadata {
|
|
|
16
19
|
|
|
17
20
|
export const ADD_EVENT_LISTENER_METADATA_KEY = Symbol('simple-web-component:add-event-listener');
|
|
18
21
|
|
|
19
|
-
export
|
|
22
|
+
export function addEventListener(type: string, query?: string): MethodDecorator;
|
|
23
|
+
export function addEventListener(options: AddEventListenerOptions): MethodDecorator;
|
|
24
|
+
export function addEventListener(arg1: string | AddEventListenerOptions, arg2?: string): MethodDecorator {
|
|
20
25
|
return (target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {
|
|
21
26
|
const constructor = target.constructor;
|
|
27
|
+
const options: AddEventListenerOptions = typeof arg1 === 'string' ? { type: arg1, query: arg2 } : arg1;
|
|
22
28
|
|
|
23
29
|
let listeners = ReflectUtils.getMetadata<AddEventListenerMetadata[]>(ADD_EVENT_LISTENER_METADATA_KEY, constructor);
|
|
24
30
|
if (!listeners) {
|
|
@@ -27,7 +33,7 @@ export const addEventListener = (options: AddEventListenerOptions): MethodDecora
|
|
|
27
33
|
}
|
|
28
34
|
listeners.push({ options, propertyKey });
|
|
29
35
|
};
|
|
30
|
-
}
|
|
36
|
+
}
|
|
31
37
|
|
|
32
38
|
export const getAddEventListenerMetadata = (target: any): AddEventListenerMetadata[] | undefined => {
|
|
33
39
|
const constructor = target instanceof Function ? target : target.constructor;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';
|
|
2
|
+
|
|
3
|
+
export interface AttributeOptions {
|
|
4
|
+
name?: string;
|
|
5
|
+
type?: any; // String, Number, Boolean, Object
|
|
6
|
+
disableReflect?: boolean; // Default is false (reflect is enabled by default)
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface AttributeMetadata {
|
|
10
|
+
propertyKey: string | symbol;
|
|
11
|
+
options: AttributeOptions;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const ATTRIBUTE_METADATA_KEY = Symbol('simple-web-component:attribute');
|
|
15
|
+
|
|
16
|
+
export function attribute(nameOrOptions?: string | AttributeOptions): PropertyDecorator {
|
|
17
|
+
return (target: Object, propertyKey: string | symbol) => {
|
|
18
|
+
const constructor = target.constructor;
|
|
19
|
+
const options: AttributeOptions = typeof nameOrOptions === 'string' ? { name: nameOrOptions } : nameOrOptions || {};
|
|
20
|
+
|
|
21
|
+
if (!options.name) options.name = String(propertyKey);
|
|
22
|
+
if (!options.type) options.type = String;
|
|
23
|
+
if (options.disableReflect === undefined) options.disableReflect = false;
|
|
24
|
+
|
|
25
|
+
let list = ReflectUtils.getMetadata<AttributeMetadata[]>(ATTRIBUTE_METADATA_KEY, constructor);
|
|
26
|
+
if (!list) {
|
|
27
|
+
list = [];
|
|
28
|
+
ReflectUtils.defineMetadata(ATTRIBUTE_METADATA_KEY, list, constructor);
|
|
29
|
+
}
|
|
30
|
+
list.push({ propertyKey, options });
|
|
31
|
+
|
|
32
|
+
// Define getter and setter for the property
|
|
33
|
+
const internalKey = Symbol(String(propertyKey));
|
|
34
|
+
Object.defineProperty(target, propertyKey, {
|
|
35
|
+
get(this: any) {
|
|
36
|
+
return this[internalKey];
|
|
37
|
+
},
|
|
38
|
+
set(this: any, val: any) {
|
|
39
|
+
const oldVal = this[internalKey];
|
|
40
|
+
if (oldVal === val) return;
|
|
41
|
+
|
|
42
|
+
// Type conversion
|
|
43
|
+
let convertedVal = val;
|
|
44
|
+
if (options.type === Number) convertedVal = Number(val);
|
|
45
|
+
else if (options.type === Boolean) convertedVal = Boolean(val);
|
|
46
|
+
else if (options.type === Object && typeof val === 'string') {
|
|
47
|
+
try {
|
|
48
|
+
convertedVal = JSON.parse(val);
|
|
49
|
+
} catch (e) {
|
|
50
|
+
convertedVal = val;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
this[internalKey] = convertedVal;
|
|
55
|
+
|
|
56
|
+
// Reflection
|
|
57
|
+
if (!options.disableReflect && this.setAttribute) {
|
|
58
|
+
if (convertedVal === null || convertedVal === undefined || convertedVal === false) {
|
|
59
|
+
this.removeAttribute(options.name);
|
|
60
|
+
} else {
|
|
61
|
+
const attrVal = typeof convertedVal === 'object' ? JSON.stringify(convertedVal) : String(convertedVal);
|
|
62
|
+
if (this.getAttribute(options.name) !== attrVal) {
|
|
63
|
+
this.setAttribute(options.name, attrVal);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
enumerable: true,
|
|
69
|
+
configurable: true
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export const getAttributeMetadataList = (target: any): AttributeMetadata[] | undefined => {
|
|
75
|
+
const constructor = target instanceof Function ? target : target.constructor;
|
|
76
|
+
return ReflectUtils.getMetadata(ATTRIBUTE_METADATA_KEY, constructor);
|
|
77
|
+
};
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';
|
|
2
|
-
import { getAttributeChangedMap, ATTRIBUTE_CHANGED_WILDCARD } from './attributeChanged';
|
|
3
2
|
import { getInnerHtmlMetadataList } from './innerHtml';
|
|
4
3
|
import { getQueryMetadata } from './query';
|
|
5
4
|
import { getQueryAllMetadata } from './queryAll';
|
|
6
5
|
import { getAddEventListenerMetadata } from './addEventListener';
|
|
7
|
-
import { getLifecycleMetadata, ON_BEFORE_CONNECTED_METADATA_KEY, ON_AFTER_CONNECTED_METADATA_KEY, ON_BEFORE_DISCONNECTED_METADATA_KEY, ON_AFTER_DISCONNECTED_METADATA_KEY, ON_BEFORE_ADOPTED_METADATA_KEY, ON_AFTER_ADOPTED_METADATA_KEY } from './lifecycles';
|
|
6
|
+
import { getLifecycleMetadata, ON_BEFORE_CONNECTED_METADATA_KEY, ON_AFTER_CONNECTED_METADATA_KEY, ON_BEFORE_DISCONNECTED_METADATA_KEY, ON_AFTER_DISCONNECTED_METADATA_KEY, ON_BEFORE_ADOPTED_METADATA_KEY, ON_AFTER_ADOPTED_METADATA_KEY, ON_ADD_EVENT_LISTENER_METADATA_KEY, ON_ATTRIBUTE_CHANGED_METADATA_KEY, ATTRIBUTE_CHANGED_WILDCARD } from './lifecycles';
|
|
7
|
+
import { getAttributeMetadataList } from './attribute';
|
|
8
|
+
import { getStateMetadataList } from './state';
|
|
9
|
+
import { getEmitCustomEventMetadataList } from './emitCustomEvent';
|
|
10
|
+
import { SwcUtils } from '../utils/Utils';
|
|
8
11
|
|
|
9
12
|
export interface ElementConfig {
|
|
10
13
|
name: string;
|
|
11
14
|
extends?: string;
|
|
12
15
|
observedAttributes?: string[];
|
|
13
16
|
customElementRegistry?: CustomElementRegistry;
|
|
17
|
+
autoRemoveEventListeners?: boolean;
|
|
14
18
|
}
|
|
15
19
|
|
|
16
20
|
export const ELEMENT_CONFIG_KEY = Symbol('simple-web-component:element-config');
|
|
21
|
+
export const STATE_CHANGE_EVENT = 'swc:state-change';
|
|
17
22
|
|
|
18
23
|
const BUILT_IN_TAG_MAP = new Map<any, string>();
|
|
19
24
|
|
|
@@ -23,7 +28,6 @@ const registerTag = (className: string, tagName: string) => {
|
|
|
23
28
|
}
|
|
24
29
|
};
|
|
25
30
|
|
|
26
|
-
// Register comprehensive list of supported tags for automatic extends inference
|
|
27
31
|
[
|
|
28
32
|
['HTMLAnchorElement', 'a'],
|
|
29
33
|
['HTMLAreaElement', 'area'],
|
|
@@ -88,7 +92,6 @@ export const elementDefine =
|
|
|
88
92
|
(constructor: any) => {
|
|
89
93
|
const config: ElementConfig = typeof inConfig === 'string' ? { name: inConfig } : inConfig;
|
|
90
94
|
|
|
91
|
-
// 1. Automatically derive extendsTagName from prototype chain if not provided
|
|
92
95
|
let extendsTagName = config.extends;
|
|
93
96
|
if (!extendsTagName) {
|
|
94
97
|
let proto = Object.getPrototypeOf(constructor);
|
|
@@ -99,15 +102,22 @@ export const elementDefine =
|
|
|
99
102
|
}
|
|
100
103
|
}
|
|
101
104
|
|
|
102
|
-
|
|
103
|
-
const
|
|
104
|
-
const
|
|
105
|
-
const
|
|
105
|
+
const attributePropsList = getAttributeMetadataList(constructor);
|
|
106
|
+
const emitCustomEventList = getEmitCustomEventMetadataList(constructor);
|
|
107
|
+
const stateList = getStateMetadataList(constructor);
|
|
108
|
+
const observedFromProps = attributePropsList ? attributePropsList.map(it => it.options.name!) : [];
|
|
109
|
+
const observedFromEmits = emitCustomEventList ? emitCustomEventList.map(it => it.options.attributeName!) : [];
|
|
110
|
+
const mergedObservedAttributes = [...new Set([...(config.observedAttributes ?? []), ...observedFromProps, ...observedFromEmits])];
|
|
106
111
|
|
|
107
|
-
// 3. Create a new anonymous class that extends the original constructor
|
|
108
112
|
const NewClass = class extends (constructor as any) {
|
|
113
|
+
private _swcId = Math.random().toString(36).substring(2, 11);
|
|
109
114
|
private _observer: MutationObserver | null = null;
|
|
110
115
|
private _boundElements = new WeakMap<Element, Set<string | symbol>>();
|
|
116
|
+
private _activeListeners: Array<{ el: Element | HTMLElement; type: string; handler: EventListener; options?: any }> = [];
|
|
117
|
+
private _emitHandlers = new Map<string, EventListener>();
|
|
118
|
+
private _stateBindings = new Map<string, any[]>();
|
|
119
|
+
private _internalStates = new Map<string | symbol, any>();
|
|
120
|
+
private _externalSources = new Map<string, HTMLElement>();
|
|
111
121
|
|
|
112
122
|
static get observedAttributes() {
|
|
113
123
|
return mergedObservedAttributes;
|
|
@@ -115,16 +125,38 @@ export const elementDefine =
|
|
|
115
125
|
|
|
116
126
|
constructor(...args: any[]) {
|
|
117
127
|
super(...args);
|
|
128
|
+
if (stateList) {
|
|
129
|
+
stateList.forEach(meta => {
|
|
130
|
+
const key = meta.propertyKey;
|
|
131
|
+
const stateName = meta.options.name!;
|
|
132
|
+
const initialVal = (this as any)[key];
|
|
133
|
+
this._internalStates.set(
|
|
134
|
+
key,
|
|
135
|
+
SwcUtils.createReactiveProxy(initialVal, () => this._updateState(stateName))
|
|
136
|
+
);
|
|
137
|
+
Object.defineProperty(this, key, {
|
|
138
|
+
get: () => this._internalStates.get(key),
|
|
139
|
+
set: newVal => {
|
|
140
|
+
if (this._internalStates.get(key) === newVal) return;
|
|
141
|
+
this._internalStates.set(
|
|
142
|
+
key,
|
|
143
|
+
SwcUtils.createReactiveProxy(newVal, () => this._updateState(stateName))
|
|
144
|
+
);
|
|
145
|
+
this._updateState(stateName);
|
|
146
|
+
},
|
|
147
|
+
enumerable: true,
|
|
148
|
+
configurable: true
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
}
|
|
118
152
|
const innerHtmlList = getInnerHtmlMetadataList(this);
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
if (useShadow === true && !this.shadowRoot) {
|
|
153
|
+
if (innerHtmlList?.some(it => it.options.useShadow === true) && !this.shadowRoot) {
|
|
122
154
|
this.attachShadow({ mode: 'open' });
|
|
123
155
|
}
|
|
124
156
|
}
|
|
125
157
|
|
|
126
158
|
private _syncDecorators() {
|
|
127
|
-
|
|
159
|
+
this._buildStateMap();
|
|
128
160
|
const queryMetadata = getQueryMetadata(this);
|
|
129
161
|
if (queryMetadata) {
|
|
130
162
|
queryMetadata
|
|
@@ -132,7 +164,6 @@ export const elementDefine =
|
|
|
132
164
|
.forEach(it => {
|
|
133
165
|
const root = it.options.useShadow !== false && this.shadowRoot ? this.shadowRoot : this;
|
|
134
166
|
const element = root.querySelector(it.selector);
|
|
135
|
-
|
|
136
167
|
if (element) {
|
|
137
168
|
let bound = this._boundElements.get(element);
|
|
138
169
|
if (!bound) {
|
|
@@ -146,7 +177,6 @@ export const elementDefine =
|
|
|
146
177
|
}
|
|
147
178
|
});
|
|
148
179
|
}
|
|
149
|
-
|
|
150
180
|
const queryAllMetadata = getQueryAllMetadata(this);
|
|
151
181
|
if (queryAllMetadata) {
|
|
152
182
|
queryAllMetadata
|
|
@@ -157,15 +187,12 @@ export const elementDefine =
|
|
|
157
187
|
(this as any)[it.propertyKey](elements);
|
|
158
188
|
});
|
|
159
189
|
}
|
|
160
|
-
|
|
161
|
-
// 6. Register @addEventListener methods
|
|
162
190
|
const eventListeners = getAddEventListenerMetadata(this);
|
|
163
191
|
if (eventListeners) {
|
|
164
192
|
eventListeners.forEach(it => {
|
|
165
|
-
const {
|
|
193
|
+
const { query, type, useShadow, ...options } = it.options;
|
|
166
194
|
const root = useShadow !== false && this.shadowRoot ? this.shadowRoot : this;
|
|
167
|
-
const targetElements =
|
|
168
|
-
|
|
195
|
+
const targetElements = query ? root.querySelectorAll(query) : [this as any as Element];
|
|
169
196
|
targetElements.forEach(targetElement => {
|
|
170
197
|
if (targetElement) {
|
|
171
198
|
let bound = this._boundElements.get(targetElement);
|
|
@@ -173,17 +200,21 @@ export const elementDefine =
|
|
|
173
200
|
bound = new Set();
|
|
174
201
|
this._boundElements.set(targetElement, bound);
|
|
175
202
|
}
|
|
176
|
-
|
|
177
|
-
const eventKey = `event:${String(it.propertyKey)}:${eventName}`;
|
|
203
|
+
const eventKey = `event:${String(it.propertyKey)}:${type}`;
|
|
178
204
|
if (!bound.has(eventKey)) {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
);
|
|
205
|
+
const handler = (event: any) => {
|
|
206
|
+
if (it.options.stopImmediatePropagation) event.stopImmediatePropagation();
|
|
207
|
+
if (it.options.stopPropagation) event.stopPropagation();
|
|
208
|
+
if (it.options.preventDefault) event.preventDefault();
|
|
209
|
+
(this as any)[it.propertyKey](event, targetElement);
|
|
210
|
+
};
|
|
211
|
+
targetElement.addEventListener(type, handler, options);
|
|
186
212
|
bound.add(eventKey);
|
|
213
|
+
if (config.autoRemoveEventListeners) this._activeListeners.push({ el: targetElement, type, handler, options });
|
|
214
|
+
const addEventMethods = getLifecycleMetadata(this, ON_ADD_EVENT_LISTENER_METADATA_KEY);
|
|
215
|
+
addEventMethods?.forEach(m => {
|
|
216
|
+
if (typeof (this as any)[m] === 'function') (this as any)[m](targetElement, type, handler);
|
|
217
|
+
});
|
|
187
218
|
}
|
|
188
219
|
}
|
|
189
220
|
});
|
|
@@ -191,149 +222,209 @@ export const elementDefine =
|
|
|
191
222
|
}
|
|
192
223
|
}
|
|
193
224
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
225
|
+
private _buildStateMap() {
|
|
226
|
+
this._stateBindings.clear();
|
|
227
|
+
this._externalSources.clear();
|
|
228
|
+
const scan = (root: Node) => {
|
|
229
|
+
const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT);
|
|
230
|
+
let node: Node | null = null;
|
|
231
|
+
while ((node = walker.nextNode())) {
|
|
232
|
+
if (node.nodeType === Node.TEXT_NODE) this._parseAndBind(node, 'text');
|
|
233
|
+
else if (node.nodeType === Node.ELEMENT_NODE) {
|
|
234
|
+
const el = node as HTMLElement;
|
|
235
|
+
const alias = el.getAttribute('as');
|
|
236
|
+
if (alias) {
|
|
237
|
+
this._externalSources.set(alias, el);
|
|
238
|
+
el.addEventListener(STATE_CHANGE_EVENT, () => this._updateState(alias));
|
|
239
|
+
}
|
|
240
|
+
Array.from(el.attributes).forEach(attr => this._parseAndBind(attr, 'attribute', el));
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
if (this.shadowRoot) scan(this.shadowRoot);
|
|
245
|
+
scan(this as any as Node);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
private _parseAndBind(node: Node | Attr, type: 'text' | 'attribute', owner?: HTMLElement) {
|
|
249
|
+
const content = node.textContent || '';
|
|
250
|
+
const matches = Array.from(content.matchAll(/{{(.*?)}}/g));
|
|
251
|
+
if (matches.length === 0) return;
|
|
252
|
+
matches.forEach(match => {
|
|
253
|
+
const fullPath = match[1].trim();
|
|
254
|
+
const rootName = fullPath.split('.')[0];
|
|
255
|
+
const isState = stateList?.some(s => s.options.name === rootName);
|
|
256
|
+
const isLogicKey = (this as any)._asKey === rootName || (this as any)._asIndexKey === rootName;
|
|
257
|
+
const isExternal = this._externalSources.has(rootName);
|
|
258
|
+
const isSelfAlias = this.getAttribute('as') === rootName;
|
|
259
|
+
if (!isState && !isLogicKey && !isExternal && !isSelfAlias) return;
|
|
260
|
+
if (!this._stateBindings.has(rootName)) this._stateBindings.set(rootName, []);
|
|
261
|
+
const tplKey = `__swc_original_${this._swcId}`;
|
|
262
|
+
if (!(node as any)[tplKey]) (node as any)[tplKey] = content;
|
|
263
|
+
this._stateBindings.get(rootName)!.push({ node, type, owner, path: fullPath });
|
|
264
|
+
this._updateState(rootName);
|
|
199
265
|
});
|
|
266
|
+
}
|
|
200
267
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
268
|
+
private _updateState(stateName: string) {
|
|
269
|
+
if (!this._stateBindings) return;
|
|
270
|
+
this._executeBindingUpdate(stateName);
|
|
271
|
+
const selfAlias = this.getAttribute('as');
|
|
272
|
+
if (selfAlias && selfAlias !== stateName) this._executeBindingUpdate(selfAlias);
|
|
273
|
+
this.dispatchEvent(new CustomEvent(STATE_CHANGE_EVENT, { bubbles: true, composed: true }));
|
|
274
|
+
}
|
|
204
275
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
276
|
+
private _executeBindingUpdate(stateName: string) {
|
|
277
|
+
const bindings = this._stateBindings.get(stateName);
|
|
278
|
+
if (!bindings) return;
|
|
279
|
+
const tplKey = `__swc_original_${this._swcId}`;
|
|
280
|
+
bindings.forEach(bin => {
|
|
281
|
+
let text = (bin.node as any)[tplKey];
|
|
282
|
+
const matches = Array.from(text.matchAll(/{{(.*?)}}/g));
|
|
283
|
+
for (const match of matches) {
|
|
284
|
+
const path = match[1].trim();
|
|
285
|
+
const root = path.split('.')[0];
|
|
286
|
+
let val: any = undefined;
|
|
287
|
+
let current: HTMLElement | null = this as any as HTMLElement;
|
|
288
|
+
while (current) {
|
|
289
|
+
const currentNewClass = current as any;
|
|
290
|
+
if (current.getAttribute('as') === root) {
|
|
291
|
+
val = SwcUtils.getValueByPath(current, path.split('.').slice(1).join('.') || 'value', 'value');
|
|
292
|
+
if (val !== undefined) break;
|
|
293
|
+
}
|
|
294
|
+
const externalSource = currentNewClass._externalSources?.get(root);
|
|
295
|
+
if (externalSource) {
|
|
296
|
+
val = SwcUtils.getValueByPath(externalSource, path.split('.').slice(1).join('.') || 'value', 'value');
|
|
297
|
+
if (val !== undefined) break;
|
|
298
|
+
}
|
|
299
|
+
const cStates = getStateMetadataList(current.constructor);
|
|
300
|
+
const cAttrs = getAttributeMetadataList(current.constructor);
|
|
301
|
+
const sMeta = cStates?.find(s => s.options.name === root);
|
|
302
|
+
const aMeta = cAttrs?.find(a => a.options.name === root);
|
|
303
|
+
if (sMeta || aMeta) {
|
|
304
|
+
let aPath = path;
|
|
305
|
+
if (sMeta && sMeta.options.name !== String(sMeta.propertyKey)) aPath = path.replace(sMeta.options.name!, String(sMeta.propertyKey));
|
|
306
|
+
else if (aMeta && aMeta.options.name !== String(aMeta.propertyKey)) aPath = path.replace(aMeta.options.name!, String(aMeta.propertyKey));
|
|
307
|
+
val = SwcUtils.getValueByPath(current, aPath, root);
|
|
308
|
+
if (val !== undefined) break;
|
|
309
|
+
}
|
|
310
|
+
current = current.parentElement || (current.getRootNode() as any).host;
|
|
311
|
+
}
|
|
312
|
+
if (val !== undefined) {
|
|
313
|
+
const strVal = val === null || val === undefined ? '' : typeof val === 'object' ? '[Object]' : String(val);
|
|
314
|
+
text = text.replace(match[0], strVal);
|
|
315
|
+
if (bin.type === 'attribute' && bin.owner) {
|
|
316
|
+
if (val === null || val === undefined) bin.owner.removeAttribute(bin.attrName!);
|
|
317
|
+
else bin.owner.setAttribute(bin.attrName!, text);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
if (bin.type === 'text') bin.node.textContent = text;
|
|
322
|
+
});
|
|
323
|
+
}
|
|
208
324
|
|
|
209
|
-
|
|
210
|
-
const
|
|
211
|
-
|
|
325
|
+
disconnectedCallback() {
|
|
326
|
+
const bMethods = getLifecycleMetadata(this, ON_BEFORE_DISCONNECTED_METADATA_KEY);
|
|
327
|
+
bMethods?.forEach(m => {
|
|
328
|
+
if (typeof (this as any)[m] === 'function') (this as any)[m]();
|
|
329
|
+
});
|
|
330
|
+
if (this._observer) this._observer.disconnect();
|
|
331
|
+
if (config.autoRemoveEventListeners) {
|
|
332
|
+
this._activeListeners.forEach(({ el, type, handler, options }) => el.removeEventListener(type, handler, options));
|
|
333
|
+
this._activeListeners = [];
|
|
334
|
+
}
|
|
335
|
+
if (super.disconnectedCallback) super.disconnectedCallback();
|
|
336
|
+
const aMethods = getLifecycleMetadata(this, ON_AFTER_DISCONNECTED_METADATA_KEY);
|
|
337
|
+
aMethods?.forEach(m => {
|
|
212
338
|
if (typeof (this as any)[m] === 'function') (this as any)[m]();
|
|
213
339
|
});
|
|
214
340
|
}
|
|
215
341
|
|
|
216
342
|
adoptedCallback() {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
beforeMethods?.forEach(m => {
|
|
343
|
+
const bMethods = getLifecycleMetadata(this, ON_BEFORE_ADOPTED_METADATA_KEY);
|
|
344
|
+
bMethods?.forEach(m => {
|
|
220
345
|
if (typeof (this as any)[m] === 'function') (this as any)[m]();
|
|
221
346
|
});
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
// 2. onAfterAdopted
|
|
228
|
-
const afterMethods = getLifecycleMetadata(this, ON_AFTER_ADOPTED_METADATA_KEY);
|
|
229
|
-
afterMethods?.forEach(m => {
|
|
347
|
+
if (super.adoptedCallback) super.adoptedCallback();
|
|
348
|
+
const aMethods = getLifecycleMetadata(this, ON_AFTER_ADOPTED_METADATA_KEY);
|
|
349
|
+
aMethods?.forEach(m => {
|
|
230
350
|
if (typeof (this as any)[m] === 'function') (this as any)[m]();
|
|
231
351
|
});
|
|
232
352
|
}
|
|
233
353
|
|
|
234
354
|
async connectedCallback() {
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
beforeMethods?.forEach(m => {
|
|
355
|
+
const bMethods = getLifecycleMetadata(this, ON_BEFORE_CONNECTED_METADATA_KEY);
|
|
356
|
+
bMethods?.forEach(m => {
|
|
238
357
|
if (typeof (this as any)[m] === 'function') (this as any)[m]();
|
|
239
358
|
});
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
let shadowContent = '';
|
|
248
|
-
let lightContent = '';
|
|
249
|
-
|
|
250
|
-
if (innerHtmlList) {
|
|
251
|
-
for (const meta of innerHtmlList) {
|
|
359
|
+
if (typeof (this as any).initCore === 'function') (this as any).initCore();
|
|
360
|
+
const iHtmlList = getInnerHtmlMetadataList(this);
|
|
361
|
+
let sContent = '';
|
|
362
|
+
let lContent = '';
|
|
363
|
+
if (iHtmlList) {
|
|
364
|
+
for (const meta of iHtmlList) {
|
|
252
365
|
const result = await (this as any)[meta.propertyKey]();
|
|
253
366
|
if (result !== undefined) {
|
|
254
|
-
if (meta.options.useShadow === true)
|
|
255
|
-
|
|
256
|
-
} else {
|
|
257
|
-
lightContent += result;
|
|
258
|
-
}
|
|
367
|
+
if (meta.options.useShadow === true) sContent += result;
|
|
368
|
+
else lContent += result;
|
|
259
369
|
}
|
|
260
370
|
}
|
|
261
371
|
}
|
|
262
|
-
|
|
263
|
-
if (this.
|
|
264
|
-
this.shadowRoot.innerHTML = shadowContent;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
if (lightContent) {
|
|
268
|
-
this.innerHTML = lightContent;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
// 초기 동기화
|
|
372
|
+
if (this.shadowRoot) this.shadowRoot.innerHTML = sContent;
|
|
373
|
+
if (lContent) this.innerHTML = lContent;
|
|
272
374
|
(this as any)._syncDecorators();
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
const target = this.shadowRoot || this;
|
|
279
|
-
this._observer.observe(target, { childList: true, subtree: true });
|
|
280
|
-
|
|
281
|
-
if (super.connectedCallback) {
|
|
282
|
-
await super.connectedCallback();
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
// 2. onAfterConnected
|
|
286
|
-
const afterMethods = getLifecycleMetadata(this, ON_AFTER_CONNECTED_METADATA_KEY);
|
|
287
|
-
afterMethods?.forEach(m => {
|
|
375
|
+
this._observer = new MutationObserver(() => (this as any)._syncDecorators());
|
|
376
|
+
this._observer.observe(this.shadowRoot || this, { childList: true, subtree: true });
|
|
377
|
+
if (super.connectedCallback) await super.connectedCallback();
|
|
378
|
+
const aMethods = getLifecycleMetadata(this, ON_AFTER_CONNECTED_METADATA_KEY);
|
|
379
|
+
aMethods?.forEach(m => {
|
|
288
380
|
if (typeof (this as any)[m] === 'function') (this as any)[m]();
|
|
289
381
|
});
|
|
290
382
|
}
|
|
291
383
|
|
|
292
|
-
// 4. Handle attribute changes and route to decorated methods
|
|
293
384
|
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {
|
|
294
|
-
if (super.attributeChangedCallback)
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
if (methodKeys && Array.isArray(methodKeys)) {
|
|
300
|
-
methodKeys.forEach(key => {
|
|
301
|
-
if (typeof (this as any)[key] === 'function') {
|
|
302
|
-
(this as any)[key](newValue, oldValue, name);
|
|
385
|
+
if (super.attributeChangedCallback) super.attributeChangedCallback(name, oldValue, newValue);
|
|
386
|
+
if (attributePropsList) {
|
|
387
|
+
attributePropsList.forEach(meta => {
|
|
388
|
+
if (meta.options.name === name) {
|
|
389
|
+
if (String((this as any)[meta.propertyKey]) !== String(newValue)) (this as any)[meta.propertyKey] = newValue;
|
|
303
390
|
}
|
|
304
391
|
});
|
|
305
392
|
}
|
|
306
|
-
|
|
307
|
-
const
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
}
|
|
393
|
+
if (typeof (this as any)._updateState === 'function') (this as any)._updateState(name);
|
|
394
|
+
const aMethodsMap = getLifecycleMetadata(constructor, ON_ATTRIBUTE_CHANGED_METADATA_KEY) as Map<string, (string | symbol)[]>;
|
|
395
|
+
const mKeys = aMethodsMap?.get(name);
|
|
396
|
+
if (mKeys && Array.isArray(mKeys))
|
|
397
|
+
mKeys.forEach(key => {
|
|
398
|
+
if (typeof (this as any)[key] === 'function') (this as any)[key](newValue, oldValue, name);
|
|
313
399
|
});
|
|
400
|
+
if (emitCustomEventList) {
|
|
401
|
+
const eMeta = emitCustomEventList.find(it => it.options.attributeName === name);
|
|
402
|
+
if (eMeta) {
|
|
403
|
+
const eType = eMeta.options.type;
|
|
404
|
+
const oHandler = this._emitHandlers.get(eType);
|
|
405
|
+
if (oHandler) this.removeEventListener(eType, oHandler);
|
|
406
|
+
if (newValue) {
|
|
407
|
+
const nHandler = (e: Event) => {
|
|
408
|
+
new Function('event', '$data', newValue).call(this, e, (e as CustomEvent).detail);
|
|
409
|
+
};
|
|
410
|
+
this.addEventListener(eType, nHandler);
|
|
411
|
+
this._emitHandlers.set(eType, nHandler);
|
|
412
|
+
}
|
|
413
|
+
}
|
|
314
414
|
}
|
|
415
|
+
const wMethodsKeys = aMethodsMap?.get(ATTRIBUTE_CHANGED_WILDCARD);
|
|
416
|
+
if (wMethodsKeys && Array.isArray(wMethodsKeys))
|
|
417
|
+
wMethodsKeys.forEach(key => {
|
|
418
|
+
if (typeof (this as any)[key] === 'function') (this as any)[key](newValue, oldValue, name);
|
|
419
|
+
});
|
|
315
420
|
}
|
|
316
421
|
};
|
|
317
422
|
|
|
318
|
-
// 5. Register Custom Element using specified or default registry
|
|
319
423
|
const registry = config.customElementRegistry || (typeof customElements !== 'undefined' ? customElements : undefined);
|
|
320
424
|
if (registry && !registry.get(config.name)) {
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
// Safari support check for Customized Built-in Elements
|
|
324
|
-
if (extendsTagName && typeof document !== 'undefined') {
|
|
325
|
-
const isSupported = document.createElement(extendsTagName, { is: 'any' }).outerHTML.indexOf('is=') !== -1;
|
|
326
|
-
if (!isSupported) {
|
|
327
|
-
console.warn(`[SWC] Browser does not support 'is' attribute (Customized Built-in Elements). ` + `If you are on Safari, please include '@ungap/custom-elements' polyfill.`);
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
registry.define(config.name, NewClass as any, options);
|
|
425
|
+
registry.define(config.name, NewClass as any, config.extends ? { extends: config.extends } : undefined);
|
|
332
426
|
}
|
|
333
|
-
|
|
334
|
-
// 6. Save metadata
|
|
335
427
|
ReflectUtils.defineMetadata(ELEMENT_CONFIG_KEY, config, NewClass);
|
|
336
|
-
|
|
337
428
|
return NewClass as any;
|
|
338
429
|
};
|
|
339
430
|
|