@next-bricks/ai-portal 0.50.3 → 0.52.0

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 (153) hide show
  1. package/dist/bricks.json +37 -31
  2. package/dist/chunks/2084.0e9751e7.js +3 -0
  3. package/dist/chunks/2084.0e9751e7.js.map +1 -0
  4. package/dist/chunks/{2142.c02a98d9.js → 2142.0599aecd.js} +2 -2
  5. package/dist/chunks/{2142.c02a98d9.js.map → 2142.0599aecd.js.map} +1 -1
  6. package/dist/chunks/3020.acf9607e.js +2 -0
  7. package/dist/chunks/3020.acf9607e.js.map +1 -0
  8. package/dist/chunks/{5552.39ed2457.js → 3171.a0251432.js} +2 -2
  9. package/dist/chunks/{5552.39ed2457.js.map → 3171.a0251432.js.map} +1 -1
  10. package/dist/chunks/3744.ed6d0719.js +2 -0
  11. package/dist/chunks/3744.ed6d0719.js.map +1 -0
  12. package/dist/chunks/{4765.f5f33140.js → 4765.e2813cac.js} +2 -2
  13. package/dist/chunks/{4765.f5f33140.js.map → 4765.e2813cac.js.map} +1 -1
  14. package/dist/chunks/{4837.488c5888.js → 4837.c7f9a784.js} +2 -2
  15. package/dist/chunks/{4837.488c5888.js.map → 4837.c7f9a784.js.map} +1 -1
  16. package/dist/chunks/{3171.a4a34e43.js → 5552.84bdc597.js} +2 -2
  17. package/dist/chunks/{3171.a4a34e43.js.map → 5552.84bdc597.js.map} +1 -1
  18. package/dist/chunks/{6201.993201cb.js → 6201.58eeb93e.js} +2 -2
  19. package/dist/chunks/{6201.993201cb.js.map → 6201.58eeb93e.js.map} +1 -1
  20. package/dist/chunks/{6593.f25cfd6b.js → 6593.1afe9a04.js} +2 -2
  21. package/dist/chunks/{6593.f25cfd6b.js.map → 6593.1afe9a04.js.map} +1 -1
  22. package/dist/chunks/{4317.d0f5904b.js → 6947.1cec7258.js} +3 -3
  23. package/dist/chunks/6947.1cec7258.js.map +1 -0
  24. package/dist/chunks/{7146.6cc7fa79.js → 7146.1af0c62e.js} +2 -2
  25. package/dist/chunks/{7146.6cc7fa79.js.map → 7146.1af0c62e.js.map} +1 -1
  26. package/dist/chunks/{8717.feabd75d.js → 8717.1e5ad2b1.js} +2 -2
  27. package/dist/chunks/{8717.feabd75d.js.map → 8717.1e5ad2b1.js.map} +1 -1
  28. package/dist/chunks/943.7073ef6f.js +2 -0
  29. package/dist/chunks/943.7073ef6f.js.map +1 -0
  30. package/dist/chunks/948.d125d58c.js +3 -0
  31. package/dist/chunks/948.d125d58c.js.map +1 -0
  32. package/dist/chunks/{9599.f127b5a1.js → 9599.1f04dd1f.js} +2 -2
  33. package/dist/chunks/{9599.f127b5a1.js.map → 9599.1f04dd1f.js.map} +1 -1
  34. package/dist/chunks/{action-buttons.44ddca46.js → action-buttons.989fd1c9.js} +2 -2
  35. package/dist/chunks/{action-buttons.44ddca46.js.map → action-buttons.989fd1c9.js.map} +1 -1
  36. package/dist/chunks/activity-timeline.60adaa84.js +2 -0
  37. package/dist/chunks/activity-timeline.60adaa84.js.map +1 -0
  38. package/dist/chunks/{ai-agents.59e23ea3.js → ai-agents.92ed0274.js} +3 -3
  39. package/dist/chunks/{ai-agents.59e23ea3.js.map → ai-agents.92ed0274.js.map} +1 -1
  40. package/dist/chunks/{ai-employees.b8e937d4.js → ai-employees.12986d4b.js} +3 -3
  41. package/dist/chunks/{ai-employees.b8e937d4.js.map → ai-employees.12986d4b.js.map} +1 -1
  42. package/dist/chunks/blank-state.ad3eee7a.js +2 -0
  43. package/dist/chunks/blank-state.ad3eee7a.js.map +1 -0
  44. package/dist/chunks/{call-tool.28aa1c47.js → call-tool.89a848e0.js} +2 -2
  45. package/dist/chunks/{call-tool.28aa1c47.js.map → call-tool.89a848e0.js.map} +1 -1
  46. package/dist/chunks/chat-box.59ab1b62.js +2 -0
  47. package/dist/chunks/chat-box.59ab1b62.js.map +1 -0
  48. package/dist/chunks/chat-input.b09e4ba0.js +3 -0
  49. package/dist/chunks/chat-input.b09e4ba0.js.map +1 -0
  50. package/dist/chunks/{chat-stream.052c4869.js → chat-stream.11c6ade7.js} +2 -2
  51. package/dist/chunks/{chat-stream.052c4869.js.map → chat-stream.11c6ade7.js.map} +1 -1
  52. package/dist/chunks/{cruise-canvas.3600fc3c.js → cruise-canvas.60fa24a3.js} +2 -2
  53. package/dist/chunks/{cruise-canvas.3600fc3c.js.map → cruise-canvas.60fa24a3.js.map} +1 -1
  54. package/dist/chunks/{dropdown-select.11c89c58.js → dropdown-select.1140bf2b.js} +2 -2
  55. package/dist/chunks/{dropdown-select.11c89c58.js.map → dropdown-select.1140bf2b.js.map} +1 -1
  56. package/dist/chunks/elevo-card.731505e0.js +3 -0
  57. package/dist/chunks/elevo-card.731505e0.js.map +1 -0
  58. package/dist/chunks/elevo-sidebar.bfad7500.js +3 -0
  59. package/dist/chunks/elevo-sidebar.bfad7500.js.map +1 -0
  60. package/dist/chunks/flow-tabs.ba72493e.js +3 -0
  61. package/dist/chunks/flow-tabs.ba72493e.js.map +1 -0
  62. package/dist/chunks/{goal-card-list.11057103.js → goal-card-list.44c21cf2.js} +3 -3
  63. package/dist/chunks/goal-card-list.44c21cf2.js.LICENSE.txt +5 -0
  64. package/dist/chunks/{goal-card-list.11057103.js.map → goal-card-list.44c21cf2.js.map} +1 -1
  65. package/dist/chunks/icon-button.0881c876.js +2 -0
  66. package/dist/chunks/icon-button.0881c876.js.map +1 -0
  67. package/dist/chunks/{load-request-store.843b9a8c.js → load-request-store.b4cf045b.js} +2 -2
  68. package/dist/chunks/{load-request-store.843b9a8c.js.map → load-request-store.b4cf045b.js.map} +1 -1
  69. package/dist/chunks/main.4cb00675.js +2 -0
  70. package/dist/chunks/main.4cb00675.js.map +1 -0
  71. package/dist/chunks/{mcp-tools.16acda69.js → mcp-tools.0acb474a.js} +2 -2
  72. package/dist/chunks/{mcp-tools.16acda69.js.map → mcp-tools.0acb474a.js.map} +1 -1
  73. package/dist/chunks/page-container.97947b50.js +2 -0
  74. package/dist/chunks/page-container.97947b50.js.map +1 -0
  75. package/dist/chunks/{preview-container.6b29ee97.js → preview-container.19631a7b.js} +2 -2
  76. package/dist/chunks/{preview-container.6b29ee97.js.map → preview-container.19631a7b.js.map} +1 -1
  77. package/dist/chunks/{project-conversations.9bd710bf.js → project-conversations.3f559e57.js} +3 -3
  78. package/dist/chunks/project-conversations.3f559e57.js.LICENSE.txt +5 -0
  79. package/dist/chunks/{project-conversations.9bd710bf.js.map → project-conversations.3f559e57.js.map} +1 -1
  80. package/dist/chunks/{project-knowledges.14b07366.js → project-knowledges.24611263.js} +3 -3
  81. package/dist/chunks/project-knowledges.24611263.js.LICENSE.txt +5 -0
  82. package/dist/chunks/{project-knowledges.14b07366.js.map → project-knowledges.24611263.js.map} +1 -1
  83. package/dist/chunks/{show-case.be5d82fd.js → show-case.7bc5fc9e.js} +2 -2
  84. package/dist/chunks/{show-case.be5d82fd.js.map → show-case.7bc5fc9e.js.map} +1 -1
  85. package/dist/chunks/{show-cases.e3d47e29.js → show-cases.85fe99d4.js} +2 -2
  86. package/dist/chunks/{show-cases.e3d47e29.js.map → show-cases.85fe99d4.js.map} +1 -1
  87. package/dist/chunks/sticky-container.d3f7054e.js +2 -0
  88. package/dist/chunks/sticky-container.d3f7054e.js.map +1 -0
  89. package/dist/examples.json +15 -9
  90. package/dist/images/27bd64e1.png +0 -0
  91. package/dist/images/c19e3f37.png +0 -0
  92. package/dist/index.fede9e49.js +2 -0
  93. package/dist/index.fede9e49.js.map +1 -0
  94. package/dist/manifest.json +383 -313
  95. package/dist/types.json +402 -154
  96. package/dist-types/blank-state/index.d.ts +1 -1
  97. package/dist-types/bootstrap.d.ts +2 -0
  98. package/dist-types/chat-box/index.d.ts +8 -0
  99. package/dist-types/elevo-card/index.d.ts +25 -0
  100. package/dist-types/elevo-card/index.spec.d.ts +1 -0
  101. package/dist-types/elevo-sidebar/ChatHistory.d.ts +3 -3
  102. package/dist-types/elevo-sidebar/NavLink.d.ts +9 -0
  103. package/dist-types/elevo-sidebar/i18n.d.ts +1 -0
  104. package/dist-types/elevo-sidebar/index.d.ts +4 -3
  105. package/dist-types/flow-tabs/drawBg.d.ts +1 -0
  106. package/dist-types/flow-tabs/index.d.ts +20 -0
  107. package/dist-types/flow-tabs/index.spec.d.ts +1 -0
  108. package/dist-types/icon-button/index.d.ts +2 -0
  109. package/dist-types/page-container/index.d.ts +2 -2
  110. package/docs/elevo-card.md +40 -0
  111. package/docs/flow-tabs.md +21 -0
  112. package/package.json +2 -2
  113. package/dist/chunks/3506.da6e43af.js +0 -2
  114. package/dist/chunks/3506.da6e43af.js.map +0 -1
  115. package/dist/chunks/3744.8d040aaa.js +0 -2
  116. package/dist/chunks/3744.8d040aaa.js.map +0 -1
  117. package/dist/chunks/4317.d0f5904b.js.map +0 -1
  118. package/dist/chunks/8889.bcfc6cab.js +0 -3
  119. package/dist/chunks/8889.bcfc6cab.js.map +0 -1
  120. package/dist/chunks/948.85b663ec.js +0 -3
  121. package/dist/chunks/948.85b663ec.js.map +0 -1
  122. package/dist/chunks/activity-timeline.60e516fd.js +0 -2
  123. package/dist/chunks/activity-timeline.60e516fd.js.map +0 -1
  124. package/dist/chunks/blank-state.3a537adc.js +0 -2
  125. package/dist/chunks/blank-state.3a537adc.js.map +0 -1
  126. package/dist/chunks/chat-box.da1fbfc3.js +0 -2
  127. package/dist/chunks/chat-box.da1fbfc3.js.map +0 -1
  128. package/dist/chunks/chat-input.720e6130.js +0 -3
  129. package/dist/chunks/chat-input.720e6130.js.map +0 -1
  130. package/dist/chunks/elevo-sidebar.e53ce03a.js +0 -3
  131. package/dist/chunks/elevo-sidebar.e53ce03a.js.LICENSE.txt +0 -9
  132. package/dist/chunks/elevo-sidebar.e53ce03a.js.map +0 -1
  133. package/dist/chunks/icon-button.1014fc6a.js +0 -2
  134. package/dist/chunks/icon-button.1014fc6a.js.map +0 -1
  135. package/dist/chunks/main.c5d23a2b.js +0 -2
  136. package/dist/chunks/main.c5d23a2b.js.map +0 -1
  137. package/dist/chunks/page-container.bfb9337e.js +0 -2
  138. package/dist/chunks/page-container.bfb9337e.js.map +0 -1
  139. package/dist/chunks/sticky-container.b8ab2a25.js +0 -2
  140. package/dist/chunks/sticky-container.b8ab2a25.js.map +0 -1
  141. package/dist/images/4b299d0b.png +0 -0
  142. package/dist/images/ddd8ccd2.png +0 -0
  143. package/dist/index.e0156b47.js +0 -2
  144. package/dist/index.e0156b47.js.map +0 -1
  145. /package/dist/chunks/{8889.bcfc6cab.js.LICENSE.txt → 2084.0e9751e7.js.LICENSE.txt} +0 -0
  146. /package/dist/chunks/{4317.d0f5904b.js.LICENSE.txt → 6947.1cec7258.js.LICENSE.txt} +0 -0
  147. /package/dist/chunks/{948.85b663ec.js.LICENSE.txt → 948.d125d58c.js.LICENSE.txt} +0 -0
  148. /package/dist/chunks/{ai-agents.59e23ea3.js.LICENSE.txt → ai-agents.92ed0274.js.LICENSE.txt} +0 -0
  149. /package/dist/chunks/{ai-employees.b8e937d4.js.LICENSE.txt → ai-employees.12986d4b.js.LICENSE.txt} +0 -0
  150. /package/dist/chunks/{chat-input.720e6130.js.LICENSE.txt → chat-input.b09e4ba0.js.LICENSE.txt} +0 -0
  151. /package/dist/chunks/{goal-card-list.11057103.js.LICENSE.txt → elevo-card.731505e0.js.LICENSE.txt} +0 -0
  152. /package/dist/chunks/{project-conversations.9bd710bf.js.LICENSE.txt → elevo-sidebar.bfad7500.js.LICENSE.txt} +0 -0
  153. /package/dist/chunks/{project-knowledges.14b07366.js.LICENSE.txt → flow-tabs.ba72493e.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/948.d125d58c.js","mappings":"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","sources":["webpack:///../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/assertClassBrand.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/getBasePath.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/matchStoryboard.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/historyExtended.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/history.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/Runtime.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/getV2RuntimeFromDll.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/CustomProcessors.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/registerAppI18n.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/compute/WidgetI18n.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/devtools.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/proxyFactories.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/themeAndMode.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/compute/IsolatedFunctions.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/compute/getGeneralGlobals.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/StoryboardFunctionRegistry.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/compute/StoryboardFunctions.js","webpack:///../../node_modules/@ungap/event-target/esm/index.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/mediaQuery.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/compute/getStorageItem.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/isStrictMode.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/CustomTemplates.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/IsolatedTemplates.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/CustomTemplates/utils.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/compute/WidgetFunctions.js","webpack:///../../node_modules/compare-versions/lib/esm/utils.js","webpack:///../../node_modules/compare-versions/lib/esm/compare.js","webpack:///../../node_modules/compare-versions/lib/esm/compareVersions.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/hasInstalledApp.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/FormRenderer/utils.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/data/getProviderBrick.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/compute/markAsComputed.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/data/resolveData.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/compute/evaluate.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/compute/getNextStateOfUseBrick.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/compute/computeRealValue.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/compute/checkIf.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/compute/getTracks.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/compute/computeRealProperties.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/compute/setRealProperties.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/compute/setProperties.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/compute/listenOnTrackingContext.js","webpack:///../../node_modules/path-to-regexp/dist.es2015/index.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/matchPath.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/matchRoutes.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/CustomTemplates/constants.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/poll.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/i18n.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/Dialog.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/setLoginStateCookie.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/handleHttpError.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/Notification.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/debugManager.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/bindListeners.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/sse.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/CustomTemplates/bindTemplateProxy.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/enums.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/mount.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/RendererContext.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/routeMatchedMap.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/legacy_transform.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/secret_internals.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/data/realTimeDataInspect.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/data/DataStore.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/data/resolveDataStore.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/CustomTemplates/setupTemplateProxy.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/CustomTemplates/replaceSlotWithSlottedBricks.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/CustomTemplates/expandCustomTemplate.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/FormRenderer/constants.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/FormRenderer/expandFormRenderer.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/FormRenderer/getDefaultProperties.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/FormRenderer/registerFormRenderer.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/ErrorNode.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/Renderer.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/setupRootRuntimeContext.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/getPageInfo.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/abortController.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/setWatermark.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/registerCustomTemplates.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/setUIVersion.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/isNetworkError.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/shouldReloadForError.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/Router.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/setAppVariable.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/fulfilStoryboard.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/insertPreviewRoutes.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/injected.js","webpack:///../../node_modules/@ctrl/tinycolor/dist/module/util.js","webpack:///../../node_modules/@ctrl/tinycolor/dist/module/conversion.js","webpack:///../../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","webpack:///../../node_modules/@ctrl/tinycolor/dist/module/format-input.js","webpack:///../../node_modules/@next-core/color-theme/node_modules/@ant-design/colors/dist/index.esm.js","webpack:///../../node_modules/@next-core/color-theme/dist/esm/index.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/internal/customizeColorTheme.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/auth.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/CustomEditors.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/fetchByProvider.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/createRoot.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/getRealValue.js","webpack:///../../node_modules/@next-core/runtime/dist/esm/ModalStack.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet2.js"],"sourcesContent":["import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","export default function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","/**\n * Get site's base path, generally will be `/next/` or `/`.\n */\nexport function getBasePath() {\n const base = document.querySelector(\"base\");\n const basePath = base ? base.getAttribute(\"href\") : \"/\";\n return basePath;\n}\n//# sourceMappingURL=getBasePath.js.map","import { orderBy } from \"lodash\";\nimport { getRuntime } from \"./Runtime.js\";\nexport function matchStoryboard(storyboards, pathname) {\n // Put apps with longer homepage before shorter ones.\n // E.g., `/legacy/tool` will match first before `/legacy`.\n // This enables two apps with relationship of parent-child of homepage.\n const sortedStoryboards = orderBy(storyboards, storyboard => {\n var _storyboard$app$homep, _storyboard$app$homep2;\n return (_storyboard$app$homep = (_storyboard$app$homep2 = storyboard.app.homepage) === null || _storyboard$app$homep2 === void 0 ? void 0 : _storyboard$app$homep2.length) !== null && _storyboard$app$homep !== void 0 ? _storyboard$app$homep : 0;\n }, \"desc\");\n for (const storyboard of sortedStoryboards) {\n const homepage = storyboard.app.homepage;\n if (typeof homepage === \"string\" && homepage[0] === \"/\") {\n if (matchHomepage(homepage, pathname)) {\n return storyboard;\n }\n }\n }\n}\nexport function matchHomepage(homepage, pathname) {\n return homepage === \"/\" ? pathname === homepage : `${pathname.replace(/\\/+$/, \"\")}/`.startsWith(`${homepage.replace(/\\/+$/, \"\")}/`);\n}\n\n// istanbul ignore next\n/**\n * We say it's an outside app when at least one of the below conditions are true:\n * - target app is not found.\n * - target app is not the current app.\n * - current app is non-standalone mode and target app is standalone mode.\n *\n * Note: when current app is standalone mode, other apps will not be found.\n */\nexport function isOutsideApp(storyboard) {\n var _getRuntime$getCurren;\n if (process.env.NODE_ENV === \"test\") {\n return false;\n }\n return !storyboard ||\n // Sometimes `storyboard.app.standaloneMode` is incorrect.\n ((_getRuntime$getCurren = getRuntime().getCurrentApp()) === null || _getRuntime$getCurren === void 0 ? void 0 : _getRuntime$getCurren.id) !== storyboard.app.id && !window.STANDALONE_MICRO_APPS && storyboard.app.standaloneMode;\n}\n//# sourceMappingURL=matchStoryboard.js.map","import { parsePath } from \"history\";\nimport { getBasePath } from \"../getBasePath.js\";\nimport { _internalApiMatchStoryboard } from \"./Runtime.js\";\nimport { isOutsideApp } from \"./matchStoryboard.js\";\nlet blocked = false;\nexport function getUserConfirmation(message, callback) {\n blocked = !confirm(message);\n callback(!blocked);\n}\nexport function historyExtended(browserHistory) {\n const {\n push: originalPush,\n replace: originalReplace\n } = browserHistory;\n function push(location, state, callback) {\n blocked = false;\n originalPush(location, state);\n callback === null || callback === void 0 || callback(blocked);\n }\n function replace(location, state, callback) {\n blocked = false;\n originalReplace(location, state);\n callback === null || callback === void 0 || callback(blocked);\n }\n function updateQueryFactory(method) {\n return function updateQuery(query) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let callback = arguments.length > 2 ? arguments[2] : undefined;\n const {\n extraQuery,\n clear,\n keepHash,\n ...state\n } = options;\n const urlSearchParams = new URLSearchParams(clear ? \"\" : browserHistory.location.search);\n const params = {};\n Object.assign(params, query, extraQuery);\n for (const [key, value] of Object.entries(params)) {\n if (Array.isArray(value)) {\n urlSearchParams.delete(key);\n for (const item of value) {\n urlSearchParams.append(key, item);\n }\n } else if (value === undefined || value === null || value === \"\") {\n urlSearchParams.delete(key);\n } else {\n urlSearchParams.set(key, value);\n }\n }\n (method === \"push\" ? push : replace)(`?${urlSearchParams.toString()}${keepHash ? browserHistory.location.hash : \"\"}`, state, callback);\n };\n }\n function pushAnchor(hash, state, callback) {\n push({\n ...browserHistory.location,\n key: undefined,\n hash,\n state: {\n // The default notify is false\n notify: false,\n ...state\n }\n }, undefined, callback);\n }\n function reload(callback) {\n replace({\n ...browserHistory.location,\n state: {\n ...browserHistory.location.state,\n // Always notify\n notify: true,\n // Do not use incremental sub routes\n noIncremental: true\n }\n }, undefined, callback);\n }\n let blockMessage;\n function setBlockMessage(message) {\n blockMessage = message;\n }\n function getBlockMessage() {\n return blockMessage;\n }\n function unblock() {\n blockMessage = undefined;\n }\n return {\n pushQuery: updateQueryFactory(\"push\"),\n replaceQuery: updateQueryFactory(\"replace\"),\n pushAnchor: pushAnchor,\n reload,\n setBlockMessage,\n getBlockMessage,\n unblock,\n ...historyOverridden({\n ...browserHistory,\n push,\n replace\n })\n };\n}\n\n/**\n * Override history for standalone micro apps.\n *\n * when `push` or `replace` to other apps, force page refresh.\n */\nfunction historyOverridden(browserHistory) {\n const {\n push: originalPush,\n replace: originalReplace\n } = browserHistory;\n function updateFactory(method) {\n return function update(path, state, callback) {\n let pathname;\n const pathIsString = typeof path === \"string\";\n if (pathIsString) {\n pathname = parsePath(path).pathname;\n } else {\n pathname = path.pathname;\n }\n\n // When history.push or history.replace is performing with an absolute pathname,\n // force load the target page when it is a page of an outside app.\n if (typeof pathname === \"string\" && pathname.startsWith(\"/\") && isOutsideApp(_internalApiMatchStoryboard(pathname))) {\n // Going to outside apps.\n return location[method === \"push\" ? \"assign\" : \"replace\"](pathIsString ? getBasePath() + path.substring(1) : browserHistory.createHref(path));\n }\n return (method === \"push\" ? originalPush : originalReplace)(path, state, callback);\n };\n }\n return {\n push: updateFactory(\"push\"),\n replace: updateFactory(\"replace\")\n };\n}\n\n/**\n * 扩展的系统会话对象。\n */\n\n/**\n * 更新指定的 query 参数。\n *\n * @param query - 要更新的 query 参数。\n * @param options - 选项。\n */\n\n/** 更新 query 参数时的选项 */\n\n/**\n * 设置指定的 anchor (URL hash)地址,此方法默认不会触发页面重新渲染。\n * 往浏览器会话历史栈中推入一条新记录。\n *\n * @param hash - Hash 地址。\n * @param state - 会话状态设置。\n */\n//# sourceMappingURL=historyExtended.js.map","import { createBrowserHistory } from \"history\";\nimport { getBasePath } from \"./getBasePath.js\";\nimport { getUserConfirmation, historyExtended } from \"./internal/historyExtended.js\";\nimport { getV2RuntimeFromDll } from \"./getV2RuntimeFromDll.js\";\nlet history;\nexport function createHistory() {\n if (!history) {\n // https://github.com/remix-run/history/issues/810\n const browserHistory = createBrowserHistory({\n basename: getBasePath().replace(/\\/$/, \"\"),\n getUserConfirmation\n });\n Object.assign(browserHistory, historyExtended(browserHistory));\n history = browserHistory;\n }\n return history;\n}\nfunction getHistoryV3() {\n return history;\n}\n\n/**\n * When using v3 bricks in v2 container, return history from v2 container.\n */\nfunction getHistoryV2Factory() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return v2Kit.getHistory;\n }\n}\nexport const getHistory = getHistoryV2Factory() || getHistoryV3;\n//# sourceMappingURL=history.js.map","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classPrivateFieldInitSpec from \"@babel/runtime/helpers/classPrivateFieldInitSpec\";\nimport _classPrivateFieldSet from \"@babel/runtime/helpers/classPrivateFieldSet2\";\nimport _classPrivateFieldGet from \"@babel/runtime/helpers/classPrivateFieldGet2\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { loadBricksImperatively } from \"@next-core/loader\";\nimport { deepFreeze, isObject } from \"@next-core/utils/general\";\nimport moment from \"moment\";\nimport \"moment/locale/zh-cn.js\";\nimport { createHistory } from \"../history.js\";\nimport { matchStoryboard } from \"./matchStoryboard.js\";\nimport { Router } from \"./Router.js\";\nimport { NS, locales } from \"./i18n.js\";\nimport { loadNotificationService } from \"../Notification.js\";\nimport { loadDialogService } from \"../Dialog.js\";\nimport { injectedBrickPackages } from \"./injected.js\";\nimport { hasInstalledApp } from \"./hasInstalledApp.js\";\nimport { listenDevtoolsEagerly } from \"./devtools.js\";\nimport { getV2RuntimeFromDll } from \"../getV2RuntimeFromDll.js\";\nimport { customizeColorTheme } from \"./customizeColorTheme.js\";\nlet runtime;\n\n// Allow inject bootstrap data in a runtime other than Brick Next.\nlet bootstrapData;\nlet router;\nlet processedBrickPackages;\nexport let hooks;\nexport function createRuntime(options) {\n if (runtime) {\n throw new Error(\"Cannot create multiple runtimes\");\n }\n listenDevtoolsEagerly();\n hooks = options === null || options === void 0 ? void 0 : options.hooks;\n initializeI18n(NS, locales);\n moment.locale(i18n.language);\n i18n.on(\"languageChanged\", () => {\n moment.locale(i18n.language);\n });\n createHistory();\n runtime = new Runtime();\n return runtime;\n}\nfunction getRuntimeV3() {\n return runtime;\n}\n\n// istanbul ignore next\nfunction getRuntimeV2Factory() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return function getRuntimeV2() {\n return new Proxy(v2Kit.getRuntime(), {\n get() {\n const key = arguments.length <= 1 ? undefined : arguments[1];\n switch (key) {\n case \"getCurrentApp\":\n case \"getRecentApps\":\n case \"hasInstalledApp\":\n case \"getDesktops\":\n case \"getLaunchpadSettings\":\n case \"getLaunchpadSiteMap\":\n case \"toggleLaunchpadEffect\":\n case \"applyPageTitle\":\n case \"getNavConfig\":\n case \"getFeatureFlags\":\n case \"getMiscSettings\":\n case \"getBrandSettings\":\n return Reflect.get(...arguments);\n }\n }\n });\n };\n }\n}\n\n// istanbul ignore next\nexport const getRuntime = getRuntimeV2Factory() || getRuntimeV3;\nvar _initialized = /*#__PURE__*/new WeakMap();\nvar _bootstrapped = /*#__PURE__*/new WeakMap();\nexport class Runtime {\n constructor() {\n _classPrivateFieldInitSpec(this, _initialized, false);\n _classPrivateFieldInitSpec(this, _bootstrapped, false);\n _defineProperty(this, \"version\", 3);\n }\n initialize(data) {\n var _data$settings;\n if (_classPrivateFieldGet(_initialized, this)) {\n throw new Error(\"The runtime cannot be initialized more than once\");\n }\n _classPrivateFieldSet(_initialized, this, true);\n normalizeBootstrapData(data);\n bootstrapData = data;\n const {\n notification,\n dialog\n } = _internalApiGetPresetBricks();\n if (notification !== false) {\n loadNotificationService(notification !== null && notification !== void 0 ? notification : \"basic.show-notification\", this.loadBricks);\n }\n if (dialog !== false) {\n loadDialogService(dialog !== null && dialog !== void 0 ? dialog : \"basic.show-dialog\", this.loadBricks);\n }\n customizeColorTheme((_data$settings = data.settings) === null || _data$settings === void 0 || (_data$settings = _data$settings.misc) === null || _data$settings === void 0 ? void 0 : _data$settings.theme);\n }\n async bootstrap(data) {\n if (data) {\n this.initialize(data);\n }\n if (_classPrivateFieldGet(_bootstrapped, this)) {\n throw new Error(\"The runtime cannot be bootstrapped more than once\");\n }\n _classPrivateFieldSet(_bootstrapped, this, true);\n router = new Router(bootstrapData.storyboards);\n await router.bootstrap();\n }\n getRecentApps() {\n var _router$getRecentApps, _router;\n return (_router$getRecentApps = (_router = router) === null || _router === void 0 ? void 0 : _router.getRecentApps()) !== null && _router$getRecentApps !== void 0 ? _router$getRecentApps : {};\n }\n getCurrentApp() {\n var _router2;\n return (_router2 = router) === null || _router2 === void 0 ? void 0 : _router2.getRecentApps().currentApp;\n }\n hasInstalledApp(appId, matchVersion) {\n return hasInstalledApp(appId, matchVersion);\n }\n getFeatureFlags() {\n var _bootstrapData, _router3;\n return {\n ...((_bootstrapData = bootstrapData) === null || _bootstrapData === void 0 || (_bootstrapData = _bootstrapData.settings) === null || _bootstrapData === void 0 ? void 0 : _bootstrapData.featureFlags),\n ...((_router3 = router) === null || _router3 === void 0 || (_router3 = _router3.getRecentApps().currentApp) === null || _router3 === void 0 || (_router3 = _router3.config) === null || _router3 === void 0 || (_router3 = _router3.settings) === null || _router3 === void 0 ? void 0 : _router3.featureFlags),\n \"migrate-to-brick-next-v3\": true\n };\n }\n getMiscSettings() {\n var _bootstrapData2, _router4;\n return {\n ...((_bootstrapData2 = bootstrapData) === null || _bootstrapData2 === void 0 || (_bootstrapData2 = _bootstrapData2.settings) === null || _bootstrapData2 === void 0 ? void 0 : _bootstrapData2.misc),\n ...((_router4 = router) === null || _router4 === void 0 || (_router4 = _router4.getRecentApps().currentApp) === null || _router4 === void 0 || (_router4 = _router4.config) === null || _router4 === void 0 || (_router4 = _router4.settings) === null || _router4 === void 0 ? void 0 : _router4.misc)\n };\n }\n getBrandSettings() {\n var _bootstrapData3;\n return {\n base_title: \"DevOps 管理专家\",\n ...((_bootstrapData3 = bootstrapData) === null || _bootstrapData3 === void 0 || (_bootstrapData3 = _bootstrapData3.settings) === null || _bootstrapData3 === void 0 ? void 0 : _bootstrapData3.brand)\n };\n }\n getLaunchpadSettings() {\n var _bootstrapData4;\n return {\n columns: 7,\n rows: 4,\n ...((_bootstrapData4 = bootstrapData) === null || _bootstrapData4 === void 0 || (_bootstrapData4 = _bootstrapData4.settings) === null || _bootstrapData4 === void 0 ? void 0 : _bootstrapData4.launchpad)\n };\n }\n getDesktops() {\n var _bootstrapData$deskto, _bootstrapData5;\n return (_bootstrapData$deskto = (_bootstrapData5 = bootstrapData) === null || _bootstrapData5 === void 0 ? void 0 : _bootstrapData5.desktops) !== null && _bootstrapData$deskto !== void 0 ? _bootstrapData$deskto : [];\n }\n getLaunchpadSiteMap() {\n var _bootstrapData$siteSo, _bootstrapData6;\n return (_bootstrapData$siteSo = (_bootstrapData6 = bootstrapData) === null || _bootstrapData6 === void 0 ? void 0 : _bootstrapData6.siteSort) !== null && _bootstrapData$siteSo !== void 0 ? _bootstrapData$siteSo : [];\n }\n toggleLaunchpadEffect(open) {\n document.body.classList.toggle(\"launchpad-open\", open);\n }\n applyPageTitle(pageTitle) {\n var _router5;\n const baseTitle = this.getBrandSettings().base_title;\n document.title = ((_router5 = router) === null || _router5 === void 0 || (_router5 = _router5.getRecentApps().currentApp) === null || _router5 === void 0 ? void 0 : _router5.localeTitle) || (pageTitle ? `${pageTitle} - ${baseTitle}` : baseTitle);\n }\n getNavConfig() {\n var _router6;\n return (_router6 = router) === null || _router6 === void 0 ? void 0 : _router6.getNavConfig();\n }\n loadBricks(bricks) {\n return loadBricksImperatively(bricks, getBrickPackages());\n }\n}\nfunction normalizeBootstrapData(data) {\n if (isObject(data.settings)) {\n deepFreeze(data.settings);\n }\n if (data.brickPackages) {\n deepFreeze(data.brickPackages);\n }\n}\nfunction processPublicDepsPackages(brickPackages, pubDeps) {\n if (!(pubDeps !== null && pubDeps !== void 0 && pubDeps.length)) return brickPackages;\n const bricksMap = new Map();\n\n // bootstrapData 数据和 pubDeps 中可能同时存在同一个包名,需要过滤去重, 以 pubDeps 中的包为准\n [...pubDeps, ...brickPackages].forEach(pkg => {\n const pkgName = pkg.filePath.split(\"/\")[1];\n // 始终将 pubDeps 放在前面\n if (!bricksMap.has(pkgName)) {\n bricksMap.set(pkgName, pkg);\n }\n });\n return Array.from(bricksMap.values());\n}\nexport function getBrickPackages() {\n var _ref, _ref2, _bootstrapData$brickP, _bootstrapData7;\n return (// Not necessary to process brick packages multiple times.\n processedBrickPackages !== null && processedBrickPackages !== void 0 ? processedBrickPackages : processedBrickPackages = processPublicDepsPackages((_ref = (_ref2 = (_bootstrapData$brickP = (_bootstrapData7 = bootstrapData) === null || _bootstrapData7 === void 0 ? void 0 : _bootstrapData7.brickPackages) !== null && _bootstrapData$brickP !== void 0 ? _bootstrapData$brickP : injectedBrickPackages) !== null && _ref2 !== void 0 ? _ref2 : window.STANDALONE_BRICK_PACKAGES) !== null && _ref !== void 0 ? _ref : [], window.PUBLIC_DEPS)\n );\n}\nexport function _internalApiGetPresetBricks() {\n var _bootstrapData$settin, _bootstrapData8;\n return (_bootstrapData$settin = (_bootstrapData8 = bootstrapData) === null || _bootstrapData8 === void 0 || (_bootstrapData8 = _bootstrapData8.settings) === null || _bootstrapData8 === void 0 ? void 0 : _bootstrapData8.presetBricks) !== null && _bootstrapData$settin !== void 0 ? _bootstrapData$settin : {};\n}\nexport function _internalApiGetRenderId() {\n var _router7;\n return (_router7 = router) === null || _router7 === void 0 ? void 0 : _router7.getRenderId();\n}\nexport function _internalApiMatchStoryboard(pathname) {\n var _bootstrapData$storyb, _bootstrapData9;\n return matchStoryboard((_bootstrapData$storyb = (_bootstrapData9 = bootstrapData) === null || _bootstrapData9 === void 0 ? void 0 : _bootstrapData9.storyboards) !== null && _bootstrapData$storyb !== void 0 ? _bootstrapData$storyb : [], pathname);\n}\nexport function _internalApiGetRuntimeContext() {\n var _router8;\n return (_router8 = router) === null || _router8 === void 0 ? void 0 : _router8.getRuntimeContext();\n}\nexport function _internalApiGetStoryboardInBootstrapData(appId) {\n var _bootstrapData0;\n return (_bootstrapData0 = bootstrapData) === null || _bootstrapData0 === void 0 || (_bootstrapData0 = _bootstrapData0.storyboards) === null || _bootstrapData0 === void 0 ? void 0 : _bootstrapData0.find(storyboard => storyboard.app.id === appId);\n}\nexport function _internalApiGetAppInBootstrapData(appId) {\n var _internalApiGetStoryb;\n return (_internalApiGetStoryb = _internalApiGetStoryboardInBootstrapData(appId)) === null || _internalApiGetStoryb === void 0 ? void 0 : _internalApiGetStoryb.app;\n}\nexport let _test_only_setBootstrapData;\n\n// istanbul ignore next\nif (process.env.NODE_ENV === \"test\") {\n _test_only_setBootstrapData = data => {\n bootstrapData = data;\n };\n}\n//# sourceMappingURL=Runtime.js.map","export function getV2RuntimeFromDll() {\n var _window$BRICK_NEXT_VE;\n const {\n dll\n } = window;\n if (dll && (_window$BRICK_NEXT_VE = window.BRICK_NEXT_VERSIONS) !== null && _window$BRICK_NEXT_VE !== void 0 && (_window$BRICK_NEXT_VE = _window$BRICK_NEXT_VE[\"brick-container\"]) !== null && _window$BRICK_NEXT_VE !== void 0 && _window$BRICK_NEXT_VE.startsWith(\"2.\")) {\n return dll(\"tYg3\");\n }\n}\n//# sourceMappingURL=getV2RuntimeFromDll.js.map","import _classPrivateFieldInitSpec from \"@babel/runtime/helpers/classPrivateFieldInitSpec\";\nimport _classPrivateFieldGet from \"@babel/runtime/helpers/classPrivateFieldGet2\";\nimport { getV2RuntimeFromDll } from \"./getV2RuntimeFromDll.js\";\nvar _registry = /*#__PURE__*/new WeakMap();\nclass CustomProcessorRegistry {\n constructor() {\n _classPrivateFieldInitSpec(this, _registry, new Map());\n }\n define(processorFullName, processorFunc) {\n // `namespace` should be the camelCase of the package name.\n const [namespace, processorName] = processorFullName.split(\".\");\n let pkg = _classPrivateFieldGet(_registry, this).get(namespace);\n if (!pkg) {\n pkg = new Map();\n _classPrivateFieldGet(_registry, this).set(namespace, pkg);\n }\n if (pkg.has(processorName)) {\n // eslint-disable-next-line no-console\n throw new Error(`Custom processor of \"${processorFullName}\" already registered`);\n }\n pkg.set(processorName, processorFunc);\n }\n get(namespace) {\n return _classPrivateFieldGet(_registry, this).get(namespace);\n }\n}\n\n// istanbul ignore next\nfunction getCustomProcessorsV2() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return Object.freeze({\n define(processorFullName, processorFunc) {\n return v2Kit.getRuntime().registerCustomProcessor(processorFullName, processorFunc);\n }\n });\n }\n}\n\n// istanbul ignore next\nexport const customProcessors = getCustomProcessorsV2() || new CustomProcessorRegistry();\n//# sourceMappingURL=CustomProcessors.js.map","import { i18n } from \"@next-core/i18n\";\nexport function registerAppI18n(_ref) {\n let {\n app,\n meta\n } = _ref;\n if (meta !== null && meta !== void 0 && meta.i18n) {\n // Prefix to avoid conflict between brick package's i18n namespace.\n const i18nNamespace = getI18nNamespace(\"app\", app.id);\n // Support any language in `meta.i18n`.\n const languages = [];\n Object.entries(meta.i18n).forEach(_ref2 => {\n let [lang, resources] = _ref2;\n i18n.addResourceBundle(lang, i18nNamespace, resources);\n languages.push(lang);\n });\n return () => {\n for (const lang of languages) {\n i18n.removeResourceBundle(lang, i18nNamespace);\n }\n };\n }\n}\nexport function getI18nNamespace(type, id) {\n return `${type}/${id}`;\n}\n//# sourceMappingURL=registerAppI18n.js.map","import { i18n } from \"@next-core/i18n\";\nimport { getI18nNamespace } from \"../registerAppI18n.js\";\nimport { getV2RuntimeFromDll } from \"../../getV2RuntimeFromDll.js\";\nfunction registerWidgetI18nV3(widgetId, i18nData) {\n const ns = getI18nNamespace(\"widget\", widgetId);\n Object.entries(i18nData).forEach(_ref => {\n let [lang, resources] = _ref;\n i18n.addResourceBundle(lang, ns, resources);\n });\n}\nexport function widgetI18nFactory(widgetId) {\n return i18n.getFixedT(null, getI18nNamespace(\"widget\", widgetId));\n}\n\n// istanbul ignore next\nfunction registerWidgetI18nV2Factory() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return function (widgetId, i18nData) {\n return v2Kit.getRuntime().registerWidgetI18n(widgetId, i18nData);\n };\n }\n}\n\n// istanbul ignore next\nexport const registerWidgetI18n = registerWidgetI18nV2Factory() || registerWidgetI18nV3;\n//# sourceMappingURL=WidgetI18n.js.map","export const MESSAGE_SOURCE_PANEL = \"brick-next-devtools-panel\";\nexport const FRAME_ACTIVE_CHANGE = \"devtools-frame-active-change\";\nexport const PANEL_CHANGE = \"devtools-panel-change\";\nlet frameIsActive = true;\nlet selectedPanel;\nexport function devtoolsHookEmit(type, payload) {\n const devtools = getDevHook();\n if (!devtools || type === \"evaluation\" && !(frameIsActive && (!selectedPanel || selectedPanel === \"Evaluations\"))) {\n // Ignore messages if current devtools panel is not relevant.\n return;\n }\n const emit = () => {\n var _devtools$emit;\n (_devtools$emit = devtools.emit) === null || _devtools$emit === void 0 || _devtools$emit.call(devtools, {\n type,\n payload\n });\n };\n\n // Try to emit only in idle time.\n // istanbul ignore next\n if (typeof window.requestIdleCallback === \"function\") {\n window.requestIdleCallback(emit);\n } else {\n setTimeout(emit, 0);\n }\n}\nexport function listenDevtoolsEagerly() {\n window.addEventListener(\"message\", _ref => {\n let {\n data\n } = _ref;\n if ((data === null || data === void 0 ? void 0 : data.source) !== MESSAGE_SOURCE_PANEL) {\n return;\n }\n const payload = data.payload;\n switch (payload === null || payload === void 0 ? void 0 : payload.type) {\n case FRAME_ACTIVE_CHANGE:\n {\n frameIsActive = payload.active;\n break;\n }\n case PANEL_CHANGE:\n {\n selectedPanel = payload.panel;\n break;\n }\n }\n });\n}\nexport function getDevHook() {\n return window.__BRICK_NEXT_DEVTOOLS_HOOK__;\n}\n//# sourceMappingURL=devtools.js.map","import { getDevHook } from \"./devtools.js\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst THROW = () => {\n throw new Error(\"Can't modify read-only proxy object\");\n};\nconst readOnlyHandler = {\n set: THROW,\n defineProperty: THROW,\n deleteProperty: THROW,\n setPrototypeOf: THROW\n};\nexport function getReadOnlyProxy(object) {\n return new Proxy(object, readOnlyHandler);\n}\n\n// First, we want to make accessing property of globals lazy,\n// So we use *Proxy* to make a dynamic accessor for each of these globals.\n// But we also want to keep them working in devtools.\nexport function getDynamicReadOnlyProxy(_ref) {\n let {\n get,\n ownKeys\n } = _ref;\n if (getDevHook()) {\n // In devtools, we extract them at beginning.\n const target = Object.fromEntries(ownKeys(null).map(key => [key, get(null, key, null)]));\n return getReadOnlyProxy(target);\n }\n return new Proxy(Object.freeze({}), {\n get\n });\n}\n//# sourceMappingURL=proxyFactories.js.map","import { JsonStorage } from \"@next-core/utils/general\";\n// Themes.\nlet theme = \"light\";\nconst storage = new JsonStorage(localStorage);\nconst LOCAL_STORAGE_APPS_THEME_KEY = \"apps-theme\";\nexport function setTheme(value) {\n if (value !== \"dark\" && value !== \"light\" && value !== \"dark-v2\") {\n throw new Error(`Unsupported theme: ${value}`);\n }\n theme = value;\n}\nexport function getTheme() {\n return theme;\n}\nexport function getCurrentTheme() {\n return document.documentElement.dataset.theme;\n}\nexport function applyTheme(value) {\n if (value) {\n setTheme(value);\n } else {\n value = getTheme();\n }\n if (value !== getCurrentTheme()) {\n document.documentElement.dataset.theme = value;\n window.dispatchEvent(new CustomEvent(\"theme.change\", {\n detail: value\n }));\n }\n}\nexport function batchSetAppsLocalTheme(appsTheme) {\n storage.setItem(LOCAL_STORAGE_APPS_THEME_KEY, {\n ...getLocalAppsTheme(),\n ...appsTheme\n });\n}\nexport function getLocalAppsTheme() {\n let result;\n try {\n result = storage.getItem(LOCAL_STORAGE_APPS_THEME_KEY);\n } catch {\n // eslint-disable-next-line no-console\n console.error(\"JSON parse error inside `getLocalAppsTheme()`\");\n }\n return result !== null && result !== void 0 ? result : {};\n}\n\n// Modes.\nlet mode = \"default\";\nexport function setMode(value) {\n if (value !== \"dashboard\" && value !== \"default\") {\n throw new Error(`Unsupported mode: ${value}`);\n }\n mode = value;\n}\nexport function getMode() {\n return mode;\n}\nexport function getCurrentMode() {\n return document.documentElement.dataset.mode;\n}\nexport function applyMode(value) {\n if (value) {\n setMode(value);\n } else {\n value = getMode();\n }\n if (value !== getCurrentMode()) {\n document.documentElement.dataset.mode = value;\n window.dispatchEvent(new CustomEvent(\"mode.change\", {\n detail: value\n }));\n }\n}\nexport function getCssPropertyValue(name) {\n var _window$getComputedSt;\n let el = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.documentElement;\n if (!el) return \"\";\n return ((_window$getComputedSt = window.getComputedStyle(el)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.getPropertyValue(name)) || \"\";\n}\nlet variant = \"default\";\nexport function setThemeVariant(value) {\n if (value !== \"default\" && value !== \"elevo\") {\n return setThemeVariant(\"default\");\n }\n if (variant === value) {\n return;\n }\n document.documentElement.dataset.variant = variant = value;\n window.dispatchEvent(new CustomEvent(\"variant.change\", {\n detail: value\n }));\n}\nexport function getThemeVariant() {\n return variant;\n}\n//# sourceMappingURL=themeAndMode.js.map","import { StoryboardFunctionRegistryFactory } from \"../../StoryboardFunctionRegistry.js\";\nexport const isolatedFunctionRegistry = new Map();\nexport function registerIsolatedFunctions(isolatedRoot, functions) {\n const {\n storyboardFunctions,\n registerStoryboardFunctions\n } = StoryboardFunctionRegistryFactory({\n isolatedRoot\n });\n isolatedFunctionRegistry.set(isolatedRoot, storyboardFunctions);\n registerStoryboardFunctions(functions);\n}\n//# sourceMappingURL=IsolatedFunctions.js.map","import { identity } from \"lodash\";\nimport { i18n, i18nText } from \"@next-core/i18n\";\nimport { widgetI18nFactory } from \"./WidgetI18n.js\";\nimport { getReadOnlyProxy } from \"../proxyFactories.js\";\nimport { getCssPropertyValue, getTheme } from \"../../themeAndMode.js\";\nimport { getBasePath } from \"../../getBasePath.js\";\nimport { getI18nNamespace } from \"../registerAppI18n.js\";\nimport { hooks } from \"../Runtime.js\";\nimport { isolatedFunctionRegistry } from \"./IsolatedFunctions.js\";\n// `GeneralGlobals` are globals which are page-state-agnostic,\n// thus they can be used both in storyboard expressions and functions.\nexport function getGeneralGlobals(attemptToVisitGlobals, options) {\n const globalVariables = {};\n for (const variableName of attemptToVisitGlobals) {\n const variable = getIndividualGlobal(variableName, options);\n if (variable !== undefined) {\n globalVariables[variableName] = variable;\n }\n }\n return globalVariables;\n}\nfunction getIndividualGlobal(variableName, _ref) {\n var _hooks$images, _hooks$images2, _hooks$checkPermissio;\n let {\n collectCoverage,\n widgetId,\n widgetVersion,\n isolatedRoot,\n app,\n appendI18nNamespace,\n storyboardFunctions,\n isStoryboardFunction\n } = _ref;\n switch (variableName) {\n case \"BASE_URL\":\n return collectCoverage ? \"/next\" : getBasePath().replace(/\\/$/, \"\");\n case \"FN\":\n return isolatedRoot ? isolatedFunctionRegistry.get(isolatedRoot) : storyboardFunctions;\n case \"IMG\":\n return collectCoverage ? fakeImageFactory() : widgetId ? hooks === null || hooks === void 0 || (_hooks$images = hooks.images) === null || _hooks$images === void 0 ? void 0 : _hooks$images.widgetImagesFactory(widgetId, widgetVersion) : hooks === null || hooks === void 0 || (_hooks$images2 = hooks.images) === null || _hooks$images2 === void 0 ? void 0 : _hooks$images2.imagesFactory(app.id, app.isBuildPush, app.currentVersion);\n case \"I18N\":\n return collectCoverage ? identity : widgetId ? widgetI18nFactory(widgetId) : i18n.getFixedT(null, [appendI18nNamespace, getI18nNamespace(\"app\", app.id)].filter(Boolean));\n case \"I18N_TEXT\":\n return collectCoverage ? fakeI18nText : i18nText;\n case \"LANGUAGE\":\n {\n return collectCoverage ? \"zh\" : i18n.language || \"zh\";\n }\n case \"PERMISSIONS\":\n return getReadOnlyProxy({\n check: collectCoverage ? fakeCheckPermissions : hooks === null || hooks === void 0 || (_hooks$checkPermissio = hooks.checkPermissions) === null || _hooks$checkPermissio === void 0 ? void 0 : _hooks$checkPermissio.checkPermissions\n });\n case \"THEME\":\n return getReadOnlyProxy({\n getTheme: collectCoverage ? () => \"light\" : getTheme,\n getCssPropertyValue: collectCoverage ? () => \"\" : getCssPropertyValue\n });\n case \"console\":\n return isStoryboardFunction ? getReadOnlyProxy(console) : undefined;\n case \"location\":\n return collectCoverage ? {\n href: \"http://localhost:3000/functions/test\",\n origin: \"http://localhost:3000\",\n host: \"localhost:3000\",\n hostname: \"localhost\"\n } : {\n href: location.href,\n origin: location.origin,\n host: location.host,\n hostname: location.hostname\n };\n }\n}\nfunction fakeI18nText(data) {\n return data === null || data === void 0 ? void 0 : data.en;\n}\nfunction fakeImageFactory() {\n return {\n get(name) {\n return `mock/images/${name}`;\n }\n };\n}\nfunction fakeCheckPermissions() {\n return true;\n}\n//# sourceMappingURL=getGeneralGlobals.js.map","import { cook, precookFunction, __dev_only_clearGlobalExecutionContextStack, __dev_only_getGlobalExecutionContextStack } from \"@next-core/cook\";\nimport { supply } from \"@next-core/supply\";\nimport { collectMemberUsageInFunction } from \"@next-core/utils/storyboard\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { getGeneralGlobals } from \"./internal/compute/getGeneralGlobals.js\";\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\nexport function StoryboardFunctionRegistryFactory() {\n let {\n widgetId,\n widgetVersion,\n isolatedRoot,\n collectCoverage,\n debuggerOverrides\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const registeredFunctions = new Map();\n const overrides = debuggerOverrides === null || debuggerOverrides === void 0 ? void 0 : debuggerOverrides({\n precookFunction,\n cook,\n supply\n });\n\n // Use `Proxy` with a frozen target, to make a readonly function registry.\n const storyboardFunctions = new Proxy(Object.freeze({}), {\n get(_target, key) {\n return getStoryboardFunction(key);\n }\n });\n let currentApp;\n function registerStoryboardFunctions(functions, app) {\n if (app) {\n currentApp = app;\n }\n registeredFunctions.clear();\n if (Array.isArray(functions)) {\n for (const fn of functions) {\n var _fn$perm;\n let deps = fn.deps;\n if (deps == null) {\n deps = collectMemberUsageInFunction(fn, \"FN\", !!collectCoverage);\n deps.delete(fn.name);\n }\n const hasPermissionsCheck = (_fn$perm = fn.perm) !== null && _fn$perm !== void 0 ? _fn$perm : collectMemberUsageInFunction(fn, \"PERMISSIONS\", !!collectCoverage).has(\"check\");\n registeredFunctions.set(fn.name, {\n source: fn.source,\n typescript: fn.typescript,\n transformed: fn.transformed,\n deps,\n hasPermissionsCheck\n });\n }\n }\n }\n function getGlobalVariables(globals) {\n return supply(globals, getGeneralGlobals(globals, {\n collectCoverage,\n widgetId,\n widgetVersion,\n isolatedRoot,\n app: currentApp,\n storyboardFunctions,\n isStoryboardFunction: true\n }), !!collectCoverage);\n }\n function getStoryboardFunction(name) {\n const fn = registeredFunctions.get(name);\n if (!fn) {\n return undefined;\n }\n if (fn.processed) {\n return fn.cooked;\n }\n let collector;\n if (collectCoverage) {\n collector = collectCoverage.createCollector(name);\n }\n\n // Do not use transformed functions when debugging.\n const transformed = !overrides && !collector && fn.transformed;\n if (transformed) {\n const globalVariables = getGlobalVariables(transformed.globals);\n // Spread globals as params to prevent accessing forbidden globals.\n // NOTE: in native mode, forbidden globals are declared as `undefined`,\n // thus accessing them will not throw a ReferenceError.\n fn.cooked = new Function(...transformed.globals, `\"use strict\";return (${transformed.source})`)(...transformed.globals.map(key => hasOwnProperty(globalVariables, key) ? globalVariables[key] : undefined));\n } else {\n const precooked = precookFunction(fn.source, {\n typescript: fn.typescript,\n hooks: collector && {\n beforeVisit: collector.beforeVisit\n },\n cacheKey: fn\n });\n const globalVariables = getGlobalVariables(precooked.attemptToVisitGlobals);\n fn.cooked = cook(precooked.function, fn.source, {\n rules: {\n noVar: true\n },\n globalVariables: overrides ? {\n ...globalVariables,\n ...(overrides !== null && overrides !== void 0 && overrides.LodashWithStaticFields && precooked.attemptToVisitGlobals.has(\"_\") ? {\n _: {\n ...globalVariables._,\n ...overrides.LodashWithStaticFields\n }\n } : null),\n ...(overrides !== null && overrides !== void 0 && overrides.ArrayConstructor && precooked.attemptToVisitGlobals.has(\"Array\") ? {\n Array: overrides.ArrayConstructor\n } : null),\n ...(overrides !== null && overrides !== void 0 && overrides.ObjectWithStaticFields && precooked.attemptToVisitGlobals.has(\"Object\") ? {\n Object: {\n ...globalVariables.Object,\n ...overrides.ObjectWithStaticFields\n }\n } : null)\n } : globalVariables,\n ArrayConstructor: overrides === null || overrides === void 0 ? void 0 : overrides.ArrayConstructor,\n hooks: collector && {\n beforeEvaluate: collector.beforeEvaluate,\n beforeCall: collector.beforeCall,\n beforeBranch: collector.beforeBranch\n },\n debug: !!debuggerOverrides\n });\n }\n fn.processed = true;\n return fn.cooked;\n }\n return {\n storyboardFunctions,\n registerStoryboardFunctions,\n updateStoryboardFunction(name, data) {\n const newFn = {\n ...data,\n name\n };\n const deps = collectMemberUsageInFunction(newFn, \"FN\", true);\n const hasPermissionsCheck = collectMemberUsageInFunction(newFn, \"PERMISSIONS\", true).has(\"check\");\n registeredFunctions.set(name, {\n source: data.source,\n typescript: data.typescript,\n transformed: data.transformed,\n deps,\n hasPermissionsCheck\n });\n },\n /**\n * Check whether listed functions attempt to call `PERMISSIONS.check()`,\n * includes in nested `FN.*()` calls.\n */\n checkPermissionsUsage(functionNames) {\n const checkedFunctions = new Set();\n const hasPermissionsCheck = name => {\n if (!checkedFunctions.has(name)) {\n checkedFunctions.add(name);\n const fn = registeredFunctions.get(name);\n return !!fn && (fn.hasPermissionsCheck || [...fn.deps].some(hasPermissionsCheck));\n }\n return false;\n };\n return functionNames.some(hasPermissionsCheck);\n },\n clearGlobalExecutionContextStack() {\n __dev_only_clearGlobalExecutionContextStack();\n },\n getGlobalExecutionContextStack() {\n return __dev_only_getGlobalExecutionContextStack();\n }\n };\n}\n//# sourceMappingURL=StoryboardFunctionRegistry.js.map","import { StoryboardFunctionRegistryFactory } from \"../../StoryboardFunctionRegistry.js\";\nexport const {\n storyboardFunctions,\n registerStoryboardFunctions,\n checkPermissionsUsage\n} = StoryboardFunctionRegistryFactory();\n//# sourceMappingURL=StoryboardFunctions.js.map","/*! (c) Andrea Giammarchi - ISC */\nvar self = {};\ntry {\n self.EventTarget = (new EventTarget).constructor;\n} catch(EventTarget) {\n (function (Object, wm) {\n var create = Object.create;\n var defineProperty = Object.defineProperty;\n var proto = EventTarget.prototype;\n define(proto, 'addEventListener', function (type, listener, options) {\n for (var\n secret = wm.get(this),\n listeners = secret[type] || (secret[type] = []),\n i = 0, length = listeners.length; i < length; i++\n ) {\n if (listeners[i].listener === listener)\n return;\n }\n listeners.push({target: this, listener: listener, options: options});\n });\n define(proto, 'dispatchEvent', function (event) {\n var secret = wm.get(this);\n var listeners = secret[event.type];\n if (listeners) {\n define(event, 'target', this);\n define(event, 'currentTarget', this);\n listeners.slice(0).some(dispatch, event);\n delete event.currentTarget;\n delete event.target;\n }\n return true;\n });\n define(proto, 'removeEventListener', function (type, listener) {\n for (var\n secret = wm.get(this),\n /* istanbul ignore next */\n listeners = secret[type] || (secret[type] = []),\n i = 0, length = listeners.length; i < length; i++\n ) {\n if (listeners[i].listener === listener) {\n listeners.splice(i, 1);\n return;\n }\n }\n });\n self.EventTarget = EventTarget;\n function EventTarget() {'use strict';\n wm.set(this, create(null));\n }\n function define(target, name, value) {\n defineProperty(\n target,\n name,\n {\n configurable: true,\n writable: true,\n value: value\n }\n );\n }\n function dispatch(info) {\n var options = info.options;\n if (options && options.once)\n info.target.removeEventListener(this.type, info.listener);\n if (typeof info.listener === 'function')\n info.listener.call(info.target, this);\n else\n info.listener.handleEvent(this);\n return this._stopImmediatePropagationFlag;\n }\n }(Object, new WeakMap));\n}\nexport default self.EventTarget;\n","import EventTarget from \"@ungap/event-target\";\nexport let MediaBreakpoint = /*#__PURE__*/function (MediaBreakpoint) {\n MediaBreakpoint[\"xLarge\"] = \"xLarge\";\n MediaBreakpoint[\"large\"] = \"large\";\n MediaBreakpoint[\"medium\"] = \"medium\";\n MediaBreakpoint[\"small\"] = \"small\";\n MediaBreakpoint[\"xSmall\"] = \"xSmall\";\n return MediaBreakpoint;\n}({});\nexport const mediaBreakpointMinWidthMap = new Map([[MediaBreakpoint.xLarge, \"1920px\"], [MediaBreakpoint.large, \"1600px\"], [MediaBreakpoint.medium, \"1280px\"], [MediaBreakpoint.small, \"1024px\"], [MediaBreakpoint.xSmall, 0]]);\nexport const mediaEventTarget = new EventTarget();\nconst breakpointMatchesMap = {};\nconst MEDIA = {};\nfunction handleMatchesChange(data, breakpoint) {\n let changed = false;\n breakpointMatchesMap[breakpoint] = data.matches;\n for (const [breakpoint] of mediaBreakpointMinWidthMap) {\n if (breakpointMatchesMap[breakpoint] && MEDIA.breakpoint !== breakpoint) {\n MEDIA.breakpoint = breakpoint;\n changed = true;\n break;\n }\n }\n if (changed) {\n mediaEventTarget.dispatchEvent(new CustomEvent(\"change\", {\n detail: MEDIA\n }));\n }\n}\nmediaBreakpointMinWidthMap.forEach((minWidth, breakpoint) => {\n const mediaQueryList = window.matchMedia(`(min-width: ${minWidth})`);\n handleMatchesChange(mediaQueryList, breakpoint);\n if (mediaQueryList.addEventListener) {\n mediaQueryList.addEventListener(\"change\", event => {\n handleMatchesChange(event, breakpoint);\n });\n } else {\n mediaQueryList.addListener(event => {\n handleMatchesChange(event, breakpoint);\n });\n }\n});\nexport const getMedia = () => MEDIA;\n//# sourceMappingURL=mediaQuery.js.map","export function getStorageItem(storageType) {\n return function (name) {\n var _storage$getItem;\n const storage = storageType === \"local\" ? localStorage : sessionStorage;\n return JSON.parse((_storage$getItem = storage.getItem(name)) !== null && _storage$getItem !== void 0 ? _storage$getItem : \"null\");\n };\n}\n//# sourceMappingURL=getStorageItem.js.map","import { getRuntime } from \"./index.js\";\nexport function isStrictMode(runtimeContext) {\n var _ref, _getRuntime;\n return !!((_ref = runtimeContext ? runtimeContext.flags : (_getRuntime = getRuntime()) === null || _getRuntime === void 0 ? void 0 : _getRuntime.getFeatureFlags()) !== null && _ref !== void 0 && _ref[\"brick-next-v3-strict-mode\"]);\n}\nexport function warnAboutStrictMode(strict, message) {\n for (var _len = arguments.length, extraLogs = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n extraLogs[_key - 2] = arguments[_key];\n }\n const punctuation = extraLogs.length === 0 ? \"\" : \",\";\n if (strict) {\n // eslint-disable-next-line no-console\n console.error(`${message} is dropped in v3 strict mode${punctuation}`, ...extraLogs);\n } else {\n // eslint-disable-next-line no-console\n console.warn(`${message} is deprecated in v3 and will be dropped in strict mode${punctuation}`, ...extraLogs);\n }\n}\n//# sourceMappingURL=isStrictMode.js.map","import _classPrivateFieldInitSpec from \"@babel/runtime/helpers/classPrivateFieldInitSpec\";\nimport _classPrivateFieldGet from \"@babel/runtime/helpers/classPrivateFieldGet2\";\nimport _classPrivateFieldSet from \"@babel/runtime/helpers/classPrivateFieldSet2\";\nimport { uniq } from \"lodash\";\nimport { isStrictMode, warnAboutStrictMode } from \"./isStrictMode.js\";\nimport { getV2RuntimeFromDll } from \"./getV2RuntimeFromDll.js\";\n\n// Note: `prefix` is a native prop on Element, but it's only used in XML documents.\nconst allowedNativeProps = new Set([\"prefix\"]);\nvar _registry = /*#__PURE__*/new WeakMap();\nvar _isolated = /*#__PURE__*/new WeakMap();\nexport class CustomTemplateRegistry {\n constructor(isolated) {\n _classPrivateFieldInitSpec(this, _registry, new Map());\n _classPrivateFieldInitSpec(this, _isolated, void 0);\n _classPrivateFieldSet(_isolated, this, isolated);\n }\n define(tagName, constructor) {\n var _constructor$proxy$pr, _constructor$proxy, _compatibleConstructo, _compatibleConstructo2;\n let registered = _classPrivateFieldGet(_registry, this).has(tagName);\n if (registered) {\n // When open launchpad, the storyboard will be updated.\n // However, we can't *undefine* a custom element.\n // Just ignore re-registering custom templates.\n // eslint-disable-next-line no-console\n console.warn(`Custom template of \"${tagName}\" already registered.`);\n } else {\n registered = !!customElements.get(tagName);\n if (registered) {\n // eslint-disable-next-line no-console\n console.warn(`Custom template of \"${tagName}\" already defined by customElements.`);\n }\n }\n\n // Transform legacy `proxy.properties[].asVariable` as states.\n const strict = isStrictMode();\n const proxyProperties = (_constructor$proxy$pr = (_constructor$proxy = constructor.proxy) === null || _constructor$proxy === void 0 ? void 0 : _constructor$proxy.properties) !== null && _constructor$proxy$pr !== void 0 ? _constructor$proxy$pr : {};\n const validProxyProps = [];\n const legacyTplVariables = [];\n for (const [key, value] of Object.entries(proxyProperties)) {\n if (value.asVariable) {\n warnAboutStrictMode(strict, \"Template `asVariable`\", tagName, key);\n // istanbul ignore next\n if (!strict) {\n // For existed TPL usage, treat it as a STATE.\n legacyTplVariables.push(key);\n }\n } else if (value.mergeProperty || value.refTransform) {\n // eslint-disable-next-line no-console\n console.error(\"Template `mergeProperty` and `refTransform` are dropped in v3:\", tagName, key);\n } else if (value.ref) {\n validProxyProps.push([key, value]);\n }\n // Else: documentation only, for exposed states.\n }\n const compatibleConstructor = {\n ...constructor,\n proxy: {\n ...constructor.proxy,\n properties: Object.fromEntries(validProxyProps)\n },\n state: (constructor.state ? strict ? constructor.state : constructor.state.map(item => ({\n // Make `expose` defaults to true in non-strict mode.\n expose: true,\n ...item\n })) : []).concat(legacyTplVariables.map(tpl => ({\n name: tpl,\n expose: true\n })))\n };\n\n // Now we allow re-register custom template\n _classPrivateFieldGet(_registry, this).set(tagName, {\n ...compatibleConstructor,\n name: tagName\n });\n const exposedStates = getExposedStates(compatibleConstructor.state);\n const proxyMethods = Object.entries((_compatibleConstructo = (_compatibleConstructo2 = compatibleConstructor.proxy) === null || _compatibleConstructo2 === void 0 ? void 0 : _compatibleConstructo2.methods) !== null && _compatibleConstructo !== void 0 ? _compatibleConstructo : {});\n const props = exposedStates.concat(validProxyProps.map(entry => entry[0]));\n const methods = proxyMethods.map(entry => entry[0]);\n const nativeProps = props.concat(methods).filter(prop => prop in HTMLElement.prototype && !allowedNativeProps.has(prop));\n if (nativeProps.length > 0) {\n warnAboutStrictMode(strict, \"Using native HTMLElement properties as template properties or methods\", tagName, ...nativeProps);\n // istanbul ignore next\n if (strict) {\n throw new Error(`In custom template \"${tagName}\", ${nativeProps.map(p => `\"${p}\"`).join(\", \")} are native HTMLElement properties, and should be avoid to be used as brick properties or methods.`);\n }\n }\n if (registered) {\n return;\n }\n class TplElement extends HTMLElement {\n get $$typeof() {\n return \"custom-template\";\n }\n static get _dev_only_definedProperties() {\n return props;\n }\n static get _dev_only_definedMethods() {\n return methods;\n }\n $$getElementByRef(ref) {\n var _this$$$tplStateStore;\n return (_this$$$tplStateStore = this.$$tplStateStore) === null || _this$$$tplStateStore === void 0 || (_this$$$tplStateStore = _this$$$tplStateStore.hostBrick) === null || _this$$$tplStateStore === void 0 || (_this$$$tplStateStore = _this$$$tplStateStore.tplHostMetadata) === null || _this$$$tplStateStore === void 0 || (_this$$$tplStateStore = _this$$$tplStateStore.internalBricksByRef.get(ref)) === null || _this$$$tplStateStore === void 0 ? void 0 : _this$$$tplStateStore.element;\n }\n connectedCallback() {\n let shadowRoot = this.shadowRoot;\n if (!shadowRoot) {\n shadowRoot = this.attachShadow({\n mode: \"open\"\n });\n }\n const fragment = document.createDocumentFragment();\n const style = document.createElement(\"style\");\n style.textContent = \":host{display:block}:host([hidden]){display:none}\";\n const slot = document.createElement(\"slot\");\n fragment.appendChild(style);\n fragment.appendChild(slot);\n shadowRoot.appendChild(fragment);\n }\n disconnectedCallback() {\n if (this.shadowRoot) {\n this.shadowRoot.textContent = \"\";\n }\n }\n }\n for (const propName of exposedStates) {\n if (validProxyProps.some(entry => entry[0] === propName)) {\n // eslint-disable-next-line no-console\n console.error(`Cannot define an exposed state that is also a proxy property: \"${propName}\" in ${tagName}`);\n continue;\n }\n Object.defineProperty(TplElement.prototype, propName, {\n get() {\n return this.$$tplStateStore.getValue(propName);\n },\n set(value) {\n var _this$$$tplStateStore2;\n // 在 mount 过程中,先设置属性,再设置 `$$tplStateStore`,这样,当触发属性设置时,\n // 避免初始化的一次 state update 操作及其 onChange 事件。\n (_this$$$tplStateStore2 = this.$$tplStateStore) === null || _this$$$tplStateStore2 === void 0 || _this$$$tplStateStore2.updateValue(propName, value, \"replace\");\n },\n enumerable: true\n });\n }\n for (const [from, to] of validProxyProps) {\n Object.defineProperty(TplElement.prototype, from, {\n get() {\n var _to$refProperty;\n const element = this.$$getElementByRef(to.ref);\n return element[(_to$refProperty = to.refProperty) !== null && _to$refProperty !== void 0 ? _to$refProperty : from];\n },\n set(value) {\n var _this$$$getElementByR;\n // 同上 exposedState.set\n const element = (_this$$$getElementByR = this.$$getElementByRef) === null || _this$$$getElementByR === void 0 ? void 0 : _this$$$getElementByR.call(this, to.ref);\n if (element) {\n var _to$refProperty2;\n element[(_to$refProperty2 = to.refProperty) !== null && _to$refProperty2 !== void 0 ? _to$refProperty2 : from] = value;\n }\n },\n enumerable: true\n });\n }\n for (const [from, to] of proxyMethods) {\n Object.defineProperty(TplElement.prototype, from, {\n value() {\n var _to$refMethod;\n const element = this.$$getElementByRef(to.ref);\n return element[(_to$refMethod = to.refMethod) !== null && _to$refMethod !== void 0 ? _to$refMethod : from](...arguments);\n },\n enumerable: true\n });\n }\n customElements.define(tagName, TplElement);\n }\n get(tagName) {\n return _classPrivateFieldGet(_registry, this).get(tagName);\n }\n clearIsolatedRegistry() {\n if (_classPrivateFieldGet(_isolated, this)) {\n _classPrivateFieldGet(_registry, this).clear();\n }\n }\n}\nfunction getExposedStates(state) {\n var _state$filter$map;\n // Allow duplicated state names which maybe mutually exclusive.\n return uniq((_state$filter$map = state === null || state === void 0 ? void 0 : state.filter(item => item.expose).map(item => item.name)) !== null && _state$filter$map !== void 0 ? _state$filter$map : []);\n}\n\n// istanbul ignore next\nfunction getCustomTemplatesV2() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return Object.freeze({\n define(tagName, constructor) {\n return v2Kit.getRuntime().registerCustomTemplate(tagName, constructor);\n }\n });\n }\n}\n\n// istanbul ignore next\nexport const customTemplates = getCustomTemplatesV2() || new CustomTemplateRegistry();\n//# sourceMappingURL=CustomTemplates.js.map","import { CustomTemplateRegistry } from \"../CustomTemplates.js\";\nexport const isolatedTemplateRegistryMap = new Map();\nexport function registerIsolatedTemplates(isolatedRoot, templates) {\n let registry = isolatedTemplateRegistryMap.get(isolatedRoot);\n if (!registry) {\n registry = new CustomTemplateRegistry(true);\n isolatedTemplateRegistryMap.set(isolatedRoot, registry);\n }\n registry.clearIsolatedRegistry();\n if (Array.isArray(templates)) {\n for (const tpl of templates) {\n registry.define(tpl.name, tpl);\n }\n }\n}\n//# sourceMappingURL=IsolatedTemplates.js.map","import { customTemplates } from \"../../CustomTemplates.js\";\nimport { isolatedTemplateRegistryMap } from \"../IsolatedTemplates.js\";\nexport function getTplStateStore(_ref, using, extraInfo) {\n let {\n tplStateStoreId,\n tplStateStoreMap\n } = _ref;\n if (!tplStateStoreId) {\n throw new Error(`Using \"${using}\" outside of a custom template${extraInfo !== null && extraInfo !== void 0 ? extraInfo : \"\"}`);\n }\n const store = tplStateStoreMap.get(tplStateStoreId);\n if (!store) {\n throw new Error(`Template state store is not found when using \"${using}\"${extraInfo !== null && extraInfo !== void 0 ? extraInfo : \"\"}.\\nThis is a bug of Brick Next, please report it.`);\n }\n return store;\n}\nexport function getTplHostElement(runtimeContext, using, extraInfo) {\n const store = getTplStateStore(runtimeContext, using, extraInfo);\n const hostElement = store.hostBrick.element;\n if (!hostElement) {\n throw new Error(`Template host element is gone when using \"${using}\"${extraInfo !== null && extraInfo !== void 0 ? extraInfo : \"\"}.\\nThis is a bug of Brick Next, please report it.`);\n }\n return hostElement;\n}\nexport function getTagNameOfCustomTemplate(brick, runtimeContext) {\n if (runtimeContext.isolatedRoot) {\n const registry = isolatedTemplateRegistryMap.get(runtimeContext.isolatedRoot);\n if (registry !== null && registry !== void 0 && registry.get(brick)) {\n return brick;\n }\n return false;\n }\n\n // When a template is registered by an app, it's namespace maybe missed.\n if (!brick.includes(\".\") && brick.startsWith(\"tpl-\") && runtimeContext.app) {\n const tagName = `${runtimeContext.app.id}.${brick}`;\n if (customTemplates.get(tagName)) {\n return tagName;\n }\n }\n if (customTemplates.get(brick)) {\n return brick;\n }\n return false;\n}\n//# sourceMappingURL=utils.js.map","import { StoryboardFunctionRegistryFactory } from \"../../StoryboardFunctionRegistry.js\";\nimport { getV2RuntimeFromDll } from \"../../getV2RuntimeFromDll.js\";\nconst widgetFunctionRegistry = new Map();\nexport const widgetFunctions = new Proxy(Object.freeze({}), {\n get(target, key) {\n return widgetFunctionRegistry.get(key);\n }\n});\nfunction registerWidgetFunctionsV3(widgetId, functions, widgetVersion) {\n if (widgetFunctionRegistry.has(widgetId)) {\n throw new Error(`Widget functions of \"${widgetId}\" already registered`);\n }\n const {\n storyboardFunctions,\n registerStoryboardFunctions\n } = StoryboardFunctionRegistryFactory({\n widgetId,\n widgetVersion\n });\n widgetFunctionRegistry.set(widgetId, storyboardFunctions);\n registerStoryboardFunctions(functions);\n}\n\n// istanbul ignore next\nfunction registerWidgetFunctionsV2Factory() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return function (widgetId, functions, widgetVersion) {\n return v2Kit.getRuntime().registerWidgetFunctions(widgetId, functions, widgetVersion);\n };\n }\n}\n\n// istanbul ignore next\nexport const registerWidgetFunctions = registerWidgetFunctionsV2Factory() || registerWidgetFunctionsV3;\n//# sourceMappingURL=WidgetFunctions.js.map","export const semver = /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\nexport const validateAndParse = (version) => {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n const match = version.match(semver);\n if (!match) {\n throw new Error(`Invalid argument not valid semver ('${version}' received)`);\n }\n match.shift();\n return match;\n};\nconst isWildcard = (s) => s === '*' || s === 'x' || s === 'X';\nconst tryParse = (v) => {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n};\nconst forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b];\nconst compareStrings = (a, b) => {\n if (isWildcard(a) || isWildcard(b))\n return 0;\n const [ap, bp] = forceType(tryParse(a), tryParse(b));\n if (ap > bp)\n return 1;\n if (ap < bp)\n return -1;\n return 0;\n};\nexport const compareSegments = (a, b) => {\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const r = compareStrings(a[i] || '0', b[i] || '0');\n if (r !== 0)\n return r;\n }\n return 0;\n};\n//# sourceMappingURL=utils.js.map","import { compareVersions } from './compareVersions.js';\n/**\n * Compare [semver](https://semver.org/) version strings using the specified operator.\n *\n * @param v1 First version to compare\n * @param v2 Second version to compare\n * @param operator Allowed arithmetic operator to use\n * @returns `true` if the comparison between the firstVersion and the secondVersion satisfies the operator, `false` otherwise.\n *\n * @example\n * ```\n * compare('10.1.8', '10.0.4', '>'); // return true\n * compare('10.0.1', '10.0.1', '='); // return true\n * compare('10.1.1', '10.2.2', '<'); // return true\n * compare('10.1.1', '10.2.2', '<='); // return true\n * compare('10.1.1', '10.2.2', '>='); // return false\n * ```\n */\nexport const compare = (v1, v2, operator) => {\n // validate input operator\n assertValidOperator(operator);\n // since result of compareVersions can only be -1 or 0 or 1\n // a simple map can be used to replace switch\n const res = compareVersions(v1, v2);\n return operatorResMap[operator].includes(res);\n};\nconst operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1],\n '!=': [-1, 1],\n};\nconst allowedOperators = Object.keys(operatorResMap);\nconst assertValidOperator = (op) => {\n if (typeof op !== 'string') {\n throw new TypeError(`Invalid operator type, expected string but got ${typeof op}`);\n }\n if (allowedOperators.indexOf(op) === -1) {\n throw new Error(`Invalid operator, expected one of ${allowedOperators.join('|')}`);\n }\n};\n//# sourceMappingURL=compare.js.map","import { compareSegments, validateAndParse } from './utils.js';\n/**\n * Compare [semver](https://semver.org/) version strings to find greater, equal or lesser.\n * This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`.\n * @param v1 - First version to compare\n * @param v2 - Second version to compare\n * @returns Numeric value compatible with the [Array.sort(fn) interface](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters).\n */\nexport const compareVersions = (v1, v2) => {\n // validate input and split into segments\n const n1 = validateAndParse(v1);\n const n2 = validateAndParse(v2);\n // pop off the patch\n const p1 = n1.pop();\n const p2 = n2.pop();\n // validate numbers\n const r = compareSegments(n1, n2);\n if (r !== 0)\n return r;\n // validate pre-release\n if (p1 && p2) {\n return compareSegments(p1.split('.'), p2.split('.'));\n }\n else if (p1 || p2) {\n return p1 ? -1 : 1;\n }\n return 0;\n};\n//# sourceMappingURL=compareVersions.js.map","import { compare } from \"compare-versions\";\nimport { _internalApiGetAppInBootstrapData, hooks } from \"./Runtime.js\";\nexport function hasInstalledApp(appId, matchVersion) {\n // First, check whether the app is in bootstrap already.\n let app = _internalApiGetAppInBootstrapData(appId);\n if (!app && hooks !== null && hooks !== void 0 && hooks.checkInstalledApps) {\n app = hooks.checkInstalledApps.getCheckedApp(appId);\n }\n if (!app || app.installStatus === \"running\") {\n return false;\n }\n // Todo: `currentVersion` maybe `\"\"`\n if (!matchVersion || !app.currentVersion) {\n return true;\n }\n // Valid `matchVersion`:\n // >=1.2.3\n // >1.2.3\n // =1.2.3\n // <=1.2.3\n // <1.2.3\n const matches = matchVersion.match(/^([><]=?|=)(.*)$/);\n try {\n if (!matches) {\n throw new TypeError(`Invalid match version: ${matchVersion}`);\n }\n return compare(app.currentVersion, matches[2], matches[1]);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n return false;\n}\n//# sourceMappingURL=hasInstalledApp.js.map","export function getFormStateStore(_ref, using, extraInfo) {\n let {\n formStateStoreId,\n formStateStoreMap\n } = _ref;\n if (!formStateStoreId) {\n throw new Error(`Using \"${using}\" outside of form renderer${extraInfo !== null && extraInfo !== void 0 ? extraInfo : \"\"}`);\n }\n const store = formStateStoreMap.get(formStateStoreId);\n if (!store) {\n throw new Error(`Form state store is not found when using \"${using}\"${extraInfo !== null && extraInfo !== void 0 ? extraInfo : \"\"}.\\nThis is a bug of Brick Next, please report it.`);\n }\n return store;\n}\n//# sourceMappingURL=utils.js.map","import { loadBricksImperatively } from \"@next-core/loader\";\nimport { getBrickPackages, hooks } from \"../Runtime.js\";\nconst pool = new Map();\nexport async function getProviderBrick(provider) {\n var _hooks$flowApi;\n const isFlowApi = hooks === null || hooks === void 0 || (_hooks$flowApi = hooks.flowApi) === null || _hooks$flowApi === void 0 ? void 0 : _hooks$flowApi.isFlowApiProvider(provider);\n if (isFlowApi) {\n provider = hooks.flowApi.FLOW_API_PROVIDER;\n }\n let brick = pool.get(provider);\n if (brick) {\n return brick;\n }\n if (provider.includes(\"-\") && !customElements.get(provider)) {\n if (isFlowApi) {\n hooks.flowApi.registerFlowApiProvider();\n } else {\n await loadBricksImperatively([provider], getBrickPackages());\n if (!customElements.get(provider)) {\n throw new Error(`Provider not defined: \"${provider}\".`);\n }\n }\n }\n brick = document.createElement(provider);\n pool.set(provider, brick);\n return brick;\n}\n//# sourceMappingURL=getProviderBrick.js.map","import { isObject } from \"@next-core/utils/general\";\nlet computed = new WeakSet();\n\n// The computed (or transformed) result should never be *computed* again.\n// So does the fetched data from a remote api.\nexport function markAsComputed(value) {\n if (isObject(value)) {\n if (!hasBeenComputed(value)) {\n computed.add(value);\n if (Array.isArray(value)) {\n value.forEach(markAsComputed);\n } else {\n // Only mark pure objects.\n const proto = Object.getPrototypeOf(value);\n if (!proto || proto.constructor === Object) {\n Object.values(value).forEach(markAsComputed);\n }\n }\n }\n }\n}\nexport function hasBeenComputed(object) {\n return computed.has(object);\n}\nexport function resetAllComputedMarks() {\n computed = new WeakSet();\n}\n//# sourceMappingURL=markAsComputed.js.map","import { asyncComputeRealValue } from \"../compute/computeRealValue.js\";\nimport { getProviderBrick } from \"./getProviderBrick.js\";\nimport { _internalApiGetRenderId, hooks } from \"../Runtime.js\";\nimport { markAsComputed } from \"../compute/markAsComputed.js\";\nimport { get } from \"lodash\";\nimport { isStrictMode, warnAboutStrictMode } from \"../../isStrictMode.js\";\nconst cache = new Map();\nexport async function resolveData(resolveConf, runtimeContext, resolveOptions) {\n var _hooks$flowApi;\n const {\n useProvider,\n method = \"resolve\",\n args,\n params,\n options,\n filename,\n onReject\n } = resolveConf;\n const {\n provider: legacyProvider,\n field: legacyField\n } = resolveConf;\n if (legacyProvider && !useProvider) {\n throw new Error(`You're using \"provider: ${legacyProvider}\" which is dropped in v3, please use \"useProvider\" instead`);\n }\n const hasLegacyField = legacyField !== null && legacyField !== undefined;\n if (hasLegacyField) {\n const strict = isStrictMode();\n warnAboutStrictMode(strict, \"`resolve.field`\");\n // istanbul ignore next\n if (strict) {\n throw new Error(\"Using deprecated `resolve.field`\");\n }\n }\n const contractConf = !Array.isArray(args) && params && hooks !== null && hooks !== void 0 && (_hooks$flowApi = hooks.flowApi) !== null && _hooks$flowApi !== void 0 && _hooks$flowApi.isFlowApiProvider(useProvider) ? {\n params,\n options,\n filename\n } : null;\n const [providerBrick, actualArgs, actualContractConf] = await Promise.all([getProviderBrick(useProvider), asyncComputeRealValue(args, runtimeContext), asyncComputeRealValue(contractConf, runtimeContext)]);\n\n // `clearResolveCache` maybe cleared during the above promise being\n // fulfilled, so we manually mark it as stale for this case.\n const renderId = resolveOptions === null || resolveOptions === void 0 ? void 0 : resolveOptions.renderId;\n const stale = !!renderId && renderId !== _internalApiGetRenderId();\n const promise = resolveByProvider(providerBrick, useProvider, method, actualContractConf !== null && actualContractConf !== void 0 && actualContractConf.params ? actualContractConf : actualArgs !== null && actualArgs !== void 0 ? actualArgs : [], resolveOptions, args, stale);\n let {\n transform\n } = resolveConf;\n let data;\n try {\n const value = await promise;\n data = hasLegacyField ? get(value, legacyField) : value;\n // The fetched data and its inner objects should never be *injected* again.\n markAsComputed(data);\n } catch (error) {\n if (isHandleRejectByTransform(onReject)) {\n transform = onReject.transform;\n data = error;\n } else {\n throw error;\n }\n }\n if (!transform) {\n return data;\n }\n\n // Keep backward compatibility of string transform.\n if (typeof transform === \"string\") {\n return {\n [transform]: data\n };\n }\n return asyncComputeRealValue(transform, {\n ...runtimeContext,\n data\n });\n}\nexport function clearResolveCache() {\n cache.clear();\n}\nexport async function resolveByProvider(brick, useProvider, method, args, options, originalArgs, stale) {\n let cacheKey;\n try {\n // `args` may contain circular references, which makes\n // JSON stringify failed, thus we fallback to original args.\n cacheKey = JSON.stringify({\n useProvider,\n method,\n args\n });\n } catch (e) {\n if (!originalArgs) {\n throw e;\n }\n cacheKey = JSON.stringify({\n useProvider,\n method,\n originalArgs\n });\n }\n let promise;\n if ((options === null || options === void 0 ? void 0 : options.cache) !== \"reload\") {\n promise = cache.get(cacheKey);\n }\n if (!promise) {\n promise = (async _hooks$flowApi2 => {\n const finalArgs = hooks !== null && hooks !== void 0 && (_hooks$flowApi2 = hooks.flowApi) !== null && _hooks$flowApi2 !== void 0 && _hooks$flowApi2.isFlowApiProvider(useProvider) ? await hooks.flowApi.getArgsOfFlowApi(useProvider, args, method) : args;\n return brick[method](...finalArgs);\n })();\n if (!stale) {\n cache.set(cacheKey, promise);\n }\n }\n return promise;\n}\nfunction isHandleRejectByTransform(onReject) {\n return !!(onReject !== null && onReject !== void 0 && onReject.transform);\n}\n//# sourceMappingURL=resolveData.js.map","import { cook, preevaluate, shouldAllowRecursiveEvaluations } from \"@next-core/cook\";\nimport { loadProcessorsImperatively } from \"@next-core/loader\";\nimport { supply } from \"@next-core/supply\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { strictCollectMemberUsage, collectAppGetMenuUsage, collectInstalledAppsHasUsage } from \"@next-core/utils/storyboard\";\nimport { cloneDeep, omit } from \"lodash\";\nimport { customProcessors } from \"../../CustomProcessors.js\";\nimport { checkPermissionsUsage, storyboardFunctions } from \"./StoryboardFunctions.js\";\nimport { getGeneralGlobals } from \"./getGeneralGlobals.js\";\nimport { getDynamicReadOnlyProxy, getReadOnlyProxy } from \"../proxyFactories.js\";\nimport { devtoolsHookEmit, getDevHook } from \"../devtools.js\";\nimport { getMedia } from \"../mediaQuery.js\";\nimport { getStorageItem } from \"./getStorageItem.js\";\nimport { _internalApiGetRuntimeContext, _internalApiGetStoryboardInBootstrapData, getBrickPackages, getRuntime, hooks } from \"../Runtime.js\";\nimport { getTplStateStore } from \"../CustomTemplates/utils.js\";\nimport { widgetFunctions } from \"./WidgetFunctions.js\";\nimport { widgetI18nFactory } from \"./WidgetI18n.js\";\nimport { hasInstalledApp } from \"../hasInstalledApp.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../../isStrictMode.js\";\nimport { getFormStateStore } from \"../FormRenderer/utils.js\";\nimport { resolveData } from \"../data/resolveData.js\";\nimport { asyncComputeRealValue } from \"./computeRealValue.js\";\nconst symbolForRaw = Symbol.for(\"pre.evaluated.raw\");\nconst symbolForContext = Symbol.for(\"pre.evaluated.context\");\nexport function isPreEvaluated(raw) {\n return !!(raw !== null && raw !== void 0 && raw[symbolForRaw]);\n}\nexport function getPreEvaluatedRaw(pre) {\n return pre[symbolForRaw];\n}\nexport function shouldDismissMarkingComputed(raw) {\n if (typeof raw === \"string\") {\n return shouldAllowRecursiveEvaluations(raw);\n }\n return shouldAllowRecursiveEvaluations(raw[symbolForRaw]);\n}\nconst possibleErrorConstructs = new WeakSet([SyntaxError, TypeError, ReferenceError]);\nexport function getCookErrorConstructor(error) {\n return possibleErrorConstructs.has(error.constructor) ? error.constructor : TypeError;\n}\nexport async function asyncEvaluate(raw,\n// string or pre-evaluated object.\nruntimeContext, options) {\n const {\n blockingList,\n run\n } = lowLevelEvaluate(raw, runtimeContext, options, true);\n await Promise.all(blockingList);\n return run();\n}\nexport function evaluate(raw,\n// string or pre-evaluated object.\nruntimeContext, options) {\n const {\n run\n } = lowLevelEvaluate(raw, runtimeContext, options, false);\n return run();\n}\nfunction lowLevelEvaluate(raw,\n// string or pre-evaluated object.\nruntimeContext) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let isAsync = arguments.length > 3 ? arguments[3] : undefined;\n const blockingList = [];\n if (typeof raw !== \"string\") {\n // If the `raw` is not a string, it must be a pre-evaluated object.\n // Then fulfil the context, and restore the original `raw`.\n\n const passByRuntimeContext = omit(runtimeContext, [\"pendingPermissionsPreCheck\", \"tplStateStoreMap\", \"tplStateStoreScope\", \"formStateStoreMap\", \"formStateStoreScope\"]);\n runtimeContext = {\n ...raw[symbolForContext],\n ...passByRuntimeContext\n };\n raw = raw[symbolForRaw];\n }\n\n // Collect `APP.getMenu(...)` usage before evaluating.\n const menuUsage = {\n usedArgs: new Set()\n };\n const hasAppUsage = {\n usedArgs: new Set()\n };\n\n // A `SyntaxError` maybe thrown.\n let precooked;\n try {\n precooked = preevaluate(raw, {\n cache: true,\n withParent: true,\n hooks: {\n beforeVisitGlobal(node, parent) {\n collectAppGetMenuUsage(menuUsage, node, parent);\n collectInstalledAppsHasUsage(hasAppUsage, node, parent);\n }\n }\n });\n } catch (error) {\n const message = `${error.message}, in \"${raw}\"`;\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n }\n if (menuUsage.hasNonStaticUsage) {\n throw new Error(`Non-static usage of \"APP.getMenu\" is prohibited in v3, check your expression: \"${raw}\"`);\n }\n if (hasAppUsage.hasNonStaticUsage) {\n throw new Error(`Non-static usage of \"INSTALLED_APPS.has\" is prohibited in v3, check your expression: \"${raw}\"`);\n }\n const globalVariables = {};\n const {\n attemptToVisitGlobals\n } = precooked;\n\n // Ignore evaluating if required `event/DATA` is missing in\n // context. Since they are are provided in different context, whenever\n // missing one of them, memorize the current context for later consuming.\n if (options.lazy || attemptToVisitGlobals.has(\"EVENT\") && !hasOwnProperty(runtimeContext, \"event\") || attemptToVisitGlobals.has(\"DATA\") && !hasOwnProperty(runtimeContext, \"data\")) {\n return {\n blockingList,\n run() {\n return Object.keys(runtimeContext).length > 0 ? {\n [symbolForRaw]: raw,\n [symbolForContext]: runtimeContext\n } : raw;\n }\n };\n }\n let usedCtx;\n let usedProcessors;\n let usedStates;\n let tplStateStore;\n const strict = isStrictMode(runtimeContext);\n\n // For existed TPL usage, treat it as a STATE.\n if (attemptToVisitGlobals.has(\"STATE\") || !strict && attemptToVisitGlobals.has(\"TPL\")) {\n tplStateStore = getTplStateStore(runtimeContext, \"STATE\", `: \"${raw}\"`);\n }\n let usedFormStates;\n let formStateStore;\n if (attemptToVisitGlobals.has(\"FORM_STATE\")) {\n formStateStore = getFormStateStore(runtimeContext, \"FORM_STATE\", `: \"${raw}\"`);\n }\n const devHook = getDevHook();\n if (isAsync || devHook) {\n if (attemptToVisitGlobals.has(\"CTX\")) {\n usedCtx = strictCollectMemberUsage(raw, \"CTX\");\n isAsync && blockingList.push(runtimeContext.ctxStore.waitFor(usedCtx));\n }\n if (tplStateStore) {\n usedStates = strictCollectMemberUsage(raw, \"STATE\");\n // istanbul ignore if\n if (!strict) {\n const usedTpls = strictCollectMemberUsage(raw, \"TPL\");\n for (const tpl of usedTpls) {\n usedStates.add(tpl);\n }\n }\n isAsync && blockingList.push(tplStateStore.waitFor(usedStates));\n }\n if (formStateStore) {\n usedFormStates = strictCollectMemberUsage(raw, \"FORM_STATE\");\n isAsync && blockingList.push(formStateStore.waitFor(usedFormStates));\n }\n if (attemptToVisitGlobals.has(\"PROCESSORS\")) {\n usedProcessors = strictCollectMemberUsage(raw, \"PROCESSORS\", 2);\n isAsync && blockingList.push(loadProcessorsImperatively(usedProcessors, getBrickPackages()));\n }\n }\n if (isAsync) {\n let attemptToCheckPermissions = attemptToVisitGlobals.has(\"PERMISSIONS\");\n // There maybe `PERMISSIONS.check()` usage in functions\n if (!attemptToCheckPermissions && attemptToVisitGlobals.has(\"FN\")) {\n const usedFunctions = [...strictCollectMemberUsage(raw, \"FN\")];\n attemptToCheckPermissions = checkPermissionsUsage(usedFunctions);\n }\n if (attemptToCheckPermissions) {\n blockingList.push(...runtimeContext.pendingPermissionsPreCheck);\n }\n if (menuUsage.usedArgs.size > 0 && hooks !== null && hooks !== void 0 && hooks.menu) {\n // Block evaluating if has `APP.getMenu(...)` usage.\n const usedMenuIds = [...menuUsage.usedArgs];\n blockingList.push(Promise.all(usedMenuIds.map(menuId => hooks.menu.fetchMenuById(menuId, runtimeContext, {\n getStoryboardByAppId: _internalApiGetStoryboardInBootstrapData,\n resolveData,\n asyncComputeRealValue\n }))));\n }\n if (hasAppUsage.usedArgs.size > 0) {\n var _hooks$checkInstalled;\n // Only wait for specific apps\n blockingList.push(hooks === null || hooks === void 0 || (_hooks$checkInstalled = hooks.checkInstalledApps) === null || _hooks$checkInstalled === void 0 ? void 0 : _hooks$checkInstalled.waitForCheckingApps([...hasAppUsage.usedArgs]));\n }\n }\n return {\n blockingList,\n run() {\n var _penetrableCtx$overri, _hooks$menu, _match$params, _hooks$images;\n const {\n ctxStore,\n data,\n event,\n unsafe_penetrate\n } = runtimeContext;\n const penetrableCtx = unsafe_penetrate ? _internalApiGetRuntimeContext() : runtimeContext;\n const {\n app: currentApp,\n location,\n query,\n match,\n flags,\n sys\n } = penetrableCtx;\n const app = (_penetrableCtx$overri = penetrableCtx.overrideApp) !== null && _penetrableCtx$overri !== void 0 ? _penetrableCtx$overri : currentApp;\n for (const variableName of attemptToVisitGlobals) {\n switch (variableName) {\n // case \"ALIAS\":\n case \"ANCHOR\":\n globalVariables[variableName] = location.hash ? location.hash.substring(1) : null;\n break;\n case \"APP\":\n if (app == null) {\n throw new ReferenceError(`APP is not defined, in \"${raw}\"`);\n }\n globalVariables[variableName] = {\n ...cloneDeep(app),\n getMenu: hooks === null || hooks === void 0 || (_hooks$menu = hooks.menu) === null || _hooks$menu === void 0 ? void 0 : _hooks$menu.getMenuById\n };\n break;\n case \"CTX\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(_target, key) {\n // Allow accessing global `CTX.DS` from an isolated root such as dashboard.\n if (key === \"DS\" && !ctxStore.has(key)) {\n var _internalApiGetRuntim;\n const internalCtxStore = (_internalApiGetRuntim = _internalApiGetRuntimeContext()) === null || _internalApiGetRuntim === void 0 ? void 0 : _internalApiGetRuntim.ctxStore;\n if (internalCtxStore !== null && internalCtxStore !== void 0 && internalCtxStore.has(key)) {\n return internalCtxStore.getValue(key);\n }\n }\n return ctxStore.getValue(key);\n },\n ownKeys() {\n return usedCtx ? Array.from(usedCtx) : [];\n }\n });\n break;\n case \"DATA\":\n globalVariables[variableName] = data;\n break;\n case \"EVENT\":\n globalVariables[variableName] = event;\n break;\n case \"FLAGS\":\n globalVariables[variableName] = getReadOnlyProxy(flags);\n break;\n case \"FORM_STATE\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(_target, key) {\n return formStateStore.getValue(key);\n },\n ownKeys() {\n return Array.from(usedFormStates);\n }\n });\n break;\n case \"HASH\":\n globalVariables[variableName] = location.hash;\n break;\n case \"INSTALLED_APPS\":\n globalVariables[variableName] = getReadOnlyProxy({\n has: hasInstalledApp\n });\n break;\n case \"ITEM\":\n case \"INDEX\":\n case \"SIZE\":\n {\n const property = variableName === \"ITEM\" ? \"forEachItem\" : variableName === \"INDEX\" ? \"forEachIndex\" : \"forEachSize\";\n if (!hasOwnProperty(runtimeContext, property)) {\n // eslint-disable-next-line no-console\n console.error(`Using \\`${variableName}\\` but no \\`:forEach\\` is found, check your expression: \"${raw}\"`);\n } else {\n globalVariables[variableName] = runtimeContext[property];\n }\n break;\n }\n case \"LOCAL_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"local\")\n });\n break;\n case \"MEDIA\":\n globalVariables[variableName] = getReadOnlyProxy(getMedia());\n break;\n case \"MISC\":\n globalVariables[variableName] = getRuntime().getMiscSettings();\n break;\n case \"PARAMS\":\n if (query == null) {\n throw new ReferenceError(`PARAMS is not defined, in \"${raw}\"`);\n }\n globalVariables[variableName] = new URLSearchParams(query);\n break;\n case \"PATH\":\n globalVariables[variableName] = getReadOnlyProxy((_match$params = match === null || match === void 0 ? void 0 : match.params) !== null && _match$params !== void 0 ? _match$params : {});\n break;\n case \"PATH_NAME\":\n globalVariables[variableName] = location.pathname;\n break;\n case \"PROCESSORS\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(_target, key) {\n const pkg = customProcessors.get(key);\n if (!pkg) {\n throw new Error(`'PROCESSORS.${key}' is not registered! Have you installed the relevant brick package?`);\n }\n return getDynamicReadOnlyProxy({\n get(_t, k) {\n return pkg.get(k);\n },\n ownKeys() {\n return Array.from(pkg.keys());\n }\n });\n },\n ownKeys() {\n const keys = new Set();\n for (const processor of usedProcessors) {\n const namespace = processor.split(\".\")[0];\n keys.add(namespace);\n }\n return Array.from(keys);\n }\n });\n break;\n case \"QUERY\":\n if (query == null) {\n throw new ReferenceError(`QUERY is not defined, in \"${raw}\"`);\n }\n globalVariables[variableName] = Object.fromEntries(Array.from(query.keys()).map(key => [key, query.get(key)]));\n break;\n case \"QUERY_ARRAY\":\n if (query == null) {\n throw new ReferenceError(`QUERY_ARRAY is not defined, in \"${raw}\"`);\n }\n globalVariables[variableName] = Object.fromEntries(Array.from(query.keys()).map(key => [key, query.getAll(key)]));\n // case \"SEGUE\":\n break;\n case \"SESSION_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"session\")\n });\n break;\n // istanbul ignore next\n case \"TPL\":\n warnAboutStrictMode(strict, 'Using \"TPL\" in expression', `check your expression: \"${raw}\"`);\n if (strict) {\n break;\n }\n // eslint-disable-next-line no-fallthrough\n case \"STATE\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(_target, key) {\n return tplStateStore.getValue(key);\n },\n ownKeys() {\n return Array.from(usedStates);\n }\n });\n break;\n case \"SYS\":\n globalVariables[variableName] = getReadOnlyProxy(sys !== null && sys !== void 0 ? sys : {});\n break;\n case \"__WIDGET_FN__\":\n globalVariables[variableName] = widgetFunctions;\n break;\n case \"__WIDGET_IMG__\":\n globalVariables[variableName] = hooks === null || hooks === void 0 || (_hooks$images = hooks.images) === null || _hooks$images === void 0 ? void 0 : _hooks$images.widgetImagesFactory;\n break;\n case \"__WIDGET_I18N__\":\n globalVariables[variableName] = widgetI18nFactory;\n break;\n }\n }\n Object.assign(globalVariables, getGeneralGlobals(precooked.attemptToVisitGlobals, {\n storyboardFunctions,\n app: app,\n appendI18nNamespace: runtimeContext.appendI18nNamespace,\n isolatedRoot: runtimeContext.isolatedRoot\n }));\n try {\n const result = cook(precooked.expression, precooked.source, {\n globalVariables: supply(precooked.attemptToVisitGlobals, globalVariables)\n });\n const detail = {\n raw,\n context: globalVariables,\n result\n };\n devtoolsHookEmit(\"evaluation\", detail);\n return result;\n } catch (error) {\n const message = `${error.message}, in \"${raw}\"`;\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n }\n }\n };\n}\n//# sourceMappingURL=evaluate.js.map","export let StateOfUseBrick = /*#__PURE__*/function (StateOfUseBrick) {\n StateOfUseBrick[StateOfUseBrick[\"INITIAL\"] = 0] = \"INITIAL\";\n StateOfUseBrick[StateOfUseBrick[\"USE_BRICK\"] = 1] = \"USE_BRICK\";\n StateOfUseBrick[StateOfUseBrick[\"USE_BRICK_ITEM\"] = 2] = \"USE_BRICK_ITEM\";\n StateOfUseBrick[StateOfUseBrick[\"USE_BRICK_PROPERTIES\"] = 3] = \"USE_BRICK_PROPERTIES\";\n // Compatible mode\n StateOfUseBrick[StateOfUseBrick[\"USE_BRICK_TRANSFORM\"] = 4] = \"USE_BRICK_TRANSFORM\";\n StateOfUseBrick[StateOfUseBrick[\"USE_BRICK_EVENTS\"] = 5] = \"USE_BRICK_EVENTS\";\n StateOfUseBrick[StateOfUseBrick[\"USE_BRICK_IF\"] = 6] = \"USE_BRICK_IF\";\n StateOfUseBrick[StateOfUseBrick[\"USE_BRICK_SLOTS\"] = 7] = \"USE_BRICK_SLOTS\";\n StateOfUseBrick[StateOfUseBrick[\"USE_BRICK_SLOTS_ITEM\"] = 8] = \"USE_BRICK_SLOTS_ITEM\";\n StateOfUseBrick[StateOfUseBrick[\"USE_BRICK_SLOTS_ITEM_BRICKS\"] = 9] = \"USE_BRICK_SLOTS_ITEM_BRICKS\";\n StateOfUseBrick[StateOfUseBrick[\"USE_BRICK_SLOTS_ITEM_BRICKS_ITEM\"] = 10] = \"USE_BRICK_SLOTS_ITEM_BRICKS_ITEM\";\n StateOfUseBrick[StateOfUseBrick[\"USE_BRICK_LIFECYCLE\"] = 11] = \"USE_BRICK_LIFECYCLE\";\n StateOfUseBrick[StateOfUseBrick[\"USE_BRICK_DATA_SOURCE\"] = 12] = \"USE_BRICK_DATA_SOURCE\";\n return StateOfUseBrick;\n}({});\nexport function isLazyContentInUseBrick(state) {\n switch (state) {\n case StateOfUseBrick.USE_BRICK_PROPERTIES:\n case StateOfUseBrick.USE_BRICK_TRANSFORM:\n case StateOfUseBrick.USE_BRICK_EVENTS:\n case StateOfUseBrick.USE_BRICK_IF:\n case StateOfUseBrick.USE_BRICK_LIFECYCLE:\n case StateOfUseBrick.USE_BRICK_DATA_SOURCE:\n return true;\n }\n return false;\n}\nexport function getNextStateOfUseBrick(state, isArray, key) {\n if (isLazyContentInUseBrick(state)) {\n return state;\n }\n if (isArray) {\n switch (state) {\n case StateOfUseBrick.USE_BRICK:\n return StateOfUseBrick.USE_BRICK_ITEM;\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS:\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS_ITEM;\n }\n } else {\n switch (state) {\n case StateOfUseBrick.INITIAL:\n if (key === \"useBrick\") {\n return StateOfUseBrick.USE_BRICK;\n }\n break;\n case StateOfUseBrick.USE_BRICK:\n case StateOfUseBrick.USE_BRICK_ITEM:\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS_ITEM:\n {\n switch (key) {\n case \"properties\":\n return StateOfUseBrick.USE_BRICK_PROPERTIES;\n case \"transform\":\n return StateOfUseBrick.USE_BRICK_TRANSFORM;\n case \"dataSource\":\n return StateOfUseBrick.USE_BRICK_DATA_SOURCE;\n case \"events\":\n return StateOfUseBrick.USE_BRICK_EVENTS;\n case \"slots\":\n return StateOfUseBrick.USE_BRICK_SLOTS;\n case \"children\":\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS;\n case \"if\":\n return StateOfUseBrick.USE_BRICK_IF;\n case \"lifeCycle\":\n return StateOfUseBrick.USE_BRICK_LIFECYCLE;\n }\n break;\n }\n case StateOfUseBrick.USE_BRICK_SLOTS:\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM;\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM:\n if (key === \"bricks\") {\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS;\n }\n break;\n }\n }\n return StateOfUseBrick.INITIAL;\n}\n//# sourceMappingURL=getNextStateOfUseBrick.js.map","import { omit, pick } from \"lodash\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { transformAndInject, transform, inject } from \"@next-core/inject\";\nimport { asyncEvaluate, isPreEvaluated, evaluate, shouldDismissMarkingComputed } from \"./evaluate.js\";\nimport { getNextStateOfUseBrick, isLazyContentInUseBrick } from \"./getNextStateOfUseBrick.js\";\nimport { hasBeenComputed, markAsComputed } from \"./markAsComputed.js\";\nimport { _internalApiGetRuntimeContext } from \"../Runtime.js\";\nconst penetrableCtxNames = [\"app\", \"location\", \"query\", \"match\", \"flags\", \"sys\"];\nexport async function asyncComputeRealValue(value, runtimeContext) {\n let internalOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const preEvaluated = isPreEvaluated(value);\n if (preEvaluated || typeof value === \"string\") {\n // For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,\n // are kept and to be evaluated later.\n const lazy = internalOptions.$$lazyForUseBrick && isLazyContentInUseBrick(internalOptions.$$stateOfUseBrick);\n let result;\n let dismissMarkingComputed = lazy;\n if (preEvaluated || isEvaluable(value)) {\n result = await asyncEvaluate(value, runtimeContext, {\n lazy\n });\n dismissMarkingComputed = shouldDismissMarkingComputed(value);\n } else if (lazy) {\n result = value;\n } else {\n const penetrableCtx = runtimeContext.unsafe_penetrate ? {\n ...pick(_internalApiGetRuntimeContext(), penetrableCtxNames),\n ...omit(runtimeContext, penetrableCtxNames)\n } : runtimeContext;\n result = (hasOwnProperty(penetrableCtx, \"data\") ? internalOptions.noInject ? transform : transformAndInject : internalOptions.noInject ? identity : inject)(value, penetrableCtx);\n }\n if (!dismissMarkingComputed) {\n markAsComputed(result);\n }\n return result;\n }\n if (!isObject(value) || hasBeenComputed(value) || typeof value === \"function\") {\n return value;\n }\n if (Array.isArray(value)) {\n const nextOptions = getNextComputeOptions(internalOptions, true);\n return Promise.all(value.map(v => asyncComputeRealValue(v, runtimeContext, nextOptions)));\n }\n return Object.fromEntries((await Promise.all(Object.entries(value).map(_ref => {\n let [k, v] = _ref;\n return Promise.all([asyncComputeRealValue(k, runtimeContext), asyncComputeRealValue(v, runtimeContext, getNextComputeOptions(internalOptions, false, k))]);\n }))).concat(internalOptions.ignoreSymbols ? [] : Object.getOwnPropertySymbols(value).map(k => [k, value[k]])));\n}\nexport function computeRealValue(value, runtimeContext) {\n let internalOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const preEvaluated = isPreEvaluated(value);\n if (preEvaluated || typeof value === \"string\") {\n // For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,\n // are kept and to be evaluated later.\n const lazy = internalOptions.$$lazyForUseBrick && isLazyContentInUseBrick(internalOptions.$$stateOfUseBrick);\n let result;\n let dismissMarkingComputed = lazy;\n if (preEvaluated || isEvaluable(value)) {\n result = evaluate(value, runtimeContext);\n dismissMarkingComputed = shouldDismissMarkingComputed(value);\n } else if (lazy) {\n result = value;\n } else {\n const penetrableCtx = runtimeContext.unsafe_penetrate ? {\n ...pick(_internalApiGetRuntimeContext(), penetrableCtxNames),\n ...omit(runtimeContext, penetrableCtxNames)\n } : runtimeContext;\n result = (hasOwnProperty(penetrableCtx, \"data\") ? internalOptions.noInject ? transform : transformAndInject : internalOptions.noInject ? identity : inject)(value, penetrableCtx);\n }\n if (!dismissMarkingComputed) {\n markAsComputed(result);\n }\n return result;\n }\n if (!isObject(value) || hasBeenComputed(value) || typeof value === \"function\") {\n return value;\n }\n if (Array.isArray(value)) {\n const nextOptions = getNextComputeOptions(internalOptions, true);\n return value.map(v => computeRealValue(v, runtimeContext, nextOptions));\n }\n return Object.fromEntries(Object.entries(value).map(_ref2 => {\n let [k, v] = _ref2;\n return [computeRealValue(k, runtimeContext), computeRealValue(v, runtimeContext, getNextComputeOptions(internalOptions, false, k))];\n }).concat(internalOptions.ignoreSymbols ? [] : Object.getOwnPropertySymbols(value).map(k => [k, value[k]])));\n}\nfunction getNextComputeOptions(internalOptions, isArray, key) {\n return internalOptions.$$lazyForUseBrick ? {\n ...internalOptions,\n $$stateOfUseBrick: getNextStateOfUseBrick(internalOptions.$$stateOfUseBrick, isArray, key)\n } : internalOptions;\n}\nfunction identity(value) {\n return value;\n}\n//# sourceMappingURL=computeRealValue.js.map","import { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { asyncComputeRealValue, computeRealValue } from \"./computeRealValue.js\";\nimport { isPreEvaluated } from \"./evaluate.js\";\nimport { resolveData } from \"../data/resolveData.js\";\nimport { getV2RuntimeFromDll } from \"../../getV2RuntimeFromDll.js\";\n\n/**\n * 包含 `if` 条件判断的对象。\n */\n\nexport async function asyncCheckIf(ifContainer, runtimeContext) {\n return !hasOwnProperty(ifContainer, \"if\") || !!(typeof ifContainer.if === \"string\" || isPreEvaluated(ifContainer.if) ? await asyncComputeRealValue(ifContainer.if, runtimeContext) : ifContainer.if);\n}\nexport function checkIf(ifContainer, runtimeContext) {\n return !hasOwnProperty(ifContainer, \"if\") || !!(typeof ifContainer.if === \"string\" || isPreEvaluated(ifContainer.if) ? computeRealValue(ifContainer.if, runtimeContext) : ifContainer.if);\n}\nexport function checkIfOfComputed(ifContainer) {\n return !hasOwnProperty(ifContainer, \"if\") || !!ifContainer.if;\n}\nexport async function asyncCheckBrickIf(brickConf, runtimeContext) {\n if (isObject(brickConf.if) && !isPreEvaluated(brickConf.if)) {\n const resolved = await resolveData(brickConf.if, runtimeContext);\n return checkIfOfComputed(resolved);\n }\n return asyncCheckIf(brickConf, runtimeContext);\n}\nfunction checkIfByTransformV3(ifContainer, data) {\n return checkIf(ifContainer, {\n data\n });\n}\n\n// istanbul ignore next\nfunction checkIfByTransformV2Factory() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return v2Kit.looseCheckIfByTransform;\n }\n}\n\n// istanbul ignore next\nexport const checkIfByTransform = checkIfByTransformV2Factory() || checkIfByTransformV3;\n//# sourceMappingURL=checkIf.js.map","import { isEvaluable, isTrackAll } from \"@next-core/cook\";\nimport { track, trackAll } from \"@next-core/utils/storyboard\";\nimport { getPreEvaluatedRaw, isPreEvaluated } from \"./evaluate.js\";\nexport function getTracks(value) {\n let contextNames = false;\n let stateNames = false;\n let formStateNames = false;\n if (typeof value === \"string\" ? isEvaluable(value) : isPreEvaluated(value)) {\n const raw = typeof value === \"string\" ? value : getPreEvaluatedRaw(value);\n if (isTrackAll(raw)) {\n const result = trackAll(raw);\n if (result) {\n contextNames = result.context;\n stateNames = result.state;\n formStateNames = result.formState;\n }\n } else {\n contextNames = track(raw, \"track context\", \"CTX\");\n stateNames = track(raw, \"track state\", \"STATE\");\n formStateNames = track(raw, \"track formstate\", \"FORM_STATE\");\n }\n }\n return {\n contextNames,\n stateNames,\n formStateNames\n };\n}\n//# sourceMappingURL=getTracks.js.map","import { isObject } from \"@next-core/utils/general\";\nimport { asyncComputeRealValue, computeRealValue } from \"./computeRealValue.js\";\nimport { StateOfUseBrick } from \"./getNextStateOfUseBrick.js\";\nimport { getTracks } from \"./getTracks.js\";\nexport function asyncComputeRealPropertyEntries(properties, runtimeContext, trackingContextList) {\n if (isObject(properties)) {\n return Object.entries(properties).map(_ref => {\n let [propName, propValue] = _ref;\n const {\n contextNames,\n stateNames,\n formStateNames\n } = getTracks(propValue);\n if (contextNames || stateNames || formStateNames) {\n trackingContextList.push({\n contextNames,\n stateNames,\n formStateNames,\n propName,\n propValue\n });\n }\n // Related: https://github.com/facebook/react/issues/11347\n const asyncValue = asyncComputeRealValue(propValue, runtimeContext, {\n $$lazyForUseBrick: true,\n $$stateOfUseBrick: propName === \"useBrick\" ? StateOfUseBrick.USE_BRICK : StateOfUseBrick.INITIAL\n });\n return [propName, asyncValue];\n });\n }\n return [];\n}\nexport async function computePropertyValue(asyncPropertyEntries, propName) {\n for (const [name, asyncValue, ignoreUndefined] of asyncPropertyEntries) {\n if (name === propName) {\n const value = await asyncValue;\n if (value !== undefined || !ignoreUndefined) {\n return value;\n }\n }\n }\n}\nexport async function constructAsyncProperties(asyncPropertyEntries) {\n const props = {};\n for (const [propName, asyncValue, ignoreUndefined] of asyncPropertyEntries) {\n const value = await asyncValue;\n if ((value !== undefined || !ignoreUndefined) && (\n // For `style` and `dataset`, only object is acceptable.\n propName !== \"style\" && propName !== \"dataset\" || isObject(value))) {\n props[propName] = value;\n }\n }\n return props;\n}\nexport function computeRealProperties(properties, runtimeContext) {\n if (isObject(properties)) {\n return Object.fromEntries(Object.entries(properties).map(_ref2 => {\n let [propName, propValue] = _ref2;\n // Related: https://github.com/facebook/react/issues/11347\n const realValue = computeRealValue(propValue, runtimeContext, {\n $$lazyForUseBrick: true,\n $$stateOfUseBrick: propName === \"useBrick\" ? StateOfUseBrick.USE_BRICK : StateOfUseBrick.INITIAL\n });\n // For `style` and `dataset`, only object is acceptable.\n if (propName !== \"style\" && propName !== \"dataset\" || isObject(realValue)) {\n return [propName, realValue];\n }\n }).filter(Boolean));\n }\n return {};\n}\n//# sourceMappingURL=computeRealProperties.js.map","export function setRealProperties(brick, realProps) {\n if (!realProps) {\n return;\n }\n for (const [propName, propValue] of Object.entries(realProps)) {\n switch (propName) {\n case \"style\":\n case \"dataset\":\n for (const [k, v] of Object.entries(propValue)) {\n if (propName === \"style\") {\n setValueForStyle(brick.style, k, v);\n } else {\n brick[propName][k] = v;\n }\n }\n break;\n case \"constructor\":\n case \"__proto__\":\n case \"innerHTML\":\n // `innerHTML` is dangerous, use `textContent` instead.\n throw new Error(`set \\`${propName}\\` is prohibited`);\n default:\n brick[propName] = propValue;\n }\n }\n}\nexport function setValueForStyle(style, key, value) {\n if (key.startsWith(\"--\")) {\n style.setProperty(key, value);\n } else if (key === \"float\") {\n style.cssFloat = value;\n } else {\n style[key] = value;\n }\n}\n//# sourceMappingURL=setRealProperties.js.map","import { computeRealProperties } from \"./computeRealProperties.js\";\nimport { setRealProperties } from \"./setRealProperties.js\";\nexport function setProperties(bricks, properties, runtimeContext) {\n const realProps = computeRealProperties(properties, runtimeContext);\n if (!Array.isArray(bricks)) {\n bricks = [bricks];\n }\n bricks.forEach(brick => {\n setRealProperties(brick, realProps);\n });\n}\n//# sourceMappingURL=setProperties.js.map","import { setProperties } from \"./setProperties.js\";\nimport { getTplStateStore } from \"../CustomTemplates/utils.js\";\nimport { getFormStateStore } from \"../FormRenderer/utils.js\";\nexport function listenOnTrackingContext(brick, trackingContextList) {\n for (const track of trackingContextList) {\n var _brick$disposes;\n const listener = () => {\n if (brick.element) {\n setProperties(brick.element, {\n [track.propName]: track.propValue\n }, brick.runtimeContext);\n }\n };\n (_brick$disposes = brick.disposes) !== null && _brick$disposes !== void 0 ? _brick$disposes : brick.disposes = [];\n if (track.contextNames) {\n for (const contextName of track.contextNames) {\n brick.disposes.push(brick.runtimeContext.ctxStore.onChange(contextName, listener));\n }\n }\n if (track.stateNames) {\n const tplStateStore = getTplStateStore(brick.runtimeContext, \"STATE\", `: \"${track.propValue}\"`);\n for (const stateName of track.stateNames) {\n brick.disposes.push(tplStateStore.onChange(stateName, listener));\n }\n }\n if (track.formStateNames) {\n const formStateStore = getFormStateStore(brick.runtimeContext, \"FORM_STATE\", `: \"${track.propValue}\"`);\n for (const stateName of track.formStateNames) {\n brick.disposes.push(formStateStore.onChange(stateName, listener));\n }\n }\n }\n}\nexport function trackAfterInitial(runtimeContext, trackingContextList, initialTracker) {\n if (!initialTracker) {\n return;\n }\n for (const {\n contextNames,\n stateNames,\n propValue\n } of trackingContextList) {\n if (contextNames) {\n for (const contextName of contextNames) {\n initialTracker.disposes.push(runtimeContext.ctxStore.onChange(contextName, initialTracker.listener));\n }\n }\n if (stateNames) {\n for (const stateName of stateNames) {\n const tplStateStore = getTplStateStore(runtimeContext, \"STATE\", `: \"${propValue}\"`);\n initialTracker.disposes.push(tplStateStore.onChange(stateName, initialTracker.listener));\n }\n }\n }\n}\n//# sourceMappingURL=listenOnTrackingContext.js.map","/**\n * Tokenize input string.\n */\nfunction lexer(str) {\n var tokens = [];\n var i = 0;\n while (i < str.length) {\n var char = str[i];\n if (char === \"*\" || char === \"+\" || char === \"?\") {\n tokens.push({ type: \"MODIFIER\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"\\\\\") {\n tokens.push({ type: \"ESCAPED_CHAR\", index: i++, value: str[i++] });\n continue;\n }\n if (char === \"{\") {\n tokens.push({ type: \"OPEN\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"}\") {\n tokens.push({ type: \"CLOSE\", index: i, value: str[i++] });\n continue;\n }\n if (char === \":\") {\n var name = \"\";\n var j = i + 1;\n while (j < str.length) {\n var code = str.charCodeAt(j);\n if (\n // `0-9`\n (code >= 48 && code <= 57) ||\n // `A-Z`\n (code >= 65 && code <= 90) ||\n // `a-z`\n (code >= 97 && code <= 122) ||\n // `_`\n code === 95) {\n name += str[j++];\n continue;\n }\n break;\n }\n if (!name)\n throw new TypeError(\"Missing parameter name at \".concat(i));\n tokens.push({ type: \"NAME\", index: i, value: name });\n i = j;\n continue;\n }\n if (char === \"(\") {\n var count = 1;\n var pattern = \"\";\n var j = i + 1;\n if (str[j] === \"?\") {\n throw new TypeError(\"Pattern cannot start with \\\"?\\\" at \".concat(j));\n }\n while (j < str.length) {\n if (str[j] === \"\\\\\") {\n pattern += str[j++] + str[j++];\n continue;\n }\n if (str[j] === \")\") {\n count--;\n if (count === 0) {\n j++;\n break;\n }\n }\n else if (str[j] === \"(\") {\n count++;\n if (str[j + 1] !== \"?\") {\n throw new TypeError(\"Capturing groups are not allowed at \".concat(j));\n }\n }\n pattern += str[j++];\n }\n if (count)\n throw new TypeError(\"Unbalanced pattern at \".concat(i));\n if (!pattern)\n throw new TypeError(\"Missing pattern at \".concat(i));\n tokens.push({ type: \"PATTERN\", index: i, value: pattern });\n i = j;\n continue;\n }\n tokens.push({ type: \"CHAR\", index: i, value: str[i++] });\n }\n tokens.push({ type: \"END\", index: i, value: \"\" });\n return tokens;\n}\n/**\n * Parse a string for the raw tokens.\n */\nexport function parse(str, options) {\n if (options === void 0) { options = {}; }\n var tokens = lexer(str);\n var _a = options.prefixes, prefixes = _a === void 0 ? \"./\" : _a, _b = options.delimiter, delimiter = _b === void 0 ? \"/#?\" : _b;\n var result = [];\n var key = 0;\n var i = 0;\n var path = \"\";\n var tryConsume = function (type) {\n if (i < tokens.length && tokens[i].type === type)\n return tokens[i++].value;\n };\n var mustConsume = function (type) {\n var value = tryConsume(type);\n if (value !== undefined)\n return value;\n var _a = tokens[i], nextType = _a.type, index = _a.index;\n throw new TypeError(\"Unexpected \".concat(nextType, \" at \").concat(index, \", expected \").concat(type));\n };\n var consumeText = function () {\n var result = \"\";\n var value;\n while ((value = tryConsume(\"CHAR\") || tryConsume(\"ESCAPED_CHAR\"))) {\n result += value;\n }\n return result;\n };\n var isSafe = function (value) {\n for (var _i = 0, delimiter_1 = delimiter; _i < delimiter_1.length; _i++) {\n var char = delimiter_1[_i];\n if (value.indexOf(char) > -1)\n return true;\n }\n return false;\n };\n var safePattern = function (prefix) {\n var prev = result[result.length - 1];\n var prevText = prefix || (prev && typeof prev === \"string\" ? prev : \"\");\n if (prev && !prevText) {\n throw new TypeError(\"Must have text between two parameters, missing text after \\\"\".concat(prev.name, \"\\\"\"));\n }\n if (!prevText || isSafe(prevText))\n return \"[^\".concat(escapeString(delimiter), \"]+?\");\n return \"(?:(?!\".concat(escapeString(prevText), \")[^\").concat(escapeString(delimiter), \"])+?\");\n };\n while (i < tokens.length) {\n var char = tryConsume(\"CHAR\");\n var name = tryConsume(\"NAME\");\n var pattern = tryConsume(\"PATTERN\");\n if (name || pattern) {\n var prefix = char || \"\";\n if (prefixes.indexOf(prefix) === -1) {\n path += prefix;\n prefix = \"\";\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n result.push({\n name: name || key++,\n prefix: prefix,\n suffix: \"\",\n pattern: pattern || safePattern(prefix),\n modifier: tryConsume(\"MODIFIER\") || \"\",\n });\n continue;\n }\n var value = char || tryConsume(\"ESCAPED_CHAR\");\n if (value) {\n path += value;\n continue;\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n var open = tryConsume(\"OPEN\");\n if (open) {\n var prefix = consumeText();\n var name_1 = tryConsume(\"NAME\") || \"\";\n var pattern_1 = tryConsume(\"PATTERN\") || \"\";\n var suffix = consumeText();\n mustConsume(\"CLOSE\");\n result.push({\n name: name_1 || (pattern_1 ? key++ : \"\"),\n pattern: name_1 && !pattern_1 ? safePattern(prefix) : pattern_1,\n prefix: prefix,\n suffix: suffix,\n modifier: tryConsume(\"MODIFIER\") || \"\",\n });\n continue;\n }\n mustConsume(\"END\");\n }\n return result;\n}\n/**\n * Compile a string to a template function for the path.\n */\nexport function compile(str, options) {\n return tokensToFunction(parse(str, options), options);\n}\n/**\n * Expose a method for transforming tokens into the path function.\n */\nexport function tokensToFunction(tokens, options) {\n if (options === void 0) { options = {}; }\n var reFlags = flags(options);\n var _a = options.encode, encode = _a === void 0 ? function (x) { return x; } : _a, _b = options.validate, validate = _b === void 0 ? true : _b;\n // Compile all the tokens into regexps.\n var matches = tokens.map(function (token) {\n if (typeof token === \"object\") {\n return new RegExp(\"^(?:\".concat(token.pattern, \")$\"), reFlags);\n }\n });\n return function (data) {\n var path = \"\";\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (typeof token === \"string\") {\n path += token;\n continue;\n }\n var value = data ? data[token.name] : undefined;\n var optional = token.modifier === \"?\" || token.modifier === \"*\";\n var repeat = token.modifier === \"*\" || token.modifier === \"+\";\n if (Array.isArray(value)) {\n if (!repeat) {\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to not repeat, but got an array\"));\n }\n if (value.length === 0) {\n if (optional)\n continue;\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to not be empty\"));\n }\n for (var j = 0; j < value.length; j++) {\n var segment = encode(value[j], token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected all \\\"\".concat(token.name, \"\\\" to match \\\"\").concat(token.pattern, \"\\\", but got \\\"\").concat(segment, \"\\\"\"));\n }\n path += token.prefix + segment + token.suffix;\n }\n continue;\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n var segment = encode(String(value), token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to match \\\"\").concat(token.pattern, \"\\\", but got \\\"\").concat(segment, \"\\\"\"));\n }\n path += token.prefix + segment + token.suffix;\n continue;\n }\n if (optional)\n continue;\n var typeOfMessage = repeat ? \"an array\" : \"a string\";\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to be \").concat(typeOfMessage));\n }\n return path;\n };\n}\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nexport function match(str, options) {\n var keys = [];\n var re = pathToRegexp(str, keys, options);\n return regexpToFunction(re, keys, options);\n}\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nexport function regexpToFunction(re, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.decode, decode = _a === void 0 ? function (x) { return x; } : _a;\n return function (pathname) {\n var m = re.exec(pathname);\n if (!m)\n return false;\n var path = m[0], index = m.index;\n var params = Object.create(null);\n var _loop_1 = function (i) {\n if (m[i] === undefined)\n return \"continue\";\n var key = keys[i - 1];\n if (key.modifier === \"*\" || key.modifier === \"+\") {\n params[key.name] = m[i].split(key.prefix + key.suffix).map(function (value) {\n return decode(value, key);\n });\n }\n else {\n params[key.name] = decode(m[i], key);\n }\n };\n for (var i = 1; i < m.length; i++) {\n _loop_1(i);\n }\n return { path: path, index: index, params: params };\n };\n}\n/**\n * Escape a regular expression string.\n */\nfunction escapeString(str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\n/**\n * Get the flags for a regexp from the options.\n */\nfunction flags(options) {\n return options && options.sensitive ? \"\" : \"i\";\n}\n/**\n * Pull out keys from a regexp.\n */\nfunction regexpToRegexp(path, keys) {\n if (!keys)\n return path;\n var groupsRegex = /\\((?:\\?<(.*?)>)?(?!\\?)/g;\n var index = 0;\n var execResult = groupsRegex.exec(path.source);\n while (execResult) {\n keys.push({\n // Use parenthesized substring match if available, index otherwise\n name: execResult[1] || index++,\n prefix: \"\",\n suffix: \"\",\n modifier: \"\",\n pattern: \"\",\n });\n execResult = groupsRegex.exec(path.source);\n }\n return path;\n}\n/**\n * Transform an array into a regexp.\n */\nfunction arrayToRegexp(paths, keys, options) {\n var parts = paths.map(function (path) { return pathToRegexp(path, keys, options).source; });\n return new RegExp(\"(?:\".concat(parts.join(\"|\"), \")\"), flags(options));\n}\n/**\n * Create a path regexp from string input.\n */\nfunction stringToRegexp(path, keys, options) {\n return tokensToRegexp(parse(path, options), keys, options);\n}\n/**\n * Expose a function for taking tokens and returning a RegExp.\n */\nexport function tokensToRegexp(tokens, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function (x) { return x; } : _d, _e = options.delimiter, delimiter = _e === void 0 ? \"/#?\" : _e, _f = options.endsWith, endsWith = _f === void 0 ? \"\" : _f;\n var endsWithRe = \"[\".concat(escapeString(endsWith), \"]|$\");\n var delimiterRe = \"[\".concat(escapeString(delimiter), \"]\");\n var route = start ? \"^\" : \"\";\n // Iterate over the tokens and create our regexp string.\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n if (typeof token === \"string\") {\n route += escapeString(encode(token));\n }\n else {\n var prefix = escapeString(encode(token.prefix));\n var suffix = escapeString(encode(token.suffix));\n if (token.pattern) {\n if (keys)\n keys.push(token);\n if (prefix || suffix) {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n var mod = token.modifier === \"*\" ? \"?\" : \"\";\n route += \"(?:\".concat(prefix, \"((?:\").concat(token.pattern, \")(?:\").concat(suffix).concat(prefix, \"(?:\").concat(token.pattern, \"))*)\").concat(suffix, \")\").concat(mod);\n }\n else {\n route += \"(?:\".concat(prefix, \"(\").concat(token.pattern, \")\").concat(suffix, \")\").concat(token.modifier);\n }\n }\n else {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n throw new TypeError(\"Can not repeat \\\"\".concat(token.name, \"\\\" without a prefix and suffix\"));\n }\n route += \"(\".concat(token.pattern, \")\").concat(token.modifier);\n }\n }\n else {\n route += \"(?:\".concat(prefix).concat(suffix, \")\").concat(token.modifier);\n }\n }\n }\n if (end) {\n if (!strict)\n route += \"\".concat(delimiterRe, \"?\");\n route += !options.endsWith ? \"$\" : \"(?=\".concat(endsWithRe, \")\");\n }\n else {\n var endToken = tokens[tokens.length - 1];\n var isEndDelimited = typeof endToken === \"string\"\n ? delimiterRe.indexOf(endToken[endToken.length - 1]) > -1\n : endToken === undefined;\n if (!strict) {\n route += \"(?:\".concat(delimiterRe, \"(?=\").concat(endsWithRe, \"))?\");\n }\n if (!isEndDelimited) {\n route += \"(?=\".concat(delimiterRe, \"|\").concat(endsWithRe, \")\");\n }\n }\n return new RegExp(route, flags(options));\n}\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n */\nexport function pathToRegexp(path, keys, options) {\n if (path instanceof RegExp)\n return regexpToRegexp(path, keys);\n if (Array.isArray(path))\n return arrayToRegexp(path, keys, options);\n return stringToRegexp(path, keys, options);\n}\n//# sourceMappingURL=index.js.map","// Ref https://github.com/ReactTraining/react-router/blob/master/packages/react-router/modules/matchPath.js\n\nimport { pathToRegexp, compile } from \"path-to-regexp\";\nconst cache = new Map();\nconst cacheLimit = 10000;\nlet cacheCount = 0;\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n let pathCache = cache.get(cacheKey);\n if (!pathCache) {\n cache.set(cacheKey, pathCache = new Map());\n }\n const cacheResult = pathCache.get(path);\n if (cacheResult) {\n return cacheResult;\n }\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = {\n regexp,\n keys\n };\n if (cacheCount < cacheLimit) {\n pathCache.set(path, result);\n cacheCount++;\n }\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nexport function matchPath(pathname, options) {\n const {\n path: p,\n exact = false,\n strict = false,\n sensitive = true\n } = options;\n const paths = Array.isArray(p) ? p : [p];\n return paths.reduce((matched, path) => {\n if (matched) {\n return matched;\n }\n const {\n regexp,\n keys\n } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n if (!match) {\n return null;\n }\n const [url, ...values] = match;\n const isExact = pathname === url;\n if (exact && !isExact) {\n return null;\n }\n const initialParams = {};\n const result = {\n path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact,\n // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, initialParams)\n };\n return result;\n }, null);\n}\nexport function toPath(path, pathParams) {\n return compile(path)(pathParams);\n}\n//# sourceMappingURL=matchPath.js.map","import { matchPath } from \"./matchPath.js\";\nimport { asyncCheckIf } from \"./compute/checkIf.js\";\nimport { hooks } from \"./Runtime.js\";\nexport async function matchRoutes(routes, runtimeContext) {\n for (const route of routes) {\n if (typeof route.path !== \"string\") {\n // eslint-disable-next-line no-console\n console.error(\"Invalid route with invalid path:\", route);\n throw new Error(`Invalid route with invalid type of path: ${typeof route.path}`);\n }\n const match = matchRoute(route, runtimeContext.app.homepage, runtimeContext.location.pathname);\n if (match && (await asyncCheckIf(route, runtimeContext))) {\n if (runtimeContext.app.noAuthGuard || route.public || !(hooks !== null && hooks !== void 0 && hooks.auth) || hooks.auth.isLoggedIn()) {\n return {\n match,\n route\n };\n }\n return \"unauthenticated\";\n }\n }\n return \"missed\";\n}\nexport function matchRoute(route, homepage, pathname) {\n const routePath = route.path.replace(/^\\$\\{APP.homepage\\}/, homepage);\n return matchPath(pathname, {\n path: routePath,\n exact: route.exact\n });\n}\n//# sourceMappingURL=matchRoutes.js.map","export const symbolForAsyncComputedPropsFromHost = Symbol.for(\"tpl.asyncComputedPropsFromHost\");\nexport const symbolForTplStateStoreId = Symbol.for(\"tpl.stateStoreId\");\nexport const symbolForTPlExternalForEachItem = Symbol.for(\"tpl.externalForEachItem\");\nexport const symbolForTPlExternalForEachIndex = Symbol.for(\"tpl.externalForEachIndex\");\nexport const symbolForTPlExternalForEachSize = Symbol.for(\"tpl.externalForEachSize\");\n//# sourceMappingURL=constants.js.map","import { pick } from \"lodash\";\nimport { _internalApiGetRenderId } from \"./Runtime.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nconst timeoutIdList = new Set();\nexport function startPoll(task, _ref, pollOptions, runtimeContext) {\n let {\n progress,\n success,\n error,\n finally: finallyCallback\n } = _ref;\n const {\n expectPollStopImmediately,\n expectPollEnd\n } = pollOptions;\n const {\n interval,\n leadingRequestDelay,\n continueOnError,\n delegateLoadingBar\n } = computeRealValue(pick(pollOptions, [\"interval\", \"leadingRequestDelay\", \"continueOnError\", \"delegateLoadingBar\"]), runtimeContext);\n const currentRenderId = _internalApiGetRenderId();\n let currentTimeoutId;\n async function poll() {\n timeoutIdList.delete(currentTimeoutId);\n let shouldStop;\n try {\n var _computeRealValue;\n shouldStop = (_computeRealValue = computeRealValue(expectPollStopImmediately, runtimeContext)) === null || _computeRealValue === void 0 ? void 0 : _computeRealValue();\n // Stop polling immediately when the expectation is match before task.\n if (!shouldStop) {\n var _computeRealValue2;\n const result = await task();\n const expectPollStopImmediatelyResult = (_computeRealValue2 = computeRealValue(expectPollStopImmediately, runtimeContext)) === null || _computeRealValue2 === void 0 ? void 0 : _computeRealValue2();\n // Stop polling immediately when the expectation is match or a different router\n // is rendering after the task processed.\n shouldStop = expectPollStopImmediatelyResult || currentRenderId !== _internalApiGetRenderId();\n if (!shouldStop) {\n var _computeRealValue3;\n progress === null || progress === void 0 || progress(result);\n if ((_computeRealValue3 = computeRealValue(expectPollEnd, runtimeContext)) !== null && _computeRealValue3 !== void 0 && _computeRealValue3(result)) {\n if (delegateLoadingBar) {\n window.dispatchEvent(new Event(\"request.end\"));\n }\n success === null || success === void 0 || success(result);\n finallyCallback === null || finallyCallback === void 0 || finallyCallback();\n } else {\n delayedPoll(interval !== null && interval !== void 0 ? interval : 3000);\n }\n } else if (expectPollStopImmediatelyResult) {\n finallyCallback === null || finallyCallback === void 0 || finallyCallback();\n }\n } else {\n finallyCallback === null || finallyCallback === void 0 || finallyCallback();\n }\n } catch (e) {\n var _computeRealValue4;\n const expectPollStopImmediatelyResult = (_computeRealValue4 = computeRealValue(expectPollStopImmediately, runtimeContext)) === null || _computeRealValue4 === void 0 ? void 0 : _computeRealValue4();\n // Stop polling immediately when the expectation is match or a different router\n // is rendering after the task processed.\n shouldStop = expectPollStopImmediatelyResult || currentRenderId !== _internalApiGetRenderId();\n if (!shouldStop) {\n error === null || error === void 0 || error(e);\n if (continueOnError) {\n delayedPoll(interval !== null && interval !== void 0 ? interval : 3000);\n } else {\n finallyCallback === null || finallyCallback === void 0 || finallyCallback();\n }\n } else if (expectPollStopImmediatelyResult) {\n finallyCallback === null || finallyCallback === void 0 || finallyCallback();\n }\n } finally {\n // Manually dispatch an event of `request.end` when the polling is stopped immediately.\n if (delegateLoadingBar && shouldStop) {\n window.dispatchEvent(new Event(\"request.end\"));\n }\n }\n }\n function delayedPoll(delay) {\n currentTimeoutId = setTimeout(poll, delay);\n timeoutIdList.add(currentTimeoutId);\n }\n delayedPoll(leadingRequestDelay !== null && leadingRequestDelay !== void 0 ? leadingRequestDelay : 0);\n if (delegateLoadingBar) {\n window.dispatchEvent(new Event(\"request.start\"));\n }\n}\nexport function clearPollTimeout() {\n for (const timeoutId of timeoutIdList) {\n clearTimeout(timeoutId);\n }\n timeoutIdList.clear();\n}\n//# sourceMappingURL=poll.js.map","export let K = /*#__PURE__*/function (K) {\n K[\"REQUEST_FAILED\"] = \"REQUEST_FAILED\";\n K[\"SOMETHING_WENT_WRONG\"] = \"SOMETHING_WENT_WRONG\";\n K[\"LOGIN_TIMEOUT_MESSAGE\"] = \"LOGIN_TIMEOUT_MESSAGE\";\n K[\"NETWORK_ERROR\"] = \"NETWORK_ERROR\";\n K[\"LICENSE_EXPIRED\"] = \"LICENSE_EXPIRED\";\n K[\"LICENSE_BLOCKED\"] = \"LICENSE_BLOCKED\";\n K[\"NO_PERMISSION\"] = \"NO_PERMISSION\";\n K[\"PAGE_NOT_FOUND\"] = \"PAGE_NOT_FOUND\";\n K[\"APP_NOT_FOUND\"] = \"APP_NOT_FOUND\";\n K[\"UNKNOWN_ERROR\"] = \"UNKNOWN_ERROR\";\n K[\"GO_BACK_TO_PREVIOUS_PAGE\"] = \"GO_BACK_TO_PREVIOUS_PAGE\";\n K[\"GO_BACK_HOME\"] = \"GO_BACK_HOME\";\n K[\"RELOAD\"] = \"RELOAD\";\n return K;\n}({});\nconst en = {\n [K.REQUEST_FAILED]: \"Request Failed\",\n [K.SOMETHING_WENT_WRONG]: \"Something went wrong!\",\n [K.LOGIN_TIMEOUT_MESSAGE]: \"You haven't logged in or your login session has expired. Login right now?\",\n [K.NETWORK_ERROR]: \"Network error, please check your network.\",\n [K.LICENSE_EXPIRED]: \"The license authorization has expired, please contact the platform administrator\",\n [K.LICENSE_BLOCKED]: \"The page is not authorized, please contact the platform administrator\",\n [K.NO_PERMISSION]: \"Unauthorized access, unable to retrieve the required resources for this page\",\n [K.PAGE_NOT_FOUND]: \"Page not found, please check the URL\",\n [K.APP_NOT_FOUND]: \"App not found, maybe the URL is wrong or you don't have permission to access\",\n [K.UNKNOWN_ERROR]: \"Oops! Something went wrong\",\n [K.GO_BACK_TO_PREVIOUS_PAGE]: \"Go back to previous page\",\n [K.GO_BACK_HOME]: \"Go back to home page\",\n [K.RELOAD]: \"Reload\"\n};\nconst zh = {\n [K.REQUEST_FAILED]: \"请求失败\",\n [K.SOMETHING_WENT_WRONG]: \"出现了一些问题!\",\n [K.LOGIN_TIMEOUT_MESSAGE]: \"您还未登录或登录信息已过期,现在重新登录?\",\n [K.NETWORK_ERROR]: \"网络错误,请检查您的网络连接。\",\n [K.LICENSE_EXPIRED]: \"License 授权失效,请联系平台管理员\",\n [K.LICENSE_BLOCKED]: \"该页面未授权,请联系平台管理员\",\n [K.NO_PERMISSION]: \"没有权限,无法获取页面所需要的资源\",\n [K.PAGE_NOT_FOUND]: \"请求的页面未找到,请确认 URL 是否正确\",\n [K.APP_NOT_FOUND]: \"请求的微应用无法找到, 可能是 URL 错误或者无权限访问\",\n [K.UNKNOWN_ERROR]: \"糟糕!页面出现了一些问题\",\n [K.GO_BACK_TO_PREVIOUS_PAGE]: \"回到上一页\",\n [K.GO_BACK_HOME]: \"回到首页\",\n [K.RELOAD]: \"刷新\"\n};\nexport const NS = \"core/runtime\";\nexport const locales = {\n en,\n zh\n};\n//# sourceMappingURL=i18n.js.map","let brick;\nfunction show(options) {\n if (brick) {\n return brick.resolve(options);\n } else {\n if (options.type === \"confirm\") {\n const confirmed = confirm(options.content);\n return new Promise((resolve, reject) => setTimeout(() => {\n (confirmed ? resolve : reject)();\n }, 1));\n } else {\n alert(options.content);\n return new Promise(resolve => setTimeout(() => {\n resolve();\n }, 1));\n }\n }\n}\nexport function loadDialogService(tagName, loader) {\n loader([tagName]).then(() => {\n brick = document.createElement(tagName);\n }, error => {\n // eslint-disable-next-line no-console\n console.error(\"Load dialog service failed:\", error);\n });\n}\nexport const Dialog = Object.freeze({\n show\n});\n//# sourceMappingURL=Dialog.js.map","export function setLoginStateCookie(location) {\n // 独立打包应用 登录时间超时后还是由前端控制跳转,后台无法处理设置登录前的 path 和 query 的 cookie 值\n // 此这场景下前端做下处理\n\n const {\n search,\n pathname\n } = location;\n const pathValue = pathname ? window.btoa(encodeURIComponent(pathname)) : \"\";\n const searchValue = search ? window.btoa(encodeURIComponent(search)) : \"\";\n document.cookie = `SALOGINPATH=${pathValue}; path=/`;\n document.cookie = `SALOGINQUERY=${searchValue}; path=/`;\n}\n//# sourceMappingURL=setLoginStateCookie.js.map","import { HttpAbortError, HttpFetchError, HttpResponseError } from \"@next-core/http\";\nimport { i18n } from \"@next-core/i18n\";\nimport { getRuntime } from \"./internal/Runtime.js\";\nimport { getHistory } from \"./history.js\";\nimport { K, NS } from \"./internal/i18n.js\";\nimport { Dialog } from \"./Dialog.js\";\nimport { setLoginStateCookie } from \"./setLoginStateCookie.js\";\n\n/**\n * 将 http 请求错误转换为可读的字符串。\n *\n * @remarks\n *\n * 将依次尝试读取返回的 JSON 格式数据的字符串类型的 `error` 和 `msg` 字段,如果没有找到则返回 `error.toString()` 的结果。\n *\n * @param error - 错误对象。\n *\n * @returns 转换为字符串的错误信息。\n */\nexport function httpErrorToString(error) {\n if (error instanceof Event && error.target instanceof HTMLScriptElement) {\n return error.target.src;\n }\n if (error instanceof HttpFetchError) {\n return i18n.t(`${NS}:${K.NETWORK_ERROR}`);\n }\n if (error instanceof HttpResponseError) {\n if (error.responseJson) {\n if (typeof error.responseJson.error === \"string\") {\n return error.responseJson.error;\n } else if (typeof error.responseJson.msg === \"string\") {\n return error.responseJson.msg;\n }\n }\n }\n if (error == null) {\n return \"Unknown error\";\n }\n return error.toString();\n}\nexport function isUnauthenticatedError(error) {\n return error instanceof HttpResponseError && error.response.status === 401 && !!error.responseJson && error.responseJson.code === 100003;\n}\nlet unauthenticatedConfirming = false;\nlet lastErrorMessage;\n\n/**\n * 处理 http 请求错误(使用 AntDesign 模态框弹出错误信息)。\n *\n * @param error - 错误对象。\n */\nexport function handleHttpError(error) {\n // Do nothing if aborted http requests\n if (error instanceof HttpAbortError) {\n return;\n }\n\n // Redirect to login page if not logged in.\n if (isUnauthenticatedError(error) && !window.NO_AUTH_GUARD) {\n if (unauthenticatedConfirming) {\n return;\n }\n unauthenticatedConfirming = true;\n Dialog.show({\n type: \"confirm\",\n content: i18n.t(`${NS}:${K.LOGIN_TIMEOUT_MESSAGE}`)\n }).then(() => {\n redirectToLogin();\n unauthenticatedConfirming = false;\n }, () => {\n unauthenticatedConfirming = false;\n });\n return;\n }\n\n // eslint-disable-next-line no-console\n console.error(error);\n const message = httpErrorToString(error);\n if (message !== lastErrorMessage) {\n lastErrorMessage = message;\n Dialog.show({\n type: \"error\",\n title: i18n.t(`${NS}:${K.REQUEST_FAILED}`),\n content: message,\n contentStyle: {\n whiteSpace: \"pre-wrap\",\n wordBreak: \"break-word\"\n }\n }).then(() => {\n lastErrorMessage = undefined;\n });\n }\n return;\n}\nfunction redirectToLogin() {\n const ssoEnabled = getRuntime().getFeatureFlags()[\"sso-enabled\"];\n const history = getHistory();\n setLoginStateCookie(history.location);\n history.push(ssoEnabled ? \"/sso-auth/login\" : \"/auth/login\", {\n from: {\n ...history.location,\n state: undefined\n }\n });\n}\n//# sourceMappingURL=handleHttpError.js.map","let brick;\nfunction show(options) {\n if (brick) {\n brick.resolve(options);\n } else {\n alert(options.message);\n }\n}\nexport function loadNotificationService(tagName, loader) {\n loader([tagName]).then(() => {\n brick = document.createElement(tagName);\n }, error => {\n // eslint-disable-next-line no-console\n console.error(\"Load notification service failed:\", error);\n });\n}\nexport const Notification = Object.freeze({\n show\n});\n//# sourceMappingURL=Notification.js.map","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nclass DebugManager {\n static getInstance() {\n if (!DebugManager.instance) {\n DebugManager.instance = new DebugManager();\n }\n return DebugManager.instance;\n }\n constructor() {\n _defineProperty(this, \"debugMode\", false);\n _defineProperty(this, \"debugType\", \"none\");\n this.initDebugMode();\n this.setupWindowAPI();\n }\n initDebugMode() {\n // 1. 首先检查URL参数\n const urlParams = new URLSearchParams(window.location.search);\n const debugFromUrl = urlParams.get(\"__debugConsole__\");\n if (debugFromUrl === \"true\") {\n this.activateSessionDebug();\n return;\n }\n\n // 2. 检查localStorage(内部人员长期调试)\n const persistentDebug = localStorage.getItem(\"debugConsole\");\n if (persistentDebug === \"true\") {\n this.debugMode = true;\n this.debugType = \"persistent\";\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已开启(持久模式 - 内部调试)\");\n return;\n }\n\n // 3. 检查sessionStorage(客户临时调试)\n const sessionDebug = sessionStorage.getItem(\"debugConsole\");\n if (sessionDebug === \"true\") {\n this.debugMode = true;\n this.debugType = \"session\";\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已开启(会话模式 - 关闭标签页后失效)\");\n return;\n }\n\n // 4. 检查日志级别设置\n }\n activateSessionDebug() {\n this.debugMode = true;\n this.debugType = \"session\";\n sessionStorage.setItem(\"debugConsole\", \"true\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已通过URL参数激活(会话模式)\");\n }\n setupWindowAPI() {\n window.debugConsole = {\n // 开启会话调试模式(客户现场使用)\n enable: () => {\n this.debugMode = true;\n this.debugType = \"session\";\n sessionStorage.setItem(\"debugConsole\", \"true\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已开启(会话模式 - 关闭标签页后失效)\");\n return this.debugMode;\n },\n // 开启持久调试模式(内部人员使用)\n enablePersistent: () => {\n this.debugMode = true;\n this.debugType = \"persistent\";\n localStorage.setItem(\"debugConsole\", \"true\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已开启(持久模式 - 内部调试)\");\n return this.debugMode;\n },\n // 关闭调试模式\n disable: () => {\n this.debugMode = false;\n this.debugType = \"none\";\n sessionStorage.removeItem(\"debugConsole\");\n localStorage.removeItem(\"debugConsole\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已关闭\");\n return this.debugMode;\n },\n // 切换调试模式\n toggle: () => {\n if (this.debugMode) {\n this.debugMode = false;\n this.debugType = \"none\";\n sessionStorage.removeItem(\"debugConsole\");\n localStorage.removeItem(\"debugConsole\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已关闭\");\n } else {\n this.debugMode = true;\n this.debugType = \"session\";\n sessionStorage.setItem(\"debugConsole\", \"true\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已开启(会话模式 - 关闭标签页后失效)\");\n }\n return this.debugMode;\n },\n // 切换持久调试模式\n togglePersistent: () => {\n if (this.debugMode && this.debugType === \"persistent\") {\n this.debugMode = false;\n this.debugType = \"none\";\n sessionStorage.removeItem(\"debugConsole\");\n localStorage.removeItem(\"debugConsole\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已关闭\");\n } else {\n this.debugMode = true;\n this.debugType = \"persistent\";\n localStorage.setItem(\"debugConsole\", \"true\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已开启(持久模式 - 内部调试)\");\n }\n return this.debugMode;\n },\n // 获取当前状态\n status: () => {\n const status = {\n debugMode: this.debugMode,\n debugType: this.debugType,\n description: this.getStatusDescription()\n };\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试状态:\", status);\n return status;\n },\n // 帮助信息\n help: () => {\n // eslint-disable-next-line no-console\n console.log(`\n🔧 混合调试控制台使用说明:\n\n👥 生产环境使用(临时调试):\n window.debugConsole.enable() - 开启会话调试(关闭标签页后失效)\n window.debugConsole.disable() - 关闭调试模式\n window.debugConsole.toggle() - 切换会话调试模式\n\n👨‍💻 开发人员使用(长期调试):\n window.debugConsole.enablePersistent() - 开启持久调试(长期有效)\n window.debugConsole.togglePersistent() - 切换持久调试模式\n window.debugConsole.disable() - 关闭调试模式\n\n🔍 其他功能:\n window.debugConsole.status() - 查看当前状态\n window.debugConsole.help() - 显示此帮助信息\n\n🌐 URL参数:\n ?__debugConsole__=true - 通过URL激活会话调试模式\n\n📝 说明:\n - 会话模式:刷新页面后仍然有效,关闭标签页后失效\n - 持久模式:长期有效,除非手动关闭\n `);\n }\n };\n\n // 显示初始状态\n if (this.debugMode) {\n // eslint-disable-next-line no-console\n console.log(`🔧 调试模式已开启(${this.debugType === \"persistent\" ? \"持久模式\" : \"会话模式\"})`);\n } else if (process.env.NODE_ENV !== \"test\") {\n // eslint-disable-next-line no-console\n console.log(\"💡 提示:使用 window.debugConsole.help() 查看使用说明\");\n }\n }\n getStatusDescription() {\n if (!this.debugMode) {\n return \"调试模式已关闭\";\n }\n switch (this.debugType) {\n case \"persistent\":\n return \"持久模式 - 内部调试(长期有效)\";\n case \"session\":\n return \"会话模式 - 临时调试(关闭标签页后失效)\";\n default:\n return \"未知模式\";\n }\n }\n isDebugMode() {\n return this.debugMode;\n }\n getDebugType() {\n return this.debugType;\n }\n shouldLog(method) {\n return method === \"error\" ? true : this.debugMode;\n }\n}\n_defineProperty(DebugManager, \"instance\", void 0);\nexport const debugManager = DebugManager.getInstance();\n//# sourceMappingURL=debugManager.js.map","import { isEvaluable } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nimport { pick } from \"lodash\";\nimport { checkIf } from \"./compute/checkIf.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { getHistory } from \"../history.js\";\nimport { getProviderBrick } from \"./data/getProviderBrick.js\";\nimport { startPoll } from \"./poll.js\";\nimport { isPreEvaluated } from \"./compute/evaluate.js\";\nimport { setProperties } from \"./compute/setProperties.js\";\nimport { applyMode, applyTheme } from \"../themeAndMode.js\";\nimport { getTplHostElement, getTplStateStore } from \"./CustomTemplates/utils.js\";\nimport { handleHttpError } from \"../handleHttpError.js\";\nimport { Notification } from \"../Notification.js\";\nimport { getFormStateStore } from \"./FormRenderer/utils.js\";\nimport { hooks } from \"./Runtime.js\";\nimport { startSSEStream } from \"./sse.js\";\nimport { debugManager } from \"./debugManager.js\";\nexport function bindListeners(brick, eventsMap, runtimeContext) {\n if (!eventsMap) {\n return;\n }\n Object.entries(eventsMap).forEach(_ref => {\n let [eventType, handlers] = _ref;\n const listener = listenerFactory(handlers, runtimeContext, {\n element: brick\n });\n brick.addEventListener(eventType, listener);\n\n // Remember added listeners for unbinding.\n if (!brick.$$listeners) {\n brick.$$listeners = [];\n }\n brick.$$listeners.push([eventType, listener]);\n\n // Remember added listeners for devtools.\n if (!brick.$$eventListeners) {\n brick.$$eventListeners = [];\n }\n for (const handler of [].concat(handlers)) {\n brick.$$eventListeners.push([eventType, null, handler]);\n }\n });\n}\nexport function unbindListeners(brick) {\n if (brick.$$listeners) {\n for (const [eventType, listener] of brick.$$listeners) {\n brick.removeEventListener(eventType, listener);\n }\n brick.$$listeners.length = 0;\n }\n}\nexport function isBuiltinHandler(handler) {\n return typeof handler.action === \"string\";\n}\nexport function isUseProviderHandler(handler) {\n return typeof handler.useProvider === \"string\";\n}\nexport function isCustomHandler(handler) {\n return !!((handler.target || handler.targetRef) && (handler.method || handler.properties));\n}\nexport function isExecuteCustomHandler(handler) {\n return !!handler.method;\n}\nexport function isSetPropsCustomHandler(handler) {\n return !!handler.properties;\n}\nexport function isConditionalEventHandler(handler) {\n return !!handler.then;\n}\nexport function listenerFactory(handlers, runtimeContext, runtimeBrick) {\n return function (event) {\n var _handler$batch, _handler$batch2;\n for (const handler of [].concat(handlers)) {\n if (!checkIf(handler, {\n ...runtimeContext,\n event\n })) {\n if (handler.else) {\n listenerFactory(handler.else, runtimeContext, runtimeBrick)(event);\n }\n continue;\n }\n if (isConditionalEventHandler(handler)) {\n listenerFactory(handler.then, runtimeContext, runtimeBrick)(event);\n } else if (isBuiltinHandler(handler)) {\n const [object, method] = handler.action.split(\".\");\n switch (handler.action) {\n case \"history.push\":\n case \"history.replace\":\n case \"history.pushQuery\":\n case \"history.replaceQuery\":\n case \"history.pushAnchor\":\n case \"history.block\":\n case \"history.goBack\":\n case \"history.goForward\":\n case \"history.reload\":\n case \"history.unblock\":\n handleHistoryAction(event, method, handler.args, handler.callback, runtimeContext);\n break;\n\n // case \"segue.push\":\n // case \"segue.replace\":\n // case \"alias.push\":\n // case \"alias.replace\":\n\n case \"window.open\":\n handleWindowOpenAction(event, handler.args, runtimeContext);\n break;\n case \"window.postMessage\":\n handleWindowPostMessageAction(event, handler.args, runtimeContext);\n break;\n case \"parent.postMessage\":\n handleParentPostMessageAction(event, handler.args, runtimeContext);\n break;\n case \"location.reload\":\n case \"location.assign\":\n handleLocationAction(event, method, handler.args, runtimeContext);\n break;\n case \"localStorage.setItem\":\n case \"localStorage.removeItem\":\n case \"sessionStorage.setItem\":\n case \"sessionStorage.removeItem\":\n handleStorageAction(event, object, method, handler.args, runtimeContext);\n break;\n case \"event.preventDefault\":\n event.preventDefault();\n break;\n case \"event.stopPropagation\":\n event.stopPropagation();\n break;\n case \"console.log\":\n case \"console.error\":\n case \"console.warn\":\n case \"console.info\":\n handleConsoleAction(event, method, handler.args, runtimeContext);\n break;\n case \"message.success\":\n case \"message.error\":\n case \"message.info\":\n case \"message.warn\":\n handleMessageAction(event, method, handler.args, runtimeContext);\n break;\n case \"handleHttpError\":\n handleHttpError(event.detail);\n break;\n case \"context.assign\":\n case \"context.replace\":\n case \"context.refresh\":\n case \"context.load\":\n case \"context.set\":\n handleContextAction(event, method, handler.args, (_handler$batch = handler.batch) !== null && _handler$batch !== void 0 ? _handler$batch : true, handler.callback, runtimeContext);\n break;\n case \"state.update\":\n case \"state.refresh\":\n case \"state.load\":\n case \"state.set\":\n handleTplStateAction(event, method, handler.args, (_handler$batch2 = handler.batch) !== null && _handler$batch2 !== void 0 ? _handler$batch2 : true, handler.callback, runtimeContext);\n break;\n case \"tpl.dispatchEvent\":\n {\n const [type, init] = argsFactory(handler.args, runtimeContext, event);\n const tplHostElement = getTplHostElement(runtimeContext, handler.action, `: ${type}`);\n tplHostElement.dispatchEvent(new CustomEvent(type, init));\n break;\n }\n case \"formstate.update\":\n handleFormStateAction(event, handler.args, handler.callback, runtimeContext);\n break;\n case \"message.subscribe\":\n case \"message.unsubscribe\":\n handleMessageDispatcher(event, method, handler.args, runtimeContext, runtimeBrick, handler.callback);\n break;\n case \"theme.setDarkTheme\":\n case \"theme.setLightTheme\":\n applyTheme(handler.action === \"theme.setDarkTheme\" ? \"dark\" : \"light\");\n break;\n case \"theme.setTheme\":\n {\n const [theme] = argsFactory(handler.args, runtimeContext, event);\n applyTheme(theme);\n break;\n }\n case \"mode.setDashboardMode\":\n case \"mode.setDefaultMode\":\n applyMode(handler.action === \"mode.setDashboardMode\" ? \"dashboard\" : \"default\");\n break;\n\n // case \"menu.clearMenuTitleCache\":\n // case \"menu.clearMenuCache\":\n\n // case \"analytics.event\":\n\n // case \"preview.debug\":\n\n default:\n // eslint-disable-next-line no-console\n console.error(\"unknown event listener action:\", handler.action);\n }\n } else if (isUseProviderHandler(handler)) {\n handleUseProviderAction(event, handler, runtimeContext, runtimeBrick);\n } else if (isCustomHandler(handler)) {\n handleCustomAction(event, handler, runtimeContext, runtimeBrick);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unknown event handler:\", handler);\n }\n }\n };\n}\nfunction handleUseProviderAction(event, handler, runtimeContext, runtimeBrick) {\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(event, handler.useProvider, handler, method, runtimeContext, runtimeBrick);\n}\nfunction handleCustomAction(event, handler, runtimeContext, runtimeBrick) {\n let targets = [];\n const rawTarget = handler.target;\n const rawTargetRef = handler.targetRef;\n let computedTarget = rawTarget;\n // Allow `target` to be set as evaluable string.\n if (typeof rawTarget === \"string\" ? isEvaluable(rawTarget) : isPreEvaluated(rawTarget)) {\n computedTarget = computeRealValue(rawTarget, {\n ...runtimeContext,\n event\n });\n }\n if (typeof computedTarget === \"string\") {\n if (computedTarget === \"_self\") {\n targets.push(runtimeBrick.element);\n } else if (handler.multiple) {\n targets = Array.from(document.querySelectorAll(computedTarget));\n } else {\n const found = document.querySelector(computedTarget);\n if (found !== null) {\n targets.push(found);\n }\n }\n } else if (computedTarget) {\n if (computedTarget instanceof HTMLElement) {\n targets.push(computedTarget);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unexpected target:\", computedTarget);\n }\n } else if (rawTargetRef) {\n let computedTargetRef = rawTargetRef;\n // Allow `targetRef` to be set as evaluable string.\n if (typeof rawTargetRef === \"string\" ? isEvaluable(rawTargetRef) : isPreEvaluated(rawTargetRef)) {\n computedTargetRef = computeRealValue(rawTargetRef, {\n ...runtimeContext,\n event\n });\n }\n const targetRefs = [].concat(computedTargetRef);\n const tplHostElement = getTplHostElement(runtimeContext, \"targetRef\", `: ${targetRefs.join(\", \")}`);\n targets.push(...targetRefs.map(ref => {\n var _tplHostElement$$$get;\n return (_tplHostElement$$$get = tplHostElement.$$getElementByRef) === null || _tplHostElement$$$get === void 0 ? void 0 : _tplHostElement$$$get.call(tplHostElement, ref);\n }).filter(Boolean));\n }\n if (targets.length === 0) {\n // eslint-disable-next-line no-console\n console.error(\"target not found:\", rawTarget || rawTargetRef);\n return;\n }\n if (isExecuteCustomHandler(handler)) {\n targets.forEach(target => {\n brickCallback(event, target, handler, handler.method, runtimeContext, runtimeBrick, {\n useEventAsDefault: true\n });\n });\n } else if (isSetPropsCustomHandler(handler)) {\n setProperties(targets, handler.properties, {\n ...runtimeContext,\n event\n });\n }\n}\nasync function brickCallback(event, targetOrProvider, handler, method, runtimeContext, runtimeBrick, options) {\n const isProvider = isUseProviderHandler(handler);\n const task = async () => {\n var _hooks$flowApi;\n const realTarget = isProvider ? await getProviderBrick(targetOrProvider) : targetOrProvider;\n if (typeof realTarget[method] !== \"function\") {\n throw new Error(`target <${realTarget.tagName.toLowerCase()}> has no method: ${method}`);\n }\n const isUseProvider = isUseProviderHandler(handler);\n let computedArgs;\n let argsOrContractConf = isUseProvider ? computeArgs(handler.args, runtimeContext, event) : argsFactory(handler.args, runtimeContext, event, options);\n if (isUseProvider && hooks !== null && hooks !== void 0 && (_hooks$flowApi = hooks.flowApi) !== null && _hooks$flowApi !== void 0 && _hooks$flowApi.isFlowApiProvider(handler.useProvider)) {\n var _handler$sse;\n if (!Array.isArray(handler.args) && handler.params) {\n argsOrContractConf = computeRealValue(pick(handler, \"params\", \"options\", \"filename\"), {\n ...runtimeContext,\n event\n });\n }\n computedArgs = await hooks.flowApi.getArgsOfFlowApi(handler.useProvider, argsOrContractConf !== null && argsOrContractConf !== void 0 ? argsOrContractConf : [], method, (_handler$sse = handler.sse) === null || _handler$sse === void 0 ? void 0 : _handler$sse.stream);\n } else {\n computedArgs = argsOrContractConf !== null && argsOrContractConf !== void 0 ? argsOrContractConf : [];\n }\n return realTarget[method](...computedArgs);\n };\n if (!handler.callback) {\n task();\n return;\n }\n const callbackFactory = eventCallbackFactory(handler.callback, runtimeContext, runtimeBrick);\n const pollableCallback = {\n progress: callbackFactory(\"progress\"),\n success: callbackFactory(\"success\"),\n error: callbackFactory(\"error\"),\n finally: callbackFactory(\"finally\")\n };\n if (isProvider) {\n var _handler$sse2, _handler$poll;\n const pollRuntimeContext = {\n ...runtimeContext,\n event\n };\n const sseStream = computeRealValue((_handler$sse2 = handler.sse) === null || _handler$sse2 === void 0 ? void 0 : _handler$sse2.stream, pollRuntimeContext);\n if (sseStream) {\n startSSEStream(task, pollableCallback);\n return;\n }\n const pollEnabled = computeRealValue((_handler$poll = handler.poll) === null || _handler$poll === void 0 ? void 0 : _handler$poll.enabled, pollRuntimeContext);\n if (pollEnabled) {\n startPoll(task, pollableCallback, handler.poll, pollRuntimeContext);\n return;\n }\n }\n try {\n // Try to catch synchronized tasks too.\n const result = await task();\n pollableCallback.success(result);\n } catch (err) {\n pollableCallback.error(err);\n } finally {\n pollableCallback[\"finally\"]();\n }\n}\nfunction handleHistoryAction(event, method, args, callback, runtimeContext) {\n let baseArgsLength = 0;\n let hasCallback = false;\n let overrideMethod = method;\n switch (method) {\n case \"push\":\n case \"replace\":\n case \"pushQuery\":\n case \"replaceQuery\":\n case \"pushAnchor\":\n baseArgsLength = 2;\n hasCallback = true;\n break;\n case \"reload\":\n hasCallback = true;\n break;\n case \"block\":\n baseArgsLength = 1;\n overrideMethod = \"setBlockMessage\";\n break;\n }\n let computedArgs = [];\n if (baseArgsLength > 0) {\n computedArgs = argsFactory(args, runtimeContext, event, {\n useEventDetailAsDefault: true\n });\n computedArgs.length = baseArgsLength;\n }\n if (hasCallback && callback) {\n const callbackFactory = eventCallbackFactory(callback, runtimeContext, undefined);\n computedArgs.push(blocked => {\n callbackFactory(blocked ? \"error\" : \"success\")({\n blocked\n });\n callbackFactory(\"finally\")({\n blocked\n });\n });\n }\n getHistory()[overrideMethod](...computedArgs);\n}\nfunction handleWindowOpenAction(event, args, runtimeContext) {\n const [url, target, features] = argsFactory(args, runtimeContext, event);\n window.open(url, target || \"_self\", features);\n}\nfunction handleWindowPostMessageAction(event, args, runtimeContext) {\n const computedArgs = argsFactory(args, runtimeContext, event);\n if (computedArgs.length === 1) {\n // Add default target origin\n computedArgs.push(location.origin);\n }\n window.postMessage(...computedArgs);\n}\nfunction handleParentPostMessageAction(event, args, runtimeContext) {\n if (parent === window) {\n throw new Error(\"parent is the window itself\");\n }\n const computedArgs = argsFactory(args, runtimeContext, event);\n parent.postMessage(...computedArgs);\n}\nfunction batchUpdate(args, batch, method, store, runtimeContext, event) {\n if (batch) {\n store.updateValues(args, method, arg => {\n return argsFactory(arg, runtimeContext, event)[0];\n });\n } else {\n args.forEach(arg => {\n const {\n name,\n value\n } = argsFactory([arg], runtimeContext, event)[0];\n store.updateValue(name, value, method);\n });\n }\n}\nfunction handleContextAction(event, method, args, batch, callback, runtimeContext) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && (method === \"assign\" || method === \"replace\")) {\n batchUpdate(args, batch, method, runtimeContext.ctxStore, runtimeContext, event);\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n runtimeContext.ctxStore.updateValue(name, value, method, callback, runtimeContext);\n }\n}\nfunction handleTplStateAction(event, method, args, batch, callback, runtimeContext) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && method === \"update\") {\n const tplStateStore = getTplStateStore(runtimeContext, `state.${method}`, `: ${JSON.stringify(args)}`);\n batchUpdate(args, batch, \"replace\", tplStateStore, runtimeContext, event);\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const tplStateStore = getTplStateStore(runtimeContext, `state.${method}`, `: ${name}`);\n tplStateStore.updateValue(name, value, method === \"update\" ? \"replace\" : method, callback, runtimeContext);\n }\n}\nfunction handleFormStateAction(event, args, callback, runtimeContext) {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const formStateStore = getFormStateStore(runtimeContext, \"formstate.update\", `: ${name}`);\n formStateStore.updateValue(name, value, \"replace\", callback, runtimeContext);\n}\nfunction handleLocationAction(event, method, args, runtimeContext) {\n if (method === \"assign\") {\n const [url] = argsFactory(args, runtimeContext, event);\n location.assign(url);\n } else {\n location[method]();\n }\n}\nfunction handleStorageAction(event, object, method, args, runtimeContext) {\n const storage = object === \"localStorage\" ? localStorage : sessionStorage;\n const [name, value] = argsFactory(args, runtimeContext, event);\n if (method === \"setItem\") {\n if (value !== undefined) {\n storage.setItem(name, JSON.stringify(value));\n }\n } else {\n storage.removeItem(name);\n }\n}\nfunction handleConsoleAction(event, method, args, runtimeContext) {\n const isProduction = process.env.NODE_ENV === \"production\";\n\n // 生产环境下,只有调试模式开启且符合日志级别才输出\n if (isProduction && !debugManager.shouldLog(method)) {\n return;\n }\n\n // eslint-disable-next-line no-console\n console[method](...argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true\n }));\n}\nfunction handleMessageAction(event, method, args, runtimeContext) {\n const computedArgs = argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true\n });\n Notification.show({\n type: method,\n message: computedArgs[0]\n });\n}\nasync function handleMessageDispatcher(event, method, args, runtimeContext, runtimeBrick, callback) {\n const task = () => {\n var _hooks$messageDispatc;\n const computedArgs = argsFactory(args, runtimeContext, event);\n return hooks === null || hooks === void 0 || (_hooks$messageDispatc = hooks.messageDispatcher) === null || _hooks$messageDispatc === void 0 ? void 0 : _hooks$messageDispatc[method](...computedArgs);\n };\n if (!callback) {\n task();\n return;\n }\n const callbackFactory = eventCallbackFactory(callback, runtimeContext, runtimeBrick);\n try {\n const result = await task();\n callbackFactory(\"success\")(result);\n } catch (error) {\n callbackFactory(\"error\")(error);\n } finally {\n callbackFactory(\"finally\")();\n }\n}\nexport function eventCallbackFactory(callback, runtimeContext, runtimeBrick) {\n return function callbackFactory(type) {\n return function (result) {\n const handlers = callback === null || callback === void 0 ? void 0 : callback[type];\n if (handlers) {\n try {\n const event = new CustomEvent(`callback.${type}`, {\n detail: result\n });\n listenerFactory(handlers, runtimeContext, runtimeBrick)(event);\n } catch (err) {\n // Do not throw errors in `callback.success` or `callback.progress`,\n // to avoid the following triggering of `callback.error`.\n // eslint-disable-next-line\n console.error(err);\n }\n } else if (type === \"error\") {\n // eslint-disable-next-line\n console.error(\"Unhandled callback error:\", result);\n }\n };\n };\n}\nfunction argsFactory(args, runtimeContext, event) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n return Array.isArray(args) ? computeRealValue(args, {\n ...runtimeContext,\n event\n }) : options.useEventAsDefault ? [event] : options.useEventDetailAsDefault ? [event.detail] : [];\n}\nfunction computeArgs(args, runtimeContext, event) {\n if (!Array.isArray(args)) {\n return args;\n }\n return computeRealValue(args, {\n ...runtimeContext,\n event\n });\n}\n//# sourceMappingURL=bindListeners.js.map","import { _internalApiGetRenderId } from \"./Runtime.js\";\nexport async function startSSEStream(task, _ref) {\n let {\n progress,\n success,\n error,\n finally: finallyCallback\n } = _ref;\n const currentRenderId = _internalApiGetRenderId();\n try {\n const stream = await task();\n for await (const value of stream) {\n if (currentRenderId !== _internalApiGetRenderId()) {\n return;\n }\n progress === null || progress === void 0 || progress(value);\n }\n if (currentRenderId !== _internalApiGetRenderId()) {\n return;\n }\n success === null || success === void 0 || success();\n } catch (e) {\n if (currentRenderId !== _internalApiGetRenderId()) {\n return;\n }\n error === null || error === void 0 || error(e);\n } finally {\n finallyCallback === null || finallyCallback === void 0 || finallyCallback();\n }\n}\n//# sourceMappingURL=sse.js.map","import { getTplStateStore } from \"./utils.js\";\nexport function bindTemplateProxy(brick) {\n var _tplHostMetadata$prox;\n const {\n ref,\n runtimeContext,\n element\n } = brick;\n\n // Error recovering brick may have no runtimeContext.\n if (!ref || !runtimeContext.tplStateStoreId) {\n return;\n }\n const {\n hostBrick\n } = getTplStateStore(runtimeContext, \"bindTemplateProxy\");\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const tplHostMetadata = hostBrick.tplHostMetadata;\n tplHostMetadata.internalBricksByRef.set(ref, brick);\n const events = (_tplHostMetadata$prox = tplHostMetadata.proxy) === null || _tplHostMetadata$prox === void 0 ? void 0 : _tplHostMetadata$prox.events;\n if (events) {\n for (const [from, to] of Object.entries(events)) {\n if (to.ref === ref) {\n var _to$refEvent, _ref, _ref$$$proxyListeners;\n const listener = e => {\n if (e.bubbles) {\n e.stopPropagation();\n }\n hostBrick.element.dispatchEvent(new CustomEvent(from, {\n detail: e.detail,\n bubbles: e.bubbles,\n cancelable: e.cancelable,\n composed: e.composed\n }));\n };\n const eventType = (_to$refEvent = to.refEvent) !== null && _to$refEvent !== void 0 ? _to$refEvent : from;\n element.addEventListener(eventType, listener);\n (_ref$$$proxyListeners = (_ref = element).$$proxyListeners) !== null && _ref$$$proxyListeners !== void 0 ? _ref$$$proxyListeners : _ref.$$proxyListeners = [];\n element.$$proxyListeners.push([eventType, listener]);\n }\n }\n }\n}\nexport function unbindTemplateProxy(brick) {\n const {\n ref,\n runtimeContext,\n element\n } = brick;\n if (!(runtimeContext !== null && runtimeContext !== void 0 && runtimeContext.tplStateStoreId) || !ref) {\n return;\n }\n const {\n hostBrick\n } = getTplStateStore(runtimeContext, \"unbindTemplateProxy\");\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const tplHostMetadata = hostBrick.tplHostMetadata;\n tplHostMetadata.internalBricksByRef.delete(ref);\n for (const [type, fn] of (_$$proxyListeners = element.$$proxyListeners) !== null && _$$proxyListeners !== void 0 ? _$$proxyListeners : []) {\n var _$$proxyListeners;\n element.removeEventListener(type, fn);\n }\n delete element.$$proxyListeners;\n}\n//# sourceMappingURL=bindTemplateProxy.js.map","export let RenderTag = /*#__PURE__*/function (RenderTag) {\n RenderTag[RenderTag[\"ROOT\"] = 1] = \"ROOT\";\n RenderTag[RenderTag[\"BRICK\"] = 2] = \"BRICK\";\n RenderTag[RenderTag[\"ABSTRACT\"] = 3] = \"ABSTRACT\";\n return RenderTag;\n}({});\n//# sourceMappingURL=enums.js.map","import { bindTemplateProxy } from \"./CustomTemplates/bindTemplateProxy.js\";\nimport { getTplStateStore } from \"./CustomTemplates/utils.js\";\nimport { bindListeners } from \"./bindListeners.js\";\nimport { setRealProperties } from \"./compute/setRealProperties.js\";\nimport { RenderTag } from \"./enums.js\";\nexport function unmountTree(mountPoint) {\n mountPoint.replaceChildren();\n}\nexport function mountTree(root, initializedElement) {\n root.mounted = true;\n window.DISABLE_REACT_FLUSH_SYNC = false;\n let current = root.child;\n const portalElements = [];\n while (current) {\n current.mounted = true;\n if (current.tag === RenderTag.BRICK) {\n var _current$tplHostMetad;\n const tagName = current.type;\n if (tagName.includes(\"-\") && !customElements.get(tagName)) {\n // eslint-disable-next-line no-console\n console.error(`Undefined custom element: ${tagName}`);\n }\n\n // istanbul ignore if\n if (tagName === \"basic-bricks.script-brick\") {\n // eslint-disable-next-line no-console\n console.warn(\"`basic-bricks.script-brick` is deprecated, please take caution when using it\");\n }\n const element = initializedElement && current === root.child ? initializedElement : document.createElement(tagName);\n current.element = element;\n if (current.slotId) {\n element.setAttribute(\"slot\", current.slotId);\n }\n if (current.iid) {\n element.dataset.iid = current.iid;\n }\n if ((_current$tplHostMetad = current.tplHostMetadata) !== null && _current$tplHostMetad !== void 0 && _current$tplHostMetad.tplStateStoreId) {\n element.dataset.tplStateStoreId = current.tplHostMetadata.tplStateStoreId;\n }\n setRealProperties(element, current.properties);\n bindListeners(element, current.events, current.runtimeContext);\n if (current.tplHostMetadata) {\n // 先设置属性,再设置 `$$tplStateStore`,这样,当触发属性设置时,\n // 避免初始化的一次 state update 操作及其 onChange 事件。\n element.$$tplStateStore = getTplStateStore({\n tplStateStoreId: current.tplHostMetadata.tplStateStoreId,\n tplStateStoreMap: current.runtimeContext.tplStateStoreMap\n }, \"mount\");\n }\n bindTemplateProxy(current);\n if (current.portal) {\n portalElements.push(element);\n } else if (current.return) {\n let currentReturn = current.return;\n while (currentReturn) {\n if (currentReturn.tag === RenderTag.ABSTRACT) {\n currentReturn = currentReturn.return;\n } else {\n if (!currentReturn.childElements) {\n currentReturn.childElements = [];\n }\n currentReturn.childElements.push(element);\n break;\n }\n }\n }\n }\n if (current.child) {\n current = current.child;\n } else if (current.sibling) {\n current = current.sibling;\n } else {\n var _currentReturn;\n let currentReturn = current.return;\n while (currentReturn) {\n // Append elements inside out\n if (currentReturn.tag !== RenderTag.ABSTRACT && currentReturn.childElements) {\n if (currentReturn.tag === RenderTag.ROOT) {\n var _currentReturn$contai;\n (_currentReturn$contai = currentReturn.container) === null || _currentReturn$contai === void 0 || _currentReturn$contai.append(...currentReturn.childElements);\n } else {\n currentReturn.element.append(...currentReturn.childElements);\n }\n currentReturn.childElements = undefined;\n }\n if (currentReturn.tag === RenderTag.ROOT && portalElements.length > 0) {\n const portal = typeof currentReturn.createPortal === \"function\" ? currentReturn.createPortal() : currentReturn.createPortal;\n portal.append(...portalElements);\n }\n if (currentReturn.sibling) {\n break;\n }\n currentReturn = currentReturn.return;\n }\n current = (_currentReturn = currentReturn) === null || _currentReturn === void 0 ? void 0 : _currentReturn.sibling;\n }\n }\n setTimeout(() => {\n window.DISABLE_REACT_FLUSH_SYNC = true;\n });\n}\n//# sourceMappingURL=mount.js.map","import _classPrivateMethodInitSpec from \"@babel/runtime/helpers/classPrivateMethodInitSpec\";\nimport _classPrivateFieldInitSpec from \"@babel/runtime/helpers/classPrivateFieldInitSpec\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _assertClassBrand from \"@babel/runtime/helpers/assertClassBrand\";\nimport _classPrivateFieldGet from \"@babel/runtime/helpers/classPrivateFieldGet2\";\nimport _classPrivateFieldSet from \"@babel/runtime/helpers/classPrivateFieldSet2\";\nimport { isEmpty, remove } from \"lodash\";\nimport { listenerFactory } from \"./bindListeners.js\";\nimport { getHistory } from \"../history.js\";\nimport { getReadOnlyProxy } from \"./proxyFactories.js\";\nimport { mediaEventTarget } from \"./mediaQuery.js\";\nimport { mountTree } from \"./mount.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { unbindTemplateProxy } from \"./CustomTemplates/bindTemplateProxy.js\";\nimport { hooks } from \"./Runtime.js\";\nconst commonLifeCycles = [\"onMount\", \"onUnmount\", \"onMediaChange\", \"onScrollIntoView\", \"onMessage\", \"onMessageClose\"];\nconst pageOnlyLifeCycles = [\"onBeforePageLoad\", \"onPageLoad\", \"onPageLeave\", \"onBeforePageLeave\", \"onAnchorLoad\", \"onAnchorUnload\"];\nvar _routeHelper = /*#__PURE__*/new WeakMap();\nvar _memoizedLifeCycle = /*#__PURE__*/new WeakMap();\nvar _observers = /*#__PURE__*/new WeakMap();\nvar _mediaListener = /*#__PURE__*/new WeakMap();\nvar _arbitraryLifeCycle = /*#__PURE__*/new WeakMap();\nvar _initialMenuRequestNode = /*#__PURE__*/new WeakMap();\nvar _memoizedMenuRequestNodeMap = /*#__PURE__*/new WeakMap();\nvar _incrementalRenderStates = /*#__PURE__*/new WeakMap();\nvar _RendererContext_brand = /*#__PURE__*/new WeakSet();\nexport class RendererContext {\n constructor(scope, options) {\n var _options$unknownBrick;\n _classPrivateMethodInitSpec(this, _RendererContext_brand);\n /**\n * - page: render as whole page, triggering page life cycles.\n * - fragment: render as fragment, not triggering page life cycles.\n */\n _defineProperty(this, \"scope\", void 0);\n _defineProperty(this, \"unknownBricks\", void 0);\n _defineProperty(this, \"renderId\", void 0);\n _classPrivateFieldInitSpec(this, _routeHelper, void 0);\n _classPrivateFieldInitSpec(this, _memoizedLifeCycle, {\n onBeforePageLoad: [],\n onPageLoad: [],\n onPageLeave: [],\n onBeforePageLeave: [],\n onAnchorLoad: [],\n onAnchorUnload: [],\n onMediaChange: [],\n onScrollIntoView: [],\n onMount: [],\n onUnmount: [],\n onMessage: [],\n onMessageClose: []\n });\n _classPrivateFieldInitSpec(this, _observers, new Map());\n _classPrivateFieldInitSpec(this, _mediaListener, void 0);\n _classPrivateFieldInitSpec(this, _arbitraryLifeCycle, new Map());\n _classPrivateFieldInitSpec(this, _initialMenuRequestNode, void 0);\n _classPrivateFieldInitSpec(this, _memoizedMenuRequestNodeMap, new WeakMap());\n _classPrivateFieldInitSpec(this, _incrementalRenderStates, new Map());\n this.scope = scope;\n this.unknownBricks = (_options$unknownBrick = options === null || options === void 0 ? void 0 : options.unknownBricks) !== null && _options$unknownBrick !== void 0 ? _options$unknownBrick : \"throw\";\n _classPrivateFieldSet(_routeHelper, this, options === null || options === void 0 ? void 0 : options.routeHelper);\n this.renderId = options === null || options === void 0 ? void 0 : options.renderId;\n }\n setInitialMenuRequestNode(menuRequestNode) {\n _classPrivateFieldSet(_initialMenuRequestNode, this, menuRequestNode);\n }\n memoizeMenuRequestNode(routes, menuRequestNode) {\n _classPrivateFieldGet(_memoizedMenuRequestNodeMap, this).set(routes, menuRequestNode);\n }\n getMenuRequests() {\n const menuRequests = [];\n let current = _classPrivateFieldGet(_initialMenuRequestNode, this);\n while (current) {\n if (current.request) {\n menuRequests.push(current.request);\n }\n if (current.child) {\n current = current.child;\n } else {\n var _current;\n while (current && !current.sibling) {\n current = current.return;\n }\n current = (_current = current) === null || _current === void 0 ? void 0 : _current.sibling;\n }\n }\n return menuRequests;\n }\n async reMergeMenuRequestNodes(parentMenuRequestNode, routes) {\n let menuRequestNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const node = _classPrivateFieldGet(_memoizedMenuRequestNodeMap, this).get(routes);\n _classPrivateFieldGet(_memoizedMenuRequestNodeMap, this).set(routes, menuRequestNode);\n let current = parentMenuRequestNode.child;\n let previousSibling;\n while (current) {\n if (current === node) {\n break;\n }\n previousSibling = current;\n current = current.sibling;\n }\n if (previousSibling) {\n previousSibling.sibling = menuRequestNode;\n menuRequestNode.sibling = node === null || node === void 0 ? void 0 : node.sibling;\n } else {\n parentMenuRequestNode.child = menuRequestNode;\n }\n await _classPrivateFieldGet(_routeHelper, this).mergeMenus(this.getMenuRequests());\n }\n reBailout(output) {\n return _classPrivateFieldGet(_routeHelper, this).bailout(output);\n }\n\n /**\n * Will always resolve when the routing is not the current bootstrap.\n * Otherwise, will throw an error when not bailout.\n *\n * @returns undefined when bailout, or failed output otherwise\n */\n reCatch(error, returnNode) {\n return _classPrivateFieldGet(_routeHelper, this).catch(error, returnNode, false, true);\n }\n async didPerformIncrementalRender(location, prevLocation) {\n let finalResult = false;\n const shouldIgnoreRoutes = [];\n // Perform incremental rendering from inside out.\n // This allows nested incremental sub-routes.\n for (const {\n parentRoutes,\n callback\n } of [..._classPrivateFieldGet(_incrementalRenderStates, this).values()].reverse()) {\n const parentRoute = parentRoutes[parentRoutes.length - 1];\n if (shouldIgnoreRoutes.includes(parentRoute)) {\n // Do not re-render parent routes if any of its children has performed incremental rendering.\n // In the meantime, allow sibling-routes to perform incremental rendering.\n continue;\n }\n const result = await callback(location, prevLocation);\n // When result is true, it means the incremental rendering is performed.\n if (result) {\n shouldIgnoreRoutes.push(...parentRoutes.slice(0, -1));\n }\n // Mark incremental rendering as performed at final if result is true or null.\n if (result !== false) {\n finalResult = true;\n }\n }\n return finalResult;\n }\n\n /**\n * When `callback` resolved to `true` which means incremental rendering is performed,\n * ignore normal rendering.\n */\n performIncrementalRender(slotConf, parentRoutes, callback) {\n // Override stale incremental render callbacks\n _classPrivateFieldGet(_incrementalRenderStates, this).set(slotConf, {\n parentRoutes,\n callback\n });\n }\n registerBrickLifeCycle(brick, lifeCycle) {\n if (!lifeCycle) {\n return;\n }\n const lifeCycleTypes = [...commonLifeCycles, ...(this.scope === \"page\" ? pageOnlyLifeCycles : [])];\n for (const key of lifeCycleTypes) {\n const handlers = lifeCycle[key];\n if (handlers) {\n _classPrivateFieldGet(_memoizedLifeCycle, this)[key].push({\n brick,\n handlers: handlers\n });\n }\n }\n // istanbul ignore next\n if (!isEmpty(lifeCycle.useResolves)) {\n // eslint-disable-next-line no-console\n console.error(\"`lifeCycle.useResolves` is dropped in v3:\", lifeCycle);\n }\n }\n registerArbitraryLifeCycle(lifeCycle, fn) {\n const arbitraryCallbacks = _classPrivateFieldGet(_arbitraryLifeCycle, this).get(lifeCycle);\n if (arbitraryCallbacks) {\n arbitraryCallbacks.add(fn);\n } else {\n _classPrivateFieldGet(_arbitraryLifeCycle, this).set(lifeCycle, new Set([fn]));\n }\n }\n reRender(returnNode, node, oldNode) {\n var _ref, _prevLastNormal$eleme, _findNextSiblingNode, _prevLastPortal$eleme, _findNextSiblingNode2;\n // istanbul ignore next: defensive check\n if (returnNode.tag !== RenderTag.ROOT && returnNode.disposed) {\n return;\n }\n const [prevLastNormal, prevLastPortal] = findLastChildNodes(oldNode);\n const insertBeforeChild = (_ref = prevLastNormal ? (_prevLastNormal$eleme = prevLastNormal.element) === null || _prevLastNormal$eleme === void 0 ? void 0 : _prevLastNormal$eleme.nextSibling : (_findNextSiblingNode = findNextSiblingNode(oldNode, false)) === null || _findNextSiblingNode === void 0 ? void 0 : _findNextSiblingNode.element) !== null && _ref !== void 0 ? _ref : null;\n const insertPortalBeforeChildCandidates = [];\n let nextSibling = prevLastPortal ? prevLastPortal === null || prevLastPortal === void 0 || (_prevLastPortal$eleme = prevLastPortal.element) === null || _prevLastPortal$eleme === void 0 ? void 0 : _prevLastPortal$eleme.nextSibling : (_findNextSiblingNode2 = findNextSiblingNode(oldNode, true)) === null || _findNextSiblingNode2 === void 0 ? void 0 : _findNextSiblingNode2.element;\n while (nextSibling) {\n insertPortalBeforeChildCandidates.push(nextSibling);\n // Collect all portal bricks from useBrick, until found a normal portal\n // brick other than from useBrick.\n // Because useBrick could be removed during unmount.\n if (!(nextSibling instanceof HTMLElement && nextSibling.tagName === \"DIV\")) {\n break;\n }\n nextSibling = nextSibling.nextSibling;\n }\n\n // Figure out the unchanged prev sibling and next sibling\n let prevSibling;\n let current = returnNode.child;\n while (current && current !== oldNode) {\n if (current.sibling === oldNode) {\n prevSibling = current;\n break;\n }\n current = current.sibling;\n }\n const fragment = document.createDocumentFragment();\n const portalFragment = document.createDocumentFragment();\n const renderRoot = {\n tag: RenderTag.ROOT,\n container: fragment,\n createPortal: portalFragment,\n child: node\n };\n\n // Override `return`\n current = node;\n while (current) {\n current.return = renderRoot;\n current = current.sibling;\n }\n\n // Unmount previous brick and abstract nodes, including their descendants\n const [removeBricks, removeAbstracts] = getContainedBrickAndAbstractNodes(oldNode);\n _assertClassBrand(_RendererContext_brand, this, _unmountBricks).call(this, removeBricks);\n _assertClassBrand(_RendererContext_brand, this, _unmountAbstracts).call(this, removeAbstracts);\n mountTree(renderRoot);\n\n // Connect back\n if (prevSibling) {\n prevSibling.sibling = node;\n } else {\n returnNode.child = node;\n }\n node.sibling = oldNode.sibling;\n _assertClassBrand(_RendererContext_brand, this, _cleanUpNodes).call(this, removeAbstracts);\n _assertClassBrand(_RendererContext_brand, this, _cleanUpNodes).call(this, removeBricks);\n\n // Resume `return`\n current = node;\n while (current) {\n current.return = returnNode;\n current = current.sibling;\n }\n if (fragment.hasChildNodes()) {\n const entityReturnNode = getEntityReturnNode(returnNode);\n if (entityReturnNode.tag === RenderTag.ROOT) {\n var _entityReturnNode$con;\n (_entityReturnNode$con = entityReturnNode.container) === null || _entityReturnNode$con === void 0 || _entityReturnNode$con.insertBefore(fragment, insertBeforeChild);\n } else {\n var _entityReturnNode$ele;\n (_entityReturnNode$ele = entityReturnNode.element) === null || _entityReturnNode$ele === void 0 || _entityReturnNode$ele.insertBefore(fragment, insertBeforeChild);\n }\n }\n if (portalFragment.hasChildNodes()) {\n var _root;\n let root = node;\n while (root && root.return) {\n root = root.return;\n }\n // istanbul ignore next\n if (((_root = root) === null || _root === void 0 ? void 0 : _root.tag) !== RenderTag.ROOT) {\n throw new Error(\"Cannot find render root node. This is a bug of Brick Next, please report it.\");\n }\n const portal = typeof root.createPortal === \"function\" ? root.createPortal() : root.createPortal;\n let insertPortalBeforeChild = null;\n for (const candidate of insertPortalBeforeChildCandidates) {\n // Those candidates from useBrick could be removed during unmount.\n // So we need to check if they are still in the portal.\n if (portal.contains(candidate)) {\n insertPortalBeforeChild = candidate;\n break;\n }\n }\n portal.insertBefore(portalFragment, insertPortalBeforeChild);\n }\n const [newBricks] = getContainedBrickAndAbstractNodes(node);\n _assertClassBrand(_RendererContext_brand, this, _initializeRerenderBricks).call(this, newBricks);\n }\n dispose() {\n for (const list of Object.values(_classPrivateFieldGet(_memoizedLifeCycle, this))) {\n list.length = 0;\n }\n for (const list of _classPrivateFieldGet(_observers, this).values()) {\n for (const observer of list) {\n observer.disconnect();\n }\n list.length = 0;\n }\n _classPrivateFieldGet(_observers, this).clear();\n if (_classPrivateFieldGet(_mediaListener, this)) {\n mediaEventTarget.removeEventListener(\"change\", _classPrivateFieldGet(_mediaListener, this));\n _classPrivateFieldSet(_mediaListener, this, undefined);\n }\n _classPrivateFieldGet(_arbitraryLifeCycle, this).clear();\n _classPrivateFieldGet(_incrementalRenderStates, this).clear();\n _classPrivateFieldSet(_memoizedMenuRequestNodeMap, this, undefined);\n }\n\n // Note: no `onScrollIntoView` and `onMessage`\n\n dispatchBeforePageLoad() {\n _assertClassBrand(_RendererContext_brand, this, _dispatchGeneralLifeCycle).call(this, \"onBeforePageLoad\", new CustomEvent(\"page.beforeLoad\"));\n }\n dispatchPageLoad() {\n const event = new CustomEvent(\"page.load\");\n _assertClassBrand(_RendererContext_brand, this, _dispatchGeneralLifeCycle).call(this, \"onPageLoad\", event);\n // Currently only for e2e testing\n window.dispatchEvent(event);\n }\n dispatchBeforePageLeave(detail) {\n _assertClassBrand(_RendererContext_brand, this, _dispatchGeneralLifeCycle).call(this, \"onBeforePageLeave\", new CustomEvent(\"page.beforeLeave\", {\n detail\n }));\n }\n dispatchPageLeave() {\n _assertClassBrand(_RendererContext_brand, this, _dispatchGeneralLifeCycle).call(this, \"onPageLeave\", new CustomEvent(\"page.leave\"));\n }\n dispatchAnchorLoad() {\n const {\n hash\n } = getHistory().location;\n if (hash && hash !== \"#\") {\n _assertClassBrand(_RendererContext_brand, this, _dispatchGeneralLifeCycle).call(this, \"onAnchorLoad\", new CustomEvent(\"anchor.load\", {\n detail: {\n hash,\n anchor: hash.substring(1)\n }\n }));\n } else {\n _assertClassBrand(_RendererContext_brand, this, _dispatchGeneralLifeCycle).call(this, \"onAnchorUnload\", new CustomEvent(\"anchor.unload\"));\n }\n }\n initializeScrollIntoView() {\n for (const {\n brick,\n handlers: conf\n } of _classPrivateFieldGet(_memoizedLifeCycle, this).onScrollIntoView) {\n _assertClassBrand(_RendererContext_brand, this, _addObserver).call(this, brick, conf);\n }\n }\n initializeMediaChange() {\n _classPrivateFieldSet(_mediaListener, this, event => {\n _assertClassBrand(_RendererContext_brand, this, _dispatchGeneralLifeCycle).call(this, \"onMediaChange\", new CustomEvent(\"media.change\", {\n detail: getReadOnlyProxy(event.detail)\n }));\n });\n mediaEventTarget.addEventListener(\"change\", _classPrivateFieldGet(_mediaListener, this));\n }\n initializeMessageDispatcher() {\n var _hooks$messageDispatc2;\n for (const {\n brick,\n handlers: confList\n } of _classPrivateFieldGet(_memoizedLifeCycle, this).onMessage) {\n for (const conf of [].concat(confList)) {\n var _hooks$messageDispatc;\n hooks === null || hooks === void 0 || (_hooks$messageDispatc = hooks.messageDispatcher) === null || _hooks$messageDispatc === void 0 || _hooks$messageDispatc.onMessage(conf.channel, detail => {\n listenerFactory(conf.handlers, brick.runtimeContext, brick)(new CustomEvent(\"message.push\", {\n detail\n }));\n });\n }\n }\n hooks === null || hooks === void 0 || (_hooks$messageDispatc2 = hooks.messageDispatcher) === null || _hooks$messageDispatc2 === void 0 || _hooks$messageDispatc2.onClose(() => {\n _assertClassBrand(_RendererContext_brand, this, _dispatchGeneralLifeCycle).call(this, \"onMessageClose\", new CustomEvent(\"message.close\"));\n });\n }\n dispatchOnMount() {\n _assertClassBrand(_RendererContext_brand, this, _dispatchGeneralLifeCycle).call(this, \"onMount\", new CustomEvent(\"mount\"));\n }\n dispatchOnUnmount() {\n _assertClassBrand(_RendererContext_brand, this, _dispatchGeneralLifeCycle).call(this, \"onUnmount\", new CustomEvent(\"unmount\"));\n }\n}\n\n/** Find the last normal and portal child nodes of the given node. */\nfunction _unmountBricks(bricks) {\n const lifeCycleTypes = [...commonLifeCycles, ...(this.scope === \"page\" ? pageOnlyLifeCycles : [])];\n const unmountList = [];\n\n // Clear life cycle handlers, record `onUnmount` at the same time\n for (const key of lifeCycleTypes) {\n const removed = remove(_classPrivateFieldGet(_memoizedLifeCycle, this)[key], item => bricks.has(item.brick));\n if (key === \"onUnmount\") {\n unmountList.push(...removed);\n }\n }\n\n // Clear intersection observers\n for (const brick of bricks) {\n var _brick$element, _brick$element2, _brick$disposes;\n const observers = _classPrivateFieldGet(_observers, this).get(brick);\n if (observers !== null && observers !== void 0 && observers.length) {\n for (const observer of observers) {\n observer.disconnect();\n }\n observers.length = 0;\n _classPrivateFieldGet(_observers, this).delete(brick);\n }\n unbindTemplateProxy(brick);\n (_brick$element = brick.element) === null || _brick$element === void 0 || delete _brick$element.$$tplStateStore;\n // Also remove the element\n (_brick$element2 = brick.element) === null || _brick$element2 === void 0 || _brick$element2.remove();\n // Dispose context listeners\n (_brick$disposes = brick.disposes) === null || _brick$disposes === void 0 || _brick$disposes.forEach(dispose => dispose());\n delete brick.disposes;\n }\n\n // Dispatch unmount events\n const unmountEvent = new CustomEvent(\"unmount\");\n for (const {\n brick,\n handlers\n } of unmountList) {\n listenerFactory(handlers, brick.runtimeContext, brick)(unmountEvent);\n }\n}\nfunction _unmountAbstracts(abstracts) {\n for (const item of abstracts) {\n var _item$disposes;\n (_item$disposes = item.disposes) === null || _item$disposes === void 0 || _item$disposes.forEach(dispose => dispose());\n delete item.disposes;\n }\n}\nfunction _cleanUpNodes(nodes) {\n for (const node of nodes) {\n delete node.child;\n delete node.sibling;\n delete node.return;\n node.disposed = true;\n if (node.tag === RenderTag.BRICK) {\n delete node.element;\n delete node.runtimeContext;\n }\n Object.freeze(node);\n }\n}\nfunction _initializeRerenderBricks(bricks) {\n const mountEvent = new CustomEvent(\"mount\");\n for (const {\n brick,\n handlers\n } of _classPrivateFieldGet(_memoizedLifeCycle, this).onMount) {\n if (bricks.has(brick)) {\n listenerFactory(handlers, brick.runtimeContext, brick)(mountEvent);\n }\n }\n for (const {\n brick,\n handlers: conf\n } of _classPrivateFieldGet(_memoizedLifeCycle, this).onScrollIntoView) {\n if (bricks.has(brick)) {\n _assertClassBrand(_RendererContext_brand, this, _addObserver).call(this, brick, conf);\n }\n }\n}\nfunction _dispatchGeneralLifeCycle(type, event) {\n // istanbul ignore next\n if (process.env.NODE_ENV === \"development\" && this.scope === \"fragment\" && pageOnlyLifeCycles.includes(type)) {\n throw new Error(`\\`lifeCycle.${type}\\` cannot be used in ${this.scope}.\\nThis is a bug of Brick Next, please report it.`);\n }\n for (const {\n brick,\n handlers\n } of _classPrivateFieldGet(_memoizedLifeCycle, this)[type]) {\n listenerFactory(handlers, brick.runtimeContext, brick)(event);\n }\n const arbitraryCallbacks = _classPrivateFieldGet(_arbitraryLifeCycle, this).get(type);\n if (arbitraryCallbacks) {\n for (const fn of arbitraryCallbacks) {\n fn();\n }\n }\n}\nfunction _addObserver(brick, conf) {\n var _conf$threshold;\n const threshold = (_conf$threshold = conf.threshold) !== null && _conf$threshold !== void 0 ? _conf$threshold : 0.1;\n const observer = new IntersectionObserver((entries, observer) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n if (entry.intersectionRatio >= threshold) {\n listenerFactory(conf.handlers, brick.runtimeContext, brick)(new CustomEvent(\"scroll.into.view\"));\n observer.disconnect();\n }\n }\n });\n }, {\n threshold\n });\n observer.observe(brick.element);\n let list = _classPrivateFieldGet(_observers, this).get(brick);\n if (!list) {\n list = [];\n _classPrivateFieldGet(_observers, this).set(brick, list);\n }\n list.push(observer);\n}\nfunction findLastChildNodes(node) {\n let lastNormal;\n let lastPortal;\n let current = node;\n let level = 0;\n while (current) {\n if (current.tag === RenderTag.BRICK) {\n if (current.portal) {\n lastPortal = current;\n } else {\n lastNormal = current;\n }\n } else if (current.child && current.tag === RenderTag.ABSTRACT) {\n // Only traverse down abstract nodes\n current = current.child;\n level++;\n continue;\n }\n // Level > 0 means we are traversing down abstract nodes.\n // But we do not traverse sibling nodes of the given node.\n if (level <= 0) {\n break;\n }\n if (current.sibling) {\n current = current.sibling;\n } else {\n var _currentReturn;\n // After traversing down abstract nodes, we need to traverse up to find the next sibling.\n let currentReturn = current.return;\n level--;\n while (currentReturn) {\n if (currentReturn.sibling) {\n break;\n }\n currentReturn = currentReturn.return;\n level--;\n }\n if (level <= 0) {\n // Do not traverse up more than the given node.\n break;\n }\n current = (_currentReturn = currentReturn) === null || _currentReturn === void 0 ? void 0 : _currentReturn.sibling;\n }\n }\n return [lastNormal, lastPortal];\n}\n\n/** Find the normal or portal sibling node next to the given node (in DOM). */\nfunction findNextSiblingNode(node, portal) {\n let current = node;\n while (current) {\n if (current !== node && current.tag === RenderTag.BRICK && (portal ? current.portal : !current.portal)) {\n return current;\n }\n if (current !== node && current.child && current.tag === RenderTag.ABSTRACT) {\n // Traverse down sibling abstract nodes\n current = current.child;\n } else if (current.sibling) {\n current = current.sibling;\n } else {\n var _currentReturn2;\n // Traverse up abstract nodes to find the next sibling in DOM\n let currentReturn = current.return;\n while (currentReturn) {\n if (currentReturn.tag !== RenderTag.ABSTRACT) {\n // End the loop when encounter a non-abstract return node,\n // it means we can't find the target sibling node.\n return;\n }\n if (currentReturn.sibling) {\n break;\n }\n currentReturn = currentReturn.return;\n }\n current = (_currentReturn2 = currentReturn) === null || _currentReturn2 === void 0 ? void 0 : _currentReturn2.sibling;\n }\n }\n}\nfunction getContainedBrickAndAbstractNodes(node) {\n const bricks = new Set();\n const abstracts = new Set();\n let current = node;\n while (current) {\n if (current.tag === RenderTag.BRICK) {\n bricks.add(current);\n } else if (current.tag === RenderTag.ABSTRACT) {\n abstracts.add(current);\n }\n if (current.child) {\n current = current.child;\n } else if (current === node) {\n // End the loop when encounter the original node.\n break;\n } else if (current.sibling) {\n current = current.sibling;\n } else {\n var _currentReturn3;\n let currentReturn = current.return;\n while (currentReturn) {\n if (currentReturn === node) {\n // End the loop when encounter the original node.\n return [bricks, abstracts];\n }\n if (currentReturn.sibling) {\n break;\n }\n currentReturn = currentReturn.return;\n }\n current = (_currentReturn3 = currentReturn) === null || _currentReturn3 === void 0 ? void 0 : _currentReturn3.sibling;\n }\n }\n return [bricks, abstracts];\n}\nfunction getEntityReturnNode(node) {\n let current = node;\n while (current.tag === RenderTag.ABSTRACT) {\n current = current.return;\n // istanbul ignore next\n if (!current) {\n throw new Error(\"Cannot find render root node. This is a bug of Brick Next, please report it.\");\n }\n }\n return current;\n}\n//# sourceMappingURL=RendererContext.js.map","const routeMatchedMap = new Map();\nexport function setMatchedRoute(id, match) {\n routeMatchedMap.set(id, match);\n}\nexport function getMatchedRoute(id) {\n return routeMatchedMap.get(id);\n}\nexport function clearMatchedRoutes() {\n return routeMatchedMap.clear();\n}\n//# sourceMappingURL=routeMatchedMap.js.map","import { get, set } from \"lodash\";\nimport { _internalApiGetRuntimeContext } from \"./Runtime.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { getV2RuntimeFromDll } from \"../getV2RuntimeFromDll.js\";\n\n/** For v2 compatibility of `doTransform` from brick-kit. */\nexport function legacyDoTransform(data, to, options) {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return v2Kit.doTransform(data, to, options);\n }\n if (options) {\n throw new Error(\"Legacy doTransform does not support options in v3\");\n }\n return computeRealValue(to, {\n ..._internalApiGetRuntimeContext(),\n data\n }, {\n noInject: true\n });\n}\n\n/** For v2 compatibility of `transformProperties` from brick-kit. */\nexport function legacyTransformProperties(props, data, to, from, mapArray, options) {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return v2Kit.transformProperties(props, data, to, from, mapArray, options);\n }\n if (options) {\n throw new Error(\"Legacy transformProperties does not support options in v3\");\n }\n const result = preprocessTransformProperties(data, to, from, mapArray);\n for (const [propName, propValue] of Object.entries(result)) {\n set(props, propName, propValue);\n }\n return props;\n}\n\n/** For v2 compatibility of `transformIntermediateData` from brick-kit. */\nexport function legacyTransformIntermediateData(data, to, from, mapArray) {\n const intermediateData = from ? get(data, from) : data;\n if (!to) {\n return intermediateData;\n }\n return legacyTransformProperties({}, intermediateData, to, undefined, mapArray);\n}\nfunction preprocessTransformProperties(data, to, from, mapArray) {\n const props = {};\n const processedData = from ? get(data, from) : data;\n if (Array.isArray(to)) {\n for (const item of to) {\n pipeableTransform(props, processedData, item.to, item.from, item.mapArray);\n }\n } else {\n pipeableTransform(props, processedData, to, undefined, mapArray);\n }\n return props;\n}\nfunction pipeableTransform(props, data, to, from, mapArray) {\n if (!to) {\n // Do nothing if `to` is falsy.\n return;\n }\n let fromData = from ? get(data, from) : data;\n let isArray = Array.isArray(fromData);\n if (!isArray && mapArray === true) {\n isArray = true;\n fromData = [fromData];\n } else if (isArray && mapArray === false) {\n isArray = false;\n }\n if (typeof to === \"string\") {\n props[to] = fromData;\n return;\n }\n for (const [transformedPropName, transformTo] of Object.entries(to)) {\n // If `fromData` is an array, mapping it's items.\n props[transformedPropName] = isArray ? fromData.map(item => legacyDoTransform(item, transformTo)) : legacyDoTransform(fromData, transformTo);\n }\n}\n//# sourceMappingURL=legacy_transform.js.map","import { pick } from \"lodash\";\nimport { _internalApiGetRenderId, _internalApiGetRuntimeContext, _internalApiGetStoryboardInBootstrapData, getBrickPackages } from \"./Runtime.js\";\nimport { createScopedRuntimeContext, postAsyncRender, renderBrick } from \"./Renderer.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport { resolveData } from \"./data/resolveData.js\";\nimport { asyncComputeRealValue } from \"./compute/computeRealValue.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { isStrictMode } from \"../isStrictMode.js\";\nimport { customTemplates } from \"../CustomTemplates.js\";\nimport { registerAppI18n } from \"./registerAppI18n.js\";\nimport { getTplStateStore } from \"./CustomTemplates/utils.js\";\nimport { loadBricksImperatively, loadEditorsImperatively } from \"@next-core/loader\";\nimport { getMatchedRoute } from \"./routeMatchedMap.js\";\nexport const symbolForRootRuntimeContext = Symbol.for(\"root.runtimeContext\");\nexport async function renderUseBrick(useBrick, data, errorBoundary) {\n var _useBrick$symbolForRo, _scopedRuntimeContext, _scopedRuntimeContext2, _brickNode;\n const [scopedRuntimeContext, tplStateStoreScope, formStateStoreScope] = createScopedRuntimeContext({\n ...((_useBrick$symbolForRo = useBrick[symbolForRootRuntimeContext]) !== null && _useBrick$symbolForRo !== void 0 ? _useBrick$symbolForRo : _internalApiGetRuntimeContext()),\n data,\n pendingPermissionsPreCheck: []\n });\n scopedRuntimeContext.inUseBrick = true;\n (_scopedRuntimeContext = scopedRuntimeContext.tplStateStoreMap) !== null && _scopedRuntimeContext !== void 0 ? _scopedRuntimeContext : scopedRuntimeContext.tplStateStoreMap = new Map();\n (_scopedRuntimeContext2 = scopedRuntimeContext.formStateStoreMap) !== null && _scopedRuntimeContext2 !== void 0 ? _scopedRuntimeContext2 : scopedRuntimeContext.formStateStoreMap = new Map();\n const rendererContext = new RendererContext(\"fragment\");\n const renderRoot = {\n tag: RenderTag.ROOT,\n // Will set during `mountUseBrick`\n createPortal: null\n };\n const strict = isStrictMode();\n const output = await renderBrick(renderRoot, strict && !errorBoundary ? useBrick : {\n errorBoundary,\n ...useBrick\n }, scopedRuntimeContext, rendererContext, [], {});\n const scopedStores = [...tplStateStoreScope, ...formStateStoreScope];\n await postAsyncRender(output, scopedRuntimeContext, scopedStores);\n let brickNode;\n let currentNode = output.node;\n while (currentNode) {\n if (currentNode.tag === RenderTag.BRICK) {\n brickNode = currentNode;\n break;\n }\n currentNode = currentNode.child;\n }\n if ((_brickNode = brickNode) !== null && _brickNode !== void 0 && _brickNode.portal) {\n throw new Error(\"The root brick of useBrick cannot be a portal brick\");\n }\n renderRoot.child = output.node;\n const tagName = brickNode ? brickNode.type : null;\n return {\n tagName,\n renderRoot,\n rendererContext,\n scopedStores\n };\n}\nexport function mountUseBrick(_ref, element) {\n let {\n renderRoot,\n rendererContext,\n scopedStores\n } = _ref;\n let portal;\n renderRoot.createPortal = () => {\n const portalRoot = document.querySelector(\"#portal-mount-point\");\n portal = document.createElement(\"div\");\n portalRoot.appendChild(portal);\n return portal;\n };\n mountTree(renderRoot, element);\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n rendererContext.initializeMessageDispatcher();\n for (const store of scopedStores) {\n store.mountAsyncData();\n }\n return {\n portal\n };\n}\nexport function unmountUseBrick(_ref2, mountResult) {\n let {\n rendererContext\n } = _ref2;\n // if (mountResult.mainBrick) {\n // mountResult.mainBrick.unmount();\n // }\n if (mountResult.portal) {\n unmountTree(mountResult.portal);\n mountResult.portal.remove();\n }\n rendererContext.dispatchOnUnmount();\n rendererContext.dispose();\n}\nexport function updateStoryboard(appId, storyboardPatch) {\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId);\n Object.assign(storyboard, {\n ...storyboardPatch,\n meta: {\n // Keep runtime fields such as `injectMenus`\n ...storyboard.meta,\n ...storyboardPatch.meta\n },\n $$fulfilling: null,\n $$fulfilled: true,\n $$registerCustomTemplateProcessed: false\n });\n registerAppI18n(storyboard);\n}\nexport function updateStoryboardByRoute(appId, newRoute) {\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId);\n let matched = false;\n function matchRoute(route) {\n return route.path === newRoute.path && !route.exact === !newRoute.exact;\n }\n function replaceRoutes(routes) {\n routes.forEach((route, index) => {\n if (route.type === \"routes\") {\n replaceRoutes(route.routes);\n } else {\n if (matchRoute(route)) {\n matched = true;\n routes[index] = newRoute;\n } else if (Array.isArray(route.bricks)) {\n replaceBricks(route.bricks);\n }\n }\n });\n }\n function replaceBricks(bricks) {\n bricks.forEach(brick => {\n if (brick.slots) {\n for (const slotConf of Object.values(brick.slots)) {\n if (slotConf.type === \"routes\") {\n replaceRoutes(slotConf.routes);\n } else {\n replaceBricks(slotConf.bricks);\n }\n }\n }\n });\n }\n replaceRoutes(storyboard.routes);\n if (!matched) {\n storyboard.routes.unshift(newRoute);\n }\n}\nexport function updateStoryboardByTemplate(appId, newTemplate, settings) {\n const tplName = `${appId}.${newTemplate.name}`;\n // customTemplateRegistry.delete(tplName);\n customTemplates.define(tplName, {\n bricks: newTemplate.bricks,\n proxy: newTemplate.proxy,\n state: newTemplate.state\n });\n updateTemplatePreviewSettings(appId, newTemplate.name, settings);\n}\nexport function updateTemplatePreviewSettings(appId, templateId, settings) {\n _updatePreviewSettings(appId, `\\${APP.homepage}/_dev_only_/template-preview/${templateId}`, [{\n brick: templateId,\n ...pick(settings, \"properties\", \"events\", \"lifeCycle\", \"context\", \"slots\", \"children\")\n }]);\n}\nfunction getSnippetPreviewPath(snippetId) {\n return `\\${APP.homepage}/_dev_only_/snippet-preview/${snippetId}`;\n}\nexport function updateStoryboardBySnippet(appId, snippetData) {\n var _snippetData$bricks;\n _updatePreviewSettings(appId, getSnippetPreviewPath(snippetData.snippetId), (_snippetData$bricks = snippetData.bricks) !== null && _snippetData$bricks !== void 0 && _snippetData$bricks.length ? snippetData.bricks : [{\n brick: \"span\"\n }], snippetData.context);\n}\nexport const updateSnippetPreviewSettings = updateStoryboardBySnippet;\nfunction _updatePreviewSettings(appId, path, bricks, context) {\n const {\n routes\n } = _internalApiGetStoryboardInBootstrapData(appId);\n const previewRouteIndex = routes.findIndex(route => route.path === path);\n const newPreviewRoute = {\n path,\n bricks,\n context,\n menu: false,\n exact: true\n };\n if (previewRouteIndex === -1) {\n routes.unshift(newPreviewRoute);\n } else {\n routes.splice(previewRouteIndex, 1, newPreviewRoute);\n }\n}\nexport function getContextValue(name, _ref3) {\n let {\n tplStateStoreId\n } = _ref3;\n const runtimeContext = _internalApiGetRuntimeContext();\n if (tplStateStoreId) {\n const tplStateStore = getTplStateStore({\n ...runtimeContext,\n tplStateStoreId\n }, \"STATE\");\n return tplStateStore.getValue(name);\n }\n return runtimeContext.ctxStore.getValue(name);\n}\nexport function getAllContextValues(_ref4) {\n let {\n tplStateStoreId\n } = _ref4;\n const runtimeContext = _internalApiGetRuntimeContext();\n if (tplStateStoreId) {\n const tplStateStore = getTplStateStore({\n ...runtimeContext,\n tplStateStoreId\n }, \"STATE\");\n return tplStateStore.getAllValues();\n }\n return runtimeContext.ctxStore.getAllValues();\n}\nexport { getBrickPackages };\nexport function getBrickPackagesById(id) {\n return getBrickPackages().find(pkg => pkg.id ? pkg.id === id : pkg.filePath.startsWith(`${id}/`));\n}\n\n/**\n * Support loading v3 bricks only.\n */\nexport function loadBricks(bricks) {\n return loadBricksImperatively(bricks, getBrickPackages());\n}\n\n/**\n * Try the brick packages passed in, before using from bootstrap.\n */\nexport function loadEditors(editors, brickPackages) {\n return loadEditorsImperatively(editors, brickPackages !== null && brickPackages !== void 0 ? brickPackages : getBrickPackages());\n}\nexport function getRenderId() {\n return _internalApiGetRenderId();\n}\nexport async function getAddedContracts(storyboardPatch, _ref5) {\n let {\n appId,\n updateStoryboardType,\n collectUsedContracts\n } = _ref5;\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId);\n let updatedStoryboard;\n\n // 拿到更新部分的 storyboard 配置,然后扫描一遍,找到新增的 contracts\n if (updateStoryboardType === \"route\") {\n updatedStoryboard = {\n routes: [storyboardPatch]\n };\n } else if (updateStoryboardType === \"template\") {\n updatedStoryboard = {\n meta: {\n customTemplates: [storyboardPatch]\n }\n };\n } else if (updateStoryboardType === \"snippet\") {\n var _storyboard$routes;\n // snippet 是放在挂载 route 里预览,通过 previewPath 拿到当前修改 route\n const snippetPreviewPath = getSnippetPreviewPath(storyboardPatch.snippetId);\n const currentRoute = storyboard === null || storyboard === void 0 || (_storyboard$routes = storyboard.routes) === null || _storyboard$routes === void 0 ? void 0 : _storyboard$routes.find(route => route.path === snippetPreviewPath);\n updatedStoryboard = {\n routes: [currentRoute]\n };\n }\n const addedContracts = [];\n if (updatedStoryboard && collectUsedContracts) {\n const contractApis = await collectUsedContracts(updatedStoryboard);\n contractApis.forEach(api => {\n var _storyboard$meta;\n const [_, namespaceId, name] = api.match(/(.*)@(.*):\\d\\.\\d\\.\\d/);\n if (!(storyboard !== null && storyboard !== void 0 && (_storyboard$meta = storyboard.meta) !== null && _storyboard$meta !== void 0 && (_storyboard$meta = _storyboard$meta.contracts) !== null && _storyboard$meta !== void 0 && _storyboard$meta.some(contract => contract.namespaceId === namespaceId && contract.name === name))) {\n addedContracts.push(api);\n }\n });\n }\n return addedContracts;\n}\nexport async function debugDataValue(debugData, _ref6) {\n let {\n tplStateStoreId,\n routeId\n } = _ref6;\n const runtimeContext = {\n ..._internalApiGetRuntimeContext(),\n tplStateStoreId,\n match: getMatchedRoute(routeId)\n };\n if (debugData.resolve) {\n return resolveData(debugData.resolve, runtimeContext, {\n cache: \"reload\"\n });\n }\n return asyncComputeRealValue(debugData.value, runtimeContext);\n}\nexport function getLegalRuntimeValue(options) {\n var _runtimeContext$overr;\n const runtimeContext = _internalApiGetRuntimeContext();\n return {\n app: (_runtimeContext$overr = runtimeContext === null || runtimeContext === void 0 ? void 0 : runtimeContext.overrideApp) !== null && _runtimeContext$overr !== void 0 ? _runtimeContext$overr : runtimeContext === null || runtimeContext === void 0 ? void 0 : runtimeContext.app,\n location: pick(location, [\"href\", \"origin\", \"hostname\", \"host\"]),\n ...pick(runtimeContext, [\"query\", \"sys\"]),\n match: getMatchedRoute(options === null || options === void 0 ? void 0 : options.routeId)\n };\n}\nexport { setRealTimeDataInspectRoot, addRealTimeDataInspectHook } from \"./data/realTimeDataInspect.js\";\nexport { legacyDoTransform, legacyTransformProperties, legacyTransformIntermediateData } from \"./legacy_transform.js\";\n//# sourceMappingURL=secret_internals.js.map","import { getAllContextValues } from \"../secret_internals.js\";\nexport let realTimeDataInspectRoot;\nexport const RealTimeDataInspectHooks = [];\nexport function setRealTimeDataInspectRoot(root) {\n realTimeDataInspectRoot = root;\n const data = getAllContextValues({\n tplStateStoreId: root.tplStateStoreId\n });\n callRealTimeDataInspectHooks({\n changeType: \"initialize\",\n tplStateStoreId: root.tplStateStoreId,\n detail: {\n data\n }\n });\n}\nexport function addRealTimeDataInspectHook(hook) {\n RealTimeDataInspectHooks.push(hook);\n}\nexport function callRealTimeDataInspectHooks(detail) {\n setTimeout(() => {\n for (const hook of RealTimeDataInspectHooks) {\n try {\n hook(detail);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(`RealTimeDataInspectHook failed (${detail.changeType}):`, error);\n }\n }\n });\n}\n//# sourceMappingURL=realTimeDataInspect.js.map","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\nimport EventTarget from \"@ungap/event-target\";\nimport { pull } from \"lodash\";\nimport { eventCallbackFactory, listenerFactory } from \"../bindListeners.js\";\nimport { asyncCheckIf, checkIf } from \"../compute/checkIf.js\";\nimport { asyncComputeRealValue, computeRealValue } from \"../compute/computeRealValue.js\";\nimport { resolveData } from \"./resolveData.js\";\nimport { resolveDataStore } from \"./resolveDataStore.js\";\nimport { handleHttpError } from \"../../handleHttpError.js\";\nimport { computePropertyValue } from \"../compute/computeRealProperties.js\";\nimport { _internalApiGetRenderId } from \"../Runtime.js\";\nimport { callRealTimeDataInspectHooks, realTimeDataInspectRoot } from \"./realTimeDataInspect.js\";\nimport { isStrictMode } from \"../../isStrictMode.js\";\nconst supportContextResolveTriggerBrickLifeCycle = [\"onBeforePageLoad\", \"onPageLoad\", \"onBeforePageLeave\", \"onPageLeave\", \"onAnchorLoad\", \"onAnchorUnload\"];\nexport class DataStore {\n // 把 `rendererContext` 放在参数列表的最后,并作为可选,以减少测试文件的调整\n constructor(type, hostBrick, rendererContext, stateStoreId) {\n _defineProperty(this, \"type\", void 0);\n _defineProperty(this, \"data\", new Map());\n _defineProperty(this, \"changeEventType\", void 0);\n _defineProperty(this, \"pendingStack\", []);\n _defineProperty(this, \"hostBrick\", void 0);\n _defineProperty(this, \"stateStoreId\", void 0);\n _defineProperty(this, \"batchUpdate\", false);\n _defineProperty(this, \"batchUpdateContextsNames\", []);\n _defineProperty(this, \"rendererContext\", void 0);\n _defineProperty(this, \"routeMap\", new WeakMap());\n _defineProperty(this, \"routeStackMap\", new WeakMap());\n this.type = type;\n this.changeEventType = this.type === \"FORM_STATE\" ? \"formstate.change\" : this.type === \"STATE\" ? \"state.change\" : \"context.change\";\n this.hostBrick = hostBrick;\n this.rendererContext = rendererContext;\n this.stateStoreId = stateStoreId;\n }\n has(name) {\n return this.data.has(name);\n }\n getAllValues() {\n return Object.fromEntries([...this.data.entries()].map(_ref => {\n let [name, {\n value\n }] = _ref;\n return [name, value];\n }));\n }\n getValue(name) {\n var _this$data$get;\n return (_this$data$get = this.data.get(name)) === null || _this$data$get === void 0 ? void 0 : _this$data$get.value;\n }\n notifyRealTimeDataChange(name, value) {\n if (realTimeDataInspectRoot) {\n const {\n tplStateStoreId\n } = realTimeDataInspectRoot;\n if (tplStateStoreId ? this.type === \"STATE\" && this.stateStoreId === tplStateStoreId : this.type === \"CTX\") {\n callRealTimeDataInspectHooks({\n changeType: \"update\",\n tplStateStoreId,\n detail: {\n name,\n value\n }\n });\n }\n }\n }\n getAffectListByContext(name) {\n const affectNames = [name];\n this.data.forEach((value, key) => {\n if (value.deps) {\n const isInDeps = value.deps.some(item => affectNames.includes(item));\n isInDeps && affectNames.push(key) && affectNames.push(...this.getAffectListByContext(key));\n }\n });\n affectNames.shift();\n return [...new Set(affectNames)];\n }\n updateValues(values, method, argsFactory) {\n this.batchUpdate = true;\n this.batchUpdateContextsNames = values.map(item => item.name);\n if ([...new Set(this.batchUpdateContextsNames)].length !== this.batchUpdateContextsNames.length) {\n throw new Error(`Batch update not allow to update same item`);\n }\n const updateContexts = {};\n const affectContexts = {};\n const affectDepsContextNames = [];\n values.forEach(arg => {\n const {\n name,\n value\n } = argsFactory([arg]);\n const updateContextItem = this.data.get(name);\n affectDepsContextNames.push(...this.getAffectListByContext(name));\n updateContextItem && (updateContexts[name] = updateContextItem);\n this.updateValue(name, value, method);\n });\n affectDepsContextNames.filter(item => !updateContexts[item]).forEach(name => {\n const affectContextItem = this.data.get(name);\n affectContextItem && (affectContexts[name] = affectContextItem);\n });\n const triggerEvent = contexts => {\n for (const key in contexts) {\n var _context$eventTarget;\n const context = contexts[key];\n (_context$eventTarget = context.eventTarget) === null || _context$eventTarget === void 0 || _context$eventTarget.dispatchEvent(new CustomEvent(this.changeEventType, {\n detail: context.value\n }));\n }\n };\n triggerEvent(updateContexts);\n triggerEvent(affectContexts);\n this.batchUpdate = false;\n return;\n }\n updateValue(name, value, method, callback, callbackRuntimeContext) {\n const item = this.data.get(name);\n if (!item) {\n throw new Error(`${this.type} '${name}' is not defined`);\n }\n if (method === \"refresh\" || method === \"load\") {\n if (!item.useResolve) {\n throw new Error(`You can not ${method} \"${this.type}.${name}\" which is not using resolve`);\n }\n let promise;\n if (method === \"load\") {\n // Try to reuse previous request when calling `load`.\n if (item.loaded) {\n promise = Promise.resolve(item.value);\n } else if (item.loading) {\n promise = item.loading;\n }\n }\n const shouldDismiss = error => {\n var _this$rendererContext;\n // If render twice immediately, flow API contracts maybe cleared before\n // the second rendering, while the page load handlers of the first\n // rendering can't be cancelled, which throws `FlowApiNotFoundError`.\n // So we ignore error reporting for this case.\n let renderId;\n 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();\n };\n if (!promise) {\n promise = item.loading = item.load({\n cache: method === \"load\" ? \"default\" : \"reload\",\n ...value\n });\n // Do not use the chained promise, since the callbacks need the original promise.\n promise.then(val => {\n this.finishLoad(item, val);\n }, err => {\n // Let users override error handling.\n if (item.useResolve && !shouldDismiss(err) && !(callback !== null && callback !== void 0 && callback.error)) {\n handleHttpError(err);\n }\n });\n }\n if (callback) {\n const callbackFactory = eventCallbackFactory(callback, callbackRuntimeContext);\n promise.then(val => {\n callbackFactory(\"success\")({\n value: val\n });\n callbackFactory(\"finally\")();\n }, err => {\n if (!shouldDismiss(err) && callback.error) {\n callbackFactory(\"error\")(err);\n }\n callbackFactory(\"finally\")();\n });\n }\n return;\n }\n if (method === \"replace\") {\n item.value = value;\n } else if (method === \"assign\") {\n if (isObject(item.value)) {\n Object.assign(item.value, value);\n } else {\n // eslint-disable-next-line no-console\n console.warn(`Non-object current value of \"${this.type}.${name}\" for \"context.assign\", try \"context.replace\" instead.`);\n item.value = value;\n }\n } else {\n // method === \"set\"\n // `context.set` and `state.set` is similar to React's setState,\n // which accepts either a value or an updater function.\n // And if the new value is the same as the current one, do nothing.\n let nextValue = value;\n if (typeof value === \"function\") {\n nextValue = value(item.value);\n }\n if (Object.is(item.value, nextValue)) {\n return;\n }\n item.value = nextValue;\n }\n if (this.batchUpdate) return;\n item.eventTarget.dispatchEvent(new CustomEvent(this.changeEventType, {\n detail: item.value\n }));\n }\n finishLoad(item, value) {\n if (!item.useResolve) {\n // This happens when a tracked conditional resolve switches from\n // resolve to fallback after an dep update triggered refresh but\n // before it's been resolved.\n return;\n }\n item.loaded = true;\n item.value = value;\n item.eventTarget.dispatchEvent(new CustomEvent(this.changeEventType, {\n detail: value\n }));\n }\n define(dataConfs, runtimeContext, asyncHostPropertyEntries, routePath) {\n if (Array.isArray(dataConfs) && dataConfs.length > 0) {\n const pending = resolveDataStore(dataConfs, dataConf => this.resolve(dataConf, runtimeContext, asyncHostPropertyEntries, routePath), this.type, isStrictMode(runtimeContext));\n if (Array.isArray(routePath)) {\n for (const route of routePath) {\n const stack = this.routeStackMap.get(route);\n if (stack) {\n stack.add(pending);\n } else {\n this.routeStackMap.set(route, new Set([pending]));\n }\n }\n }\n this.pendingStack.push(pending);\n }\n }\n onChange(dataName, listener) {\n var _this$data$get2;\n const eventTarget = (_this$data$get2 = this.data.get(dataName)) === null || _this$data$get2 === void 0 ? void 0 : _this$data$get2.eventTarget;\n eventTarget === null || eventTarget === void 0 || eventTarget.addEventListener(this.changeEventType, listener);\n return () => {\n eventTarget === null || eventTarget === void 0 || eventTarget.removeEventListener(this.changeEventType, listener);\n };\n }\n async waitFor(dataNames) {\n for (const {\n pendingContexts\n } of this.pendingStack) {\n await Promise.all([...dataNames].map(ctx => {\n const p = pendingContexts.get(ctx);\n return p;\n }));\n }\n }\n async waitForAll() {\n for (const {\n pendingResult\n } of this.pendingStack) {\n await pendingResult;\n }\n }\n\n /**\n * After mount, dispatch the change event when an async data is loaded.\n *\n * If param `route` is present, handle data defined in that route (or its descendants) only.\n */\n mountAsyncData(route) {\n this.data.forEach(item => {\n var _this$routeMap$get;\n if (item.async && (!route || (_this$routeMap$get = this.routeMap.get(route)) !== null && _this$routeMap$get !== void 0 && _this$routeMap$get.has(item.name))) {\n // istanbul ignore next\n if (item.asyncMounted) {\n // eslint-disable-next-line no-console\n console.error(`Async data \"${item.name}\" already mounted. This is a bug of Brick Next, please report it.`);\n return;\n }\n item.asyncMounted = true;\n // An async data always has `loading`\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n item.loading.then(value => {\n this.finishLoad(item, value);\n });\n }\n });\n }\n async resolve(dataConf, runtimeContext, asyncHostPropertyEntries, routePath) {\n if (!(await asyncCheckIf(dataConf, runtimeContext))) {\n return false;\n }\n let value;\n if (asyncHostPropertyEntries && (this.type === \"STATE\" ? dataConf.expose : this.type === \"FORM_STATE\")) {\n value = await computePropertyValue(asyncHostPropertyEntries, dataConf.name);\n }\n let load;\n let loading;\n let useResolve;\n let trackConditionalResolve;\n let resolvePolicy;\n if (value === undefined) {\n if (dataConf.resolve) {\n const hasFallbackValue = hasOwnProperty(dataConf, \"value\");\n // Track conditional resolve only if all matches:\n // - Track enabled\n // - Has fallback value\n // - Referencing other data in `resolve.if`\n trackConditionalResolve = dataConf.track && hasFallbackValue && hasOwnProperty(dataConf.resolve, \"if\") && strictCollectMemberUsage(dataConf.resolve.if, this.type).size > 0;\n const resolveConf = {\n transform: \"value\",\n ...dataConf.resolve\n };\n useResolve = await asyncCheckIf(dataConf.resolve, runtimeContext);\n if (useResolve || trackConditionalResolve) {\n load = async options => {\n var _this$rendererContext2;\n return (await resolveData(resolveConf, runtimeContext, {\n ...options,\n renderId: (_this$rendererContext2 = this.rendererContext) === null || _this$rendererContext2 === void 0 ? void 0 : _this$rendererContext2.renderId\n })).value;\n };\n }\n if (useResolve) {\n // `async` take precedence over `lazy`\n resolvePolicy = dataConf.resolve.async ? \"async\" : dataConf.resolve.lazy ? \"lazy\" : \"eager\";\n if (resolvePolicy === \"eager\") {\n value = await load();\n } else if (resolvePolicy === \"async\") {\n loading = load();\n }\n } else if (!hasFallbackValue) {\n return false;\n }\n }\n if ((!useResolve || resolvePolicy !== \"eager\") && dataConf.value !== undefined) {\n // If the context has no resolve, just use its `value`.\n // Or if the resolve is ignored or lazy, use its `value` as a fallback.\n value = await asyncComputeRealValue(dataConf.value, runtimeContext);\n }\n }\n if (this.data.has(dataConf.name)) {\n throw new Error(`${this.type} '${dataConf.name}' has already been declared`);\n }\n const newData = {\n name: dataConf.name,\n value,\n // This is required for tracking context, even if no `onChange` is specified.\n eventTarget: new EventTarget(),\n useResolve,\n load,\n loaded: resolvePolicy === \"eager\",\n loading,\n async: resolvePolicy === \"async\",\n deps: []\n };\n if (resolvePolicy === \"lazy\") {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const {\n trigger\n } = dataConf.resolve;\n if (trigger && supportContextResolveTriggerBrickLifeCycle.includes(trigger)) {\n var _this$rendererContext3;\n (_this$rendererContext3 = this.rendererContext) === null || _this$rendererContext3 === void 0 || _this$rendererContext3.registerArbitraryLifeCycle(trigger, () => {\n this.updateValue(dataConf.name, undefined, \"load\");\n });\n }\n }\n if (dataConf.onChange) {\n newData.eventTarget.addEventListener(this.changeEventType, listenerFactory(dataConf.onChange, runtimeContext));\n }\n if (dataConf.track) {\n const deps = strictCollectMemberUsage(trackConditionalResolve ? [dataConf.resolve, dataConf.value] : load ? dataConf.resolve : dataConf.value, this.type);\n !load && (newData.deps = [...deps]);\n for (const dep of deps) {\n this.onChange(dep, this.batchAddListener(() => {\n newData.useResolve = trackConditionalResolve ? checkIf(dataConf.resolve, runtimeContext) : !!load;\n if (newData.useResolve) {\n this.updateValue(dataConf.name, {\n cache: \"default\"\n }, \"refresh\");\n } else {\n this.updateValue(dataConf.name, computeRealValue(dataConf.value, runtimeContext), \"replace\");\n }\n }, dataConf));\n }\n }\n newData.eventTarget.addEventListener(this.changeEventType, e => {\n this.notifyRealTimeDataChange(dataConf.name, e.detail);\n });\n this.data.set(dataConf.name, newData);\n if (Array.isArray(routePath)) {\n for (const route of routePath) {\n const names = this.routeMap.get(route);\n if (names) {\n names.add(dataConf.name);\n } else {\n this.routeMap.set(route, new Set([dataConf.name]));\n }\n }\n }\n return true;\n }\n\n /**\n * For sub-routes to be incrementally rendered,\n * dispose their data and pending tasks.\n */\n disposeDataInRoutes(routes) {\n for (const route of routes) {\n const names = this.routeMap.get(route);\n if (names !== undefined) {\n for (const name of names) {\n this.data.delete(name);\n }\n this.routeMap.delete(route);\n }\n const stack = this.routeStackMap.get(route);\n if (stack !== undefined) {\n pull(this.pendingStack, ...stack);\n this.routeStackMap.delete(route);\n }\n }\n }\n batchAddListener(listener, contextConf) {\n return event => {\n if (this.batchUpdate && this.batchUpdateContextsNames.includes(contextConf.name)) {\n return;\n }\n listener(event);\n };\n }\n}\n//# sourceMappingURL=DataStore.js.map","import { collectMemberUsage } from \"@next-core/utils/storyboard\";\nexport function resolveDataStore(contextConfs, resolveContext) {\n let keyword = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"CTX\";\n let strict = arguments.length > 3 ? arguments[3] : undefined;\n const dependencyMap = getDependencyMapOfContext(contextConfs, keyword, strict);\n // There maybe multiple context confs for a specific name, since there are conditional contexts.\n // This is a map of how many pending context confs for each context name.\n const pendingDeps = new Map();\n for (const contextName of Array.from(dependencyMap.keys()).map(contextConf => contextConf.name)) {\n var _pendingDeps$get;\n pendingDeps.set(contextName, ((_pendingDeps$get = pendingDeps.get(contextName)) !== null && _pendingDeps$get !== void 0 ? _pendingDeps$get : 0) + 1);\n }\n const hasNonStaticUsage = Array.from(dependencyMap.values()).some(stats => stats.hasNonStaticUsage);\n const processed = new WeakSet();\n const deferredContexts = new Map();\n const pendingContexts = new Map([...new Set(contextConfs.map(contextConf => contextConf.name))].map(contextName => {\n const promise = new Promise((resolve, reject) => {\n deferredContexts.set(contextName, {\n resolve,\n reject\n });\n });\n // The pending context will be caught by the renderer.\n promise.catch(() => {});\n return [contextName, promise];\n }));\n const wrapResolve = async contextConf => {\n var _pendingDeps$get2;\n processed.add(contextConf);\n const resolved = await resolveContext(contextConf);\n dependencyMap.delete(contextConf);\n const left = (_pendingDeps$get2 = pendingDeps.get(contextConf.name)) !== null && _pendingDeps$get2 !== void 0 ? _pendingDeps$get2 : 0;\n if (resolved) {\n // Assert: contextConf.name exists in deferredContexts\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n deferredContexts.get(contextConf.name).resolve();\n pendingDeps.delete(contextConf.name);\n if (left === 0) {\n throw new Error(`Duplicated context defined: ${contextConf.name}`);\n }\n } else {\n // Assert: left >= 1\n if (left === 1) {\n // Assert: contextConf.name exists in deferredContexts\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n deferredContexts.get(contextConf.name).resolve();\n pendingDeps.delete(contextConf.name);\n } else {\n pendingDeps.set(contextConf.name, left - 1);\n }\n }\n await scheduleNext();\n };\n let scheduleAsSerial = hasNonStaticUsage;\n async function scheduleNext() {\n const readyContexts = Array.from(dependencyMap.entries()).filter(predicateNextResolveFactory(pendingDeps, scheduleAsSerial)).map(entry => entry[0]).filter(contextConf => !processed.has(contextConf));\n await Promise.all(readyContexts.map(wrapResolve));\n }\n const pendingResult = scheduleNext().then(async () => {\n // If there are still contexts left, it implies one of these situations:\n // - Circular contexts.\n // Such as: a depends on b, while b depends on a.\n // - Related contexts are all ignored.\n // Such as: a depends on b,\n // while both them are ignore by a falsy result of `if`.\n if (dependencyMap.size > 0) {\n // This will throw if circular contexts detected.\n detectCircularContexts(dependencyMap, keyword);\n scheduleAsSerial = true;\n await scheduleNext();\n }\n // There maybe ignored contexts which are still not fulfilled.\n // We treat them as RESOLVED.\n for (const deferred of deferredContexts.values()) {\n deferred.resolve();\n }\n }).catch(error => {\n // There maybe contexts left not fulfilled, when an error occurred.\n // We treat them as REJECTED.\n for (const deferred of deferredContexts.values()) {\n deferred.reject(error);\n }\n throw error;\n });\n // The pending result will be caught by the renderer.\n pendingResult.catch(() => {});\n return {\n pendingResult,\n pendingContexts\n };\n}\nfunction predicateNextResolveFactory(pendingDeps, scheduleAsSerial) {\n return (entry, index) =>\n // When contexts contain computed CTX accesses, it implies a dynamic dependency map.\n // So make them process sequentially, keep the same behavior as before.\n scheduleAsSerial ? index === 0 :\n // A context is ready when it has no pending dependencies.\n ![...entry[1].usedProperties].some(dep => pendingDeps.has(dep));\n}\nexport function getDependencyMapOfContext(contextConfs) {\n let keyword = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"CTX\";\n let strict = arguments.length > 2 ? arguments[2] : undefined;\n const depsMap = new Map();\n for (const contextConf of contextConfs) {\n const data = [contextConf.if, contextConf.value, contextConf.resolve];\n const stats = collectMemberUsage(data, keyword);\n if (!strict && keyword === \"STATE\") {\n const legacyTplStats = collectMemberUsage(data, \"TPL\");\n // Merge stats with legacyTplStats\n for (const prop of legacyTplStats.usedProperties) {\n stats.usedProperties.add(prop);\n }\n if (legacyTplStats.hasNonStaticUsage) {\n stats.hasNonStaticUsage = true;\n }\n }\n depsMap.set(contextConf, stats);\n }\n return depsMap;\n}\nfunction detectCircularContexts(dependencyMap, keyword) {\n const duplicatedMap = new Map(dependencyMap);\n const pendingDeps = new Set(Array.from(duplicatedMap.keys()).map(contextConf => contextConf.name));\n const next = () => {\n let processedAtLeastOne = false;\n for (const [contextConf, stats] of duplicatedMap.entries()) {\n if (![...stats.usedProperties].some(dep => pendingDeps.has(dep))) {\n duplicatedMap.delete(contextConf);\n pendingDeps.delete(contextConf.name);\n processedAtLeastOne = true;\n }\n }\n if (processedAtLeastOne) {\n next();\n }\n };\n next();\n if (duplicatedMap.size > 0) {\n throw new ReferenceError(`Circular ${keyword} detected: ${Array.from(duplicatedMap.keys()).map(contextConf => contextConf.name).join(\", \")}`);\n }\n}\n//# sourceMappingURL=resolveDataStore.js.map","import { hasOwnProperty } from \"@next-core/utils/general\";\nimport { clamp } from \"lodash\";\nimport { symbolForAsyncComputedPropsFromHost, symbolForTPlExternalForEachIndex, symbolForTPlExternalForEachItem, symbolForTPlExternalForEachSize, symbolForTplStateStoreId } from \"./constants.js\";\nimport { computePropertyValue } from \"../compute/computeRealProperties.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\nexport function setupTemplateProxy(hostContext, ref, slots, slotted) {\n const {\n reversedProxies,\n asyncHostPropertyEntries,\n externalSlots,\n tplStateStoreId,\n hostBrick\n } = hostContext;\n let asyncComputedProps;\n if (ref && reversedProxies) {\n const propertyProxies = reversedProxies.properties.get(ref);\n if (propertyProxies) {\n const getComputedProps = asyncHostProps => {\n return propertyProxies.map(_ref => {\n let {\n from,\n to\n } = _ref;\n const filtered = asyncHostProps.filter(entry => entry[0] === from);\n if (filtered.length > 0 && to.refProperty) {\n return [to.refProperty, computePropertyValue(filtered, from), true];\n }\n }).filter(Boolean);\n };\n asyncComputedProps = getComputedProps(asyncHostPropertyEntries);\n }\n const slotProxies = reversedProxies.slots.get(ref);\n if (slotProxies && slotted) {\n throw new Error(`Can not have proxied slot ref when the ref target has a slot element child, check your template \"${hostBrick.type}\" and ref \"${ref}\"`);\n }\n if (slotProxies && externalSlots) {\n // Use an approach like template-literal's quasis:\n // `quasi0${0}quais1${1}quasi2...`\n // Every quasi (indexed by `refPosition`) can be slotted with multiple bricks.\n const quasisMap = new Map();\n for (const {\n from,\n to\n } of slotProxies) {\n var _externalSlots$from$b, _externalSlots$from, _to$refSlot, _to$refPosition;\n const insertBricks = (_externalSlots$from$b = (_externalSlots$from = externalSlots[from]) === null || _externalSlots$from === void 0 ? void 0 : _externalSlots$from.bricks) !== null && _externalSlots$from$b !== void 0 ? _externalSlots$from$b : [];\n if (!insertBricks.length) {\n continue;\n }\n const refToSlot = (_to$refSlot = to.refSlot) !== null && _to$refSlot !== void 0 ? _to$refSlot : from;\n let expandableSlot = quasisMap.get(refToSlot);\n if (!expandableSlot) {\n expandableSlot = [];\n // The size of quasis should be the existed slotted bricks' size plus one.\n const size = hasOwnProperty(slots, refToSlot) ? slots[refToSlot].bricks.length + 1 : 1;\n for (let i = 0; i < size; i += 1) {\n expandableSlot.push([]);\n }\n quasisMap.set(refToSlot, expandableSlot);\n }\n const refPosition = (_to$refPosition = to.refPosition) !== null && _to$refPosition !== void 0 ? _to$refPosition : -1;\n // External bricks of a template, should not access the template internal forEach `ITEM`.\n // For some existing templates who is *USING* this bug, we keep the old behavior.\n const hostHasForEach = hasOwnProperty(hostBrick.runtimeContext, \"forEachItem\");\n expandableSlot[clamp(refPosition < 0 ? expandableSlot.length + refPosition : refPosition, 0, expandableSlot.length - 1)].push(...(!hostHasForEach ? insertBricks : setupTemplateExternalBricksWithForEach(insertBricks, hostBrick.runtimeContext.forEachItem, hostBrick.runtimeContext.forEachIndex, hostBrick.runtimeContext.forEachSize)));\n }\n for (const [slotName, quasis] of quasisMap.entries()) {\n if (!hasOwnProperty(slots, slotName)) {\n slots[slotName] = {\n type: \"bricks\",\n bricks: []\n };\n }\n const slotConf = slots[slotName];\n slotConf.bricks = quasis.flatMap((bricks, index) => index < slotConf.bricks.length ? bricks.concat(slotConf.bricks[index]) : bricks);\n if (slotConf.bricks.length === 0) {\n delete slots[slotName];\n }\n }\n }\n }\n return {\n [symbolForAsyncComputedPropsFromHost]: asyncComputedProps,\n [symbolForTplStateStoreId]: tplStateStoreId\n };\n}\n\n// External bricks of a template, have the same forEachItem context as their host.\nexport function setupTemplateExternalBricksWithForEach(bricks, forEachItem, forEachIndex, forEachSize) {\n return bricks.map(_ref2 => {\n var _childrenToSlots;\n let {\n children,\n slots,\n ...brick\n } = _ref2;\n return {\n ...brick,\n [symbolForTPlExternalForEachItem]: forEachItem,\n [symbolForTPlExternalForEachIndex]: forEachIndex,\n [symbolForTPlExternalForEachSize]: forEachSize,\n // Keep `:forEach` bricks as original, since they have their own forEachItem context.\n slots: brick.brick === \":forEach\" ? childrenToSlots(children, slots) : Object.fromEntries(Object.entries((_childrenToSlots = childrenToSlots(children, slots)) !== null && _childrenToSlots !== void 0 ? _childrenToSlots : {}).map(_ref3 => {\n let [slotName, slotConf] = _ref3;\n return [slotName, slotConf.type === \"routes\" ? {\n type: \"routes\",\n routes: setupTemplateExternalRoutesWithForEach(slotConf.routes, forEachItem, forEachIndex, forEachSize)\n } : {\n type: \"bricks\",\n bricks: setupTemplateExternalBricksWithForEach(slotConf.bricks, forEachItem, forEachIndex, forEachSize)\n }];\n }))\n };\n });\n}\nfunction setupTemplateExternalRoutesWithForEach(routes, forEachItem, forEachIndex, forEachSize) {\n return routes.map(route => route.type === \"routes\" ? {\n ...route,\n routes: setupTemplateExternalRoutesWithForEach(route.routes, forEachItem, forEachIndex, forEachSize)\n } : route.type === \"redirect\" ? route : {\n ...route,\n bricks: setupTemplateExternalBricksWithForEach(route.bricks, forEachItem, forEachIndex, forEachSize)\n });\n}\n//# sourceMappingURL=setupTemplateProxy.js.map","import { hasOwnProperty } from \"@next-core/utils/general\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport { setupTemplateExternalBricksWithForEach } from \"./setupTemplateProxy.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\nexport function replaceSlotWithSlottedBricks(brickConf, hostContext, expand) {\n var _brickConf$properties, _brickConf$properties2, _defaultSlots$$bricks, _defaultSlots$;\n // Currently, no support for `if` in a slot.\n if (brickConf.if != null && !brickConf.if || typeof brickConf.if === \"string\") {\n throw new Error(`Can not use \"if\" in a slot currently, check your template \"${hostContext.hostBrick.type}\"`);\n }\n const slot = String((_brickConf$properties = (_brickConf$properties2 = brickConf.properties) === null || _brickConf$properties2 === void 0 ? void 0 : _brickConf$properties2.name) !== null && _brickConf$properties !== void 0 ? _brickConf$properties : \"\");\n\n // Currently, no support for expression as slot name.\n if (isEvaluable(slot)) {\n throw new Error(`Can not use an expression as slot name \"${slot}\" currently, check your template \"${hostContext.hostBrick.type}\"`);\n }\n\n // Do not repeat the same slot name in a template.\n if (hostContext.usedSlots.has(slot)) {\n throw new Error(`Can not have multiple slots with the same name \"${slot}\", check your template \"${hostContext.hostBrick.type}\"`);\n }\n hostContext.usedSlots.add(slot);\n if (hostContext.externalSlots && hasOwnProperty(hostContext.externalSlots, slot)) {\n var _hostContext$external;\n const insertBricks = (_hostContext$external = hostContext.externalSlots[slot].bricks) !== null && _hostContext$external !== void 0 ? _hostContext$external : [];\n if (insertBricks.length > 0) {\n const hostCtx = hostContext.hostBrick.runtimeContext;\n // External bricks of a template, should not access the template internal forEach `ITEM`.\n // For some existing templates who is *USING* this bug, we keep the old behavior.\n const hostHasForEach = hasOwnProperty(hostCtx, \"forEachItem\");\n return hostHasForEach ? setupTemplateExternalBricksWithForEach(insertBricks, hostCtx.forEachItem, hostCtx.forEachIndex, hostCtx.forEachSize) : insertBricks;\n }\n }\n const defaultSlots = childrenToSlots(brickConf.children, brickConf.slots);\n return ((_defaultSlots$$bricks = defaultSlots === null || defaultSlots === void 0 || (_defaultSlots$ = defaultSlots[\"\"]) === null || _defaultSlots$ === void 0 ? void 0 : _defaultSlots$.bricks) !== null && _defaultSlots$$bricks !== void 0 ? _defaultSlots$$bricks : []).flatMap(item => expand(item, hostContext));\n}\n//# sourceMappingURL=replaceSlotWithSlottedBricks.js.map","import { isObject } from \"@next-core/utils/general\";\nimport { setupTemplateProxy } from \"./setupTemplateProxy.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\nimport { replaceSlotWithSlottedBricks } from \"./replaceSlotWithSlottedBricks.js\";\nexport function setupUseBrickInTemplate(props, hostContext) {\n function walk(props) {\n if (!isObject(props) || typeof props === \"function\") {\n return props;\n }\n if (Array.isArray(props)) {\n return props.map(walk);\n }\n return Object.fromEntries(Object.entries(props).map(_ref => {\n let [key, value] = _ref;\n return isObject(value) && key === \"useBrick\" ? Array.isArray(value) ? [key, value.flatMap(v => setup(v))] : [key, setup(value)] : [key, walk(value)];\n }).concat(Object.getOwnPropertySymbols(props).map(k => [k, props[k]])));\n }\n function setup(item, markSlotted) {\n if (item.brick === \"slot\") {\n markSlotted === null || markSlotted === void 0 || markSlotted();\n return replaceSlotWithSlottedBricks(item, hostContext, it => setup(it));\n }\n const {\n properties,\n slots: originalSlots,\n children,\n ...restConf\n } = item;\n const transpiledSlots = childrenToSlots(children, originalSlots);\n let slotted = false;\n const markChild = () => {\n slotted = true;\n };\n const slots = Object.fromEntries(Object.entries(transpiledSlots !== null && transpiledSlots !== void 0 ? transpiledSlots : {}).map(_ref2 => {\n var _slotConf$bricks;\n let [slotName, slotConf] = _ref2;\n return [slotName, {\n type: \"bricks\",\n bricks: ((_slotConf$bricks = slotConf.bricks) !== null && _slotConf$bricks !== void 0 ? _slotConf$bricks : []).flatMap(it => setup(it, markChild))\n }];\n }));\n return {\n ...restConf,\n properties: walk(properties),\n slots,\n ...setupTemplateProxy(hostContext, restConf.ref, slots, slotted)\n };\n }\n return walk(props);\n}\n//# sourceMappingURL=setupUseBrickInTemplate.js.map","import { uniqueId } from \"lodash\";\nimport { customTemplates } from \"../../CustomTemplates.js\";\nimport { DataStore } from \"../data/DataStore.js\";\nimport { setupTemplateProxy } from \"./setupTemplateProxy.js\";\nimport { setupUseBrickInTemplate } from \"./setupUseBrickInTemplate.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\nimport { hooks } from \"../Runtime.js\";\nimport { replaceSlotWithSlottedBricks } from \"./replaceSlotWithSlottedBricks.js\";\nimport { isolatedTemplateRegistryMap } from \"../IsolatedTemplates.js\";\nexport function expandCustomTemplate(tplTagName, brickConf, hostBrick, asyncHostPropertyEntries, rendererContext) {\n var _hooks$flowApi;\n const tplStateStoreId = uniqueId(\"tpl-state-\");\n const runtimeContext = {\n ...hostBrick.runtimeContext,\n tplStateStoreId\n };\n\n // There is a boundary for `forEach*` and `FORM_STATE` between template internals and externals.\n delete runtimeContext.forEachItem;\n delete runtimeContext.forEachIndex;\n delete runtimeContext.forEachSize;\n delete runtimeContext.formStateStoreId;\n const tplStateStore = new DataStore(\"STATE\", hostBrick, rendererContext, tplStateStoreId);\n runtimeContext.tplStateStoreMap.set(tplStateStoreId, tplStateStore);\n if (runtimeContext.tplStateStoreScope) {\n runtimeContext.tplStateStoreScope.push(tplStateStore);\n }\n const {\n bricks,\n proxy,\n state,\n contracts\n } = hostBrick.runtimeContext.isolatedRoot ? isolatedTemplateRegistryMap.get(hostBrick.runtimeContext.isolatedRoot).get(tplTagName) : customTemplates.get(tplTagName);\n hooks === null || hooks === void 0 || (_hooks$flowApi = hooks.flowApi) === null || _hooks$flowApi === void 0 || _hooks$flowApi.collectWidgetContract(contracts);\n tplStateStore.define(state, runtimeContext, asyncHostPropertyEntries);\n const {\n slots: originalExternalSlots,\n children: externalChildren,\n ...restBrickConf\n } = brickConf;\n const newBrickConf = {\n ...restBrickConf,\n brick: tplTagName\n };\n hostBrick.tplHostMetadata = {\n internalBricksByRef: new Map(),\n tplStateStoreId,\n proxy\n };\n\n // Reversed proxies are used for expand storyboard before rendering page.\n const reversedProxies = {\n properties: new Map(),\n slots: new Map()\n // mergeBases: new Map(),\n };\n if (proxy !== null && proxy !== void 0 && proxy.properties) {\n for (const [from, to] of Object.entries(proxy.properties)) {\n let proxies = reversedProxies.properties.get(to.ref);\n if (!proxies) {\n proxies = [];\n reversedProxies.properties.set(to.ref, proxies);\n }\n proxies.push({\n from,\n to\n });\n }\n }\n if (proxy !== null && proxy !== void 0 && proxy.slots) {\n for (const [from, to] of Object.entries(proxy.slots)) {\n let proxies = reversedProxies.slots.get(to.ref);\n if (!proxies) {\n proxies = [];\n reversedProxies.slots.set(to.ref, proxies);\n }\n proxies.push({\n from,\n to\n });\n }\n }\n const hostContext = {\n reversedProxies,\n asyncHostPropertyEntries,\n externalSlots: childrenToSlots(externalChildren, originalExternalSlots),\n tplStateStoreId,\n hostBrick: hostBrick,\n usedSlots: new Set()\n };\n newBrickConf.slots = {\n \"\": {\n type: \"bricks\",\n bricks: bricks.flatMap(item => expandBrickInTemplate(item, hostContext))\n }\n };\n return newBrickConf;\n}\nfunction expandBrickInTemplate(brickConfInTemplate, hostContext, markSlotted) {\n // Ignore `if: null` to make `looseCheckIf` working.\n if (brickConfInTemplate.if === null) {\n delete brickConfInTemplate.if;\n }\n if (brickConfInTemplate.brick === \"slot\") {\n markSlotted === null || markSlotted === void 0 || markSlotted();\n return replaceSlotWithSlottedBricks(brickConfInTemplate, hostContext, expandBrickInTemplate);\n }\n const {\n properties,\n slots: slotsInTemplate,\n children: childrenInTemplate,\n ...restBrickConfInTemplate\n } = brickConfInTemplate;\n const transpiledSlots = childrenToSlots(childrenInTemplate, slotsInTemplate);\n let slotted = false;\n const markChild = () => {\n slotted = true;\n };\n const slots = Object.fromEntries(Object.entries(transpiledSlots !== null && transpiledSlots !== void 0 ? transpiledSlots : {}).map(_ref => {\n var _slotConf$bricks;\n let [slotName, slotConf] = _ref;\n return [slotName, {\n type: \"bricks\",\n bricks: ((_slotConf$bricks = slotConf.bricks) !== null && _slotConf$bricks !== void 0 ? _slotConf$bricks : []).flatMap(item => expandBrickInTemplate(item, hostContext, markChild))\n }];\n }));\n return {\n ...restBrickConfInTemplate,\n properties: setupUseBrickInTemplate(properties, hostContext),\n slots,\n ...setupTemplateProxy(hostContext, restBrickConfInTemplate.ref, slots, slotted)\n };\n}\n//# sourceMappingURL=expandCustomTemplate.js.map","export const FORM_RENDERER = \"form-renderer.form-renderer\";\nexport const symbolForFormStateStoreId = Symbol.for(\"form.stateStoreId\");\n//# sourceMappingURL=constants.js.map","import { hasOwnProperty } from \"@next-core/utils/general\";\nimport { uniqueId } from \"lodash\";\nimport { DataStore } from \"../data/DataStore.js\";\nimport { getDefaultProperties } from \"./getDefaultProperties.js\";\nimport { symbolForFormStateStoreId } from \"./constants.js\";\nexport const formContainers = [\"forms.general-form\", \"form.general-form\", \"eo-form\"];\nexport function expandFormRenderer(formData, hostBrickConf, hostBrick, asyncHostPropertyEntries, rendererContext) {\n var _normalizedFormData$c, _hostBrickConf$proper;\n const normalizedFormData = typeof formData === \"string\" ? JSON.parse(formData) : formData;\n const formStateStoreId = uniqueId(\"form-state-\");\n const runtimeContext = {\n ...hostBrick.runtimeContext,\n formStateStoreId\n };\n\n // There is a boundary for `forEach*` and `STATE` between form internals and externals.\n delete runtimeContext.forEachItem;\n delete runtimeContext.forEachIndex;\n delete runtimeContext.forEachSize;\n delete runtimeContext.tplStateStoreId;\n const formStateStore = new DataStore(\"FORM_STATE\", undefined, rendererContext, formStateStoreId);\n runtimeContext.formStateStoreMap.set(formStateStoreId, formStateStore);\n if (runtimeContext.formStateStoreScope) {\n runtimeContext.formStateStoreScope.push(formStateStore);\n }\n\n // Always add a state of `params`.\n const context = (_normalizedFormData$c = normalizedFormData.context) !== null && _normalizedFormData$c !== void 0 ? _normalizedFormData$c : [];\n if (!context.some(ctx => ctx.name === \"params\")) {\n context.push({\n name: \"params\"\n });\n }\n formStateStore.define(context, runtimeContext, asyncHostPropertyEntries);\n const formConf = formSchemaToBrick(normalizedFormData.formSchema, normalizedFormData.fields, formStateStoreId);\n if (formContainers.includes(formConf.brick) && hostBrickConf.events) {\n formConf.events = mergeEvents(formConf.events, hostBrickConf.events);\n }\n const renderRoot = typeof ((_hostBrickConf$proper = hostBrickConf.properties) === null || _hostBrickConf$proper === void 0 ? void 0 : _hostBrickConf$proper.renderRoot) !== \"boolean\" || hostBrickConf.properties.renderRoot;\n if (renderRoot) {\n return {\n ...hostBrickConf,\n slots: undefined,\n children: [{\n brick: \"eo-micro-view\",\n properties: {\n style: {\n padding: \"12px\"\n }\n },\n children: [formConf]\n }]\n };\n }\n return {\n ...hostBrickConf,\n slots: undefined,\n children: [formConf]\n };\n}\nfunction formSchemaToBrick(schema, fields, formStateStoreId) {\n const {\n id,\n bricks,\n events,\n context,\n mountPoint,\n instanceId: iid\n } = schema;\n let {\n brick,\n properties\n } = schema;\n\n // 根据字段类型获取默认配置\n const field = fields.find(item => item.fieldId === id);\n if (field) {\n const defaults = getDefaultProperties(field);\n if (!brick) {\n brick = defaults.brick;\n }\n properties = {\n ...defaults.properties,\n ...properties\n };\n }\n const brickConf = {\n brick,\n properties,\n iid,\n slot: mountPoint,\n events,\n context,\n children: formSchemasToBricks(bricks, fields, formStateStoreId),\n [symbolForFormStateStoreId]: formStateStoreId\n };\n if (hasOwnProperty(schema, \"if\")) {\n brickConf.if = schema.if;\n }\n return brickConf;\n}\nfunction formSchemasToBricks(schemas, fields, formStateStoreId) {\n if (Array.isArray(schemas)) {\n return schemas.map(schema => formSchemaToBrick(schema, fields, formStateStoreId));\n }\n}\nfunction mergeEvents(targetEvents, sourceEvents) {\n const events = targetEvents !== null && targetEvents !== void 0 ? targetEvents : {};\n for (const [eventType, handlers] of Object.entries(sourceEvents)) {\n events[eventType] = hasOwnProperty(events, eventType) ? [events[eventType], handlers].flat() : handlers;\n }\n return events;\n}\n//# sourceMappingURL=expandFormRenderer.js.map","export function getDefaultProperties(field) {\n let defaultValue;\n const commonProps = {\n id: field.fieldId,\n name: field.fieldId,\n label: field.name,\n dataset: {\n testid: field.fieldId\n }\n };\n const getReadOnlyAndRequired = () => {\n var _field$limit, _field$limit2;\n return {\n readOnly: (_field$limit = field.limit) === null || _field$limit === void 0 ? void 0 : _field$limit.includes(\"READONLY\"),\n required: (_field$limit2 = field.limit) === null || _field$limit2 === void 0 ? void 0 : _field$limit2.includes(\"REQUIRED\")\n };\n };\n switch (field.fieldType) {\n case \"INT\":\n defaultValue = {\n brick: \"forms.general-input-number\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n placeholder: field.description,\n precision: 0,\n inputBoxStyle: {\n width: \"100%\"\n }\n }\n };\n break;\n case \"BOOLEAN\":\n defaultValue = {\n brick: \"forms.general-switch\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired()\n }\n };\n break;\n case \"FLOAT\":\n defaultValue = {\n brick: \"forms.general-input-number\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n placeholder: field.description,\n inputBoxStyle: {\n width: \"100%\"\n }\n }\n };\n break;\n case \"ENUM\":\n defaultValue = {\n brick: \"forms.general-select\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n options: [{\n label: \"选项一\",\n value: 1\n }, {\n label: \"选项二\",\n value: 2\n }],\n placeholder: field.description,\n inputBoxStyle: {\n width: \"100%\"\n }\n }\n };\n break;\n case \"ENUMS\":\n defaultValue = {\n brick: \"forms.general-select\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n mode: \"multiple\",\n options: [{\n label: \"选项一\",\n value: 1\n }, {\n label: \"选项二\",\n value: 2\n }],\n placeholder: field.description,\n inputBoxStyle: {\n width: \"100%\"\n }\n }\n };\n break;\n case \"DATE\":\n case \"TIME\":\n defaultValue = {\n brick: \"forms.general-date-picker\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n placeholder: field.description\n }\n };\n break;\n case \"IP\":\n defaultValue = {\n brick: \"forms.general-input\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n placeholder: field.description,\n pattern: \"((^s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))s*$)|(^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*$))\",\n message: {\n pattern: \"输入字符不匹配IP格式\"\n }\n }\n };\n break;\n case \"JSON\":\n defaultValue = {\n brick: \"forms.general-textarea\",\n properties: {\n ...commonProps\n }\n };\n break;\n case \"ARRAY\":\n defaultValue = {\n brick: \"forms.general-select\",\n properties: {\n ...commonProps\n }\n };\n break;\n case \"STRUCTURE\":\n case \"STRUCTURE_ARRAY\":\n defaultValue = {\n brick: \"forms.cmdb-instance-select-panel\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired()\n }\n };\n break;\n default:\n defaultValue = {\n brick: \"forms.general-input\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n placeholder: field.description\n }\n };\n }\n return defaultValue;\n}\n//# sourceMappingURL=getDefaultProperties.js.map","import _classPrivateMethodInitSpec from \"@babel/runtime/helpers/classPrivateMethodInitSpec\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _assertClassBrand from \"@babel/runtime/helpers/assertClassBrand\";\nimport { FORM_RENDERER } from \"./constants.js\";\nimport { formContainers } from \"./expandFormRenderer.js\";\nvar _FormElement_brand = /*#__PURE__*/new WeakSet();\nclass FormElement extends HTMLElement {\n constructor() {\n super(...arguments);\n _classPrivateMethodInitSpec(this, _FormElement_brand);\n _defineProperty(this, \"renderRoot\", void 0);\n }\n get $$typeof() {\n return \"formRenderer\";\n }\n validate() {\n _assertClassBrand(_FormElement_brand, this, _proxyFormMethod).call(this, \"validate\");\n }\n setInitValue() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _assertClassBrand(_FormElement_brand, this, _proxyFormMethod).call(this, \"setInitValue\", args);\n }\n resetFields() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n _assertClassBrand(_FormElement_brand, this, _proxyFormMethod).call(this, \"resetFields\", args);\n }\n getFieldsValue() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return _assertClassBrand(_FormElement_brand, this, _proxyFormMethod).call(this, \"getFieldsValue\", args);\n }\n}\nfunction _proxyFormMethod(method) {\n var _this$firstElementChi, _containerElement$tag;\n let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n const containerElement = this.renderRoot !== false ? (_this$firstElementChi = this.firstElementChild) === null || _this$firstElementChi === void 0 ? void 0 : _this$firstElementChi.firstElementChild : this.firstElementChild;\n const tagName = containerElement === null || containerElement === void 0 || (_containerElement$tag = containerElement.tagName) === null || _containerElement$tag === void 0 ? void 0 : _containerElement$tag.toLowerCase();\n if (formContainers.includes(tagName)) {\n return containerElement[method](...args);\n } else {\n // eslint-disable-next-line no-console\n console.error(`no ${method} method in the container element`, {\n container: tagName\n });\n }\n}\nexport function registerFormRenderer() {\n customElements.get(FORM_RENDERER) || customElements.define(FORM_RENDERER, FormElement);\n}\n//# sourceMappingURL=registerFormRenderer.js.map","import { loadBricksImperatively, BrickLoadError } from \"@next-core/loader\";\nimport { HttpResponseError } from \"@next-core/http\";\nimport { i18n } from \"@next-core/i18n\";\nimport { httpErrorToString } from \"../handleHttpError.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { _internalApiGetPresetBricks, getBrickPackages } from \"./Runtime.js\";\nimport { K, NS } from \"./i18n.js\";\nimport { getBasePath } from \"../getBasePath.js\";\nexport class PageError extends Error {\n constructor(message) {\n // Pass remaining arguments (including vendor specific ones) to parent constructor\n super(message);\n this.name = \"PageError\";\n\n // Maintains proper stack trace for where our error was thrown (only available on V8)\n // istanbul ignore else\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrickLoadError);\n }\n }\n}\n\n/**\n * Will always resolve\n */\nexport async function ErrorNode(error, returnNode, pageLevel) {\n const {\n title,\n variant,\n showLink,\n showDescription\n } = getRefinedErrorConf(error);\n if (pageLevel) {\n var _presetBricks$error;\n const presetBricks = _internalApiGetPresetBricks();\n const errorBrick = (_presetBricks$error = presetBricks.error) !== null && _presetBricks$error !== void 0 ? _presetBricks$error : \"illustrations.error-message\";\n if (errorBrick !== false) {\n const linkBrick = \"eo-link\";\n const bricks = (showLink ? [errorBrick, linkBrick] : [errorBrick]).filter(brick => !customElements.get(brick));\n try {\n await Promise.race([loadBricksImperatively(bricks, getBrickPackages()),\n // Timeout after 3 seconds\n new Promise((_resolve, reject) => setTimeout(() => {\n reject(new Error(\"timeout\"));\n }, 3e3))]);\n const node = {\n tag: RenderTag.BRICK,\n type: errorBrick,\n properties: {\n errorTitle: title,\n description: showDescription ? httpErrorToString(error) : undefined,\n variant,\n dataset: {\n errorBoundary: \"\"\n }\n },\n runtimeContext: null,\n return: returnNode\n };\n if (showLink) {\n node.child = getLinkNode(showLink, linkBrick, node, \"\");\n }\n return node;\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\"Failed to load brick:\", bricks.join(\", \"), e);\n }\n }\n }\n const useDefaultError = pageLevel && !!customElements.get(\"easyops-default-error\");\n const node = {\n tag: RenderTag.BRICK,\n type: useDefaultError ? \"easyops-default-error\" : \"div\",\n properties: {\n errorTitle: title,\n dataset: {\n errorBoundary: \"\"\n },\n style: {\n color: \"var(--color-error)\"\n }\n },\n runtimeContext: null,\n return: returnNode\n };\n const descriptionNode = {\n tag: RenderTag.BRICK,\n type: \"div\",\n properties: {\n textContent: useDefaultError ? showDescription ? httpErrorToString(error) : \"\" : showDescription ? `${title}: ${httpErrorToString(error)}` : title\n },\n runtimeContext: null,\n return: node\n };\n node.child = descriptionNode;\n if (pageLevel && showLink) {\n descriptionNode.sibling = getLinkNode(showLink, \"a\", node, useDefaultError ? \"link\" : \"\");\n }\n return node;\n}\nfunction getLinkNode(showLink, brick, parent, slotId) {\n return {\n tag: RenderTag.BRICK,\n type: brick,\n slotId,\n properties: {\n textContent: showLink === \"home\" ? i18n.t(`${NS}:${K.GO_BACK_HOME}`) : showLink === \"reload\" ? i18n.t(`${NS}:${K.RELOAD}`) : i18n.t(`${NS}:${K.GO_BACK_TO_PREVIOUS_PAGE}`),\n href: showLink === \"home\" ? getBasePath() : showLink === \"reload\" ? location.href : undefined\n },\n events: showLink === \"previous\" ? {\n click: {\n action: \"history.goBack\"\n }\n } : undefined,\n runtimeContext: null,\n return: parent\n };\n}\nfunction getRefinedErrorConf(error) {\n var _error$response, _error$responseJson;\n if (error instanceof PageError) {\n return error.message === \"page blocked\" ? {\n showLink: \"home\",\n title: i18n.t(`${NS}:${K.LICENSE_BLOCKED}`),\n variant: \"no-permission\"\n } : error.message === \"app not found\" ? {\n showLink: \"home\",\n title: i18n.t(`${NS}:${K.APP_NOT_FOUND}`),\n variant: \"no-permission\"\n } : {\n showLink: \"home\",\n variant: \"not-found\",\n title: i18n.t(`${NS}:${K.PAGE_NOT_FOUND}`)\n };\n }\n if (error instanceof BrickLoadError || error instanceof Error && error.name === \"ChunkLoadError\" || error instanceof Event && error.type === \"error\" && error.target instanceof HTMLScriptElement) {\n return {\n showDescription: true,\n title: i18n.t(`${NS}:${K.NETWORK_ERROR}`),\n variant: \"internet-disconnected\",\n showLink: \"reload\"\n };\n }\n if (error instanceof HttpResponseError && ((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 403) {\n return {\n showLink: \"previous\",\n showDescription: true,\n title: i18n.t(`${NS}:${K.NO_PERMISSION}`),\n variant: \"no-permission\"\n };\n }\n if (error instanceof HttpResponseError && ((_error$responseJson = error.responseJson) === null || _error$responseJson === void 0 ? void 0 : _error$responseJson.code) === \"200000\") {\n return {\n showDescription: true,\n title: i18n.t(`${NS}:${K.LICENSE_EXPIRED}`),\n variant: \"license-expired\"\n };\n }\n return {\n showLink: \"previous\",\n showDescription: true,\n title: i18n.t(`${NS}:${K.UNKNOWN_ERROR}`),\n variant: \"unknown-error\"\n };\n}\n//# sourceMappingURL=ErrorNode.js.map","import { enqueueStableLoadBricks, flushStableLoadBricks, loadBricksImperatively, loadProcessorsImperatively, loadScript, loadStyle } from \"@next-core/loader\";\nimport { isTrackAll } from \"@next-core/cook\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\nimport { debounce, isEqual, omitBy } from \"lodash\";\nimport { asyncCheckBrickIf } from \"./compute/checkIf.js\";\nimport { asyncComputeRealPropertyEntries, constructAsyncProperties } from \"./compute/computeRealProperties.js\";\nimport { resolveData } from \"./data/resolveData.js\";\nimport { asyncComputeRealValue } from \"./compute/computeRealValue.js\";\nimport { listenOnTrackingContext, trackAfterInitial } from \"./compute/listenOnTrackingContext.js\";\nimport { matchRoute, matchRoutes } from \"./matchRoutes.js\";\nimport { symbolForAsyncComputedPropsFromHost, symbolForTPlExternalForEachIndex, symbolForTPlExternalForEachItem, symbolForTPlExternalForEachSize, symbolForTplStateStoreId } from \"./CustomTemplates/constants.js\";\nimport { expandCustomTemplate } from \"./CustomTemplates/expandCustomTemplate.js\";\nimport { getTagNameOfCustomTemplate, getTplStateStore } from \"./CustomTemplates/utils.js\";\nimport { customTemplates } from \"../CustomTemplates.js\";\nimport { getBrickPackages, hooks } from \"./Runtime.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { getTracks } from \"./compute/getTracks.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../isStrictMode.js\";\nimport { FORM_RENDERER, symbolForFormStateStoreId } from \"./FormRenderer/constants.js\";\nimport { expandFormRenderer } from \"./FormRenderer/expandFormRenderer.js\";\nimport { registerFormRenderer } from \"./FormRenderer/registerFormRenderer.js\";\nimport { isPreEvaluated } from \"./compute/evaluate.js\";\nimport { getPreEvaluatedRaw } from \"./compute/evaluate.js\";\nimport { matchHomepage } from \"./matchStoryboard.js\";\nimport { listenerFactory } from \"./bindListeners.js\";\nimport { setupRootRuntimeContext } from \"./setupRootRuntimeContext.js\";\nimport { setMatchedRoute } from \"./routeMatchedMap.js\";\nimport { ErrorNode } from \"./ErrorNode.js\";\nexport async function renderRoutes(returnNode, routes, _runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, isIncremental, initialTracker) {\n const matched = await matchRoutes(routes, _runtimeContext);\n const output = getEmptyRenderOutput();\n const menuRequestNode = output.menuRequestNode = {\n return: menuRequestReturnNode\n };\n switch (matched) {\n case \"missed\":\n break;\n case \"unauthenticated\":\n output.unauthenticated = true;\n break;\n default:\n {\n var _hooks$checkPermissio;\n const route = output.route = matched.route;\n output.path = matched.match.path;\n const runtimeContext = {\n ..._runtimeContext,\n match: matched.match\n };\n if (route.iid) {\n setMatchedRoute(route.iid, matched.match);\n }\n if (isIncremental) {\n runtimeContext.ctxStore.disposeDataInRoutes(routes);\n }\n const routePath = parentRoutes.concat(route);\n runtimeContext.ctxStore.define(route.context, runtimeContext, undefined, routePath);\n runtimeContext.pendingPermissionsPreCheck.push(hooks === null || hooks === void 0 || (_hooks$checkPermissio = hooks.checkPermissions) === null || _hooks$checkPermissio === void 0 ? void 0 : _hooks$checkPermissio.preCheckPermissionsForBrickOrRoute(route, value => asyncComputeRealValue(value, runtimeContext)));\n\n // Currently, this is only used for brick size-checking: these bricks\n // will be loaded before page rendering, but they will NOT be rendered.\n const {\n preLoadBricks\n } = route;\n if (Array.isArray(preLoadBricks)) {\n output.blockingList.push(loadBricksImperatively(preLoadBricks, getBrickPackages()));\n }\n if (route.type === \"redirect\") {\n let redirectTo;\n if (typeof route.redirect === \"string\") {\n redirectTo = await asyncComputeRealValue(route.redirect, runtimeContext);\n } else {\n const resolved = await resolveData({\n transform: \"redirect\",\n ...route.redirect\n }, runtimeContext);\n redirectTo = resolved.redirect;\n }\n if (typeof redirectTo !== \"string\") {\n // eslint-disable-next-line no-console\n console.error(\"Unexpected redirect result:\", redirectTo);\n throw new Error(`Unexpected type of redirect result: ${typeof redirectTo}`);\n }\n output.redirect = {\n path: redirectTo\n };\n } else {\n const menuRequest = loadMenu(route.menu, runtimeContext);\n if (menuRequest) {\n menuRequestNode.request = menuRequest;\n }\n if (!isIncremental) {\n rendererContext.memoizeMenuRequestNode(routes, menuRequestNode);\n }\n const usedProcessors = strictCollectMemberUsage(route.context, \"PROCESSORS\", 2);\n if (usedProcessors.size > 0) {\n output.blockingList.push(catchLoad(loadProcessorsImperatively(usedProcessors, getBrickPackages()), \"processors\", [...usedProcessors].join(\", \"), rendererContext.unknownBricks));\n }\n let newOutput;\n if (route.type === \"routes\") {\n newOutput = await renderRoutes(returnNode, route.routes, runtimeContext, rendererContext, routePath, menuRequestNode, slotId, undefined, initialTracker);\n } else {\n newOutput = await renderBricks(returnNode, route.bricks, runtimeContext, rendererContext, routePath, menuRequestNode, slotId, undefined, initialTracker);\n }\n mergeRenderOutput(output, newOutput);\n appendMenuRequestNode(menuRequestNode, newOutput.menuRequestNode);\n }\n }\n }\n return output;\n}\nexport async function renderBricks(returnNode, bricks, runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, tplStack, initialTracker) {\n setupRootRuntimeContext(bricks, runtimeContext, true);\n const output = getEmptyRenderOutput();\n // 多个构件并行异步转换,但转换的结果按原顺序串行合并。\n const rendered = await Promise.all(bricks.map(brickConf => renderBrick(returnNode, brickConf, runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, tplStack && new Map(tplStack), initialTracker)));\n rendered.forEach(item => {\n mergeRenderOutput(output, item);\n });\n return output;\n}\nexport async function renderBrick(returnNode, brickConf, _runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId) {\n let tplStack = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : new Map();\n let initialTracker = arguments.length > 8 ? arguments[8] : undefined;\n try {\n return await legacyRenderBrick(returnNode, brickConf, _runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, tplStack, initialTracker);\n } catch (error) {\n if (brickConf.errorBoundary) {\n // eslint-disable-next-line no-console\n console.error(\"Error caught by error boundary:\", error);\n return {\n node: await ErrorNode(error, returnNode),\n blockingList: []\n };\n } else {\n throw error;\n }\n }\n}\nasync function legacyRenderBrick(returnNode, brickConf, _runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, tplStack, initialTracker) {\n var _hooks$checkPermissio2;\n const output = getEmptyRenderOutput();\n if (!brickConf.brick) {\n if (brickConf.template) {\n // eslint-disable-next-line no-console\n console.error(\"Legacy templates are dropped in v3:\", brickConf);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"Invalid brick:\", brickConf);\n }\n return output;\n }\n\n // Translate `if: \"<%= ... %>\"` to `brick: \":if\", dataSource: \"<%= ... %>\"`.\n // In other words, translate tracking if expressions to tracking control nodes of `:if`.\n const {\n if: brickIf,\n permissionsPreCheck,\n ...restBrickConf\n } = brickConf;\n if (isGeneralizedTrackAll(brickIf)) {\n return renderBrick(returnNode, {\n brick: \":if\",\n iid: brickConf.iid,\n dataSource: brickIf,\n // `permissionsPreCheck` maybe required before computing `if`.\n permissionsPreCheck,\n slots: {\n \"\": {\n type: \"bricks\",\n bricks: [restBrickConf]\n }\n },\n // These symbols have to be copied to the new brick conf.\n ...Object.getOwnPropertySymbols(brickConf).reduce((acc, symbol) => ({\n ...acc,\n [symbol]: brickConf[symbol]\n }), {})\n }, _runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, tplStack, initialTracker);\n }\n const tplStateStoreId = brickConf[symbolForTplStateStoreId];\n const formStateStoreId = brickConf[symbolForFormStateStoreId];\n const runtimeContext = {\n ..._runtimeContext,\n tplStateStoreId,\n formStateStoreId\n };\n if (hasOwnProperty(brickConf, symbolForTPlExternalForEachItem)) {\n // The external bricks of a template should restore their `forEach*` from their host.\n runtimeContext.forEachItem = brickConf[symbolForTPlExternalForEachItem];\n runtimeContext.forEachIndex = brickConf[symbolForTPlExternalForEachIndex];\n runtimeContext.forEachSize = brickConf[symbolForTPlExternalForEachSize];\n }\n const strict = isStrictMode(runtimeContext);\n const {\n context\n } = brickConf;\n // istanbul ignore next\n if (Array.isArray(context) && context.length > 0) {\n warnAboutStrictMode(strict, \"Defining context on bricks\", \"check your brick:\", brickConf);\n if (!strict) {\n runtimeContext.ctxStore.define(context, runtimeContext);\n }\n }\n runtimeContext.pendingPermissionsPreCheck.push(hooks === null || hooks === void 0 || (_hooks$checkPermissio2 = hooks.checkPermissions) === null || _hooks$checkPermissio2 === void 0 ? void 0 : _hooks$checkPermissio2.preCheckPermissionsForBrickOrRoute(brickConf, value => asyncComputeRealValue(value, runtimeContext)));\n if (!(await asyncCheckBrickIf(brickConf, runtimeContext))) {\n return output;\n }\n const brickName = brickConf.brick;\n if (brickName.startsWith(\":\")) {\n var _brickConf$lifeCycle;\n ensureValidControlBrick(brickName);\n const {\n dataSource\n } = brickConf;\n const {\n contextNames,\n stateNames\n } = getTracks(dataSource);\n const tracking = !!(contextNames || stateNames);\n const lowerLevelRenderControlNode = async (runtimeContext, tracker, trackDataSource) => {\n var _slots$slot;\n // First, compute the `dataSource`\n const computedDataSource = await asyncComputeRealValue(dataSource, runtimeContext);\n if (trackDataSource) {\n trackAfterInitial(runtimeContext, [{\n contextNames,\n stateNames,\n propValue: dataSource\n }], tracker);\n }\n\n // Then, get the matched slot.\n const slot = brickName === \":forEach\" ? \"\" : brickName === \":switch\" ? String(computedDataSource) : computedDataSource ? \"\" : \"else\";\n\n // Don't forget to transpile children to slots.\n const slots = childrenToSlots(brickConf.children, brickConf.slots);\n\n // Then, get the bricks in that matched slot.\n const bricks = slots && hasOwnProperty(slots, slot) && ((_slots$slot = slots[slot]) === null || _slots$slot === void 0 ? void 0 : _slots$slot.bricks);\n const output = getEmptyRenderOutput();\n const abstractNode = {\n tag: RenderTag.ABSTRACT,\n return: returnNode,\n iid: brickConf.iid\n };\n output.node = abstractNode;\n if (!Array.isArray(bricks)) {\n return output;\n }\n let childrenOutput;\n switch (brickName) {\n case \":forEach\":\n {\n if (!Array.isArray(computedDataSource)) {\n break;\n }\n childrenOutput = await renderForEach(abstractNode, computedDataSource, bricks, runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, tplStack, tracker);\n break;\n }\n case \":if\":\n case \":switch\":\n {\n childrenOutput = await renderBricks(abstractNode, bricks, runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, tplStack, tracker);\n }\n }\n if (childrenOutput) {\n abstractNode.child = childrenOutput.node;\n mergeRenderOutput(output, {\n ...childrenOutput,\n node: undefined\n });\n }\n return output;\n };\n const renderControlNode = async _ref => {\n let {\n type,\n runtimeContext,\n tplStateStoreScope,\n formStateStoreScope\n } = _ref;\n let changedAfterInitial = false;\n const tracker = {\n disposes: [],\n listener: () => {\n changedAfterInitial = true;\n }\n };\n let rerenderCount = 0;\n let rawOutput;\n let uninitialized = true;\n\n // When perform an incremental sub-route render, for control nodes,\n // context maybe changed just after their data source being computed,\n // as well as props of their children bricks being computed, and before\n // bricks being mounted. Thus these changes may not take any effects.\n // So we need to track the context changes after the initial render,\n // and perform re-renders for these control nodes if necessary.\n while (uninitialized || changedAfterInitial) {\n changedAfterInitial = false;\n rawOutput = await lowerLevelRenderControlNode(runtimeContext, tracker, uninitialized && type === \"initial\");\n\n // Changes may happen during `postAsyncRender`.\n if (!changedAfterInitial && type === \"rerender\") {\n const scopedStores = [...tplStateStoreScope, ...formStateStoreScope];\n await postAsyncRender(rawOutput, runtimeContext, [runtimeContext.ctxStore, ...scopedStores]);\n }\n tracker.disposes.forEach(dispose => dispose());\n tracker.disposes.length = 0;\n uninitialized = false;\n // istanbul ignore next\n if (++rerenderCount > 10) {\n throw new Error(`Maximum rerender stack overflowed (iid: ${brickConf.iid})`);\n }\n }\n return rawOutput;\n };\n let controlledOutput = await renderControlNode({\n type: \"initial\",\n runtimeContext\n });\n const {\n onMount,\n onUnmount\n } = (_brickConf$lifeCycle = brickConf.lifeCycle) !== null && _brickConf$lifeCycle !== void 0 ? _brickConf$lifeCycle : {};\n if (tracking) {\n var _runtimeBrick$dispose;\n let renderId = 0;\n const listener = async () => {\n // TODO(steve): start listeners when mounting, and handle changes between rendering and mounting.\n if (!returnNode.mounted || returnNode.disposed) {\n return;\n }\n const currentRenderId = ++renderId;\n const [scopedRuntimeContext, tplStateStoreScope, formStateStoreScope] = createScopedRuntimeContext(runtimeContext);\n const reControlledOutput = await renderControlNode({\n type: \"rerender\",\n runtimeContext: scopedRuntimeContext,\n tplStateStoreScope,\n formStateStoreScope\n });\n\n // Ignore stale renders\n if (renderId === currentRenderId && returnNode.mounted && !returnNode.disposed) {\n if (onUnmount) {\n listenerFactory(onUnmount, runtimeContext)(new CustomEvent(\"unmount\", {\n detail: {\n rerender: true\n }\n }));\n }\n rendererContext.reRender(returnNode, reControlledOutput.node, controlledOutput.node);\n controlledOutput = reControlledOutput;\n if (onMount) {\n listenerFactory(onMount, scopedRuntimeContext)(new CustomEvent(\"mount\", {\n detail: {\n rerender: true\n }\n }));\n }\n for (const store of [...tplStateStoreScope, ...formStateStoreScope]) {\n store.mountAsyncData();\n }\n }\n };\n // Enable leading invocation, to keep tracking orders.\n const debouncedListener = debounce(listener, 0, {\n leading: true,\n trailing: true\n });\n const runtimeBrick = returnNode.tag === RenderTag.ROOT ? null : returnNode;\n const disposes = runtimeBrick ? (_runtimeBrick$dispose = runtimeBrick.disposes) !== null && _runtimeBrick$dispose !== void 0 ? _runtimeBrick$dispose : runtimeBrick.disposes = [] : [];\n if (contextNames) {\n for (const contextName of contextNames) {\n disposes.push(runtimeContext.ctxStore.onChange(contextName, debouncedListener));\n }\n }\n if (stateNames) {\n for (const contextName of stateNames) {\n const tplStateStore = getTplStateStore(runtimeContext, \"STATE\", `: \"${dataSource}\"`);\n disposes.push(tplStateStore.onChange(contextName, debouncedListener));\n }\n }\n }\n if (onMount) {\n rendererContext.registerArbitraryLifeCycle(\"onMount\", () => {\n listenerFactory(onMount, runtimeContext)(new CustomEvent(\"mount\", {\n detail: {\n rerender: false\n }\n }));\n });\n }\n if (onUnmount) {\n rendererContext.registerArbitraryLifeCycle(\"onUnmount\", () => {\n listenerFactory(onUnmount, runtimeContext)(new CustomEvent(\"unmount\", {\n detail: {\n rerender: false\n }\n }));\n });\n }\n return controlledOutput;\n }\n\n // Widgets need to be defined before rendering.\n if (/\\.tpl-/.test(brickName) && !customTemplates.get(brickName)) {\n await catchLoad(loadBricksImperatively([brickName], getBrickPackages()), \"brick\", brickName, rendererContext.unknownBricks);\n }\n const tplTagName = getTagNameOfCustomTemplate(brickName, runtimeContext);\n if (tplTagName) {\n var _tplStack$get;\n const tplCount = (_tplStack$get = tplStack.get(tplTagName)) !== null && _tplStack$get !== void 0 ? _tplStack$get : 0;\n if (tplCount >= 10) {\n throw new Error(`Maximum custom template stack overflowed: \"${tplTagName}\"`);\n }\n tplStack.set(tplTagName, tplCount + 1);\n } else if (brickName.includes(\"-\") && !customElements.get(brickName)) {\n if (brickName === FORM_RENDERER) {\n registerFormRenderer();\n } else {\n output.blockingList.push(catchLoad(enqueueStableLoadBricks([brickName], getBrickPackages()), \"brick\", brickName, rendererContext.unknownBricks));\n }\n }\n let formData;\n let confProps;\n if (brickName === FORM_RENDERER) {\n var _brickConf$properties, _brickConf$properties2;\n ({\n formData,\n ...confProps\n } = (_brickConf$properties = brickConf.properties) !== null && _brickConf$properties !== void 0 ? _brickConf$properties : {});\n if ((_brickConf$properties2 = brickConf.properties) !== null && _brickConf$properties2 !== void 0 && _brickConf$properties2.compute) {\n formData = await asyncComputeRealValue(formData, runtimeContext);\n }\n } else {\n if (runtimeContext.inUseBrick) {\n // Keep v2 behavior for `useBrick`: treat `transform` as `properties`.\n const transform = brickConf.transform;\n if (transform) {\n warnAboutStrictMode(strict, \"`useBrick.transform`\", 'please use \"properties\" instead, check your useBrick:', brickConf);\n if (!strict) {\n confProps = {\n ...brickConf.properties,\n ...transform\n };\n }\n }\n }\n confProps !== null && confProps !== void 0 ? confProps : confProps = brickConf.properties;\n }\n const trackingContextList = [];\n const asyncPropertyEntries = asyncComputeRealPropertyEntries(confProps, runtimeContext, trackingContextList);\n const computedPropsFromHost = brickConf[symbolForAsyncComputedPropsFromHost];\n if (computedPropsFromHost) {\n asyncPropertyEntries.push(...computedPropsFromHost);\n }\n const isScript = brickName === \"script\";\n if (isScript || brickName === \"link\") {\n const props = await constructAsyncProperties(asyncPropertyEntries);\n if (isScript ? props.src : props.rel === \"stylesheet\" && props.href) {\n var _window$PUBLIC_ROOT;\n const prefix = (_window$PUBLIC_ROOT = window.PUBLIC_ROOT) !== null && _window$PUBLIC_ROOT !== void 0 ? _window$PUBLIC_ROOT : \"\";\n if (isScript) {\n const {\n src,\n ...attrs\n } = props;\n await catchLoad(loadScript(src, prefix, attrs), \"script\", src, \"silent\");\n } else {\n const {\n href,\n ...attrs\n } = props;\n await catchLoad(loadStyle(href, prefix, attrs), \"stylesheet\", href, \"silent\");\n }\n return output;\n }\n }\n const brick = {\n tag: RenderTag.BRICK,\n type: tplTagName || brickName,\n return: returnNode,\n slotId,\n events: brickConf.events,\n runtimeContext,\n portal: brickConf.portal,\n iid: brickConf.iid,\n ref: brickConf.ref\n };\n output.node = brick;\n\n // 在最终挂载前,先加载所有可能用到的 processors。\n const usedProcessors = strictCollectMemberUsage([brickConf.events, brickConf.lifeCycle], \"PROCESSORS\", 2);\n if (usedProcessors.size > 0) {\n output.blockingList.push(catchLoad(loadProcessorsImperatively(usedProcessors, getBrickPackages()), \"processors\", [...usedProcessors].join(\", \"), rendererContext.unknownBricks));\n }\n\n // 加载构件属性和加载子构件等任务,可以并行。\n const blockingList = [];\n\n // Note: properties here has already been initialized.\n trackAfterInitial(runtimeContext, trackingContextList, initialTracker);\n const loadProperties = async () => {\n brick.properties = await constructAsyncProperties(asyncPropertyEntries);\n listenOnTrackingContext(brick, trackingContextList);\n };\n blockingList.push(loadProperties());\n rendererContext.registerBrickLifeCycle(brick, brickConf.lifeCycle);\n let expandedBrickConf = brickConf;\n if (tplTagName) {\n expandedBrickConf = expandCustomTemplate(tplTagName, brickConf, brick, asyncPropertyEntries, rendererContext);\n } else if (brickName === FORM_RENDERER) {\n expandedBrickConf = expandFormRenderer(formData, brickConf, brick, asyncPropertyEntries, rendererContext);\n }\n if (expandedBrickConf.portal) {\n // A portal brick has no slotId.\n brick.slotId = undefined;\n }\n let childRuntimeContext;\n if (tplTagName) {\n // There is a boundary for `forEachItem` between template internals and externals.\n childRuntimeContext = {\n ...runtimeContext\n };\n delete childRuntimeContext.forEachItem;\n delete childRuntimeContext.forEachIndex;\n delete childRuntimeContext.forEachSize;\n } else {\n childRuntimeContext = runtimeContext;\n }\n const loadChildren = async () => {\n const slots = childrenToSlots(expandedBrickConf.children, expandedBrickConf.slots);\n if (!slots) {\n return;\n }\n const routeSlotFromIndexToSlotId = new Map();\n const rendered = await Promise.all(Object.entries(slots).map(async (_ref2, index) => {\n let [childSlotId, slotConf] = _ref2;\n if (slotConf.type !== \"routes\") {\n return renderBricks(brick, slotConf.bricks, childRuntimeContext, rendererContext, parentRoutes, menuRequestReturnNode, childSlotId, tplStack, initialTracker);\n }\n let lastOutput = getEmptyRenderOutput();\n const abstractNode = {\n tag: RenderTag.ABSTRACT,\n return: brick\n };\n lastOutput.node = abstractNode;\n const parentRoute = parentRoutes[parentRoutes.length - 1];\n if (parentRoute !== null && parentRoute !== void 0 && parentRoute.incrementalSubRoutes) {\n routeSlotFromIndexToSlotId.set(index, childSlotId);\n rendererContext.performIncrementalRender(slotConf, parentRoutes, async (location, prevLocation) => {\n const {\n homepage\n } = childRuntimeContext.app;\n const {\n pathname\n } = location;\n // Ignore if any one of homepage and parent routes not matched.\n if (!matchHomepage(homepage, pathname) || !parentRoutes.every(route => {\n let prevMatch;\n let newMatch;\n return (prevMatch = matchRoute(route, homepage, prevLocation.pathname)) && (newMatch = matchRoute(route, homepage, pathname)) && (route !== parentRoute || isRouteParamsEqual(prevMatch.params, newMatch.params));\n })) {\n return false;\n }\n const [scopedRuntimeContext, tplStateStoreScope, formStateStoreScope] = createScopedRuntimeContext({\n ...childRuntimeContext,\n location,\n query: new URLSearchParams(location.search)\n });\n let failed = false;\n let incrementalOutput;\n let scopedStores = [];\n const newOutput = getEmptyRenderOutput();\n const newControlNode = {\n tag: RenderTag.ABSTRACT,\n return: brick\n };\n newOutput.node = newControlNode;\n try {\n incrementalOutput = await renderRoutes(newControlNode, slotConf.routes, scopedRuntimeContext, rendererContext, parentRoutes, menuRequestReturnNode, childSlotId, true);\n\n // Do not ignore incremental rendering even if all sub-routes are missed.\n // Since parent route is matched.\n if (incrementalOutput.route) {\n // Bailout if redirect or unauthenticated is set\n if (rendererContext.reBailout(incrementalOutput)) {\n return true;\n }\n scopedStores = [...tplStateStoreScope, ...formStateStoreScope];\n await postAsyncRender(incrementalOutput, scopedRuntimeContext, [scopedRuntimeContext.ctxStore, ...scopedStores]);\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Incremental sub-router failed:\", error);\n const result = await rendererContext.reCatch(error, newControlNode);\n if (!result) {\n return true;\n }\n ({\n failed,\n output: incrementalOutput\n } = result);\n }\n\n // istanbul ignore next: covered by e2e tests\n if (brick.disposed) {\n return true;\n }\n newControlNode.child = incrementalOutput.node;\n mergeRenderOutput(newOutput, {\n ...incrementalOutput,\n node: undefined\n });\n // Assert: no errors will be throw\n await rendererContext.reMergeMenuRequestNodes(menuRequestReturnNode, slotConf.routes, incrementalOutput.menuRequestNode);\n rendererContext.reRender(brick, newControlNode, lastOutput.node);\n lastOutput = newOutput;\n if (!failed) {\n scopedRuntimeContext.ctxStore.mountAsyncData(incrementalOutput.route);\n for (const store of scopedStores) {\n store.mountAsyncData();\n }\n }\n\n // Even if all sub-routes missed, treat the incremental rendering as performed.\n return true;\n });\n }\n const routesOutput = await renderRoutes(abstractNode, slotConf.routes, childRuntimeContext, rendererContext, parentRoutes, menuRequestReturnNode, childSlotId, undefined, initialTracker);\n abstractNode.child = routesOutput.node;\n mergeRenderOutput(output, {\n ...routesOutput,\n node: undefined\n });\n appendMenuRequestNode(menuRequestReturnNode, output.menuRequestNode = routesOutput.menuRequestNode);\n return lastOutput;\n }));\n const childrenOutput = {\n ...output,\n node: undefined,\n blockingList: [],\n menuRequestNode: undefined\n };\n rendered.forEach(item => {\n mergeRenderOutput(childrenOutput, item);\n mergeSiblingRenderMenuRequest(childrenOutput, item);\n });\n if (childrenOutput.node) {\n brick.child = childrenOutput.node;\n }\n mergeRenderOutput(output, {\n ...childrenOutput,\n node: undefined\n });\n appendMenuRequestNode(menuRequestReturnNode, output.menuRequestNode = childrenOutput.menuRequestNode);\n };\n blockingList.push(loadChildren());\n await Promise.all(blockingList);\n return output;\n}\nfunction isGeneralizedTrackAll(brickIf) {\n return typeof brickIf === \"string\" ? isTrackAll(brickIf) : isPreEvaluated(brickIf) &&\n // istanbul ignore next: covered by e2e tests\n isTrackAll(getPreEvaluatedRaw(brickIf));\n}\nfunction ensureValidControlBrick(brick) {\n if (brick !== \":forEach\" && brick !== \":if\" && brick !== \":switch\") {\n throw new Error(`Unknown storyboard control node: \"${brick}\"`);\n }\n}\nasync function renderForEach(returnNode, dataSource, bricks, runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, tplStack, initialTracker) {\n const output = getEmptyRenderOutput();\n const size = dataSource.length;\n const rendered = await Promise.all(dataSource.map((item, i) => Promise.all(bricks.map(brickConf => renderBrick(returnNode, brickConf, {\n ...runtimeContext,\n forEachItem: item,\n forEachIndex: i,\n forEachSize: size\n }, rendererContext, parentRoutes, menuRequestReturnNode, slotId, tplStack && new Map(tplStack), initialTracker)))));\n\n // 多层构件并行异步转换,但转换的结果按原顺序串行合并。\n rendered.flat().forEach(item => {\n mergeRenderOutput(output, item);\n });\n return output;\n}\nexport function getDataStores(runtimeContext) {\n return [runtimeContext.ctxStore, ...runtimeContext.tplStateStoreMap.values(), ...runtimeContext.formStateStoreMap.values()];\n}\nexport function postAsyncRender(output, runtimeContext, stores) {\n flushStableLoadBricks();\n return Promise.all([...output.blockingList, ...stores.map(store => store.waitForAll()), ...runtimeContext.pendingPermissionsPreCheck]);\n}\nexport function createScopedRuntimeContext(runtimeContext) {\n const tplStateStoreScope = [];\n const formStateStoreScope = [];\n const scopedRuntimeContext = {\n ...runtimeContext,\n tplStateStoreScope,\n formStateStoreScope\n };\n return [scopedRuntimeContext, tplStateStoreScope, formStateStoreScope];\n}\nfunction loadMenu(menuConf, runtimeContext) {\n if (!menuConf) {\n return;\n }\n\n // istanbul ignore next\n if (menuConf.type === \"brick\") {\n // eslint-disable-next-line no-console\n console.error(\"Set menu with brick is dropped in v3:\", menuConf);\n throw new Error(\"Set menu with brick is dropped in v3\");\n }\n\n // istanbul ignore next\n if (menuConf.type === \"resolve\") {\n // eslint-disable-next-line no-console\n console.warn(\"Set menu with resolve is not supported in v3 yet:\", menuConf);\n return;\n }\n return asyncComputeRealValue(menuConf, runtimeContext);\n}\nfunction mergeRenderOutput(output, newOutput) {\n const {\n blockingList,\n node,\n menuRequestNode,\n ...rest\n } = newOutput;\n output.blockingList.push(...blockingList);\n if (node) {\n if (output.node) {\n let last = output.node;\n while (last.sibling) {\n last = last.sibling;\n }\n last.sibling = node;\n } else {\n output.node = node;\n }\n }\n Object.assign(output, rest);\n}\nfunction mergeSiblingRenderMenuRequest(output, newOutput) {\n const menuRequestNode = newOutput.menuRequestNode;\n if (menuRequestNode) {\n if (output.menuRequestNode) {\n let last = output.menuRequestNode;\n while (last.sibling) {\n last = last.sibling;\n }\n last.sibling = menuRequestNode;\n } else {\n output.menuRequestNode = menuRequestNode;\n }\n }\n}\nfunction appendMenuRequestNode(menuRequestReturnNode, menuRequestNode) {\n if (!menuRequestNode) {\n return;\n }\n if (menuRequestReturnNode.child) {\n let last = menuRequestReturnNode.child;\n while (last.sibling) {\n last = last.sibling;\n }\n last.sibling = menuRequestNode;\n } else {\n menuRequestReturnNode.child = menuRequestNode;\n }\n}\nfunction getEmptyRenderOutput() {\n return {\n blockingList: []\n };\n}\nexport function childrenToSlots(children, originalSlots) {\n let newSlots = originalSlots;\n // istanbul ignore next\n if (process.env.NODE_ENV === \"development\" && children && !Array.isArray(children)) {\n // eslint-disable-next-line no-console\n console.warn(\"Specified brick children but not array:\", `<${typeof children}>`, children);\n }\n if (Array.isArray(children) && !newSlots) {\n newSlots = {};\n for (const {\n slot: sl,\n ...child\n } of children) {\n const slot = sl !== null && sl !== void 0 ? sl : \"\";\n if (!hasOwnProperty(newSlots, slot)) {\n newSlots[slot] = {\n type: \"bricks\",\n bricks: []\n };\n }\n newSlots[slot].bricks.push(child);\n }\n }\n return newSlots;\n}\nfunction catchLoad(promise, type, name, unknownPolicy) {\n return unknownPolicy === \"silent\" ? promise.catch(e => {\n // eslint-disable-next-line no-console\n console.error(`Load %s \"%s\" failed:`, type, name, e);\n }) : promise;\n}\nfunction isRouteParamsEqual(a, b) {\n if (isEqual(a, b)) {\n return true;\n }\n const omitNumericKeys = (v, k) => {\n return String(Number(k)) === k;\n };\n const c = omitBy(a, omitNumericKeys);\n const d = omitBy(b, omitNumericKeys);\n return isEqual(c, d);\n}\n//# sourceMappingURL=Renderer.js.map","import { isObject } from \"@next-core/utils/general\";\nimport { symbolForRootRuntimeContext } from \"./secret_internals.js\";\nimport { childrenToSlots } from \"./Renderer.js\";\nexport function setupRootRuntimeContext(bricks, runtimeContext, shallow) {\n function walk(props) {\n if (!isObject(props) || typeof props === \"function\") {\n return;\n }\n if (Array.isArray(props)) {\n props.map(walk);\n return;\n }\n for (const [key, value] of Object.entries(props)) {\n if (isObject(value) && key === \"useBrick\") {\n if (Array.isArray(value)) {\n value.forEach(v => setupBrick(v, true));\n } else {\n setupBrick(value, true,\n // For inside useBrick, we always need to setup recursively.\n true);\n }\n } else {\n walk(value);\n }\n }\n }\n function setupBrick(brick, inUseBrick, forceRecursive) {\n if (inUseBrick) {\n brick[symbolForRootRuntimeContext] = runtimeContext;\n }\n walk(brick.properties);\n if (shallow && !forceRecursive) {\n return;\n }\n const transpiledSlots = childrenToSlots(brick.children, brick.slots);\n for (const slotConf of Object.values(transpiledSlots !== null && transpiledSlots !== void 0 ? transpiledSlots : {})) {\n for (const brick of (_slotConf$bricks = slotConf.bricks) !== null && _slotConf$bricks !== void 0 ? _slotConf$bricks : []) {\n var _slotConf$bricks;\n setupBrick(brick, inUseBrick);\n }\n }\n }\n for (const brick of bricks) {\n setupBrick(brick);\n }\n}\n//# sourceMappingURL=setupRootRuntimeContext.js.map","import { getBasePath } from \"./getBasePath.js\";\nlet misc;\n\n/** 运行时页面信息。*/\n\nexport function getPageInfo() {\n if (!misc) {\n misc = {\n isInIframe: false,\n isInIframeOfSameSite: false,\n isInIframeOfNext: false,\n isInIframeOfVisualBuilder: false,\n isInIframeOfLegacyConsole: false\n };\n if (window !== window.parent) {\n misc.isInIframe = true;\n try {\n // Handle:\n // - Previewing in visual builder by iframe.\n // - Nesting next in next.\n // - Nesting console in next.\n if (window.origin === window.parent.origin) {\n misc.isInIframeOfSameSite = true;\n const selfIsNext = getBasePath() === \"/next/\";\n const parentPathname = window.parent.location.pathname;\n const parentIsNext = parentPathname.startsWith(\"/next/\");\n misc.isInIframeOfNext = (Number(selfIsNext) ^ Number(parentIsNext)) === 0;\n const prefix = parentIsNext ? \"/next\" : \"\";\n // Allow visual-builder-* extension apps.\n misc.isInIframeOfVisualBuilder = parentPathname.startsWith(`${prefix}/visual-builder/`) || parentPathname.startsWith(`${prefix}/visual-builder-`);\n misc.isInIframeOfLegacyConsole = selfIsNext && !parentIsNext;\n }\n } catch {\n // do nothing\n }\n }\n Object.freeze(misc);\n }\n return misc;\n}\n//# sourceMappingURL=getPageInfo.js.map","import { http } from \"@next-core/http\";\nlet nativeController;\nexport function initAbortController() {\n if (!window.AbortController) {\n return;\n }\n nativeController = new AbortController();\n http.interceptors.request.use(config => {\n var _config$options;\n return {\n ...config,\n options: {\n // Allow user config to override the default abort signal\n signal: (_config$options = config.options) !== null && _config$options !== void 0 && _config$options.noAbortOnRouteChange ? null : nativeController.signal,\n ...config.options\n }\n };\n });\n}\nexport function abortPendingRequest() {\n if (nativeController) {\n nativeController.abort();\n nativeController = new AbortController();\n }\n}\n//# sourceMappingURL=abortController.js.map","import { loadBricksImperatively } from \"@next-core/loader\";\nimport { getBrickPackages, getRuntime, hooks } from \"./internal/Runtime.js\";\nimport { omit } from \"lodash\";\nlet brick;\nexport const WATEMARK_BRICKNAME = \"basic.show-watermark\";\nexport function setWatermark() {\n var _window$APP_ROOT, _window$APP_ROOT2, _username, _hooks$auth, _settings$watermarkCo, _watermarkConfig$cont, _watermarkConfig$flag, _watermarkConfig$flag2;\n const flags = getRuntime().getFeatureFlags();\n const settings = getRuntime().getMiscSettings();\n if (!flags[\"show-watermark\"]) {\n return;\n }\n const isDeveloper = ((_window$APP_ROOT = window.APP_ROOT) === null || _window$APP_ROOT === void 0 || (_window$APP_ROOT = _window$APP_ROOT.match(/versions\\/([^/]+)\\//)) === null || _window$APP_ROOT === void 0 ? void 0 : _window$APP_ROOT[1]) === \"0.0.0\" || ((_window$APP_ROOT2 = window.APP_ROOT) === null || _window$APP_ROOT2 === void 0 || (_window$APP_ROOT2 = _window$APP_ROOT2.match(/micro-apps\\/(?:v2|v3)\\/[^/]+\\/([^/]+)/)) === null || _window$APP_ROOT2 === void 0 ? void 0 : _window$APP_ROOT2[1]) === \"0.0.0\";\n const username = (_username = hooks === null || hooks === void 0 || (_hooks$auth = hooks.auth) === null || _hooks$auth === void 0 || (_hooks$auth = _hooks$auth.getAuth()) === null || _hooks$auth === void 0 ? void 0 : _hooks$auth.username) !== null && _username !== void 0 ? _username : \"\";\n const watermarkConfig = (_settings$watermarkCo = settings.watermarkConfig) !== null && _settings$watermarkCo !== void 0 ? _settings$watermarkCo : {\n flags: {}\n };\n const content = [...(typeof watermarkConfig.content === \"string\" ? [watermarkConfig.content] : (_watermarkConfig$cont = watermarkConfig.content) !== null && _watermarkConfig$cont !== void 0 ? _watermarkConfig$cont : []), (_watermarkConfig$flag = watermarkConfig.flags) !== null && _watermarkConfig$flag !== void 0 && _watermarkConfig$flag[\"show-development\"] && isDeveloper ? \"Development\" : \"\", (_watermarkConfig$flag2 = watermarkConfig.flags) !== null && _watermarkConfig$flag2 !== void 0 && _watermarkConfig$flag2[\"show-user\"] ? username : \"\"].filter(Boolean);\n\n // Do not call showWatermark if there is no content\n if (content.length === 0) {\n return;\n }\n const defaultProps = {\n content,\n zIndex: 1001,\n width: 200,\n font: {\n fontSize: 28\n },\n gap: [190, 190],\n ...omit(watermarkConfig, [\"content\", \"flags\"])\n };\n if (brick) {\n brick.resolve(defaultProps);\n } else {\n loadBricksImperatively([WATEMARK_BRICKNAME], getBrickPackages()).then(() => {\n brick = document.createElement(WATEMARK_BRICKNAME);\n brick.resolve(defaultProps);\n },\n // istanbul ignore next\n error => {\n // eslint-disable-next-line no-console\n console.error(\"Load watermark service failed:\", error);\n });\n }\n}\n//# sourceMappingURL=setWatermark.js.map","import { customTemplates } from \"../CustomTemplates.js\";\nexport function registerCustomTemplates(storyboard) {\n var _storyboard$meta;\n if (storyboard.$$registerCustomTemplateProcessed) {\n return;\n }\n storyboard.$$registerCustomTemplateProcessed = true;\n const templates = (_storyboard$meta = storyboard.meta) === null || _storyboard$meta === void 0 ? void 0 : _storyboard$meta.customTemplates;\n if (Array.isArray(templates)) {\n for (const tpl of templates) {\n const tagName = tpl.name.includes(\".\") ? tpl.name : `${storyboard.app.id}.${tpl.name}`;\n customTemplates.define(tagName, tpl);\n }\n }\n}\n//# sourceMappingURL=registerCustomTemplates.js.map","export function setUIVersion(version) {\n // 仅允许特定的 UI 版本\n let ui;\n switch (version) {\n case \"8.2\":\n ui = \"v8-2\";\n break;\n default:\n ui = \"v8\";\n }\n document.documentElement.dataset.ui = ui;\n}\n//# sourceMappingURL=setUIVersion.js.map","import { HttpFetchError } from \"@next-core/http\";\nimport { BrickLoadError } from \"@next-core/loader\";\nexport function isNetworkError(error) {\n return !!error && (error instanceof BrickLoadError || error instanceof HttpFetchError || error instanceof Error && error.name === \"ChunkLoadError\" || error instanceof Event && error.type === \"error\" && error.target instanceof HTMLScriptElement);\n}\n//# sourceMappingURL=isNetworkError.js.map","import { isNetworkError } from \"./isNetworkError.js\";\nconst STORAGE_KEY = \"reload-for-error-count\";\nconst MAX_RELOAD_COUNT = 2;\nexport function shouldReloadForError(error) {\n if (/upchat/i.test(navigator.userAgent) && isNetworkError(error)) {\n var _sessionStorage$getIt;\n const count = +((_sessionStorage$getIt = sessionStorage.getItem(STORAGE_KEY)) !== null && _sessionStorage$getIt !== void 0 ? _sessionStorage$getIt : 0);\n if (count < MAX_RELOAD_COUNT) {\n sessionStorage.setItem(STORAGE_KEY, String(count + 1));\n return true;\n }\n resetReloadForError();\n }\n return false;\n}\nexport function resetReloadForError() {\n sessionStorage.removeItem(STORAGE_KEY);\n}\n//# sourceMappingURL=shouldReloadForError.js.map","import _classPrivateMethodInitSpec from \"@babel/runtime/helpers/classPrivateMethodInitSpec\";\nimport _classPrivateFieldInitSpec from \"@babel/runtime/helpers/classPrivateFieldInitSpec\";\nimport _classPrivateFieldGet from \"@babel/runtime/helpers/classPrivateFieldGet2\";\nimport _assertClassBrand from \"@babel/runtime/helpers/assertClassBrand\";\nimport _classPrivateFieldSet from \"@babel/runtime/helpers/classPrivateFieldSet2\";\nimport { locationsAreEqual } from \"history\";\nimport { HttpAbortError } from \"@next-core/http\";\nimport { clearExpressionASTCache, clearFunctionASTCache } from \"@next-core/cook\";\nimport { uniqueId } from \"lodash\";\nimport { getHistory } from \"../history.js\";\nimport { getDataStores, postAsyncRender, renderRoutes } from \"./Renderer.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { clearResolveCache } from \"./data/resolveData.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { isOutsideApp, matchStoryboard } from \"./matchStoryboard.js\";\nimport { registerStoryboardFunctions } from \"./compute/StoryboardFunctions.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport { applyMode, applyTheme, getLocalAppsTheme, setMode, setTheme, setThemeVariant } from \"../themeAndMode.js\";\nimport { _internalApiGetAppInBootstrapData, getRuntime, hooks } from \"./Runtime.js\";\nimport { getPageInfo } from \"../getPageInfo.js\";\nimport { resetAllComputedMarks } from \"./compute/markAsComputed.js\";\nimport { handleHttpError, isUnauthenticatedError } from \"../handleHttpError.js\";\nimport { abortPendingRequest, initAbortController } from \"./abortController.js\";\nimport { setLoginStateCookie } from \"../setLoginStateCookie.js\";\nimport { registerCustomTemplates } from \"./registerCustomTemplates.js\";\nimport { fulfilStoryboard } from \"./fulfilStoryboard.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { insertPreviewRoutes } from \"./insertPreviewRoutes.js\";\nimport { devtoolsHookEmit } from \"./devtools.js\";\nimport { setUIVersion } from \"../setUIVersion.js\";\nimport { setAppVariable } from \"../setAppVariable.js\";\nimport { setWatermark } from \"../setWatermark.js\";\nimport { clearMatchedRoutes } from \"./routeMatchedMap.js\";\nimport { ErrorNode, PageError } from \"./ErrorNode.js\";\nimport { resetReloadForError, shouldReloadForError } from \"../shouldReloadForError.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nvar _storyboards = /*#__PURE__*/new WeakMap();\nvar _rendering = /*#__PURE__*/new WeakMap();\nvar _nextRender = /*#__PURE__*/new WeakMap();\nvar _runtimeContext = /*#__PURE__*/new WeakMap();\nvar _rendererContext = /*#__PURE__*/new WeakMap();\nvar _rendererContextTrashCan = /*#__PURE__*/new WeakMap();\nvar _redirectCount = /*#__PURE__*/new WeakMap();\nvar _renderId = /*#__PURE__*/new WeakMap();\nvar _currentApp = /*#__PURE__*/new WeakMap();\nvar _previousApp = /*#__PURE__*/new WeakMap();\nvar _navConfig = /*#__PURE__*/new WeakMap();\nvar _bootstrapFailed = /*#__PURE__*/new WeakMap();\nvar _Router_brand = /*#__PURE__*/new WeakSet();\nexport class Router {\n constructor(storyboards) {\n _classPrivateMethodInitSpec(this, _Router_brand);\n _classPrivateFieldInitSpec(this, _storyboards, void 0);\n _classPrivateFieldInitSpec(this, _rendering, false);\n _classPrivateFieldInitSpec(this, _nextRender, void 0);\n _classPrivateFieldInitSpec(this, _runtimeContext, void 0);\n _classPrivateFieldInitSpec(this, _rendererContext, void 0);\n _classPrivateFieldInitSpec(this, _rendererContextTrashCan, new Set());\n _classPrivateFieldInitSpec(this, _redirectCount, 0);\n _classPrivateFieldInitSpec(this, _renderId, void 0);\n _classPrivateFieldInitSpec(this, _currentApp, void 0);\n _classPrivateFieldInitSpec(this, _previousApp, void 0);\n _classPrivateFieldInitSpec(this, _navConfig, void 0);\n _classPrivateFieldInitSpec(this, _bootstrapFailed, false);\n _classPrivateFieldSet(_storyboards, this, storyboards);\n const _history = getHistory();\n window.addEventListener(\"beforeunload\", event => {\n const message = _assertClassBrand(_Router_brand, this, _getBlockMessageBeforePageLave).call(this, {});\n // See examples in https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload\n if (message) {\n // Cancel the event\n // If you prevent default behavior in Mozilla Firefox prompt will always be shown\n event.preventDefault();\n // Chrome requires returnValue to be set\n event.returnValue = \"\";\n } else {\n // the absence of a returnValue property on the event will guarantee the browser unload happens\n delete event.returnValue;\n }\n });\n _history.block((location, action) => _assertClassBrand(_Router_brand, this, _getBlockMessageBeforePageLave).call(this, {\n location,\n action\n }));\n }\n getRenderId() {\n return _classPrivateFieldGet(_renderId, this);\n }\n\n // istanbul ignore next\n getRuntimeContext() {\n return _classPrivateFieldGet(_runtimeContext, this);\n }\n getRecentApps() {\n return {\n currentApp: _classPrivateFieldGet(_currentApp, this),\n previousApp: _classPrivateFieldGet(_previousApp, this)\n };\n }\n getNavConfig() {\n return _classPrivateFieldGet(_navConfig, this);\n }\n bootstrap() {\n initAbortController();\n const history = getHistory();\n let nextPrevLocation = history.location;\n history.listen((location, action) => {\n const prevLocation = nextPrevLocation;\n nextPrevLocation = location;\n if (_classPrivateFieldGet(_rendering, this)) {\n _classPrivateFieldSet(_nextRender, this, {\n location,\n prevLocation,\n action\n });\n } else {\n _assertClassBrand(_Router_brand, this, _queuedRender).call(this, {\n location,\n prevLocation,\n action\n }).catch(handleHttpError);\n }\n });\n return _assertClassBrand(_Router_brand, this, _queuedRender).call(this, {\n location: history.location\n });\n }\n}\nfunction _getBlockMessageBeforePageLave(detail) {\n var _classPrivateFieldGet2;\n const history = getHistory();\n const previousMessage = history.getBlockMessage();\n (_classPrivateFieldGet2 = _classPrivateFieldGet(_rendererContext, this)) === null || _classPrivateFieldGet2 === void 0 || _classPrivateFieldGet2.dispatchBeforePageLeave(detail);\n const message = history.getBlockMessage();\n if (!previousMessage && message) {\n // Auto unblock only if new block was introduced by `onBeforePageLeave`.\n history.unblock();\n }\n return message;\n}\nfunction _safeRedirect(to, state, from) {\n var _this$redirectCount, _this$redirectCount2;\n if ((_classPrivateFieldSet(_redirectCount, this, (_this$redirectCount = _classPrivateFieldGet(_redirectCount, this), _this$redirectCount2 = _this$redirectCount++, _this$redirectCount)), _this$redirectCount2) > 10) {\n const message = `Infinite redirect detected: from \"${from.pathname}${from.search}${from.hash}\" to \"${to}\"`;\n // istanbul ignore else: error cannot be caught in test\n if (process.env.NODE_ENV === \"test\") {\n // eslint-disable-next-line no-console\n console.error(message);\n return;\n } else {\n throw new Error(message);\n }\n }\n getHistory().replace(to, state);\n}\nasync function _queuedRender(next) {\n _classPrivateFieldSet(_rendering, this, true);\n try {\n await _assertClassBrand(_Router_brand, this, _preRender).call(this, next);\n } finally {\n _classPrivateFieldSet(_rendering, this, false);\n if (_classPrivateFieldGet(_nextRender, this)) {\n const nextRender = _classPrivateFieldGet(_nextRender, this);\n _classPrivateFieldSet(_nextRender, this, undefined);\n await _assertClassBrand(_Router_brand, this, _queuedRender).call(this, nextRender);\n }\n }\n}\nasync function _preRender(_ref) {\n let {\n location,\n prevLocation,\n action\n } = _ref;\n if (prevLocation) {\n var _prevLocation$state, _location$state, _location$state2, _classPrivateFieldGet4;\n let ignoreRendering;\n const omittedLocationProps = {\n hash: undefined,\n state: undefined\n };\n // Omit the \"key\" when checking whether locations are equal in certain situations.\n if (\n // When current location is triggered by browser action of hash link.\n location.key === undefined ||\n // When current location is triggered by browser action of non-push-or-replace,\n // such as goBack or goForward,\n action === \"POP\" && (\n // and the previous location was triggered by hash link,\n prevLocation.key === undefined ||\n // or the previous location specified notify false.\n ((_prevLocation$state = prevLocation.state) === null || _prevLocation$state === void 0 ? void 0 : _prevLocation$state.notify) === false)) {\n omittedLocationProps.key = undefined;\n }\n if (locationsAreEqual({\n ...prevLocation,\n ...omittedLocationProps\n }, {\n ...location,\n ...omittedLocationProps\n }) || action !== \"POP\" && ((_location$state = location.state) === null || _location$state === void 0 ? void 0 : _location$state.notify) === false) {\n // Ignore rendering if location not changed except hash, state and optional key.\n // Ignore rendering if notify is `false`.\n ignoreRendering = true;\n }\n\n // Note: dot not perform incremental render when bootstrap failed.\n if (!ignoreRendering && !((_location$state2 = location.state) !== null && _location$state2 !== void 0 && _location$state2.noIncremental) && !_classPrivateFieldGet(_bootstrapFailed, this)) {\n var _classPrivateFieldGet3;\n ignoreRendering = await ((_classPrivateFieldGet3 = _classPrivateFieldGet(_rendererContext, this)) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.didPerformIncrementalRender(location, prevLocation));\n }\n if (ignoreRendering) {\n return;\n }\n abortPendingRequest();\n (_classPrivateFieldGet4 = _classPrivateFieldGet(_rendererContext, this)) === null || _classPrivateFieldGet4 === void 0 || _classPrivateFieldGet4.dispatchPageLeave();\n if (action === \"POP\") {\n const storyboard = matchStoryboard(_classPrivateFieldGet(_storyboards, this), location.pathname);\n // When a browser action of goBack or goForward is performing,\n // force reload when the target page is a page of an outside app.\n if (isOutsideApp(storyboard)) {\n window.location.reload();\n return;\n }\n }\n devtoolsHookEmit(\"locationChange\");\n }\n return _assertClassBrand(_Router_brand, this, _render).call(this, location, !prevLocation);\n}\nasync function _render(location, isBootstrap) {\n var _hooks$auth, _hooks$auth$isBlocked, _hooks$flowApi, _hooks$pageView, _classPrivateFieldGet5, _storyboard$app;\n const renderId = _classPrivateFieldSet(_renderId, this, uniqueId(\"render-id-\"));\n let blocked = hooks === null || hooks === void 0 || (_hooks$auth = hooks.auth) === null || _hooks$auth === void 0 || (_hooks$auth$isBlocked = _hooks$auth.isBlockedPath) === null || _hooks$auth$isBlocked === void 0 ? void 0 : _hooks$auth$isBlocked.call(_hooks$auth, location.pathname);\n resetAllComputedMarks();\n clearResolveCache();\n hooks === null || hooks === void 0 || (_hooks$flowApi = hooks.flowApi) === null || _hooks$flowApi === void 0 || _hooks$flowApi.clearCollectWidgetContract();\n const history = getHistory();\n history.unblock();\n\n // const renderStartTime = performance.now();\n const finishPageView = hooks === null || hooks === void 0 || (_hooks$pageView = hooks.pageView) === null || _hooks$pageView === void 0 ? void 0 : _hooks$pageView.create();\n const storyboard = blocked ? undefined : matchStoryboard(_classPrivateFieldGet(_storyboards, this), location.pathname);\n const previousApp = (_classPrivateFieldGet5 = _classPrivateFieldGet(_runtimeContext, this)) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.app;\n const currentAppId = storyboard === null || storyboard === void 0 || (_storyboard$app = storyboard.app) === null || _storyboard$app === void 0 ? void 0 : _storyboard$app.id;\n // dynamically change the value of the APP variable, if it's union app\n if (window.BOOTSTRAP_UNION_FILE && currentAppId && currentAppId !== (previousApp === null || previousApp === void 0 ? void 0 : previousApp.id)) {\n setAppVariable({\n appId: currentAppId,\n version: storyboard.app.currentVersion\n });\n }\n if (storyboard !== null && storyboard !== void 0 && storyboard.app) {\n await fulfilStoryboard(storyboard);\n }\n const currentApp = _classPrivateFieldSet(_currentApp, this, storyboard === null || storyboard === void 0 ? void 0 : storyboard.app);\n if (currentApp) {\n var _storyboard$meta, _storyboard$meta$forE, _hooks$auth3, _hooks$auth3$isBlocke;\n storyboard === null || storyboard === void 0 || (_storyboard$meta = storyboard.meta) === null || _storyboard$meta === void 0 || (_storyboard$meta = _storyboard$meta.blackList) === null || _storyboard$meta === void 0 || (_storyboard$meta$forE = _storyboard$meta.forEach) === null || _storyboard$meta$forE === void 0 || _storyboard$meta$forE.call(_storyboard$meta, item => {\n var _hooks$auth2, _hooks$auth2$addPathT;\n let path = item && (item.to || item.url);\n if (!path || typeof path !== \"string\") return;\n path = path.split(\"?\")[0].replace(/\\${\\s*(?:(?:PATH|CTX)\\.)?(\\w+)\\s*}/g, \":$1\");\n if (item.to) {\n try {\n path = computeRealValue(path, {\n app: currentApp\n });\n } catch (e) /* istanbul ignore next */{\n // eslint-disable-next-line no-console\n console.error(e);\n }\n } else {\n path = path.replace(/^\\/next\\//, \"/\");\n }\n path && (hooks === null || hooks === void 0 || (_hooks$auth2 = hooks.auth) === null || _hooks$auth2 === void 0 || (_hooks$auth2$addPathT = _hooks$auth2.addPathToBlackList) === null || _hooks$auth2$addPathT === void 0 ? void 0 : _hooks$auth2$addPathT.call(_hooks$auth2, path));\n });\n blocked = hooks === null || hooks === void 0 || (_hooks$auth3 = hooks.auth) === null || _hooks$auth3 === void 0 || (_hooks$auth3$isBlocke = _hooks$auth3.isBlockedPath) === null || _hooks$auth3$isBlocke === void 0 ? void 0 : _hooks$auth3$isBlocke.call(_hooks$auth3, location.pathname);\n }\n setWatermark();\n\n // Storyboard maybe re-assigned, e.g. when open launchpad.\n const appChanged = previousApp && currentApp ? previousApp.id !== currentApp.id : previousApp !== currentApp;\n clearExpressionASTCache();\n if (appChanged) {\n clearFunctionASTCache();\n }\n\n // TODO: handle favicon\n\n // Set `Router::#currentApp` before calling `getFeatureFlags()`\n const flags = getRuntime().getFeatureFlags();\n const prevRendererContext = _classPrivateFieldGet(_rendererContext, this);\n const redirectTo = (to, state) => {\n finishPageView === null || finishPageView === void 0 || finishPageView({\n status: \"redirected\"\n });\n _classPrivateFieldGet(_rendererContextTrashCan, this).add(prevRendererContext);\n _assertClassBrand(_Router_brand, this, _safeRedirect).call(this, to, state, location);\n };\n const redirectToLogin = () => {\n const to = flags[\"sso-enabled\"] ? \"/sso-auth/login\" : \"/auth/login\";\n setLoginStateCookie(location);\n redirectTo(to, {\n from: location\n });\n };\n const main = document.querySelector(\"#main-mount-point\");\n const portal = document.querySelector(\"#portal-mount-point\");\n const renderRoot = {\n tag: RenderTag.ROOT,\n container: main,\n createPortal: portal\n };\n const cleanUpPreviousRender = () => {\n var _hooks$messageDispatc;\n unmountTree(main);\n unmountTree(portal);\n\n // Note: redirects can lead to multiple trash renderer contexts.\n _classPrivateFieldGet(_rendererContextTrashCan, this).add(prevRendererContext);\n for (const item of _classPrivateFieldGet(_rendererContextTrashCan, this)) {\n if (item) {\n item.dispatchOnUnmount();\n item.dispose();\n }\n }\n _classPrivateFieldGet(_rendererContextTrashCan, this).clear();\n hooks === null || hooks === void 0 || (_hooks$messageDispatc = hooks.messageDispatcher) === null || _hooks$messageDispatc === void 0 || _hooks$messageDispatc.reset();\n if (appChanged) {\n _classPrivateFieldSet(_previousApp, this, previousApp);\n window.dispatchEvent(new CustomEvent(\"app.change\", {\n detail: {\n previousApp,\n currentApp\n }\n }));\n }\n };\n setTheme(currentApp && (getLocalAppsTheme()[currentApp.id] || currentApp.theme) || \"light\");\n setMode(\"default\");\n setThemeVariant(getRuntime().getMiscSettings().globalThemeVariant);\n if (currentApp && !blocked) {\n var _hooks$checkInstalled, _hooks$auth4, _hooks$checkPermissio, _storyboard$meta2, _hooks$flowApi2, _storyboard$meta3;\n hooks === null || hooks === void 0 || (_hooks$checkInstalled = hooks.checkInstalledApps) === null || _hooks$checkInstalled === void 0 || _hooks$checkInstalled.preCheckInstalledApps(storyboard, appId => !!_internalApiGetAppInBootstrapData(appId));\n const routeHelper = {\n bailout: output => {\n if (output.unauthenticated) {\n redirectToLogin();\n return true;\n }\n if (output.redirect) {\n redirectTo(output.redirect.path, output.redirect.state);\n return true;\n }\n // Reset redirect count if no redirect is set.\n _classPrivateFieldSet(_redirectCount, this, 0);\n },\n mergeMenus: async menuRequests => {\n const menuConfs = await Promise.all(menuRequests);\n _classPrivateFieldSet(_navConfig, this, mergeMenuConfs(menuConfs));\n window.dispatchEvent(new CustomEvent(\"navConfig.change\", {\n detail: _classPrivateFieldGet(_navConfig, this)\n }));\n },\n catch: async (error, returnNode, isCurrentBootstrap, isReCatch) => {\n if (isUnauthenticatedError(error) && !window.NO_AUTH_GUARD) {\n redirectToLogin();\n return;\n } else if (error instanceof HttpAbortError) {\n _classPrivateFieldGet(_rendererContextTrashCan, this).add(prevRendererContext);\n return;\n } else {\n const noAuthGuardLoginPath = getRuntime().getMiscSettings().noAuthGuardLoginPath;\n if (isUnauthenticatedError(error) && noAuthGuardLoginPath) {\n redirectTo(noAuthGuardLoginPath, {\n from: location\n });\n return;\n }\n if (isCurrentBootstrap) {\n throw error;\n }\n if (!isReCatch && shouldReloadForError(error)) {\n window.location.reload();\n return;\n }\n return {\n failed: true,\n output: {\n node: await ErrorNode(error, returnNode, !isReCatch),\n blockingList: []\n }\n };\n }\n }\n };\n const rendererContext = _classPrivateFieldSet(_rendererContext, this, new RendererContext(\"page\", {\n routeHelper,\n renderId\n }));\n const runtimeContext = _classPrivateFieldSet(_runtimeContext, this, {\n app: currentApp,\n location,\n query: new URLSearchParams(location.search),\n flags,\n sys: {\n ...(hooks === null || hooks === void 0 || (_hooks$auth4 = hooks.auth) === null || _hooks$auth4 === void 0 ? void 0 : _hooks$auth4.getAuth()),\n ...getPageInfo(),\n settings: {\n brand: getRuntime().getBrandSettings()\n }\n },\n ctxStore: new DataStore(\"CTX\", undefined, rendererContext),\n pendingPermissionsPreCheck: [hooks === null || hooks === void 0 || (_hooks$checkPermissio = hooks.checkPermissions) === null || _hooks$checkPermissio === void 0 ? void 0 : _hooks$checkPermissio.preCheckPermissions(storyboard)],\n tplStateStoreMap: new Map(),\n formStateStoreMap: new Map()\n });\n _classPrivateFieldSet(_navConfig, this, undefined);\n registerCustomTemplates(storyboard);\n registerStoryboardFunctions((_storyboard$meta2 = storyboard.meta) === null || _storyboard$meta2 === void 0 ? void 0 : _storyboard$meta2.functions, currentApp);\n hooks === null || hooks === void 0 || (_hooks$flowApi2 = hooks.flowApi) === null || _hooks$flowApi2 === void 0 || _hooks$flowApi2.collectContract((_storyboard$meta3 = storyboard.meta) === null || _storyboard$meta3 === void 0 ? void 0 : _storyboard$meta3.contracts);\n let failed = false;\n let output;\n let stores = [];\n try {\n clearMatchedRoutes();\n const rootMenuRequestNode = {};\n output = await renderRoutes(renderRoot, insertPreviewRoutes(storyboard.routes), runtimeContext, rendererContext, [], rootMenuRequestNode);\n if (routeHelper.bailout(output)) {\n return;\n }\n stores = getDataStores(runtimeContext);\n await postAsyncRender(output, runtimeContext, stores);\n rootMenuRequestNode.child = output.menuRequestNode;\n rendererContext.setInitialMenuRequestNode(rootMenuRequestNode);\n await routeHelper.mergeMenus(rendererContext.getMenuRequests());\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Router failed:\", error);\n if (isBootstrap) {\n _classPrivateFieldSet(_bootstrapFailed, this, true);\n }\n const result = await routeHelper.catch(error, renderRoot, isBootstrap);\n if (!result) {\n return;\n }\n ({\n failed,\n output\n } = result);\n }\n resetReloadForError();\n renderRoot.child = output.node;\n _classPrivateFieldSet(_bootstrapFailed, this, false);\n cleanUpPreviousRender();\n if (output.route && output.route.type !== \"routes\" || failed) {\n if (!failed) {\n // There is a window to set theme and mode by `lifeCycle.onBeforePageLoad`.\n rendererContext.dispatchBeforePageLoad();\n }\n applyTheme();\n applyMode();\n setUIVersion(currentApp === null || currentApp === void 0 ? void 0 : currentApp.uiVersion);\n mountTree(renderRoot);\n\n // Scroll to top after each rendering.\n // See https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/docs/guides/scroll-restoration.md\n window.scrollTo(0, 0);\n if (!failed) {\n rendererContext.dispatchPageLoad();\n rendererContext.dispatchAnchorLoad();\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n rendererContext.initializeMessageDispatcher();\n for (const store of stores) {\n store.mountAsyncData();\n }\n finishPageView === null || finishPageView === void 0 || finishPageView({\n status: \"ok\",\n path: output.path,\n pageTitle: document.title\n });\n } else {\n finishPageView === null || finishPageView === void 0 || finishPageView({\n status: \"failed\"\n });\n }\n devtoolsHookEmit(\"rendered\");\n return;\n }\n } else if (!window.NO_AUTH_GUARD && hooks !== null && hooks !== void 0 && hooks.auth && !hooks.auth.isLoggedIn()) {\n // Todo(steve): refine after api-gateway supports fetching storyboards before logged in.\n // Redirect to login if no storyboard is matched.\n redirectToLogin();\n return;\n } else {\n cleanUpPreviousRender();\n }\n applyTheme();\n applyMode();\n const node = await ErrorNode(new PageError(blocked ? \"page blocked\" : currentApp ? \"page not found\" : \"app not found\"), renderRoot, true);\n renderRoot.child = node;\n mountTree(renderRoot);\n\n // Scroll to top after each rendering.\n window.scrollTo(0, 0);\n finishPageView === null || finishPageView === void 0 || finishPageView({\n status: blocked ? \"blocked\" : \"not-found\"\n });\n devtoolsHookEmit(\"rendered\");\n}\nfunction mergeMenuConfs(menuConfs) {\n const navConfig = {\n breadcrumb: []\n };\n for (const menuConf of menuConfs) {\n const {\n breadcrumb\n } = menuConf;\n if (breadcrumb) {\n if (breadcrumb.overwrite) {\n navConfig.breadcrumb = breadcrumb.items;\n } else {\n navConfig.breadcrumb.push(...breadcrumb.items);\n }\n }\n }\n return navConfig;\n}\n//# sourceMappingURL=Router.js.map","export function setAppVariable(params) {\n const {\n appId,\n version\n } = params;\n if (window.APP_ROOT_TPL) {\n window.APP_ID = appId;\n window.APP_ROOT = window.APP_ROOT_TPL.replace(\"{id}\", appId).replace(\"{version}\", version);\n }\n}\n//# sourceMappingURL=setAppVariable.js.map","import { hooks } from \"./Runtime.js\";\nimport { registerAppI18n } from \"./registerAppI18n.js\";\nexport async function fulfilStoryboard(storyboard) {\n if (storyboard.$$fulfilled) {\n return;\n }\n if (!storyboard.$$fulfilling) {\n storyboard.$$fulfilling = doFulfilStoryboard(storyboard);\n }\n return storyboard.$$fulfilling;\n}\nasync function doFulfilStoryboard(storyboard) {\n var _hooks$fulfilStoryboa;\n await (hooks === null || hooks === void 0 || (_hooks$fulfilStoryboa = hooks.fulfilStoryboard) === null || _hooks$fulfilStoryboa === void 0 ? void 0 : _hooks$fulfilStoryboa.call(hooks, storyboard));\n registerAppI18n(storyboard);\n Object.assign(storyboard, {\n $$fulfilled: true,\n $$fulfilling: null\n });\n}\n//# sourceMappingURL=fulfilStoryboard.js.map","import { findLastIndex } from \"lodash\";\nexport function insertPreviewRoutes(routes) {\n // Insert preview routes for iframe only.\n if (window.parent === window) {\n return routes;\n }\n let mergedRoutes = routes;\n const specificTemplatePreviewIndex = findLastIndex(mergedRoutes, route => route.path.startsWith(\"${APP.homepage}/_dev_only_/template-preview/\"));\n mergedRoutes = [...mergedRoutes.slice(0, specificTemplatePreviewIndex + 1), {\n path: \"${APP.homepage}/_dev_only_/template-preview/:templateId\",\n bricks: [{\n brick: \"span\"\n }],\n menu: false,\n exact: true\n }, ...mergedRoutes.slice(specificTemplatePreviewIndex + 1)];\n const specificSnippetPreviewIndex = findLastIndex(mergedRoutes, route => route.path.startsWith(\"${APP.homepage}/_dev_only_/snippet-preview/\"));\n mergedRoutes = [...mergedRoutes.slice(0, specificSnippetPreviewIndex + 1), {\n path: \"${APP.homepage}/_dev_only_/snippet-preview/:snippetId\",\n bricks: [{\n brick: \"span\"\n }],\n menu: false,\n exact: true\n }, ...mergedRoutes.slice(specificSnippetPreviewIndex + 1)];\n return mergedRoutes;\n}\n//# sourceMappingURL=insertPreviewRoutes.js.map","// Allow inject brick packages in a runtime other than Brick Next.\nexport const injectedBrickPackages =\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\ntypeof BRICK_PACKAGES !== \"undefined\" ? BRICK_PACKAGES : null;\n//# sourceMappingURL=injected.js.map","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util.js';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nimport { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb, } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { boundAlpha, convertToPercentage } from './util.js';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// <http://www.w3.org/TR/css3-values/#integers>\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// <http://www.w3.org/TR/css3-values/#number-value>\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\n\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}\n\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1890FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\n\nexport { blue, cyan, geekblue, generate, gold, green, grey, lime, magenta, orange, presetDarkPalettes, presetPalettes, presetPrimaryColors, purple, red, volcano, yellow };\n","import { generate } from \"@ant-design/colors\";\nexport function getStyleByBaseColors(theme, baseColors, backgroundColor) {\n return (theme === \"dark\" ? getDarkStyle : getLightStyle)(\"\".concat(getCssVariableDefinitionsByPalettes(generatePalettes(baseColors, theme, backgroundColor), theme), \"\\n\").concat(getMigratedCssVariableDefinitions(theme, baseColors, backgroundColor)));\n}\nexport function getStyleByBrandColor(theme, brandColor) {\n return (theme === \"dark\" ? getDarkStyle : getLightStyle)(getCssVariableDefinitionsByBrand(brandColor));\n}\nexport function getStyleByVariables(theme, variables) {\n return (theme === \"dark\" ? getDarkStyle : getLightStyle)(getCssVariableDefinitionsByVariables(variables));\n}\nfunction getLightStyle(cssVariableDefinitions) {\n return \":root,\\n[data-override-theme=\\\"light\\\"] {\\n\".concat(cssVariableDefinitions, \"}\");\n}\nfunction getDarkStyle(cssVariableDefinitions) {\n return \"html[data-theme=\\\"dark-v2\\\"],\\n[data-override-theme=\\\"dark-v2\\\"] {\\n\".concat(cssVariableDefinitions, \"}\");\n}\nfunction getCssVariableDefinitionsByPalettes(palettes, theme) {\n return Object.entries(palettes).flatMap(_ref => {\n var [colorName, palette] = _ref;\n ensureBaseColorName(colorName);\n return palette.map((color, index) => [\" --palette-\".concat(colorName, \"-\").concat(index + 1, \"-channel: \").concat(getRgbChannel(color), \";\")].concat(theme === \"dark\" ? [] : \" --palette-\".concat(colorName, \"-\").concat(index + 1, \": rgb(var(--palette-\").concat(colorName, \"-\").concat(index + 1, \"-channel));\")).join(\"\\n\"))\n // Concat an empty string to make a double-line-break for each group of color name.\n .concat(\"\");\n }).join(\"\\n\");\n}\nfunction generatePalettes(baseColors, theme, backgroundColor) {\n return Object.fromEntries(Object.entries(baseColors).map(_ref2 => {\n var [colorName, baseColor] = _ref2;\n return [colorName, generate(baseColor, theme === \"dark\" ? {\n theme,\n backgroundColor\n } : undefined)];\n }));\n}\nfunction getCssVariableDefinitionsByBrand(color) {\n if (typeof color === \"string\") {\n return \" --color-brand: \".concat(color, \";\\n\");\n }\n return [\" --color-brand: \".concat(color.default, \";\"), \" --color-brand-hover: \".concat(color.hover, \";\"), \" --color-brand-active: \".concat(color.active, \";\"), \"\"].join(\"\\n\");\n}\nfunction getCssVariableDefinitionsByVariables(variables) {\n return Object.entries(variables).map(_ref3 => {\n var [name, color] = _ref3;\n ensureCssVariableName(name);\n return \" \".concat(name, \": \").concat(color, \";\");\n }).concat(\"\").join(\"\\n\");\n}\nfunction ensureCssVariableName(name) {\n if (!/^--[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(name)) {\n throw new Error(\"Invalid css variable name: \".concat(JSON.stringify(name)));\n }\n}\nfunction ensureBaseColorName(name) {\n if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(name)) {\n throw new Error(\"Invalid base color name: \".concat(JSON.stringify(name)));\n }\n}\nfunction getMigratedCssVariableDefinitions(theme, baseColors, backgroundColor) {\n var migrateMap = {\n green: \"green\",\n red: \"red\",\n blue: \"blue\",\n orange: \"orange\",\n cyan: \"cyan\",\n purple: \"purple\",\n geekblue: \"indigo\"\n };\n return Object.entries(migrateMap).flatMap(_ref4 => {\n var [legacyColorName, newColorName] = _ref4;\n return [\" --theme-\".concat(legacyColorName, \"-color-rgb-channel: \").concat(getRgbChannel(getActualBaseColor(baseColors[newColorName], theme, backgroundColor)), \";\"), ...(theme === \"dark\" ? [] : [\" --theme-\".concat(legacyColorName, \"-color: var(--palette-\").concat(newColorName, \"-6);\"), \" --theme-\".concat(legacyColorName, \"-border-color: var(--palette-\").concat(newColorName, \"-3);\")]), \" --theme-\".concat(legacyColorName, \"-background: var(--palette-\").concat(newColorName, \"-\").concat(theme === \"dark\" ? 2 : 1, \");\"), \"\"];\n }).join(\"\\n\");\n}\nfunction getRgbChannel(color) {\n return color.match(/[0-9a-fA-F]{2}/g).map(hex => parseInt(hex, 16)).join(\", \");\n}\nfunction getActualBaseColor(baseColor, theme, backgroundColor) {\n return theme === \"dark\" ? generate(baseColor, {\n theme,\n backgroundColor\n })[5] : baseColor;\n}\n//# sourceMappingURL=index.js.map","import { getStyleByBaseColors, getStyleByBrandColor, getStyleByVariables } from \"@next-core/color-theme\";\nexport function customizeColorTheme(theme) {\n if (!theme) {\n return;\n }\n if (theme.brandColor) {\n applyColorTheme({\n type: \"brandColor\",\n ...theme.brandColor\n });\n } else if (theme.baseColors) {\n applyColorTheme({\n type: \"baseColors\",\n ...theme.baseColors\n });\n } else if (theme.variables) {\n applyColorTheme({\n type: \"variables\",\n ...theme.variables\n });\n }\n}\nexport function applyColorTheme(options) {\n const style = [];\n const themes = [\"light\", \"dark\"];\n themes.forEach(theme => {\n if (options[theme]) {\n switch (options.type) {\n case \"brandColor\":\n style.push(getStyleByBrandColor(theme, options[theme]));\n break;\n case \"baseColors\":\n style.push(getStyleByBaseColors(theme, options[theme], options.backgroundColor));\n break;\n case \"variables\":\n style.push(getStyleByVariables(theme, options[theme]));\n break;\n }\n }\n });\n if (style.length > 0) {\n const element = document.createElement(\"style\");\n element.textContent = style.join(\"\\n\\n\");\n document.head.appendChild(element);\n return () => {\n element.remove();\n };\n }\n}\n//# sourceMappingURL=customizeColorTheme.js.map","// istanbul ignore file\n// Todo(steve): This file will be removed in the future.\nimport { hooks } from \"./internal/Runtime.js\";\n\n/** @deprecated import it from \"@next-core/easyops-runtime\" instead */\nexport function authenticate() {\n var _hooks$auth, _hooks$auth$authentic;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n hooks === null || hooks === void 0 || (_hooks$auth = hooks.auth) === null || _hooks$auth === void 0 || (_hooks$auth$authentic = _hooks$auth.authenticate) === null || _hooks$auth$authentic === void 0 || _hooks$auth$authentic.call(_hooks$auth, ...args);\n}\n\n/** @deprecated import it from \"@next-core/easyops-runtime\" instead */\nexport function getAuth() {\n var _hooks$auth2;\n return hooks === null || hooks === void 0 || (_hooks$auth2 = hooks.auth) === null || _hooks$auth2 === void 0 ? void 0 : _hooks$auth2.getAuth();\n}\n\n/** @deprecated import it from \"@next-core/easyops-runtime\" instead */\nexport function logout() {\n var _hooks$auth3, _hooks$auth3$logout;\n return hooks === null || hooks === void 0 || (_hooks$auth3 = hooks.auth) === null || _hooks$auth3 === void 0 || (_hooks$auth3$logout = _hooks$auth3.logout) === null || _hooks$auth3$logout === void 0 ? void 0 : _hooks$auth3$logout.call(_hooks$auth3);\n}\n\n/** @deprecated import it from \"@next-core/easyops-runtime\" instead */\nexport function isLoggedIn() {\n var _hooks$auth4;\n return hooks === null || hooks === void 0 || (_hooks$auth4 = hooks.auth) === null || _hooks$auth4 === void 0 ? void 0 : _hooks$auth4.isLoggedIn();\n}\n//# sourceMappingURL=auth.js.map","import _classPrivateFieldInitSpec from \"@babel/runtime/helpers/classPrivateFieldInitSpec\";\nimport _classPrivateFieldGet from \"@babel/runtime/helpers/classPrivateFieldGet2\";\nvar _registry = /*#__PURE__*/new WeakMap();\nclass CustomEditorRegistry {\n constructor() {\n _classPrivateFieldInitSpec(this, _registry, new Map());\n }\n define(editorName, editorFunc) {\n if (_classPrivateFieldGet(_registry, this).has(editorName)) {\n // eslint-disable-next-line no-console\n console.error(`Custom editor of \"${editorName}\" already registered`);\n return;\n }\n _classPrivateFieldGet(_registry, this).set(editorName, editorFunc);\n }\n get(editorName) {\n return _classPrivateFieldGet(_registry, this).get(editorName);\n }\n}\nexport const customEditors = new CustomEditorRegistry();\n//# sourceMappingURL=CustomEditors.js.map","import { getProviderBrick } from \"./internal/data/getProviderBrick.js\";\nimport { resolveByProvider } from \"./internal/data/resolveData.js\";\nexport async function fetchByProvider(provider, args, options) {\n const providerBrick = await getProviderBrick(provider);\n return resolveByProvider(providerBrick, provider, \"resolve\", args, options);\n}\n//# sourceMappingURL=fetchByProvider.js.map","import { i18n } from \"@next-core/i18n\";\nimport { replaceUseChildren } from \"@next-core/utils/storyboard\";\nimport { uniqueId } from \"lodash\";\nimport { getDataStores, postAsyncRender, renderBricks } from \"./internal/Renderer.js\";\nimport { RendererContext } from \"./internal/RendererContext.js\";\nimport { DataStore } from \"./internal/data/DataStore.js\";\nimport { mountTree, unmountTree } from \"./internal/mount.js\";\nimport { applyMode, applyTheme, setMode, setTheme } from \"./themeAndMode.js\";\nimport { RenderTag } from \"./internal/enums.js\";\nimport { registerStoryboardFunctions } from \"./internal/compute/StoryboardFunctions.js\";\nimport { registerAppI18n } from \"./internal/registerAppI18n.js\";\nimport { registerCustomTemplates } from \"./internal/registerCustomTemplates.js\";\nimport { setUIVersion } from \"./setUIVersion.js\";\nimport { ErrorNode } from \"./internal/ErrorNode.js\";\nimport { isolatedFunctionRegistry, registerIsolatedFunctions } from \"./internal/compute/IsolatedFunctions.js\";\nimport { isolatedTemplateRegistryMap, registerIsolatedTemplates } from \"./internal/IsolatedTemplates.js\";\nexport function unstable_createRoot(container) {\n let {\n portal: _portal,\n scope = \"fragment\",\n unknownBricks,\n supportsUseChildren,\n unsafe_penetrate\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let portal = _portal;\n let createPortal;\n if (_portal) {\n createPortal = _portal;\n } else {\n // Create portal container when necessary.\n createPortal = () => {\n portal = document.createElement(\"div\");\n portal.style.position = \"absolute\";\n portal.style.width = portal.style.height = \"0\";\n document.body.append(portal);\n return portal;\n };\n }\n let unmounted = false;\n let rendererContext;\n let clearI18nBundles;\n const isolatedRoot = scope === \"page\" ? undefined : Symbol(\"IsolatedRoot\");\n return {\n async render(brick) {\n let {\n theme,\n uiVersion,\n language,\n context,\n functions,\n templates,\n i18n: i18nData,\n url,\n app\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (unmounted) {\n throw new Error(\"The root is unmounted and cannot be rendered any more\");\n }\n const bricks = [].concat(brick);\n if (supportsUseChildren) {\n replaceUseChildren(bricks);\n for (const template of templates !== null && templates !== void 0 ? templates : []) {\n if (Array.isArray(template.bricks)) {\n replaceUseChildren(template.bricks);\n }\n }\n }\n const previousRendererContext = rendererContext;\n const renderId = uniqueId(\"render-id-\");\n rendererContext = new RendererContext(scope, {\n unknownBricks,\n renderId\n });\n const runtimeContext = {\n ctxStore: new DataStore(\"CTX\", undefined, rendererContext),\n pendingPermissionsPreCheck: [],\n tplStateStoreMap: new Map(),\n formStateStoreMap: new Map(),\n isolatedRoot,\n unsafe_penetrate\n };\n if (url) {\n const urlObj = new URL(url);\n runtimeContext.query = urlObj.searchParams;\n runtimeContext.location = {\n pathname: urlObj.pathname,\n search: urlObj.search,\n hash: urlObj.hash,\n state: undefined\n };\n }\n const renderRoot = {\n tag: RenderTag.ROOT,\n container,\n createPortal\n };\n if (scope === \"page\") {\n var _clearI18nBundles;\n setTheme(theme !== null && theme !== void 0 ? theme : \"light\");\n setMode(\"default\");\n setUIVersion(uiVersion);\n if (language) {\n await i18n.changeLanguage(language);\n }\n app !== null && app !== void 0 ? app : app = {\n id: \"demo\",\n homepage: \"/demo\"\n };\n runtimeContext.app = app;\n const demoStoryboard = {\n app,\n meta: {\n i18n: i18nData,\n customTemplates: templates\n }\n };\n\n // Register i18n.\n (_clearI18nBundles = clearI18nBundles) === null || _clearI18nBundles === void 0 || _clearI18nBundles();\n clearI18nBundles = registerAppI18n(demoStoryboard);\n\n // Register custom templates.\n registerCustomTemplates(demoStoryboard);\n\n // Register functions.\n registerStoryboardFunctions(functions, app);\n } else {\n registerIsolatedTemplates(isolatedRoot, templates);\n registerIsolatedFunctions(isolatedRoot, functions);\n }\n runtimeContext.ctxStore.define(context, runtimeContext);\n let failed = false;\n let output;\n let stores = [];\n try {\n output = await renderBricks(renderRoot, bricks, runtimeContext, rendererContext, [], {});\n stores = getDataStores(runtimeContext);\n await postAsyncRender(output, runtimeContext, stores);\n } catch (error) {\n failed = true;\n output = {\n node: await ErrorNode(error, renderRoot, scope === \"page\"),\n blockingList: []\n };\n }\n renderRoot.child = output.node;\n previousRendererContext === null || previousRendererContext === void 0 || previousRendererContext.dispatchOnUnmount();\n previousRendererContext === null || previousRendererContext === void 0 || previousRendererContext.dispose();\n unmountTree(container);\n if (portal) {\n unmountTree(portal);\n }\n if (scope === \"page\") {\n if (!failed) {\n rendererContext.dispatchBeforePageLoad();\n }\n applyTheme();\n applyMode();\n }\n mountTree(renderRoot);\n if (scope === \"page\") {\n window.scrollTo(0, 0);\n }\n if (!failed) {\n for (const store of stores) {\n store.mountAsyncData();\n }\n if (scope === \"page\") {\n rendererContext.dispatchPageLoad();\n // rendererContext.dispatchAnchorLoad();\n }\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n rendererContext.initializeMessageDispatcher();\n }\n },\n unmount() {\n if (unmounted) {\n return;\n }\n unmounted = true;\n if (isolatedRoot) {\n isolatedFunctionRegistry.delete(isolatedRoot);\n isolatedTemplateRegistryMap.delete(isolatedRoot);\n }\n unmountTree(container);\n if (portal) {\n unmountTree(portal);\n // Only remove the portal from its parent when it's dynamic created.\n if (!_portal) {\n portal.remove();\n }\n }\n }\n };\n}\n//# sourceMappingURL=createRoot.js.map","import { isEvaluable } from \"@next-core/cook\";\nimport { inject } from \"@next-core/inject\";\nimport { isObject } from \"@next-core/utils/general\";\nimport { getHistory } from \"./index.js\";\nimport { _internalApiGetRuntimeContext } from \"./internal/Runtime.js\";\nimport { evaluate } from \"./internal/compute/evaluate.js\";\nimport { hasBeenComputed, markAsComputed } from \"./internal/compute/markAsComputed.js\";\n\n/**\n * An equivalent of `computeRealValue` but for external usages, with no custom\n * context or options.\n *\n * @param value - Any value which may contains evaluations or placeholders.\n * @returns Computed real value.\n */\nexport function getRealValue(value) {\n let {\n useRealTimeQuery\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const ctx = {\n ..._internalApiGetRuntimeContext()\n };\n if (useRealTimeQuery) {\n ctx.query = new URLSearchParams(getHistory().location.search);\n }\n const compute = data => {\n if (typeof data === \"string\") {\n if (isEvaluable(data)) {\n const result = evaluate(data, ctx);\n markAsComputed(result);\n return result;\n }\n return inject(data, ctx);\n }\n if (!isObject(data) || hasBeenComputed(value)) {\n return data;\n }\n if (Array.isArray(data)) {\n return data.map(v => compute(v));\n }\n return Object.fromEntries(Object.entries(data).map(_ref => {\n let [k, v] = _ref;\n return [compute(k), compute(v)];\n }));\n };\n return compute(value);\n}\n//# sourceMappingURL=getRealValue.js.map","const stack = [];\nexport function instantiateModalStack() {\n let initialIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1000;\n let index = -1;\n const pull = () => {\n if (index > -1) {\n const found = stack.indexOf(index);\n // Assert: found should always be greater than -1\n // istanbul ignore else\n if (found > -1) {\n stack.splice(found, 1);\n }\n }\n };\n const push = () => {\n var _stack;\n // Handle pushes without pull\n pull();\n // Find the next available index\n index = ((_stack = stack[stack.length - 1]) !== null && _stack !== void 0 ? _stack : -1) + 1;\n stack.push(index);\n return index + initialIndex;\n };\n return {\n push,\n pull\n };\n}\n//# sourceMappingURL=ModalStack.js.map","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldGet2(s, a) {\n return s.get(assertClassBrand(s, a));\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateFieldInitSpec(obj, privateMap, value) {\n checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}","export default function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateMethodInitSpec(obj, privateSet) {\n checkPrivateRedeclaration(obj, privateSet);\n privateSet.add(obj);\n}","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldSet2(s, a, r) {\n return s.set(assertClassBrand(s, a), r), r;\n}"],"names":["toPropertyKey","t","i","e","Symbol","toPrimitive","call","r","TypeError","String","_assertClassBrand","n","has","arguments","length","_typeof","o","iterator","constructor","prototype","_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","getBasePath","base","document","querySelector","getAttribute","matchStoryboard","storyboards","pathname","sortedStoryboards","orderBy","storyboard","_storyboard$app$homep","_storyboard$app$homep2","app","homepage","matchHomepage","replace","startsWith","isOutsideApp","_getRuntime$getCurren","getRuntime","getCurrentApp","id","window","STANDALONE_MICRO_APPS","standaloneMode","blocked","getUserConfirmation","message","callback","confirm","historyOverridden","browserHistory","push","originalPush","originalReplace","updateFactory","method","path","state","pathIsString","parsePath","_bootstrapData$storyb","_bootstrapData9","bootstrapData","_internalApiMatchStoryboard","location","substring","createHref","getV2RuntimeFromDll","_window$BRICK_NEXT_VE","dll","BRICK_NEXT_VERSIONS","createHistory","createBrowserHistory","basename","assign","updateQueryFactory","query","options","undefined","extraQuery","clear","keepHash","urlSearchParams","URLSearchParams","search","params","entries","Array","isArray","delete","item","append","set","toString","hash","blockMessage","pushQuery","replaceQuery","pushAnchor","notify","reload","noIncremental","setBlockMessage","getBlockMessage","unblock","historyExtended","getHistory","v2Kit","getHistoryV2Factory","_registry","WeakMap","customProcessors","freeze","define","processorFullName","processorFunc","registerCustomProcessor","getCustomProcessorsV2","this","Map","namespace","processorName","split","pkg","get","Error","registerAppI18n","_ref","meta","i18n","i18nNamespace","getI18nNamespace","languages","forEach","_ref2","lang","resources","addResourceBundle","removeResourceBundle","type","widgetI18nFactory","widgetId","getFixedT","registerWidgetI18n","i18nData","registerWidgetI18nV2Factory","ns","MESSAGE_SOURCE_PANEL","FRAME_ACTIVE_CHANGE","PANEL_CHANGE","selectedPanel","frameIsActive","devtoolsHookEmit","payload","devtools","getDevHook","emit","_devtools$emit","requestIdleCallback","setTimeout","__BRICK_NEXT_DEVTOOLS_HOOK__","THROW","readOnlyHandler","deleteProperty","setPrototypeOf","getReadOnlyProxy","object","Proxy","getDynamicReadOnlyProxy","ownKeys","fromEntries","map","theme","storage","JsonStorage","localStorage","LOCAL_STORAGE_APPS_THEME_KEY","setTheme","getTheme","getCurrentTheme","documentElement","dataset","applyTheme","dispatchEvent","CustomEvent","detail","batchSetAppsLocalTheme","appsTheme","setItem","getLocalAppsTheme","result","getItem","console","error","mode","setMode","getCurrentMode","applyMode","getCssPropertyValue","name","_window$getComputedSt","el","getComputedStyle","getPropertyValue","variant","setThemeVariant","getThemeVariant","isolatedFunctionRegistry","getGeneralGlobals","attemptToVisitGlobals","globalVariables","variableName","variable","getIndividualGlobal","_hooks$images","_hooks$images2","_hooks$checkPermissio","collectCoverage","widgetVersion","isolatedRoot","appendI18nNamespace","storyboardFunctions","isStoryboardFunction","hooks","images","widgetImagesFactory","imagesFactory","isBuildPush","currentVersion","identity","filter","Boolean","fakeI18nText","i18nText","language","check","fakeCheckPermissions","checkPermissions","href","origin","host","hostname","data","en","StoryboardFunctionRegistryFactory","debuggerOverrides","registeredFunctions","overrides","precookFunction","cook","supply","_target","fn","processed","cooked","collector","createCollector","transformed","getGlobalVariables","globals","Function","source","hasOwnProperty","precooked","typescript","beforeVisit","cacheKey","function","rules","noVar","LodashWithStaticFields","_","ArrayConstructor","ObjectWithStaticFields","beforeEvaluate","beforeCall","beforeBranch","debug","getStoryboardFunction","currentApp","registerStoryboardFunctions","functions","_fn$perm","deps","collectMemberUsageInFunction","hasPermissionsCheck","perm","updateStoryboardFunction","newFn","checkPermissionsUsage","functionNames","checkedFunctions","Set","add","some","clearGlobalExecutionContextStack","__dev_only_clearGlobalExecutionContextStack","getGlobalExecutionContextStack","__dev_only_getGlobalExecutionContextStack","EventTarget","wm","create","proto","target","dispatch","info","once","removeEventListener","listener","handleEvent","_stopImmediatePropagationFlag","secret","listeners","event","slice","currentTarget","splice","MediaBreakpoint","mediaBreakpointMinWidthMap","xLarge","large","medium","small","xSmall","mediaEventTarget","breakpointMatchesMap","MEDIA","handleMatchesChange","breakpoint","changed","matches","minWidth","mediaQueryList","matchMedia","addEventListener","addListener","getMedia","getStorageItem","storageType","_storage$getItem","sessionStorage","JSON","parse","isStrictMode","runtimeContext","_getRuntime","flags","getFeatureFlags","warnAboutStrictMode","strict","_len","extraLogs","_key","punctuation","warn","allowedNativeProps","_isolated","CustomTemplateRegistry","isolated","tagName","_constructor$proxy$pr","_constructor$proxy","_compatibleConstructo","_compatibleConstructo2","registered","customElements","proxyProperties","proxy","properties","validProxyProps","legacyTplVariables","asVariable","mergeProperty","refTransform","ref","compatibleConstructor","expose","concat","tpl","exposedStates","uniq","_state$filter$map","proxyMethods","methods","props","entry","nativeProps","prop","HTMLElement","p","join","TplElement","$$typeof","_dev_only_definedProperties","_dev_only_definedMethods","$$getElementByRef","_this$$$tplStateStore","$$tplStateStore","hostBrick","tplHostMetadata","internalBricksByRef","element","connectedCallback","shadowRoot","attachShadow","fragment","createDocumentFragment","style","createElement","textContent","slot","appendChild","disconnectedCallback","propName","getValue","_this$$$tplStateStore2","updateValue","from","to","_to$refProperty","refProperty","_this$$$getElementByR","_to$refProperty2","_to$refMethod","refMethod","clearIsolatedRegistry","customTemplates","registerCustomTemplate","getCustomTemplatesV2","isolatedTemplateRegistryMap","getTplStateStore","using","extraInfo","tplStateStoreId","tplStateStoreMap","store","getTplHostElement","hostElement","widgetFunctionRegistry","widgetFunctions","registerWidgetFunctions","registerWidgetFunctionsV2Factory","semver","validateAndParse","version","match","shift","isWildcard","s","tryParse","v","parseInt","isNaN","compareStrings","a","b","ap","bp","forceType","compareSegments","Math","max","compare","v1","v2","operator","assertValidOperator","res","n1","n2","p1","pop","p2","compareVersions","operatorResMap","includes","allowedOperators","keys","op","indexOf","hasInstalledApp","appId","matchVersion","_internalApiGetAppInBootstrapData","checkInstalledApps","getCheckedApp","installStatus","getFormStateStore","formStateStoreId","formStateStoreMap","pool","async","getProviderBrick","provider","_hooks$flowApi","isFlowApi","flowApi","isFlowApiProvider","FLOW_API_PROVIDER","brick","registerFlowApiProvider","loadBricksImperatively","getBrickPackages","computed","WeakSet","markAsComputed","isObject","hasBeenComputed","getPrototypeOf","values","cache","resolveData","resolveConf","resolveOptions","useProvider","args","filename","onReject","legacyProvider","field","legacyField","hasLegacyField","contractConf","providerBrick","actualArgs","actualContractConf","Promise","all","asyncComputeRealValue","renderId","stale","_internalApiGetRenderId","promise","resolveByProvider","transform","isHandleRejectByTransform","originalArgs","stringify","finalArgs","_hooks$flowApi2","getArgsOfFlowApi","symbolForRaw","for","symbolForContext","isPreEvaluated","raw","getPreEvaluatedRaw","pre","shouldDismissMarkingComputed","shouldAllowRecursiveEvaluations","possibleErrorConstructs","SyntaxError","ReferenceError","getCookErrorConstructor","evaluate","run","lowLevelEvaluate","isAsync","blockingList","passByRuntimeContext","omit","menuUsage","usedArgs","hasAppUsage","preevaluate","withParent","beforeVisitGlobal","node","parent","collectAppGetMenuUsage","collectInstalledAppsHasUsage","hasNonStaticUsage","lazy","usedCtx","usedProcessors","usedStates","tplStateStore","usedFormStates","formStateStore","devHook","strictCollectMemberUsage","ctxStore","waitFor","usedTpls","loadProcessorsImperatively","attemptToCheckPermissions","usedFunctions","pendingPermissionsPreCheck","size","menu","usedMenuIds","menuId","fetchMenuById","getStoryboardByAppId","_internalApiGetStoryboardInBootstrapData","_hooks$checkInstalled","waitForCheckingApps","_penetrableCtx$overri","_hooks$menu","_match$params","unsafe_penetrate","penetrableCtx","_internalApiGetRuntimeContext","sys","overrideApp","cloneDeep","getMenu","getMenuById","_internalApiGetRuntim","internalCtxStore","property","getMiscSettings","_t","k","processor","getAll","expression","context","StateOfUseBrick","isLazyContentInUseBrick","USE_BRICK_PROPERTIES","USE_BRICK_TRANSFORM","USE_BRICK_EVENTS","USE_BRICK_IF","USE_BRICK_LIFECYCLE","USE_BRICK_DATA_SOURCE","getNextStateOfUseBrick","USE_BRICK","USE_BRICK_ITEM","USE_BRICK_SLOTS_ITEM_BRICKS","USE_BRICK_SLOTS_ITEM_BRICKS_ITEM","INITIAL","USE_BRICK_SLOTS","USE_BRICK_SLOTS_ITEM","penetrableCtxNames","internalOptions","preEvaluated","$$lazyForUseBrick","$$stateOfUseBrick","dismissMarkingComputed","isEvaluable","asyncEvaluate","pick","noInject","transformAndInject","inject","nextOptions","getNextComputeOptions","ignoreSymbols","getOwnPropertySymbols","computeRealValue","asyncCheckIf","ifContainer","if","checkIf","checkIfOfComputed","checkIfByTransform","looseCheckIfByTransform","checkIfByTransformV2Factory","getTracks","contextNames","stateNames","formStateNames","isTrackAll","trackAll","formState","track","computePropertyValue","asyncPropertyEntries","asyncValue","ignoreUndefined","constructAsyncProperties","setRealProperties","realProps","propValue","setProperty","cssFloat","setProperties","bricks","realValue","computeRealProperties","trackAfterInitial","trackingContextList","initialTracker","contextName","disposes","onChange","stateName","escapeString","str","sensitive","stringToRegexp","tokens","_a","_b","start","_c","end","_d","encode","x","_e","delimiter","_f","endsWith","endsWithRe","delimiterRe","route","_i","tokens_1","token","prefix","suffix","pattern","modifier","mod","endToken","isEndDelimited","RegExp","tokensToRegexp","char","index","count","j","code","charCodeAt","lexer","prefixes","tryConsume","mustConsume","nextType","consumeText","safePattern","prev","prevText","delimiter_1","isSafe","name_1","pattern_1","pathToRegexp","groupsRegex","execResult","exec","regexpToRegexp","paths","parts","arrayToRegexp","cacheLimit","cacheCount","matchPath","exact","reduce","matched","regexp","pathCache","cacheResult","compilePath","url","isExact","memo","matchRoute","symbolForAsyncComputedPropsFromHost","symbolForTplStateStoreId","symbolForTPlExternalForEachItem","symbolForTPlExternalForEachIndex","symbolForTPlExternalForEachSize","timeoutIdList","K","REQUEST_FAILED","SOMETHING_WENT_WRONG","LOGIN_TIMEOUT_MESSAGE","NETWORK_ERROR","LICENSE_EXPIRED","LICENSE_BLOCKED","NO_PERMISSION","PAGE_NOT_FOUND","APP_NOT_FOUND","UNKNOWN_ERROR","GO_BACK_TO_PREVIOUS_PAGE","GO_BACK_HOME","RELOAD","zh","NS","locales","Dialog","show","resolve","confirmed","content","reject","alert","setLoginStateCookie","pathValue","btoa","encodeURIComponent","searchValue","cookie","httpErrorToString","Event","HTMLScriptElement","src","HttpFetchError","HttpResponseError","responseJson","msg","isUnauthenticatedError","response","status","lastErrorMessage","unauthenticatedConfirming","handleHttpError","HttpAbortError","NO_AUTH_GUARD","then","ssoEnabled","history","redirectToLogin","title","contentStyle","whiteSpace","wordBreak","Notification","DebugManager","getInstance","instance","initDebugMode","setupWindowAPI","debugMode","debugType","log","activateSessionDebug","debugConsole","enable","enablePersistent","disable","removeItem","toggle","togglePersistent","description","getStatusDescription","help","isDebugMode","getDebugType","shouldLog","debugManager","bindListeners","eventsMap","eventType","handlers","listenerFactory","$$listeners","$$eventListeners","handler","isBuiltinHandler","action","isUseProviderHandler","isCustomHandler","targetRef","isConditionalEventHandler","runtimeBrick","_handler$batch","_handler$batch2","handleHistoryAction","handleWindowOpenAction","handleWindowPostMessageAction","handleParentPostMessageAction","handleLocationAction","handleStorageAction","preventDefault","stopPropagation","handleConsoleAction","handleMessageAction","handleContextAction","batch","handleTplStateAction","init","argsFactory","handleFormStateAction","handleMessageDispatcher","handleUseProviderAction","handleCustomAction","else","brickCallback","targets","rawTarget","rawTargetRef","computedTarget","multiple","querySelectorAll","found","computedTargetRef","targetRefs","tplHostElement","_tplHostElement$$$get","isExecuteCustomHandler","useEventAsDefault","isSetPropsCustomHandler","targetOrProvider","isProvider","task","realTarget","toLowerCase","isUseProvider","computedArgs","argsOrContractConf","computeArgs","_handler$sse","sse","stream","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","_handler$sse2","_handler$poll","pollRuntimeContext","finallyCallback","currentRenderId","startSSEStream","poll","enabled","pollOptions","expectPollStopImmediately","expectPollEnd","interval","leadingRequestDelay","continueOnError","delegateLoadingBar","currentTimeoutId","shouldStop","_computeRealValue","_computeRealValue2","expectPollStopImmediatelyResult","_computeRealValue3","delayedPoll","_computeRealValue4","delay","startPoll","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","features","open","postMessage","batchUpdate","updateValues","arg","every","_hooks$messageDispatc","messageDispatcher","bindTemplateProxy","_tplHostMetadata$prox","events","_to$refEvent","_ref$$$proxyListeners","bubbles","cancelable","composed","refEvent","$$proxyListeners","unbindTemplateProxy","_$$proxyListeners","RenderTag","unmountTree","mountPoint","replaceChildren","mountTree","root","initializedElement","mounted","DISABLE_REACT_FLUSH_SYNC","current","child","portalElements","tag","BRICK","_current$tplHostMetad","slotId","setAttribute","iid","portal","return","currentReturn","ABSTRACT","childElements","sibling","_currentReturn","_currentReturn$contai","ROOT","container","createPortal","commonLifeCycles","pageOnlyLifeCycles","_routeHelper","_memoizedLifeCycle","_observers","_mediaListener","_arbitraryLifeCycle","_initialMenuRequestNode","_memoizedMenuRequestNodeMap","_incrementalRenderStates","_RendererContext_brand","RendererContext","scope","_options$unknownBrick","onBeforePageLoad","onPageLoad","onPageLeave","onBeforePageLeave","onAnchorLoad","onAnchorUnload","onMediaChange","onScrollIntoView","onMount","onUnmount","onMessage","onMessageClose","unknownBricks","routeHelper","setInitialMenuRequestNode","menuRequestNode","memoizeMenuRequestNode","routes","getMenuRequests","menuRequests","request","_current","reMergeMenuRequestNodes","parentMenuRequestNode","previousSibling","mergeMenus","reBailout","output","bailout","reCatch","returnNode","catch","didPerformIncrementalRender","prevLocation","finalResult","shouldIgnoreRoutes","parentRoutes","reverse","parentRoute","performIncrementalRender","slotConf","registerBrickLifeCycle","lifeCycle","lifeCycleTypes","isEmpty","useResolves","registerArbitraryLifeCycle","arbitraryCallbacks","reRender","oldNode","_prevLastNormal$eleme","_findNextSiblingNode","_prevLastPortal$eleme","_findNextSiblingNode2","disposed","prevLastNormal","prevLastPortal","lastNormal","lastPortal","level","findLastChildNodes","insertBeforeChild","nextSibling","findNextSiblingNode","insertPortalBeforeChildCandidates","prevSibling","portalFragment","renderRoot","removeBricks","removeAbstracts","getContainedBrickAndAbstractNodes","_unmountBricks","_unmountAbstracts","_cleanUpNodes","hasChildNodes","entityReturnNode","getEntityReturnNode","_entityReturnNode$con","_entityReturnNode$ele","insertBefore","_root","insertPortalBeforeChild","candidate","contains","newBricks","_initializeRerenderBricks","dispose","list","observer","disconnect","dispatchBeforePageLoad","_dispatchGeneralLifeCycle","dispatchPageLoad","dispatchBeforePageLeave","dispatchPageLeave","dispatchAnchorLoad","anchor","initializeScrollIntoView","conf","_addObserver","initializeMediaChange","initializeMessageDispatcher","_hooks$messageDispatc2","confList","channel","onClose","dispatchOnMount","dispatchOnUnmount","unmountList","removed","remove","_brick$element","_brick$element2","_brick$disposes","observers","unmountEvent","abstracts","_item$disposes","nodes","mountEvent","_conf$threshold","threshold","IntersectionObserver","isIntersecting","intersectionRatio","observe","_currentReturn2","_currentReturn3","routeMatchedMap","getMatchedRoute","legacyDoTransform","doTransform","legacyTransformProperties","mapArray","transformProperties","processedData","pipeableTransform","preprocessTransformProperties","legacyTransformIntermediateData","intermediateData","fromData","transformedPropName","transformTo","symbolForRootRuntimeContext","renderUseBrick","useBrick","errorBoundary","_useBrick$symbolForRo","_scopedRuntimeContext","_scopedRuntimeContext2","_brickNode","scopedRuntimeContext","tplStateStoreScope","formStateStoreScope","createScopedRuntimeContext","inUseBrick","rendererContext","renderBrick","scopedStores","brickNode","postAsyncRender","currentNode","mountUseBrick","portalRoot","mountAsyncData","unmountUseBrick","mountResult","updateStoryboard","storyboardPatch","$$fulfilling","$$fulfilled","$$registerCustomTemplateProcessed","updateStoryboardByRoute","newRoute","replaceRoutes","replaceBricks","slots","unshift","updateStoryboardByTemplate","newTemplate","settings","tplName","updateTemplatePreviewSettings","templateId","_updatePreviewSettings","getSnippetPreviewPath","snippetId","updateStoryboardBySnippet","snippetData","_snippetData$bricks","updateSnippetPreviewSettings","previewRouteIndex","findIndex","newPreviewRoute","getContextValue","_ref3","getAllContextValues","_ref4","getAllValues","getBrickPackagesById","find","filePath","loadBricks","loadEditors","editors","brickPackages","loadEditorsImperatively","getRenderId","getAddedContracts","_ref5","updateStoryboardType","collectUsedContracts","updatedStoryboard","_storyboard$routes","snippetPreviewPath","addedContracts","api","_storyboard$meta","namespaceId","contracts","contract","debugDataValue","debugData","_ref6","routeId","getLegalRuntimeValue","_runtimeContext$overr","realTimeDataInspectRoot","RealTimeDataInspectHooks","setRealTimeDataInspectRoot","callRealTimeDataInspectHooks","changeType","addRealTimeDataInspectHook","hook","supportContextResolveTriggerBrickLifeCycle","DataStore","stateStoreId","changeEventType","_this$data$get","notifyRealTimeDataChange","getAffectListByContext","affectNames","batchUpdateContextsNames","updateContexts","affectContexts","affectDepsContextNames","updateContextItem","affectContextItem","triggerEvent","contexts","_context$eventTarget","eventTarget","callbackRuntimeContext","nextValue","is","useResolve","loaded","loading","shouldDismiss","_this$rendererContext","load","val","finishLoad","dataConfs","asyncHostPropertyEntries","routePath","pending","contextConfs","resolveContext","keyword","dependencyMap","depsMap","contextConf","stats","collectMemberUsage","legacyTplStats","usedProperties","getDependencyMapOfContext","pendingDeps","_pendingDeps$get","deferredContexts","pendingContexts","wrapResolve","_pendingDeps$get2","resolved","left","scheduleNext","scheduleAsSerial","readyContexts","dep","predicateNextResolveFactory","pendingResult","duplicatedMap","next","processedAtLeastOne","detectCircularContexts","deferred","resolveDataStore","dataConf","stack","routeStackMap","pendingStack","dataName","_this$data$get2","dataNames","ctx","waitForAll","_this$routeMap$get","routeMap","asyncMounted","trackConditionalResolve","resolvePolicy","hasFallbackValue","_this$rendererContext2","newData","trigger","_this$rendererContext3","batchAddListener","names","disposeDataInRoutes","pull","setupTemplateProxy","hostContext","slotted","reversedProxies","externalSlots","asyncComputedProps","propertyProxies","asyncHostProps","filtered","slotProxies","quasisMap","_externalSlots$from$b","_externalSlots$from","_to$refSlot","_to$refPosition","insertBricks","refToSlot","refSlot","expandableSlot","refPosition","hostHasForEach","clamp","setupTemplateExternalBricksWithForEach","forEachItem","forEachIndex","forEachSize","slotName","quasis","flatMap","_childrenToSlots","children","childrenToSlots","setupTemplateExternalRoutesWithForEach","replaceSlotWithSlottedBricks","brickConf","expand","_brickConf$properties","_brickConf$properties2","_defaultSlots$$bricks","_defaultSlots$","usedSlots","_hostContext$external","hostCtx","defaultSlots","setupUseBrickInTemplate","walk","setup","markSlotted","it","originalSlots","restConf","transpiledSlots","markChild","_slotConf$bricks","expandBrickInTemplate","brickConfInTemplate","slotsInTemplate","childrenInTemplate","restBrickConfInTemplate","FORM_RENDERER","symbolForFormStateStoreId","formContainers","formSchemaToBrick","schema","fields","instanceId","fieldId","defaults","defaultValue","commonProps","label","testid","getReadOnlyAndRequired","_field$limit","_field$limit2","readOnly","limit","required","fieldType","placeholder","precision","inputBoxStyle","width","getDefaultProperties","formSchemasToBricks","schemas","_FormElement_brand","FormElement","super","validate","_proxyFormMethod","setInitValue","resetFields","_len2","_key2","getFieldsValue","_len3","_key3","_this$firstElementChi","_containerElement$tag","containerElement","firstElementChild","PageError","captureStackTrace","BrickLoadError","ErrorNode","pageLevel","showLink","showDescription","_error$response","_error$responseJson","getRefinedErrorConf","_presetBricks$error","errorBrick","_internalApiGetPresetBricks","linkBrick","race","_resolve","errorTitle","getLinkNode","useDefaultError","color","descriptionNode","click","renderRoutes","_runtimeContext","menuRequestReturnNode","isIncremental","noAuthGuard","public","auth","isLoggedIn","matchRoutes","unauthenticated","preCheckPermissionsForBrickOrRoute","preLoadBricks","redirectTo","redirect","menuRequest","menuConf","loadMenu","newOutput","catchLoad","renderBricks","mergeRenderOutput","appendMenuRequestNode","tplStack","setupBrick","forceRecursive","setupRootRuntimeContext","_hooks$checkPermissio2","template","brickIf","permissionsPreCheck","restBrickConf","isGeneralizedTrackAll","dataSource","acc","symbol","asyncCheckBrickIf","brickName","_brickConf$lifeCycle","ensureValidControlBrick","tracking","lowerLevelRenderControlNode","tracker","trackDataSource","_slots$slot","computedDataSource","abstractNode","childrenOutput","rendered","flat","renderForEach","renderControlNode","changedAfterInitial","rawOutput","rerenderCount","uninitialized","controlledOutput","_runtimeBrick$dispose","reControlledOutput","rerender","debouncedListener","debounce","leading","trailing","test","tplTagName","registry","getTagNameOfCustomTemplate","_tplStack$get","tplCount","enqueueStableLoadBricks","formData","confProps","compute","asyncComputeRealPropertyEntries","computedPropsFromHost","isScript","rel","_window$PUBLIC_ROOT","PUBLIC_ROOT","attrs","loadScript","loadStyle","listenOnTrackingContext","loadProperties","childRuntimeContext","expandedBrickConf","uniqueId","collectWidgetContract","originalExternalSlots","externalChildren","newBrickConf","proxies","expandCustomTemplate","hostBrickConf","_normalizedFormData$c","_hostBrickConf$proper","normalizedFormData","formConf","formSchema","targetEvents","sourceEvents","mergeEvents","padding","expandFormRenderer","routeSlotFromIndexToSlotId","childSlotId","lastOutput","incrementalSubRoutes","prevMatch","newMatch","isEqual","omitNumericKeys","Number","c","omitBy","d","isRouteParamsEqual","incrementalOutput","failed","newControlNode","routesOutput","last","mergeSiblingRenderMenuRequest","loadChildren","legacyRenderBrick","getDataStores","stores","flushStableLoadBricks","rest","newSlots","sl","unknownPolicy","misc","nativeController","getPageInfo","isInIframe","isInIframeOfSameSite","isInIframeOfNext","isInIframeOfVisualBuilder","isInIframeOfLegacyConsole","selfIsNext","parentPathname","parentIsNext","registerCustomTemplates","templates","setUIVersion","ui","WATEMARK_BRICKNAME","isNetworkError","STORAGE_KEY","MAX_RELOAD_COUNT","shouldReloadForError","navigator","userAgent","_sessionStorage$getIt","resetReloadForError","_storyboards","_rendering","_nextRender","_rendererContext","_rendererContextTrashCan","_redirectCount","_renderId","_currentApp","_previousApp","_navConfig","_bootstrapFailed","_Router_brand","Router","_history","_getBlockMessageBeforePageLave","returnValue","block","getRuntimeContext","getRecentApps","previousApp","getNavConfig","bootstrap","AbortController","http","interceptors","use","config","_config$options","signal","noAbortOnRouteChange","nextPrevLocation","listen","_queuedRender","_classPrivateFieldGet2","previousMessage","_safeRedirect","_this$redirectCount","_this$redirectCount2","_preRender","nextRender","_prevLocation$state","_location$state","_location$state2","_classPrivateFieldGet4","ignoreRendering","omittedLocationProps","_classPrivateFieldGet3","locationsAreEqual","abort","_render","isBootstrap","_hooks$auth","_hooks$auth$isBlocked","_hooks$pageView","_classPrivateFieldGet5","_storyboard$app","isBlockedPath","clearCollectWidgetContract","finishPageView","pageView","currentAppId","BOOTSTRAP_UNION_FILE","APP_ROOT_TPL","APP_ID","APP_ROOT","setAppVariable","_hooks$fulfilStoryboa","fulfilStoryboard","doFulfilStoryboard","_storyboard$meta$forE","_hooks$auth3","_hooks$auth3$isBlocke","blackList","_hooks$auth2","_hooks$auth2$addPathT","addPathToBlackList","_window$APP_ROOT","_window$APP_ROOT2","_username","_settings$watermarkCo","_watermarkConfig$cont","_watermarkConfig$flag","_watermarkConfig$flag2","isDeveloper","username","getAuth","watermarkConfig","defaultProps","zIndex","font","fontSize","gap","setWatermark","appChanged","clearExpressionASTCache","clearFunctionASTCache","prevRendererContext","main","cleanUpPreviousRender","reset","globalThemeVariant","_hooks$auth4","_storyboard$meta2","_storyboard$meta3","preCheckInstalledApps","menuConfs","navConfig","breadcrumb","overwrite","items","mergeMenuConfs","isCurrentBootstrap","isReCatch","noAuthGuardLoginPath","brand","getBrandSettings","preCheckPermissions","collectContract","rootMenuRequestNode","mergedRoutes","specificTemplatePreviewIndex","findLastIndex","specificSnippetPreviewIndex","insertPreviewRoutes","uiVersion","scrollTo","pageTitle","injectedBrickPackages","BRICK_PACKAGES","parseFloat","isOnePointZero","isPercent","isPercentage","min","abs","convertToPercentage","hue2rgb","q","convertHexToDecimal","h","parseIntFromHex","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","goldenrod","gold","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavenderblush","lavender","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","inputToRGB","g","rgb","l","ok","format","trim","named","matchers","rgba","hsl","hsla","hsv","hsva","hex8","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","substr","floor","f","hsvToRgb","hslToRgb","boundAlpha","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","darkColorMap","opacity","toHsv","rgbToHsv","toHex","hex","round","rgbToHex","getHue","light","hue","getSaturation","saturation","toFixed","generate","opts","patterns","pColor","colorString","_hsv","_colorString","rgb1","rgb2","backgroundColor","presetPrimaryColors","volcano","geekblue","presetPalettes","presetDarkPalettes","getLightStyle","cssVariableDefinitions","getDarkStyle","getRgbChannel","getActualBaseColor","baseColor","applyColorTheme","brandColor","default","hover","active","getStyleByBrandColor","baseColors","palettes","colorName","palette","ensureBaseColorName","getCssVariableDefinitionsByPalettes","generatePalettes","legacyColorName","newColorName","getMigratedCssVariableDefinitions","getStyleByBaseColors","variables","ensureCssVariableName","getCssVariableDefinitionsByVariables","getStyleByVariables","head","runtime","router","processedBrickPackages","createRuntime","panel","initializeI18n","on","Runtime","primary","Reflect","getRuntimeV2Factory","_initialized","_bootstrapped","initialize","_data$settings","deepFreeze","normalizeBootstrapData","notification","dialog","loadNotificationService","loader","loadDialogService","customizeColorTheme","_router$getRecentApps","_router","_router2","_bootstrapData","_router3","featureFlags","_bootstrapData2","_router4","_bootstrapData3","base_title","getLaunchpadSettings","_bootstrapData4","columns","rows","launchpad","getDesktops","_bootstrapData$deskto","_bootstrapData5","desktops","getLaunchpadSiteMap","_bootstrapData$siteSo","_bootstrapData6","siteSort","toggleLaunchpadEffect","body","classList","applyPageTitle","_router5","baseTitle","localeTitle","_router6","_bootstrapData$brickP","_bootstrapData7","pubDeps","bricksMap","pkgName","processPublicDepsPackages","STANDALONE_BRICK_PACKAGES","PUBLIC_DEPS","_bootstrapData$settin","_bootstrapData8","presetBricks","_router7","_router8","_bootstrapData0","_internalApiGetStoryb","authenticate","_hooks$auth$authentic","logout","_hooks$auth3$logout","customEditors","editorName","editorFunc","fetchByProvider","unstable_createRoot","_portal","supportsUseChildren","position","height","clearI18nBundles","unmounted","render","replaceUseChildren","previousRendererContext","urlObj","URL","searchParams","_clearI18nBundles","changeLanguage","demoStoryboard","registerIsolatedTemplates","registerIsolatedFunctions","unmount","getRealValue","useRealTimeQuery","instantiateModalStack","initialIndex","_stack","_classPrivateFieldInitSpec","privateMap","_checkPrivateRedeclaration","privateCollection","_classPrivateMethodInitSpec","privateSet","_classPrivateFieldSet2"],"sourceRoot":""}