@dooboostore/simple-web-component 1.0.21 → 1.0.23

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.
Files changed (174) hide show
  1. package/README.md +1113 -95
  2. package/dist/cjs/decorators/addEventListener.js +4 -0
  3. package/dist/cjs/decorators/addEventListener.js.map +2 -2
  4. package/dist/cjs/decorators/applyNode.js +174 -0
  5. package/dist/cjs/decorators/applyNode.js.map +7 -0
  6. package/dist/cjs/decorators/attribute.js +30 -10
  7. package/dist/cjs/decorators/attribute.js.map +3 -3
  8. package/dist/cjs/decorators/{changedAttribute.js → changedAttributeHost.js} +6 -6
  9. package/dist/cjs/decorators/changedAttributeHost.js.map +7 -0
  10. package/dist/cjs/decorators/classList.js +45 -15
  11. package/dist/cjs/decorators/classList.js.map +2 -2
  12. package/dist/cjs/decorators/elementDefine.js +107 -57
  13. package/dist/cjs/decorators/elementDefine.js.map +2 -2
  14. package/dist/cjs/decorators/emitCustomEvent.js +4 -3
  15. package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
  16. package/dist/cjs/decorators/index.js +2 -4
  17. package/dist/cjs/decorators/index.js.map +2 -2
  18. package/dist/cjs/decorators/lifecycles.js +29 -0
  19. package/dist/cjs/decorators/lifecycles.js.map +2 -2
  20. package/dist/cjs/decorators/query.js +5 -1
  21. package/dist/cjs/decorators/query.js.map +2 -2
  22. package/dist/cjs/decorators/queryAll.js +5 -1
  23. package/dist/cjs/decorators/queryAll.js.map +2 -2
  24. package/dist/cjs/decorators/setAttribute.js +5 -1
  25. package/dist/cjs/decorators/setAttribute.js.map +2 -2
  26. package/dist/cjs/decorators/style.js +39 -13
  27. package/dist/cjs/decorators/style.js.map +2 -2
  28. package/dist/cjs/elements/SwcAppEngine.js.map +2 -2
  29. package/dist/cjs/elements/SwcAppMixin.js.map +2 -2
  30. package/dist/cjs/elements/SwcAsync.js +2 -2
  31. package/dist/cjs/elements/SwcAsync.js.map +2 -2
  32. package/dist/cjs/elements/SwcChoose.js +2 -2
  33. package/dist/cjs/elements/SwcChoose.js.map +2 -2
  34. package/dist/cjs/elements/SwcIf.js +2 -2
  35. package/dist/cjs/elements/SwcIf.js.map +2 -2
  36. package/dist/cjs/elements/SwcLoop.js +2 -2
  37. package/dist/cjs/elements/SwcLoop.js.map +2 -2
  38. package/dist/cjs/elements/register.js +6 -5
  39. package/dist/cjs/elements/register.js.map +2 -2
  40. package/dist/cjs/index.js +6 -18
  41. package/dist/cjs/index.js.map +2 -2
  42. package/dist/cjs/types.js.map +2 -2
  43. package/dist/cjs/utils/TemplateUtils.js +6 -0
  44. package/dist/cjs/utils/TemplateUtils.js.map +2 -2
  45. package/dist/esm/decorators/addEventListener.js +4 -0
  46. package/dist/esm/decorators/addEventListener.js.map +2 -2
  47. package/dist/esm/decorators/applyNode.js +155 -0
  48. package/dist/esm/decorators/applyNode.js.map +7 -0
  49. package/dist/esm/decorators/attribute.js +30 -10
  50. package/dist/esm/decorators/attribute.js.map +3 -3
  51. package/dist/esm/decorators/{changedAttribute.js → changedAttributeHost.js} +3 -3
  52. package/dist/esm/decorators/changedAttributeHost.js.map +7 -0
  53. package/dist/esm/decorators/classList.js +45 -15
  54. package/dist/esm/decorators/classList.js.map +2 -2
  55. package/dist/esm/decorators/elementDefine.js +106 -56
  56. package/dist/esm/decorators/elementDefine.js.map +2 -2
  57. package/dist/esm/decorators/emitCustomEvent.js +4 -3
  58. package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
  59. package/dist/esm/decorators/index.js +2 -4
  60. package/dist/esm/decorators/index.js.map +2 -2
  61. package/dist/esm/decorators/lifecycles.js +29 -0
  62. package/dist/esm/decorators/lifecycles.js.map +2 -2
  63. package/dist/esm/decorators/query.js +5 -1
  64. package/dist/esm/decorators/query.js.map +2 -2
  65. package/dist/esm/decorators/queryAll.js +5 -1
  66. package/dist/esm/decorators/queryAll.js.map +2 -2
  67. package/dist/esm/decorators/setAttribute.js +5 -1
  68. package/dist/esm/decorators/setAttribute.js.map +2 -2
  69. package/dist/esm/decorators/style.js +39 -13
  70. package/dist/esm/decorators/style.js.map +2 -2
  71. package/dist/esm/elements/SwcAppEngine.js.map +2 -2
  72. package/dist/esm/elements/SwcAppMixin.js.map +2 -2
  73. package/dist/esm/elements/SwcAsync.js +2 -2
  74. package/dist/esm/elements/SwcAsync.js.map +2 -2
  75. package/dist/esm/elements/SwcChoose.js +2 -2
  76. package/dist/esm/elements/SwcChoose.js.map +2 -2
  77. package/dist/esm/elements/SwcIf.js +2 -2
  78. package/dist/esm/elements/SwcIf.js.map +2 -2
  79. package/dist/esm/elements/SwcLoop.js +2 -2
  80. package/dist/esm/elements/SwcLoop.js.map +2 -2
  81. package/dist/esm/elements/register.js +6 -5
  82. package/dist/esm/elements/register.js.map +2 -2
  83. package/dist/esm/index.js +6 -18
  84. package/dist/esm/index.js.map +2 -2
  85. package/dist/esm/types.js.map +2 -2
  86. package/dist/esm/utils/TemplateUtils.js +6 -0
  87. package/dist/esm/utils/TemplateUtils.js.map +2 -2
  88. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +385 -206
  89. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  90. package/dist/types/decorators/addEventListener.d.ts +6 -0
  91. package/dist/types/decorators/addEventListener.d.ts.map +1 -1
  92. package/dist/types/decorators/applyNode.d.ts +121 -0
  93. package/dist/types/decorators/applyNode.d.ts.map +1 -0
  94. package/dist/types/decorators/attribute.d.ts +6 -0
  95. package/dist/types/decorators/attribute.d.ts.map +1 -1
  96. package/dist/types/decorators/{changedAttribute.d.ts → changedAttributeHost.d.ts} +6 -2
  97. package/dist/types/decorators/changedAttributeHost.d.ts.map +1 -0
  98. package/dist/types/decorators/classList.d.ts +32 -5
  99. package/dist/types/decorators/classList.d.ts.map +1 -1
  100. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  101. package/dist/types/decorators/emitCustomEvent.d.ts +14 -2
  102. package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
  103. package/dist/types/decorators/index.d.ts +2 -4
  104. package/dist/types/decorators/index.d.ts.map +1 -1
  105. package/dist/types/decorators/lifecycles.d.ts +16 -0
  106. package/dist/types/decorators/lifecycles.d.ts.map +1 -1
  107. package/dist/types/decorators/query.d.ts +6 -3
  108. package/dist/types/decorators/query.d.ts.map +1 -1
  109. package/dist/types/decorators/queryAll.d.ts +6 -0
  110. package/dist/types/decorators/queryAll.d.ts.map +1 -1
  111. package/dist/types/decorators/setAttribute.d.ts +5 -0
  112. package/dist/types/decorators/setAttribute.d.ts.map +1 -1
  113. package/dist/types/decorators/style.d.ts +28 -3
  114. package/dist/types/decorators/style.d.ts.map +1 -1
  115. package/dist/types/elements/SwcAppEngine.d.ts.map +1 -1
  116. package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
  117. package/dist/types/elements/register.d.ts +1 -1
  118. package/dist/types/elements/register.d.ts.map +1 -1
  119. package/dist/types/index.d.ts +3 -15
  120. package/dist/types/index.d.ts.map +1 -1
  121. package/dist/types/types.d.ts +2 -1
  122. package/dist/types/types.d.ts.map +1 -1
  123. package/dist/types/utils/TemplateUtils.d.ts +5 -0
  124. package/dist/types/utils/TemplateUtils.d.ts.map +1 -1
  125. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +385 -206
  126. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  127. package/package.json +3 -3
  128. package/src/decorators/addEventListener.ts +9 -0
  129. package/src/decorators/applyNode.ts +290 -0
  130. package/src/decorators/attribute.ts +46 -12
  131. package/src/decorators/{changedAttribute.ts → changedAttributeHost.ts} +5 -1
  132. package/src/decorators/classList.ts +71 -16
  133. package/src/decorators/elementDefine.ts +130 -63
  134. package/src/decorators/emitCustomEvent.ts +13 -5
  135. package/src/decorators/index.ts +2 -4
  136. package/src/decorators/lifecycles.ts +43 -1
  137. package/src/decorators/query.ts +9 -2
  138. package/src/decorators/queryAll.ts +9 -0
  139. package/src/decorators/setAttribute.ts +8 -0
  140. package/src/decorators/style.ts +64 -13
  141. package/src/elements/SwcAppEngine.ts +1 -0
  142. package/src/elements/SwcAppMixin.ts +2 -1
  143. package/src/elements/SwcAsync.ts +2 -2
  144. package/src/elements/SwcChoose.ts +2 -2
  145. package/src/elements/SwcIf.ts +2 -2
  146. package/src/elements/SwcLoop.ts +2 -2
  147. package/src/elements/register.ts +7 -5
  148. package/src/index.ts +8 -17
  149. package/src/types.ts +2 -1
  150. package/src/utils/TemplateUtils.ts +9 -0
  151. package/dist/cjs/decorators/appendChild.js +0 -92
  152. package/dist/cjs/decorators/appendChild.js.map +0 -7
  153. package/dist/cjs/decorators/changedAttribute.js.map +0 -7
  154. package/dist/cjs/decorators/onConnectedInnerHtml.js +0 -48
  155. package/dist/cjs/decorators/onConnectedInnerHtml.js.map +0 -7
  156. package/dist/cjs/decorators/replaceChildren.js +0 -79
  157. package/dist/cjs/decorators/replaceChildren.js.map +0 -7
  158. package/dist/esm/decorators/appendChild.js +0 -73
  159. package/dist/esm/decorators/appendChild.js.map +0 -7
  160. package/dist/esm/decorators/changedAttribute.js.map +0 -7
  161. package/dist/esm/decorators/onConnectedInnerHtml.js +0 -29
  162. package/dist/esm/decorators/onConnectedInnerHtml.js.map +0 -7
  163. package/dist/esm/decorators/replaceChildren.js +0 -60
  164. package/dist/esm/decorators/replaceChildren.js.map +0 -7
  165. package/dist/types/decorators/appendChild.d.ts +0 -17
  166. package/dist/types/decorators/appendChild.d.ts.map +0 -1
  167. package/dist/types/decorators/changedAttribute.d.ts.map +0 -1
  168. package/dist/types/decorators/onConnectedInnerHtml.d.ts +0 -15
  169. package/dist/types/decorators/onConnectedInnerHtml.d.ts.map +0 -1
  170. package/dist/types/decorators/replaceChildren.d.ts +0 -9
  171. package/dist/types/decorators/replaceChildren.d.ts.map +0 -1
  172. package/src/decorators/appendChild.ts +0 -86
  173. package/src/decorators/onConnectedInnerHtml.ts +0 -42
  174. package/src/decorators/replaceChildren.ts +0 -64
@@ -1119,7 +1119,7 @@ var dooboostoreSimpleWebComponent = (() => {
1119
1119
  var bundle_entry_exports = {};
1120
1120
  __export(bundle_entry_exports, {
1121
1121
  ADD_EVENT_LISTENER_METADATA_KEY: () => ADD_EVENT_LISTENER_METADATA_KEY,
1122
- APPEND_CHILD_METADATA_KEY: () => APPEND_CHILD_METADATA_KEY,
1122
+ APPLY_NODE_METADATA_KEY: () => APPLY_NODE_METADATA_KEY,
1123
1123
  ATTRIBUTE_CHANGED_WILDCARD: () => ATTRIBUTE_CHANGED_WILDCARD,
1124
1124
  ATTRIBUTE_METADATA_KEY: () => ATTRIBUTE_METADATA_KEY,
1125
1125
  BROWSER_GLOBALS: () => BROWSER_GLOBALS,
@@ -1128,6 +1128,7 @@ var dooboostoreSimpleWebComponent = (() => {
1128
1128
  ELEMENT_CONFIG_KEY: () => ELEMENT_CONFIG_KEY,
1129
1129
  EMIT_CUSTOM_EVENT_METADATA_KEY: () => EMIT_CUSTOM_EVENT_METADATA_KEY,
1130
1130
  HTML_TAG_ENTRIES: () => HTML_TAG_ENTRIES,
1131
+ INNER_HTML_METADATA_KEY: () => INNER_HTML_METADATA_KEY,
1131
1132
  InjectSituationType: () => InjectSituationType,
1132
1133
  ON_ADD_EVENT_LISTENER_METADATA_KEY: () => ON_ADD_EVENT_LISTENER_METADATA_KEY,
1133
1134
  ON_AFTER_ADOPTED_METADATA_KEY: () => ON_AFTER_ADOPTED_METADATA_KEY,
@@ -1137,38 +1138,61 @@ var dooboostoreSimpleWebComponent = (() => {
1137
1138
  ON_BEFORE_ADOPTED_METADATA_KEY: () => ON_BEFORE_ADOPTED_METADATA_KEY,
1138
1139
  ON_BEFORE_CONNECTED_METADATA_KEY: () => ON_BEFORE_CONNECTED_METADATA_KEY,
1139
1140
  ON_BEFORE_DISCONNECTED_METADATA_KEY: () => ON_BEFORE_DISCONNECTED_METADATA_KEY,
1141
+ ON_CONSTRUCTOR_METADATA_KEY: () => ON_CONSTRUCTOR_METADATA_KEY,
1140
1142
  QUERY_ALL_METADATA_KEY: () => QUERY_ALL_METADATA_KEY,
1141
1143
  QUERY_METADATA_KEY: () => QUERY_METADATA_KEY,
1142
- REPLACE_CHILDREN_METADATA_KEY: () => REPLACE_CHILDREN_METADATA_KEY,
1143
1144
  SET_ATTRIBUTE_METADATA_KEY: () => SET_ATTRIBUTE_METADATA_KEY,
1144
1145
  STYLE_METADATA_KEY: () => STYLE_METADATA_KEY,
1145
1146
  SWC_NOT_FOUND: () => SWC_NOT_FOUND,
1146
1147
  SwcUtils: () => SwcUtils,
1147
1148
  TemplateUtils: () => TemplateUtils,
1148
1149
  addClassList: () => addClassList,
1150
+ addClassListHost: () => addClassListHost,
1149
1151
  addEventListener: () => addEventListener,
1150
- appendChild: () => appendChild,
1152
+ addEventListenerHost: () => addEventListenerHost,
1153
+ applyAfterBeginNode: () => applyAfterBeginNode,
1154
+ applyAfterBeginNodeHost: () => applyAfterBeginNodeHost,
1155
+ applyAfterEndNode: () => applyAfterEndNode,
1156
+ applyAfterEndNodeHost: () => applyAfterEndNodeHost,
1157
+ applyBeforeBeginNode: () => applyBeforeBeginNode,
1158
+ applyBeforeBeginNodeHost: () => applyBeforeBeginNodeHost,
1159
+ applyBeforeEndNode: () => applyBeforeEndNode,
1160
+ applyBeforeEndNodeHost: () => applyBeforeEndNodeHost,
1161
+ applyInnerHtmlNode: () => applyInnerHtmlNode,
1162
+ applyInnerHtmlNodeHost: () => applyInnerHtmlNodeHost,
1163
+ applyInnerTextNode: () => applyInnerTextNode,
1164
+ applyInnerTextNodeHost: () => applyInnerTextNodeHost,
1165
+ applyNode: () => applyNode,
1166
+ applyNodeHost: () => applyNodeHost,
1167
+ applyRemoveNode: () => applyRemoveNode,
1168
+ applyRemoveNodeHost: () => applyRemoveNodeHost,
1169
+ applyReplaceChildrenNode: () => applyReplaceChildrenNode,
1170
+ applyReplaceChildrenNodeHost: () => applyReplaceChildrenNodeHost,
1171
+ applyReplaceNode: () => applyReplaceNode,
1172
+ applyReplaceNodeHost: () => applyReplaceNodeHost,
1151
1173
  attribute: () => attribute,
1152
- changedAttribute: () => changedAttribute,
1174
+ attributeHost: () => attributeHost,
1175
+ changedAttributeHost: () => changedAttributeHost,
1176
+ commentNode: () => commentNode,
1153
1177
  createElement: () => createElement,
1154
1178
  elementDefine: () => elementDefine,
1155
1179
  emitCustomEvent: () => emitCustomEvent,
1180
+ emitCustomEventHost: () => emitCustomEventHost,
1156
1181
  ensureInit: () => ensureInit2,
1157
- findAllAppendChildMetadata: () => findAllAppendChildMetadata,
1182
+ findAllApplyNodeMetadata: () => findAllApplyNodeMetadata,
1158
1183
  findAllAttributeChangedMetadata: () => findAllAttributeChangedMetadata,
1159
1184
  findAllAttributeMetadata: () => findAllAttributeMetadata,
1160
1185
  findAllClassListMetadata: () => findAllClassListMetadata,
1161
1186
  findAllLifecycleMetadata: () => findAllLifecycleMetadata,
1162
- findAllReplaceChildrenMetadata: () => findAllReplaceChildrenMetadata,
1163
1187
  findAllSetAttributeMetadata: () => findAllSetAttributeMetadata,
1164
1188
  findAllStyleMetadata: () => findAllStyleMetadata,
1165
1189
  getAddEventListenerMetadata: () => getAddEventListenerMetadata,
1166
1190
  getChangedAttributeMetadata: () => getChangedAttributeMetadata,
1167
1191
  getElementConfig: () => getElementConfig,
1168
1192
  getEmitCustomEventMetadataList: () => getEmitCustomEventMetadataList,
1193
+ getOnConnectedInnerHtmlMetadata: () => getOnConnectedInnerHtmlMetadata,
1169
1194
  getQueryAllMetadata: () => getQueryAllMetadata,
1170
1195
  getQueryMetadata: () => getQueryMetadata,
1171
- getReplaceChildrenMetadata: () => getReplaceChildrenMetadata,
1172
1196
  getSetAttributeMetadata: () => getSetAttributeMetadata,
1173
1197
  htmlAElement: () => htmlAElement,
1174
1198
  htmlArticleElement: () => htmlArticleElement,
@@ -1197,20 +1221,30 @@ var dooboostoreSimpleWebComponent = (() => {
1197
1221
  onBeforeDisconnected: () => onBeforeDisconnected,
1198
1222
  onConnected: () => onConnected,
1199
1223
  onConnectedInnerHtml: () => onConnectedInnerHtml,
1224
+ onConstructor: () => onConstructor,
1200
1225
  onDisconnected: () => onDisconnected,
1201
1226
  query: () => query,
1202
1227
  queryAll: () => queryAll,
1228
+ queryAllHost: () => queryAllHost,
1229
+ queryHost: () => queryHost,
1203
1230
  removeClassList: () => removeClassList,
1231
+ removeClassListHost: () => removeClassListHost,
1204
1232
  removeStyle: () => removeStyle,
1205
- replaceChildren: () => replaceChildren,
1233
+ removeStyleHost: () => removeStyleHost,
1206
1234
  resolveTargetEls: () => resolveTargetEls,
1207
1235
  setAttribute: () => setAttribute,
1236
+ setAttributeHost: () => setAttributeHost,
1208
1237
  setClassList: () => setClassList,
1238
+ setClassListHost: () => setClassListHost,
1209
1239
  setStyle: () => setStyle,
1240
+ setStyleHost: () => setStyleHost,
1210
1241
  textNode: () => textNode,
1211
1242
  toggleClassList: () => toggleClassList,
1243
+ toggleClassListHost: () => toggleClassListHost,
1212
1244
  updateClassList: () => updateClassList,
1213
- updateStyle: () => updateStyle
1245
+ updateClassListHost: () => updateClassListHost,
1246
+ updateStyle: () => updateStyle,
1247
+ updateStyleHost: () => updateStyleHost
1214
1248
  });
1215
1249
  var import_reflect_metadata2 = __toESM(require_Reflect(), 1);
1216
1250
 
@@ -5817,30 +5851,6 @@ var dooboostoreSimpleWebComponent = (() => {
5817
5851
  })(Path = Expression2.Path || (Expression2.Path = {}));
5818
5852
  })(Expression || (Expression = {}));
5819
5853
 
5820
- // src/decorators/onConnectedInnerHtml.ts
5821
- var INNER_HTML_METADATA_KEY = Symbol("simple-web-component:inner-html");
5822
- function onConnectedInnerHtml(arg1, arg2, arg3) {
5823
- const decorator = (options, target, propertyKey) => {
5824
- const constructor = target.constructor;
5825
- let list = ReflectUtils.getMetadata(INNER_HTML_METADATA_KEY, constructor);
5826
- if (!list) {
5827
- list = [];
5828
- ReflectUtils.defineMetadata(INNER_HTML_METADATA_KEY, list, constructor);
5829
- }
5830
- list.push({ propertyKey, options });
5831
- };
5832
- if (arg2) {
5833
- return decorator({}, arg1, arg2);
5834
- }
5835
- return (target, propertyKey) => {
5836
- decorator(arg1 || {}, target, propertyKey);
5837
- };
5838
- }
5839
- var getOnConnectedInnerHtmlMetadata = (target) => {
5840
- const constructor = target instanceof Function ? target : target.constructor;
5841
- return ReflectUtils.getMetadata(INNER_HTML_METADATA_KEY, constructor);
5842
- };
5843
-
5844
5854
  // src/decorators/addEventListener.ts
5845
5855
  var ADD_EVENT_LISTENER_METADATA_KEY = Symbol("simple-web-component:add-event-listener");
5846
5856
  function addEventListener(selectorOrTarget, type, options = {}) {
@@ -5858,8 +5868,12 @@ var dooboostoreSimpleWebComponent = (() => {
5858
5868
  const constructor = target instanceof Function ? target : target.constructor;
5859
5869
  return ReflectUtils.getMetadata(ADD_EVENT_LISTENER_METADATA_KEY, constructor);
5860
5870
  };
5871
+ function addEventListenerHost(type, options) {
5872
+ return addEventListener(":host", type, options);
5873
+ }
5861
5874
 
5862
5875
  // src/decorators/lifecycles.ts
5876
+ var ON_CONSTRUCTOR_METADATA_KEY = Symbol("simple-web-component:on-constructor");
5863
5877
  var ON_BEFORE_CONNECTED_METADATA_KEY = Symbol("simple-web-component:on-before-connected");
5864
5878
  var ON_AFTER_CONNECTED_METADATA_KEY = Symbol("simple-web-component:on-after-connected");
5865
5879
  var ON_BEFORE_DISCONNECTED_METADATA_KEY = Symbol("simple-web-component:on-before-disconnected");
@@ -5867,6 +5881,7 @@ var dooboostoreSimpleWebComponent = (() => {
5867
5881
  var ON_BEFORE_ADOPTED_METADATA_KEY = Symbol("simple-web-component:on-before-adopted");
5868
5882
  var ON_AFTER_ADOPTED_METADATA_KEY = Symbol("simple-web-component:on-after-adopted");
5869
5883
  var ON_ADD_EVENT_LISTENER_METADATA_KEY = Symbol("simple-web-component:on-add-event-listener");
5884
+ var INNER_HTML_METADATA_KEY = Symbol("simple-web-component:inner-html");
5870
5885
  var ATTRIBUTE_CHANGED_WILDCARD = "*";
5871
5886
  function createLifecycleDecorator(metadataKey) {
5872
5887
  return (target, propertyKey) => {
@@ -5879,6 +5894,7 @@ var dooboostoreSimpleWebComponent = (() => {
5879
5894
  list.push(propertyKey);
5880
5895
  };
5881
5896
  }
5897
+ var onConstructor = createLifecycleDecorator(ON_CONSTRUCTOR_METADATA_KEY);
5882
5898
  var onBeforeConnected = createLifecycleDecorator(ON_BEFORE_CONNECTED_METADATA_KEY);
5883
5899
  var onAfterConnected = createLifecycleDecorator(ON_AFTER_CONNECTED_METADATA_KEY);
5884
5900
  var onConnected = onAfterConnected;
@@ -5889,10 +5905,31 @@ var dooboostoreSimpleWebComponent = (() => {
5889
5905
  var onAfterAdopted = createLifecycleDecorator(ON_AFTER_ADOPTED_METADATA_KEY);
5890
5906
  var onAdopted = onAfterAdopted;
5891
5907
  var onAddEventListener = createLifecycleDecorator(ON_ADD_EVENT_LISTENER_METADATA_KEY);
5908
+ function onConnectedInnerHtml(arg1, arg2, arg3) {
5909
+ const decorator = (options, target, propertyKey) => {
5910
+ const constructor = target.constructor;
5911
+ let list = ReflectUtils.getMetadata(INNER_HTML_METADATA_KEY, constructor);
5912
+ if (!list) {
5913
+ list = [];
5914
+ ReflectUtils.defineMetadata(INNER_HTML_METADATA_KEY, list, constructor);
5915
+ }
5916
+ list.push({ propertyKey, options });
5917
+ };
5918
+ if (arg2) {
5919
+ return decorator({}, arg1, arg2);
5920
+ }
5921
+ return (target, propertyKey) => {
5922
+ decorator(arg1 || {}, target, propertyKey);
5923
+ };
5924
+ }
5892
5925
  var findAllLifecycleMetadata = (target, metadataKey) => {
5893
5926
  const results = ReflectUtils.findAllMetadataFlatten(metadataKey, target);
5894
5927
  return results.length > 0 ? results : void 0;
5895
5928
  };
5929
+ var getOnConnectedInnerHtmlMetadata = (target) => {
5930
+ const constructor = target instanceof Function ? target : target.constructor;
5931
+ return ReflectUtils.getMetadata(INNER_HTML_METADATA_KEY, constructor);
5932
+ };
5896
5933
 
5897
5934
  // src/decorators/attribute.ts
5898
5935
  var ATTRIBUTE_METADATA_KEY = Symbol("simple-web-component:attribute");
@@ -5959,6 +5996,20 @@ var dooboostoreSimpleWebComponent = (() => {
5959
5996
  ReflectUtils.defineMetadata(ATTRIBUTE_METADATA_KEY, metaList, constructor);
5960
5997
  }
5961
5998
  metaList.push({ propertyKey, selector, options, privateKey });
5999
+ const applySetAttribute = (inst, targets, attrName, nv) => {
6000
+ targets.forEach((it) => {
6001
+ console.log("----->", it);
6002
+ if (it && typeof it.setAttribute === "function") {
6003
+ if (nv === null) {
6004
+ it.removeAttribute(attrName);
6005
+ } else {
6006
+ it.setAttribute(attrName, String(nv));
6007
+ }
6008
+ } else {
6009
+ inst[privateKey] = nv;
6010
+ }
6011
+ });
6012
+ };
5962
6013
  Object.defineProperty(target, propertyKey, {
5963
6014
  get() {
5964
6015
  const attrName = options.name || String(propertyKey);
@@ -5985,19 +6036,21 @@ var dooboostoreSimpleWebComponent = (() => {
5985
6036
  const attrName = options.name || String(propertyKey);
5986
6037
  const conf = getElementConfig(this);
5987
6038
  const currentWin = this._resolveWindow?.(conf) || (typeof window !== "undefined" ? window : void 0);
5988
- const targets = resolveTargetEls(this, selector, options, currentWin);
5989
- targets.forEach((it) => {
5990
- console.log("----->", it);
5991
- if (it && typeof it.setAttribute === "function") {
5992
- if (nv === null) {
5993
- it.removeAttribute(attrName);
5994
- } else {
5995
- it.setAttribute(attrName, String(nv));
5996
- }
6039
+ if (this.__swc_syncing_init) {
6040
+ if (options.connectedInitialize === true) {
6041
+ const targets2 = resolveTargetEls(this, selector, options, currentWin);
6042
+ applySetAttribute(this, targets2, attrName, nv);
5997
6043
  } else {
5998
6044
  this[privateKey] = nv;
5999
6045
  }
6000
- });
6046
+ return;
6047
+ }
6048
+ if (!this.__swc_connected) {
6049
+ this[privateKey] = nv;
6050
+ return;
6051
+ }
6052
+ const targets = resolveTargetEls(this, selector, options, currentWin);
6053
+ applySetAttribute(this, targets, attrName, nv);
6001
6054
  },
6002
6055
  enumerable: true,
6003
6056
  configurable: true
@@ -6007,10 +6060,13 @@ var dooboostoreSimpleWebComponent = (() => {
6007
6060
  var findAllAttributeMetadata = (target) => {
6008
6061
  return ReflectUtils.findAllMetadata(ATTRIBUTE_METADATA_KEY, target).flat();
6009
6062
  };
6063
+ function attributeHost(attrName, options = {}) {
6064
+ return attribute(":host", { ...options, name: attrName });
6065
+ }
6010
6066
 
6011
- // src/decorators/changedAttribute.ts
6067
+ // src/decorators/changedAttributeHost.ts
6012
6068
  var ON_ATTRIBUTE_CHANGED_METADATA_KEY = Symbol("simple-web-component:on-attribute-changed");
6013
- function changedAttribute(attributeName) {
6069
+ function changedAttributeHost(attributeName) {
6014
6070
  return (target, propertyKey) => {
6015
6071
  const constructor = target.constructor;
6016
6072
  let meta = ReflectUtils.getOwnMetadata(ON_ATTRIBUTE_CHANGED_METADATA_KEY, constructor);
@@ -6114,62 +6170,12 @@ var dooboostoreSimpleWebComponent = (() => {
6114
6170
  });
6115
6171
  return result;
6116
6172
  };
6117
-
6118
- // src/decorators/replaceChildren.ts
6119
- var REPLACE_CHILDREN_METADATA_KEY = Symbol("simple-web-component:replace-children");
6120
- function replaceChildren(selector) {
6121
- return (target, propertyKey, descriptor) => {
6122
- const constructor = target.constructor;
6123
- let meta = ReflectUtils.getOwnMetadata(REPLACE_CHILDREN_METADATA_KEY, constructor);
6124
- if (!meta) {
6125
- meta = /* @__PURE__ */ new Map();
6126
- ReflectUtils.defineMetadata(REPLACE_CHILDREN_METADATA_KEY, meta, constructor);
6127
- }
6128
- meta.set(propertyKey, selector);
6129
- const original = descriptor.value;
6130
- descriptor.value = async function(...args) {
6131
- ensureInit2(this);
6132
- const res = await original.apply(this, args);
6133
- if (res !== void 0) {
6134
- const conf = getElementConfig(this);
6135
- const currentWin = this._resolveWindow?.(conf) || (typeof window !== "undefined" ? window : void 0);
6136
- const currentDoc = currentWin.document;
6137
- let targetEl = null;
6138
- if (selector === ":host" || !selector) {
6139
- targetEl = this;
6140
- } else {
6141
- targetEl = (this.shadowRoot || this).querySelector(selector);
6142
- }
6143
- if (targetEl) {
6144
- if (typeof res === "string") {
6145
- targetEl.textContent = res;
6146
- } else {
6147
- const nodes = Array.isArray(res) ? res.map((n) => typeof n === "string" ? currentDoc.createTextNode(n) : n) : [res];
6148
- targetEl.replaceChildren(...nodes);
6149
- }
6150
- }
6151
- }
6152
- return res;
6153
- };
6154
- };
6173
+ function setAttributeHost(name, options) {
6174
+ return setAttribute(":host", name, options);
6155
6175
  }
6156
- var getReplaceChildrenMetadata = (target) => {
6157
- const constructor = target instanceof Function ? target : target.constructor;
6158
- return ReflectUtils.getMetadata(REPLACE_CHILDREN_METADATA_KEY, constructor);
6159
- };
6160
- var findAllReplaceChildrenMetadata = (target) => {
6161
- const result = /* @__PURE__ */ new Map();
6162
- const maps = ReflectUtils.findAllMetadata(REPLACE_CHILDREN_METADATA_KEY, target);
6163
- maps.forEach((map) => {
6164
- if (map instanceof Map) {
6165
- map.forEach((v, k) => result.set(k, v));
6166
- }
6167
- });
6168
- return result;
6169
- };
6170
6176
 
6171
- // src/decorators/appendChild.ts
6172
- var APPEND_CHILD_METADATA_KEY = Symbol("simple-web-component:append-child");
6177
+ // src/decorators/applyNode.ts
6178
+ var APPLY_NODE_METADATA_KEY = Symbol("simple-web-component:apply-node");
6173
6179
  var normalizeNodes = (res, doc) => {
6174
6180
  const items = Array.isArray(res) ? res : [res];
6175
6181
  return items.map((it) => {
@@ -6178,13 +6184,13 @@ var dooboostoreSimpleWebComponent = (() => {
6178
6184
  return doc.createTextNode(it !== void 0 && it !== null ? String(it) : "");
6179
6185
  });
6180
6186
  };
6181
- function appendChild(selector, options = { position: "beforeEnd" }) {
6187
+ function applyNode(selector, options = { position: "beforeEnd" }) {
6182
6188
  return (target, propertyKey, descriptor) => {
6183
6189
  const constructor = target.constructor;
6184
- let metaList = ReflectUtils.getOwnMetadata(APPEND_CHILD_METADATA_KEY, constructor);
6190
+ let metaList = ReflectUtils.getOwnMetadata(APPLY_NODE_METADATA_KEY, constructor);
6185
6191
  if (!metaList) {
6186
6192
  metaList = /* @__PURE__ */ new Map();
6187
- ReflectUtils.defineMetadata(APPEND_CHILD_METADATA_KEY, metaList, constructor);
6193
+ ReflectUtils.defineMetadata(APPLY_NODE_METADATA_KEY, metaList, constructor);
6188
6194
  }
6189
6195
  metaList.set(propertyKey, { propertyKey, selector, options });
6190
6196
  const original = descriptor.value;
@@ -6195,28 +6201,70 @@ var dooboostoreSimpleWebComponent = (() => {
6195
6201
  const conf = getElementConfig(this);
6196
6202
  const currentWin = this._resolveWindow?.(conf) || (typeof window !== "undefined" ? window : void 0);
6197
6203
  const currentDoc = currentWin.document;
6198
- let targetEl = null;
6199
- if (selector === ":host" || !selector) {
6200
- targetEl = this;
6204
+ const pos = options.position || "beforeEnd";
6205
+ const r = options.root || "auto";
6206
+ const getTargetRoot = () => {
6207
+ if (r === "shadow")
6208
+ return this.shadowRoot;
6209
+ if (r === "light")
6210
+ return this;
6211
+ if (r === "all")
6212
+ return this.shadowRoot || this;
6213
+ return this.shadowRoot || this;
6214
+ };
6215
+ if (pos === "remove") {
6216
+ if (res) {
6217
+ if (selector === ":host" || !selector) {
6218
+ if (r === "shadow" && this.shadowRoot) {
6219
+ this.shadowRoot.replaceChildren();
6220
+ } else {
6221
+ this.remove();
6222
+ }
6223
+ } else {
6224
+ const targetRoot = getTargetRoot();
6225
+ if (targetRoot) {
6226
+ const targets = targetRoot.querySelectorAll(selector);
6227
+ targets.forEach((el) => el.remove());
6228
+ }
6229
+ }
6230
+ }
6201
6231
  } else {
6202
- targetEl = (this.shadowRoot || this).querySelector(selector);
6203
- }
6204
- if (targetEl) {
6205
- const nodes = normalizeNodes(res, currentDoc);
6206
- const pos = options.position || "beforeEnd";
6207
- if (typeof res === "string") {
6208
- targetEl.insertAdjacentText(pos, res);
6209
- } else if (Array.isArray(res) && res.every((n) => typeof n === "string")) {
6210
- targetEl.insertAdjacentText(pos, res.join(""));
6232
+ let targetEl = null;
6233
+ if (selector === ":host" || !selector) {
6234
+ if (r === "shadow") {
6235
+ targetEl = this.shadowRoot;
6236
+ } else {
6237
+ targetEl = this;
6238
+ }
6211
6239
  } else {
6212
- if (pos === "beforeEnd")
6213
- targetEl.append(...nodes);
6214
- else if (pos === "afterBegin")
6215
- targetEl.prepend(...nodes);
6216
- else if (pos === "beforeBegin")
6217
- targetEl.before(...nodes);
6218
- else if (pos === "afterEnd")
6219
- targetEl.after(...nodes);
6240
+ const targetRoot = getTargetRoot();
6241
+ targetEl = targetRoot ? targetRoot.querySelector(selector) : null;
6242
+ }
6243
+ if (targetEl) {
6244
+ const isShadowRoot = targetEl instanceof ShadowRoot;
6245
+ const nodes = normalizeNodes(res, currentDoc);
6246
+ if (pos === "replace") {
6247
+ if (!isShadowRoot) {
6248
+ targetEl.replaceWith(...nodes);
6249
+ }
6250
+ } else if (pos === "replaceChildren") {
6251
+ targetEl.replaceChildren(...nodes);
6252
+ } else if (pos === "innerHtml") {
6253
+ targetEl.innerHTML = res !== void 0 && res !== null ? String(res) : "";
6254
+ } else if (pos === "innerText") {
6255
+ if (targetEl.innerText !== void 0) {
6256
+ targetEl.innerText = res !== void 0 && res !== null ? String(res) : "";
6257
+ }
6258
+ } else {
6259
+ if (pos === "beforeEnd")
6260
+ targetEl.append(...nodes);
6261
+ else if (pos === "afterBegin")
6262
+ targetEl.prepend(...nodes);
6263
+ else if (pos === "beforeBegin" && !isShadowRoot)
6264
+ targetEl.before(...nodes);
6265
+ else if (pos === "afterEnd" && !isShadowRoot)
6266
+ targetEl.after(...nodes);
6267
+ }
6220
6268
  }
6221
6269
  }
6222
6270
  }
@@ -6224,9 +6272,9 @@ var dooboostoreSimpleWebComponent = (() => {
6224
6272
  };
6225
6273
  };
6226
6274
  }
6227
- var findAllAppendChildMetadata = (target) => {
6275
+ var findAllApplyNodeMetadata = (target) => {
6228
6276
  const result = /* @__PURE__ */ new Map();
6229
- const maps = ReflectUtils.findAllMetadata(APPEND_CHILD_METADATA_KEY, target);
6277
+ const maps = ReflectUtils.findAllMetadata(APPLY_NODE_METADATA_KEY, target);
6230
6278
  maps.forEach((map) => {
6231
6279
  if (map instanceof Map) {
6232
6280
  map.forEach((v, k) => result.set(k, v));
@@ -6234,6 +6282,27 @@ var dooboostoreSimpleWebComponent = (() => {
6234
6282
  });
6235
6283
  return result;
6236
6284
  };
6285
+ function applyNodeHost(options = { position: "beforeEnd" }) {
6286
+ return applyNode(":host", options);
6287
+ }
6288
+ var applyBeforeBeginNode = (selector, options = {}) => applyNode(selector, { ...options, position: "beforeBegin" });
6289
+ var applyAfterBeginNode = (selector, options = {}) => applyNode(selector, { ...options, position: "afterBegin" });
6290
+ var applyBeforeEndNode = (selector, options = {}) => applyNode(selector, { ...options, position: "beforeEnd" });
6291
+ var applyAfterEndNode = (selector, options = {}) => applyNode(selector, { ...options, position: "afterEnd" });
6292
+ var applyReplaceNode = (selector, options = {}) => applyNode(selector, { ...options, position: "replace" });
6293
+ var applyReplaceChildrenNode = (selector, options = {}) => applyNode(selector, { ...options, position: "replaceChildren" });
6294
+ var applyInnerHtmlNode = (selector, options = {}) => applyNode(selector, { ...options, position: "innerHtml" });
6295
+ var applyInnerTextNode = (selector, options = {}) => applyNode(selector, { ...options, position: "innerText" });
6296
+ var applyRemoveNode = (selector, options = {}) => applyNode(selector, { ...options, position: "remove" });
6297
+ var applyBeforeBeginNodeHost = (options = {}) => applyNode(":host", { ...options, position: "beforeBegin" });
6298
+ var applyAfterBeginNodeHost = (options = {}) => applyNode(":host", { ...options, position: "afterBegin" });
6299
+ var applyBeforeEndNodeHost = (options = {}) => applyNode(":host", { ...options, position: "beforeEnd" });
6300
+ var applyAfterEndNodeHost = (options = {}) => applyNode(":host", { ...options, position: "afterEnd" });
6301
+ var applyReplaceNodeHost = (options = {}) => applyNode(":host", { ...options, position: "replace" });
6302
+ var applyReplaceChildrenNodeHost = (options = {}) => applyNode(":host", { ...options, position: "replaceChildren" });
6303
+ var applyInnerHtmlNodeHost = (options = {}) => applyNode(":host", { ...options, position: "innerHtml" });
6304
+ var applyInnerTextNodeHost = (options = {}) => applyNode(":host", { ...options, position: "innerText" });
6305
+ var applyRemoveNodeHost = (options = {}) => applyNode(":host", { ...options, position: "remove" });
6237
6306
 
6238
6307
  // src/decorators/query.ts
6239
6308
  var QUERY_METADATA_KEY = Symbol("simple-web-component:query");
@@ -6334,6 +6403,9 @@ var dooboostoreSimpleWebComponent = (() => {
6334
6403
  const constructor = target instanceof Function ? target : target.constructor;
6335
6404
  return ReflectUtils.getMetadata(QUERY_METADATA_KEY, constructor);
6336
6405
  };
6406
+ function queryHost(options) {
6407
+ return query(":host", options);
6408
+ }
6337
6409
 
6338
6410
  // src/decorators/queryAll.ts
6339
6411
  var QUERY_ALL_METADATA_KEY = Symbol("simple-web-component:query-all");
@@ -6431,11 +6503,14 @@ var dooboostoreSimpleWebComponent = (() => {
6431
6503
  const constructor = target instanceof Function ? target : target.constructor;
6432
6504
  return ReflectUtils.getMetadata(QUERY_ALL_METADATA_KEY, constructor);
6433
6505
  };
6506
+ function queryAllHost(options) {
6507
+ return queryAll(":host", options);
6508
+ }
6434
6509
 
6435
6510
  // src/decorators/classList.ts
6436
6511
  var CLASS_LIST_METADATA_KEY = Symbol("simple-web-component:class-list");
6437
6512
  function createClassListDecorator(action) {
6438
- return (selector) => {
6513
+ return (selector, options = {}) => {
6439
6514
  return (target, propertyKey, descriptor) => {
6440
6515
  const constructor = target.constructor;
6441
6516
  let metaList = ReflectUtils.getOwnMetadata(CLASS_LIST_METADATA_KEY, constructor);
@@ -6443,19 +6518,39 @@ var dooboostoreSimpleWebComponent = (() => {
6443
6518
  metaList = /* @__PURE__ */ new Map();
6444
6519
  ReflectUtils.defineMetadata(CLASS_LIST_METADATA_KEY, metaList, constructor);
6445
6520
  }
6446
- metaList.set(propertyKey, { propertyKey, selector, action });
6521
+ metaList.set(propertyKey, { propertyKey, selector, action, options });
6447
6522
  const original = descriptor.value;
6448
6523
  descriptor.value = async function(...args) {
6449
6524
  ensureInit2(this);
6450
6525
  const res = await original.apply(this, args);
6451
6526
  if (res !== void 0) {
6527
+ const r = options.root || "auto";
6452
6528
  const hostSet = SwcUtils.getHostSet(this);
6453
- let targetEl = null;
6454
- if (selector === ":host" || !selector) targetEl = this;
6455
- else if (selector === ":parentHost") targetEl = hostSet.$parentHost;
6456
- else if (selector === ":appHost") targetEl = hostSet.$appHost;
6457
- else targetEl = (this.shadowRoot || this).querySelector(selector);
6458
- if (targetEl) {
6529
+ const targetEls = [];
6530
+ if (selector === ":host" || !selector) {
6531
+ targetEls.push(this);
6532
+ } else if (selector === ":parentHost") {
6533
+ if (hostSet.$parentHost) targetEls.push(hostSet.$parentHost);
6534
+ } else if (selector === ":appHost") {
6535
+ if (hostSet.$appHost) targetEls.push(hostSet.$appHost);
6536
+ } else {
6537
+ if (r === "shadow") {
6538
+ const found = this.shadowRoot?.querySelectorAll(selector);
6539
+ if (found) targetEls.push(...found);
6540
+ } else if (r === "light") {
6541
+ const found = this.querySelectorAll(selector);
6542
+ if (found) targetEls.push(...found);
6543
+ } else if (r === "all") {
6544
+ const sFound = this.shadowRoot?.querySelectorAll(selector);
6545
+ const lFound = this.querySelectorAll(selector);
6546
+ if (sFound) targetEls.push(...sFound);
6547
+ if (lFound) targetEls.push(...lFound);
6548
+ } else {
6549
+ const found = (this.shadowRoot || this).querySelectorAll(selector);
6550
+ if (found) targetEls.push(...found);
6551
+ }
6552
+ }
6553
+ targetEls.forEach((targetEl) => {
6459
6554
  if (action === "set") {
6460
6555
  let classes = "";
6461
6556
  if (typeof res === "object" && res !== null && !Array.isArray(res)) {
@@ -6483,18 +6578,23 @@ var dooboostoreSimpleWebComponent = (() => {
6483
6578
  const classes = Array.isArray(res) ? res.map(String) : [String(res)];
6484
6579
  classes.forEach((c) => targetEl.classList.toggle(c));
6485
6580
  }
6486
- }
6581
+ });
6487
6582
  }
6488
6583
  return res;
6489
6584
  };
6490
6585
  };
6491
6586
  };
6492
6587
  }
6493
- var setClassList = createClassListDecorator("set");
6494
- var updateClassList = createClassListDecorator("update");
6495
- var addClassList = createClassListDecorator("add");
6496
- var removeClassList = createClassListDecorator("remove");
6497
- var toggleClassList = createClassListDecorator("toggle");
6588
+ var setClassList = (selector, options = {}) => createClassListDecorator("set")(selector, options);
6589
+ var updateClassList = (selector, options = {}) => createClassListDecorator("update")(selector, options);
6590
+ var addClassList = (selector, options = {}) => createClassListDecorator("add")(selector, options);
6591
+ var removeClassList = (selector, options = {}) => createClassListDecorator("remove")(selector, options);
6592
+ var toggleClassList = (selector, options = {}) => createClassListDecorator("toggle")(selector, options);
6593
+ var setClassListHost = (options = {}) => createClassListDecorator("set")(":host", options);
6594
+ var updateClassListHost = (options = {}) => createClassListDecorator("update")(":host", options);
6595
+ var addClassListHost = (options = {}) => createClassListDecorator("add")(":host", options);
6596
+ var removeClassListHost = (options = {}) => createClassListDecorator("remove")(":host", options);
6597
+ var toggleClassListHost = (options = {}) => createClassListDecorator("toggle")(":host", options);
6498
6598
  var findAllClassListMetadata = (target) => {
6499
6599
  const result = /* @__PURE__ */ new Map();
6500
6600
  const maps = ReflectUtils.findAllMetadata(CLASS_LIST_METADATA_KEY, target);
@@ -6509,7 +6609,7 @@ var dooboostoreSimpleWebComponent = (() => {
6509
6609
  // src/decorators/style.ts
6510
6610
  var STYLE_METADATA_KEY = Symbol("simple-web-component:style");
6511
6611
  function createStyleDecorator(action) {
6512
- return (selector) => {
6612
+ return (selector, options = {}) => {
6513
6613
  return (target, propertyKey, descriptor) => {
6514
6614
  const constructor = target.constructor;
6515
6615
  let metaList = ReflectUtils.getOwnMetadata(STYLE_METADATA_KEY, constructor);
@@ -6517,19 +6617,39 @@ var dooboostoreSimpleWebComponent = (() => {
6517
6617
  metaList = /* @__PURE__ */ new Map();
6518
6618
  ReflectUtils.defineMetadata(STYLE_METADATA_KEY, metaList, constructor);
6519
6619
  }
6520
- metaList.set(propertyKey, { propertyKey, selector, action });
6620
+ metaList.set(propertyKey, { propertyKey, selector, action, options });
6521
6621
  const original = descriptor.value;
6522
6622
  descriptor.value = async function(...args) {
6523
6623
  ensureInit2(this);
6524
6624
  const res = await original.apply(this, args);
6525
6625
  if (res !== void 0) {
6626
+ const r = options.root || "auto";
6526
6627
  const hostSet = SwcUtils.getHostSet(this);
6527
- let targetEl = null;
6528
- if (selector === ":host" || !selector) targetEl = this;
6529
- else if (selector === ":parentHost") targetEl = hostSet.$parentHost;
6530
- else if (selector === ":appHost") targetEl = hostSet.$appHost;
6531
- else targetEl = (this.shadowRoot || this).querySelector(selector);
6532
- if (targetEl) {
6628
+ const targetEls = [];
6629
+ if (selector === ":host" || !selector) {
6630
+ targetEls.push(this);
6631
+ } else if (selector === ":parentHost") {
6632
+ if (hostSet.$parentHost) targetEls.push(hostSet.$parentHost);
6633
+ } else if (selector === ":appHost") {
6634
+ if (hostSet.$appHost) targetEls.push(hostSet.$appHost);
6635
+ } else {
6636
+ if (r === "shadow") {
6637
+ const found = this.shadowRoot?.querySelectorAll(selector);
6638
+ if (found) targetEls.push(...found);
6639
+ } else if (r === "light") {
6640
+ const found = this.querySelectorAll(selector);
6641
+ if (found) targetEls.push(...found);
6642
+ } else if (r === "all") {
6643
+ const sFound = this.shadowRoot?.querySelectorAll(selector);
6644
+ const lFound = this.querySelectorAll(selector);
6645
+ if (sFound) targetEls.push(...sFound);
6646
+ if (lFound) targetEls.push(...lFound);
6647
+ } else {
6648
+ const found = (this.shadowRoot || this).querySelectorAll(selector);
6649
+ if (found) targetEls.push(...found);
6650
+ }
6651
+ }
6652
+ targetEls.forEach((targetEl) => {
6533
6653
  if (action === "set") {
6534
6654
  targetEl.style.cssText = "";
6535
6655
  if (typeof res === "object" && res !== null) {
@@ -6545,16 +6665,19 @@ var dooboostoreSimpleWebComponent = (() => {
6545
6665
  const props = Array.isArray(res) ? res : [res];
6546
6666
  props.forEach((p) => targetEl.style.removeProperty(String(p)));
6547
6667
  }
6548
- }
6668
+ });
6549
6669
  }
6550
6670
  return res;
6551
6671
  };
6552
6672
  };
6553
6673
  };
6554
6674
  }
6555
- var setStyle = createStyleDecorator("set");
6556
- var updateStyle = createStyleDecorator("update");
6557
- var removeStyle = createStyleDecorator("remove");
6675
+ var setStyle = (selector, options = {}) => createStyleDecorator("set")(selector, options);
6676
+ var setStyleHost = (options = {}) => createStyleDecorator("set")(":host", options);
6677
+ var updateStyle = (selector, options = {}) => createStyleDecorator("update")(selector, options);
6678
+ var updateStyleHost = (options = {}) => createStyleDecorator("update")(":host", options);
6679
+ var removeStyle = (selector, options = {}) => createStyleDecorator("remove")(selector, options);
6680
+ var removeStyleHost = (options = {}) => createStyleDecorator("remove")(":host", options);
6558
6681
  var findAllStyleMetadata = (target) => {
6559
6682
  const result = /* @__PURE__ */ new Map();
6560
6683
  const maps = ReflectUtils.findAllMetadata(STYLE_METADATA_KEY, target);
@@ -6684,9 +6807,6 @@ var dooboostoreSimpleWebComponent = (() => {
6684
6807
  return (targetObj, propertyKey, descriptor) => {
6685
6808
  const constructor = targetObj.constructor;
6686
6809
  const fullOptions = { ...options, type };
6687
- if (!fullOptions.attributeName) {
6688
- fullOptions.attributeName = `swc-on-${type}`;
6689
- }
6690
6810
  if (fullOptions.bubbles === void 0) fullOptions.bubbles = true;
6691
6811
  if (fullOptions.composed === void 0) fullOptions.composed = true;
6692
6812
  let list = ReflectUtils.getMetadata(EMIT_CUSTOM_EVENT_METADATA_KEY, constructor);
@@ -6751,6 +6871,9 @@ var dooboostoreSimpleWebComponent = (() => {
6751
6871
  const constructor = target instanceof Function ? target : target.constructor;
6752
6872
  return ReflectUtils.getMetadata(EMIT_CUSTOM_EVENT_METADATA_KEY, constructor);
6753
6873
  };
6874
+ function emitCustomEventHost(type, options) {
6875
+ return emitCustomEvent(":host", type, options);
6876
+ }
6754
6877
 
6755
6878
  // src/config/config.ts
6756
6879
  var HTML_TAG_ENTRIES = [
@@ -6871,6 +6994,10 @@ var dooboostoreSimpleWebComponent = (() => {
6871
6994
  inst.__swc_initialized = true;
6872
6995
  const hostSet = SwcUtils.getHostSet(inst);
6873
6996
  inst._executeSwcScript?.("swc-on-constructor", hostSet);
6997
+ const cMethods = findAllLifecycleMetadata(inst, ON_CONSTRUCTOR_METADATA_KEY);
6998
+ if (cMethods) {
6999
+ for (const m of cMethods) inst._invokeLifecycleMethod(m, hostSet);
7000
+ }
6874
7001
  }
6875
7002
  };
6876
7003
  var globalDelegatedRoots = /* @__PURE__ */ new WeakSet();
@@ -6969,7 +7096,9 @@ var dooboostoreSimpleWebComponent = (() => {
6969
7096
  const oldHandler = handlers.get(attrName);
6970
7097
  if (oldHandler) el.removeEventListener(eventName, oldHandler);
6971
7098
  const handler = async (event) => {
6972
- const hostSet = SwcUtils.getHostSet(el);
7099
+ console.log("execute handler", event);
7100
+ const parent = SwcUtils.findNearestSwcHost(el);
7101
+ const hostSet = SwcUtils.getHostSet(parent || el);
6973
7102
  const conf = getElementConfig(this);
6974
7103
  const currentWin = this._resolveWindow(conf);
6975
7104
  const helpers = SwcUtils.getHelperSet(currentWin);
@@ -6988,13 +7117,18 @@ var dooboostoreSimpleWebComponent = (() => {
6988
7117
  };
6989
7118
  proto.__swc_executeAttributeEvent = async function(el, attrName, script, event) {
6990
7119
  ensureInit2(this);
6991
- const hostSet = SwcUtils.getHostSet(el);
7120
+ console.log("execute handler2", event);
7121
+ const parent = SwcUtils.findNearestSwcHost(el);
7122
+ const hostSet = SwcUtils.getHostSet(parent || el);
6992
7123
  const conf = getElementConfig(this);
6993
7124
  const currentWin = this._resolveWindow(conf);
6994
7125
  const currentHelpers = SwcUtils.getHelperSet(currentWin);
7126
+ const detail = event.detail;
6995
7127
  const args = {
6996
7128
  event,
6997
- $data: event.detail,
7129
+ $event: event,
7130
+ $data: detail,
7131
+ $detail: detail,
6998
7132
  ...hostSet,
6999
7133
  ...currentHelpers,
7000
7134
  $el: el,
@@ -7021,12 +7155,14 @@ var dooboostoreSimpleWebComponent = (() => {
7021
7155
  metadata.extends = extendsTagName;
7022
7156
  }
7023
7157
  const emitCustomEventList = getEmitCustomEventMetadataList(constructor) || [];
7158
+ const emitHostCustomEventList = emitCustomEventList.filter((meta) => meta.selector === ":host" || meta.selector === "");
7024
7159
  const addEventListenerList = getAddEventListenerMetadata(constructor) || [];
7160
+ const addHostEventListenerList = addEventListenerList.filter((meta) => meta.selector === ":host" || meta.selector === "");
7025
7161
  const attrChangeMap = findAllAttributeChangedMetadata(constructor);
7026
7162
  const attributeList = findAllAttributeMetadata(constructor);
7027
7163
  const swcLifecycleAttributes = ["swc-on-constructor", "swc-on-connected", "swc-on-disconnected", "swc-on-before-connected", "swc-on-after-connected", "swc-on-before-disconnected", "swc-on-after-disconnected", "swc-on-before-adopted", "swc-on-after-adopted", "swc-on-attribute-changed"];
7028
7164
  const swcOnEvents = DOM_EVENT_NAMES.map((e) => `swc-on-${e}`);
7029
- const mergedObservedAttributes = [.../* @__PURE__ */ new Set([...metadata.observedAttributes ?? [], ...attrChangeMap.keys(), ...Array.from(findAllSetAttributeMetadata(constructor).values()).map((it) => it.name), ...attributeList.map((it) => it.options.name || String(it.propertyKey)), ...emitCustomEventList.map((it) => it.options.attributeName), ...swcLifecycleAttributes, ...swcOnEvents])];
7165
+ const mergedObservedAttributes = [.../* @__PURE__ */ new Set([...metadata.observedAttributes ?? [], ...attrChangeMap.keys(), ...Array.from(findAllSetAttributeMetadata(constructor).values()).map((it) => it.name), ...attributeList.map((it) => it.options.name || String(it.propertyKey)), ...emitHostCustomEventList.map((it) => it.options.attributeName).filter(Boolean), ...swcLifecycleAttributes, ...swcOnEvents])];
7030
7166
  const connectedInnerHtmlList = getOnConnectedInnerHtmlMetadata(constructor) || [];
7031
7167
  const proto = constructor.prototype;
7032
7168
  setupPrototype(proto);
@@ -7046,25 +7182,15 @@ var dooboostoreSimpleWebComponent = (() => {
7046
7182
  }
7047
7183
  attributeList.forEach((meta) => {
7048
7184
  const attrName = meta.options.name || String(meta.propertyKey);
7049
- if (meta.options.connectedInitialize) {
7050
- const memoryVal = this[meta.privateKey];
7051
- if (memoryVal !== void 0) {
7052
- this.__swc_syncing_init = true;
7053
- try {
7185
+ if (meta.options.connectedInitialize === true) {
7186
+ this.__swc_syncing_init = true;
7187
+ try {
7188
+ const memoryVal = this[meta.privateKey];
7189
+ if (memoryVal !== void 0) {
7054
7190
  this[meta.propertyKey] = memoryVal;
7055
- } finally {
7056
- this.__swc_syncing_init = false;
7057
- }
7058
- }
7059
- } else if (meta.selector === ":host" || !meta.selector) {
7060
- const domVal = this.getAttribute(attrName);
7061
- if (domVal !== null) {
7062
- this.__swc_syncing_init = true;
7063
- try {
7064
- this[meta.propertyKey] = domVal;
7065
- } finally {
7066
- this.__swc_syncing_init = false;
7067
7191
  }
7192
+ } finally {
7193
+ this.__swc_syncing_init = false;
7068
7194
  }
7069
7195
  }
7070
7196
  });
@@ -7087,7 +7213,62 @@ var dooboostoreSimpleWebComponent = (() => {
7087
7213
  });
7088
7214
  globalDelegatedRoots.add(root);
7089
7215
  }
7216
+ const delegateListeners = [];
7217
+ const nonDelegateListeners = [];
7090
7218
  addEventListenerList.forEach((meta) => {
7219
+ if (meta.options.delegate && meta.selector !== ":window" && meta.selector !== ":document" && meta.selector !== ":parentHost" && meta.selector !== ":appHost" && meta.selector !== ":firstHost" && meta.selector !== ":lastHost" && meta.selector !== ":firstAppHost" && meta.selector !== ":lastAppHost" && meta.selector !== ":hosts" && meta.selector !== ":appHosts" && meta.selector !== ":host" && meta.selector !== "") {
7220
+ delegateListeners.push(meta);
7221
+ } else {
7222
+ nonDelegateListeners.push(meta);
7223
+ }
7224
+ });
7225
+ const delegatesByTypeAndRoot = /* @__PURE__ */ new Map();
7226
+ delegateListeners.forEach((meta) => {
7227
+ const r = meta.options.root || "auto";
7228
+ const rootKey = `${meta.type}:${r}`;
7229
+ if (!delegatesByTypeAndRoot.has(rootKey)) {
7230
+ delegatesByTypeAndRoot.set(rootKey, []);
7231
+ }
7232
+ delegatesByTypeAndRoot.get(rootKey).push(meta);
7233
+ });
7234
+ delegatesByTypeAndRoot.forEach((metaList, typeRootKey) => {
7235
+ const [type, rStr] = typeRootKey.split(":");
7236
+ const r = rStr === "auto" ? "auto" : rStr;
7237
+ const opts = { capture: metaList[0].options.capture, once: metaList[0].options.once, passive: metaList[0].options.passive };
7238
+ const bindRoots = [];
7239
+ if (r === "auto") bindRoots.push(this.shadowRoot || this);
7240
+ else if (r === "light") bindRoots.push(this);
7241
+ else if (r === "shadow" && this.shadowRoot) bindRoots.push(this.shadowRoot);
7242
+ else if (r === "all") {
7243
+ bindRoots.push(this);
7244
+ if (this.shadowRoot) bindRoots.push(this.shadowRoot);
7245
+ }
7246
+ bindRoots.forEach((br) => {
7247
+ const sortedMetaList = [...metaList].sort((a, b) => {
7248
+ const aStop = a.options.stopPropagation ? 1 : 0;
7249
+ const bStop = b.options.stopPropagation ? 1 : 0;
7250
+ return bStop - aStop;
7251
+ });
7252
+ const unifiedHandler = async (event) => {
7253
+ for (const meta of sortedMetaList) {
7254
+ const { selector, options } = meta;
7255
+ const matchedEl = event.target.closest(selector);
7256
+ if (matchedEl && br.contains(matchedEl)) {
7257
+ if (options.stopPropagation) event.stopPropagation();
7258
+ if (options.stopImmediatePropagation) event.stopImmediatePropagation();
7259
+ if (options.preventDefault) event.preventDefault();
7260
+ const currentHostSet = SwcUtils.getHostSet(this);
7261
+ const args = { event, ...currentHostSet, $el: matchedEl, $root: br };
7262
+ await this[meta.propertyKey](event, currentHostSet, matchedEl, args);
7263
+ if (event.cancelBubble) break;
7264
+ }
7265
+ }
7266
+ };
7267
+ br.addEventListener(type, unifiedHandler, opts);
7268
+ this._boundListeners.push({ target: br, type, handler: unifiedHandler, options: opts });
7269
+ });
7270
+ });
7271
+ nonDelegateListeners.forEach((meta) => {
7091
7272
  const { selector, type, options } = meta;
7092
7273
  const opts = { capture: options.capture, once: options.once, passive: options.passive };
7093
7274
  const bindTargets = [];
@@ -7112,33 +7293,7 @@ var dooboostoreSimpleWebComponent = (() => {
7112
7293
  else if (selector === ":hosts") hostSet.$hosts.forEach(applyRootOption);
7113
7294
  else if (selector === ":appHosts") hostSet.$appHosts.forEach(applyRootOption);
7114
7295
  else if (selector === ":host" || !selector) applyRootOption(this);
7115
- else if (options.delegate) {
7116
- const bindRoots = [];
7117
- if (r === "auto") bindRoots.push(this.shadowRoot || this);
7118
- else if (r === "light") bindRoots.push(this);
7119
- else if (r === "shadow" && this.shadowRoot) bindRoots.push(this.shadowRoot);
7120
- else if (r === "all") {
7121
- bindRoots.push(this);
7122
- if (this.shadowRoot) bindRoots.push(this.shadowRoot);
7123
- }
7124
- bindRoots.forEach((br) => {
7125
- const handler = async (event) => {
7126
- const matchedEl = event.target.closest(selector);
7127
- if (matchedEl && br.contains(matchedEl)) {
7128
- if (options.stopPropagation) event.stopPropagation();
7129
- if (options.stopImmediatePropagation) event.stopImmediatePropagation();
7130
- if (options.preventDefault) event.preventDefault();
7131
- const currentHostSet = SwcUtils.getHostSet(this);
7132
- const args = { event, ...currentHostSet, $el: matchedEl, $root: br };
7133
- await this._invokeLifecycleMethod(meta.propertyKey, currentHostSet, [event, currentHostSet, matchedEl, args]);
7134
- }
7135
- };
7136
- br.addEventListener(type, handler, opts);
7137
- if (options.removeOnDisconnected === true || br !== this && br !== this.shadowRoot) {
7138
- this._boundListeners.push({ target: br, type, handler, options: opts });
7139
- }
7140
- });
7141
- } else {
7296
+ else {
7142
7297
  const searchRoots = [];
7143
7298
  if (r === "auto") searchRoots.push(this.shadowRoot || this);
7144
7299
  else if (r === "light") searchRoots.push(this);
@@ -7158,7 +7313,7 @@ var dooboostoreSimpleWebComponent = (() => {
7158
7313
  if (options.preventDefault) event.preventDefault();
7159
7314
  const currentHostSet = SwcUtils.getHostSet(this);
7160
7315
  const args = { event, ...currentHostSet, $el: t, $root: t };
7161
- await this._invokeLifecycleMethod(meta.propertyKey, currentHostSet, [event, currentHostSet, args]);
7316
+ await this[meta.propertyKey](event, currentHostSet, args);
7162
7317
  };
7163
7318
  t.addEventListener(type, handler, opts);
7164
7319
  if (options.removeOnDisconnected === true || t === currentWin || t === currentWin.document) {
@@ -7166,6 +7321,22 @@ var dooboostoreSimpleWebComponent = (() => {
7166
7321
  }
7167
7322
  });
7168
7323
  });
7324
+ addHostEventListenerList.forEach((meta) => {
7325
+ const { type, options } = meta;
7326
+ const opts = { capture: options.capture, once: options.once, passive: options.passive };
7327
+ const handler = async (event) => {
7328
+ if (options.stopPropagation) event.stopPropagation();
7329
+ if (options.stopImmediatePropagation) event.stopImmediatePropagation();
7330
+ if (options.preventDefault) event.preventDefault();
7331
+ const currentHostSet = SwcUtils.getHostSet(this);
7332
+ const args = { event, ...currentHostSet, $el: this, $root: this.getRootNode() };
7333
+ await this[meta.propertyKey](event, currentHostSet, args);
7334
+ };
7335
+ this.addEventListener(type, handler, opts);
7336
+ if (options.removeOnDisconnected === true) {
7337
+ this._boundListeners.push({ target: this, type, handler, options: opts });
7338
+ }
7339
+ });
7169
7340
  if (originalConnected) originalConnected.apply(this);
7170
7341
  const aMethods = findAllLifecycleMetadata(this, ON_AFTER_CONNECTED_METADATA_KEY);
7171
7342
  if (aMethods) {
@@ -7215,17 +7386,20 @@ var dooboostoreSimpleWebComponent = (() => {
7215
7386
  const originalAttributeChanged = proto.attributeChangedCallback;
7216
7387
  proto.attributeChangedCallback = function(name2, old, newVal) {
7217
7388
  if (originalAttributeChanged) originalAttributeChanged.apply(this, [name2, old, newVal]);
7389
+ const hSet = SwcUtils.getHostSet(this);
7218
7390
  if (name2.startsWith("swc-on-") && !swcLifecycleAttributes.includes(name2)) {
7219
7391
  if (newVal !== null) {
7220
- const customEventMeta = emitCustomEventList.find((it) => it.options.attributeName === name2);
7221
- const eventName = customEventMeta ? customEventMeta.type : name2.substring(7);
7392
+ const eventName = name2.substring(7);
7222
7393
  this._bindAttributeEvent(this, name2, newVal, eventName);
7223
7394
  }
7224
7395
  }
7396
+ const hostCustomEventMeta = emitHostCustomEventList.find((it) => it.options.attributeName === name2);
7397
+ if (hostCustomEventMeta && newVal !== null) {
7398
+ this._bindAttributeEvent(this, name2, newVal, hostCustomEventMeta.type);
7399
+ }
7225
7400
  const mKeys = attrChangeMap.get(name2);
7226
7401
  if (mKeys && Array.isArray(mKeys)) {
7227
- const hSet = SwcUtils.getHostSet(this);
7228
- for (const key of mKeys) this._invokeLifecycleMethod(key, hSet, [newVal, old, name2]);
7402
+ for (const key of mKeys) this[key](newVal, old, name2, hSet);
7229
7403
  }
7230
7404
  };
7231
7405
  Object.defineProperty(constructor, "observedAttributes", {
@@ -8050,6 +8224,10 @@ var dooboostoreSimpleWebComponent = (() => {
8050
8224
  const raw = strings.reduce((acc, str, i) => acc + str + (values[i] !== void 0 ? values[i] : ""), "");
8051
8225
  return document.createTextNode(raw);
8052
8226
  };
8227
+ TemplateUtils2.commentNode = (strings, ...values) => {
8228
+ const raw = strings.reduce((acc, str, i) => acc + str + (values[i] !== void 0 ? values[i] : ""), "");
8229
+ return document.createComment(raw);
8230
+ };
8053
8231
  TemplateUtils2.createElement = (info, attrs = {}) => {
8054
8232
  const el = document.createElement(info.tagName);
8055
8233
  if (info.innerHtml !== void 0) el.innerHTML = info.innerHtml;
@@ -8082,6 +8260,7 @@ var dooboostoreSimpleWebComponent = (() => {
8082
8260
  })(TemplateUtils || (TemplateUtils = {}));
8083
8261
  var htmlFragment = TemplateUtils.htmlFragment;
8084
8262
  var textNode = TemplateUtils.textNode;
8263
+ var commentNode = TemplateUtils.commentNode;
8085
8264
  var createElement = TemplateUtils.createElement;
8086
8265
  var htmlDivElement = TemplateUtils.htmlDivElement;
8087
8266
  var htmlSpanElement = TemplateUtils.htmlSpanElement;