@dooboostore/simple-web-component 1.0.29 → 1.0.31

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 (108) hide show
  1. package/README.md +651 -27
  2. package/dist/cjs/decorators/elementDefine.js +5 -3
  3. package/dist/cjs/decorators/elementDefine.js.map +2 -2
  4. package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
  5. package/dist/cjs/decorators/index.js +1 -0
  6. package/dist/cjs/decorators/index.js.map +2 -2
  7. package/dist/cjs/decorators/setProperty.js +97 -0
  8. package/dist/cjs/decorators/setProperty.js.map +7 -0
  9. package/dist/cjs/elements/SwcAppEngine.js +3 -3
  10. package/dist/cjs/elements/SwcAppEngine.js.map +2 -2
  11. package/dist/cjs/elements/SwcAppMixin.js +1 -8
  12. package/dist/cjs/elements/SwcAppMixin.js.map +2 -2
  13. package/dist/cjs/elements/SwcAsync.js +37 -53
  14. package/dist/cjs/elements/SwcAsync.js.map +2 -2
  15. package/dist/cjs/elements/SwcChoose.js +55 -60
  16. package/dist/cjs/elements/SwcChoose.js.map +2 -2
  17. package/dist/cjs/elements/SwcIf.js +31 -60
  18. package/dist/cjs/elements/SwcIf.js.map +2 -2
  19. package/dist/cjs/elements/SwcLoop.js +20 -43
  20. package/dist/cjs/elements/SwcLoop.js.map +2 -2
  21. package/dist/cjs/elements/SwcSubTemplates.js +0 -27
  22. package/dist/cjs/elements/SwcSubTemplates.js.map +2 -2
  23. package/dist/cjs/elements/register.js +216 -128
  24. package/dist/cjs/elements/register.js.map +2 -2
  25. package/dist/cjs/index.js +2 -1
  26. package/dist/cjs/index.js.map +2 -2
  27. package/dist/cjs/router/ElementRouter.js +1 -8
  28. package/dist/cjs/router/ElementRouter.js.map +2 -2
  29. package/dist/cjs/types.js.map +1 -1
  30. package/dist/cjs/utils/Utils.js +26 -10
  31. package/dist/cjs/utils/Utils.js.map +2 -2
  32. package/dist/esm/decorators/elementDefine.js +5 -3
  33. package/dist/esm/decorators/elementDefine.js.map +2 -2
  34. package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
  35. package/dist/esm/decorators/index.js +1 -0
  36. package/dist/esm/decorators/index.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 +1 -8
  42. package/dist/esm/elements/SwcAppMixin.js.map +2 -2
  43. package/dist/esm/elements/SwcAsync.js +37 -34
  44. package/dist/esm/elements/SwcAsync.js.map +2 -2
  45. package/dist/esm/elements/SwcChoose.js +55 -41
  46. package/dist/esm/elements/SwcChoose.js.map +2 -2
  47. package/dist/esm/elements/SwcIf.js +31 -41
  48. package/dist/esm/elements/SwcIf.js.map +2 -2
  49. package/dist/esm/elements/SwcLoop.js +20 -24
  50. package/dist/esm/elements/SwcLoop.js.map +2 -2
  51. package/dist/esm/elements/SwcSubTemplates.js +0 -8
  52. package/dist/esm/elements/SwcSubTemplates.js.map +2 -2
  53. package/dist/esm/elements/register.js +216 -128
  54. package/dist/esm/elements/register.js.map +2 -2
  55. package/dist/esm/index.js +2 -1
  56. package/dist/esm/index.js.map +2 -2
  57. package/dist/esm/router/ElementRouter.js +1 -8
  58. package/dist/esm/router/ElementRouter.js.map +2 -2
  59. package/dist/esm/types.js.map +1 -1
  60. package/dist/esm/utils/Utils.js +26 -10
  61. package/dist/esm/utils/Utils.js.map +2 -2
  62. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +105 -13
  63. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  64. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  65. package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
  66. package/dist/types/decorators/index.d.ts +1 -0
  67. package/dist/types/decorators/index.d.ts.map +1 -1
  68. package/dist/types/decorators/setProperty.d.ts +13 -0
  69. package/dist/types/decorators/setProperty.d.ts.map +1 -0
  70. package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
  71. package/dist/types/elements/SwcAsync.d.ts +1 -11
  72. package/dist/types/elements/SwcAsync.d.ts.map +1 -1
  73. package/dist/types/elements/SwcChoose.d.ts +1 -13
  74. package/dist/types/elements/SwcChoose.d.ts.map +1 -1
  75. package/dist/types/elements/SwcIf.d.ts +1 -13
  76. package/dist/types/elements/SwcIf.d.ts.map +1 -1
  77. package/dist/types/elements/SwcLoop.d.ts +1 -13
  78. package/dist/types/elements/SwcLoop.d.ts.map +1 -1
  79. package/dist/types/elements/SwcSubTemplates.d.ts +6 -6
  80. package/dist/types/elements/SwcSubTemplates.d.ts.map +1 -1
  81. package/dist/types/elements/register.d.ts +3 -1
  82. package/dist/types/elements/register.d.ts.map +1 -1
  83. package/dist/types/index.d.ts +1 -1
  84. package/dist/types/index.d.ts.map +1 -1
  85. package/dist/types/router/ElementRouter.d.ts.map +1 -1
  86. package/dist/types/types.d.ts +3 -0
  87. package/dist/types/types.d.ts.map +1 -1
  88. package/dist/types/utils/Utils.d.ts +10 -0
  89. package/dist/types/utils/Utils.d.ts.map +1 -1
  90. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +105 -13
  91. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  92. package/package.json +3 -3
  93. package/src/decorators/elementDefine.ts +10 -3
  94. package/src/decorators/emitCustomEvent.ts +1 -0
  95. package/src/decorators/index.ts +1 -0
  96. package/src/decorators/setProperty.ts +97 -0
  97. package/src/elements/SwcAppEngine.ts +3 -3
  98. package/src/elements/SwcAppMixin.ts +7 -28
  99. package/src/elements/SwcAsync.ts +46 -30
  100. package/src/elements/SwcChoose.ts +82 -38
  101. package/src/elements/SwcIf.ts +38 -38
  102. package/src/elements/SwcLoop.ts +24 -19
  103. package/src/elements/SwcSubTemplates.ts +6 -6
  104. package/src/elements/register.ts +261 -121
  105. package/src/index.ts +3 -1
  106. package/src/router/ElementRouter.ts +1 -12
  107. package/src/types.ts +3 -1
  108. package/src/utils/Utils.ts +40 -19
@@ -6788,6 +6788,77 @@ var findAllAttributeApplyMetadata = (target) => {
6788
6788
  return result;
6789
6789
  };
6790
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
+
6791
6862
  // src/decorators/subscribeSwcAppRouteChange.ts
6792
6863
  var SUBSCRIBE_SWC_APP_ROUTE_CHANGE_METADATA_KEY = Symbol.for("simple-web-component:subscribe-swc-app-route-change");
6793
6864
  function createSwcAppRouteChangeSubscriber(options) {
@@ -6952,6 +7023,23 @@ var htmlArticleElement = (options) => {
6952
7023
  };
6953
7024
  var SwcUtils;
6954
7025
  ((SwcUtils2) => {
7026
+ SwcUtils2.parsePathPatternsSetAttributeString = (pathPattern, path) => {
7027
+ return JSON.stringify(SwcUtils2.parsePathPatternsSet(pathPattern, path)).replace(/"/g, "'");
7028
+ };
7029
+ SwcUtils2.parsePathPatternsSet = (pathPattern, path) => {
7030
+ return {
7031
+ path,
7032
+ pathData: SwcUtils2.parsePathPatterns(pathPattern, path)
7033
+ };
7034
+ };
7035
+ SwcUtils2.parsePathPatterns = (pathPattern, path) => {
7036
+ for (const pattern of pathPattern) {
7037
+ const data = SwcUtils2.parsePathPattern(pattern, path || "/");
7038
+ if (data !== null) {
7039
+ return data;
7040
+ }
7041
+ }
7042
+ };
6955
7043
  SwcUtils2.getHelperSet = (win) => {
6956
7044
  const doc = win.document;
6957
7045
  return {
@@ -7025,22 +7113,21 @@ var SwcUtils;
7025
7113
  };
7026
7114
  SwcUtils2.findAllParentAppHostsDirect = (el) => {
7027
7115
  const appHosts = [];
7028
- let current = null;
7029
- const rootNode = el.getRootNode();
7030
- if (rootNode instanceof ShadowRoot) {
7031
- current = rootNode.host;
7032
- } else {
7033
- current = el.parentElement;
7034
- }
7116
+ let current = el;
7035
7117
  while (current) {
7036
7118
  const isAppHost = current.tagName.toLowerCase() === "swc-app" || current.getAttribute("is")?.startsWith("swc-app-");
7037
7119
  if (isAppHost) {
7038
7120
  appHosts.push(current);
7039
7121
  }
7040
- if (current.shadowRoot) {
7041
- current = current.shadowRoot.host.parentElement;
7042
- } else {
7122
+ if (current.parentElement) {
7043
7123
  current = current.parentElement;
7124
+ } else {
7125
+ const root = current.getRootNode();
7126
+ if (root instanceof ShadowRoot) {
7127
+ current = root.host;
7128
+ } else {
7129
+ break;
7130
+ }
7044
7131
  }
7045
7132
  }
7046
7133
  return appHosts.reverse();
@@ -7316,6 +7403,7 @@ var ensureInit2 = (inst) => {
7316
7403
  });
7317
7404
  }
7318
7405
  const hostSet = SwcUtils.getHostSet(inst);
7406
+ const appHosts = SwcUtils.findAllParentAppHostsDirect(inst);
7319
7407
  inst._executeSwcScript?.("swc-on-constructor", hostSet);
7320
7408
  const cMethods = findAllLifecycleMetadata(inst, ON_INITIALIZE_METADATA_KEY);
7321
7409
  if (cMethods) {
@@ -7388,12 +7476,12 @@ var setupPrototype = (proto) => {
7388
7476
  ensureInit2(this);
7389
7477
  if (typeof this[methodName] !== "function") return;
7390
7478
  const useHostSet = hostSet ?? SwcUtils.getHostSet(this);
7391
- const app = useHostSet?.$appHost.simpleApplication;
7479
+ const app = useHostSet?.$appHost?.simpleApplication;
7392
7480
  if (app) {
7393
7481
  const otherStorage = /* @__PURE__ */ new Map();
7394
7482
  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 })]);
7395
7483
  otherStorage.set(SituationTypeContainers, situations);
7396
- return app.simstanceManager.executeBindParameterSimPromise(
7484
+ return app.simstanceManager.executeBindParameterSim(
7397
7485
  {
7398
7486
  target: this,
7399
7487
  targetKey: methodName,
@@ -7516,7 +7604,7 @@ var elementDefine = (name, config = {}) => (constructor) => {
7516
7604
  if (connectedInnerHtmlList.length > 0) {
7517
7605
  let sContent = "", lContent = "";
7518
7606
  for (const meta of connectedInnerHtmlList) {
7519
- const res = this[meta.propertyKey]();
7607
+ const res = this._invokeLifecycleMethod(meta.propertyKey, hostSet);
7520
7608
  if (res !== void 0) {
7521
7609
  if (meta.options.useShadow) sContent += res;
7522
7610
  else lContent += res;
@@ -7660,6 +7748,7 @@ var elementDefine = (name, config = {}) => (constructor) => {
7660
7748
  this._executeSwcScript("swc-on-connected", hostSet);
7661
7749
  this._executeSwcScript("swc-on-after-connected", hostSet);
7662
7750
  this.__swc_connected = true;
7751
+ const appHostss = SwcUtils.findAllParentAppHostsDirect(this);
7663
7752
  if (appHost2 && typeof appHost2._connected === "function") {
7664
7753
  appHost2._connected(this);
7665
7754
  } else if (appHost2 && typeof appHost2) {
@@ -8559,6 +8648,7 @@ export {
8559
8648
  ON_BEFORE_DISCONNECTED_METADATA_KEY,
8560
8649
  ON_CONNECTED_SWC_APP_METADATA_KEY,
8561
8650
  ON_INITIALIZE_METADATA_KEY,
8651
+ PROPERTY_SET_METADATA_KEY,
8562
8652
  QUERY_ALL_METADATA_KEY,
8563
8653
  QUERY_METADATA_KEY,
8564
8654
  STYLE_METADATA_KEY,
@@ -8659,6 +8749,8 @@ export {
8659
8749
  setAttributeHost,
8660
8750
  setClass,
8661
8751
  setClassHost,
8752
+ setProperty,
8753
+ setPropertyHost,
8662
8754
  setStyle,
8663
8755
  setStyleHost,
8664
8756
  subscribeSwcAppRouteChange,