@dooboostore/simple-web-component 1.0.28 → 1.0.30

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 (94) hide show
  1. package/README.md +437 -25
  2. package/dist/cjs/decorators/attribute.js +2 -1
  3. package/dist/cjs/decorators/attribute.js.map +2 -2
  4. package/dist/cjs/decorators/elementDefine.js +8 -2
  5. package/dist/cjs/decorators/elementDefine.js.map +2 -2
  6. package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
  7. package/dist/cjs/decorators/index.js +1 -0
  8. package/dist/cjs/decorators/index.js.map +2 -2
  9. package/dist/cjs/decorators/lifecycles.js +4 -0
  10. package/dist/cjs/decorators/lifecycles.js.map +2 -2
  11. package/dist/cjs/decorators/setProperty.js +97 -0
  12. package/dist/cjs/decorators/setProperty.js.map +7 -0
  13. package/dist/cjs/elements/SwcAppEngine.js +3 -3
  14. package/dist/cjs/elements/SwcAppEngine.js.map +2 -2
  15. package/dist/cjs/elements/SwcAppMixin.js +44 -6
  16. package/dist/cjs/elements/SwcAppMixin.js.map +3 -3
  17. package/dist/cjs/elements/SwcAsync.js +4 -1
  18. package/dist/cjs/elements/SwcAsync.js.map +2 -2
  19. package/dist/cjs/elements/SwcChoose.js +54 -38
  20. package/dist/cjs/elements/SwcChoose.js.map +2 -2
  21. package/dist/cjs/elements/register.js +131 -39
  22. package/dist/cjs/elements/register.js.map +2 -2
  23. package/dist/cjs/index.js +2 -1
  24. package/dist/cjs/index.js.map +2 -2
  25. package/dist/cjs/types.js.map +1 -1
  26. package/dist/cjs/utils/Utils.js +30 -1
  27. package/dist/cjs/utils/Utils.js.map +2 -2
  28. package/dist/esm/decorators/attribute.js +2 -1
  29. package/dist/esm/decorators/attribute.js.map +2 -2
  30. package/dist/esm/decorators/elementDefine.js +8 -2
  31. package/dist/esm/decorators/elementDefine.js.map +2 -2
  32. package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
  33. package/dist/esm/decorators/index.js +1 -0
  34. package/dist/esm/decorators/index.js.map +2 -2
  35. package/dist/esm/decorators/lifecycles.js +4 -0
  36. package/dist/esm/decorators/lifecycles.js.map +2 -2
  37. package/dist/esm/decorators/setProperty.js +78 -0
  38. package/dist/esm/decorators/setProperty.js.map +7 -0
  39. package/dist/esm/elements/SwcAppEngine.js +3 -3
  40. package/dist/esm/elements/SwcAppEngine.js.map +2 -2
  41. package/dist/esm/elements/SwcAppMixin.js +44 -6
  42. package/dist/esm/elements/SwcAppMixin.js.map +3 -3
  43. package/dist/esm/elements/SwcAsync.js +4 -1
  44. package/dist/esm/elements/SwcAsync.js.map +2 -2
  45. package/dist/esm/elements/SwcChoose.js +54 -38
  46. package/dist/esm/elements/SwcChoose.js.map +2 -2
  47. package/dist/esm/elements/register.js +131 -39
  48. package/dist/esm/elements/register.js.map +2 -2
  49. package/dist/esm/index.js +2 -1
  50. package/dist/esm/index.js.map +2 -2
  51. package/dist/esm/types.js.map +1 -1
  52. package/dist/esm/utils/Utils.js +30 -1
  53. package/dist/esm/utils/Utils.js.map +2 -2
  54. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +118 -4
  55. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  56. package/dist/types/decorators/attribute.d.ts.map +1 -1
  57. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  58. package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
  59. package/dist/types/decorators/index.d.ts +1 -0
  60. package/dist/types/decorators/index.d.ts.map +1 -1
  61. package/dist/types/decorators/lifecycles.d.ts +2 -0
  62. package/dist/types/decorators/lifecycles.d.ts.map +1 -1
  63. package/dist/types/decorators/setProperty.d.ts +13 -0
  64. package/dist/types/decorators/setProperty.d.ts.map +1 -0
  65. package/dist/types/elements/SwcAppMixin.d.ts +7 -2
  66. package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
  67. package/dist/types/elements/SwcAsync.d.ts.map +1 -1
  68. package/dist/types/elements/SwcChoose.d.ts +1 -1
  69. package/dist/types/elements/SwcChoose.d.ts.map +1 -1
  70. package/dist/types/elements/register.d.ts +3 -1
  71. package/dist/types/elements/register.d.ts.map +1 -1
  72. package/dist/types/index.d.ts +1 -1
  73. package/dist/types/index.d.ts.map +1 -1
  74. package/dist/types/types.d.ts +3 -0
  75. package/dist/types/types.d.ts.map +1 -1
  76. package/dist/types/utils/Utils.d.ts +13 -0
  77. package/dist/types/utils/Utils.d.ts.map +1 -1
  78. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +118 -4
  79. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  80. package/package.json +4 -4
  81. package/src/decorators/attribute.ts +6 -1
  82. package/src/decorators/elementDefine.ts +12 -4
  83. package/src/decorators/emitCustomEvent.ts +1 -0
  84. package/src/decorators/index.ts +1 -0
  85. package/src/decorators/lifecycles.ts +3 -0
  86. package/src/decorators/setProperty.ts +97 -0
  87. package/src/elements/SwcAppEngine.ts +3 -3
  88. package/src/elements/SwcAppMixin.ts +77 -14
  89. package/src/elements/SwcAsync.ts +5 -1
  90. package/src/elements/SwcChoose.ts +76 -37
  91. package/src/elements/register.ts +158 -39
  92. package/src/index.ts +3 -1
  93. package/src/types.ts +3 -0
  94. package/src/utils/Utils.ts +55 -1
@@ -5759,6 +5759,7 @@ var ON_AFTER_DISCONNECTED_METADATA_KEY = Symbol.for("simple-web-component:on-aft
5759
5759
  var ON_BEFORE_ADOPTED_METADATA_KEY = Symbol.for("simple-web-component:on-before-adopted");
5760
5760
  var ON_AFTER_ADOPTED_METADATA_KEY = Symbol.for("simple-web-component:on-after-adopted");
5761
5761
  var ON_ADD_EVENT_LISTENER_METADATA_KEY = Symbol.for("simple-web-component:on-add-event-listener");
5762
+ var ON_CONNECTED_SWC_APP_METADATA_KEY = Symbol.for("simple-web-component:on-connected-swc-app");
5762
5763
  var INNER_HTML_METADATA_KEY = Symbol.for("simple-web-component:inner-html");
5763
5764
  var ATTRIBUTE_CHANGED_WILDCARD = "*";
5764
5765
  function createLifecycleDecorator(metadataKey) {
@@ -5783,6 +5784,7 @@ var onBeforeAdopted = createLifecycleDecorator(ON_BEFORE_ADOPTED_METADATA_KEY);
5783
5784
  var onAfterAdopted = createLifecycleDecorator(ON_AFTER_ADOPTED_METADATA_KEY);
5784
5785
  var onAdopted = onAfterAdopted;
5785
5786
  var onAddEventListener = createLifecycleDecorator(ON_ADD_EVENT_LISTENER_METADATA_KEY);
5787
+ var onConnectedSwcApp = createLifecycleDecorator(ON_CONNECTED_SWC_APP_METADATA_KEY);
5786
5788
  function onConnectedInnerHtml(arg1, arg2, arg3) {
5787
5789
  const decorator = (options, target, propertyKey) => {
5788
5790
  const constructor = target.constructor;
@@ -5903,7 +5905,8 @@ function attribute(selector, options = {}) {
5903
5905
  }
5904
5906
  return null;
5905
5907
  }
5906
- return convertValue(this[privateKey], targetType);
5908
+ const data = convertValue(this[privateKey], targetType);
5909
+ return data;
5907
5910
  },
5908
5911
  set(nv) {
5909
5912
  const attrName = options.name || String(propertyKey);
@@ -6785,6 +6788,77 @@ var findAllAttributeApplyMetadata = (target) => {
6785
6788
  return result;
6786
6789
  };
6787
6790
 
6791
+ // src/decorators/setProperty.ts
6792
+ var PROPERTY_SET_METADATA_KEY = Symbol.for("simple-web-component:property-set");
6793
+ var setProperty = (selector, propertyNameOrOptions, options = {}) => {
6794
+ return (target, propertyKey, descriptor) => {
6795
+ const constructor = target.constructor;
6796
+ let metaList = ReflectUtils.getOwnMetadata(PROPERTY_SET_METADATA_KEY, constructor);
6797
+ if (!metaList) {
6798
+ metaList = /* @__PURE__ */ new Map();
6799
+ ReflectUtils.defineMetadata(PROPERTY_SET_METADATA_KEY, metaList, constructor);
6800
+ }
6801
+ let propertyName = typeof propertyNameOrOptions === "string" ? propertyNameOrOptions : void 0;
6802
+ let finalOptions = options;
6803
+ if (typeof propertyNameOrOptions === "object" && propertyNameOrOptions !== null) {
6804
+ finalOptions = propertyNameOrOptions;
6805
+ }
6806
+ metaList.set(propertyKey, {
6807
+ propertyKey,
6808
+ selector,
6809
+ options: { ...finalOptions, name: propertyName }
6810
+ });
6811
+ const original = descriptor.value;
6812
+ descriptor.value = async function(...args) {
6813
+ ensureInit2(this);
6814
+ const res = await original.apply(this, args);
6815
+ if (res !== void 0) {
6816
+ const win = this.ownerDocument?.defaultView || window;
6817
+ const host2 = this;
6818
+ const hostSet = { ...SwcUtils.getHelperAndHostSet(win, host2), $this: this };
6819
+ const r = finalOptions.root || "auto";
6820
+ const targetEls = [];
6821
+ const applyRoot = (t) => {
6822
+ if (!t || !(t instanceof win.HTMLElement)) return;
6823
+ targetEls.push(t);
6824
+ };
6825
+ if (selector === ":parentHost") applyRoot(hostSet.$parentHost);
6826
+ else if (selector === ":appHost") applyRoot(hostSet.$appHost);
6827
+ else if (selector === ":firstHost") applyRoot(hostSet.$firstHost);
6828
+ else if (selector === ":lastHost") applyRoot(hostSet.$lastHost);
6829
+ else if (selector === ":firstAppHost") applyRoot(hostSet.$firstAppHost);
6830
+ else if (selector === ":lastAppHost") applyRoot(hostSet.$lastAppHost);
6831
+ else if (selector === ":hosts") hostSet.$hosts.forEach(applyRoot);
6832
+ else if (selector === ":appHosts") hostSet.$appHosts.forEach(applyRoot);
6833
+ else if (selector === ":host" || !selector) applyRoot(host2);
6834
+ else {
6835
+ const targetRoot = r === "auto" ? host2.shadowRoot || host2 : r === "shadow" ? host2.shadowRoot : host2;
6836
+ if (targetRoot) {
6837
+ const found = targetRoot.querySelectorAll(selector);
6838
+ if (found) targetEls.push(...Array.from(found));
6839
+ }
6840
+ }
6841
+ targetEls.forEach((targetEl) => {
6842
+ const resolvedRes = typeof res === "function" ? res(targetEl, hostSet) : res;
6843
+ if (propertyName) {
6844
+ targetEl[propertyName] = resolvedRes;
6845
+ } else if (typeof resolvedRes === "object" && resolvedRes !== null && !Array.isArray(resolvedRes)) {
6846
+ Object.entries(resolvedRes).forEach(([prop, val]) => {
6847
+ const finalVal = typeof val === "function" ? val(targetEl, hostSet) : val;
6848
+ targetEl[prop] = finalVal;
6849
+ });
6850
+ } else {
6851
+ targetEl.value = resolvedRes;
6852
+ }
6853
+ });
6854
+ }
6855
+ };
6856
+ };
6857
+ };
6858
+ var setPropertyHost = (propertyNameOrOptions, options = {}) => {
6859
+ return setProperty(":host", propertyNameOrOptions, options);
6860
+ };
6861
+
6788
6862
  // src/decorators/subscribeSwcAppRouteChange.ts
6789
6863
  var SUBSCRIBE_SWC_APP_ROUTE_CHANGE_METADATA_KEY = Symbol.for("simple-web-component:subscribe-swc-app-route-change");
6790
6864
  function createSwcAppRouteChangeSubscriber(options) {
@@ -7016,6 +7090,35 @@ var SwcUtils;
7016
7090
  const appHostsWithoutSelf = appHosts.filter((h) => h !== el);
7017
7091
  return appHostsWithoutSelf.length > 0 ? appHostsWithoutSelf[appHostsWithoutSelf.length - 1] : void 0;
7018
7092
  };
7093
+ SwcUtils2.findParentAppHostDirect = (el) => {
7094
+ const appHosts = (0, SwcUtils2.findAllParentAppHostsDirect)(el);
7095
+ return appHosts.length > 0 ? appHosts[appHosts.length - 1] : null;
7096
+ };
7097
+ SwcUtils2.findAllParentAppHostsDirect = (el) => {
7098
+ const appHosts = [];
7099
+ let current = el.parentElement;
7100
+ while (current) {
7101
+ const isAppHost = current.tagName.toLowerCase() === "swc-app" || current.getAttribute("is")?.startsWith("swc-app-");
7102
+ if (isAppHost) {
7103
+ appHosts.push(current);
7104
+ }
7105
+ if (current.shadowRoot) {
7106
+ current = current.shadowRoot.host.parentElement;
7107
+ } else {
7108
+ if (!current.parentElement) {
7109
+ const parentNode = current.parentNode;
7110
+ if (parentNode instanceof ShadowRoot) {
7111
+ current = parentNode.host;
7112
+ } else {
7113
+ break;
7114
+ }
7115
+ } else {
7116
+ current = current.parentElement;
7117
+ }
7118
+ }
7119
+ }
7120
+ return appHosts.reverse();
7121
+ };
7019
7122
  SwcUtils2.getHostSet = (el) => {
7020
7123
  const isSwc = !!getElementConfig(el);
7021
7124
  const ancestors = (0, SwcUtils2.findAllSwcHosts)(el);
@@ -7039,7 +7142,7 @@ var SwcUtils;
7039
7142
  }
7040
7143
  curr = curr.parentElement || curr.getRootNode().host;
7041
7144
  }
7042
- const $appHosts = $hosts.filter((h) => h.tagName.toLowerCase() === "swc-app" || h.getAttribute("is")?.startsWith("swc-app-"));
7145
+ const $appHosts = SwcUtils2.findAllParentAppHostsDirect(el);
7043
7146
  const $appHost = $appHosts.length > 0 ? $appHosts[$appHosts.length - 1] === el ? $appHosts.length > 1 ? $appHosts[$appHosts.length - 2] : null : $appHosts[$appHosts.length - 1] : null;
7044
7147
  const $firstAppHost = $appHosts.length > 0 ? $appHosts[0] : null;
7045
7148
  return {
@@ -7287,6 +7390,7 @@ var ensureInit2 = (inst) => {
7287
7390
  });
7288
7391
  }
7289
7392
  const hostSet = SwcUtils.getHostSet(inst);
7393
+ const appHosts = SwcUtils.findAllParentAppHostsDirect(inst);
7290
7394
  inst._executeSwcScript?.("swc-on-constructor", hostSet);
7291
7395
  const cMethods = findAllLifecycleMetadata(inst, ON_INITIALIZE_METADATA_KEY);
7292
7396
  if (cMethods) {
@@ -7358,10 +7462,11 @@ var setupPrototype = (proto) => {
7358
7462
  proto._invokeLifecycleMethod = function(methodName, hostSet, extraArgs = []) {
7359
7463
  ensureInit2(this);
7360
7464
  if (typeof this[methodName] !== "function") return;
7361
- const app = hostSet.$appHost?.simpleApplication;
7465
+ const useHostSet = hostSet ?? SwcUtils.getHostSet(this);
7466
+ const app = useHostSet?.$appHost.simpleApplication;
7362
7467
  if (app) {
7363
7468
  const otherStorage = /* @__PURE__ */ new Map();
7364
- const situations = new SituationTypeContainers([new SituationTypeContainer({ situationType: "SIMPLE_WEB_COMPONENT://HOSTSET" /* HOST_SET */, data: hostSet }), new SituationTypeContainer({ situationType: "SIMPLE_WEB_COMPONENT://APPHOST" /* APP_HOST */, data: hostSet.$appHost }), new SituationTypeContainer({ situationType: "SIMPLE_WEB_COMPONENT://APPHOSTS" /* APP_HOSTS */, data: hostSet.$appHosts }), new SituationTypeContainer({ situationType: "SIMPLE_WEB_COMPONENT://HOST" /* HOST */, data: hostSet.$host }), new SituationTypeContainer({ situationType: "SIMPLE_WEB_COMPONENT://HOSTS" /* HOSTS */, data: hostSet.$hosts }), new SituationTypeContainer({ situationType: "SIMPLE_WEB_COMPONENT://FIRSTHOST" /* FIRST_HOST */, data: hostSet.$firstHost }), new SituationTypeContainer({ situationType: "SIMPLE_WEB_COMPONENT://LASTHOST" /* LAST_HOST */, data: hostSet.$lastHost }), new SituationTypeContainer({ situationType: "SIMPLE_WEB_COMPONENT://FIRSTAPPHOST" /* FIRST_APP_HOST */, data: hostSet.$firstAppHost }), new SituationTypeContainer({ situationType: "SIMPLE_WEB_COMPONENT://LASTAPPHOST" /* LAST_APP_HOST */, data: hostSet.$lastAppHost })]);
7469
+ const situations = new SituationTypeContainers([new SituationTypeContainer({ situationType: "SIMPLE_WEB_COMPONENT://HOSTSET" /* HOST_SET */, data: useHostSet }), new SituationTypeContainer({ situationType: "SIMPLE_WEB_COMPONENT://APPHOST" /* APP_HOST */, data: useHostSet.$appHost }), new SituationTypeContainer({ situationType: "SIMPLE_WEB_COMPONENT://APPHOSTS" /* APP_HOSTS */, data: useHostSet.$appHosts }), new SituationTypeContainer({ situationType: "SIMPLE_WEB_COMPONENT://HOST" /* HOST */, data: useHostSet.$host }), new SituationTypeContainer({ situationType: "SIMPLE_WEB_COMPONENT://HOSTS" /* HOSTS */, data: useHostSet.$hosts }), new SituationTypeContainer({ situationType: "SIMPLE_WEB_COMPONENT://FIRSTHOST" /* FIRST_HOST */, data: useHostSet.$firstHost }), new SituationTypeContainer({ situationType: "SIMPLE_WEB_COMPONENT://LASTHOST" /* LAST_HOST */, data: useHostSet.$lastHost }), new SituationTypeContainer({ situationType: "SIMPLE_WEB_COMPONENT://FIRSTAPPHOST" /* FIRST_APP_HOST */, data: useHostSet.$firstAppHost }), new SituationTypeContainer({ situationType: "SIMPLE_WEB_COMPONENT://LASTAPPHOST" /* LAST_APP_HOST */, data: useHostSet.$lastAppHost })]);
7365
7470
  otherStorage.set(SituationTypeContainers, situations);
7366
7471
  return app.simstanceManager.executeBindParameterSimPromise(
7367
7472
  {
@@ -7630,8 +7735,12 @@ var elementDefine = (name, config = {}) => (constructor) => {
7630
7735
  this._executeSwcScript("swc-on-connected", hostSet);
7631
7736
  this._executeSwcScript("swc-on-after-connected", hostSet);
7632
7737
  this.__swc_connected = true;
7738
+ const appHostss = SwcUtils.findAllParentAppHostsDirect(this);
7633
7739
  if (appHost2 && typeof appHost2._connected === "function") {
7634
7740
  appHost2._connected(this);
7741
+ } else if (appHost2 && typeof appHost2) {
7742
+ appHost2._connected_safari ?? (appHost2._connected_safari = []);
7743
+ appHost2._connected_safari.push(this);
7635
7744
  }
7636
7745
  };
7637
7746
  const originalDisconnected = proto.disconnectedCallback;
@@ -8524,7 +8633,9 @@ export {
8524
8633
  ON_BEFORE_ADOPTED_METADATA_KEY,
8525
8634
  ON_BEFORE_CONNECTED_METADATA_KEY,
8526
8635
  ON_BEFORE_DISCONNECTED_METADATA_KEY,
8636
+ ON_CONNECTED_SWC_APP_METADATA_KEY,
8527
8637
  ON_INITIALIZE_METADATA_KEY,
8638
+ PROPERTY_SET_METADATA_KEY,
8528
8639
  QUERY_ALL_METADATA_KEY,
8529
8640
  QUERY_METADATA_KEY,
8530
8641
  STYLE_METADATA_KEY,
@@ -8606,6 +8717,7 @@ export {
8606
8717
  onBeforeDisconnected,
8607
8718
  onConnected,
8608
8719
  onConnectedInnerHtml,
8720
+ onConnectedSwcApp,
8609
8721
  onDisconnected,
8610
8722
  onInitialize,
8611
8723
  parentHost,
@@ -8624,6 +8736,8 @@ export {
8624
8736
  setAttributeHost,
8625
8737
  setClass,
8626
8738
  setClassHost,
8739
+ setProperty,
8740
+ setPropertyHost,
8627
8741
  setStyle,
8628
8742
  setStyleHost,
8629
8743
  subscribeSwcAppRouteChange,