@dooboostore/simple-web-component 1.0.6 → 1.0.7
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 +134 -87
- package/dist/cjs/decorators/addEventListener.js.map +1 -1
- package/dist/cjs/decorators/elementDefine.js +59 -35
- package/dist/cjs/decorators/elementDefine.js.map +2 -2
- package/dist/cjs/decorators/query.js +27 -5
- package/dist/cjs/decorators/query.js.map +2 -2
- package/dist/cjs/decorators/queryAll.js +27 -5
- package/dist/cjs/decorators/queryAll.js.map +2 -2
- package/dist/cjs/decorators/state.js.map +1 -1
- package/dist/cjs/elements/SwcChoose.js.map +2 -2
- package/dist/cjs/elements/SwcForOf.js +3 -1
- package/dist/cjs/elements/SwcForOf.js.map +2 -2
- package/dist/cjs/elements/SwcObject.js +8 -6
- package/dist/cjs/elements/SwcObject.js.map +2 -2
- package/dist/cjs/index.js +3 -6
- package/dist/cjs/index.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/esm/decorators/addEventListener.js.map +1 -1
- package/dist/esm/decorators/elementDefine.js +59 -35
- package/dist/esm/decorators/elementDefine.js.map +2 -2
- package/dist/esm/decorators/query.js +27 -5
- package/dist/esm/decorators/query.js.map +2 -2
- package/dist/esm/decorators/queryAll.js +27 -5
- package/dist/esm/decorators/queryAll.js.map +2 -2
- package/dist/esm/decorators/state.js.map +1 -1
- package/dist/esm/elements/SwcChoose.js.map +2 -2
- package/dist/esm/elements/SwcForOf.js +3 -1
- package/dist/esm/elements/SwcForOf.js.map +2 -2
- package/dist/esm/elements/SwcObject.js +8 -6
- package/dist/esm/elements/SwcObject.js.map +2 -2
- package/dist/esm/index.js +3 -6
- package/dist/esm/index.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-bundle/dooboostore-simple-web-component.esm.js +1938 -2014
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
- package/dist/types/decorators/addEventListener.d.ts +1 -1
- package/dist/types/decorators/addEventListener.d.ts.map +1 -1
- package/dist/types/decorators/elementDefine.d.ts.map +1 -1
- package/dist/types/decorators/query.d.ts +5 -2
- package/dist/types/decorators/query.d.ts.map +1 -1
- package/dist/types/decorators/queryAll.d.ts +5 -2
- package/dist/types/decorators/queryAll.d.ts.map +1 -1
- package/dist/types/decorators/state.d.ts +1 -1
- package/dist/types/decorators/state.d.ts.map +1 -1
- package/dist/types/elements/SwcChoose.d.ts.map +1 -1
- package/dist/types/elements/SwcForOf.d.ts.map +1 -1
- package/dist/types/elements/SwcObject.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -6
- package/dist/types/index.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +1938 -2014
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
- package/package.json +4 -4
- package/src/decorators/addEventListener.ts +1 -1
- package/src/decorators/elementDefine.ts +64 -35
- package/src/decorators/query.ts +35 -8
- package/src/decorators/queryAll.ts +35 -8
- package/src/decorators/state.ts +1 -1
- package/src/elements/SwcChoose.ts +1 -5
- package/src/elements/SwcForOf.ts +2 -1
- package/src/elements/SwcObject.ts +8 -6
- package/src/index.ts +3 -6
- package/src/is/SwcIfAnchor.ts +1 -1
- package/src/is/SwcIfArea.ts +1 -1
- package/src/is/SwcIfAudio.ts +1 -1
- package/src/is/SwcIfBase.ts +1 -1
- package/src/is/SwcIfButton.ts +1 -1
- package/src/is/SwcIfCanvas.ts +1 -1
- package/src/is/SwcIfData.ts +1 -1
- package/src/is/SwcIfDataList.ts +1 -1
- package/src/is/SwcIfDetails.ts +1 -1
- package/src/is/SwcIfDialog.ts +1 -1
- package/src/is/SwcIfDiv.ts +1 -1
- package/src/is/SwcIfDl.ts +1 -1
- package/src/is/SwcIfEmbed.ts +1 -1
- package/src/is/SwcIfFieldSet.ts +1 -1
- package/src/is/SwcIfForm.ts +1 -1
- package/src/is/SwcIfHeading.ts +1 -1
- package/src/is/SwcIfHr.ts +1 -1
- package/src/is/SwcIfIFrame.ts +1 -1
- package/src/is/SwcIfImage.ts +1 -1
- package/src/is/SwcIfInput.ts +1 -1
- package/src/is/SwcIfLabel.ts +1 -1
- package/src/is/SwcIfLegend.ts +1 -1
- package/src/is/SwcIfLi.ts +1 -1
- package/src/is/SwcIfLink.ts +1 -1
- package/src/is/SwcIfMap.ts +1 -1
- package/src/is/SwcIfMeta.ts +1 -1
- package/src/is/SwcIfMeter.ts +1 -1
- package/src/is/SwcIfMod.ts +1 -1
- package/src/is/SwcIfObject.ts +1 -1
- package/src/is/SwcIfOl.ts +1 -1
- package/src/is/SwcIfOptGroup.ts +1 -1
- package/src/is/SwcIfOption.ts +1 -1
- package/src/is/SwcIfOutput.ts +1 -1
- package/src/is/SwcIfParagraph.ts +1 -1
- package/src/is/SwcIfParam.ts +1 -1
- package/src/is/SwcIfPicture.ts +1 -1
- package/src/is/SwcIfPre.ts +1 -1
- package/src/is/SwcIfProgress.ts +1 -1
- package/src/is/SwcIfQuote.ts +1 -1
- package/src/is/SwcIfScript.ts +1 -1
- package/src/is/SwcIfSelect.ts +1 -1
- package/src/is/SwcIfSlot.ts +1 -1
- package/src/is/SwcIfSource.ts +1 -1
- package/src/is/SwcIfSpan.ts +1 -1
- package/src/is/SwcIfStyle.ts +1 -1
- package/src/is/SwcIfTable.ts +1 -1
- package/src/is/SwcIfTableCell.ts +1 -1
- package/src/is/SwcIfTableRow.ts +1 -1
- package/src/is/SwcIfTableSection.ts +1 -1
- package/src/is/SwcIfTemplate.ts +1 -1
- package/src/is/SwcIfTextArea.ts +1 -1
- package/src/is/SwcIfTime.ts +1 -1
- package/src/is/SwcIfTitle.ts +1 -1
- package/src/is/SwcIfTrack.ts +1 -1
- package/src/is/SwcIfUl.ts +1 -1
- package/src/is/SwcIfVideo.ts +1 -1
|
@@ -76,9 +76,9 @@ let SwcIfTitle = class SwcIfTitle2 extends import_SwcHTMLTitleElementBase.SwcHTM
|
|
|
76
76
|
if (isTruthy && this._masterTplNodes.length > 0) {
|
|
77
77
|
this._masterTplNodes.forEach((tplNode) => {
|
|
78
78
|
const clone = tplNode.cloneNode(true);
|
|
79
|
+
this.appendChild(clone);
|
|
79
80
|
if (clone.style)
|
|
80
81
|
clone.style.display = "contents";
|
|
81
|
-
this.appendChild(clone);
|
|
82
82
|
this.applyData(clone, this._swcValue);
|
|
83
83
|
});
|
|
84
84
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/is/SwcIfTitle.ts"],
|
|
4
|
-
"sourcesContent": ["import { elementDefine, innerHtml } from '../index';\nimport { SwcHTMLTitleElementBase } from './SwcHTMLTitleElementBase';\n\n@elementDefine({ name: 'swc-if-title', extends: 'title' })\nexport class SwcIfTitle extends SwcHTMLTitleElementBase {\n private _swcValue: any = false;\n\n constructor() {\n super();\n }\n\n set swcValue(val: any) {\n this._swcValue = val;\n if (this._masterTplNodes.length === 0) this.initCore();\n this.render();\n }\n\n get swcValue(): any {\n return this._swcValue;\n }\n\n @innerHtml\n renderTemplate() {\n return `<slot id=\"tpl-slot\" style=\"display:none;\"></slot>`;\n }\n\n connectedCallback() {\n this.initCore();\n if (this._masterTplNodes.length > 0) {\n this.innerHTML = '';\n this.render();\n }\n }\n\n private render() {\n const attrValue = this.getAttribute('swc-value') || this.getAttribute('value');\n if (attrValue !== null && attrValue.includes('{{')) return;\n\n let displayValue = attrValue !== null ? attrValue : this._swcValue;\n let isTruthy = !!displayValue;\n if (typeof displayValue === 'string') {\n if (displayValue === 'false' || displayValue === '0' || displayValue === '') isTruthy = false;\n else {\n try {\n isTruthy = !!new Function('return ' + displayValue)();\n } catch (e) {\n isTruthy = true;\n }\n }\n }\n\n this.innerHTML = '';\n if (isTruthy && this._masterTplNodes.length > 0) {\n this._masterTplNodes.forEach(tplNode => {\n const clone = tplNode.cloneNode(true) as HTMLElement;\n if (clone.style) clone.style.display = 'contents';\n this.
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA,eAAyC;AACzC,qCAAwC;;;;;;;;;;AAGjC,IAAM,aAAN,MAAMA,oBAAmB,uDAAuB;EAGrD,cAAA;AACE,UAAK;AAHC,SAAA,YAAiB;EAIzB;EAEA,IAAI,SAAS,KAAQ;AACnB,SAAK,YAAY;AACjB,QAAI,KAAK,gBAAgB,WAAW;AAAG,WAAK,SAAQ;AACpD,SAAK,OAAM;EACb;EAEA,IAAI,WAAQ;AACV,WAAO,KAAK;EACd;EAGA,iBAAc;AACZ,WAAO;EACT;EAEA,oBAAiB;AACf,SAAK,SAAQ;AACb,QAAI,KAAK,gBAAgB,SAAS,GAAG;AACnC,WAAK,YAAY;AACjB,WAAK,OAAM;IACb;EACF;EAEQ,SAAM;AACZ,UAAM,YAAY,KAAK,aAAa,WAAW,KAAK,KAAK,aAAa,OAAO;AAC7E,QAAI,cAAc,QAAQ,UAAU,SAAS,IAAI;AAAG;AAEpD,QAAI,eAAe,cAAc,OAAO,YAAY,KAAK;AACzD,QAAI,WAAW,CAAC,CAAC;AACjB,QAAI,OAAO,iBAAiB,UAAU;AACpC,UAAI,iBAAiB,WAAW,iBAAiB,OAAO,iBAAiB;AAAI,mBAAW;WACnF;AACH,YAAI;AACF,qBAAW,CAAC,CAAC,IAAI,SAAS,YAAY,YAAY,EAAC;QACrD,SAAS,GAAG;AACV,qBAAW;QACb;MACF;IACF;AAEA,SAAK,YAAY;AACjB,QAAI,YAAY,KAAK,gBAAgB,SAAS,GAAG;AAC/C,WAAK,gBAAgB,QAAQ,aAAU;AACrC,cAAM,QAAQ,QAAQ,UAAU,IAAI;AACpC,YAAI,MAAM;AAAO,gBAAM,MAAM,UAAU;AACvC,aAAK,
|
|
4
|
+
"sourcesContent": ["import { elementDefine, innerHtml } from '../index';\nimport { SwcHTMLTitleElementBase } from './SwcHTMLTitleElementBase';\n\n@elementDefine({ name: 'swc-if-title', extends: 'title' })\nexport class SwcIfTitle extends SwcHTMLTitleElementBase {\n private _swcValue: any = false;\n\n constructor() {\n super();\n }\n\n set swcValue(val: any) {\n this._swcValue = val;\n if (this._masterTplNodes.length === 0) this.initCore();\n this.render();\n }\n\n get swcValue(): any {\n return this._swcValue;\n }\n\n @innerHtml\n renderTemplate() {\n return `<slot id=\"tpl-slot\" style=\"display:none;\"></slot>`;\n }\n\n connectedCallback() {\n this.initCore();\n if (this._masterTplNodes.length > 0) {\n this.innerHTML = '';\n this.render();\n }\n }\n\n private render() {\n const attrValue = this.getAttribute('swc-value') || this.getAttribute('value');\n if (attrValue !== null && attrValue.includes('{{')) return;\n\n let displayValue = attrValue !== null ? attrValue : this._swcValue;\n let isTruthy = !!displayValue;\n if (typeof displayValue === 'string') {\n if (displayValue === 'false' || displayValue === '0' || displayValue === '') isTruthy = false;\n else {\n try {\n isTruthy = !!new Function('return ' + displayValue)();\n } catch (e) {\n isTruthy = true;\n }\n }\n }\n\n this.innerHTML = '';\n if (isTruthy && this._masterTplNodes.length > 0) {\n this._masterTplNodes.forEach(tplNode => {\n const clone = tplNode.cloneNode(true) as HTMLElement;\n this.appendChild(clone);\n if (clone.style) clone.style.display = 'contents';\n this.applyData(clone, this._swcValue);\n });\n }\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA,eAAyC;AACzC,qCAAwC;;;;;;;;;;AAGjC,IAAM,aAAN,MAAMA,oBAAmB,uDAAuB;EAGrD,cAAA;AACE,UAAK;AAHC,SAAA,YAAiB;EAIzB;EAEA,IAAI,SAAS,KAAQ;AACnB,SAAK,YAAY;AACjB,QAAI,KAAK,gBAAgB,WAAW;AAAG,WAAK,SAAQ;AACpD,SAAK,OAAM;EACb;EAEA,IAAI,WAAQ;AACV,WAAO,KAAK;EACd;EAGA,iBAAc;AACZ,WAAO;EACT;EAEA,oBAAiB;AACf,SAAK,SAAQ;AACb,QAAI,KAAK,gBAAgB,SAAS,GAAG;AACnC,WAAK,YAAY;AACjB,WAAK,OAAM;IACb;EACF;EAEQ,SAAM;AACZ,UAAM,YAAY,KAAK,aAAa,WAAW,KAAK,KAAK,aAAa,OAAO;AAC7E,QAAI,cAAc,QAAQ,UAAU,SAAS,IAAI;AAAG;AAEpD,QAAI,eAAe,cAAc,OAAO,YAAY,KAAK;AACzD,QAAI,WAAW,CAAC,CAAC;AACjB,QAAI,OAAO,iBAAiB,UAAU;AACpC,UAAI,iBAAiB,WAAW,iBAAiB,OAAO,iBAAiB;AAAI,mBAAW;WACnF;AACH,YAAI;AACF,qBAAW,CAAC,CAAC,IAAI,SAAS,YAAY,YAAY,EAAC;QACrD,SAAS,GAAG;AACV,qBAAW;QACb;MACF;IACF;AAEA,SAAK,YAAY;AACjB,QAAI,YAAY,KAAK,gBAAgB,SAAS,GAAG;AAC/C,WAAK,gBAAgB,QAAQ,aAAU;AACrC,cAAM,QAAQ,QAAQ,UAAU,IAAI;AACpC,aAAK,YAAY,KAAK;AACtB,YAAI,MAAM;AAAO,gBAAM,MAAM,UAAU;AACvC,aAAK,UAAU,OAAO,KAAK,SAAS;MACtC,CAAC;IACH;EACF;;AAtCA,WAAA;EADC;;;;;AAjBU,aAAU,WAAA;MADtB,wBAAc,EAAE,MAAM,gBAAgB,SAAS,QAAO,CAAE;;GAC5C,UAAU;",
|
|
6
6
|
"names": ["SwcIfTitle"]
|
|
7
7
|
}
|
|
@@ -76,9 +76,9 @@ let SwcIfTrack = class SwcIfTrack2 extends import_SwcHTMLTrackElementBase.SwcHTM
|
|
|
76
76
|
if (isTruthy && this._masterTplNodes.length > 0) {
|
|
77
77
|
this._masterTplNodes.forEach((tplNode) => {
|
|
78
78
|
const clone = tplNode.cloneNode(true);
|
|
79
|
+
this.appendChild(clone);
|
|
79
80
|
if (clone.style)
|
|
80
81
|
clone.style.display = "contents";
|
|
81
|
-
this.appendChild(clone);
|
|
82
82
|
this.applyData(clone, this._swcValue);
|
|
83
83
|
});
|
|
84
84
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/is/SwcIfTrack.ts"],
|
|
4
|
-
"sourcesContent": ["import { elementDefine, innerHtml } from '../index';\nimport { SwcHTMLTrackElementBase } from './SwcHTMLTrackElementBase';\n\n@elementDefine({ name: 'swc-if-track', extends: 'track' })\nexport class SwcIfTrack extends SwcHTMLTrackElementBase {\n private _swcValue: any = false;\n\n constructor() {\n super();\n }\n\n set swcValue(val: any) {\n this._swcValue = val;\n if (this._masterTplNodes.length === 0) this.initCore();\n this.render();\n }\n\n get swcValue(): any {\n return this._swcValue;\n }\n\n @innerHtml\n renderTemplate() {\n return `<slot id=\"tpl-slot\" style=\"display:none;\"></slot>`;\n }\n\n connectedCallback() {\n this.initCore();\n if (this._masterTplNodes.length > 0) {\n this.innerHTML = '';\n this.render();\n }\n }\n\n private render() {\n const attrValue = this.getAttribute('swc-value') || this.getAttribute('value');\n if (attrValue !== null && attrValue.includes('{{')) return;\n\n let displayValue = attrValue !== null ? attrValue : this._swcValue;\n let isTruthy = !!displayValue;\n if (typeof displayValue === 'string') {\n if (displayValue === 'false' || displayValue === '0' || displayValue === '') isTruthy = false;\n else {\n try {\n isTruthy = !!new Function('return ' + displayValue)();\n } catch (e) {\n isTruthy = true;\n }\n }\n }\n\n this.innerHTML = '';\n if (isTruthy && this._masterTplNodes.length > 0) {\n this._masterTplNodes.forEach(tplNode => {\n const clone = tplNode.cloneNode(true) as HTMLElement;\n if (clone.style) clone.style.display = 'contents';\n this.
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA,eAAyC;AACzC,qCAAwC;;;;;;;;;;AAGjC,IAAM,aAAN,MAAMA,oBAAmB,uDAAuB;EAGrD,cAAA;AACE,UAAK;AAHC,SAAA,YAAiB;EAIzB;EAEA,IAAI,SAAS,KAAQ;AACnB,SAAK,YAAY;AACjB,QAAI,KAAK,gBAAgB,WAAW;AAAG,WAAK,SAAQ;AACpD,SAAK,OAAM;EACb;EAEA,IAAI,WAAQ;AACV,WAAO,KAAK;EACd;EAGA,iBAAc;AACZ,WAAO;EACT;EAEA,oBAAiB;AACf,SAAK,SAAQ;AACb,QAAI,KAAK,gBAAgB,SAAS,GAAG;AACnC,WAAK,YAAY;AACjB,WAAK,OAAM;IACb;EACF;EAEQ,SAAM;AACZ,UAAM,YAAY,KAAK,aAAa,WAAW,KAAK,KAAK,aAAa,OAAO;AAC7E,QAAI,cAAc,QAAQ,UAAU,SAAS,IAAI;AAAG;AAEpD,QAAI,eAAe,cAAc,OAAO,YAAY,KAAK;AACzD,QAAI,WAAW,CAAC,CAAC;AACjB,QAAI,OAAO,iBAAiB,UAAU;AACpC,UAAI,iBAAiB,WAAW,iBAAiB,OAAO,iBAAiB;AAAI,mBAAW;WACnF;AACH,YAAI;AACF,qBAAW,CAAC,CAAC,IAAI,SAAS,YAAY,YAAY,EAAC;QACrD,SAAS,GAAG;AACV,qBAAW;QACb;MACF;IACF;AAEA,SAAK,YAAY;AACjB,QAAI,YAAY,KAAK,gBAAgB,SAAS,GAAG;AAC/C,WAAK,gBAAgB,QAAQ,aAAU;AACrC,cAAM,QAAQ,QAAQ,UAAU,IAAI;AACpC,YAAI,MAAM;AAAO,gBAAM,MAAM,UAAU;AACvC,aAAK,
|
|
4
|
+
"sourcesContent": ["import { elementDefine, innerHtml } from '../index';\nimport { SwcHTMLTrackElementBase } from './SwcHTMLTrackElementBase';\n\n@elementDefine({ name: 'swc-if-track', extends: 'track' })\nexport class SwcIfTrack extends SwcHTMLTrackElementBase {\n private _swcValue: any = false;\n\n constructor() {\n super();\n }\n\n set swcValue(val: any) {\n this._swcValue = val;\n if (this._masterTplNodes.length === 0) this.initCore();\n this.render();\n }\n\n get swcValue(): any {\n return this._swcValue;\n }\n\n @innerHtml\n renderTemplate() {\n return `<slot id=\"tpl-slot\" style=\"display:none;\"></slot>`;\n }\n\n connectedCallback() {\n this.initCore();\n if (this._masterTplNodes.length > 0) {\n this.innerHTML = '';\n this.render();\n }\n }\n\n private render() {\n const attrValue = this.getAttribute('swc-value') || this.getAttribute('value');\n if (attrValue !== null && attrValue.includes('{{')) return;\n\n let displayValue = attrValue !== null ? attrValue : this._swcValue;\n let isTruthy = !!displayValue;\n if (typeof displayValue === 'string') {\n if (displayValue === 'false' || displayValue === '0' || displayValue === '') isTruthy = false;\n else {\n try {\n isTruthy = !!new Function('return ' + displayValue)();\n } catch (e) {\n isTruthy = true;\n }\n }\n }\n\n this.innerHTML = '';\n if (isTruthy && this._masterTplNodes.length > 0) {\n this._masterTplNodes.forEach(tplNode => {\n const clone = tplNode.cloneNode(true) as HTMLElement;\n this.appendChild(clone);\n if (clone.style) clone.style.display = 'contents';\n this.applyData(clone, this._swcValue);\n });\n }\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA,eAAyC;AACzC,qCAAwC;;;;;;;;;;AAGjC,IAAM,aAAN,MAAMA,oBAAmB,uDAAuB;EAGrD,cAAA;AACE,UAAK;AAHC,SAAA,YAAiB;EAIzB;EAEA,IAAI,SAAS,KAAQ;AACnB,SAAK,YAAY;AACjB,QAAI,KAAK,gBAAgB,WAAW;AAAG,WAAK,SAAQ;AACpD,SAAK,OAAM;EACb;EAEA,IAAI,WAAQ;AACV,WAAO,KAAK;EACd;EAGA,iBAAc;AACZ,WAAO;EACT;EAEA,oBAAiB;AACf,SAAK,SAAQ;AACb,QAAI,KAAK,gBAAgB,SAAS,GAAG;AACnC,WAAK,YAAY;AACjB,WAAK,OAAM;IACb;EACF;EAEQ,SAAM;AACZ,UAAM,YAAY,KAAK,aAAa,WAAW,KAAK,KAAK,aAAa,OAAO;AAC7E,QAAI,cAAc,QAAQ,UAAU,SAAS,IAAI;AAAG;AAEpD,QAAI,eAAe,cAAc,OAAO,YAAY,KAAK;AACzD,QAAI,WAAW,CAAC,CAAC;AACjB,QAAI,OAAO,iBAAiB,UAAU;AACpC,UAAI,iBAAiB,WAAW,iBAAiB,OAAO,iBAAiB;AAAI,mBAAW;WACnF;AACH,YAAI;AACF,qBAAW,CAAC,CAAC,IAAI,SAAS,YAAY,YAAY,EAAC;QACrD,SAAS,GAAG;AACV,qBAAW;QACb;MACF;IACF;AAEA,SAAK,YAAY;AACjB,QAAI,YAAY,KAAK,gBAAgB,SAAS,GAAG;AAC/C,WAAK,gBAAgB,QAAQ,aAAU;AACrC,cAAM,QAAQ,QAAQ,UAAU,IAAI;AACpC,aAAK,YAAY,KAAK;AACtB,YAAI,MAAM;AAAO,gBAAM,MAAM,UAAU;AACvC,aAAK,UAAU,OAAO,KAAK,SAAS;MACtC,CAAC;IACH;EACF;;AAtCA,WAAA;EADC;;;;;AAjBU,aAAU,WAAA;MADtB,wBAAc,EAAE,MAAM,gBAAgB,SAAS,QAAO,CAAE;;GAC5C,UAAU;",
|
|
6
6
|
"names": ["SwcIfTrack"]
|
|
7
7
|
}
|
package/dist/cjs/is/SwcIfUl.js
CHANGED
|
@@ -76,9 +76,9 @@ let SwcIfUl = class SwcIfUl2 extends import_SwcHTMLUListElementBase.SwcHTMLUList
|
|
|
76
76
|
if (isTruthy && this._masterTplNodes.length > 0) {
|
|
77
77
|
this._masterTplNodes.forEach((tplNode) => {
|
|
78
78
|
const clone = tplNode.cloneNode(true);
|
|
79
|
+
this.appendChild(clone);
|
|
79
80
|
if (clone.style)
|
|
80
81
|
clone.style.display = "contents";
|
|
81
|
-
this.appendChild(clone);
|
|
82
82
|
this.applyData(clone, this._swcValue);
|
|
83
83
|
});
|
|
84
84
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/is/SwcIfUl.ts"],
|
|
4
|
-
"sourcesContent": ["import { elementDefine, innerHtml } from '../index';\nimport { SwcHTMLUListElementBase } from './SwcHTMLUListElementBase';\n\n@elementDefine({ name: 'swc-if-ul', extends: 'ul' })\nexport class SwcIfUl extends SwcHTMLUListElementBase {\n private _swcValue: any = false;\n\n constructor() {\n super();\n }\n\n set swcValue(val: any) {\n this._swcValue = val;\n if (this._masterTplNodes.length === 0) this.initCore();\n this.render();\n }\n\n get swcValue(): any {\n return this._swcValue;\n }\n\n @innerHtml\n renderTemplate() {\n return `<slot id=\"tpl-slot\" style=\"display:none;\"></slot>`;\n }\n\n connectedCallback() {\n this.initCore();\n if (this._masterTplNodes.length > 0) {\n this.innerHTML = '';\n this.render();\n }\n }\n\n private render() {\n const attrValue = this.getAttribute('swc-value') || this.getAttribute('value');\n if (attrValue !== null && attrValue.includes('{{')) return;\n\n let displayValue = attrValue !== null ? attrValue : this._swcValue;\n let isTruthy = !!displayValue;\n if (typeof displayValue === 'string') {\n if (displayValue === 'false' || displayValue === '0' || displayValue === '') isTruthy = false;\n else {\n try {\n isTruthy = !!new Function('return ' + displayValue)();\n } catch (e) {\n isTruthy = true;\n }\n }\n }\n\n this.innerHTML = '';\n if (isTruthy && this._masterTplNodes.length > 0) {\n this._masterTplNodes.forEach(tplNode => {\n const clone = tplNode.cloneNode(true) as HTMLElement;\n if (clone.style) clone.style.display = 'contents';\n this.
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA,eAAyC;AACzC,qCAAwC;;;;;;;;;;AAGjC,IAAM,UAAN,MAAMA,iBAAgB,uDAAuB;EAGlD,cAAA;AACE,UAAK;AAHC,SAAA,YAAiB;EAIzB;EAEA,IAAI,SAAS,KAAQ;AACnB,SAAK,YAAY;AACjB,QAAI,KAAK,gBAAgB,WAAW;AAAG,WAAK,SAAQ;AACpD,SAAK,OAAM;EACb;EAEA,IAAI,WAAQ;AACV,WAAO,KAAK;EACd;EAGA,iBAAc;AACZ,WAAO;EACT;EAEA,oBAAiB;AACf,SAAK,SAAQ;AACb,QAAI,KAAK,gBAAgB,SAAS,GAAG;AACnC,WAAK,YAAY;AACjB,WAAK,OAAM;IACb;EACF;EAEQ,SAAM;AACZ,UAAM,YAAY,KAAK,aAAa,WAAW,KAAK,KAAK,aAAa,OAAO;AAC7E,QAAI,cAAc,QAAQ,UAAU,SAAS,IAAI;AAAG;AAEpD,QAAI,eAAe,cAAc,OAAO,YAAY,KAAK;AACzD,QAAI,WAAW,CAAC,CAAC;AACjB,QAAI,OAAO,iBAAiB,UAAU;AACpC,UAAI,iBAAiB,WAAW,iBAAiB,OAAO,iBAAiB;AAAI,mBAAW;WACnF;AACH,YAAI;AACF,qBAAW,CAAC,CAAC,IAAI,SAAS,YAAY,YAAY,EAAC;QACrD,SAAS,GAAG;AACV,qBAAW;QACb;MACF;IACF;AAEA,SAAK,YAAY;AACjB,QAAI,YAAY,KAAK,gBAAgB,SAAS,GAAG;AAC/C,WAAK,gBAAgB,QAAQ,aAAU;AACrC,cAAM,QAAQ,QAAQ,UAAU,IAAI;AACpC,YAAI,MAAM;AAAO,gBAAM,MAAM,UAAU;AACvC,aAAK,
|
|
4
|
+
"sourcesContent": ["import { elementDefine, innerHtml } from '../index';\nimport { SwcHTMLUListElementBase } from './SwcHTMLUListElementBase';\n\n@elementDefine({ name: 'swc-if-ul', extends: 'ul' })\nexport class SwcIfUl extends SwcHTMLUListElementBase {\n private _swcValue: any = false;\n\n constructor() {\n super();\n }\n\n set swcValue(val: any) {\n this._swcValue = val;\n if (this._masterTplNodes.length === 0) this.initCore();\n this.render();\n }\n\n get swcValue(): any {\n return this._swcValue;\n }\n\n @innerHtml\n renderTemplate() {\n return `<slot id=\"tpl-slot\" style=\"display:none;\"></slot>`;\n }\n\n connectedCallback() {\n this.initCore();\n if (this._masterTplNodes.length > 0) {\n this.innerHTML = '';\n this.render();\n }\n }\n\n private render() {\n const attrValue = this.getAttribute('swc-value') || this.getAttribute('value');\n if (attrValue !== null && attrValue.includes('{{')) return;\n\n let displayValue = attrValue !== null ? attrValue : this._swcValue;\n let isTruthy = !!displayValue;\n if (typeof displayValue === 'string') {\n if (displayValue === 'false' || displayValue === '0' || displayValue === '') isTruthy = false;\n else {\n try {\n isTruthy = !!new Function('return ' + displayValue)();\n } catch (e) {\n isTruthy = true;\n }\n }\n }\n\n this.innerHTML = '';\n if (isTruthy && this._masterTplNodes.length > 0) {\n this._masterTplNodes.forEach(tplNode => {\n const clone = tplNode.cloneNode(true) as HTMLElement;\n this.appendChild(clone);\n if (clone.style) clone.style.display = 'contents';\n this.applyData(clone, this._swcValue);\n });\n }\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA,eAAyC;AACzC,qCAAwC;;;;;;;;;;AAGjC,IAAM,UAAN,MAAMA,iBAAgB,uDAAuB;EAGlD,cAAA;AACE,UAAK;AAHC,SAAA,YAAiB;EAIzB;EAEA,IAAI,SAAS,KAAQ;AACnB,SAAK,YAAY;AACjB,QAAI,KAAK,gBAAgB,WAAW;AAAG,WAAK,SAAQ;AACpD,SAAK,OAAM;EACb;EAEA,IAAI,WAAQ;AACV,WAAO,KAAK;EACd;EAGA,iBAAc;AACZ,WAAO;EACT;EAEA,oBAAiB;AACf,SAAK,SAAQ;AACb,QAAI,KAAK,gBAAgB,SAAS,GAAG;AACnC,WAAK,YAAY;AACjB,WAAK,OAAM;IACb;EACF;EAEQ,SAAM;AACZ,UAAM,YAAY,KAAK,aAAa,WAAW,KAAK,KAAK,aAAa,OAAO;AAC7E,QAAI,cAAc,QAAQ,UAAU,SAAS,IAAI;AAAG;AAEpD,QAAI,eAAe,cAAc,OAAO,YAAY,KAAK;AACzD,QAAI,WAAW,CAAC,CAAC;AACjB,QAAI,OAAO,iBAAiB,UAAU;AACpC,UAAI,iBAAiB,WAAW,iBAAiB,OAAO,iBAAiB;AAAI,mBAAW;WACnF;AACH,YAAI;AACF,qBAAW,CAAC,CAAC,IAAI,SAAS,YAAY,YAAY,EAAC;QACrD,SAAS,GAAG;AACV,qBAAW;QACb;MACF;IACF;AAEA,SAAK,YAAY;AACjB,QAAI,YAAY,KAAK,gBAAgB,SAAS,GAAG;AAC/C,WAAK,gBAAgB,QAAQ,aAAU;AACrC,cAAM,QAAQ,QAAQ,UAAU,IAAI;AACpC,aAAK,YAAY,KAAK;AACtB,YAAI,MAAM;AAAO,gBAAM,MAAM,UAAU;AACvC,aAAK,UAAU,OAAO,KAAK,SAAS;MACtC,CAAC;IACH;EACF;;AAtCA,WAAA;EADC;;;;;AAjBU,UAAO,WAAA;MADnB,wBAAc,EAAE,MAAM,aAAa,SAAS,KAAI,CAAE;;GACtC,OAAO;",
|
|
6
6
|
"names": ["SwcIfUl"]
|
|
7
7
|
}
|
|
@@ -76,9 +76,9 @@ let SwcIfVideo = class SwcIfVideo2 extends import_SwcHTMLVideoElementBase.SwcHTM
|
|
|
76
76
|
if (isTruthy && this._masterTplNodes.length > 0) {
|
|
77
77
|
this._masterTplNodes.forEach((tplNode) => {
|
|
78
78
|
const clone = tplNode.cloneNode(true);
|
|
79
|
+
this.appendChild(clone);
|
|
79
80
|
if (clone.style)
|
|
80
81
|
clone.style.display = "contents";
|
|
81
|
-
this.appendChild(clone);
|
|
82
82
|
this.applyData(clone, this._swcValue);
|
|
83
83
|
});
|
|
84
84
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/is/SwcIfVideo.ts"],
|
|
4
|
-
"sourcesContent": ["import { elementDefine, innerHtml } from '../index';\nimport { SwcHTMLVideoElementBase } from './SwcHTMLVideoElementBase';\n\n@elementDefine({ name: 'swc-if-video', extends: 'video' })\nexport class SwcIfVideo extends SwcHTMLVideoElementBase {\n private _swcValue: any = false;\n\n constructor() {\n super();\n }\n\n set swcValue(val: any) {\n this._swcValue = val;\n if (this._masterTplNodes.length === 0) this.initCore();\n this.render();\n }\n\n get swcValue(): any {\n return this._swcValue;\n }\n\n @innerHtml\n renderTemplate() {\n return `<slot id=\"tpl-slot\" style=\"display:none;\"></slot>`;\n }\n\n connectedCallback() {\n this.initCore();\n if (this._masterTplNodes.length > 0) {\n this.innerHTML = '';\n this.render();\n }\n }\n\n private render() {\n const attrValue = this.getAttribute('swc-value') || this.getAttribute('value');\n if (attrValue !== null && attrValue.includes('{{')) return;\n\n let displayValue = attrValue !== null ? attrValue : this._swcValue;\n let isTruthy = !!displayValue;\n if (typeof displayValue === 'string') {\n if (displayValue === 'false' || displayValue === '0' || displayValue === '') isTruthy = false;\n else {\n try {\n isTruthy = !!new Function('return ' + displayValue)();\n } catch (e) {\n isTruthy = true;\n }\n }\n }\n\n this.innerHTML = '';\n if (isTruthy && this._masterTplNodes.length > 0) {\n this._masterTplNodes.forEach(tplNode => {\n const clone = tplNode.cloneNode(true) as HTMLElement;\n if (clone.style) clone.style.display = 'contents';\n this.
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA,eAAyC;AACzC,qCAAwC;;;;;;;;;;AAGjC,IAAM,aAAN,MAAMA,oBAAmB,uDAAuB;EAGrD,cAAA;AACE,UAAK;AAHC,SAAA,YAAiB;EAIzB;EAEA,IAAI,SAAS,KAAQ;AACnB,SAAK,YAAY;AACjB,QAAI,KAAK,gBAAgB,WAAW;AAAG,WAAK,SAAQ;AACpD,SAAK,OAAM;EACb;EAEA,IAAI,WAAQ;AACV,WAAO,KAAK;EACd;EAGA,iBAAc;AACZ,WAAO;EACT;EAEA,oBAAiB;AACf,SAAK,SAAQ;AACb,QAAI,KAAK,gBAAgB,SAAS,GAAG;AACnC,WAAK,YAAY;AACjB,WAAK,OAAM;IACb;EACF;EAEQ,SAAM;AACZ,UAAM,YAAY,KAAK,aAAa,WAAW,KAAK,KAAK,aAAa,OAAO;AAC7E,QAAI,cAAc,QAAQ,UAAU,SAAS,IAAI;AAAG;AAEpD,QAAI,eAAe,cAAc,OAAO,YAAY,KAAK;AACzD,QAAI,WAAW,CAAC,CAAC;AACjB,QAAI,OAAO,iBAAiB,UAAU;AACpC,UAAI,iBAAiB,WAAW,iBAAiB,OAAO,iBAAiB;AAAI,mBAAW;WACnF;AACH,YAAI;AACF,qBAAW,CAAC,CAAC,IAAI,SAAS,YAAY,YAAY,EAAC;QACrD,SAAS,GAAG;AACV,qBAAW;QACb;MACF;IACF;AAEA,SAAK,YAAY;AACjB,QAAI,YAAY,KAAK,gBAAgB,SAAS,GAAG;AAC/C,WAAK,gBAAgB,QAAQ,aAAU;AACrC,cAAM,QAAQ,QAAQ,UAAU,IAAI;AACpC,YAAI,MAAM;AAAO,gBAAM,MAAM,UAAU;AACvC,aAAK,
|
|
4
|
+
"sourcesContent": ["import { elementDefine, innerHtml } from '../index';\nimport { SwcHTMLVideoElementBase } from './SwcHTMLVideoElementBase';\n\n@elementDefine({ name: 'swc-if-video', extends: 'video' })\nexport class SwcIfVideo extends SwcHTMLVideoElementBase {\n private _swcValue: any = false;\n\n constructor() {\n super();\n }\n\n set swcValue(val: any) {\n this._swcValue = val;\n if (this._masterTplNodes.length === 0) this.initCore();\n this.render();\n }\n\n get swcValue(): any {\n return this._swcValue;\n }\n\n @innerHtml\n renderTemplate() {\n return `<slot id=\"tpl-slot\" style=\"display:none;\"></slot>`;\n }\n\n connectedCallback() {\n this.initCore();\n if (this._masterTplNodes.length > 0) {\n this.innerHTML = '';\n this.render();\n }\n }\n\n private render() {\n const attrValue = this.getAttribute('swc-value') || this.getAttribute('value');\n if (attrValue !== null && attrValue.includes('{{')) return;\n\n let displayValue = attrValue !== null ? attrValue : this._swcValue;\n let isTruthy = !!displayValue;\n if (typeof displayValue === 'string') {\n if (displayValue === 'false' || displayValue === '0' || displayValue === '') isTruthy = false;\n else {\n try {\n isTruthy = !!new Function('return ' + displayValue)();\n } catch (e) {\n isTruthy = true;\n }\n }\n }\n\n this.innerHTML = '';\n if (isTruthy && this._masterTplNodes.length > 0) {\n this._masterTplNodes.forEach(tplNode => {\n const clone = tplNode.cloneNode(true) as HTMLElement;\n this.appendChild(clone);\n if (clone.style) clone.style.display = 'contents';\n this.applyData(clone, this._swcValue);\n });\n }\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA,eAAyC;AACzC,qCAAwC;;;;;;;;;;AAGjC,IAAM,aAAN,MAAMA,oBAAmB,uDAAuB;EAGrD,cAAA;AACE,UAAK;AAHC,SAAA,YAAiB;EAIzB;EAEA,IAAI,SAAS,KAAQ;AACnB,SAAK,YAAY;AACjB,QAAI,KAAK,gBAAgB,WAAW;AAAG,WAAK,SAAQ;AACpD,SAAK,OAAM;EACb;EAEA,IAAI,WAAQ;AACV,WAAO,KAAK;EACd;EAGA,iBAAc;AACZ,WAAO;EACT;EAEA,oBAAiB;AACf,SAAK,SAAQ;AACb,QAAI,KAAK,gBAAgB,SAAS,GAAG;AACnC,WAAK,YAAY;AACjB,WAAK,OAAM;IACb;EACF;EAEQ,SAAM;AACZ,UAAM,YAAY,KAAK,aAAa,WAAW,KAAK,KAAK,aAAa,OAAO;AAC7E,QAAI,cAAc,QAAQ,UAAU,SAAS,IAAI;AAAG;AAEpD,QAAI,eAAe,cAAc,OAAO,YAAY,KAAK;AACzD,QAAI,WAAW,CAAC,CAAC;AACjB,QAAI,OAAO,iBAAiB,UAAU;AACpC,UAAI,iBAAiB,WAAW,iBAAiB,OAAO,iBAAiB;AAAI,mBAAW;WACnF;AACH,YAAI;AACF,qBAAW,CAAC,CAAC,IAAI,SAAS,YAAY,YAAY,EAAC;QACrD,SAAS,GAAG;AACV,qBAAW;QACb;MACF;IACF;AAEA,SAAK,YAAY;AACjB,QAAI,YAAY,KAAK,gBAAgB,SAAS,GAAG;AAC/C,WAAK,gBAAgB,QAAQ,aAAU;AACrC,cAAM,QAAQ,QAAQ,UAAU,IAAI;AACpC,aAAK,YAAY,KAAK;AACtB,YAAI,MAAM;AAAO,gBAAM,MAAM,UAAU;AACvC,aAAK,UAAU,OAAO,KAAK,SAAS;MACtC,CAAC;IACH;EACF;;AAtCA,WAAA;EADC;;;;;AAjBU,aAAU,WAAA;MADtB,wBAAc,EAAE,MAAM,gBAAgB,SAAS,QAAO,CAAE;;GAC5C,UAAU;",
|
|
6
6
|
"names": ["SwcIfVideo"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/decorators/addEventListener.ts"],
|
|
4
|
-
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\n\nexport interface AddEventListenerOptions extends EventListenerOptions {\n query?: string;\n type: string;\n
|
|
4
|
+
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\n\nexport interface AddEventListenerOptions extends EventListenerOptions {\n query?: string;\n type: string;\n root?: 'light' | 'shadow' | 'all' | 'auto';\n capture?: boolean;\n once?: boolean;\n passive?: boolean;\n stopPropagation?: boolean;\n stopImmediatePropagation?: boolean;\n preventDefault?: boolean;\n}\n\nexport interface AddEventListenerMetadata {\n options: AddEventListenerOptions;\n propertyKey: string | symbol;\n}\n\nexport const ADD_EVENT_LISTENER_METADATA_KEY = Symbol('simple-web-component:add-event-listener');\n\nexport function addEventListener(type: string, query?: string): MethodDecorator;\nexport function addEventListener(options: AddEventListenerOptions): MethodDecorator;\nexport function addEventListener(arg1: string | AddEventListenerOptions, arg2?: string): MethodDecorator {\n return (target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const constructor = target.constructor;\n const options: AddEventListenerOptions = typeof arg1 === 'string' ? { type: arg1, query: arg2 } : arg1;\n\n let listeners = ReflectUtils.getMetadata<AddEventListenerMetadata[]>(ADD_EVENT_LISTENER_METADATA_KEY, constructor);\n if (!listeners) {\n listeners = [];\n ReflectUtils.defineMetadata(ADD_EVENT_LISTENER_METADATA_KEY, listeners, constructor);\n }\n listeners.push({ options, propertyKey });\n };\n}\n\nexport const getAddEventListenerMetadata = (target: any): AddEventListenerMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ADD_EVENT_LISTENER_METADATA_KEY, constructor);\n};\n"],
|
|
5
5
|
"mappings": "AAAA,SAAS,oBAAoB;AAmBtB,MAAM,kCAAkC,OAAO,yCAAyC;AAIxF,SAAS,iBAAiB,MAAwC,MAAgC;AACvG,SAAO,CAAC,QAAgB,aAA8B,eAAmC;AACvF,UAAM,cAAc,OAAO;AAC3B,UAAM,UAAmC,OAAO,SAAS,WAAW,EAAE,MAAM,MAAM,OAAO,KAAK,IAAI;AAElG,QAAI,YAAY,aAAa,YAAwC,iCAAiC,WAAW;AACjH,QAAI,CAAC,WAAW;AACd,kBAAY,CAAC;AACb,mBAAa,eAAe,iCAAiC,WAAW,WAAW;AAAA,IACrF;AACA,cAAU,KAAK,EAAE,SAAS,YAAY,CAAC;AAAA,EACzC;AACF;AAEO,MAAM,8BAA8B,CAAC,WAAwD;AAClG,QAAM,cAAc,kBAAkB,WAAW,SAAS,OAAO;AACjE,SAAO,aAAa,YAAY,iCAAiC,WAAW;AAC9E;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -136,19 +136,37 @@ const elementDefine = (inConfig) => (constructor) => {
|
|
|
136
136
|
}
|
|
137
137
|
_syncDecorators() {
|
|
138
138
|
this._buildStateMap();
|
|
139
|
+
const getSearchRoots = (rootOption) => {
|
|
140
|
+
const roots = [];
|
|
141
|
+
if (rootOption === "shadow") {
|
|
142
|
+
if (this.shadowRoot) roots.push(this.shadowRoot);
|
|
143
|
+
} else if (rootOption === "light") {
|
|
144
|
+
roots.push(this);
|
|
145
|
+
} else if (rootOption === "all") {
|
|
146
|
+
if (this.shadowRoot) roots.push(this.shadowRoot);
|
|
147
|
+
roots.push(this);
|
|
148
|
+
} else {
|
|
149
|
+
roots.push(this.shadowRoot || this);
|
|
150
|
+
}
|
|
151
|
+
return roots;
|
|
152
|
+
};
|
|
139
153
|
const queryMetadata = getQueryMetadata(this);
|
|
140
154
|
if (queryMetadata) {
|
|
141
155
|
queryMetadata.filter((it) => it.isMethod).forEach((it) => {
|
|
142
|
-
const
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
156
|
+
const searchRoots = getSearchRoots(it.options.root);
|
|
157
|
+
let foundEl = null;
|
|
158
|
+
for (const root of searchRoots) {
|
|
159
|
+
foundEl = it.selector ? root.querySelector(it.selector) : this;
|
|
160
|
+
if (foundEl) break;
|
|
161
|
+
}
|
|
162
|
+
if (foundEl) {
|
|
163
|
+
let bound = this._boundElements.get(foundEl);
|
|
146
164
|
if (!bound) {
|
|
147
165
|
bound = /* @__PURE__ */ new Set();
|
|
148
|
-
this._boundElements.set(
|
|
166
|
+
this._boundElements.set(foundEl, bound);
|
|
149
167
|
}
|
|
150
168
|
if (!bound.has(it.propertyKey)) {
|
|
151
|
-
this[it.propertyKey](
|
|
169
|
+
this[it.propertyKey](foundEl);
|
|
152
170
|
bound.add(it.propertyKey);
|
|
153
171
|
}
|
|
154
172
|
}
|
|
@@ -157,41 +175,47 @@ const elementDefine = (inConfig) => (constructor) => {
|
|
|
157
175
|
const queryAllMetadata = getQueryAllMetadata(this);
|
|
158
176
|
if (queryAllMetadata) {
|
|
159
177
|
queryAllMetadata.filter((it) => it.isMethod).forEach((it) => {
|
|
160
|
-
const
|
|
161
|
-
const
|
|
162
|
-
|
|
178
|
+
const searchRoots = getSearchRoots(it.options.root);
|
|
179
|
+
const allElements = [];
|
|
180
|
+
searchRoots.forEach((root) => {
|
|
181
|
+
const found = it.selector ? root.querySelectorAll(it.selector) : [this];
|
|
182
|
+
allElements.push(...Array.from(found));
|
|
183
|
+
});
|
|
184
|
+
this[it.propertyKey](allElements);
|
|
163
185
|
});
|
|
164
186
|
}
|
|
165
187
|
const eventListeners = getAddEventListenerMetadata(this);
|
|
166
188
|
if (eventListeners) {
|
|
167
189
|
eventListeners.forEach((it) => {
|
|
168
|
-
const { query, type,
|
|
169
|
-
const
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
190
|
+
const { query, type, root: rootOption, ...options } = it.options;
|
|
191
|
+
const searchRoots = getSearchRoots(rootOption);
|
|
192
|
+
searchRoots.forEach((root) => {
|
|
193
|
+
const targetElements = query ? root.querySelectorAll(query) : [this];
|
|
194
|
+
targetElements.forEach((targetElement) => {
|
|
195
|
+
if (targetElement) {
|
|
196
|
+
let bound = this._boundElements.get(targetElement);
|
|
197
|
+
if (!bound) {
|
|
198
|
+
bound = /* @__PURE__ */ new Set();
|
|
199
|
+
this._boundElements.set(targetElement, bound);
|
|
200
|
+
}
|
|
201
|
+
const eventKey = `event:${String(it.propertyKey)}:${type}`;
|
|
202
|
+
if (!bound.has(eventKey)) {
|
|
203
|
+
const handler = (event) => {
|
|
204
|
+
if (it.options.stopImmediatePropagation) event.stopImmediatePropagation();
|
|
205
|
+
if (it.options.stopPropagation) event.stopPropagation();
|
|
206
|
+
if (it.options.preventDefault) event.preventDefault();
|
|
207
|
+
this[it.propertyKey](event, targetElement);
|
|
208
|
+
};
|
|
209
|
+
targetElement.addEventListener(type, handler, options);
|
|
210
|
+
bound.add(eventKey);
|
|
211
|
+
if (config.autoRemoveEventListeners) this._activeListeners.push({ el: targetElement, type, handler, options });
|
|
212
|
+
const addEventMethods = getLifecycleMetadata(this, ON_ADD_EVENT_LISTENER_METADATA_KEY);
|
|
213
|
+
addEventMethods?.forEach((m) => {
|
|
214
|
+
if (typeof this[m] === "function") this[m](targetElement, type, handler);
|
|
215
|
+
});
|
|
216
|
+
}
|
|
193
217
|
}
|
|
194
|
-
}
|
|
218
|
+
});
|
|
195
219
|
});
|
|
196
220
|
});
|
|
197
221
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/decorators/elementDefine.ts"],
|
|
4
|
-
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\nimport { getInnerHtmlMetadataList } from './innerHtml';\nimport { getQueryMetadata } from './query';\nimport { getQueryAllMetadata } from './queryAll';\nimport { getAddEventListenerMetadata } from './addEventListener';\nimport { 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';\nimport { getAttributeMetadataList } from './attribute';\nimport { getStateMetadataList } from './state';\nimport { getEmitCustomEventMetadataList } from './emitCustomEvent';\nimport { SwcUtils } from '../utils/Utils';\n\nexport interface ElementConfig {\n name: string;\n extends?: string;\n observedAttributes?: string[];\n customElementRegistry?: CustomElementRegistry;\n autoRemoveEventListeners?: boolean;\n}\n\nexport const ELEMENT_CONFIG_KEY = Symbol('simple-web-component:element-config');\nexport const STATE_CHANGE_EVENT = 'swc:state-change';\n\nconst BUILT_IN_TAG_MAP = new Map<any, string>();\n\nconst registerTag = (className: string, tagName: string) => {\n if (typeof globalThis !== 'undefined' && (globalThis as any)[className]) {\n BUILT_IN_TAG_MAP.set((globalThis as any)[className], tagName);\n }\n};\n\n[\n ['HTMLAnchorElement', 'a'],\n ['HTMLAreaElement', 'area'],\n ['HTMLAudioElement', 'audio'],\n ['HTMLBaseElement', 'base'],\n ['HTMLButtonElement', 'button'],\n ['HTMLCanvasElement', 'canvas'],\n ['HTMLDataElement', 'data'],\n ['HTMLDataListElement', 'datalist'],\n ['HTMLDetailsElement', 'details'],\n ['HTMLDialogElement', 'dialog'],\n ['HTMLDivElement', 'div'],\n ['HTMLDListElement', 'dl'],\n ['HTMLEmbedElement', 'embed'],\n ['HTMLFieldSetElement', 'fieldset'],\n ['HTMLFormElement', 'form'],\n ['HTMLHRElement', 'hr'],\n ['HTMLIFrameElement', 'iframe'],\n ['HTMLImageElement', 'img'],\n ['HTMLInputElement', 'input'],\n ['HTMLLabelElement', 'label'],\n ['HTMLLegendElement', 'legend'],\n ['HTMLLIElement', 'li'],\n ['HTMLLinkElement', 'link'],\n ['HTMLMapElement', 'map'],\n ['HTMLMetaElement', 'meta'],\n ['HTMLMeterElement', 'meter'],\n ['HTMLModElement', 'del'],\n ['HTMLObjectElement', 'object'],\n ['HTMLOListElement', 'ol'],\n ['HTMLOptGroupElement', 'optgroup'],\n ['HTMLOptionElement', 'option'],\n ['HTMLOutputElement', 'output'],\n ['HTMLParagraphElement', 'p'],\n ['HTMLParamElement', 'param'],\n ['HTMLPictureElement', 'picture'],\n ['HTMLPreElement', 'pre'],\n ['HTMLProgressElement', 'progress'],\n ['HTMLQuoteElement', 'blockquote'],\n ['HTMLScriptElement', 'script'],\n ['HTMLSelectElement', 'select'],\n ['HTMLSlotElement', 'slot'],\n ['HTMLSourceElement', 'source'],\n ['HTMLSpanElement', 'span'],\n ['HTMLStyleElement', 'style'],\n ['HTMLTableElement', 'table'],\n ['HTMLTableSectionElement', 'tbody'],\n ['HTMLTableCellElement', 'td'],\n ['HTMLTemplateElement', 'template'],\n ['HTMLTextAreaElement', 'textarea'],\n ['HTMLTimeElement', 'time'],\n ['HTMLTitleElement', 'title'],\n ['HTMLTableRowElement', 'tr'],\n ['HTMLTrackElement', 'track'],\n ['HTMLUListElement', 'ul'],\n ['HTMLVideoElement', 'video'],\n ['HTMLHeadingElement', 'h1']\n].forEach(([cls, tag]) => registerTag(cls, tag));\n\nexport const elementDefine =\n (inConfig: ElementConfig | string): ClassDecorator =>\n (constructor: any) => {\n const config: ElementConfig = typeof inConfig === 'string' ? { name: inConfig } : inConfig;\n\n let extendsTagName = config.extends;\n if (!extendsTagName) {\n let proto = Object.getPrototypeOf(constructor);\n while (proto && proto !== HTMLElement && proto !== Function.prototype) {\n extendsTagName = BUILT_IN_TAG_MAP.get(proto);\n if (extendsTagName) break;\n proto = Object.getPrototypeOf(proto);\n }\n }\n\n const attributePropsList = getAttributeMetadataList(constructor);\n const emitCustomEventList = getEmitCustomEventMetadataList(constructor);\n const stateList = getStateMetadataList(constructor);\n const observedFromProps = attributePropsList ? attributePropsList.map(it => it.options.name!) : [];\n const observedFromEmits = emitCustomEventList ? emitCustomEventList.map(it => it.options.attributeName!) : [];\n const mergedObservedAttributes = [...new Set([...(config.observedAttributes ?? []), ...observedFromProps, ...observedFromEmits])];\n\n const NewClass = class extends (constructor as any) {\n private _swcId = Math.random().toString(36).substring(2, 11);\n private _observer: MutationObserver | null = null;\n private _boundElements = new WeakMap<Element, Set<string | symbol>>();\n private _activeListeners: Array<{ el: Element | HTMLElement; type: string; handler: EventListener; options?: any }> = [];\n private _emitHandlers = new Map<string, EventListener>();\n private _stateBindings = new Map<string, any[]>();\n private _internalStates = new Map<string | symbol, any>();\n private _externalSources = new Map<string, HTMLElement>();\n\n static get observedAttributes() {\n return mergedObservedAttributes;\n }\n\n constructor(...args: any[]) {\n super(...args);\n if (stateList) {\n stateList.forEach(meta => {\n const key = meta.propertyKey;\n const stateName = meta.options.name!;\n const initialVal = (this as any)[key];\n this._internalStates.set(\n key,\n SwcUtils.createReactiveProxy(initialVal, () => this._updateState(stateName))\n );\n Object.defineProperty(this, key, {\n get: () => this._internalStates.get(key),\n set: newVal => {\n if (this._internalStates.get(key) === newVal) return;\n this._internalStates.set(\n key,\n SwcUtils.createReactiveProxy(newVal, () => this._updateState(stateName))\n );\n this._updateState(stateName);\n },\n enumerable: true,\n configurable: true\n });\n });\n }\n const innerHtmlList = getInnerHtmlMetadataList(this);\n if (innerHtmlList?.some(it => it.options.useShadow === true) && !this.shadowRoot) {\n this.attachShadow({ mode: 'open' });\n }\n }\n\n private _syncDecorators() {\n this._buildStateMap();\n const queryMetadata = getQueryMetadata(this);\n if (queryMetadata) {\n queryMetadata\n .filter(it => it.isMethod)\n .forEach(it => {\n const root = it.options.useShadow !== false && this.shadowRoot ? this.shadowRoot : this;\n const element = root.querySelector(it.selector);\n if (element) {\n let bound = this._boundElements.get(element);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(element, bound);\n }\n if (!bound.has(it.propertyKey)) {\n (this as any)[it.propertyKey](element);\n bound.add(it.propertyKey);\n }\n }\n });\n }\n const queryAllMetadata = getQueryAllMetadata(this);\n if (queryAllMetadata) {\n queryAllMetadata\n .filter(it => it.isMethod)\n .forEach(it => {\n const root = it.options.useShadow !== false && this.shadowRoot ? this.shadowRoot : this;\n const elements = root.querySelectorAll(it.selector);\n (this as any)[it.propertyKey](elements);\n });\n }\n const eventListeners = getAddEventListenerMetadata(this);\n if (eventListeners) {\n eventListeners.forEach(it => {\n const { query, type, useShadow, ...options } = it.options;\n const root = useShadow !== false && this.shadowRoot ? this.shadowRoot : this;\n const targetElements = query ? root.querySelectorAll(query) : [this as any as Element];\n targetElements.forEach(targetElement => {\n if (targetElement) {\n let bound = this._boundElements.get(targetElement);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(targetElement, bound);\n }\n const eventKey = `event:${String(it.propertyKey)}:${type}`;\n if (!bound.has(eventKey)) {\n const handler = (event: any) => {\n if (it.options.stopImmediatePropagation) event.stopImmediatePropagation();\n if (it.options.stopPropagation) event.stopPropagation();\n if (it.options.preventDefault) event.preventDefault();\n (this as any)[it.propertyKey](event, targetElement);\n };\n targetElement.addEventListener(type, handler, options);\n bound.add(eventKey);\n if (config.autoRemoveEventListeners) this._activeListeners.push({ el: targetElement, type, handler, options });\n const addEventMethods = getLifecycleMetadata(this, ON_ADD_EVENT_LISTENER_METADATA_KEY);\n addEventMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m](targetElement, type, handler);\n });\n }\n }\n });\n });\n }\n }\n\n private _buildStateMap() {\n this._stateBindings.clear();\n this._externalSources.clear();\n const scan = (root: Node) => {\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT);\n let node: Node | null = null;\n while ((node = walker.nextNode())) {\n if (node.nodeType === Node.TEXT_NODE) this._parseAndBind(node, 'text');\n else if (node.nodeType === Node.ELEMENT_NODE) {\n const el = node as HTMLElement;\n const alias = el.getAttribute('as');\n if (alias) {\n this._externalSources.set(alias, el);\n el.addEventListener(STATE_CHANGE_EVENT, () => this._updateState(alias));\n }\n Array.from(el.attributes).forEach(attr => this._parseAndBind(attr, 'attribute', el));\n }\n }\n };\n if (this.shadowRoot) scan(this.shadowRoot);\n scan(this as any as Node);\n }\n\n private _parseAndBind(node: Node | Attr, type: 'text' | 'attribute', owner?: HTMLElement) {\n const content = node.textContent || '';\n const matches = Array.from(content.matchAll(/{{(.*?)}}/g));\n if (matches.length === 0) return;\n matches.forEach(match => {\n const fullPath = match[1].trim();\n const rootName = fullPath.split('.')[0];\n const isState = stateList?.some(s => s.options.name === rootName);\n const isLogicKey = (this as any)._asKey === rootName || (this as any)._asIndexKey === rootName;\n const isExternal = this._externalSources.has(rootName);\n const isSelfAlias = this.getAttribute('as') === rootName;\n if (!isState && !isLogicKey && !isExternal && !isSelfAlias) return;\n if (!this._stateBindings.has(rootName)) this._stateBindings.set(rootName, []);\n const tplKey = `__swc_original_${this._swcId}`;\n if (!(node as any)[tplKey]) (node as any)[tplKey] = content;\n this._stateBindings.get(rootName)!.push({ node, type, owner, path: fullPath });\n this._updateState(rootName);\n });\n }\n\n private _updateState(stateName: string) {\n if (!this._stateBindings) return;\n this._executeBindingUpdate(stateName);\n const selfAlias = this.getAttribute('as');\n if (selfAlias && selfAlias !== stateName) this._executeBindingUpdate(selfAlias);\n this.dispatchEvent(new CustomEvent(STATE_CHANGE_EVENT, { bubbles: true, composed: true }));\n }\n\n private _executeBindingUpdate(stateName: string) {\n const bindings = this._stateBindings.get(stateName);\n if (!bindings) return;\n const tplKey = `__swc_original_${this._swcId}`;\n bindings.forEach(bin => {\n let text = (bin.node as any)[tplKey];\n const matches = Array.from(text.matchAll(/{{(.*?)}}/g));\n for (const match of matches) {\n const path = match[1].trim();\n const root = path.split('.')[0];\n let val: any = undefined;\n let current: HTMLElement | null = this as any as HTMLElement;\n while (current) {\n const currentNewClass = current as any;\n if (current.getAttribute('as') === root) {\n val = SwcUtils.getValueByPath(current, path.split('.').slice(1).join('.') || 'value', 'value');\n if (val !== undefined) break;\n }\n const externalSource = currentNewClass._externalSources?.get(root);\n if (externalSource) {\n val = SwcUtils.getValueByPath(externalSource, path.split('.').slice(1).join('.') || 'value', 'value');\n if (val !== undefined) break;\n }\n const cStates = getStateMetadataList(current.constructor);\n const cAttrs = getAttributeMetadataList(current.constructor);\n const sMeta = cStates?.find(s => s.options.name === root);\n const aMeta = cAttrs?.find(a => a.options.name === root);\n if (sMeta || aMeta) {\n let aPath = path;\n if (sMeta && sMeta.options.name !== String(sMeta.propertyKey)) aPath = path.replace(sMeta.options.name!, String(sMeta.propertyKey));\n else if (aMeta && aMeta.options.name !== String(aMeta.propertyKey)) aPath = path.replace(aMeta.options.name!, String(aMeta.propertyKey));\n val = SwcUtils.getValueByPath(current, aPath, root);\n if (val !== undefined) break;\n }\n current = current.parentElement || (current.getRootNode() as any).host;\n }\n if (val !== undefined) {\n const strVal = val === null || val === undefined ? '' : typeof val === 'object' ? '[Object]' : String(val);\n text = text.replace(match[0], strVal);\n if (bin.type === 'attribute' && bin.owner) {\n if (val === null || val === undefined) bin.owner.removeAttribute(bin.attrName!);\n else bin.owner.setAttribute(bin.attrName!, text);\n }\n }\n }\n if (bin.type === 'text') bin.node.textContent = text;\n });\n }\n\n disconnectedCallback() {\n const bMethods = getLifecycleMetadata(this, ON_BEFORE_DISCONNECTED_METADATA_KEY);\n bMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n if (this._observer) this._observer.disconnect();\n if (config.autoRemoveEventListeners) {\n this._activeListeners.forEach(({ el, type, handler, options }) => el.removeEventListener(type, handler, options));\n this._activeListeners = [];\n }\n if (super.disconnectedCallback) super.disconnectedCallback();\n const aMethods = getLifecycleMetadata(this, ON_AFTER_DISCONNECTED_METADATA_KEY);\n aMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n }\n\n adoptedCallback() {\n const bMethods = getLifecycleMetadata(this, ON_BEFORE_ADOPTED_METADATA_KEY);\n bMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n if (super.adoptedCallback) super.adoptedCallback();\n const aMethods = getLifecycleMetadata(this, ON_AFTER_ADOPTED_METADATA_KEY);\n aMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n }\n\n async connectedCallback() {\n const bMethods = getLifecycleMetadata(this, ON_BEFORE_CONNECTED_METADATA_KEY);\n bMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n if (typeof (this as any).initCore === 'function') (this as any).initCore();\n const iHtmlList = getInnerHtmlMetadataList(this);\n let sContent = '';\n let lContent = '';\n if (iHtmlList) {\n for (const meta of iHtmlList) {\n const result = await (this as any)[meta.propertyKey]();\n if (result !== undefined) {\n if (meta.options.useShadow === true) sContent += result;\n else lContent += result;\n }\n }\n }\n if (this.shadowRoot) this.shadowRoot.innerHTML = sContent;\n if (lContent) this.innerHTML = lContent;\n (this as any)._syncDecorators();\n this._observer = new MutationObserver(() => (this as any)._syncDecorators());\n this._observer.observe(this.shadowRoot || this, { childList: true, subtree: true });\n if (super.connectedCallback) await super.connectedCallback();\n const aMethods = getLifecycleMetadata(this, ON_AFTER_CONNECTED_METADATA_KEY);\n aMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n }\n\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n if (super.attributeChangedCallback) super.attributeChangedCallback(name, oldValue, newValue);\n if (attributePropsList) {\n attributePropsList.forEach(meta => {\n if (meta.options.name === name) {\n if (String((this as any)[meta.propertyKey]) !== String(newValue)) (this as any)[meta.propertyKey] = newValue;\n }\n });\n }\n if (typeof (this as any)._updateState === 'function') (this as any)._updateState(name);\n const aMethodsMap = getLifecycleMetadata(constructor, ON_ATTRIBUTE_CHANGED_METADATA_KEY) as Map<string, (string | symbol)[]>;\n const mKeys = aMethodsMap?.get(name);\n if (mKeys && Array.isArray(mKeys))\n mKeys.forEach(key => {\n if (typeof (this as any)[key] === 'function') (this as any)[key](newValue, oldValue, name);\n });\n if (emitCustomEventList) {\n const eMeta = emitCustomEventList.find(it => it.options.attributeName === name);\n if (eMeta) {\n const eType = eMeta.options.type;\n const oHandler = this._emitHandlers.get(eType);\n if (oHandler) this.removeEventListener(eType, oHandler);\n if (newValue) {\n const nHandler = (e: Event) => {\n new Function('event', '$data', newValue).call(this, e, (e as CustomEvent).detail);\n };\n this.addEventListener(eType, nHandler);\n this._emitHandlers.set(eType, nHandler);\n }\n }\n }\n const wMethodsKeys = aMethodsMap?.get(ATTRIBUTE_CHANGED_WILDCARD);\n if (wMethodsKeys && Array.isArray(wMethodsKeys))\n wMethodsKeys.forEach(key => {\n if (typeof (this as any)[key] === 'function') (this as any)[key](newValue, oldValue, name);\n });\n }\n };\n\n const registry = config.customElementRegistry || (typeof customElements !== 'undefined' ? customElements : undefined);\n if (registry && !registry.get(config.name)) {\n registry.define(config.name, NewClass as any, config.extends ? { extends: config.extends } : undefined);\n }\n ReflectUtils.defineMetadata(ELEMENT_CONFIG_KEY, config, NewClass);\n return NewClass as any;\n };\n\nexport const getElementConfig = (target: any): ElementConfig | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ELEMENT_CONFIG_KEY, constructor);\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\nimport { getInnerHtmlMetadataList } from './innerHtml';\nimport { getQueryMetadata } from './query';\nimport { getQueryAllMetadata } from './queryAll';\nimport { getAddEventListenerMetadata } from './addEventListener';\nimport { 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';\nimport { getAttributeMetadataList } from './attribute';\nimport { getStateMetadataList } from './state';\nimport { getEmitCustomEventMetadataList } from './emitCustomEvent';\nimport { SwcUtils } from '../utils/Utils';\n\nexport interface ElementConfig {\n name: string;\n extends?: string;\n observedAttributes?: string[];\n customElementRegistry?: CustomElementRegistry;\n autoRemoveEventListeners?: boolean;\n}\n\nexport const ELEMENT_CONFIG_KEY = Symbol('simple-web-component:element-config');\nexport const STATE_CHANGE_EVENT = 'swc:state-change';\n\nconst BUILT_IN_TAG_MAP = new Map<any, string>();\n\nconst registerTag = (className: string, tagName: string) => {\n if (typeof globalThis !== 'undefined' && (globalThis as any)[className]) {\n BUILT_IN_TAG_MAP.set((globalThis as any)[className], tagName);\n }\n};\n\n[\n ['HTMLAnchorElement', 'a'],\n ['HTMLAreaElement', 'area'],\n ['HTMLAudioElement', 'audio'],\n ['HTMLBaseElement', 'base'],\n ['HTMLButtonElement', 'button'],\n ['HTMLCanvasElement', 'canvas'],\n ['HTMLDataElement', 'data'],\n ['HTMLDataListElement', 'datalist'],\n ['HTMLDetailsElement', 'details'],\n ['HTMLDialogElement', 'dialog'],\n ['HTMLDivElement', 'div'],\n ['HTMLDListElement', 'dl'],\n ['HTMLEmbedElement', 'embed'],\n ['HTMLFieldSetElement', 'fieldset'],\n ['HTMLFormElement', 'form'],\n ['HTMLHRElement', 'hr'],\n ['HTMLIFrameElement', 'iframe'],\n ['HTMLImageElement', 'img'],\n ['HTMLInputElement', 'input'],\n ['HTMLLabelElement', 'label'],\n ['HTMLLegendElement', 'legend'],\n ['HTMLLIElement', 'li'],\n ['HTMLLinkElement', 'link'],\n ['HTMLMapElement', 'map'],\n ['HTMLMetaElement', 'meta'],\n ['HTMLMeterElement', 'meter'],\n ['HTMLModElement', 'del'],\n ['HTMLObjectElement', 'object'],\n ['HTMLOListElement', 'ol'],\n ['HTMLOptGroupElement', 'optgroup'],\n ['HTMLOptionElement', 'option'],\n ['HTMLOutputElement', 'output'],\n ['HTMLParagraphElement', 'p'],\n ['HTMLParamElement', 'param'],\n ['HTMLPictureElement', 'picture'],\n ['HTMLPreElement', 'pre'],\n ['HTMLProgressElement', 'progress'],\n ['HTMLQuoteElement', 'blockquote'],\n ['HTMLScriptElement', 'script'],\n ['HTMLSelectElement', 'select'],\n ['HTMLSlotElement', 'slot'],\n ['HTMLSourceElement', 'source'],\n ['HTMLSpanElement', 'span'],\n ['HTMLStyleElement', 'style'],\n ['HTMLTableElement', 'table'],\n ['HTMLTableSectionElement', 'tbody'],\n ['HTMLTableCellElement', 'td'],\n ['HTMLTemplateElement', 'template'],\n ['HTMLTextAreaElement', 'textarea'],\n ['HTMLTimeElement', 'time'],\n ['HTMLTitleElement', 'title'],\n ['HTMLTableRowElement', 'tr'],\n ['HTMLTrackElement', 'track'],\n ['HTMLUListElement', 'ul'],\n ['HTMLVideoElement', 'video'],\n ['HTMLHeadingElement', 'h1']\n].forEach(([cls, tag]) => registerTag(cls, tag));\n\nexport const elementDefine =\n (inConfig: ElementConfig | string): ClassDecorator =>\n (constructor: any) => {\n const config: ElementConfig = typeof inConfig === 'string' ? { name: inConfig } : inConfig;\n\n let extendsTagName = config.extends;\n if (!extendsTagName) {\n let proto = Object.getPrototypeOf(constructor);\n while (proto && proto !== HTMLElement && proto !== Function.prototype) {\n extendsTagName = BUILT_IN_TAG_MAP.get(proto);\n if (extendsTagName) break;\n proto = Object.getPrototypeOf(proto);\n }\n }\n\n const attributePropsList = getAttributeMetadataList(constructor);\n const emitCustomEventList = getEmitCustomEventMetadataList(constructor);\n const stateList = getStateMetadataList(constructor);\n const observedFromProps = attributePropsList ? attributePropsList.map(it => it.options.name!) : [];\n const observedFromEmits = emitCustomEventList ? emitCustomEventList.map(it => it.options.attributeName!) : [];\n const mergedObservedAttributes = [...new Set([...(config.observedAttributes ?? []), ...observedFromProps, ...observedFromEmits])];\n\n const NewClass = class extends (constructor as any) {\n private _swcId = Math.random().toString(36).substring(2, 11);\n private _observer: MutationObserver | null = null;\n private _boundElements = new WeakMap<Element, Set<string | symbol>>();\n private _activeListeners: Array<{ el: Element | HTMLElement; type: string; handler: EventListener; options?: any }> = [];\n private _emitHandlers = new Map<string, EventListener>();\n private _stateBindings = new Map<string, any[]>();\n private _internalStates = new Map<string | symbol, any>();\n private _externalSources = new Map<string, HTMLElement>();\n\n static get observedAttributes() {\n return mergedObservedAttributes;\n }\n\n constructor(...args: any[]) {\n super(...args);\n if (stateList) {\n stateList.forEach(meta => {\n const key = meta.propertyKey;\n const stateName = meta.options.name!;\n const initialVal = (this as any)[key];\n this._internalStates.set(\n key,\n SwcUtils.createReactiveProxy(initialVal, () => this._updateState(stateName))\n );\n Object.defineProperty(this, key, {\n get: () => this._internalStates.get(key),\n set: newVal => {\n if (this._internalStates.get(key) === newVal) return;\n this._internalStates.set(\n key,\n SwcUtils.createReactiveProxy(newVal, () => this._updateState(stateName))\n );\n this._updateState(stateName);\n },\n enumerable: true,\n configurable: true\n });\n });\n }\n const innerHtmlList = getInnerHtmlMetadataList(this);\n if (innerHtmlList?.some(it => it.options.useShadow === true) && !this.shadowRoot) {\n this.attachShadow({ mode: 'open' });\n }\n }\n\n private _syncDecorators() {\n this._buildStateMap();\n\n const getSearchRoots = (rootOption?: string): Node[] => {\n const roots: Node[] = [];\n if (rootOption === 'shadow') {\n if (this.shadowRoot) roots.push(this.shadowRoot);\n } else if (rootOption === 'light') {\n roots.push(this as any as Node);\n } else if (rootOption === 'all') {\n if (this.shadowRoot) roots.push(this.shadowRoot);\n roots.push(this as any as Node);\n } else {\n // Default: 'auto'\n roots.push(this.shadowRoot || (this as any as Node));\n }\n return roots;\n };\n\n const queryMetadata = getQueryMetadata(this);\n if (queryMetadata) {\n queryMetadata\n .filter(it => it.isMethod)\n .forEach(it => {\n const searchRoots = getSearchRoots(it.options.root);\n let foundEl: Element | null = null;\n for (const root of searchRoots) {\n foundEl = it.selector ? (root as HTMLElement).querySelector(it.selector) : (this as any as Element);\n if (foundEl) break;\n }\n if (foundEl) {\n let bound = this._boundElements.get(foundEl);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(foundEl, bound);\n }\n if (!bound.has(it.propertyKey)) {\n (this as any)[it.propertyKey](foundEl);\n bound.add(it.propertyKey);\n }\n }\n });\n }\n\n const queryAllMetadata = getQueryAllMetadata(this);\n if (queryAllMetadata) {\n queryAllMetadata\n .filter(it => it.isMethod)\n .forEach(it => {\n const searchRoots = getSearchRoots(it.options.root);\n const allElements: Element[] = [];\n searchRoots.forEach(root => {\n const found = it.selector ? (root as HTMLElement).querySelectorAll(it.selector) : [this as any as Element];\n allElements.push(...Array.from(found));\n });\n (this as any)[it.propertyKey](allElements);\n });\n }\n\n const eventListeners = getAddEventListenerMetadata(this);\n if (eventListeners) {\n eventListeners.forEach(it => {\n const { query, type, root: rootOption, ...options } = it.options;\n const searchRoots = getSearchRoots(rootOption);\n searchRoots.forEach(root => {\n const targetElements = query ? (root as HTMLElement).querySelectorAll(query) : [this as any as Element];\n targetElements.forEach(targetElement => {\n if (targetElement) {\n let bound = this._boundElements.get(targetElement);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(targetElement, bound);\n }\n const eventKey = `event:${String(it.propertyKey)}:${type}`;\n if (!bound.has(eventKey)) {\n const handler = (event: any) => {\n if (it.options.stopImmediatePropagation) event.stopImmediatePropagation();\n if (it.options.stopPropagation) event.stopPropagation();\n if (it.options.preventDefault) event.preventDefault();\n (this as any)[it.propertyKey](event, targetElement);\n };\n targetElement.addEventListener(type, handler, options);\n bound.add(eventKey);\n if (config.autoRemoveEventListeners) this._activeListeners.push({ el: targetElement, type, handler, options });\n const addEventMethods = getLifecycleMetadata(this, ON_ADD_EVENT_LISTENER_METADATA_KEY);\n addEventMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m](targetElement, type, handler);\n });\n }\n }\n });\n });\n });\n }\n }\n\n private _buildStateMap() {\n this._stateBindings.clear();\n this._externalSources.clear();\n const scan = (root: Node) => {\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT);\n let node: Node | null = null;\n while ((node = walker.nextNode())) {\n if (node.nodeType === Node.TEXT_NODE) this._parseAndBind(node, 'text');\n else if (node.nodeType === Node.ELEMENT_NODE) {\n const el = node as HTMLElement;\n const alias = el.getAttribute('as');\n if (alias) {\n this._externalSources.set(alias, el);\n el.addEventListener(STATE_CHANGE_EVENT, () => this._updateState(alias));\n }\n Array.from(el.attributes).forEach(attr => this._parseAndBind(attr, 'attribute', el));\n }\n }\n };\n if (this.shadowRoot) scan(this.shadowRoot);\n scan(this as any as Node);\n }\n\n private _parseAndBind(node: Node | Attr, type: 'text' | 'attribute', owner?: HTMLElement) {\n const content = node.textContent || '';\n const matches = Array.from(content.matchAll(/{{(.*?)}}/g));\n if (matches.length === 0) return;\n matches.forEach(match => {\n const fullPath = match[1].trim();\n const rootName = fullPath.split('.')[0];\n const isState = stateList?.some(s => s.options.name === rootName);\n const isLogicKey = (this as any)._asKey === rootName || (this as any)._asIndexKey === rootName;\n const isExternal = this._externalSources.has(rootName);\n const isSelfAlias = this.getAttribute('as') === rootName;\n if (!isState && !isLogicKey && !isExternal && !isSelfAlias) return;\n if (!this._stateBindings.has(rootName)) this._stateBindings.set(rootName, []);\n const tplKey = `__swc_original_${this._swcId}`;\n if (!(node as any)[tplKey]) (node as any)[tplKey] = content;\n this._stateBindings.get(rootName)!.push({ node, type, owner, path: fullPath });\n this._updateState(rootName);\n });\n }\n\n private _updateState(stateName: string) {\n if (!this._stateBindings) return;\n this._executeBindingUpdate(stateName);\n const selfAlias = this.getAttribute('as');\n if (selfAlias && selfAlias !== stateName) this._executeBindingUpdate(selfAlias);\n this.dispatchEvent(new CustomEvent(STATE_CHANGE_EVENT, { bubbles: true, composed: true }));\n }\n\n private _executeBindingUpdate(stateName: string) {\n const bindings = this._stateBindings.get(stateName);\n if (!bindings) return;\n const tplKey = `__swc_original_${this._swcId}`;\n bindings.forEach(bin => {\n let text = (bin.node as any)[tplKey];\n const matches = Array.from(text.matchAll(/{{(.*?)}}/g));\n for (const match of matches) {\n const path = match[1].trim();\n const root = path.split('.')[0];\n let val: any = undefined;\n let current: HTMLElement | null = this as any as HTMLElement;\n while (current) {\n const currentNewClass = current as any;\n if (current.getAttribute('as') === root) {\n val = SwcUtils.getValueByPath(current, path.split('.').slice(1).join('.') || 'value', 'value');\n if (val !== undefined) break;\n }\n const externalSource = currentNewClass._externalSources?.get(root);\n if (externalSource) {\n val = SwcUtils.getValueByPath(externalSource, path.split('.').slice(1).join('.') || 'value', 'value');\n if (val !== undefined) break;\n }\n const cStates = getStateMetadataList(current.constructor);\n const cAttrs = getAttributeMetadataList(current.constructor);\n const sMeta = cStates?.find(s => s.options.name === root);\n const aMeta = cAttrs?.find(a => a.options.name === root);\n if (sMeta || aMeta) {\n let aPath = path;\n if (sMeta && sMeta.options.name !== String(sMeta.propertyKey)) aPath = path.replace(sMeta.options.name!, String(sMeta.propertyKey));\n else if (aMeta && aMeta.options.name !== String(aMeta.propertyKey)) aPath = path.replace(aMeta.options.name!, String(aMeta.propertyKey));\n val = SwcUtils.getValueByPath(current, aPath, root);\n if (val !== undefined) break;\n }\n current = current.parentElement || (current.getRootNode() as any).host;\n }\n if (val !== undefined) {\n const strVal = val === null || val === undefined ? '' : typeof val === 'object' ? '[Object]' : String(val);\n text = text.replace(match[0], strVal);\n if (bin.type === 'attribute' && bin.owner) {\n if (val === null || val === undefined) bin.owner.removeAttribute(bin.attrName!);\n else bin.owner.setAttribute(bin.attrName!, text);\n }\n }\n }\n if (bin.type === 'text') bin.node.textContent = text;\n });\n }\n\n disconnectedCallback() {\n const bMethods = getLifecycleMetadata(this, ON_BEFORE_DISCONNECTED_METADATA_KEY);\n bMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n if (this._observer) this._observer.disconnect();\n if (config.autoRemoveEventListeners) {\n this._activeListeners.forEach(({ el, type, handler, options }) => el.removeEventListener(type, handler, options));\n this._activeListeners = [];\n }\n if (super.disconnectedCallback) super.disconnectedCallback();\n const aMethods = getLifecycleMetadata(this, ON_AFTER_DISCONNECTED_METADATA_KEY);\n aMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n }\n\n adoptedCallback() {\n const bMethods = getLifecycleMetadata(this, ON_BEFORE_ADOPTED_METADATA_KEY);\n bMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n if (super.adoptedCallback) super.adoptedCallback();\n const aMethods = getLifecycleMetadata(this, ON_AFTER_ADOPTED_METADATA_KEY);\n aMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n }\n\n async connectedCallback() {\n const bMethods = getLifecycleMetadata(this, ON_BEFORE_CONNECTED_METADATA_KEY);\n bMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n if (typeof (this as any).initCore === 'function') (this as any).initCore();\n const iHtmlList = getInnerHtmlMetadataList(this);\n let sContent = '';\n let lContent = '';\n if (iHtmlList) {\n for (const meta of iHtmlList) {\n const result = await (this as any)[meta.propertyKey]();\n if (result !== undefined) {\n if (meta.options.useShadow === true) sContent += result;\n else lContent += result;\n }\n }\n }\n if (this.shadowRoot) this.shadowRoot.innerHTML = sContent;\n if (lContent) this.innerHTML = lContent;\n (this as any)._syncDecorators();\n this._observer = new MutationObserver(() => (this as any)._syncDecorators());\n this._observer.observe(this.shadowRoot || this, { childList: true, subtree: true });\n if (super.connectedCallback) await super.connectedCallback();\n const aMethods = getLifecycleMetadata(this, ON_AFTER_CONNECTED_METADATA_KEY);\n aMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n }\n\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n if (super.attributeChangedCallback) super.attributeChangedCallback(name, oldValue, newValue);\n if (attributePropsList) {\n attributePropsList.forEach(meta => {\n if (meta.options.name === name) {\n if (String((this as any)[meta.propertyKey]) !== String(newValue)) (this as any)[meta.propertyKey] = newValue;\n }\n });\n }\n if (typeof (this as any)._updateState === 'function') (this as any)._updateState(name);\n const aMethodsMap = getLifecycleMetadata(constructor, ON_ATTRIBUTE_CHANGED_METADATA_KEY) as Map<string, (string | symbol)[]>;\n const mKeys = aMethodsMap?.get(name);\n if (mKeys && Array.isArray(mKeys))\n mKeys.forEach(key => {\n if (typeof (this as any)[key] === 'function') (this as any)[key](newValue, oldValue, name);\n });\n if (emitCustomEventList) {\n const eMeta = emitCustomEventList.find(it => it.options.attributeName === name);\n if (eMeta) {\n const eType = eMeta.options.type;\n const oHandler = this._emitHandlers.get(eType);\n if (oHandler) this.removeEventListener(eType, oHandler);\n if (newValue) {\n const nHandler = (e: Event) => {\n new Function('event', '$data', newValue).call(this, e, (e as CustomEvent).detail);\n };\n this.addEventListener(eType, nHandler);\n this._emitHandlers.set(eType, nHandler);\n }\n }\n }\n const wMethodsKeys = aMethodsMap?.get(ATTRIBUTE_CHANGED_WILDCARD);\n if (wMethodsKeys && Array.isArray(wMethodsKeys))\n wMethodsKeys.forEach(key => {\n if (typeof (this as any)[key] === 'function') (this as any)[key](newValue, oldValue, name);\n });\n }\n };\n\n const registry = config.customElementRegistry || (typeof customElements !== 'undefined' ? customElements : undefined);\n if (registry && !registry.get(config.name)) {\n registry.define(config.name, NewClass as any, config.extends ? { extends: config.extends } : undefined);\n }\n ReflectUtils.defineMetadata(ELEMENT_CONFIG_KEY, config, NewClass);\n return NewClass as any;\n };\n\nexport const getElementConfig = (target: any): ElementConfig | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ELEMENT_CONFIG_KEY, constructor);\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ReflectUtils } from "@dooboostore/core/reflect/ReflectUtils";
|
|
2
2
|
const QUERY_METADATA_KEY = Symbol("simple-web-component:query");
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
function query(arg1, arg2) {
|
|
4
|
+
const decorator = (selector, options, target, propertyKey, descriptor) => {
|
|
5
5
|
const isMethod = !!descriptor;
|
|
6
6
|
const constructor = target.constructor;
|
|
7
7
|
let queries = ReflectUtils.getMetadata(QUERY_METADATA_KEY, constructor);
|
|
@@ -13,15 +13,37 @@ const query = (selector, options = { useShadow: true }) => {
|
|
|
13
13
|
if (!isMethod) {
|
|
14
14
|
Object.defineProperty(target, propertyKey, {
|
|
15
15
|
get() {
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
if (!selector)
|
|
17
|
+
return this;
|
|
18
|
+
let searchRoot = this;
|
|
19
|
+
if (options.root === "shadow")
|
|
20
|
+
searchRoot = this.shadowRoot || this;
|
|
21
|
+
else if (options.root === "light")
|
|
22
|
+
searchRoot = this;
|
|
23
|
+
else
|
|
24
|
+
searchRoot = this.shadowRoot || this;
|
|
25
|
+
return searchRoot.querySelector(selector);
|
|
18
26
|
},
|
|
19
27
|
enumerable: true,
|
|
20
28
|
configurable: true
|
|
21
29
|
});
|
|
22
30
|
}
|
|
23
31
|
};
|
|
24
|
-
|
|
32
|
+
if (arg1 && typeof arg2 === "string") {
|
|
33
|
+
return decorator("", {}, arg1, arg2);
|
|
34
|
+
}
|
|
35
|
+
return (target, propertyKey, descriptor) => {
|
|
36
|
+
let selector = "";
|
|
37
|
+
let options = {};
|
|
38
|
+
if (typeof arg1 === "string") {
|
|
39
|
+
selector = arg1;
|
|
40
|
+
} else if (typeof arg1 === "object") {
|
|
41
|
+
options = arg1;
|
|
42
|
+
selector = options.selector || "";
|
|
43
|
+
}
|
|
44
|
+
decorator(selector, options, target, propertyKey, descriptor);
|
|
45
|
+
};
|
|
46
|
+
}
|
|
25
47
|
const getQueryMetadata = (target) => {
|
|
26
48
|
const constructor = target instanceof Function ? target : target.constructor;
|
|
27
49
|
return ReflectUtils.getMetadata(QUERY_METADATA_KEY, constructor);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/decorators/query.ts"],
|
|
4
|
-
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\n\nexport interface QueryOptions {\n
|
|
5
|
-
"mappings": "AAAA,SAAS,oBAAoB;
|
|
4
|
+
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\n\nexport interface QueryOptions {\n selector?: string;\n root?: 'light' | 'shadow' | 'all' | 'auto';\n}\n\nexport interface QueryMetadata {\n selector: string;\n options: QueryOptions;\n propertyKey: string | symbol;\n isMethod: boolean;\n}\n\nexport const QUERY_METADATA_KEY = Symbol('simple-web-component:query');\n\nexport function query(selector: string): any;\nexport function query(options: QueryOptions): any;\nexport function query(target: Object, propertyKey: string | symbol): void;\nexport function query(arg1?: string | QueryOptions | Object, arg2?: string | symbol): any {\n const decorator = (selector: string, options: QueryOptions, target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {\n const isMethod = !!descriptor;\n const constructor = target.constructor;\n\n let queries = ReflectUtils.getMetadata<QueryMetadata[]>(QUERY_METADATA_KEY, constructor);\n if (!queries) {\n queries = [];\n ReflectUtils.defineMetadata(QUERY_METADATA_KEY, queries, constructor);\n }\n queries.push({ selector, options, propertyKey, isMethod });\n\n if (!isMethod) {\n Object.defineProperty(target, propertyKey, {\n get(this: HTMLElement) {\n if (!selector) return this;\n let searchRoot: Node = this;\n if (options.root === 'shadow') searchRoot = this.shadowRoot || this;\n else if (options.root === 'light') searchRoot = this;\n else searchRoot = this.shadowRoot || this; // Default: Auto (Shadow-First)\n\n return (searchRoot as HTMLElement).querySelector(selector);\n },\n enumerable: true,\n configurable: true\n });\n }\n };\n\n // Case: @query (parameterless decorator)\n if (arg1 && typeof arg2 === 'string') {\n return decorator('', {}, arg1 as Object, arg2 as string | symbol);\n }\n\n // Case: @query('selector') or @query({ selector: '...', ... })\n return (target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {\n let selector = '';\n let options: QueryOptions = {};\n\n if (typeof arg1 === 'string') {\n selector = arg1;\n } else if (typeof arg1 === 'object') {\n options = arg1 as QueryOptions;\n selector = options.selector || '';\n }\n\n decorator(selector, options, target, propertyKey, descriptor);\n };\n}\n\nexport const getQueryMetadata = (target: any): QueryMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(QUERY_METADATA_KEY, constructor);\n};\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,oBAAoB;AActB,MAAM,qBAAqB,OAAO,4BAA4B;AAK/D,SAAU,MAAM,MAAuC,MAAsB;AACjF,QAAM,YAAY,CAAC,UAAkB,SAAuB,QAAgB,aAA8B,eAAmC;AAC3I,UAAM,WAAW,CAAC,CAAC;AACnB,UAAM,cAAc,OAAO;AAE3B,QAAI,UAAU,aAAa,YAA6B,oBAAoB,WAAW;AACvF,QAAI,CAAC,SAAS;AACZ,gBAAU,CAAA;AACV,mBAAa,eAAe,oBAAoB,SAAS,WAAW;IACtE;AACA,YAAQ,KAAK,EAAE,UAAU,SAAS,aAAa,SAAQ,CAAE;AAEzD,QAAI,CAAC,UAAU;AACb,aAAO,eAAe,QAAQ,aAAa;QACzC,MAAG;AACD,cAAI,CAAC;AAAU,mBAAO;AACtB,cAAI,aAAmB;AACvB,cAAI,QAAQ,SAAS;AAAU,yBAAa,KAAK,cAAc;mBACtD,QAAQ,SAAS;AAAS,yBAAa;;AAC3C,yBAAa,KAAK,cAAc;AAErC,iBAAQ,WAA2B,cAAc,QAAQ;QAC3D;QACA,YAAY;QACZ,cAAc;OACf;IACH;EACF;AAGA,MAAI,QAAQ,OAAO,SAAS,UAAU;AACpC,WAAO,UAAU,IAAI,CAAA,GAAI,MAAgB,IAAuB;EAClE;AAGA,SAAO,CAAC,QAAgB,aAA8B,eAAmC;AACvF,QAAI,WAAW;AACf,QAAI,UAAwB,CAAA;AAE5B,QAAI,OAAO,SAAS,UAAU;AAC5B,iBAAW;IACb,WAAW,OAAO,SAAS,UAAU;AACnC,gBAAU;AACV,iBAAW,QAAQ,YAAY;IACjC;AAEA,cAAU,UAAU,SAAS,QAAQ,aAAa,UAAU;EAC9D;AACF;AAEO,MAAM,mBAAmB,CAAC,WAA4C;AAC3E,QAAM,cAAc,kBAAkB,WAAW,SAAS,OAAO;AACjE,SAAO,aAAa,YAAY,oBAAoB,WAAW;AACjE;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ReflectUtils } from "@dooboostore/core/reflect/ReflectUtils";
|
|
2
2
|
const QUERY_ALL_METADATA_KEY = Symbol("simple-web-component:query-all");
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
function queryAll(arg1, arg2) {
|
|
4
|
+
const decorator = (selector, options, target, propertyKey, descriptor) => {
|
|
5
5
|
const isMethod = !!descriptor;
|
|
6
6
|
const constructor = target.constructor;
|
|
7
7
|
let queries = ReflectUtils.getMetadata(QUERY_ALL_METADATA_KEY, constructor);
|
|
@@ -13,15 +13,37 @@ const queryAll = (selector, options = { useShadow: true }) => {
|
|
|
13
13
|
if (!isMethod) {
|
|
14
14
|
Object.defineProperty(target, propertyKey, {
|
|
15
15
|
get() {
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
if (!selector)
|
|
17
|
+
return [this];
|
|
18
|
+
let searchRoot = this;
|
|
19
|
+
if (options.root === "shadow")
|
|
20
|
+
searchRoot = this.shadowRoot || this;
|
|
21
|
+
else if (options.root === "light")
|
|
22
|
+
searchRoot = this;
|
|
23
|
+
else
|
|
24
|
+
searchRoot = this.shadowRoot || this;
|
|
25
|
+
return searchRoot.querySelectorAll(selector);
|
|
18
26
|
},
|
|
19
27
|
enumerable: true,
|
|
20
28
|
configurable: true
|
|
21
29
|
});
|
|
22
30
|
}
|
|
23
31
|
};
|
|
24
|
-
|
|
32
|
+
if (arg1 && typeof arg2 === "string") {
|
|
33
|
+
return decorator("", {}, arg1, arg2);
|
|
34
|
+
}
|
|
35
|
+
return (target, propertyKey, descriptor) => {
|
|
36
|
+
let selector = "";
|
|
37
|
+
let options = {};
|
|
38
|
+
if (typeof arg1 === "string") {
|
|
39
|
+
selector = arg1;
|
|
40
|
+
} else if (typeof arg1 === "object") {
|
|
41
|
+
options = arg1;
|
|
42
|
+
selector = options.selector || "";
|
|
43
|
+
}
|
|
44
|
+
decorator(selector, options, target, propertyKey, descriptor);
|
|
45
|
+
};
|
|
46
|
+
}
|
|
25
47
|
const getQueryAllMetadata = (target) => {
|
|
26
48
|
const constructor = target instanceof Function ? target : target.constructor;
|
|
27
49
|
return ReflectUtils.getMetadata(QUERY_ALL_METADATA_KEY, constructor);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/decorators/queryAll.ts"],
|
|
4
|
-
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\n\nexport interface QueryAllOptions {\n
|
|
5
|
-
"mappings": "AAAA,SAAS,oBAAoB;
|
|
4
|
+
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\n\nexport interface QueryAllOptions {\n selector?: string;\n root?: 'light' | 'shadow' | 'all' | 'auto';\n}\n\nexport interface QueryAllMetadata {\n selector: string;\n options: QueryAllOptions;\n propertyKey: string | symbol;\n isMethod: boolean;\n}\n\nexport const QUERY_ALL_METADATA_KEY = Symbol('simple-web-component:query-all');\n\nexport function queryAll(selector: string): any;\nexport function queryAll(options: QueryAllOptions): any;\nexport function queryAll(target: Object, propertyKey: string | symbol): void;\nexport function queryAll(arg1?: string | QueryAllOptions | Object, arg2?: string | symbol): any {\n const decorator = (selector: string, options: QueryAllOptions, target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {\n const isMethod = !!descriptor;\n const constructor = target.constructor;\n\n let queries = ReflectUtils.getMetadata<QueryAllMetadata[]>(QUERY_ALL_METADATA_KEY, constructor);\n if (!queries) {\n queries = [];\n ReflectUtils.defineMetadata(QUERY_ALL_METADATA_KEY, queries, constructor);\n }\n queries.push({ selector, options, propertyKey, isMethod });\n\n if (!isMethod) {\n Object.defineProperty(target, propertyKey, {\n get(this: HTMLElement) {\n if (!selector) return [this];\n let searchRoot: Node = this;\n if (options.root === 'shadow') searchRoot = this.shadowRoot || this;\n else if (options.root === 'light') searchRoot = this;\n else searchRoot = this.shadowRoot || this; // Default: Auto (Shadow-First)\n\n return (searchRoot as HTMLElement).querySelectorAll(selector);\n },\n enumerable: true,\n configurable: true\n });\n }\n };\n\n // Case: @queryAll (parameterless decorator)\n if (arg1 && typeof arg2 === 'string') {\n return decorator('', {}, arg1 as Object, arg2 as string | symbol);\n }\n\n // Case: @queryAll('selector') or @queryAll({ selector: '...', ... })\n return (target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {\n let selector = '';\n let options: QueryAllOptions = {};\n\n if (typeof arg1 === 'string') {\n selector = arg1;\n } else if (typeof arg1 === 'object') {\n options = arg1 as QueryAllOptions;\n selector = options.selector || '';\n }\n\n decorator(selector, options, target, propertyKey, descriptor);\n };\n}\n\nexport const getQueryAllMetadata = (target: any): QueryAllMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(QUERY_ALL_METADATA_KEY, constructor);\n};\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,oBAAoB;AActB,MAAM,yBAAyB,OAAO,gCAAgC;AAKvE,SAAU,SAAS,MAA0C,MAAsB;AACvF,QAAM,YAAY,CAAC,UAAkB,SAA0B,QAAgB,aAA8B,eAAmC;AAC9I,UAAM,WAAW,CAAC,CAAC;AACnB,UAAM,cAAc,OAAO;AAE3B,QAAI,UAAU,aAAa,YAAgC,wBAAwB,WAAW;AAC9F,QAAI,CAAC,SAAS;AACZ,gBAAU,CAAA;AACV,mBAAa,eAAe,wBAAwB,SAAS,WAAW;IAC1E;AACA,YAAQ,KAAK,EAAE,UAAU,SAAS,aAAa,SAAQ,CAAE;AAEzD,QAAI,CAAC,UAAU;AACb,aAAO,eAAe,QAAQ,aAAa;QACzC,MAAG;AACD,cAAI,CAAC;AAAU,mBAAO,CAAC,IAAI;AAC3B,cAAI,aAAmB;AACvB,cAAI,QAAQ,SAAS;AAAU,yBAAa,KAAK,cAAc;mBACtD,QAAQ,SAAS;AAAS,yBAAa;;AAC3C,yBAAa,KAAK,cAAc;AAErC,iBAAQ,WAA2B,iBAAiB,QAAQ;QAC9D;QACA,YAAY;QACZ,cAAc;OACf;IACH;EACF;AAGA,MAAI,QAAQ,OAAO,SAAS,UAAU;AACpC,WAAO,UAAU,IAAI,CAAA,GAAI,MAAgB,IAAuB;EAClE;AAGA,SAAO,CAAC,QAAgB,aAA8B,eAAmC;AACvF,QAAI,WAAW;AACf,QAAI,UAA2B,CAAA;AAE/B,QAAI,OAAO,SAAS,UAAU;AAC5B,iBAAW;IACb,WAAW,OAAO,SAAS,UAAU;AACnC,gBAAU;AACV,iBAAW,QAAQ,YAAY;IACjC;AAEA,cAAU,UAAU,SAAS,QAAQ,aAAa,UAAU;EAC9D;AACF;AAEO,MAAM,sBAAsB,CAAC,WAA+C;AACjF,QAAM,cAAc,kBAAkB,WAAW,SAAS,OAAO;AACjE,SAAO,aAAa,YAAY,wBAAwB,WAAW;AACrE;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|