@next-core/runtime 1.44.1 → 1.44.3

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 (219) hide show
  1. package/dist/cjs/CustomProcessors.js.map +1 -1
  2. package/dist/cjs/CustomTemplates.js +7 -11
  3. package/dist/cjs/CustomTemplates.js.map +1 -1
  4. package/dist/cjs/createRoot.js +11 -5
  5. package/dist/cjs/createRoot.js.map +1 -1
  6. package/dist/cjs/getPageInfo.js.map +1 -1
  7. package/dist/cjs/handleHttpError.js.map +1 -1
  8. package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js +4 -5
  9. package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js.map +1 -1
  10. package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js +4 -7
  11. package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
  12. package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js +21 -24
  13. package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
  14. package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js +4 -7
  15. package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -1
  16. package/dist/cjs/internal/CustomTemplates/utils.js +3 -3
  17. package/dist/cjs/internal/CustomTemplates/utils.js.map +1 -1
  18. package/dist/cjs/internal/FormRenderer/expandFormRenderer.js +3 -3
  19. package/dist/cjs/internal/FormRenderer/expandFormRenderer.js.map +1 -1
  20. package/dist/cjs/internal/FormRenderer/utils.js +2 -2
  21. package/dist/cjs/internal/FormRenderer/utils.js.map +1 -1
  22. package/dist/cjs/internal/Renderer.js +11 -14
  23. package/dist/cjs/internal/Renderer.js.map +1 -1
  24. package/dist/cjs/internal/RendererContext.js +8 -10
  25. package/dist/cjs/internal/RendererContext.js.map +1 -1
  26. package/dist/cjs/internal/Router.js +3 -0
  27. package/dist/cjs/internal/Router.js.map +1 -1
  28. package/dist/cjs/internal/Runtime.js +14 -14
  29. package/dist/cjs/internal/Runtime.js.map +1 -1
  30. package/dist/cjs/internal/bindListeners.js +2 -3
  31. package/dist/cjs/internal/bindListeners.js.map +1 -1
  32. package/dist/cjs/internal/compute/WidgetFunctions.js.map +1 -1
  33. package/dist/cjs/internal/compute/evaluate.js +4 -4
  34. package/dist/cjs/internal/compute/evaluate.js.map +1 -1
  35. package/dist/cjs/internal/compute/getGeneralGlobals.js.map +1 -1
  36. package/dist/cjs/internal/compute/getStorageItem.js +1 -2
  37. package/dist/cjs/internal/compute/getStorageItem.js.map +1 -1
  38. package/dist/cjs/internal/compute/listenOnTrackingContext.js.map +1 -1
  39. package/dist/cjs/internal/compute/setRealProperties.js.map +1 -1
  40. package/dist/cjs/internal/data/DataStore.js.map +1 -1
  41. package/dist/cjs/internal/data/getProviderBrick.js.map +1 -1
  42. package/dist/cjs/internal/data/realTimeDataInspect.js.map +1 -1
  43. package/dist/cjs/internal/data/resolveData.js.map +1 -1
  44. package/dist/cjs/internal/data/resolveDataStore.js +2 -4
  45. package/dist/cjs/internal/data/resolveDataStore.js.map +1 -1
  46. package/dist/cjs/internal/hasInstalledApp.js.map +1 -1
  47. package/dist/cjs/internal/historyExtended.js.map +1 -1
  48. package/dist/cjs/internal/matchPath.js.map +1 -1
  49. package/dist/cjs/internal/matchRoutes.js.map +1 -1
  50. package/dist/cjs/internal/matchStoryboard.js +2 -2
  51. package/dist/cjs/internal/matchStoryboard.js.map +1 -1
  52. package/dist/cjs/internal/mediaQuery.js.map +1 -1
  53. package/dist/cjs/internal/mount.js.map +1 -1
  54. package/dist/cjs/internal/poll.js +3 -3
  55. package/dist/cjs/internal/poll.js.map +1 -1
  56. package/dist/cjs/internal/registerAppI18n.js.map +1 -1
  57. package/dist/cjs/internal/registerCustomTemplates.js.map +1 -1
  58. package/dist/cjs/internal/secret_internals.js +4 -4
  59. package/dist/cjs/internal/secret_internals.js.map +1 -1
  60. package/dist/cjs/internal/setupRootRuntimeContext.js +2 -3
  61. package/dist/cjs/internal/setupRootRuntimeContext.js.map +1 -1
  62. package/dist/cjs/isStrictMode.js.map +1 -1
  63. package/dist/cjs/setLoginStateCookie.js.map +1 -1
  64. package/dist/cjs/setWatermark.js +4 -4
  65. package/dist/cjs/setWatermark.js.map +1 -1
  66. package/dist/cjs/themeAndMode.js +1 -2
  67. package/dist/cjs/themeAndMode.js.map +1 -1
  68. package/dist/esm/CustomProcessors.js +5 -5
  69. package/dist/esm/CustomProcessors.js.map +1 -1
  70. package/dist/esm/CustomTemplates.js +48 -58
  71. package/dist/esm/CustomTemplates.js.map +1 -1
  72. package/dist/esm/Dialog.js +3 -3
  73. package/dist/esm/Dialog.js.map +1 -1
  74. package/dist/esm/Notification.js +2 -2
  75. package/dist/esm/Notification.js.map +1 -1
  76. package/dist/esm/StoryboardFunctionRegistry.js +18 -18
  77. package/dist/esm/StoryboardFunctionRegistry.js.map +1 -1
  78. package/dist/esm/createRoot.js +125 -123
  79. package/dist/esm/createRoot.js.map +1 -1
  80. package/dist/esm/fetchByProvider.js +3 -10
  81. package/dist/esm/fetchByProvider.js.map +1 -1
  82. package/dist/esm/getBasePath.js +2 -2
  83. package/dist/esm/getBasePath.js.map +1 -1
  84. package/dist/esm/getPageInfo.js +5 -5
  85. package/dist/esm/getPageInfo.js.map +1 -1
  86. package/dist/esm/getRealValue.js +7 -6
  87. package/dist/esm/getRealValue.js.map +1 -1
  88. package/dist/esm/getV2RuntimeFromDll.js +1 -1
  89. package/dist/esm/getV2RuntimeFromDll.js.map +1 -1
  90. package/dist/esm/handleHttpError.js +11 -11
  91. package/dist/esm/handleHttpError.js.map +1 -1
  92. package/dist/esm/history.js +4 -4
  93. package/dist/esm/history.js.map +1 -1
  94. package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js +13 -17
  95. package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js.map +1 -1
  96. package/dist/esm/internal/CustomTemplates/constants.js +5 -5
  97. package/dist/esm/internal/CustomTemplates/constants.js.map +1 -1
  98. package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js +41 -42
  99. package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
  100. package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js +43 -46
  101. package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
  102. package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js +16 -18
  103. package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -1
  104. package/dist/esm/internal/CustomTemplates/utils.js +8 -8
  105. package/dist/esm/internal/CustomTemplates/utils.js.map +1 -1
  106. package/dist/esm/internal/FormRenderer/constants.js +2 -2
  107. package/dist/esm/internal/FormRenderer/constants.js.map +1 -1
  108. package/dist/esm/internal/FormRenderer/expandFormRenderer.js +28 -23
  109. package/dist/esm/internal/FormRenderer/expandFormRenderer.js.map +1 -1
  110. package/dist/esm/internal/FormRenderer/getDefaultProperties.js +45 -22
  111. package/dist/esm/internal/FormRenderer/getDefaultProperties.js.map +1 -1
  112. package/dist/esm/internal/FormRenderer/utils.js +4 -4
  113. package/dist/esm/internal/FormRenderer/utils.js.map +1 -1
  114. package/dist/esm/internal/Renderer.js +517 -577
  115. package/dist/esm/internal/Renderer.js.map +1 -1
  116. package/dist/esm/internal/RendererContext.js +132 -148
  117. package/dist/esm/internal/RendererContext.js.map +1 -1
  118. package/dist/esm/internal/Router.js +325 -343
  119. package/dist/esm/internal/Router.js.map +1 -1
  120. package/dist/esm/internal/Runtime.js +53 -51
  121. package/dist/esm/internal/Runtime.js.map +1 -1
  122. package/dist/esm/internal/abortController.js +7 -6
  123. package/dist/esm/internal/abortController.js.map +1 -1
  124. package/dist/esm/internal/bindListeners.js +136 -156
  125. package/dist/esm/internal/bindListeners.js.map +1 -1
  126. package/dist/esm/internal/compute/StoryboardFunctions.js +1 -1
  127. package/dist/esm/internal/compute/StoryboardFunctions.js.map +1 -1
  128. package/dist/esm/internal/compute/WidgetFunctions.js +6 -6
  129. package/dist/esm/internal/compute/WidgetFunctions.js.map +1 -1
  130. package/dist/esm/internal/compute/WidgetI18n.js +4 -4
  131. package/dist/esm/internal/compute/WidgetI18n.js.map +1 -1
  132. package/dist/esm/internal/compute/checkIf.js +10 -23
  133. package/dist/esm/internal/compute/checkIf.js.map +1 -1
  134. package/dist/esm/internal/compute/computeRealProperties.js +22 -35
  135. package/dist/esm/internal/compute/computeRealProperties.js.map +1 -1
  136. package/dist/esm/internal/compute/computeRealValue.js +42 -49
  137. package/dist/esm/internal/compute/computeRealValue.js.map +1 -1
  138. package/dist/esm/internal/compute/evaluate.js +71 -75
  139. package/dist/esm/internal/compute/evaluate.js.map +1 -1
  140. package/dist/esm/internal/compute/getGeneralGlobals.js +5 -5
  141. package/dist/esm/internal/compute/getGeneralGlobals.js.map +1 -1
  142. package/dist/esm/internal/compute/getNextStateOfUseBrick.js +1 -1
  143. package/dist/esm/internal/compute/getStorageItem.js +2 -3
  144. package/dist/esm/internal/compute/getStorageItem.js.map +1 -1
  145. package/dist/esm/internal/compute/getTracks.js +5 -5
  146. package/dist/esm/internal/compute/getTracks.js.map +1 -1
  147. package/dist/esm/internal/compute/listenOnTrackingContext.js +8 -11
  148. package/dist/esm/internal/compute/listenOnTrackingContext.js.map +1 -1
  149. package/dist/esm/internal/compute/markAsComputed.js +2 -2
  150. package/dist/esm/internal/compute/markAsComputed.js.map +1 -1
  151. package/dist/esm/internal/compute/setProperties.js +1 -1
  152. package/dist/esm/internal/compute/setProperties.js.map +1 -1
  153. package/dist/esm/internal/compute/setRealProperties.js +3 -3
  154. package/dist/esm/internal/compute/setRealProperties.js.map +1 -1
  155. package/dist/esm/internal/customizeColorTheme.js +15 -13
  156. package/dist/esm/internal/customizeColorTheme.js.map +1 -1
  157. package/dist/esm/internal/data/DataStore.js +161 -177
  158. package/dist/esm/internal/data/DataStore.js.map +1 -1
  159. package/dist/esm/internal/data/getProviderBrick.js +21 -28
  160. package/dist/esm/internal/data/getProviderBrick.js.map +1 -1
  161. package/dist/esm/internal/data/realTimeDataInspect.js +5 -5
  162. package/dist/esm/internal/data/realTimeDataInspect.js.map +1 -1
  163. package/dist/esm/internal/data/resolveData.js +89 -103
  164. package/dist/esm/internal/data/resolveData.js.map +1 -1
  165. package/dist/esm/internal/data/resolveDataStore.js +53 -67
  166. package/dist/esm/internal/data/resolveDataStore.js.map +1 -1
  167. package/dist/esm/internal/devtools.js +9 -9
  168. package/dist/esm/internal/devtools.js.map +1 -1
  169. package/dist/esm/internal/enums.js +1 -1
  170. package/dist/esm/internal/fulfilStoryboard.js +15 -28
  171. package/dist/esm/internal/fulfilStoryboard.js.map +1 -1
  172. package/dist/esm/internal/hasInstalledApp.js +3 -3
  173. package/dist/esm/internal/hasInstalledApp.js.map +1 -1
  174. package/dist/esm/internal/historyExtended.js +40 -37
  175. package/dist/esm/internal/historyExtended.js.map +1 -1
  176. package/dist/esm/internal/i18n.js +5 -5
  177. package/dist/esm/internal/i18n.js.map +1 -1
  178. package/dist/esm/internal/injected.js +1 -1
  179. package/dist/esm/internal/injected.js.map +1 -1
  180. package/dist/esm/internal/insertPreviewRoutes.js +3 -3
  181. package/dist/esm/internal/insertPreviewRoutes.js.map +1 -1
  182. package/dist/esm/internal/matchPath.js +17 -17
  183. package/dist/esm/internal/matchPath.js.map +1 -1
  184. package/dist/esm/internal/matchRoutes.js +18 -25
  185. package/dist/esm/internal/matchRoutes.js.map +1 -1
  186. package/dist/esm/internal/matchStoryboard.js +6 -6
  187. package/dist/esm/internal/matchStoryboard.js.map +1 -1
  188. package/dist/esm/internal/mediaQuery.js +11 -11
  189. package/dist/esm/internal/mediaQuery.js.map +1 -1
  190. package/dist/esm/internal/mount.js +7 -7
  191. package/dist/esm/internal/mount.js.map +1 -1
  192. package/dist/esm/internal/poll.js +53 -60
  193. package/dist/esm/internal/poll.js.map +1 -1
  194. package/dist/esm/internal/proxyFactories.js +4 -4
  195. package/dist/esm/internal/proxyFactories.js.map +1 -1
  196. package/dist/esm/internal/registerAppI18n.js +6 -6
  197. package/dist/esm/internal/registerAppI18n.js.map +1 -1
  198. package/dist/esm/internal/registerCustomTemplates.js +3 -3
  199. package/dist/esm/internal/registerCustomTemplates.js.map +1 -1
  200. package/dist/esm/internal/secret_internals.js +140 -146
  201. package/dist/esm/internal/secret_internals.js.map +1 -1
  202. package/dist/esm/internal/setupRootRuntimeContext.js +6 -7
  203. package/dist/esm/internal/setupRootRuntimeContext.js.map +1 -1
  204. package/dist/esm/internal/sse.js +24 -53
  205. package/dist/esm/internal/sse.js.map +1 -1
  206. package/dist/esm/internal/test_only.js +1 -1
  207. package/dist/esm/isStrictMode.js +3 -3
  208. package/dist/esm/isStrictMode.js.map +1 -1
  209. package/dist/esm/setAppVariable.js +1 -1
  210. package/dist/esm/setAppVariable.js.map +1 -1
  211. package/dist/esm/setLoginStateCookie.js +5 -5
  212. package/dist/esm/setLoginStateCookie.js.map +1 -1
  213. package/dist/esm/setUIVersion.js +1 -1
  214. package/dist/esm/setWatermark.js +13 -13
  215. package/dist/esm/setWatermark.js.map +1 -1
  216. package/dist/esm/themeAndMode.js +14 -13
  217. package/dist/esm/themeAndMode.js.map +1 -1
  218. package/dist/types/tsdoc-metadata.json +1 -1
  219. package/package.json +12 -12
@@ -1,5 +1,3 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- import _objectSpread from "@babel/runtime/helpers/objectSpread2";
3
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
2
  import { hasOwnProperty, isObject } from "@next-core/utils/general";
5
3
  import { strictCollectMemberUsage } from "@next-core/utils/storyboard";
@@ -14,7 +12,7 @@ import { computePropertyValue } from "../compute/computeRealProperties.js";
14
12
  import { _internalApiGetRenderId } from "../Runtime.js";
15
13
  import { callRealTimeDataInspectHooks, realTimeDataInspectRoot } from "./realTimeDataInspect.js";
16
14
  import { isStrictMode } from "../../isStrictMode.js";
17
- var supportContextResolveTriggerBrickLifeCycle = ["onBeforePageLoad", "onPageLoad", "onBeforePageLeave", "onPageLeave", "onAnchorLoad", "onAnchorUnload"];
15
+ const supportContextResolveTriggerBrickLifeCycle = ["onBeforePageLoad", "onPageLoad", "onBeforePageLeave", "onPageLeave", "onAnchorLoad", "onAnchorUnload"];
18
16
  export class DataStore {
19
17
  // 把 `rendererContext` 放在参数列表的最后,并作为可选,以减少测试文件的调整
20
18
  constructor(type, hostBrick, rendererContext, stateStoreId) {
@@ -36,7 +34,7 @@ export class DataStore {
36
34
  }
37
35
  getAllValues() {
38
36
  return Object.fromEntries([...this.data.entries()].map(_ref => {
39
- var [name, {
37
+ let [name, {
40
38
  value
41
39
  }] = _ref;
42
40
  return [name, value];
@@ -48,7 +46,7 @@ export class DataStore {
48
46
  }
49
47
  notifyRealTimeDataChange(name, value) {
50
48
  if (realTimeDataInspectRoot) {
51
- var {
49
+ const {
52
50
  tplStateStoreId
53
51
  } = realTimeDataInspectRoot;
54
52
  if (tplStateStoreId ? this.type === "STATE" && this.stateStoreId === tplStateStoreId : this.type === "CTX") {
@@ -64,10 +62,10 @@ export class DataStore {
64
62
  }
65
63
  }
66
64
  getAffectListByContext(name) {
67
- var affectNames = [name];
65
+ const affectNames = [name];
68
66
  this.data.forEach((value, key) => {
69
67
  if (value.deps) {
70
- var isInDeps = value.deps.some(item => affectNames.includes(item));
68
+ const isInDeps = value.deps.some(item => affectNames.includes(item));
71
69
  isInDeps && affectNames.push(key) && affectNames.push(...this.getAffectListByContext(key));
72
70
  }
73
71
  });
@@ -78,29 +76,29 @@ export class DataStore {
78
76
  this.batchUpdate = true;
79
77
  this.batchUpdateContextsNames = values.map(item => item.name);
80
78
  if ([...new Set(this.batchUpdateContextsNames)].length !== this.batchUpdateContextsNames.length) {
81
- throw new Error("Batch update not allow to update same item");
79
+ throw new Error(`Batch update not allow to update same item`);
82
80
  }
83
- var updateContexts = {};
84
- var affectContexts = {};
85
- var affectDepsContextNames = [];
81
+ const updateContexts = {};
82
+ const affectContexts = {};
83
+ const affectDepsContextNames = [];
86
84
  values.forEach(arg => {
87
- var {
85
+ const {
88
86
  name,
89
87
  value
90
88
  } = argsFactory([arg]);
91
- var updateContextItem = this.data.get(name);
89
+ const updateContextItem = this.data.get(name);
92
90
  affectDepsContextNames.push(...this.getAffectListByContext(name));
93
91
  updateContextItem && (updateContexts[name] = updateContextItem);
94
92
  this.updateValue(name, value, method);
95
93
  });
96
94
  affectDepsContextNames.filter(item => !updateContexts[item]).forEach(name => {
97
- var affectContextItem = this.data.get(name);
95
+ const affectContextItem = this.data.get(name);
98
96
  affectContextItem && (affectContexts[name] = affectContextItem);
99
97
  });
100
- var triggerEvent = contexts => {
101
- for (var key in contexts) {
98
+ const triggerEvent = contexts => {
99
+ for (const key in contexts) {
102
100
  var _context$eventTarget;
103
- var context = contexts[key];
101
+ const context = contexts[key];
104
102
  (_context$eventTarget = context.eventTarget) === null || _context$eventTarget === void 0 || _context$eventTarget.dispatchEvent(new CustomEvent(this.changeEventType, {
105
103
  detail: context.value
106
104
  }));
@@ -112,15 +110,15 @@ export class DataStore {
112
110
  return;
113
111
  }
114
112
  updateValue(name, value, method, callback, callbackRuntimeContext) {
115
- var item = this.data.get(name);
113
+ const item = this.data.get(name);
116
114
  if (!item) {
117
- throw new Error("".concat(this.type, " '").concat(name, "' is not defined"));
115
+ throw new Error(`${this.type} '${name}' is not defined`);
118
116
  }
119
117
  if (method === "refresh" || method === "load") {
120
118
  if (!item.useResolve) {
121
- throw new Error("You can not ".concat(method, " \"").concat(this.type, ".").concat(name, "\" which is not using resolve"));
119
+ throw new Error(`You can not ${method} "${this.type}.${name}" which is not using resolve`);
122
120
  }
123
- var promise;
121
+ let promise;
124
122
  if (method === "load") {
125
123
  // Try to reuse previous request when calling `load`.
126
124
  if (item.loaded) {
@@ -129,19 +127,20 @@ export class DataStore {
129
127
  promise = item.loading;
130
128
  }
131
129
  }
132
- var shouldDismiss = error => {
130
+ const shouldDismiss = error => {
133
131
  var _this$rendererContext;
134
132
  // If render twice immediately, flow API contracts maybe cleared before
135
133
  // the second rendering, while the page load handlers of the first
136
134
  // rendering can't be cancelled, which throws `FlowApiNotFoundError`.
137
135
  // So we ignore error reporting for this case.
138
- var renderId;
136
+ let renderId;
139
137
  return (error === null || error === void 0 ? void 0 : error.name) === "FlowApiNotFoundError" && !!(renderId = (_this$rendererContext = this.rendererContext) === null || _this$rendererContext === void 0 ? void 0 : _this$rendererContext.renderId) && renderId !== _internalApiGetRenderId();
140
138
  };
141
139
  if (!promise) {
142
- promise = item.loading = item.load(_objectSpread({
143
- cache: method === "load" ? "default" : "reload"
144
- }, value));
140
+ promise = item.loading = item.load({
141
+ cache: method === "load" ? "default" : "reload",
142
+ ...value
143
+ });
145
144
  // Do not use the chained promise, since the callbacks need the original promise.
146
145
  promise.then(val => {
147
146
  this.finishLoad(item, val);
@@ -153,7 +152,7 @@ export class DataStore {
153
152
  });
154
153
  }
155
154
  if (callback) {
156
- var callbackFactory = eventCallbackFactory(callback, callbackRuntimeContext);
155
+ const callbackFactory = eventCallbackFactory(callback, callbackRuntimeContext);
157
156
  promise.then(val => {
158
157
  callbackFactory("success")({
159
158
  value: val
@@ -175,7 +174,7 @@ export class DataStore {
175
174
  Object.assign(item.value, value);
176
175
  } else {
177
176
  // eslint-disable-next-line no-console
178
- console.warn("Non-object current value of \"".concat(this.type, ".").concat(name, "\" for \"context.assign\", try \"context.replace\" instead."));
177
+ console.warn(`Non-object current value of "${this.type}.${name}" for "context.assign", try "context.replace" instead.`);
179
178
  item.value = value;
180
179
  }
181
180
  }
@@ -199,7 +198,7 @@ export class DataStore {
199
198
  }
200
199
  define(dataConfs, runtimeContext, asyncHostPropertyEntries, routePath) {
201
200
  if (Array.isArray(dataConfs) && dataConfs.length > 0) {
202
- var pending = resolveDataStore(dataConfs, dataConf => this.resolve(dataConf, runtimeContext, asyncHostPropertyEntries, routePath), this.type, isStrictMode(runtimeContext));
201
+ const pending = resolveDataStore(dataConfs, dataConf => this.resolve(dataConf, runtimeContext, asyncHostPropertyEntries, routePath), this.type, isStrictMode(runtimeContext));
203
202
  this.pendingStack.push(pending);
204
203
  }
205
204
  }
@@ -207,41 +206,32 @@ export class DataStore {
207
206
  var _this$data$get2;
208
207
  (_this$data$get2 = this.data.get(dataName)) === null || _this$data$get2 === void 0 || _this$data$get2.eventTarget.addEventListener(this.changeEventType, listener);
209
208
  }
210
- waitFor(dataNames) {
211
- var _this = this;
212
- return _asyncToGenerator(function* () {
213
- var _loop = function* (pendingContexts) {
214
- yield Promise.all([...dataNames].map(ctx => {
215
- var p = pendingContexts.get(ctx);
216
- return p;
217
- }));
218
- };
219
- for (var {
220
- pendingContexts
221
- } of _this.pendingStack) {
222
- yield* _loop(pendingContexts);
223
- }
224
- })();
209
+ async waitFor(dataNames) {
210
+ for (const {
211
+ pendingContexts
212
+ } of this.pendingStack) {
213
+ await Promise.all([...dataNames].map(ctx => {
214
+ const p = pendingContexts.get(ctx);
215
+ return p;
216
+ }));
217
+ }
225
218
  }
226
- waitForAll() {
227
- var _this2 = this;
228
- return _asyncToGenerator(function* () {
229
- // Silent each pending contexts, since the error is handled by batched `pendingResult`
230
- for (var {
231
- pendingContexts
232
- } of _this2.pendingStack) {
233
- for (var p of pendingContexts.values()) {
234
- p.catch(() => {
235
- /* No-op */
236
- });
237
- }
238
- }
239
- for (var {
240
- pendingResult
241
- } of _this2.pendingStack) {
242
- yield pendingResult;
219
+ async waitForAll() {
220
+ // Silent each pending contexts, since the error is handled by batched `pendingResult`
221
+ for (const {
222
+ pendingContexts
223
+ } of this.pendingStack) {
224
+ for (const p of pendingContexts.values()) {
225
+ p.catch(() => {
226
+ /* No-op */
227
+ });
243
228
  }
244
- })();
229
+ }
230
+ for (const {
231
+ pendingResult
232
+ } of this.pendingStack) {
233
+ await pendingResult;
234
+ }
245
235
  }
246
236
 
247
237
  /**
@@ -256,7 +246,7 @@ export class DataStore {
256
246
  // istanbul ignore next
257
247
  if (item.asyncMounted) {
258
248
  // eslint-disable-next-line no-console
259
- console.error("Async data \"".concat(item.name, "\" already mounted. This is a bug of Brick Next, please report it."));
249
+ console.error(`Async data "${item.name}" already mounted. This is a bug of Brick Next, please report it.`);
260
250
  return;
261
251
  }
262
252
  item.asyncMounted = true;
@@ -268,132 +258,126 @@ export class DataStore {
268
258
  }
269
259
  });
270
260
  }
271
- resolve(dataConf, runtimeContext, asyncHostPropertyEntries, routePath) {
272
- var _this3 = this;
273
- return _asyncToGenerator(function* () {
274
- if (!(yield asyncCheckIf(dataConf, runtimeContext))) {
275
- return false;
276
- }
277
- var value;
278
- if (asyncHostPropertyEntries && (_this3.type === "STATE" ? dataConf.expose : _this3.type === "FORM_STATE")) {
279
- value = yield computePropertyValue(asyncHostPropertyEntries, dataConf.name);
280
- }
281
- var load;
282
- var loading;
283
- var useResolve;
284
- var trackConditionalResolve;
285
- var resolvePolicy;
286
- if (value === undefined) {
287
- if (dataConf.resolve) {
288
- var hasFallbackValue = hasOwnProperty(dataConf, "value");
289
- // Track conditional resolve only if all matches:
290
- // - Track enabled
291
- // - Has fallback value
292
- // - Referencing other data in `resolve.if`
293
- trackConditionalResolve = dataConf.track && hasFallbackValue && hasOwnProperty(dataConf.resolve, "if") && strictCollectMemberUsage(dataConf.resolve.if, _this3.type).size > 0;
294
- var resolveConf = _objectSpread({
295
- transform: "value"
296
- }, dataConf.resolve);
297
- useResolve = yield asyncCheckIf(dataConf.resolve, runtimeContext);
298
- if (useResolve || trackConditionalResolve) {
299
- load = /*#__PURE__*/function () {
300
- var _ref2 = _asyncToGenerator(function* (options) {
301
- var _this3$rendererContex;
302
- return (yield resolveData(resolveConf, runtimeContext, _objectSpread(_objectSpread({}, options), {}, {
303
- renderId: (_this3$rendererContex = _this3.rendererContext) === null || _this3$rendererContex === void 0 ? void 0 : _this3$rendererContex.renderId
304
- }))).value;
305
- });
306
- return function load(_x) {
307
- return _ref2.apply(this, arguments);
308
- };
309
- }();
310
- }
311
- if (useResolve) {
312
- // `async` take precedence over `lazy`
313
- resolvePolicy = dataConf.resolve.async ? "async" : dataConf.resolve.lazy ? "lazy" : "eager";
314
- if (resolvePolicy === "eager") {
315
- value = yield load();
316
- } else if (resolvePolicy === "async") {
317
- loading = load();
318
- }
319
- } else if (!hasFallbackValue) {
320
- return false;
321
- }
322
- }
323
- if ((!useResolve || resolvePolicy !== "eager") && dataConf.value !== undefined) {
324
- // If the context has no resolve, just use its `value`.
325
- // Or if the resolve is ignored or lazy, use its `value` as a fallback.
326
- value = yield asyncComputeRealValue(dataConf.value, runtimeContext);
261
+ async resolve(dataConf, runtimeContext, asyncHostPropertyEntries, routePath) {
262
+ if (!(await asyncCheckIf(dataConf, runtimeContext))) {
263
+ return false;
264
+ }
265
+ let value;
266
+ if (asyncHostPropertyEntries && (this.type === "STATE" ? dataConf.expose : this.type === "FORM_STATE")) {
267
+ value = await computePropertyValue(asyncHostPropertyEntries, dataConf.name);
268
+ }
269
+ let load;
270
+ let loading;
271
+ let useResolve;
272
+ let trackConditionalResolve;
273
+ let resolvePolicy;
274
+ if (value === undefined) {
275
+ if (dataConf.resolve) {
276
+ const hasFallbackValue = hasOwnProperty(dataConf, "value");
277
+ // Track conditional resolve only if all matches:
278
+ // - Track enabled
279
+ // - Has fallback value
280
+ // - Referencing other data in `resolve.if`
281
+ trackConditionalResolve = dataConf.track && hasFallbackValue && hasOwnProperty(dataConf.resolve, "if") && strictCollectMemberUsage(dataConf.resolve.if, this.type).size > 0;
282
+ const resolveConf = {
283
+ transform: "value",
284
+ ...dataConf.resolve
285
+ };
286
+ useResolve = await asyncCheckIf(dataConf.resolve, runtimeContext);
287
+ if (useResolve || trackConditionalResolve) {
288
+ load = async options => {
289
+ var _this$rendererContext2;
290
+ return (await resolveData(resolveConf, runtimeContext, {
291
+ ...options,
292
+ renderId: (_this$rendererContext2 = this.rendererContext) === null || _this$rendererContext2 === void 0 ? void 0 : _this$rendererContext2.renderId
293
+ })).value;
294
+ };
327
295
  }
328
- }
329
- if (_this3.data.has(dataConf.name)) {
330
- throw new Error("".concat(_this3.type, " '").concat(dataConf.name, "' has already been declared"));
331
- }
332
- var newData = {
333
- name: dataConf.name,
334
- value,
335
- // This is required for tracking context, even if no `onChange` is specified.
336
- eventTarget: new EventTarget(),
337
- useResolve,
338
- load,
339
- loaded: resolvePolicy === "eager",
340
- loading,
341
- async: resolvePolicy === "async",
342
- deps: []
343
- };
344
- if (resolvePolicy === "lazy") {
345
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
346
- var {
347
- trigger
348
- } = dataConf.resolve;
349
- if (trigger && supportContextResolveTriggerBrickLifeCycle.includes(trigger)) {
350
- var _this3$rendererContex2;
351
- (_this3$rendererContex2 = _this3.rendererContext) === null || _this3$rendererContex2 === void 0 || _this3$rendererContex2.registerArbitraryLifeCycle(trigger, () => {
352
- _this3.updateValue(dataConf.name, undefined, "load");
353
- });
296
+ if (useResolve) {
297
+ // `async` take precedence over `lazy`
298
+ resolvePolicy = dataConf.resolve.async ? "async" : dataConf.resolve.lazy ? "lazy" : "eager";
299
+ if (resolvePolicy === "eager") {
300
+ value = await load();
301
+ } else if (resolvePolicy === "async") {
302
+ loading = load();
303
+ }
304
+ } else if (!hasFallbackValue) {
305
+ return false;
354
306
  }
355
307
  }
356
- if (dataConf.onChange) {
357
- newData.eventTarget.addEventListener(_this3.changeEventType, listenerFactory(dataConf.onChange, runtimeContext));
308
+ if ((!useResolve || resolvePolicy !== "eager") && dataConf.value !== undefined) {
309
+ // If the context has no resolve, just use its `value`.
310
+ // Or if the resolve is ignored or lazy, use its `value` as a fallback.
311
+ value = await asyncComputeRealValue(dataConf.value, runtimeContext);
358
312
  }
359
- if (dataConf.track) {
360
- var deps = strictCollectMemberUsage(trackConditionalResolve ? [dataConf.resolve, dataConf.value] : load ? dataConf.resolve : dataConf.value, _this3.type);
361
- !load && (newData.deps = [...deps]);
362
- for (var dep of deps) {
363
- _this3.onChange(dep, _this3.batchAddListener(() => {
364
- newData.useResolve = trackConditionalResolve ? checkIf(dataConf.resolve, runtimeContext) : !!load;
365
- if (newData.useResolve) {
366
- _this3.updateValue(dataConf.name, {
367
- cache: "default"
368
- }, "refresh");
369
- } else {
370
- _this3.updateValue(dataConf.name, computeRealValue(dataConf.value, runtimeContext), "replace");
371
- }
372
- }, dataConf));
373
- }
313
+ }
314
+ if (this.data.has(dataConf.name)) {
315
+ throw new Error(`${this.type} '${dataConf.name}' has already been declared`);
316
+ }
317
+ const newData = {
318
+ name: dataConf.name,
319
+ value,
320
+ // This is required for tracking context, even if no `onChange` is specified.
321
+ eventTarget: new EventTarget(),
322
+ useResolve,
323
+ load,
324
+ loaded: resolvePolicy === "eager",
325
+ loading,
326
+ async: resolvePolicy === "async",
327
+ deps: []
328
+ };
329
+ if (resolvePolicy === "lazy") {
330
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
331
+ const {
332
+ trigger
333
+ } = dataConf.resolve;
334
+ if (trigger && supportContextResolveTriggerBrickLifeCycle.includes(trigger)) {
335
+ var _this$rendererContext3;
336
+ (_this$rendererContext3 = this.rendererContext) === null || _this$rendererContext3 === void 0 || _this$rendererContext3.registerArbitraryLifeCycle(trigger, () => {
337
+ this.updateValue(dataConf.name, undefined, "load");
338
+ });
374
339
  }
375
- newData.eventTarget.addEventListener(_this3.changeEventType, e => {
376
- _this3.notifyRealTimeDataChange(dataConf.name, e.detail);
377
- });
378
- _this3.data.set(dataConf.name, newData);
379
- if (Array.isArray(routePath)) {
380
- for (var route of routePath) {
381
- var names = _this3.routeMap.get(route);
382
- if (names) {
383
- names.add(dataConf.name);
340
+ }
341
+ if (dataConf.onChange) {
342
+ newData.eventTarget.addEventListener(this.changeEventType, listenerFactory(dataConf.onChange, runtimeContext));
343
+ }
344
+ if (dataConf.track) {
345
+ const deps = strictCollectMemberUsage(trackConditionalResolve ? [dataConf.resolve, dataConf.value] : load ? dataConf.resolve : dataConf.value, this.type);
346
+ !load && (newData.deps = [...deps]);
347
+ for (const dep of deps) {
348
+ this.onChange(dep, this.batchAddListener(() => {
349
+ newData.useResolve = trackConditionalResolve ? checkIf(dataConf.resolve, runtimeContext) : !!load;
350
+ if (newData.useResolve) {
351
+ this.updateValue(dataConf.name, {
352
+ cache: "default"
353
+ }, "refresh");
384
354
  } else {
385
- _this3.routeMap.set(route, new Set([dataConf.name]));
355
+ this.updateValue(dataConf.name, computeRealValue(dataConf.value, runtimeContext), "replace");
386
356
  }
357
+ }, dataConf));
358
+ }
359
+ }
360
+ newData.eventTarget.addEventListener(this.changeEventType, e => {
361
+ this.notifyRealTimeDataChange(dataConf.name, e.detail);
362
+ });
363
+ this.data.set(dataConf.name, newData);
364
+ if (Array.isArray(routePath)) {
365
+ for (const route of routePath) {
366
+ const names = this.routeMap.get(route);
367
+ if (names) {
368
+ names.add(dataConf.name);
369
+ } else {
370
+ this.routeMap.set(route, new Set([dataConf.name]));
387
371
  }
388
372
  }
389
- return true;
390
- })();
373
+ }
374
+ return true;
391
375
  }
392
376
  disposeDataInRoutes(routes) {
393
- for (var route of routes) {
394
- var names = this.routeMap.get(route);
377
+ for (const route of routes) {
378
+ const names = this.routeMap.get(route);
395
379
  if (names !== undefined) {
396
- for (var name of names) {
380
+ for (const name of names) {
397
381
  this.data.delete(name);
398
382
  }
399
383
  }