@magmonium/one 0.4.34 → 0.4.36

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 (182) hide show
  1. package/assets/buttons/audience_done.json +4 -0
  2. package/assets/i18n/af.json +3 -0
  3. package/assets/i18n/am.json +3 -0
  4. package/assets/i18n/ar.json +17 -0
  5. package/assets/i18n/as.json +3 -0
  6. package/assets/i18n/az.json +3 -0
  7. package/assets/i18n/ba.json +3 -0
  8. package/assets/i18n/be.json +3 -0
  9. package/assets/i18n/bg.json +3 -0
  10. package/assets/i18n/bn.json +3 -0
  11. package/assets/i18n/br.json +3 -0
  12. package/assets/i18n/bs.json +3 -0
  13. package/assets/i18n/ca.json +3 -0
  14. package/assets/i18n/ceb.json +3 -0
  15. package/assets/i18n/cnr.json +3 -0
  16. package/assets/i18n/co.json +3 -0
  17. package/assets/i18n/cs.json +3 -0
  18. package/assets/i18n/cy.json +3 -0
  19. package/assets/i18n/da.json +3 -0
  20. package/assets/i18n/de.json +17 -0
  21. package/assets/i18n/doi.json +3 -0
  22. package/assets/i18n/el.json +3 -0
  23. package/assets/i18n/en.json +17 -0
  24. package/assets/i18n/eo.json +3 -0
  25. package/assets/i18n/es.json +17 -0
  26. package/assets/i18n/et.json +2 -0
  27. package/assets/i18n/eu.json +3 -0
  28. package/assets/i18n/fa.json +3 -0
  29. package/assets/i18n/fi.json +3 -0
  30. package/assets/i18n/fr.json +17 -0
  31. package/assets/i18n/fy.json +3 -0
  32. package/assets/i18n/ga.json +3 -0
  33. package/assets/i18n/gd.json +3 -0
  34. package/assets/i18n/gl.json +3 -0
  35. package/assets/i18n/gu.json +3 -0
  36. package/assets/i18n/ha.json +3 -0
  37. package/assets/i18n/haw.json +3 -0
  38. package/assets/i18n/he.json +3 -0
  39. package/assets/i18n/hi.json +17 -0
  40. package/assets/i18n/hmn.json +3 -0
  41. package/assets/i18n/hr.json +3 -0
  42. package/assets/i18n/hu.json +3 -0
  43. package/assets/i18n/hy.json +3 -0
  44. package/assets/i18n/id.json +3 -0
  45. package/assets/i18n/ig.json +3 -0
  46. package/assets/i18n/ilo.json +3 -0
  47. package/assets/i18n/is.json +3 -0
  48. package/assets/i18n/it.json +17 -0
  49. package/assets/i18n/iw.json +3 -0
  50. package/assets/i18n/ja.json +17 -0
  51. package/assets/i18n/jw.json +3 -0
  52. package/assets/i18n/ka.json +3 -0
  53. package/assets/i18n/kk.json +3 -0
  54. package/assets/i18n/km.json +3 -0
  55. package/assets/i18n/kn.json +3 -0
  56. package/assets/i18n/ko.json +17 -0
  57. package/assets/i18n/kok.json +3 -0
  58. package/assets/i18n/ku.json +3 -0
  59. package/assets/i18n/ky.json +3 -0
  60. package/assets/i18n/la.json +3 -0
  61. package/assets/i18n/lb.json +3 -0
  62. package/assets/i18n/lo.json +3 -0
  63. package/assets/i18n/lt.json +3 -0
  64. package/assets/i18n/lv.json +3 -0
  65. package/assets/i18n/mai.json +3 -0
  66. package/assets/i18n/mg.json +3 -0
  67. package/assets/i18n/mi.json +3 -0
  68. package/assets/i18n/mk.json +3 -0
  69. package/assets/i18n/ml.json +3 -0
  70. package/assets/i18n/mn.json +3 -0
  71. package/assets/i18n/mr.json +3 -0
  72. package/assets/i18n/ms.json +3 -0
  73. package/assets/i18n/mt.json +3 -0
  74. package/assets/i18n/my.json +3 -0
  75. package/assets/i18n/ne.json +3 -0
  76. package/assets/i18n/nl.json +17 -0
  77. package/assets/i18n/no.json +3 -0
  78. package/assets/i18n/ny.json +3 -0
  79. package/assets/i18n/or.json +3 -0
  80. package/assets/i18n/pa.json +3 -0
  81. package/assets/i18n/pl.json +17 -0
  82. package/assets/i18n/ps.json +3 -0
  83. package/assets/i18n/pt.json +17 -0
  84. package/assets/i18n/ro.json +3 -0
  85. package/assets/i18n/ru.json +17 -0
  86. package/assets/i18n/sa.json +3 -0
  87. package/assets/i18n/sat.json +3 -0
  88. package/assets/i18n/sd.json +3 -0
  89. package/assets/i18n/si.json +3 -0
  90. package/assets/i18n/sk.json +3 -0
  91. package/assets/i18n/sl.json +3 -0
  92. package/assets/i18n/sm.json +3 -0
  93. package/assets/i18n/sn.json +3 -0
  94. package/assets/i18n/so.json +3 -0
  95. package/assets/i18n/sq.json +3 -0
  96. package/assets/i18n/sr.json +3 -0
  97. package/assets/i18n/st.json +3 -0
  98. package/assets/i18n/su.json +3 -0
  99. package/assets/i18n/sv.json +3 -0
  100. package/assets/i18n/sw.json +3 -0
  101. package/assets/i18n/ta.json +3 -0
  102. package/assets/i18n/te.json +3 -0
  103. package/assets/i18n/tg.json +3 -0
  104. package/assets/i18n/th.json +3 -0
  105. package/assets/i18n/tl.json +3 -0
  106. package/assets/i18n/tr.json +17 -0
  107. package/assets/i18n/uk.json +3 -0
  108. package/assets/i18n/ur.json +3 -0
  109. package/assets/i18n/uz.json +3 -0
  110. package/assets/i18n/vi.json +3 -0
  111. package/assets/i18n/xh.json +3 -0
  112. package/assets/i18n/yi.json +3 -0
  113. package/assets/i18n/yo.json +3 -0
  114. package/assets/i18n/zh.json +17 -0
  115. package/assets/i18n/zu.json +3 -0
  116. package/assets/index.json +1 -1
  117. package/fesm2022/{magmonium-one-attribute-value-DMI0yJpL.mjs → magmonium-one-attribute-value-DCTXt4Sr.mjs} +3 -3
  118. package/fesm2022/{magmonium-one-attribute-value-DMI0yJpL.mjs.map → magmonium-one-attribute-value-DCTXt4Sr.mjs.map} +1 -1
  119. package/fesm2022/{magmonium-one-base-checkbox-C9dvZ2IH.mjs → magmonium-one-base-checkbox-BNQAkyYU.mjs} +2 -2
  120. package/fesm2022/{magmonium-one-base-checkbox-C9dvZ2IH.mjs.map → magmonium-one-base-checkbox-BNQAkyYU.mjs.map} +1 -1
  121. package/fesm2022/{magmonium-one-base-dropdown-U-cWl3p9.mjs → magmonium-one-base-dropdown-DU4B4w7c.mjs} +10 -10
  122. package/fesm2022/{magmonium-one-base-dropdown-U-cWl3p9.mjs.map → magmonium-one-base-dropdown-DU4B4w7c.mjs.map} +1 -1
  123. package/fesm2022/{magmonium-one-base-input-CLBOTOUs.mjs → magmonium-one-base-input-BTxhUtYO.mjs} +2 -2
  124. package/fesm2022/{magmonium-one-base-input-CLBOTOUs.mjs.map → magmonium-one-base-input-BTxhUtYO.mjs.map} +1 -1
  125. package/fesm2022/{magmonium-one-base-text-Zb0oLNRX.mjs → magmonium-one-base-text-BCSqKmVs.mjs} +28 -4
  126. package/fesm2022/magmonium-one-base-text-BCSqKmVs.mjs.map +1 -0
  127. package/fesm2022/{magmonium-one-button-Bwzaxxn3.mjs → magmonium-one-button-BWB3ZKIj.mjs} +7 -7
  128. package/fesm2022/{magmonium-one-button-Bwzaxxn3.mjs.map → magmonium-one-button-BWB3ZKIj.mjs.map} +1 -1
  129. package/fesm2022/{magmonium-one-checkbox-CPQ9m291.mjs → magmonium-one-checkbox-D5-5WhJ-.mjs} +5 -5
  130. package/fesm2022/{magmonium-one-checkbox-CPQ9m291.mjs.map → magmonium-one-checkbox-D5-5WhJ-.mjs.map} +1 -1
  131. package/fesm2022/{magmonium-one-color-utl-CAbZLKB5.mjs → magmonium-one-color-utl-D86GGpz5.mjs} +2 -2
  132. package/fesm2022/{magmonium-one-color-utl-CAbZLKB5.mjs.map → magmonium-one-color-utl-D86GGpz5.mjs.map} +1 -1
  133. package/fesm2022/{magmonium-one-directives-BVKX77zM.mjs → magmonium-one-directives-DePukAj8.mjs} +4 -4
  134. package/fesm2022/{magmonium-one-directives-BVKX77zM.mjs.map → magmonium-one-directives-DePukAj8.mjs.map} +1 -1
  135. package/fesm2022/{magmonium-one-group-D4yYrVP3.mjs → magmonium-one-group-m41SX_fL.mjs} +7 -7
  136. package/fesm2022/{magmonium-one-group-D4yYrVP3.mjs.map → magmonium-one-group-m41SX_fL.mjs.map} +1 -1
  137. package/fesm2022/{magmonium-one-header-DmN8M1a3.mjs → magmonium-one-header-D8CB9CBJ.mjs} +4 -4
  138. package/fesm2022/{magmonium-one-header-DmN8M1a3.mjs.map → magmonium-one-header-D8CB9CBJ.mjs.map} +1 -1
  139. package/fesm2022/{magmonium-one-icon-Ep14YeRY.mjs → magmonium-one-icon-BTPHGpEN.mjs} +4 -4
  140. package/fesm2022/{magmonium-one-icon-Ep14YeRY.mjs.map → magmonium-one-icon-BTPHGpEN.mjs.map} +1 -1
  141. package/fesm2022/{magmonium-one-image-editor-BX4eNd4u.mjs → magmonium-one-image-editor-Dn0ACfH0.mjs} +4 -4
  142. package/fesm2022/{magmonium-one-image-editor-BX4eNd4u.mjs.map → magmonium-one-image-editor-Dn0ACfH0.mjs.map} +1 -1
  143. package/fesm2022/{magmonium-one-label-D2gjTbKX.mjs → magmonium-one-label-DjvJthAB.mjs} +2 -2
  144. package/fesm2022/{magmonium-one-label-D2gjTbKX.mjs.map → magmonium-one-label-DjvJthAB.mjs.map} +1 -1
  145. package/fesm2022/{magmonium-one-m-ref-Bq0gQbKE.mjs → magmonium-one-m-ref-C8c4Vf1G.mjs} +2 -2
  146. package/fesm2022/magmonium-one-m-ref-C8c4Vf1G.mjs.map +1 -0
  147. package/fesm2022/{magmonium-one-menu-BM9f2knw.mjs → magmonium-one-menu-EIfPlZ4E.mjs} +6 -6
  148. package/fesm2022/magmonium-one-menu-EIfPlZ4E.mjs.map +1 -0
  149. package/fesm2022/{magmonium-one-multi-range-a3ZVTy7i.mjs → magmonium-one-multi-range-o57TiVJU.mjs} +3 -3
  150. package/fesm2022/{magmonium-one-multi-range-a3ZVTy7i.mjs.map → magmonium-one-multi-range-o57TiVJU.mjs.map} +1 -1
  151. package/fesm2022/{magmonium-one-options-asset-CDEXIif6.mjs → magmonium-one-options-asset-EVsv0DL7.mjs} +2 -2
  152. package/fesm2022/magmonium-one-options-asset-EVsv0DL7.mjs.map +1 -0
  153. package/fesm2022/{magmonium-one-otp-DO4oTeSK.mjs → magmonium-one-otp-CE4L1RcG.mjs} +5 -5
  154. package/fesm2022/{magmonium-one-otp-DO4oTeSK.mjs.map → magmonium-one-otp-CE4L1RcG.mjs.map} +1 -1
  155. package/fesm2022/{magmonium-one-password-D3oTo41c.mjs → magmonium-one-password-BjqYmT1s.mjs} +6 -6
  156. package/fesm2022/{magmonium-one-password-D3oTo41c.mjs.map → magmonium-one-password-BjqYmT1s.mjs.map} +1 -1
  157. package/fesm2022/{magmonium-one-radio-CkaWESS3.mjs → magmonium-one-radio-C2wOB_Nb.mjs} +3 -3
  158. package/fesm2022/{magmonium-one-radio-CkaWESS3.mjs.map → magmonium-one-radio-C2wOB_Nb.mjs.map} +1 -1
  159. package/fesm2022/{magmonium-one-range-D_WEKrli.mjs → magmonium-one-range-rgDe4O8u.mjs} +4 -4
  160. package/fesm2022/{magmonium-one-range-D_WEKrli.mjs.map → magmonium-one-range-rgDe4O8u.mjs.map} +1 -1
  161. package/fesm2022/{magmonium-one-selector-BowevmOd.mjs → magmonium-one-selector-DeRIUUBA.mjs} +4 -4
  162. package/fesm2022/{magmonium-one-selector-BowevmOd.mjs.map → magmonium-one-selector-DeRIUUBA.mjs.map} +1 -1
  163. package/fesm2022/{magmonium-one-size-converter-BfT0Aw0g.mjs → magmonium-one-size-converter-C5fG_dgw.mjs} +4 -2
  164. package/fesm2022/magmonium-one-size-converter-C5fG_dgw.mjs.map +1 -0
  165. package/fesm2022/{magmonium-one-text-B4xKn-EQ.mjs → magmonium-one-text-BL-1lWST.mjs} +6 -6
  166. package/fesm2022/{magmonium-one-text-B4xKn-EQ.mjs.map → magmonium-one-text-BL-1lWST.mjs.map} +1 -1
  167. package/fesm2022/{magmonium-one-text-output-CfVeqYM7.mjs → magmonium-one-text-output-Ci93Hi9Y.mjs} +4 -4
  168. package/fesm2022/{magmonium-one-text-output-CfVeqYM7.mjs.map → magmonium-one-text-output-Ci93Hi9Y.mjs.map} +1 -1
  169. package/fesm2022/magmonium-one-theme-CT4cWpe7.mjs +1 -0
  170. package/fesm2022/{magmonium-one-toggle-D2XEbN-b.mjs → magmonium-one-toggle-BTK2lzqA.mjs} +3 -3
  171. package/fesm2022/{magmonium-one-toggle-D2XEbN-b.mjs.map → magmonium-one-toggle-BTK2lzqA.mjs.map} +1 -1
  172. package/fesm2022/magmonium-one.mjs +756 -113
  173. package/fesm2022/magmonium-one.mjs.map +1 -1
  174. package/package.json +1 -1
  175. package/types/magmonium-one.d.ts +368 -60
  176. package/assets/i18n/(Note.json +0 -3
  177. package/fesm2022/magmonium-one-base-text-Zb0oLNRX.mjs.map +0 -1
  178. package/fesm2022/magmonium-one-m-ref-Bq0gQbKE.mjs.map +0 -1
  179. package/fesm2022/magmonium-one-menu-BM9f2knw.mjs.map +0 -1
  180. package/fesm2022/magmonium-one-options-asset-CDEXIif6.mjs.map +0 -1
  181. package/fesm2022/magmonium-one-size-converter-BfT0Aw0g.mjs.map +0 -1
  182. package/fesm2022/magmonium-one-theme-Xgsx8bJs.mjs +0 -1
@@ -1,30 +1,30 @@
1
1
  import { t as __exportAll } from "./magmonium-one-rolldown-runtime-DpJrqANO.mjs";
2
- import { $ as WC_BUNDLE, A as isUrlLocalhost, B as IS_DESIGN_MODE, C as setWcLocalPort, D as getTierFromPreviewPath, E as wcTierOf, F as AppAvailability, G as MODAL_STORE_REF, H as LOADING_ACTIONS_REF, I as AppRelationType, J as OPTIONS_SOURCE, K as NAV_STORE_REF, L as COMPONENT_INPUT_REGISTRY, M as APP_CONTEXT_REF, N as APP_LINK, O as isLocalhost, P as ASSET_BASE_URL, Q as USER_STORE_REF, R as FOLDER_PICK_LISTENER, S as recordDefinedWcTier, T as wcLocalBaseOf, U as LOGIN_COMPONENT, V as IS_SIDE_PANEL, W as LOGIN_STORE, X as SEARCH_RESULTS_EVENT, Y as SEARCH_QUERY, Z as TRANSLATION_SOURCE, _ as ACCESS_DOMAINS, a as resolveSpacing, at as Size, b as definedWcBundleOf, c as TranslatePipe, d as browserLocale, et as WC_SEARCH_GROUPS, f as miniMarkToHtml, g as isJson, h as StorageService, i as resolveSize, it as DEFAULT_SIZE, j as isWebComponent, k as isTierPreview, l as TranslateService, m as SharedStoreRegistry, n as isSize, nt as LAYOUT_ASSET_FOLDER, o as toCssLength, p as AssetStore, q as ONE_ASSET_BASE_URL, r as resolveIconSize, rt as Assets, s as toLength, t as coerceSize, tt as FORM_ASSET_FOLDER, u as BrowserLocaleService, v as HttpService, w as setWcTier, x as definedWcTierOf, y as buildWcBaseUrl, z as ICON_SOURCE } from "./magmonium-one-size-converter-BfT0Aw0g.mjs";
3
- import { a as OverlayService, c as DeviceService, i as OverlayRef, n as Direction, o as ScrollService, r as ThemeService, s as DomService, t as SelectorDirective } from "./magmonium-one-selector-BowevmOd.mjs";
2
+ import { $ as WC_BUNDLE, A as isUrlLocalhost, B as IS_DESIGN_MODE, C as setWcLocalPort, D as getTierFromPreviewPath, E as wcTierOf, F as AppAvailability, G as MODAL_STORE_REF, H as LOADING_ACTIONS_REF, I as AppRelationType, J as OPTIONS_SOURCE, K as NAV_STORE_REF, L as COMPONENT_INPUT_REGISTRY, M as APP_CONTEXT_REF, N as APP_LINK, O as isLocalhost, P as ASSET_BASE_URL, Q as USER_STORE_REF, R as FOLDER_PICK_LISTENER, S as recordDefinedWcTier, T as wcLocalBaseOf, U as LOGIN_COMPONENT, V as IS_SIDE_PANEL, W as LOGIN_STORE, X as SEARCH_RESULTS_EVENT, Y as SEARCH_QUERY, Z as TRANSLATION_SOURCE, _ as ACCESS_DOMAINS, a as resolveSpacing, at as Size, b as definedWcBundleOf, c as TranslatePipe, d as browserLocale, et as WC_SEARCH_GROUPS, f as miniMarkToHtml, g as isJson, h as StorageService, i as resolveSize, it as DEFAULT_SIZE, j as isWebComponent, k as isTierPreview, l as TranslateService, m as SharedStoreRegistry, n as isSize, nt as LAYOUT_ASSET_FOLDER, o as toCssLength, p as AssetStore, q as ONE_ASSET_BASE_URL, r as resolveIconSize, rt as Assets, s as toLength, t as coerceSize, tt as FORM_ASSET_FOLDER, u as BrowserLocaleService, v as HttpService, w as setWcTier, x as definedWcTierOf, y as buildWcBaseUrl, z as ICON_SOURCE } from "./magmonium-one-size-converter-C5fG_dgw.mjs";
3
+ import { a as OverlayService, c as DeviceService, i as OverlayRef, n as Direction, o as ScrollService, r as ThemeService, s as DomService, t as SelectorDirective } from "./magmonium-one-selector-DeRIUUBA.mjs";
4
4
  import { t as FileService } from "./magmonium-one-file.service-Bo06pU3_.mjs";
5
- import { a as calculateLuminance, c as hexToRgb, d as derivePropertyName, f as getProperty, h as ThemeDataService, i as deriveOppositeColor, l as hslToRgb, m as ThemeStore, n as resolvePallet, o as rgbToHex, p as setProperty, r as deriveContrastColor, s as rgbToHsl, t as applyColorsToElement, u as parseColor } from "./magmonium-one-color-utl-CAbZLKB5.mjs";
6
- import "./magmonium-one-theme-Xgsx8bJs.mjs";
7
- import { a as sectionTableColumnWidths, c as AssetUrlPipe, d as MoneyPipe, f as TimeAgoPipe, i as sectionTableColumnId, l as CompactNumberPipe, n as SectionTableSortPipe, o as sectionTableFrozenCount, r as nextSectionTableSort, s as sortSectionTableRows, t as LabelComponent, u as PercentagePipe } from "./magmonium-one-label-D2gjTbKX.mjs";
8
- import { a as injectParentSize, i as SIZE_CONTEXT, n as CustomIconClass, o as provideSizeContext, r as IconComponent, s as SHARED_ICONS, t as CustomIconEditComponent } from "./magmonium-one-icon-Ep14YeRY.mjs";
9
- import { i as resolveConfigAsset, n as toAttrNumber, r as ConfigComponent, t as toAttrBool } from "./magmonium-one-attribute-value-DMI0yJpL.mjs";
10
- import { a as isButtonName, c as formatBadgeCount, l as shouldShowBadge, n as SECTION_FORM_CONTEXT, o as ReactiveElementComponent, r as ImgComponent, s as BadgeComponent, t as ButtonComponent } from "./magmonium-one-button-Bwzaxxn3.mjs";
11
- import { t as MRefDirective } from "./magmonium-one-m-ref-Bq0gQbKE.mjs";
12
- import { t as HeaderComponent } from "./magmonium-one-header-DmN8M1a3.mjs";
13
- import { t as TextOutputComponent } from "./magmonium-one-text-output-CfVeqYM7.mjs";
14
- import { t as BaseInputComponent } from "./magmonium-one-base-input-CLBOTOUs.mjs";
15
- import { a as stringToColor, c as ToolTipDirective, d as DragListItemDirective, f as DragListDirective, i as MHeroColorDirective, l as FileUploadDirective, n as PaddingDirective, o as HighlightDirective, p as DraggableDirective, r as SPACING_INWARD, s as PositionDirective, t as MarginDirective, u as AutosizeDirective } from "./magmonium-one-directives-BVKX77zM.mjs";
16
- import { n as DROPDOWN_IMPORTS, r as DROPDOWN_TEMPLATE, t as BaseDropdownComponent } from "./magmonium-one-base-dropdown-U-cWl3p9.mjs";
17
- import { t as BaseTextInputComponent } from "./magmonium-one-base-text-Zb0oLNRX.mjs";
5
+ import { a as calculateLuminance, c as hexToRgb, d as derivePropertyName, f as getProperty, h as ThemeDataService, i as deriveOppositeColor, l as hslToRgb, m as ThemeStore, n as resolvePallet, o as rgbToHex, p as setProperty, r as deriveContrastColor, s as rgbToHsl, t as applyColorsToElement, u as parseColor } from "./magmonium-one-color-utl-D86GGpz5.mjs";
6
+ import "./magmonium-one-theme-CT4cWpe7.mjs";
7
+ import { a as sectionTableColumnWidths, c as AssetUrlPipe, d as MoneyPipe, f as TimeAgoPipe, i as sectionTableColumnId, l as CompactNumberPipe, n as SectionTableSortPipe, o as sectionTableFrozenCount, r as nextSectionTableSort, s as sortSectionTableRows, t as LabelComponent, u as PercentagePipe } from "./magmonium-one-label-DjvJthAB.mjs";
8
+ import { i as getScrollParent, n as activeElementWithin, r as classListSignal, t as BaseTextInputComponent } from "./magmonium-one-base-text-BCSqKmVs.mjs";
9
+ import { a as injectParentSize, i as SIZE_CONTEXT, n as CustomIconClass, o as provideSizeContext, r as IconComponent, s as SHARED_ICONS, t as CustomIconEditComponent } from "./magmonium-one-icon-BTPHGpEN.mjs";
10
+ import { i as resolveConfigAsset, n as toAttrNumber, r as ConfigComponent, t as toAttrBool } from "./magmonium-one-attribute-value-DCTXt4Sr.mjs";
11
+ import { a as isButtonName, c as formatBadgeCount, l as shouldShowBadge, n as SECTION_FORM_CONTEXT, o as ReactiveElementComponent, r as ImgComponent, s as BadgeComponent, t as ButtonComponent } from "./magmonium-one-button-BWB3ZKIj.mjs";
12
+ import { t as MRefDirective } from "./magmonium-one-m-ref-C8c4Vf1G.mjs";
13
+ import { t as HeaderComponent } from "./magmonium-one-header-D8CB9CBJ.mjs";
14
+ import { t as TextOutputComponent } from "./magmonium-one-text-output-Ci93Hi9Y.mjs";
15
+ import { t as BaseInputComponent } from "./magmonium-one-base-input-BTxhUtYO.mjs";
16
+ import { a as stringToColor, c as ToolTipDirective, d as DragListItemDirective, f as DragListDirective, i as MHeroColorDirective, l as FileUploadDirective, n as PaddingDirective, o as HighlightDirective, p as DraggableDirective, r as SPACING_INWARD, s as PositionDirective, t as MarginDirective, u as AutosizeDirective } from "./magmonium-one-directives-DePukAj8.mjs";
17
+ import { n as DROPDOWN_IMPORTS, r as DROPDOWN_TEMPLATE, t as BaseDropdownComponent } from "./magmonium-one-base-dropdown-DU4B4w7c.mjs";
18
18
  import { t as InputType } from "./magmonium-one-input-DqHPorA1.mjs";
19
- import { t as TextInputComponent } from "./magmonium-one-text-B4xKn-EQ.mjs";
20
- import { i as OptionsSourceDirective, n as normalizeAssetOptions, r as presetDefaultOption, t as assetOptions } from "./magmonium-one-options-asset-CDEXIif6.mjs";
21
- import { r as PLACED_CHECKBOX, t as CheckboxInputComponent } from "./magmonium-one-checkbox-CPQ9m291.mjs";
22
- import { i as mergeUniqueWith, n as mergeUnique, r as mergeUniqueBy, t as ButtonGroupComponent } from "./magmonium-one-group-D4yYrVP3.mjs";
23
- import { n as ContextMenuBoxComponent, r as MenuComponent, t as ContextMenuComponent } from "./magmonium-one-menu-BM9f2knw.mjs";
24
- import { t as BaseCheckboxInputComponent } from "./magmonium-one-base-checkbox-C9dvZ2IH.mjs";
25
- import { t as RadioInputComponent } from "./magmonium-one-radio-CkaWESS3.mjs";
26
- import { r as BaseArrayInputComponent, t as MultiRangeInputComponent } from "./magmonium-one-multi-range-a3ZVTy7i.mjs";
27
- import { t as RangeInputComponent } from "./magmonium-one-range-D_WEKrli.mjs";
19
+ import { t as TextInputComponent } from "./magmonium-one-text-BL-1lWST.mjs";
20
+ import { i as OptionsSourceDirective, n as normalizeAssetOptions, r as presetDefaultOption, t as assetOptions } from "./magmonium-one-options-asset-EVsv0DL7.mjs";
21
+ import { r as PLACED_CHECKBOX, t as CheckboxInputComponent } from "./magmonium-one-checkbox-D5-5WhJ-.mjs";
22
+ import { i as mergeUniqueWith, n as mergeUnique, r as mergeUniqueBy, t as ButtonGroupComponent } from "./magmonium-one-group-m41SX_fL.mjs";
23
+ import { n as ContextMenuBoxComponent, r as MenuComponent, t as ContextMenuComponent } from "./magmonium-one-menu-EIfPlZ4E.mjs";
24
+ import { t as BaseCheckboxInputComponent } from "./magmonium-one-base-checkbox-BNQAkyYU.mjs";
25
+ import { t as RadioInputComponent } from "./magmonium-one-radio-C2wOB_Nb.mjs";
26
+ import { r as BaseArrayInputComponent, t as MultiRangeInputComponent } from "./magmonium-one-multi-range-o57TiVJU.mjs";
27
+ import { t as RangeInputComponent } from "./magmonium-one-range-rgDe4O8u.mjs";
28
28
  import { o as isEditableImage, s as outputSize } from "./magmonium-one-image-frame-BTSaUSAi.mjs";
29
29
  import * as i0 from "@angular/core";
30
30
  import { ApplicationRef, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, DOCUMENT, DestroyRef, Directive, ElementRef, EventEmitter, HostAttributeToken, HostBinding, HostListener, Injectable, InjectionToken, Injector, Input, Output, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation, afterEveryRender, afterNextRender, afterRenderEffect, computed, contentChild, contentChildren, createComponent, effect, forwardRef, inject, input, inputBinding, linkedSignal, makeEnvironmentProviders, model, numberAttribute, output, outputBinding, provideAppInitializer, provideBrowserGlobalErrorListeners, provideZonelessChangeDetection, reflectComponentType, runInInjectionContext, signal, twoWayBinding, untracked, viewChild, viewChildren } from "@angular/core";
@@ -114,27 +114,6 @@ const isLoadingComputed = appLoading.isLoading;
114
114
  const hasErrorComputed = appLoading.hasError;
115
115
  const isCancelledComputed = appLoading.isCancelled;
116
116
  const loadingActions = appLoading.actions;
117
- function classListSignal(element) {
118
- const classSignal = signal(Array.from(element.classList), ...ngDevMode ? [{ debugName: "classSignal" }] : /* istanbul ignore next */ []);
119
- new MutationObserver(() => {
120
- classSignal.set(Array.from(element.classList));
121
- }).observe(element, {
122
- attributes: true,
123
- attributeFilter: ["class"]
124
- });
125
- return classSignal;
126
- }
127
- function getScrollParent(node) {
128
- if (!node || node === document) return window;
129
- if (node instanceof ShadowRoot) return getScrollParent(node.host);
130
- if (node instanceof HTMLElement) {
131
- if (node.classList.contains("scroll__inner")) return node;
132
- const style = window.getComputedStyle(node);
133
- const overflow = style.overflowY || style.overflow || "";
134
- if (overflow.includes("scroll") || overflow.includes("auto") && node.scrollHeight > node.clientHeight) return node;
135
- }
136
- return getScrollParent(node.parentNode);
137
- }
138
117
  function injectScrollSticky(threshold = 120, behavior = "none") {
139
118
  const elementRef = inject(ElementRef);
140
119
  const destroyRef = inject(DestroyRef);
@@ -1049,6 +1028,15 @@ function deriveBreadcrumb(params) {
1049
1028
  navMenus: navMenu?.length && ownPanel ? navMenu : buildNavMenus(ownerId, navMap, anchor, dynamicRows, routeParams, instances, hidden, transparent)
1050
1029
  };
1051
1030
  }
1031
+ const withOpenOutlets = (router, address) => {
1032
+ const next = router.parseUrl(address);
1033
+ const kept = Object.entries(router.parseUrl(router.url).root.children).filter(([name]) => name !== PRIMARY_OUTLET && !(name in next.root.children) && router.config.some((route) => route.outlet === name));
1034
+ if (!kept.length) return address;
1035
+ return new UrlTree(new UrlSegmentGroup(next.root.segments, {
1036
+ ...next.root.children,
1037
+ ...Object.fromEntries(kept)
1038
+ }), next.queryParams, next.fragment);
1039
+ };
1052
1040
  const mountFor = (navId, mounts) => mounts.filter((mount) => toLocalNavId(navId, mount.appNavId) !== void 0).sort((a, b) => b.appNavId.length - a.appNavId.length)[0];
1053
1041
  const tailRouteOf = (hostNavId, mounts, reported) => {
1054
1042
  if (!hostNavId) return void 0;
@@ -1076,10 +1064,16 @@ var GetNavService = class GetNavService {
1076
1064
  link: appId
1077
1065
  })), catchError(() => of({})));
1078
1066
  isWanted = (navId, navMap) => {
1067
+ if (isDefaultNav(navId)) return false;
1079
1068
  const existing = navMap[navId];
1080
1069
  if (!existing) return !isPlatformNavId(navId);
1081
1070
  return existing.seeded === true;
1082
1071
  };
1072
+ isRemotePlatformPanel = (navId, ctx) => {
1073
+ const mount = mountIn(navId, ctx);
1074
+ const localId = mount && toLocalNavId(navId, mount.appNavId);
1075
+ return !!localId && isPlatformPanelNavId(localId);
1076
+ };
1083
1077
  getNav = (navId, navMap, ctx = {}) => {
1084
1078
  const wanted = navIdChain(navId).filter((id) => this.isWanted(id, navMap));
1085
1079
  return this.fetchAll(wanted, ctx).pipe(switchMap((delta) => {
@@ -1095,7 +1089,10 @@ var GetNavService = class GetNavService {
1095
1089
  })));
1096
1090
  }));
1097
1091
  };
1098
- fetchAll = (navIds, ctx) => navIds.length ? forkJoin(navIds.map((id) => this.fetchNav(id, ctx))).pipe(map((pairs) => Object.fromEntries(pairs.filter(Boolean)))) : of({});
1092
+ fetchAll = (navIds, ctx) => {
1093
+ const asked = navIds.filter((id) => !this.isRemotePlatformPanel(id, ctx));
1094
+ return asked.length ? forkJoin(asked.map((id) => this.fetchNav(id, ctx))).pipe(map((pairs) => Object.fromEntries(pairs.filter(Boolean)))) : of({});
1095
+ };
1099
1096
  fetchNav = (navId, ctx) => {
1100
1097
  const mount = mountIn(navId, ctx);
1101
1098
  const localId = mount ? toLocalNavId(navId, mount.appNavId) : void 0;
@@ -1256,7 +1253,7 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
1256
1253
  appNavId
1257
1254
  }, ...mounts] : mounts;
1258
1255
  }, ...ngDevMode ? [{ debugName: "allMounts" }] : /* istanbul ignore next */ []);
1259
- const transparentNavIds = computed(() => new Set(allMounts().filter(({ link }) => store.wcConfigMap()[link]?.open).map(({ appNavId }) => appNavId)), ...ngDevMode ? [{ debugName: "transparentNavIds" }] : /* istanbul ignore next */ []);
1256
+ const transparentNavIds = computed(() => new Set(allMounts().filter(({ link, ownMenu }) => !ownMenu && store.wcConfigMap()[link]?.open).map(({ appNavId }) => appNavId)), ...ngDevMode ? [{ debugName: "transparentNavIds" }] : /* istanbul ignore next */ []);
1260
1257
  const menuMounts = computed(() => {
1261
1258
  const outlets = store.outlets();
1262
1259
  const listed = Object.values(store.mounts()).filter((m) => m.createMenu && (m.urlMode === "tail" || m.urlMode === "outlet" && outlets.includes(m.name))).map((m) => ({
@@ -1567,7 +1564,7 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
1567
1564
  });
1568
1565
  const address = addressFor(navId, params);
1569
1566
  if (willOpen && !wasOpen) patchState(store, { panelPushed: true });
1570
- router.navigateByUrl(address, { replaceUrl: !!options?.replaceUrl || wasOpen && willOpen });
1567
+ router.navigateByUrl(withOpenOutlets(router, address), { replaceUrl: !!options?.replaceUrl || wasOpen && willOpen });
1571
1568
  };
1572
1569
  const knownNavId = (navId) => {
1573
1570
  const map = untracked(() => store.navMap());
@@ -1625,7 +1622,7 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
1625
1622
  const parent = [...untracked(() => store.routeChain())].reverse().find((entry) => entry.navId !== current && current.startsWith(`${entry.navId}_`) && entry.path !== path);
1626
1623
  if (!parent) return;
1627
1624
  patchState(store, { menuNavId: void 0 });
1628
- router.navigateByUrl(parent.path, { replaceUrl: !!options?.replaceUrl });
1625
+ router.navigateByUrl(withOpenOutlets(router, parent.path), { replaceUrl: !!options?.replaceUrl });
1629
1626
  };
1630
1627
  const closePanel = () => {
1631
1628
  patchState(store, {
@@ -1639,7 +1636,7 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
1639
1636
  location.back();
1640
1637
  return;
1641
1638
  }
1642
- router.navigateByUrl(untracked(() => store.path()), { replaceUrl: true });
1639
+ router.navigateByUrl(withOpenOutlets(router, untracked(() => store.path())), { replaceUrl: true });
1643
1640
  };
1644
1641
  const standingRoute = (hostRoute) => {
1645
1642
  const tail = tailRouteOf(hostRoute.navId, untracked(() => store.allMounts()), untracked(() => store.mountRoutes()));
@@ -4035,12 +4032,12 @@ var SectionFormItemComponent = class SectionFormItemComponent extends ConfigComp
4035
4032
  try {
4036
4033
  switch (type) {
4037
4034
  case InputType.RADIO: {
4038
- const { RadioInputComponent } = await import("./magmonium-one-radio-CkaWESS3.mjs").then((n) => n.n);
4035
+ const { RadioInputComponent } = await import("./magmonium-one-radio-C2wOB_Nb.mjs").then((n) => n.n);
4039
4036
  this.createDynamicComponent(seq, RadioInputComponent);
4040
4037
  break;
4041
4038
  }
4042
4039
  case InputType.TOGGLE: {
4043
- const { ToggleInputComponent } = await import("./magmonium-one-toggle-D2XEbN-b.mjs");
4040
+ const { ToggleInputComponent } = await import("./magmonium-one-toggle-BTK2lzqA.mjs");
4044
4041
  this.createDynamicComponent(seq, ToggleInputComponent, [], true);
4045
4042
  break;
4046
4043
  }
@@ -4050,12 +4047,12 @@ var SectionFormItemComponent = class SectionFormItemComponent extends ConfigComp
4050
4047
  break;
4051
4048
  }
4052
4049
  case InputType.PASSWORD: {
4053
- const { PasswordInputComponent } = await import("./magmonium-one-password-D3oTo41c.mjs");
4050
+ const { PasswordInputComponent } = await import("./magmonium-one-password-BjqYmT1s.mjs");
4054
4051
  this.createDynamicComponent(seq, PasswordInputComponent);
4055
4052
  break;
4056
4053
  }
4057
4054
  case InputType.OTP: {
4058
- const { OtpInputComponent } = await import("./magmonium-one-otp-DO4oTeSK.mjs");
4055
+ const { OtpInputComponent } = await import("./magmonium-one-otp-CE4L1RcG.mjs");
4059
4056
  this.createDynamicComponent(seq, OtpInputComponent);
4060
4057
  break;
4061
4058
  }
@@ -4065,7 +4062,7 @@ var SectionFormItemComponent = class SectionFormItemComponent extends ConfigComp
4065
4062
  break;
4066
4063
  }
4067
4064
  case InputType.CHECKBOX: {
4068
- const { CheckboxInputComponent } = await import("./magmonium-one-checkbox-CPQ9m291.mjs").then((n) => n.n);
4065
+ const { CheckboxInputComponent } = await import("./magmonium-one-checkbox-D5-5WhJ-.mjs").then((n) => n.n);
4069
4066
  this.createDynamicComponent(seq, CheckboxInputComponent, [], true);
4070
4067
  break;
4071
4068
  }
@@ -4080,12 +4077,12 @@ var SectionFormItemComponent = class SectionFormItemComponent extends ConfigComp
4080
4077
  break;
4081
4078
  }
4082
4079
  case InputType.RANGE: {
4083
- const { RangeInputComponent } = await import("./magmonium-one-range-D_WEKrli.mjs").then((n) => n.n);
4080
+ const { RangeInputComponent } = await import("./magmonium-one-range-rgDe4O8u.mjs").then((n) => n.n);
4084
4081
  this.createDynamicComponent(seq, RangeInputComponent);
4085
4082
  break;
4086
4083
  }
4087
4084
  case InputType.MULTI_RANGE: {
4088
- const { MultiRangeInputComponent } = await import("./magmonium-one-multi-range-a3ZVTy7i.mjs").then((n) => n.n);
4085
+ const { MultiRangeInputComponent } = await import("./magmonium-one-multi-range-o57TiVJU.mjs").then((n) => n.n);
4089
4086
  this.createDynamicComponent(seq, MultiRangeInputComponent);
4090
4087
  break;
4091
4088
  }
@@ -4136,7 +4133,7 @@ var SectionFormItemComponent = class SectionFormItemComponent extends ConfigComp
4136
4133
  break;
4137
4134
  }
4138
4135
  default: {
4139
- const { TextInputComponent } = await import("./magmonium-one-text-B4xKn-EQ.mjs").then((n) => n.n);
4136
+ const { TextInputComponent } = await import("./magmonium-one-text-BL-1lWST.mjs").then((n) => n.n);
4140
4137
  this.createDynamicComponent(seq, TextInputComponent);
4141
4138
  break;
4142
4139
  }
@@ -7604,7 +7601,8 @@ var SectionSearchComponent = class SectionSearchComponent extends BaseTextInputC
7604
7601
  onFocusOut = (_event) => {
7605
7602
  if (!this.isOpen()) return;
7606
7603
  setTimeout(() => {
7607
- if (!this.elementRef.nativeElement.contains(document.activeElement)) this.close();
7604
+ const active = activeElementWithin(this.elementRef.nativeElement);
7605
+ if (!active || !this.elementRef.nativeElement.contains(active)) this.close();
7608
7606
  });
7609
7607
  };
7610
7608
  scheduleEmit = () => {
@@ -7799,7 +7797,7 @@ var SectionSearchComponent = class SectionSearchComponent extends BaseTextInputC
7799
7797
  }
7800
7798
  <!-- The results component, mounted per search rather than written as a tag:
7801
7799
  which component draws results is the caller's answer, so the markup has
7802
- no selector to write (CONTEXT.md SearchResultsScreen). Shown only once
7800
+ no selector to write (GLOSSARY.md SearchResultsScreen). Shown only once
7803
7801
  there is text to search for — a bar nobody has typed into has no result
7804
7802
  to draw — and handed that text through the one input the editor minted
7805
7803
  on it. -->
@@ -7942,7 +7940,7 @@ i0.ɵɵngDeclareClassMetadata({
7942
7940
  }
7943
7941
  <!-- The results component, mounted per search rather than written as a tag:
7944
7942
  which component draws results is the caller's answer, so the markup has
7945
- no selector to write (CONTEXT.md SearchResultsScreen). Shown only once
7943
+ no selector to write (GLOSSARY.md SearchResultsScreen). Shown only once
7946
7944
  there is text to search for — a bar nobody has typed into has no result
7947
7945
  to draw — and handed that text through the one input the editor minted
7948
7946
  on it. -->
@@ -15134,6 +15132,13 @@ var HostBaseLocationStrategy = class HostBaseLocationStrategy extends PathLocati
15134
15132
  const url = super.path(includeHash);
15135
15133
  return pathUnderBase(this.getBaseHref(), url) ?? url;
15136
15134
  }
15135
+ pushState(state, title, url, queryParams) {
15136
+ if (!this.hosted()) super.pushState(state, title, url, queryParams);
15137
+ }
15138
+ replaceState(state, title, url, queryParams) {
15139
+ if (!this.hosted()) super.replaceState(state, title, url, queryParams);
15140
+ }
15141
+ hosted = () => untracked(() => this.assetStore.hosted());
15137
15142
  static ɵfac = i0.ɵɵngDeclareFactory({
15138
15143
  minVersion: "12.0.0",
15139
15144
  version: "22.2.1",
@@ -15180,6 +15185,7 @@ var BaseRootWebComponent = class BaseRootWebComponent extends BaseWebComponent {
15180
15185
  ownAppLink = inject(APP_LINK);
15181
15186
  agreementGate = inject(AgreementGate);
15182
15187
  relationLanguage = signal(void 0, ...ngDevMode ? [{ debugName: "relationLanguage" }] : /* istanbul ignore next */ []);
15188
+ appId;
15183
15189
  constructor() {
15184
15190
  super();
15185
15191
  effect(() => {
@@ -15207,19 +15213,22 @@ var BaseRootWebComponent = class BaseRootWebComponent extends BaseWebComponent {
15207
15213
  }).catch(() => void 0);
15208
15214
  });
15209
15215
  });
15216
+ effect(() => {
15217
+ if (this.appLink() !== void 0 || this.extra() !== void 0) untracked(() => this.assetStore.setHosted());
15218
+ });
15210
15219
  effect(() => {
15211
15220
  const path = this.extra();
15212
15221
  if (path === void 0) return;
15213
15222
  untracked(() => {
15214
15223
  this.wcRouterStore.setExtra(path);
15215
15224
  const normalizedPath = path || "";
15216
- const currentUrl = this.router.url.split("?")[0].replace(/^\//, "");
15217
- if (!this.router.navigated || currentUrl !== normalizedPath) this.router.navigateByUrl(normalizedPath, { skipLocationChange: true });
15225
+ const target = this.router.serializeUrl(this.router.parseUrl(normalizedPath));
15226
+ if (this.router.navigated && this.router.url === target) this.report(this.router.url, false);
15227
+ else this.router.navigateByUrl(normalizedPath, { skipLocationChange: true });
15218
15228
  });
15219
15229
  });
15220
- let appId;
15221
15230
  const bindApp = (id) => {
15222
- appId = id;
15231
+ this.appId = id;
15223
15232
  this.assetStore.setAppLink(id);
15224
15233
  if (this.navWidgetMaps?.length) {
15225
15234
  this.registerCustomElements();
@@ -15244,10 +15253,9 @@ var BaseRootWebComponent = class BaseRootWebComponent extends BaseWebComponent {
15244
15253
  }
15245
15254
  };
15246
15255
  const fromBaseHref = this.appBaseHref?.match(/^\/app\/([^/]+)/)?.[1];
15247
- if (fromBaseHref) bindApp(fromBaseHref);
15248
15256
  effect(() => {
15249
- const id = this.appLink();
15250
- if (id && !appId) untracked(() => bindApp(id));
15257
+ const id = this.appLink() ?? fromBaseHref;
15258
+ if (id && !this.appId) untracked(() => bindApp(id));
15251
15259
  });
15252
15260
  effect(() => {
15253
15261
  const base = this.base();
@@ -15269,19 +15277,7 @@ var BaseRootWebComponent = class BaseRootWebComponent extends BaseWebComponent {
15269
15277
  });
15270
15278
  });
15271
15279
  const destroyRef = inject(DestroyRef);
15272
- const sub = this.router.events.pipe(filter((e) => e instanceof NavigationEnd)).subscribe(({ urlAfterRedirects }) => {
15273
- const root = this.router.routerState.snapshot.root;
15274
- this.host.dispatchEvent(new CustomEvent(WC_ROUTE_CHANGED_EVENT, {
15275
- bubbles: true,
15276
- composed: true,
15277
- detail: {
15278
- appId,
15279
- path: urlAfterRedirects,
15280
- navId: routeNavIdOf(root),
15281
- params: routeParamsOf(root)
15282
- }
15283
- }));
15284
- });
15280
+ const sub = this.router.events.pipe(filter((e) => e instanceof NavigationEnd)).subscribe(({ urlAfterRedirects }) => this.report(urlAfterRedirects, !!this.router.lastSuccessfulNavigation()?.extras.replaceUrl));
15285
15281
  const onNavigate = (event) => {
15286
15282
  const path = event.detail?.path;
15287
15283
  if (path !== void 0) this.router.navigateByUrl(path, { skipLocationChange: true });
@@ -15292,6 +15288,20 @@ var BaseRootWebComponent = class BaseRootWebComponent extends BaseWebComponent {
15292
15288
  this.host.removeEventListener(WC_NAVIGATE_EVENT, onNavigate);
15293
15289
  });
15294
15290
  }
15291
+ report(path, replaceUrl) {
15292
+ const root = this.router.routerState.snapshot.root;
15293
+ this.host.dispatchEvent(new CustomEvent(WC_ROUTE_CHANGED_EVENT, {
15294
+ bubbles: true,
15295
+ composed: true,
15296
+ detail: {
15297
+ appId: this.appId,
15298
+ path,
15299
+ replaceUrl,
15300
+ navId: routeNavIdOf(root),
15301
+ params: routeParamsOf(root)
15302
+ }
15303
+ }));
15304
+ }
15295
15305
  registerCustomElements() {
15296
15306
  for (const component of this.wcComponents ?? []) {
15297
15307
  const selector = reflectComponentType(component)?.selector;
@@ -21564,12 +21574,12 @@ var WrapperInputComponent = class WrapperInputComponent extends ConfigComponent
21564
21574
  const seq = ++this.dynamicSeq;
21565
21575
  switch (this.config()?.type) {
21566
21576
  case InputType.RADIO: {
21567
- const { RadioInputComponent } = await import("./magmonium-one-radio-CkaWESS3.mjs").then((n) => n.n);
21577
+ const { RadioInputComponent } = await import("./magmonium-one-radio-C2wOB_Nb.mjs").then((n) => n.n);
21568
21578
  this.createDynamicComponent(seq, RadioInputComponent);
21569
21579
  break;
21570
21580
  }
21571
21581
  case InputType.TOGGLE: {
21572
- const { ToggleInputComponent } = await import("./magmonium-one-toggle-D2XEbN-b.mjs");
21582
+ const { ToggleInputComponent } = await import("./magmonium-one-toggle-BTK2lzqA.mjs");
21573
21583
  this.createDynamicComponent(seq, ToggleInputComponent, [], true);
21574
21584
  break;
21575
21585
  }
@@ -21579,12 +21589,12 @@ var WrapperInputComponent = class WrapperInputComponent extends ConfigComponent
21579
21589
  break;
21580
21590
  }
21581
21591
  case InputType.PASSWORD: {
21582
- const { PasswordInputComponent } = await import("./magmonium-one-password-D3oTo41c.mjs");
21592
+ const { PasswordInputComponent } = await import("./magmonium-one-password-BjqYmT1s.mjs");
21583
21593
  this.createDynamicComponent(seq, PasswordInputComponent);
21584
21594
  break;
21585
21595
  }
21586
21596
  case InputType.OTP: {
21587
- const { OtpInputComponent } = await import("./magmonium-one-otp-DO4oTeSK.mjs");
21597
+ const { OtpInputComponent } = await import("./magmonium-one-otp-CE4L1RcG.mjs");
21588
21598
  this.createDynamicComponent(seq, OtpInputComponent);
21589
21599
  break;
21590
21600
  }
@@ -21594,7 +21604,7 @@ var WrapperInputComponent = class WrapperInputComponent extends ConfigComponent
21594
21604
  break;
21595
21605
  }
21596
21606
  case InputType.CHECKBOX: {
21597
- const { CheckboxInputComponent } = await import("./magmonium-one-checkbox-CPQ9m291.mjs").then((n) => n.n);
21607
+ const { CheckboxInputComponent } = await import("./magmonium-one-checkbox-D5-5WhJ-.mjs").then((n) => n.n);
21598
21608
  this.createDynamicComponent(seq, CheckboxInputComponent, [], true);
21599
21609
  break;
21600
21610
  }
@@ -21609,12 +21619,12 @@ var WrapperInputComponent = class WrapperInputComponent extends ConfigComponent
21609
21619
  break;
21610
21620
  }
21611
21621
  case InputType.RANGE: {
21612
- const { RangeInputComponent } = await import("./magmonium-one-range-D_WEKrli.mjs").then((n) => n.n);
21622
+ const { RangeInputComponent } = await import("./magmonium-one-range-rgDe4O8u.mjs").then((n) => n.n);
21613
21623
  this.createDynamicComponent(seq, RangeInputComponent);
21614
21624
  break;
21615
21625
  }
21616
21626
  case InputType.MULTI_RANGE: {
21617
- const { MultiRangeInputComponent } = await import("./magmonium-one-multi-range-a3ZVTy7i.mjs").then((n) => n.n);
21627
+ const { MultiRangeInputComponent } = await import("./magmonium-one-multi-range-o57TiVJU.mjs").then((n) => n.n);
21618
21628
  this.createDynamicComponent(seq, MultiRangeInputComponent);
21619
21629
  break;
21620
21630
  }
@@ -21665,7 +21675,7 @@ var WrapperInputComponent = class WrapperInputComponent extends ConfigComponent
21665
21675
  break;
21666
21676
  }
21667
21677
  default: {
21668
- const { TextInputComponent } = await import("./magmonium-one-text-B4xKn-EQ.mjs").then((n) => n.n);
21678
+ const { TextInputComponent } = await import("./magmonium-one-text-BL-1lWST.mjs").then((n) => n.n);
21669
21679
  this.createDynamicComponent(seq, TextInputComponent);
21670
21680
  break;
21671
21681
  }
@@ -23981,7 +23991,7 @@ var FileUploadInputComponent = class FileUploadInputComponent extends BaseInputC
23981
23991
  openEditor = async (file, size) => {
23982
23992
  const modalStore = this.modalStore;
23983
23993
  if (!modalStore) return void 0;
23984
- const { ImageEditorComponent } = await import("./magmonium-one-image-editor-BX4eNd4u.mjs");
23994
+ const { ImageEditorComponent } = await import("./magmonium-one-image-editor-Dn0ACfH0.mjs");
23985
23995
  const ratio = String(this.config()?.ratio ?? "");
23986
23996
  return new Promise((resolve) => {
23987
23997
  const modalRef = new ModalRef();
@@ -28909,10 +28919,12 @@ const matchMount = (segments, pattern) => {
28909
28919
  };
28910
28920
  };
28911
28921
  const splitPath = (path) => {
28912
- const [rawPath, rawQuery = ""] = path.replace(/^\//, "").split("?");
28922
+ const [beforeHash, ...hash] = path.replace(/^\//, "").split("#");
28923
+ const [rawPath, rawQuery = ""] = beforeHash.split("?");
28913
28924
  return {
28914
28925
  segments: rawPath.split("/").filter(Boolean),
28915
- query: Object.fromEntries(new URLSearchParams(rawQuery))
28926
+ query: Object.fromEntries(new URLSearchParams(rawQuery)),
28927
+ fragment: hash.join("#") || null
28916
28928
  };
28917
28929
  };
28918
28930
  const queryKeysOf = (path) => Object.keys(splitPath(path).query);
@@ -28920,7 +28932,21 @@ const samePath = (a, b) => {
28920
28932
  const x = splitPath(a);
28921
28933
  const y = splitPath(b);
28922
28934
  const keys = Object.keys(x.query);
28923
- return x.segments.join("/") === y.segments.join("/") && keys.length === Object.keys(y.query).length && keys.every((k) => x.query[k] === y.query[k]);
28935
+ return x.segments.join("/") === y.segments.join("/") && x.fragment === y.fragment && keys.length === Object.keys(y.query).length && keys.every((k) => x.query[k] === y.query[k]);
28936
+ };
28937
+ const OUTLET_HASH_PARAM = "hash";
28938
+ const outletSegmentsOf = (path) => {
28939
+ const { segments, query, fragment } = splitPath(path);
28940
+ const params = {
28941
+ ...Object.fromEntries(Object.entries(query).map(([k, v]) => [k, String(v)])),
28942
+ ...fragment ? { [OUTLET_HASH_PARAM]: fragment } : {}
28943
+ };
28944
+ return segments.map((s, i) => new UrlSegment(s, i === segments.length - 1 ? params : {}));
28945
+ };
28946
+ const outletPathOf = (segments) => {
28947
+ const { [OUTLET_HASH_PARAM]: fragment, ...query } = segments[segments.length - 1]?.parameters ?? {};
28948
+ const search = new URLSearchParams(query).toString();
28949
+ return `${segments.map((s) => s.path).join("/")}${search ? `?${search}` : ""}${fragment ? `#${fragment}` : ""}`;
28924
28950
  };
28925
28951
  const hostQueryOf = (tree) => {
28926
28952
  const params = new URLSearchParams();
@@ -28943,29 +28969,31 @@ var RemoteUrl = class {
28943
28969
  segmentsNow = (tree) => this.mode === "outlet" ? (tree.root.children[this.name]?.segments ?? []).map((s) => s.path) : this.tail.split("/").filter(Boolean);
28944
28970
  holds = (path, dropped = []) => {
28945
28971
  const tree = this.tree();
28946
- const { segments, query } = splitPath(path);
28947
- return this.segmentsNow(tree).join("/") === segments.join("/") && Object.entries(query).every(([k, v]) => tree.queryParams[k] === v) && dropped.every((k) => !(k in tree.queryParams));
28972
+ if (this.mode === "outlet") return samePath(outletPathOf(tree.root.children[this.name]?.segments ?? []), path);
28973
+ const { segments, query, fragment } = splitPath(path);
28974
+ return this.segmentsNow(tree).join("/") === segments.join("/") && (tree.fragment ?? null) === fragment && Object.entries(query).every(([k, v]) => tree.queryParams[k] === v) && dropped.every((k) => !(k in tree.queryParams));
28948
28975
  };
28949
28976
  write = (path, replaceUrl, dropped = []) => {
28950
28977
  if (this.mode === "none") return;
28951
28978
  const tree = this.tree();
28952
- const { segments, query } = splitPath(path);
28953
- const next = segments.map((s) => new UrlSegment(s, {}));
28954
28979
  const children = { ...tree.root.children };
28955
28980
  if (this.mode === "outlet") {
28981
+ const next = outletSegmentsOf(path);
28956
28982
  if (next.length) children[this.name] = new UrlSegmentGroup(next, {});
28957
28983
  else delete children[this.name];
28958
- } else {
28959
- const primary = children["primary"];
28960
- const own = this.segmentsNow(tree).length;
28961
- const base = (primary?.segments ?? []).slice(0, (primary?.segments.length ?? 0) - own);
28962
- children["primary"] = new UrlSegmentGroup([...base, ...next], primary?.children ?? {});
28984
+ this.router.navigateByUrl(new UrlTree(new UrlSegmentGroup([], children), tree.queryParams, tree.fragment), { replaceUrl });
28985
+ return;
28963
28986
  }
28987
+ const { segments, query, fragment } = splitPath(path);
28988
+ const primary = children["primary"];
28989
+ const own = this.segmentsNow(tree).length;
28990
+ const base = (primary?.segments ?? []).slice(0, (primary?.segments.length ?? 0) - own);
28991
+ children["primary"] = new UrlSegmentGroup([...base, ...segments.map((s) => new UrlSegment(s, {}))], primary?.children ?? {});
28964
28992
  const kept = Object.fromEntries(Object.entries(tree.queryParams).filter(([k]) => !dropped.includes(k)));
28965
28993
  const url = new UrlTree(new UrlSegmentGroup([], children), {
28966
28994
  ...kept,
28967
28995
  ...query
28968
- }, tree.fragment);
28996
+ }, fragment);
28969
28997
  this.router.navigateByUrl(url, { replaceUrl });
28970
28998
  };
28971
28999
  clear = (dropped = []) => {
@@ -28996,6 +29024,7 @@ var RemoteComponent = class RemoteComponent {
28996
29024
  tail = input("", ...ngDevMode ? [{ debugName: "tail" }] : /* istanbul ignore next */ []);
28997
29025
  out = input(...ngDevMode ? [void 0, { debugName: "out" }] : /* istanbul ignore next */ []);
28998
29026
  createMenu = input(false, ...ngDevMode ? [{ debugName: "createMenu" }] : /* istanbul ignore next */ []);
29027
+ ownMenu = input(false, ...ngDevMode ? [{ debugName: "ownMenu" }] : /* istanbul ignore next */ []);
28999
29028
  appNavId = input(...ngDevMode ? [void 0, { debugName: "appNavId" }] : /* istanbul ignore next */ []);
29000
29029
  mount = input(...ngDevMode ? [void 0, { debugName: "mount" }] : /* istanbul ignore next */ []);
29001
29030
  pattern = computed(() => {
@@ -29087,6 +29116,7 @@ var RemoteComponent = class RemoteComponent {
29087
29116
  const urlMode = this.urlMode();
29088
29117
  const out = this.out();
29089
29118
  const createMenu = this.createMenu();
29119
+ const ownMenu = this.ownMenu();
29090
29120
  const appNavId = this.appNavId();
29091
29121
  const selfBeta = this.selfBeta();
29092
29122
  untracked(() => {
@@ -29099,6 +29129,7 @@ var RemoteComponent = class RemoteComponent {
29099
29129
  urlMode,
29100
29130
  out,
29101
29131
  createMenu,
29132
+ ownMenu,
29102
29133
  navigate: this.move
29103
29134
  });
29104
29135
  this.registeredName = name;
@@ -29125,7 +29156,9 @@ var RemoteComponent = class RemoteComponent {
29125
29156
  window.open(`${base}?tier=beta`, "_blank", "noopener");
29126
29157
  };
29127
29158
  currentQuery() {
29128
- return this.router ? hostQueryOf(this.router.parseUrl(this.router.url)) : "";
29159
+ if (!this.router) return "";
29160
+ const tree = this.router.parseUrl(this.router.url);
29161
+ return `${hostQueryOf(tree)}${tree.fragment ? `#${tree.fragment}` : ""}`;
29129
29162
  }
29130
29163
  primarySegments() {
29131
29164
  return this.router ? (this.router.parseUrl(this.router.url).root.children["primary"]?.segments ?? []).map((s) => s.path) : [];
@@ -29141,7 +29174,7 @@ var RemoteComponent = class RemoteComponent {
29141
29174
  isLastReport = (path) => {
29142
29175
  const reported = this.lastReported;
29143
29176
  if (reported === void 0) return false;
29144
- return untracked(() => this.carriesQuery()) || path.includes("?") ? samePath(path, reported) : path === reported.split("?")[0];
29177
+ return untracked(() => this.carriesQuery()) || /[?#]/.test(path) ? samePath(path, reported) : path === reported.split(/[?#]/)[0];
29145
29178
  };
29146
29179
  sendPath = (path) => {
29147
29180
  const el = this.loadedElement;
@@ -29174,7 +29207,7 @@ var RemoteComponent = class RemoteComponent {
29174
29207
  const out = untracked(() => this.out());
29175
29208
  const target = out ? out(path, link) : path;
29176
29209
  const url = this.url();
29177
- const replace = !this.reported || this.replaceNext;
29210
+ const replace = !this.reported || this.replaceNext || !!detail.replaceUrl;
29178
29211
  this.reported = true;
29179
29212
  this.replaceNext = false;
29180
29213
  const keys = queryKeysOf(target);
@@ -29343,6 +29376,13 @@ var RemoteComponent = class RemoteComponent {
29343
29376
  isRequired: false,
29344
29377
  transformFunction: null
29345
29378
  },
29379
+ ownMenu: {
29380
+ classPropertyName: "ownMenu",
29381
+ publicName: "ownMenu",
29382
+ isSignal: true,
29383
+ isRequired: false,
29384
+ transformFunction: null
29385
+ },
29346
29386
  appNavId: {
29347
29387
  classPropertyName: "appNavId",
29348
29388
  publicName: "appNavId",
@@ -29599,6 +29639,14 @@ i0.ɵɵngDeclareClassMetadata({
29599
29639
  required: false
29600
29640
  }]
29601
29641
  }],
29642
+ ownMenu: [{
29643
+ type: i0.Input,
29644
+ args: [{
29645
+ isSignal: true,
29646
+ alias: "ownMenu",
29647
+ required: false
29648
+ }]
29649
+ }],
29602
29650
  appNavId: [{
29603
29651
  type: i0.Input,
29604
29652
  args: [{
@@ -37774,7 +37822,7 @@ var AppCardComponent = class AppCardComponent {
37774
37822
  }
37775
37823
 
37776
37824
  <div class="app-card__icon-wrap">
37777
- <m-img [src]="app().iconUrl" [remote]="app().remote" [alt]="app().name" onerror="this.src='assets/mag_assets/icons/default-app.svg'; this.onerror=null;" />
37825
+ <m-img [src]="app().iconUrl" [remote]="app().remote" [alt]="app().name" onerror="this.src='assets/icons/default-app.svg'; this.onerror=null;" />
37778
37826
  </div>
37779
37827
 
37780
37828
  <div class="app-card__body">
@@ -37918,7 +37966,7 @@ i0.ɵɵngDeclareClassMetadata({
37918
37966
  }
37919
37967
 
37920
37968
  <div class="app-card__icon-wrap">
37921
- <m-img [src]="app().iconUrl" [remote]="app().remote" [alt]="app().name" onerror="this.src='assets/mag_assets/icons/default-app.svg'; this.onerror=null;" />
37969
+ <m-img [src]="app().iconUrl" [remote]="app().remote" [alt]="app().name" onerror="this.src='assets/icons/default-app.svg'; this.onerror=null;" />
37922
37970
  </div>
37923
37971
 
37924
37972
  <div class="app-card__body">
@@ -41404,7 +41452,7 @@ var NavComponent = class NavComponent {
41404
41452
  const config = this.isHost() ? void 0 : this.currentWcConfig();
41405
41453
  if (config?.logo) return {
41406
41454
  src: config.logo,
41407
- alt: config.app,
41455
+ alt: config.name || config.app,
41408
41456
  app: config.app
41409
41457
  };
41410
41458
  const root = this.#navStore.navMap()[ROOT_NAV];
@@ -41440,7 +41488,7 @@ var NavComponent = class NavComponent {
41440
41488
  pending: !config,
41441
41489
  src: config?.logo ?? hostLogo,
41442
41490
  remote: config?.logo ? config.link || link : void 0,
41443
- alt: config?.app ?? link,
41491
+ alt: config?.name || config?.app || link,
41444
41492
  active: isActive(appNavId)
41445
41493
  }));
41446
41494
  }, ...ngDevMode ? [{ debugName: "appRail" }] : /* istanbul ignore next */ []);
@@ -45423,7 +45471,7 @@ function provideMagWcConfig(options) {
45423
45471
  {
45424
45472
  provide: APP_BASE_HREF,
45425
45473
  useFactory: () => {
45426
- const match = window.location.pathname.match(/^\/app\/[^/]+/);
45474
+ const match = window.location.pathname.match(/^\/app\/[^/(]+/);
45427
45475
  return match ? match[0] : "/";
45428
45476
  }
45429
45477
  },
@@ -45434,7 +45482,7 @@ function provideMagWcConfig(options) {
45434
45482
  provideZonelessChangeDetection(),
45435
45483
  {
45436
45484
  provide: APP_LINK,
45437
- useFactory: () => signal(window.location.pathname.match(/^\/app\/([^/]+)/)?.[1])
45485
+ useFactory: () => signal(window.location.pathname.match(/^\/app\/([^/(]+)/)?.[1])
45438
45486
  },
45439
45487
  provideRouter(options.routes, withComponentInputBinding(), withRouterConfig({ paramsInheritanceStrategy: "always" })),
45440
45488
  provideMurlUrlSerializer(),
@@ -49298,6 +49346,601 @@ i0.ɵɵngDeclareClassMetadata({
49298
49346
  }]
49299
49347
  }
49300
49348
  });
49301
- export { ACCESS_DOMAINS, APP_CONTEXT_REF, APP_LINK, ASSET_BASE_URL, AccordionBodyDirective, AccordionComponent, AccordionGroupComponent, ActionComponent, AnimatedGraphsComponent, AppAvailability, AppCardComponent, AppRelationType, AppTileComponent, AssetStore, AssetUrlPipe, Assets, AuthActivityPageComponent, AuthApiService, AuthStore, AutosizeDirective, BadgeComponent, BandingComponent, BaseArrayInputComponent, BaseRootWebComponent, BaseWebComponent, BrowserLocaleService, ButtonComponent, ButtonGroupComponent, CALLING_APP_HEADER, COMPONENT_INPUT_REGISTRY, CardComponent, CardWrapperComponent, CarouselComponent, ChartComponent, ChatBubbleComponent, CheckboxGroupComponent, CheckboxInputComponent, ClearableInputComponent, ClipboardService, ColComponent, ColorPickerInputComponent, CommentItemComponent, CommentsApiService, CommentsComponent, CommentsStore, CompactNumberPipe, ComponentInputComponent, ComponentStepperComponent, ConfigComponent, ConfirmComponent, ContextMenuComponent, CustomIconClass, CustomIconEditComponent, DEFAULT_DENIAL, DEFAULT_DOC_ALIGN, DEFAULT_DOC_DENSITY, DEFAULT_DOC_VARIANT, DEFAULT_FILTER_RANGE_MODE, DEFAULT_FILTER_VARIANT, DEFAULT_NAV_PARAM, DEFAULT_NAV_SEGMENT, DEFAULT_SIZE, DOCK_MIN_PAGE_REMAINDER, DOCS_FOLDER, DOC_ACTION_ICONS, DOC_ALIGNS, DOC_DENSITIES, DOC_EDIT_ACTIONS, DOC_TOOLBAR_GROUPS, DOC_VARIANTS, DashboardCardComponent, DateInputComponent, DatePickerComponent, DeviceService, DocComponent, DocEditorComponent, DomService, Domain, DotGridComponent, DragListDirective, DragListItemDirective, DraggableDirective, DropdownInputComponent, FILTER_GROUP_CONTEXT, FILTER_RANGE_MODES, FILTER_VARIANTS, FLEX_VARIANTS, FOLDER_PICK_LISTENER, FORM_ASSET_FOLDER, FileService, FileUploadDirective, FileUploadInputComponent, FlexComponent, FlexItemComponent, FormGroupComponent, FrameComponent, FreezeService, GRID_BREAKPOINTS, GetNavService, HeaderComponent, HighlightDirective, HttpService, ICON_SOURCE, IS_DESIGN_MODE, IS_SIDE_PANEL, IconComponent, ImgComponent, InputType, InstrumentScoreComponent, InterceptorObservables, JumbotronComponent, KeyValueComponent, LAYOUT_ASSET_FOLDER, LOADING_ACTIONS_REF, LOGIN_COMPONENT, LOGIN_STORE, LanguageComponent, ListComponent, LogoComponent, MAG_SOCKET_EVENT, MHeroColorDirective, MHeroComponent, MODAL_REF, MODAL_STORE_REF, MOUNT_STATIC_SEGMENT, MOUNT_TOKEN, MRefDirective, MStepComponent, MURL_PARAM, MURL_SEP, ManifestEnrichmentService, MarginDirective, MenuComponent, ModalDirective, ModalRef, ModalStore, MoneyPipe, MultiRangeInputComponent, MultiselectInputComponent, MurlUrlSerializer, NAV_DEFAULT_MURL, NAV_ID_SEP, NAV_MAIN_BUTTONS, NAV_SEGMENT_RE, NAV_STORE_REF, NAV_WC_COMPONENTS, NAV_WIDGET_MAP, NavComponent, NavDetailsComponent, NavHeaderComponent, NavMenuComponent, NavStore, NavTrailComponent, NothingComponent, NotificationElementComponent, NotificationGroupComponent, NotificationPopupComponent, NotificationService, NotificationStore, NotificationType, NotificationWidgetComponent, ONE_ASSET_BASE_URL, OPTIONS_SOURCE, OVERLAY_WIDGETS, OneApp, OptionsSourceDirective, OverlayBodyComponent, OverlayRef, OverlayService, PLATFORM_BUTTON_NAV_IDS, PLATFORM_EXTENSIBLE_NAV_IDS, PLATFORM_NAV_MAP, PLATFORM_ROOT_CHILDREN, PLUGIN_FALLBACK_LANG, PLUGIN_OUTPUT_EVENT, PLUGIN_SCREENS, PaddingDirective, PaginationComponent, PanelComponent, PercentagePipe, PlaygroundComponent, PluginComponent, PluginInputComponent, PluginOutputComponent, PositionDirective, PwaInstallComponent, RECENT_SEARCH_LIMIT, REMOTE_PAGE_RELOAD, ROOT_NAV, RadioGroupComponent, RadioInputComponent, RangeInputComponent, RatingInputComponent, ReactiveElementComponent, RemoteComponent, RemoteLoaderService, ResizeElementComponent, RouteContainer, RowComponent, SEARCH_QUERY, SEARCH_RESULTS_EVENT, SECTION_ACCORDION_GROUP, SECTION_FORM_CONTEXT, SECTION_TABLE_VARIANTS, SHARED_ICONS, SIZE_CONTEXT, SPACING_INWARD, ScoreComponent, ScrollComponent, ScrollService, SearchPanelComponent, SearchStore, SearchUserPanelComponent, SectionAccordionDirective, SectionAccordionGroupDirective, SectionBackComponent, SectionBadgesComponent, SectionButtonGroupComponent, SectionCardComponent, SectionCarouselComponent, SectionComponent, SectionFilterComponent, SectionFilterGroupComponent, SectionFilterMenuComponent, SectionFilterPanelComponent, SectionFilterRangePanelComponent, SectionFooterComponent, SectionFormComponent, SectionFormItemComponent, SectionHeaderComponent, SectionHeroComponent, SectionPaginationComponent, SectionSearchComponent, SectionStepperComponent, SectionTableCellComponent, SectionTableComponent, SectionTableRowComponent, SectionTableSortPipe, SectionTabsComponent, SectionToggleComponent, SectionToggleItemDirective, SelectableCardInputComponent, SelectorDirective, SettingsSearchBarComponent, SettingsSearchService, ShapeComponent, SharedStoreRegistry, SidePanelDirective, Size, SocketStore, SortComponent, StatComponent, StepComponent, StepperComponent, StepsComponent, StorageService, StrokeLinecap, StrokeLinejoin, SummaryComponent, SvgGeneratorComponent, SvgGeneratorService, SvgService, TOTAL_COLUMNS, TRANSLATION_SOURCE, TableComponent, TechnicalMeterComponent, TextInputComponent, TextOutputComponent, TextareaInputComponent, ThemeComponent, ThemeDataService, ThemeService, ThemeStore, TimeAgoPipe, TimelineComponent, ToggleButtonComponent, ToggleInputComponent, ToggleRadioInputComponent, ToolTipDirective, TooltipComponent, TranslatePipe, TranslateService, TreeGridComponent, URL_SEP, USER_STORE_REF, USER_TAB_MAP, UniverseComponent, UserApiService, UserAvatarComponent, UserComponent, UserNavComponent, UserSettingsComponent, UserStore, WC_BUNDLE, WC_NAVIGATE_EVENT, WC_ROUTE_CHANGED_EVENT, WC_SEARCH_GROUPS, WIN_USER_TAB_HOOK, WIN_USER_TAB_KEY, WatermarkComponent, WcRouterStore, WrapperInputComponent, allowedCodes, anchorNavId, applyColorsToElement, applyDocEdit, assetOptions, baseUnderHost, bootstrapMagApp, bootstrapPwaInstall, browserLocale, buildWcBaseUrl, calculateLuminance, calculateRanks, cellText, checkDoc, checkFilterCondition, childNavId, claimDenial, classListSignal, coerceSize, cornerEdge, cornerSide, createLoadingState, createMap, createPlatformNavMap, createPluginElement, definePluginScreens, definedWcBundleOf, definedWcTierOf, deriveAvatarGradient, deriveContrastColor, deriveOppositeColor, derivePropertyName, docActionKey, docAssetCandidates, docProblemKey, docRemotePath, emailValidation, evaluate, evaluateBool, exposeScreens, exposedScreensOf, fieldBoolean, fieldNumber, fieldString, filterHoldsList, filterHoldsOneBound, filterHoldsOptions, filterHoldsRange, filterList, filterNumber, filterNumberList, filterOne, filterPanelOf, filterPanelWidth, filterRange, filterTreeGridRows, filterValueList, filterValues, flattenTreeGridRows, formatBadgeCount, fullName, generateClipPath, generateTransform, getClassList, getProperty, getScrollParent, getTierFromPreviewPath, getTreeGridRow, getUniqueId, getValue, hasErrorComputed, hexToRgb, hslToRgb, initMagmoniumApp, initialNotificationState, initialState, initials, injectAuthenticate, injectDefaultDenial, injectInstallApp, injectParentSize, injectScrollSticky, isBootRedirect, isButtonName, isCancelledComputed, isExtensiblePlatformNavId, isJson, isLoadingComputed, isLocalhost, isNavInstanceConfig, isNavMenuConfig, isNavRowsConfig, isNavVisibilityConfig, isPlatformNavId, isPlatformPanelNavId, isSize, isTierPreview, isUrlLocalhost, isValidNavId, isValidNavSegment, isWebComponent, linkToId, linkToNav, loadingActions, mInterceptor, manualValidation, matchFieldValidation, matchMount, maxLengthValidation, maxValidation, mergePlatformNav, mergeUnique, mergeUniqueBy, mergeUniqueWith, minAgeValidation, minLengthValidation, minValidation, miniMarkToHtml, mountFor, mountPatternProblem, mountPatternText, mountSegmentOf, mountTokenOf, navIdChain, navIdFor, navIdSegment, navIdToRoutePath, navIdToSegments, navParamOf, navTailMatcher, navToId, navVisibilityGuard, nextSectionTableSort, normalizeAssetOptions, offsetOfLine, parentNavId, parseAddress, parseColor, parseMountPattern, parsePatternNames, patternValidation, patternsValidation, permissionRefusal, pickSupportedLanguage, platformNavWidgets, pluginTag, presetDefaultOption, privateGuard, processImageToSvg, provideAppContext, provideMagAppConfig, provideMagWcConfig, provideMagWcRoutes, provideModalComponents, provideMurlUrlSerializer, provideNavWidgets, provideOverlayWidgets, providePlatformNavWidgets, providePluginRuntime, provideSearch, provideSizeContext, provideUserTabs, publicGuard, readFieldPatterns, recordDefinedWcTier, remoteOutletRoute, renderAddress, renderDocument, requiredValidation, resolveConfigAsset, resolveIconSize, resolvePallet, resolvePatternRules, resolveSize, resolveSpacing, rgbToHex, rgbToHsl, rowHasChildren, samePatterns, sectionTableColumnId, sectionTableColumnWidths, sectionTableFrozenCount, segmentsToNavId, setProperty, setTreeGridChildren, setWcLocalPort, setWcTier, settingsWidgets, shouldShowBadge, sortSectionTableRows, splitNavId, splitOnMatch, stringToColor, tailRouteOf, toAttrBool, toAttrNumber, toCssLength, toHostNavId, toLength, toLocalNavId, toggleTreeGridRow, unfetchedPlatformNav, ungroupedDocActions, urlValidation, wcLocalBaseOf, wcTierOf };
49349
+ var HttpSharingClient = class {
49350
+ http = inject(HttpService);
49351
+ groups = () => this.http.get("sharing", ["group"]).pipe(map((reply) => reply.groups ?? []));
49352
+ searchUsers = (q) => this.http.get("user", ["search"], "v2", {
49353
+ q,
49354
+ count: 8
49355
+ }).pipe(map((reply) => reply.users ?? []));
49356
+ users = (ids) => ids.length ? forkJoin(ids.map((id) => this.http.put("user", ["uid", id]).pipe(map((reply) => reply.user ?? { id }), catchError(() => of({ id }))))) : of([]);
49357
+ audience = (source) => this.http.get("sharing", ["audience", source]);
49358
+ saveAudience = (source, audience) => this.http.put("sharing", ["audience", source], audience);
49359
+ };
49360
+ const SHARING_CLIENT = new InjectionToken("SHARING_CLIENT", {
49361
+ providedIn: "root",
49362
+ factory: () => new HttpSharingClient()
49363
+ });
49364
+ const DEFAULT_AUDIENCE = {
49365
+ level: "private",
49366
+ uids: [],
49367
+ groupIds: []
49368
+ };
49369
+ const AUDIENCE_ICONS = {
49370
+ public: "eye",
49371
+ private: "lock",
49372
+ with: "users",
49373
+ without: "eye_close"
49374
+ };
49375
+ const picksMembers = (level) => level === "with" || level === "without";
49376
+ const withLevel = (audience, level) => picksMembers(level) ? {
49377
+ ...audience,
49378
+ level
49379
+ } : {
49380
+ level,
49381
+ uids: [],
49382
+ groupIds: []
49383
+ };
49384
+ const toggle = (list, id) => list.includes(id) ? list.filter((x) => x !== id) : [...list, id];
49385
+ const toggleUid = (audience, uid) => ({
49386
+ ...audience,
49387
+ uids: toggle(audience.uids, uid)
49388
+ });
49389
+ const toggleGroup = (audience, groupId) => ({
49390
+ ...audience,
49391
+ groupIds: toggle(audience.groupIds, groupId)
49392
+ });
49393
+ const pickCount = (audience) => picksMembers(audience.level) ? audience.uids.length + audience.groupIds.length : 0;
49394
+ const AUDIENCE_LEVELS = [
49395
+ "public",
49396
+ "private",
49397
+ "with",
49398
+ "without"
49399
+ ];
49400
+ var AudiencePickerBoxComponent = class AudiencePickerBoxComponent {
49401
+ audience = input(DEFAULT_AUDIENCE, ...ngDevMode ? [{ debugName: "audience" }] : /* istanbul ignore next */ []);
49402
+ levels = input(AUDIENCE_LEVELS, ...ngDevMode ? [{ debugName: "levels" }] : /* istanbul ignore next */ []);
49403
+ locked = input(false, ...ngDevMode ? [{ debugName: "locked" }] : /* istanbul ignore next */ []);
49404
+ client = input.required(...ngDevMode ? [{ debugName: "client" }] : /* istanbul ignore next */ []);
49405
+ changed = output();
49406
+ done = output();
49407
+ i18n = inject(TranslateService);
49408
+ query = signal("", ...ngDevMode ? [{ debugName: "query" }] : /* istanbul ignore next */ []);
49409
+ known = signal({}, ...ngDevMode ? [{ debugName: "known" }] : /* istanbul ignore next */ []);
49410
+ icons = AUDIENCE_ICONS;
49411
+ picksMembers = computed(() => picksMembers(this.audience().level), ...ngDevMode ? [{ debugName: "picksMembers" }] : /* istanbul ignore next */ []);
49412
+ groupsResource = rxResource({
49413
+ params: () => this.client(),
49414
+ stream: ({ params }) => params.groups()
49415
+ });
49416
+ groups = computed(() => this.groupsResource.value() ?? [], ...ngDevMode ? [{ debugName: "groups" }] : /* istanbul ignore next */ []);
49417
+ searchResource = rxResource({
49418
+ params: () => this.query().trim() || void 0,
49419
+ stream: ({ params }) => params ? this.client().searchUsers(params) : of([])
49420
+ });
49421
+ results = computed(() => this.searchResource.value() ?? [], ...ngDevMode ? [{ debugName: "results" }] : /* istanbul ignore next */ []);
49422
+ searchConfig = computed(() => ({
49423
+ type: InputType.TEXT,
49424
+ placeholder: this.i18n.translate("audience-search-people"),
49425
+ icon: "search"
49426
+ }), ...ngDevMode ? [{ debugName: "searchConfig" }] : /* istanbul ignore next */ []);
49427
+ constructor() {
49428
+ effect(() => {
49429
+ const hits = this.results();
49430
+ if (!hits.length) return;
49431
+ untracked(() => this.remember(hits));
49432
+ });
49433
+ effect(() => {
49434
+ const missing = this.audience().uids.filter((id) => !this.known()[id]);
49435
+ if (!missing.length) return;
49436
+ untracked(() => this.client().users(missing).subscribe((users) => this.remember(users)));
49437
+ });
49438
+ }
49439
+ name = (id) => {
49440
+ const user = this.known()[id];
49441
+ if (!user) return "…";
49442
+ return [user.firstName, user.lastName].filter(Boolean).join(" ") || (user.username ? `@${user.username}` : id);
49443
+ };
49444
+ isPicked = (id) => this.audience().uids.includes(id);
49445
+ hasGroup = (id) => this.audience().groupIds.includes(id);
49446
+ setLevel = (level) => {
49447
+ if (this.locked() || level === this.audience().level) return;
49448
+ this.changed.emit(withLevel(this.audience(), level));
49449
+ };
49450
+ flipUser = (uid) => {
49451
+ if (this.locked()) return;
49452
+ this.changed.emit(toggleUid(this.audience(), uid));
49453
+ };
49454
+ flipGroup = (groupId) => {
49455
+ if (this.locked()) return;
49456
+ this.changed.emit(toggleGroup(this.audience(), groupId));
49457
+ };
49458
+ remember = (users) => this.known.update((all) => ({
49459
+ ...all,
49460
+ ...Object.fromEntries(users.map((u) => [u.id, u]))
49461
+ }));
49462
+ static ɵfac = i0.ɵɵngDeclareFactory({
49463
+ minVersion: "12.0.0",
49464
+ version: "22.2.1",
49465
+ ngImport: i0,
49466
+ type: AudiencePickerBoxComponent,
49467
+ deps: [],
49468
+ target: i0.ɵɵFactoryTarget.Component
49469
+ });
49470
+ static ɵcmp = i0.ɵɵngDeclareComponent({
49471
+ minVersion: "17.0.0",
49472
+ version: "22.2.1",
49473
+ type: AudiencePickerBoxComponent,
49474
+ isStandalone: true,
49475
+ selector: "m-audience-picker-box",
49476
+ inputs: {
49477
+ audience: {
49478
+ classPropertyName: "audience",
49479
+ publicName: "audience",
49480
+ isSignal: true,
49481
+ isRequired: false,
49482
+ transformFunction: null
49483
+ },
49484
+ levels: {
49485
+ classPropertyName: "levels",
49486
+ publicName: "levels",
49487
+ isSignal: true,
49488
+ isRequired: false,
49489
+ transformFunction: null
49490
+ },
49491
+ locked: {
49492
+ classPropertyName: "locked",
49493
+ publicName: "locked",
49494
+ isSignal: true,
49495
+ isRequired: false,
49496
+ transformFunction: null
49497
+ },
49498
+ client: {
49499
+ classPropertyName: "client",
49500
+ publicName: "client",
49501
+ isSignal: true,
49502
+ isRequired: true,
49503
+ transformFunction: null
49504
+ }
49505
+ },
49506
+ outputs: {
49507
+ changed: "changed",
49508
+ done: "done"
49509
+ },
49510
+ ngImport: i0,
49511
+ template: "<div class=\"audience-box\" role=\"dialog\" [attr.aria-label]=\"'audience-who-can-see' | translate\">\n <span class=\"audience-box__title\">{{ 'audience-who-can-see' | translate }}</span>\n\n @if (locked()) {\n <div class=\"audience-box__locked\">\n <m-one-icon name=\"lock\" size=\"sm\" />\n <span>{{ 'audience-locked' | translate }}</span>\n </div>\n }\n\n <div class=\"audience-box__levels\" role=\"radiogroup\">\n @for (level of levels(); track level) {\n <div\n class=\"audience-box__row\"\n [class.audience-box__row--on]=\"audience().level === level\"\n [class.audience-box__row--off]=\"locked()\"\n role=\"radio\"\n tabindex=\"0\"\n [attr.aria-checked]=\"audience().level === level\"\n [attr.aria-disabled]=\"locked()\"\n (click)=\"setLevel(level)\"\n (keydown.enter)=\"setLevel(level)\"\n (keydown.space)=\"setLevel(level)\"\n >\n <m-one-icon [name]=\"icons[level]\" size=\"sm\" />\n <span class=\"audience-box__text\">\n @switch (level) {\n @case ('public') {\n <span>{{ 'audience-anyone' | translate }}</span>\n <small>{{ 'audience-anyone-hint' | translate }}</small>\n }\n @case ('private') {\n <span>{{ 'audience-only-me' | translate }}</span>\n <small>{{ 'audience-only-me-hint' | translate }}</small>\n }\n @case ('with') {\n <span>{{ 'audience-only-these' | translate }}</span>\n <small>{{ 'audience-only-these-hint' | translate }}</small>\n }\n @case ('without') {\n <span>{{ 'audience-everyone-except' | translate }}</span>\n <small>{{ 'audience-everyone-except-hint' | translate }}</small>\n }\n }\n </span>\n @if (audience().level === level) {\n <m-one-icon name=\"check\" size=\"sm\" />\n }\n </div>\n }\n </div>\n\n @if (picksMembers()) {\n <div class=\"audience-box__part\">\n <span class=\"audience-box__label\">{{ 'audience-your-groups' | translate }}</span>\n @for (group of groups(); track group.id) {\n <div\n class=\"audience-box__row\"\n [class.audience-box__row--on]=\"hasGroup(group.id)\"\n [class.audience-box__row--off]=\"locked()\"\n role=\"checkbox\"\n tabindex=\"0\"\n [attr.aria-checked]=\"hasGroup(group.id)\"\n (click)=\"flipGroup(group.id)\"\n (keydown.enter)=\"flipGroup(group.id)\"\n (keydown.space)=\"flipGroup(group.id)\"\n >\n <m-one-icon [name]=\"hasGroup(group.id) ? 'check' : 'users'\" size=\"sm\" />\n <span class=\"audience-box__text\">{{ group.name }}</span>\n <span class=\"audience-box__count\">{{ group.members.length }}</span>\n </div>\n }\n </div>\n\n <div class=\"audience-box__part\">\n <span class=\"audience-box__label\">{{ 'audience-people' | translate }}</span>\n @if (audience().uids.length) {\n <div class=\"audience-box__chips\">\n @for (uid of audience().uids; track uid) {\n <span\n class=\"audience-box__chip\"\n role=\"button\"\n tabindex=\"0\"\n (click)=\"flipUser(uid)\"\n (keydown.enter)=\"flipUser(uid)\"\n >\n {{ name(uid) }}\n @if (!locked()) {\n <m-one-icon name=\"x\" size=\"xs\" />\n }\n </span>\n }\n </div>\n }\n @if (!locked()) {\n <m-text-input [config]=\"searchConfig()\" [(value)]=\"query\" />\n @for (user of results(); track user.id) {\n <div\n class=\"audience-box__row\"\n [class.audience-box__row--on]=\"isPicked(user.id)\"\n role=\"checkbox\"\n tabindex=\"0\"\n [attr.aria-checked]=\"isPicked(user.id)\"\n (click)=\"flipUser(user.id)\"\n (keydown.enter)=\"flipUser(user.id)\"\n (keydown.space)=\"flipUser(user.id)\"\n >\n <m-one-icon [name]=\"isPicked(user.id) ? 'check' : 'plus'\" size=\"sm\" />\n <span class=\"audience-box__text\">{{ name(user.id) }}</span>\n </div>\n }\n }\n </div>\n }\n\n <div class=\"audience-box__footer\">\n <m-one-button name=\"audience_done\" (clicked)=\"done.emit()\" />\n </div>\n</div>\n",
49512
+ styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}.audience-box{display:flex;flex-direction:column;gap:.25rem;max-height:28rem;padding:.75rem;overflow-y:auto;color:var(--m-text)}.audience-box__title,.audience-box__label{padding:.25rem .5rem;font-size:.75rem;font-weight:600;color:var(--m-text-secondary);text-transform:uppercase}.audience-box__locked{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:.5rem;background:var(--m-warning-lite);font-size:.8rem}.audience-box__levels,.audience-box__part{display:flex;flex-direction:column;gap:.125rem}.audience-box__part{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--m-border)}.audience-box__row{display:flex;align-items:center;gap:.6rem;padding:.5rem;border-radius:.5rem;cursor:pointer}.audience-box__row:hover,.audience-box__row:focus-visible{background:var(--m-background-lite);outline:none}.audience-box__row--on{color:var(--m-mm)}.audience-box__row--off{cursor:default;opacity:.6}.audience-box__text{display:flex;flex:1;flex-direction:column;font-size:.875rem}.audience-box__text small,.audience-box__count{font-size:.75rem;color:var(--m-text-secondary)}.audience-box__chips{display:flex;flex-wrap:wrap;gap:.375rem;padding:0 .5rem .5rem}.audience-box__chip{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .55rem;border:1px solid var(--m-mm);border-radius:999px;background:var(--m-mm-lite);font-size:.8rem;cursor:pointer}.audience-box__footer{display:flex;justify-content:flex-end;margin-top:.5rem}\n"],
49513
+ dependencies: [
49514
+ {
49515
+ kind: "component",
49516
+ type: ButtonComponent,
49517
+ selector: "m-button,m-one-button",
49518
+ inputs: [
49519
+ "config",
49520
+ "color",
49521
+ "labelClass",
49522
+ "fullWidth",
49523
+ "nav",
49524
+ "navParams",
49525
+ "href",
49526
+ "disabled",
49527
+ "variant",
49528
+ "name",
49529
+ "baseUrl",
49530
+ "one",
49531
+ "remote",
49532
+ "label",
49533
+ "noTranslate",
49534
+ "params",
49535
+ "noNative",
49536
+ "icon",
49537
+ "isRightIcon",
49538
+ "iconOnly",
49539
+ "stacked",
49540
+ "imgSrc",
49541
+ "nonClickable",
49542
+ "inverted",
49543
+ "isSubmit",
49544
+ "tabindex"
49545
+ ],
49546
+ outputs: ["configChange", "clicked"]
49547
+ },
49548
+ {
49549
+ kind: "component",
49550
+ type: IconComponent,
49551
+ selector: "m-icon, m-one-icon",
49552
+ inputs: [
49553
+ "config",
49554
+ "name",
49555
+ "color",
49556
+ "size",
49557
+ "one",
49558
+ "baseUrl",
49559
+ "remote"
49560
+ ],
49561
+ outputs: ["configChange"]
49562
+ },
49563
+ {
49564
+ kind: "component",
49565
+ type: TextInputComponent,
49566
+ selector: "m-text-input",
49567
+ inputs: [
49568
+ "value",
49569
+ "config",
49570
+ "required",
49571
+ "disabled",
49572
+ "invalid",
49573
+ "touched",
49574
+ "focused",
49575
+ "errors",
49576
+ "hideErrors"
49577
+ ],
49578
+ outputs: ["valueChange", "touchedChange"]
49579
+ },
49580
+ {
49581
+ kind: "pipe",
49582
+ type: TranslatePipe,
49583
+ name: "translate"
49584
+ }
49585
+ ],
49586
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
49587
+ });
49588
+ };
49589
+ i0.ɵɵngDeclareClassMetadata({
49590
+ minVersion: "12.0.0",
49591
+ version: "22.2.1",
49592
+ ngImport: i0,
49593
+ type: AudiencePickerBoxComponent,
49594
+ decorators: [{
49595
+ type: Component,
49596
+ args: [{
49597
+ selector: "m-audience-picker-box",
49598
+ imports: [
49599
+ ButtonComponent,
49600
+ IconComponent,
49601
+ TextInputComponent,
49602
+ TranslatePipe
49603
+ ],
49604
+ changeDetection: ChangeDetectionStrategy.OnPush,
49605
+ template: "<div class=\"audience-box\" role=\"dialog\" [attr.aria-label]=\"'audience-who-can-see' | translate\">\n <span class=\"audience-box__title\">{{ 'audience-who-can-see' | translate }}</span>\n\n @if (locked()) {\n <div class=\"audience-box__locked\">\n <m-one-icon name=\"lock\" size=\"sm\" />\n <span>{{ 'audience-locked' | translate }}</span>\n </div>\n }\n\n <div class=\"audience-box__levels\" role=\"radiogroup\">\n @for (level of levels(); track level) {\n <div\n class=\"audience-box__row\"\n [class.audience-box__row--on]=\"audience().level === level\"\n [class.audience-box__row--off]=\"locked()\"\n role=\"radio\"\n tabindex=\"0\"\n [attr.aria-checked]=\"audience().level === level\"\n [attr.aria-disabled]=\"locked()\"\n (click)=\"setLevel(level)\"\n (keydown.enter)=\"setLevel(level)\"\n (keydown.space)=\"setLevel(level)\"\n >\n <m-one-icon [name]=\"icons[level]\" size=\"sm\" />\n <span class=\"audience-box__text\">\n @switch (level) {\n @case ('public') {\n <span>{{ 'audience-anyone' | translate }}</span>\n <small>{{ 'audience-anyone-hint' | translate }}</small>\n }\n @case ('private') {\n <span>{{ 'audience-only-me' | translate }}</span>\n <small>{{ 'audience-only-me-hint' | translate }}</small>\n }\n @case ('with') {\n <span>{{ 'audience-only-these' | translate }}</span>\n <small>{{ 'audience-only-these-hint' | translate }}</small>\n }\n @case ('without') {\n <span>{{ 'audience-everyone-except' | translate }}</span>\n <small>{{ 'audience-everyone-except-hint' | translate }}</small>\n }\n }\n </span>\n @if (audience().level === level) {\n <m-one-icon name=\"check\" size=\"sm\" />\n }\n </div>\n }\n </div>\n\n @if (picksMembers()) {\n <div class=\"audience-box__part\">\n <span class=\"audience-box__label\">{{ 'audience-your-groups' | translate }}</span>\n @for (group of groups(); track group.id) {\n <div\n class=\"audience-box__row\"\n [class.audience-box__row--on]=\"hasGroup(group.id)\"\n [class.audience-box__row--off]=\"locked()\"\n role=\"checkbox\"\n tabindex=\"0\"\n [attr.aria-checked]=\"hasGroup(group.id)\"\n (click)=\"flipGroup(group.id)\"\n (keydown.enter)=\"flipGroup(group.id)\"\n (keydown.space)=\"flipGroup(group.id)\"\n >\n <m-one-icon [name]=\"hasGroup(group.id) ? 'check' : 'users'\" size=\"sm\" />\n <span class=\"audience-box__text\">{{ group.name }}</span>\n <span class=\"audience-box__count\">{{ group.members.length }}</span>\n </div>\n }\n </div>\n\n <div class=\"audience-box__part\">\n <span class=\"audience-box__label\">{{ 'audience-people' | translate }}</span>\n @if (audience().uids.length) {\n <div class=\"audience-box__chips\">\n @for (uid of audience().uids; track uid) {\n <span\n class=\"audience-box__chip\"\n role=\"button\"\n tabindex=\"0\"\n (click)=\"flipUser(uid)\"\n (keydown.enter)=\"flipUser(uid)\"\n >\n {{ name(uid) }}\n @if (!locked()) {\n <m-one-icon name=\"x\" size=\"xs\" />\n }\n </span>\n }\n </div>\n }\n @if (!locked()) {\n <m-text-input [config]=\"searchConfig()\" [(value)]=\"query\" />\n @for (user of results(); track user.id) {\n <div\n class=\"audience-box__row\"\n [class.audience-box__row--on]=\"isPicked(user.id)\"\n role=\"checkbox\"\n tabindex=\"0\"\n [attr.aria-checked]=\"isPicked(user.id)\"\n (click)=\"flipUser(user.id)\"\n (keydown.enter)=\"flipUser(user.id)\"\n (keydown.space)=\"flipUser(user.id)\"\n >\n <m-one-icon [name]=\"isPicked(user.id) ? 'check' : 'plus'\" size=\"sm\" />\n <span class=\"audience-box__text\">{{ name(user.id) }}</span>\n </div>\n }\n }\n </div>\n }\n\n <div class=\"audience-box__footer\">\n <m-one-button name=\"audience_done\" (clicked)=\"done.emit()\" />\n </div>\n</div>\n",
49606
+ styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}.audience-box{display:flex;flex-direction:column;gap:.25rem;max-height:28rem;padding:.75rem;overflow-y:auto;color:var(--m-text)}.audience-box__title,.audience-box__label{padding:.25rem .5rem;font-size:.75rem;font-weight:600;color:var(--m-text-secondary);text-transform:uppercase}.audience-box__locked{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:.5rem;background:var(--m-warning-lite);font-size:.8rem}.audience-box__levels,.audience-box__part{display:flex;flex-direction:column;gap:.125rem}.audience-box__part{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--m-border)}.audience-box__row{display:flex;align-items:center;gap:.6rem;padding:.5rem;border-radius:.5rem;cursor:pointer}.audience-box__row:hover,.audience-box__row:focus-visible{background:var(--m-background-lite);outline:none}.audience-box__row--on{color:var(--m-mm)}.audience-box__row--off{cursor:default;opacity:.6}.audience-box__text{display:flex;flex:1;flex-direction:column;font-size:.875rem}.audience-box__text small,.audience-box__count{font-size:.75rem;color:var(--m-text-secondary)}.audience-box__chips{display:flex;flex-wrap:wrap;gap:.375rem;padding:0 .5rem .5rem}.audience-box__chip{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .55rem;border:1px solid var(--m-mm);border-radius:999px;background:var(--m-mm-lite);font-size:.8rem;cursor:pointer}.audience-box__footer{display:flex;justify-content:flex-end;margin-top:.5rem}\n"]
49607
+ }]
49608
+ }],
49609
+ ctorParameters: () => [],
49610
+ propDecorators: {
49611
+ audience: [{
49612
+ type: i0.Input,
49613
+ args: [{
49614
+ isSignal: true,
49615
+ alias: "audience",
49616
+ required: false
49617
+ }]
49618
+ }],
49619
+ levels: [{
49620
+ type: i0.Input,
49621
+ args: [{
49622
+ isSignal: true,
49623
+ alias: "levels",
49624
+ required: false
49625
+ }]
49626
+ }],
49627
+ locked: [{
49628
+ type: i0.Input,
49629
+ args: [{
49630
+ isSignal: true,
49631
+ alias: "locked",
49632
+ required: false
49633
+ }]
49634
+ }],
49635
+ client: [{
49636
+ type: i0.Input,
49637
+ args: [{
49638
+ isSignal: true,
49639
+ alias: "client",
49640
+ required: true
49641
+ }]
49642
+ }],
49643
+ changed: [{
49644
+ type: i0.Output,
49645
+ args: ["changed"]
49646
+ }],
49647
+ done: [{
49648
+ type: i0.Output,
49649
+ args: ["done"]
49650
+ }]
49651
+ }
49652
+ });
49653
+ var AudiencePickerComponent = class AudiencePickerComponent extends ConfigComponent {
49654
+ audience = model(...ngDevMode ? [void 0, { debugName: "audience" }] : /* istanbul ignore next */ []);
49655
+ source = input(...ngDevMode ? [void 0, { debugName: "source" }] : /* istanbul ignore next */ []);
49656
+ locked = input(false, ...ngDevMode ? [{ debugName: "locked" }] : /* istanbul ignore next */ []);
49657
+ labelled = input(...ngDevMode ? [void 0, { debugName: "labelled" }] : /* istanbul ignore next */ []);
49658
+ disabled = input(false, ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
49659
+ align = input(...ngDevMode ? [void 0, { debugName: "align" }] : /* istanbul ignore next */ []);
49660
+ subFolder = "audience_picker";
49661
+ open = signal(false, ...ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []);
49662
+ client = inject(SHARING_CLIENT);
49663
+ i18n = inject(TranslateService);
49664
+ selectorDir = viewChild(SelectorDirective, ...ngDevMode ? [{ debugName: "selectorDir" }] : /* istanbul ignore next */ []);
49665
+ sourceLocked = signal(false, ...ngDevMode ? [{ debugName: "sourceLocked" }] : /* istanbul ignore next */ []);
49666
+ pickerConfig = computed(() => this.config() ?? {}, ...ngDevMode ? [{ debugName: "pickerConfig" }] : /* istanbul ignore next */ []);
49667
+ current = computed(() => this.audience() ?? DEFAULT_AUDIENCE, ...ngDevMode ? [{ debugName: "current" }] : /* istanbul ignore next */ []);
49668
+ levels = computed(() => this.pickerConfig().levels ?? AUDIENCE_LEVELS, ...ngDevMode ? [{ debugName: "levels" }] : /* istanbul ignore next */ []);
49669
+ isLocked = computed(() => this.locked() || this.sourceLocked(), ...ngDevMode ? [{ debugName: "isLocked" }] : /* istanbul ignore next */ []);
49670
+ stored = rxResource({
49671
+ params: () => this.source(),
49672
+ stream: ({ params }) => this.client.audience(params)
49673
+ });
49674
+ summary = computed(() => {
49675
+ const audience = this.current();
49676
+ const count = pickCount(audience);
49677
+ const title = this.levelTitle(audience.level);
49678
+ return count ? `${title} · ${count}` : title;
49679
+ }, ...ngDevMode ? [{ debugName: "summary" }] : /* istanbul ignore next */ []);
49680
+ triggerConfig = computed(() => {
49681
+ const labelled = this.labelled() ?? this.pickerConfig().labelled ?? false;
49682
+ return {
49683
+ variant: "ghost",
49684
+ iconOnly: !labelled,
49685
+ icon: AUDIENCE_ICONS[this.current().level],
49686
+ label: labelled ? this.summary() : "audience-picker",
49687
+ noTranslate: labelled,
49688
+ disabled: this.disabled()
49689
+ };
49690
+ }, ...ngDevMode ? [{ debugName: "triggerConfig" }] : /* istanbul ignore next */ []);
49691
+ selectorConfig = computed(() => {
49692
+ if (this.isDesignMode || this.disabled()) return void 0;
49693
+ return {
49694
+ component: AudiencePickerBoxComponent,
49695
+ base: "m-audience-picker",
49696
+ width: this.pickerConfig().width ?? "320px",
49697
+ height: "auto",
49698
+ align: this.align() ?? this.pickerConfig().align,
49699
+ toggle: true,
49700
+ bindings: [
49701
+ inputBinding("audience", this.current),
49702
+ inputBinding("levels", this.levels),
49703
+ inputBinding("locked", this.isLocked),
49704
+ inputBinding("client", () => this.client),
49705
+ outputBinding("changed", (next) => this.apply(next)),
49706
+ outputBinding("done", () => this.selectorDir()?.close())
49707
+ ]
49708
+ };
49709
+ }, ...ngDevMode ? [{ debugName: "selectorConfig" }] : /* istanbul ignore next */ []);
49710
+ constructor() {
49711
+ super();
49712
+ effect(() => {
49713
+ const stored = this.stored.value();
49714
+ if (!stored) return;
49715
+ untracked(() => {
49716
+ this.audience.set(stored.audience);
49717
+ this.sourceLocked.set(stored.locked);
49718
+ });
49719
+ });
49720
+ }
49721
+ apply = (next) => {
49722
+ if (this.isLocked()) return;
49723
+ const previous = this.audience();
49724
+ this.audience.set(next);
49725
+ const source = this.source();
49726
+ if (!source) return;
49727
+ this.client.saveAudience(source, next).subscribe({
49728
+ next: (saved) => {
49729
+ this.audience.set(saved.audience);
49730
+ this.sourceLocked.set(saved.locked);
49731
+ },
49732
+ error: () => this.audience.set(previous)
49733
+ });
49734
+ };
49735
+ levelTitle = (level) => {
49736
+ switch (level) {
49737
+ case "public": return this.i18n.translate("audience-anyone");
49738
+ case "private": return this.i18n.translate("audience-only-me");
49739
+ case "with": return this.i18n.translate("audience-only-these");
49740
+ case "without": return this.i18n.translate("audience-everyone-except");
49741
+ }
49742
+ };
49743
+ static ɵfac = i0.ɵɵngDeclareFactory({
49744
+ minVersion: "12.0.0",
49745
+ version: "22.2.1",
49746
+ ngImport: i0,
49747
+ type: AudiencePickerComponent,
49748
+ deps: [],
49749
+ target: i0.ɵɵFactoryTarget.Component
49750
+ });
49751
+ static ɵcmp = i0.ɵɵngDeclareComponent({
49752
+ minVersion: "17.2.0",
49753
+ version: "22.2.1",
49754
+ type: AudiencePickerComponent,
49755
+ isStandalone: true,
49756
+ selector: "m-audience-picker, m-one-audience-picker",
49757
+ inputs: {
49758
+ audience: {
49759
+ classPropertyName: "audience",
49760
+ publicName: "audience",
49761
+ isSignal: true,
49762
+ isRequired: false,
49763
+ transformFunction: null
49764
+ },
49765
+ source: {
49766
+ classPropertyName: "source",
49767
+ publicName: "source",
49768
+ isSignal: true,
49769
+ isRequired: false,
49770
+ transformFunction: null
49771
+ },
49772
+ locked: {
49773
+ classPropertyName: "locked",
49774
+ publicName: "locked",
49775
+ isSignal: true,
49776
+ isRequired: false,
49777
+ transformFunction: null
49778
+ },
49779
+ labelled: {
49780
+ classPropertyName: "labelled",
49781
+ publicName: "labelled",
49782
+ isSignal: true,
49783
+ isRequired: false,
49784
+ transformFunction: null
49785
+ },
49786
+ disabled: {
49787
+ classPropertyName: "disabled",
49788
+ publicName: "disabled",
49789
+ isSignal: true,
49790
+ isRequired: false,
49791
+ transformFunction: null
49792
+ },
49793
+ align: {
49794
+ classPropertyName: "align",
49795
+ publicName: "align",
49796
+ isSignal: true,
49797
+ isRequired: false,
49798
+ transformFunction: null
49799
+ }
49800
+ },
49801
+ outputs: { audience: "audienceChange" },
49802
+ viewQueries: [{
49803
+ propertyName: "selectorDir",
49804
+ first: true,
49805
+ predicate: SelectorDirective,
49806
+ descendants: true,
49807
+ isSignal: true
49808
+ }],
49809
+ usesInheritance: true,
49810
+ ngImport: i0,
49811
+ template: `
49812
+ <m-one-button
49813
+ [config]="triggerConfig()"
49814
+ [mSelector]="selectorConfig()"
49815
+ (opened)="open.set(true)"
49816
+ (closed)="open.set(false)"
49817
+ />
49818
+ `,
49819
+ isInline: true,
49820
+ dependencies: [{
49821
+ kind: "component",
49822
+ type: ButtonComponent,
49823
+ selector: "m-button,m-one-button",
49824
+ inputs: [
49825
+ "config",
49826
+ "color",
49827
+ "labelClass",
49828
+ "fullWidth",
49829
+ "nav",
49830
+ "navParams",
49831
+ "href",
49832
+ "disabled",
49833
+ "variant",
49834
+ "name",
49835
+ "baseUrl",
49836
+ "one",
49837
+ "remote",
49838
+ "label",
49839
+ "noTranslate",
49840
+ "params",
49841
+ "noNative",
49842
+ "icon",
49843
+ "isRightIcon",
49844
+ "iconOnly",
49845
+ "stacked",
49846
+ "imgSrc",
49847
+ "nonClickable",
49848
+ "inverted",
49849
+ "isSubmit",
49850
+ "tabindex"
49851
+ ],
49852
+ outputs: ["configChange", "clicked"]
49853
+ }, {
49854
+ kind: "directive",
49855
+ type: SelectorDirective,
49856
+ selector: "[mSelector]",
49857
+ inputs: ["mSelector", "disabled"],
49858
+ outputs: ["opened", "closed"],
49859
+ exportAs: ["mSelector"]
49860
+ }],
49861
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
49862
+ });
49863
+ };
49864
+ i0.ɵɵngDeclareClassMetadata({
49865
+ minVersion: "12.0.0",
49866
+ version: "22.2.1",
49867
+ ngImport: i0,
49868
+ type: AudiencePickerComponent,
49869
+ decorators: [{
49870
+ type: Component,
49871
+ args: [{
49872
+ selector: "m-audience-picker, m-one-audience-picker",
49873
+ imports: [ButtonComponent, SelectorDirective],
49874
+ template: `
49875
+ <m-one-button
49876
+ [config]="triggerConfig()"
49877
+ [mSelector]="selectorConfig()"
49878
+ (opened)="open.set(true)"
49879
+ (closed)="open.set(false)"
49880
+ />
49881
+ `,
49882
+ changeDetection: ChangeDetectionStrategy.OnPush
49883
+ }]
49884
+ }],
49885
+ ctorParameters: () => [],
49886
+ propDecorators: {
49887
+ audience: [{
49888
+ type: i0.Input,
49889
+ args: [{
49890
+ isSignal: true,
49891
+ alias: "audience",
49892
+ required: false
49893
+ }]
49894
+ }, {
49895
+ type: i0.Output,
49896
+ args: ["audienceChange"]
49897
+ }],
49898
+ source: [{
49899
+ type: i0.Input,
49900
+ args: [{
49901
+ isSignal: true,
49902
+ alias: "source",
49903
+ required: false
49904
+ }]
49905
+ }],
49906
+ locked: [{
49907
+ type: i0.Input,
49908
+ args: [{
49909
+ isSignal: true,
49910
+ alias: "locked",
49911
+ required: false
49912
+ }]
49913
+ }],
49914
+ labelled: [{
49915
+ type: i0.Input,
49916
+ args: [{
49917
+ isSignal: true,
49918
+ alias: "labelled",
49919
+ required: false
49920
+ }]
49921
+ }],
49922
+ disabled: [{
49923
+ type: i0.Input,
49924
+ args: [{
49925
+ isSignal: true,
49926
+ alias: "disabled",
49927
+ required: false
49928
+ }]
49929
+ }],
49930
+ align: [{
49931
+ type: i0.Input,
49932
+ args: [{
49933
+ isSignal: true,
49934
+ alias: "align",
49935
+ required: false
49936
+ }]
49937
+ }],
49938
+ selectorDir: [{
49939
+ type: i0.ViewChild,
49940
+ args: [i0.forwardRef(() => SelectorDirective), { isSignal: true }]
49941
+ }]
49942
+ }
49943
+ });
49944
+ export { ACCESS_DOMAINS, APP_CONTEXT_REF, APP_LINK, ASSET_BASE_URL, AUDIENCE_ICONS, AUDIENCE_LEVELS, AccordionBodyDirective, AccordionComponent, AccordionGroupComponent, ActionComponent, AnimatedGraphsComponent, AppAvailability, AppCardComponent, AppRelationType, AppTileComponent, AssetStore, AssetUrlPipe, Assets, AudiencePickerBoxComponent, AudiencePickerComponent, AuthActivityPageComponent, AuthApiService, AuthStore, AutosizeDirective, BadgeComponent, BandingComponent, BaseArrayInputComponent, BaseRootWebComponent, BaseWebComponent, BrowserLocaleService, ButtonComponent, ButtonGroupComponent, CALLING_APP_HEADER, COMPONENT_INPUT_REGISTRY, CardComponent, CardWrapperComponent, CarouselComponent, ChartComponent, ChatBubbleComponent, CheckboxGroupComponent, CheckboxInputComponent, ClearableInputComponent, ClipboardService, ColComponent, ColorPickerInputComponent, CommentItemComponent, CommentsApiService, CommentsComponent, CommentsStore, CompactNumberPipe, ComponentInputComponent, ComponentStepperComponent, ConfigComponent, ConfirmComponent, ContextMenuComponent, CustomIconClass, CustomIconEditComponent, DEFAULT_AUDIENCE, DEFAULT_DENIAL, DEFAULT_DOC_ALIGN, DEFAULT_DOC_DENSITY, DEFAULT_DOC_VARIANT, DEFAULT_FILTER_RANGE_MODE, DEFAULT_FILTER_VARIANT, DEFAULT_NAV_PARAM, DEFAULT_NAV_SEGMENT, DEFAULT_SIZE, DOCK_MIN_PAGE_REMAINDER, DOCS_FOLDER, DOC_ACTION_ICONS, DOC_ALIGNS, DOC_DENSITIES, DOC_EDIT_ACTIONS, DOC_TOOLBAR_GROUPS, DOC_VARIANTS, DashboardCardComponent, DateInputComponent, DatePickerComponent, DeviceService, DocComponent, DocEditorComponent, DomService, Domain, DotGridComponent, DragListDirective, DragListItemDirective, DraggableDirective, DropdownInputComponent, FILTER_GROUP_CONTEXT, FILTER_RANGE_MODES, FILTER_VARIANTS, FLEX_VARIANTS, FOLDER_PICK_LISTENER, FORM_ASSET_FOLDER, FileService, FileUploadDirective, FileUploadInputComponent, FlexComponent, FlexItemComponent, FormGroupComponent, FrameComponent, FreezeService, GRID_BREAKPOINTS, GetNavService, HeaderComponent, HighlightDirective, HttpService, HttpSharingClient, ICON_SOURCE, IS_DESIGN_MODE, IS_SIDE_PANEL, IconComponent, ImgComponent, InputType, InstrumentScoreComponent, InterceptorObservables, JumbotronComponent, KeyValueComponent, LAYOUT_ASSET_FOLDER, LOADING_ACTIONS_REF, LOGIN_COMPONENT, LOGIN_STORE, LanguageComponent, ListComponent, LogoComponent, MAG_SOCKET_EVENT, MHeroColorDirective, MHeroComponent, MODAL_REF, MODAL_STORE_REF, MOUNT_STATIC_SEGMENT, MOUNT_TOKEN, MRefDirective, MStepComponent, MURL_PARAM, MURL_SEP, ManifestEnrichmentService, MarginDirective, MenuComponent, ModalDirective, ModalRef, ModalStore, MoneyPipe, MultiRangeInputComponent, MultiselectInputComponent, MurlUrlSerializer, NAV_DEFAULT_MURL, NAV_ID_SEP, NAV_MAIN_BUTTONS, NAV_SEGMENT_RE, NAV_STORE_REF, NAV_WC_COMPONENTS, NAV_WIDGET_MAP, NavComponent, NavDetailsComponent, NavHeaderComponent, NavMenuComponent, NavStore, NavTrailComponent, NothingComponent, NotificationElementComponent, NotificationGroupComponent, NotificationPopupComponent, NotificationService, NotificationStore, NotificationType, NotificationWidgetComponent, ONE_ASSET_BASE_URL, OPTIONS_SOURCE, OVERLAY_WIDGETS, OneApp, OptionsSourceDirective, OverlayBodyComponent, OverlayRef, OverlayService, PLATFORM_BUTTON_NAV_IDS, PLATFORM_EXTENSIBLE_NAV_IDS, PLATFORM_NAV_MAP, PLATFORM_ROOT_CHILDREN, PLUGIN_FALLBACK_LANG, PLUGIN_OUTPUT_EVENT, PLUGIN_SCREENS, PaddingDirective, PaginationComponent, PanelComponent, PercentagePipe, PlaygroundComponent, PluginComponent, PluginInputComponent, PluginOutputComponent, PositionDirective, PwaInstallComponent, RECENT_SEARCH_LIMIT, REMOTE_PAGE_RELOAD, ROOT_NAV, RadioGroupComponent, RadioInputComponent, RangeInputComponent, RatingInputComponent, ReactiveElementComponent, RemoteComponent, RemoteLoaderService, ResizeElementComponent, RouteContainer, RowComponent, SEARCH_QUERY, SEARCH_RESULTS_EVENT, SECTION_ACCORDION_GROUP, SECTION_FORM_CONTEXT, SECTION_TABLE_VARIANTS, SHARED_ICONS, SHARING_CLIENT, SIZE_CONTEXT, SPACING_INWARD, ScoreComponent, ScrollComponent, ScrollService, SearchPanelComponent, SearchStore, SearchUserPanelComponent, SectionAccordionDirective, SectionAccordionGroupDirective, SectionBackComponent, SectionBadgesComponent, SectionButtonGroupComponent, SectionCardComponent, SectionCarouselComponent, SectionComponent, SectionFilterComponent, SectionFilterGroupComponent, SectionFilterMenuComponent, SectionFilterPanelComponent, SectionFilterRangePanelComponent, SectionFooterComponent, SectionFormComponent, SectionFormItemComponent, SectionHeaderComponent, SectionHeroComponent, SectionPaginationComponent, SectionSearchComponent, SectionStepperComponent, SectionTableCellComponent, SectionTableComponent, SectionTableRowComponent, SectionTableSortPipe, SectionTabsComponent, SectionToggleComponent, SectionToggleItemDirective, SelectableCardInputComponent, SelectorDirective, SettingsSearchBarComponent, SettingsSearchService, ShapeComponent, SharedStoreRegistry, SidePanelDirective, Size, SocketStore, SortComponent, StatComponent, StepComponent, StepperComponent, StepsComponent, StorageService, StrokeLinecap, StrokeLinejoin, SummaryComponent, SvgGeneratorComponent, SvgGeneratorService, SvgService, TOTAL_COLUMNS, TRANSLATION_SOURCE, TableComponent, TechnicalMeterComponent, TextInputComponent, TextOutputComponent, TextareaInputComponent, ThemeComponent, ThemeDataService, ThemeService, ThemeStore, TimeAgoPipe, TimelineComponent, ToggleButtonComponent, ToggleInputComponent, ToggleRadioInputComponent, ToolTipDirective, TooltipComponent, TranslatePipe, TranslateService, TreeGridComponent, URL_SEP, USER_STORE_REF, USER_TAB_MAP, UniverseComponent, UserApiService, UserAvatarComponent, UserComponent, UserNavComponent, UserSettingsComponent, UserStore, WC_BUNDLE, WC_NAVIGATE_EVENT, WC_ROUTE_CHANGED_EVENT, WC_SEARCH_GROUPS, WIN_USER_TAB_HOOK, WIN_USER_TAB_KEY, WatermarkComponent, WcRouterStore, WrapperInputComponent, activeElementWithin, allowedCodes, anchorNavId, applyColorsToElement, applyDocEdit, assetOptions, baseUnderHost, bootstrapMagApp, bootstrapPwaInstall, browserLocale, buildWcBaseUrl, calculateLuminance, calculateRanks, cellText, checkDoc, checkFilterCondition, childNavId, claimDenial, classListSignal, coerceSize, cornerEdge, cornerSide, createLoadingState, createMap, createPlatformNavMap, createPluginElement, definePluginScreens, definedWcBundleOf, definedWcTierOf, deriveAvatarGradient, deriveContrastColor, deriveOppositeColor, derivePropertyName, docActionKey, docAssetCandidates, docProblemKey, docRemotePath, emailValidation, evaluate, evaluateBool, exposeScreens, exposedScreensOf, fieldBoolean, fieldNumber, fieldString, filterHoldsList, filterHoldsOneBound, filterHoldsOptions, filterHoldsRange, filterList, filterNumber, filterNumberList, filterOne, filterPanelOf, filterPanelWidth, filterRange, filterTreeGridRows, filterValueList, filterValues, flattenTreeGridRows, formatBadgeCount, fullName, generateClipPath, generateTransform, getClassList, getProperty, getScrollParent, getTierFromPreviewPath, getTreeGridRow, getUniqueId, getValue, hasErrorComputed, hexToRgb, hslToRgb, initMagmoniumApp, initialNotificationState, initialState, initials, injectAuthenticate, injectDefaultDenial, injectInstallApp, injectParentSize, injectScrollSticky, isBootRedirect, isButtonName, isCancelledComputed, isExtensiblePlatformNavId, isJson, isLoadingComputed, isLocalhost, isNavInstanceConfig, isNavMenuConfig, isNavRowsConfig, isNavVisibilityConfig, isPlatformNavId, isPlatformPanelNavId, isSize, isTierPreview, isUrlLocalhost, isValidNavId, isValidNavSegment, isWebComponent, linkToId, linkToNav, loadingActions, mInterceptor, manualValidation, matchFieldValidation, matchMount, maxLengthValidation, maxValidation, mergePlatformNav, mergeUnique, mergeUniqueBy, mergeUniqueWith, minAgeValidation, minLengthValidation, minValidation, miniMarkToHtml, mountFor, mountPatternProblem, mountPatternText, mountSegmentOf, mountTokenOf, navIdChain, navIdFor, navIdSegment, navIdToRoutePath, navIdToSegments, navParamOf, navTailMatcher, navToId, navVisibilityGuard, nextSectionTableSort, normalizeAssetOptions, offsetOfLine, outletPathOf, outletSegmentsOf, parentNavId, parseAddress, parseColor, parseMountPattern, parsePatternNames, patternValidation, patternsValidation, permissionRefusal, pickCount, pickSupportedLanguage, picksMembers, platformNavWidgets, pluginTag, presetDefaultOption, privateGuard, processImageToSvg, provideAppContext, provideMagAppConfig, provideMagWcConfig, provideMagWcRoutes, provideModalComponents, provideMurlUrlSerializer, provideNavWidgets, provideOverlayWidgets, providePlatformNavWidgets, providePluginRuntime, provideSearch, provideSizeContext, provideUserTabs, publicGuard, readFieldPatterns, recordDefinedWcTier, remoteOutletRoute, renderAddress, renderDocument, requiredValidation, resolveConfigAsset, resolveIconSize, resolvePallet, resolvePatternRules, resolveSize, resolveSpacing, rgbToHex, rgbToHsl, rowHasChildren, samePatterns, sectionTableColumnId, sectionTableColumnWidths, sectionTableFrozenCount, segmentsToNavId, setProperty, setTreeGridChildren, setWcLocalPort, setWcTier, settingsWidgets, shouldShowBadge, sortSectionTableRows, splitNavId, splitOnMatch, splitPath, stringToColor, tailRouteOf, toAttrBool, toAttrNumber, toCssLength, toHostNavId, toLength, toLocalNavId, toggleGroup, toggleTreeGridRow, toggleUid, unfetchedPlatformNav, ungroupedDocActions, urlValidation, wcLocalBaseOf, wcTierOf, withLevel };
49302
49945
 
49303
49946
  //# sourceMappingURL=magmonium-one.mjs.map