@magmonium/one 0.4.33 → 0.4.35

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 (40) hide show
  1. package/assets/buttons/audience_done.json +4 -0
  2. package/assets/i18n/ar.json +14 -0
  3. package/assets/i18n/de.json +14 -0
  4. package/assets/i18n/en.json +14 -0
  5. package/assets/i18n/es.json +14 -0
  6. package/assets/i18n/fr.json +14 -0
  7. package/assets/i18n/hi.json +14 -0
  8. package/assets/i18n/it.json +14 -0
  9. package/assets/i18n/ja.json +14 -0
  10. package/assets/i18n/ko.json +14 -0
  11. package/assets/i18n/nl.json +14 -0
  12. package/assets/i18n/pl.json +14 -0
  13. package/assets/i18n/pt.json +14 -0
  14. package/assets/i18n/ru.json +14 -0
  15. package/assets/i18n/tr.json +14 -0
  16. package/assets/i18n/zh.json +14 -0
  17. package/assets/index.json +1 -1
  18. package/fesm2022/{magmonium-one-base-dropdown-U-cWl3p9.mjs → magmonium-one-base-dropdown-Ck4geeN4.mjs} +2 -2
  19. package/fesm2022/{magmonium-one-base-dropdown-U-cWl3p9.mjs.map → magmonium-one-base-dropdown-Ck4geeN4.mjs.map} +1 -1
  20. package/fesm2022/{magmonium-one-base-text-Zb0oLNRX.mjs → magmonium-one-base-text-DRdZfrqC.mjs} +27 -3
  21. package/fesm2022/magmonium-one-base-text-DRdZfrqC.mjs.map +1 -0
  22. package/fesm2022/{magmonium-one-image-editor-BX4eNd4u.mjs → magmonium-one-image-editor-D7IuAMdl.mjs} +2 -2
  23. package/fesm2022/{magmonium-one-image-editor-BX4eNd4u.mjs.map → magmonium-one-image-editor-D7IuAMdl.mjs.map} +1 -1
  24. package/fesm2022/magmonium-one-m-ref-Bq0gQbKE.mjs.map +1 -1
  25. package/fesm2022/magmonium-one-menu-BM9f2knw.mjs.map +1 -1
  26. package/fesm2022/magmonium-one-options-asset-CDEXIif6.mjs.map +1 -1
  27. package/fesm2022/{magmonium-one-otp-DO4oTeSK.mjs → magmonium-one-otp-Bfvbg6sY.mjs} +2 -2
  28. package/fesm2022/{magmonium-one-otp-DO4oTeSK.mjs.map → magmonium-one-otp-Bfvbg6sY.mjs.map} +1 -1
  29. package/fesm2022/{magmonium-one-password-D3oTo41c.mjs → magmonium-one-password-C_TwyLkj.mjs} +2 -2
  30. package/fesm2022/{magmonium-one-password-D3oTo41c.mjs.map → magmonium-one-password-C_TwyLkj.mjs.map} +1 -1
  31. package/fesm2022/{magmonium-one-range-D_WEKrli.mjs → magmonium-one-range-CUEJcUBc.mjs} +2 -2
  32. package/fesm2022/{magmonium-one-range-D_WEKrli.mjs.map → magmonium-one-range-CUEJcUBc.mjs.map} +1 -1
  33. package/fesm2022/magmonium-one-size-converter-BfT0Aw0g.mjs.map +1 -1
  34. package/fesm2022/{magmonium-one-text-B4xKn-EQ.mjs → magmonium-one-text-kkEMHNIt.mjs} +2 -2
  35. package/fesm2022/{magmonium-one-text-B4xKn-EQ.mjs.map → magmonium-one-text-kkEMHNIt.mjs.map} +1 -1
  36. package/fesm2022/magmonium-one.mjs +671 -43
  37. package/fesm2022/magmonium-one.mjs.map +1 -1
  38. package/package.json +1 -1
  39. package/types/magmonium-one.d.ts +292 -52
  40. package/fesm2022/magmonium-one-base-text-Zb0oLNRX.mjs.map +0 -1
@@ -5,6 +5,7 @@ import { t as FileService } from "./magmonium-one-file.service-Bo06pU3_.mjs";
5
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
6
  import "./magmonium-one-theme-Xgsx8bJs.mjs";
7
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 { i as getScrollParent, n as activeElementWithin, r as classListSignal, t as BaseTextInputComponent } from "./magmonium-one-base-text-DRdZfrqC.mjs";
8
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-Ep14YeRY.mjs";
9
10
  import { i as resolveConfigAsset, n as toAttrNumber, r as ConfigComponent, t as toAttrBool } from "./magmonium-one-attribute-value-DMI0yJpL.mjs";
10
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-Bwzaxxn3.mjs";
@@ -13,10 +14,9 @@ import { t as HeaderComponent } from "./magmonium-one-header-DmN8M1a3.mjs";
13
14
  import { t as TextOutputComponent } from "./magmonium-one-text-output-CfVeqYM7.mjs";
14
15
  import { t as BaseInputComponent } from "./magmonium-one-base-input-CLBOTOUs.mjs";
15
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-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";
17
+ import { n as DROPDOWN_IMPORTS, r as DROPDOWN_TEMPLATE, t as BaseDropdownComponent } from "./magmonium-one-base-dropdown-Ck4geeN4.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";
19
+ import { t as TextInputComponent } from "./magmonium-one-text-kkEMHNIt.mjs";
20
20
  import { i as OptionsSourceDirective, n as normalizeAssetOptions, r as presetDefaultOption, t as assetOptions } from "./magmonium-one-options-asset-CDEXIif6.mjs";
21
21
  import { r as PLACED_CHECKBOX, t as CheckboxInputComponent } from "./magmonium-one-checkbox-CPQ9m291.mjs";
22
22
  import { i as mergeUniqueWith, n as mergeUnique, r as mergeUniqueBy, t as ButtonGroupComponent } from "./magmonium-one-group-D4yYrVP3.mjs";
@@ -24,7 +24,7 @@ import { n as ContextMenuBoxComponent, r as MenuComponent, t as ContextMenuCompo
24
24
  import { t as BaseCheckboxInputComponent } from "./magmonium-one-base-checkbox-C9dvZ2IH.mjs";
25
25
  import { t as RadioInputComponent } from "./magmonium-one-radio-CkaWESS3.mjs";
26
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";
27
+ import { t as RangeInputComponent } from "./magmonium-one-range-CUEJcUBc.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";
@@ -36,7 +36,7 @@ import { rxMethod } from "@ngrx/signals/rxjs-interop";
36
36
  import { io } from "socket.io-client";
37
37
  import { ActivatedRoute, DefaultUrlSerializer, NavigationEnd, PRIMARY_OUTLET, Router, RouterLink, RouterOutlet, UrlSegment, UrlSegmentGroup, UrlSerializer, UrlTree, isActive, provideRouter, withComponentInputBinding, withRouterConfig } from "@angular/router";
38
38
  import * as i1 from "@angular/common";
39
- import { APP_BASE_HREF, CommonModule, DatePipe, DecimalPipe, Location, NgClass, NgComponentOutlet, NgStyle, NgTemplateOutlet } from "@angular/common";
39
+ import { APP_BASE_HREF, CommonModule, DatePipe, DecimalPipe, Location, LocationStrategy, NgClass, NgComponentOutlet, NgStyle, NgTemplateOutlet, PathLocationStrategy, PlatformLocation } from "@angular/common";
40
40
  import { FormField, apply, email, form, max, maxLength, min, minLength, required, validate } from "@angular/forms/signals";
41
41
  import { createCustomElement } from "@angular/elements";
42
42
  import { NG_VALUE_ACCESSOR } from "@angular/forms";
@@ -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);
@@ -4050,12 +4029,12 @@ var SectionFormItemComponent = class SectionFormItemComponent extends ConfigComp
4050
4029
  break;
4051
4030
  }
4052
4031
  case InputType.PASSWORD: {
4053
- const { PasswordInputComponent } = await import("./magmonium-one-password-D3oTo41c.mjs");
4032
+ const { PasswordInputComponent } = await import("./magmonium-one-password-C_TwyLkj.mjs");
4054
4033
  this.createDynamicComponent(seq, PasswordInputComponent);
4055
4034
  break;
4056
4035
  }
4057
4036
  case InputType.OTP: {
4058
- const { OtpInputComponent } = await import("./magmonium-one-otp-DO4oTeSK.mjs");
4037
+ const { OtpInputComponent } = await import("./magmonium-one-otp-Bfvbg6sY.mjs");
4059
4038
  this.createDynamicComponent(seq, OtpInputComponent);
4060
4039
  break;
4061
4040
  }
@@ -4080,7 +4059,7 @@ var SectionFormItemComponent = class SectionFormItemComponent extends ConfigComp
4080
4059
  break;
4081
4060
  }
4082
4061
  case InputType.RANGE: {
4083
- const { RangeInputComponent } = await import("./magmonium-one-range-D_WEKrli.mjs").then((n) => n.n);
4062
+ const { RangeInputComponent } = await import("./magmonium-one-range-CUEJcUBc.mjs").then((n) => n.n);
4084
4063
  this.createDynamicComponent(seq, RangeInputComponent);
4085
4064
  break;
4086
4065
  }
@@ -4136,7 +4115,7 @@ var SectionFormItemComponent = class SectionFormItemComponent extends ConfigComp
4136
4115
  break;
4137
4116
  }
4138
4117
  default: {
4139
- const { TextInputComponent } = await import("./magmonium-one-text-B4xKn-EQ.mjs").then((n) => n.n);
4118
+ const { TextInputComponent } = await import("./magmonium-one-text-kkEMHNIt.mjs").then((n) => n.n);
4140
4119
  this.createDynamicComponent(seq, TextInputComponent);
4141
4120
  break;
4142
4121
  }
@@ -7604,7 +7583,8 @@ var SectionSearchComponent = class SectionSearchComponent extends BaseTextInputC
7604
7583
  onFocusOut = (_event) => {
7605
7584
  if (!this.isOpen()) return;
7606
7585
  setTimeout(() => {
7607
- if (!this.elementRef.nativeElement.contains(document.activeElement)) this.close();
7586
+ const active = activeElementWithin(this.elementRef.nativeElement);
7587
+ if (!active || !this.elementRef.nativeElement.contains(active)) this.close();
7608
7588
  });
7609
7589
  };
7610
7590
  scheduleEmit = () => {
@@ -7799,7 +7779,7 @@ var SectionSearchComponent = class SectionSearchComponent extends BaseTextInputC
7799
7779
  }
7800
7780
  <!-- The results component, mounted per search rather than written as a tag:
7801
7781
  which component draws results is the caller's answer, so the markup has
7802
- no selector to write (CONTEXT.md SearchResultsScreen). Shown only once
7782
+ no selector to write (GLOSSARY.md SearchResultsScreen). Shown only once
7803
7783
  there is text to search for — a bar nobody has typed into has no result
7804
7784
  to draw — and handed that text through the one input the editor minted
7805
7785
  on it. -->
@@ -7942,7 +7922,7 @@ i0.ɵɵngDeclareClassMetadata({
7942
7922
  }
7943
7923
  <!-- The results component, mounted per search rather than written as a tag:
7944
7924
  which component draws results is the caller's answer, so the markup has
7945
- no selector to write (CONTEXT.md SearchResultsScreen). Shown only once
7925
+ no selector to write (GLOSSARY.md SearchResultsScreen). Shown only once
7946
7926
  there is text to search for — a bar nobody has typed into has no result
7947
7927
  to draw — and handed that text through the one input the editor minted
7948
7928
  on it. -->
@@ -15115,6 +15095,47 @@ const WcRouterStore = signalStore({ providedIn: "root" }, withState({ url: [] })
15115
15095
  if (current) patchState(store, { url: linkToNav(current) });
15116
15096
  store.trackRouter({});
15117
15097
  } }));
15098
+ const pathUnderBase = (base, url) => {
15099
+ const root = Location.stripTrailingSlash(base);
15100
+ if (!root) return url;
15101
+ if (!url.startsWith(root)) return void 0;
15102
+ const rest = url.slice(root.length);
15103
+ return rest === "" || "/?#;".includes(rest[0]) ? rest : void 0;
15104
+ };
15105
+ var HostBaseLocationStrategy = class HostBaseLocationStrategy extends PathLocationStrategy {
15106
+ assetStore = inject(AssetStore);
15107
+ getBaseHref() {
15108
+ return untracked(() => this.assetStore.hostBase()) ?? super.getBaseHref();
15109
+ }
15110
+ prepareExternalUrl(internal) {
15111
+ return Location.joinWithSlash(this.getBaseHref(), internal);
15112
+ }
15113
+ path(includeHash = false) {
15114
+ const url = super.path(includeHash);
15115
+ return pathUnderBase(this.getBaseHref(), url) ?? url;
15116
+ }
15117
+ static ɵfac = i0.ɵɵngDeclareFactory({
15118
+ minVersion: "12.0.0",
15119
+ version: "22.2.1",
15120
+ ngImport: i0,
15121
+ type: HostBaseLocationStrategy,
15122
+ deps: null,
15123
+ target: i0.ɵɵFactoryTarget.Injectable
15124
+ });
15125
+ static ɵprov = i0.ɵɵngDeclareInjectable({
15126
+ minVersion: "12.0.0",
15127
+ version: "22.2.1",
15128
+ ngImport: i0,
15129
+ type: HostBaseLocationStrategy
15130
+ });
15131
+ };
15132
+ i0.ɵɵngDeclareClassMetadata({
15133
+ minVersion: "12.0.0",
15134
+ version: "22.2.1",
15135
+ ngImport: i0,
15136
+ type: HostBaseLocationStrategy,
15137
+ decorators: [{ type: Injectable }]
15138
+ });
15118
15139
  var BaseRootWebComponent = class BaseRootWebComponent extends BaseWebComponent {
15119
15140
  router = inject(Router);
15120
15141
  extra = input(...ngDevMode ? [void 0, { debugName: "extra" }] : /* istanbul ignore next */ []);
@@ -15125,6 +15146,8 @@ var BaseRootWebComponent = class BaseRootWebComponent extends BaseWebComponent {
15125
15146
  navWidgetMaps = inject(NAV_WIDGET_MAP, { optional: true });
15126
15147
  appBaseHref = inject(APP_BASE_HREF, { optional: true });
15127
15148
  location = inject(Location);
15149
+ locationStrategy = inject(LocationStrategy);
15150
+ platformLocation = inject(PlatformLocation);
15128
15151
  injector = inject(Injector);
15129
15152
  wcComponents = inject(NAV_WC_COMPONENTS, { optional: true });
15130
15153
  defaultNavId = inject(NAV_DEFAULT_MURL, { optional: true });
@@ -15218,9 +15241,13 @@ var BaseRootWebComponent = class BaseRootWebComponent extends BaseWebComponent {
15218
15241
  this.agreementGate.ensure(id);
15219
15242
  });
15220
15243
  });
15221
- if (Object.keys(this.router.parseUrl(this.location.path()).root.children).every((outlet) => outlet === "primary")) this.router.initialNavigation();
15222
- const initialPath = this.extra();
15223
- if (initialPath !== void 0) this.router.navigateByUrl(initialPath || "", { skipLocationChange: true });
15244
+ effect(() => {
15245
+ untracked(() => {
15246
+ const base = this.base();
15247
+ if (base) this.assetStore.setHostBase(base);
15248
+ if (pathUnderBase(this.locationStrategy.getBaseHref(), this.platformLocation.pathname) !== void 0 && Object.keys(this.router.parseUrl(this.location.path()).root.children).every((outlet) => outlet === "primary")) this.router.initialNavigation();
15249
+ });
15250
+ });
15224
15251
  const destroyRef = inject(DestroyRef);
15225
15252
  const sub = this.router.events.pipe(filter((e) => e instanceof NavigationEnd)).subscribe(({ urlAfterRedirects }) => {
15226
15253
  const root = this.router.routerState.snapshot.root;
@@ -21532,12 +21559,12 @@ var WrapperInputComponent = class WrapperInputComponent extends ConfigComponent
21532
21559
  break;
21533
21560
  }
21534
21561
  case InputType.PASSWORD: {
21535
- const { PasswordInputComponent } = await import("./magmonium-one-password-D3oTo41c.mjs");
21562
+ const { PasswordInputComponent } = await import("./magmonium-one-password-C_TwyLkj.mjs");
21536
21563
  this.createDynamicComponent(seq, PasswordInputComponent);
21537
21564
  break;
21538
21565
  }
21539
21566
  case InputType.OTP: {
21540
- const { OtpInputComponent } = await import("./magmonium-one-otp-DO4oTeSK.mjs");
21567
+ const { OtpInputComponent } = await import("./magmonium-one-otp-Bfvbg6sY.mjs");
21541
21568
  this.createDynamicComponent(seq, OtpInputComponent);
21542
21569
  break;
21543
21570
  }
@@ -21562,7 +21589,7 @@ var WrapperInputComponent = class WrapperInputComponent extends ConfigComponent
21562
21589
  break;
21563
21590
  }
21564
21591
  case InputType.RANGE: {
21565
- const { RangeInputComponent } = await import("./magmonium-one-range-D_WEKrli.mjs").then((n) => n.n);
21592
+ const { RangeInputComponent } = await import("./magmonium-one-range-CUEJcUBc.mjs").then((n) => n.n);
21566
21593
  this.createDynamicComponent(seq, RangeInputComponent);
21567
21594
  break;
21568
21595
  }
@@ -21618,7 +21645,7 @@ var WrapperInputComponent = class WrapperInputComponent extends ConfigComponent
21618
21645
  break;
21619
21646
  }
21620
21647
  default: {
21621
- const { TextInputComponent } = await import("./magmonium-one-text-B4xKn-EQ.mjs").then((n) => n.n);
21648
+ const { TextInputComponent } = await import("./magmonium-one-text-kkEMHNIt.mjs").then((n) => n.n);
21622
21649
  this.createDynamicComponent(seq, TextInputComponent);
21623
21650
  break;
21624
21651
  }
@@ -23934,7 +23961,7 @@ var FileUploadInputComponent = class FileUploadInputComponent extends BaseInputC
23934
23961
  openEditor = async (file, size) => {
23935
23962
  const modalStore = this.modalStore;
23936
23963
  if (!modalStore) return void 0;
23937
- const { ImageEditorComponent } = await import("./magmonium-one-image-editor-BX4eNd4u.mjs");
23964
+ const { ImageEditorComponent } = await import("./magmonium-one-image-editor-D7IuAMdl.mjs");
23938
23965
  const ratio = String(this.config()?.ratio ?? "");
23939
23966
  return new Promise((resolve) => {
23940
23967
  const modalRef = new ModalRef();
@@ -28844,6 +28871,7 @@ const mountPatternProblem = (pattern) => {
28844
28871
  if (pattern.some((s) => s.kind === "static" && !MOUNT_STATIC_SEGMENT.test(s.value?.trim() ?? ""))) return "bad-static";
28845
28872
  if (pattern.length < 2) return "no-prefix";
28846
28873
  };
28874
+ const baseUnderHost = (hostBase, base) => hostBase ? `${hostBase.replace(/\/+$/, "")}${base}` : base;
28847
28875
  const matchMount = (segments, pattern) => {
28848
28876
  if (mountPatternProblem(pattern)) return null;
28849
28877
  const prefix = pattern.slice(0, -1);
@@ -29151,7 +29179,8 @@ var RemoteComponent = class RemoteComponent {
29151
29179
  this.state.set("loading");
29152
29180
  const useShadow = untracked(() => this.useShadow());
29153
29181
  const path = untracked(() => this.remotePath());
29154
- const base = untracked(() => this.mountMatch())?.base;
29182
+ const match = untracked(() => this.mountMatch());
29183
+ const base = match && baseUnderHost(untracked(() => this.assetStore.hostBase()), match.base);
29155
29184
  this.lastSent = path;
29156
29185
  this.bootPending = !!path;
29157
29186
  const props = {
@@ -45378,6 +45407,10 @@ function provideMagWcConfig(options) {
45378
45407
  return match ? match[0] : "/";
45379
45408
  }
45380
45409
  },
45410
+ {
45411
+ provide: LocationStrategy,
45412
+ useClass: HostBaseLocationStrategy
45413
+ },
45381
45414
  provideZonelessChangeDetection(),
45382
45415
  {
45383
45416
  provide: APP_LINK,
@@ -49245,6 +49278,601 @@ i0.ɵɵngDeclareClassMetadata({
49245
49278
  }]
49246
49279
  }
49247
49280
  });
49248
- 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, 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 };
49281
+ var HttpSharingClient = class {
49282
+ http = inject(HttpService);
49283
+ groups = () => this.http.get("sharing", ["group"]).pipe(map((reply) => reply.groups ?? []));
49284
+ searchUsers = (q) => this.http.get("user", ["search"], "v2", {
49285
+ q,
49286
+ count: 8
49287
+ }).pipe(map((reply) => reply.users ?? []));
49288
+ users = (ids) => ids.length ? forkJoin(ids.map((id) => this.http.put("user", ["uid", id]).pipe(map((reply) => reply.user ?? { id }), catchError(() => of({ id }))))) : of([]);
49289
+ audience = (source) => this.http.get("sharing", ["audience", source]);
49290
+ saveAudience = (source, audience) => this.http.put("sharing", ["audience", source], audience);
49291
+ };
49292
+ const SHARING_CLIENT = new InjectionToken("SHARING_CLIENT", {
49293
+ providedIn: "root",
49294
+ factory: () => new HttpSharingClient()
49295
+ });
49296
+ const DEFAULT_AUDIENCE = {
49297
+ level: "private",
49298
+ uids: [],
49299
+ groupIds: []
49300
+ };
49301
+ const AUDIENCE_ICONS = {
49302
+ public: "eye",
49303
+ private: "lock",
49304
+ with: "users",
49305
+ without: "eye_close"
49306
+ };
49307
+ const picksMembers = (level) => level === "with" || level === "without";
49308
+ const withLevel = (audience, level) => picksMembers(level) ? {
49309
+ ...audience,
49310
+ level
49311
+ } : {
49312
+ level,
49313
+ uids: [],
49314
+ groupIds: []
49315
+ };
49316
+ const toggle = (list, id) => list.includes(id) ? list.filter((x) => x !== id) : [...list, id];
49317
+ const toggleUid = (audience, uid) => ({
49318
+ ...audience,
49319
+ uids: toggle(audience.uids, uid)
49320
+ });
49321
+ const toggleGroup = (audience, groupId) => ({
49322
+ ...audience,
49323
+ groupIds: toggle(audience.groupIds, groupId)
49324
+ });
49325
+ const pickCount = (audience) => picksMembers(audience.level) ? audience.uids.length + audience.groupIds.length : 0;
49326
+ const AUDIENCE_LEVELS = [
49327
+ "public",
49328
+ "private",
49329
+ "with",
49330
+ "without"
49331
+ ];
49332
+ var AudiencePickerBoxComponent = class AudiencePickerBoxComponent {
49333
+ audience = input(DEFAULT_AUDIENCE, ...ngDevMode ? [{ debugName: "audience" }] : /* istanbul ignore next */ []);
49334
+ levels = input(AUDIENCE_LEVELS, ...ngDevMode ? [{ debugName: "levels" }] : /* istanbul ignore next */ []);
49335
+ locked = input(false, ...ngDevMode ? [{ debugName: "locked" }] : /* istanbul ignore next */ []);
49336
+ client = input.required(...ngDevMode ? [{ debugName: "client" }] : /* istanbul ignore next */ []);
49337
+ changed = output();
49338
+ done = output();
49339
+ i18n = inject(TranslateService);
49340
+ query = signal("", ...ngDevMode ? [{ debugName: "query" }] : /* istanbul ignore next */ []);
49341
+ known = signal({}, ...ngDevMode ? [{ debugName: "known" }] : /* istanbul ignore next */ []);
49342
+ icons = AUDIENCE_ICONS;
49343
+ picksMembers = computed(() => picksMembers(this.audience().level), ...ngDevMode ? [{ debugName: "picksMembers" }] : /* istanbul ignore next */ []);
49344
+ groupsResource = rxResource({
49345
+ params: () => this.client(),
49346
+ stream: ({ params }) => params.groups()
49347
+ });
49348
+ groups = computed(() => this.groupsResource.value() ?? [], ...ngDevMode ? [{ debugName: "groups" }] : /* istanbul ignore next */ []);
49349
+ searchResource = rxResource({
49350
+ params: () => this.query().trim() || void 0,
49351
+ stream: ({ params }) => params ? this.client().searchUsers(params) : of([])
49352
+ });
49353
+ results = computed(() => this.searchResource.value() ?? [], ...ngDevMode ? [{ debugName: "results" }] : /* istanbul ignore next */ []);
49354
+ searchConfig = computed(() => ({
49355
+ type: InputType.TEXT,
49356
+ placeholder: this.i18n.translate("audience-search-people"),
49357
+ icon: "search"
49358
+ }), ...ngDevMode ? [{ debugName: "searchConfig" }] : /* istanbul ignore next */ []);
49359
+ constructor() {
49360
+ effect(() => {
49361
+ const hits = this.results();
49362
+ if (!hits.length) return;
49363
+ untracked(() => this.remember(hits));
49364
+ });
49365
+ effect(() => {
49366
+ const missing = this.audience().uids.filter((id) => !this.known()[id]);
49367
+ if (!missing.length) return;
49368
+ untracked(() => this.client().users(missing).subscribe((users) => this.remember(users)));
49369
+ });
49370
+ }
49371
+ name = (id) => {
49372
+ const user = this.known()[id];
49373
+ if (!user) return "…";
49374
+ return [user.firstName, user.lastName].filter(Boolean).join(" ") || (user.username ? `@${user.username}` : id);
49375
+ };
49376
+ isPicked = (id) => this.audience().uids.includes(id);
49377
+ hasGroup = (id) => this.audience().groupIds.includes(id);
49378
+ setLevel = (level) => {
49379
+ if (this.locked() || level === this.audience().level) return;
49380
+ this.changed.emit(withLevel(this.audience(), level));
49381
+ };
49382
+ flipUser = (uid) => {
49383
+ if (this.locked()) return;
49384
+ this.changed.emit(toggleUid(this.audience(), uid));
49385
+ };
49386
+ flipGroup = (groupId) => {
49387
+ if (this.locked()) return;
49388
+ this.changed.emit(toggleGroup(this.audience(), groupId));
49389
+ };
49390
+ remember = (users) => this.known.update((all) => ({
49391
+ ...all,
49392
+ ...Object.fromEntries(users.map((u) => [u.id, u]))
49393
+ }));
49394
+ static ɵfac = i0.ɵɵngDeclareFactory({
49395
+ minVersion: "12.0.0",
49396
+ version: "22.2.1",
49397
+ ngImport: i0,
49398
+ type: AudiencePickerBoxComponent,
49399
+ deps: [],
49400
+ target: i0.ɵɵFactoryTarget.Component
49401
+ });
49402
+ static ɵcmp = i0.ɵɵngDeclareComponent({
49403
+ minVersion: "17.0.0",
49404
+ version: "22.2.1",
49405
+ type: AudiencePickerBoxComponent,
49406
+ isStandalone: true,
49407
+ selector: "m-audience-picker-box",
49408
+ inputs: {
49409
+ audience: {
49410
+ classPropertyName: "audience",
49411
+ publicName: "audience",
49412
+ isSignal: true,
49413
+ isRequired: false,
49414
+ transformFunction: null
49415
+ },
49416
+ levels: {
49417
+ classPropertyName: "levels",
49418
+ publicName: "levels",
49419
+ isSignal: true,
49420
+ isRequired: false,
49421
+ transformFunction: null
49422
+ },
49423
+ locked: {
49424
+ classPropertyName: "locked",
49425
+ publicName: "locked",
49426
+ isSignal: true,
49427
+ isRequired: false,
49428
+ transformFunction: null
49429
+ },
49430
+ client: {
49431
+ classPropertyName: "client",
49432
+ publicName: "client",
49433
+ isSignal: true,
49434
+ isRequired: true,
49435
+ transformFunction: null
49436
+ }
49437
+ },
49438
+ outputs: {
49439
+ changed: "changed",
49440
+ done: "done"
49441
+ },
49442
+ ngImport: i0,
49443
+ 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",
49444
+ 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"],
49445
+ dependencies: [
49446
+ {
49447
+ kind: "component",
49448
+ type: ButtonComponent,
49449
+ selector: "m-button,m-one-button",
49450
+ inputs: [
49451
+ "config",
49452
+ "color",
49453
+ "labelClass",
49454
+ "fullWidth",
49455
+ "nav",
49456
+ "navParams",
49457
+ "href",
49458
+ "disabled",
49459
+ "variant",
49460
+ "name",
49461
+ "baseUrl",
49462
+ "one",
49463
+ "remote",
49464
+ "label",
49465
+ "noTranslate",
49466
+ "params",
49467
+ "noNative",
49468
+ "icon",
49469
+ "isRightIcon",
49470
+ "iconOnly",
49471
+ "stacked",
49472
+ "imgSrc",
49473
+ "nonClickable",
49474
+ "inverted",
49475
+ "isSubmit",
49476
+ "tabindex"
49477
+ ],
49478
+ outputs: ["configChange", "clicked"]
49479
+ },
49480
+ {
49481
+ kind: "component",
49482
+ type: IconComponent,
49483
+ selector: "m-icon, m-one-icon",
49484
+ inputs: [
49485
+ "config",
49486
+ "name",
49487
+ "color",
49488
+ "size",
49489
+ "one",
49490
+ "baseUrl",
49491
+ "remote"
49492
+ ],
49493
+ outputs: ["configChange"]
49494
+ },
49495
+ {
49496
+ kind: "component",
49497
+ type: TextInputComponent,
49498
+ selector: "m-text-input",
49499
+ inputs: [
49500
+ "value",
49501
+ "config",
49502
+ "required",
49503
+ "disabled",
49504
+ "invalid",
49505
+ "touched",
49506
+ "focused",
49507
+ "errors",
49508
+ "hideErrors"
49509
+ ],
49510
+ outputs: ["valueChange", "touchedChange"]
49511
+ },
49512
+ {
49513
+ kind: "pipe",
49514
+ type: TranslatePipe,
49515
+ name: "translate"
49516
+ }
49517
+ ],
49518
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
49519
+ });
49520
+ };
49521
+ i0.ɵɵngDeclareClassMetadata({
49522
+ minVersion: "12.0.0",
49523
+ version: "22.2.1",
49524
+ ngImport: i0,
49525
+ type: AudiencePickerBoxComponent,
49526
+ decorators: [{
49527
+ type: Component,
49528
+ args: [{
49529
+ selector: "m-audience-picker-box",
49530
+ imports: [
49531
+ ButtonComponent,
49532
+ IconComponent,
49533
+ TextInputComponent,
49534
+ TranslatePipe
49535
+ ],
49536
+ changeDetection: ChangeDetectionStrategy.OnPush,
49537
+ 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",
49538
+ 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"]
49539
+ }]
49540
+ }],
49541
+ ctorParameters: () => [],
49542
+ propDecorators: {
49543
+ audience: [{
49544
+ type: i0.Input,
49545
+ args: [{
49546
+ isSignal: true,
49547
+ alias: "audience",
49548
+ required: false
49549
+ }]
49550
+ }],
49551
+ levels: [{
49552
+ type: i0.Input,
49553
+ args: [{
49554
+ isSignal: true,
49555
+ alias: "levels",
49556
+ required: false
49557
+ }]
49558
+ }],
49559
+ locked: [{
49560
+ type: i0.Input,
49561
+ args: [{
49562
+ isSignal: true,
49563
+ alias: "locked",
49564
+ required: false
49565
+ }]
49566
+ }],
49567
+ client: [{
49568
+ type: i0.Input,
49569
+ args: [{
49570
+ isSignal: true,
49571
+ alias: "client",
49572
+ required: true
49573
+ }]
49574
+ }],
49575
+ changed: [{
49576
+ type: i0.Output,
49577
+ args: ["changed"]
49578
+ }],
49579
+ done: [{
49580
+ type: i0.Output,
49581
+ args: ["done"]
49582
+ }]
49583
+ }
49584
+ });
49585
+ var AudiencePickerComponent = class AudiencePickerComponent extends ConfigComponent {
49586
+ audience = model(...ngDevMode ? [void 0, { debugName: "audience" }] : /* istanbul ignore next */ []);
49587
+ source = input(...ngDevMode ? [void 0, { debugName: "source" }] : /* istanbul ignore next */ []);
49588
+ locked = input(false, ...ngDevMode ? [{ debugName: "locked" }] : /* istanbul ignore next */ []);
49589
+ labelled = input(...ngDevMode ? [void 0, { debugName: "labelled" }] : /* istanbul ignore next */ []);
49590
+ disabled = input(false, ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
49591
+ align = input(...ngDevMode ? [void 0, { debugName: "align" }] : /* istanbul ignore next */ []);
49592
+ subFolder = "audience_picker";
49593
+ open = signal(false, ...ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []);
49594
+ client = inject(SHARING_CLIENT);
49595
+ i18n = inject(TranslateService);
49596
+ selectorDir = viewChild(SelectorDirective, ...ngDevMode ? [{ debugName: "selectorDir" }] : /* istanbul ignore next */ []);
49597
+ sourceLocked = signal(false, ...ngDevMode ? [{ debugName: "sourceLocked" }] : /* istanbul ignore next */ []);
49598
+ pickerConfig = computed(() => this.config() ?? {}, ...ngDevMode ? [{ debugName: "pickerConfig" }] : /* istanbul ignore next */ []);
49599
+ current = computed(() => this.audience() ?? DEFAULT_AUDIENCE, ...ngDevMode ? [{ debugName: "current" }] : /* istanbul ignore next */ []);
49600
+ levels = computed(() => this.pickerConfig().levels ?? AUDIENCE_LEVELS, ...ngDevMode ? [{ debugName: "levels" }] : /* istanbul ignore next */ []);
49601
+ isLocked = computed(() => this.locked() || this.sourceLocked(), ...ngDevMode ? [{ debugName: "isLocked" }] : /* istanbul ignore next */ []);
49602
+ stored = rxResource({
49603
+ params: () => this.source(),
49604
+ stream: ({ params }) => this.client.audience(params)
49605
+ });
49606
+ summary = computed(() => {
49607
+ const audience = this.current();
49608
+ const count = pickCount(audience);
49609
+ const title = this.levelTitle(audience.level);
49610
+ return count ? `${title} · ${count}` : title;
49611
+ }, ...ngDevMode ? [{ debugName: "summary" }] : /* istanbul ignore next */ []);
49612
+ triggerConfig = computed(() => {
49613
+ const labelled = this.labelled() ?? this.pickerConfig().labelled ?? false;
49614
+ return {
49615
+ variant: "ghost",
49616
+ iconOnly: !labelled,
49617
+ icon: AUDIENCE_ICONS[this.current().level],
49618
+ label: labelled ? this.summary() : "audience-picker",
49619
+ noTranslate: labelled,
49620
+ disabled: this.disabled()
49621
+ };
49622
+ }, ...ngDevMode ? [{ debugName: "triggerConfig" }] : /* istanbul ignore next */ []);
49623
+ selectorConfig = computed(() => {
49624
+ if (this.isDesignMode || this.disabled()) return void 0;
49625
+ return {
49626
+ component: AudiencePickerBoxComponent,
49627
+ base: "m-audience-picker",
49628
+ width: this.pickerConfig().width ?? "320px",
49629
+ height: "auto",
49630
+ align: this.align() ?? this.pickerConfig().align,
49631
+ toggle: true,
49632
+ bindings: [
49633
+ inputBinding("audience", this.current),
49634
+ inputBinding("levels", this.levels),
49635
+ inputBinding("locked", this.isLocked),
49636
+ inputBinding("client", () => this.client),
49637
+ outputBinding("changed", (next) => this.apply(next)),
49638
+ outputBinding("done", () => this.selectorDir()?.close())
49639
+ ]
49640
+ };
49641
+ }, ...ngDevMode ? [{ debugName: "selectorConfig" }] : /* istanbul ignore next */ []);
49642
+ constructor() {
49643
+ super();
49644
+ effect(() => {
49645
+ const stored = this.stored.value();
49646
+ if (!stored) return;
49647
+ untracked(() => {
49648
+ this.audience.set(stored.audience);
49649
+ this.sourceLocked.set(stored.locked);
49650
+ });
49651
+ });
49652
+ }
49653
+ apply = (next) => {
49654
+ if (this.isLocked()) return;
49655
+ const previous = this.audience();
49656
+ this.audience.set(next);
49657
+ const source = this.source();
49658
+ if (!source) return;
49659
+ this.client.saveAudience(source, next).subscribe({
49660
+ next: (saved) => {
49661
+ this.audience.set(saved.audience);
49662
+ this.sourceLocked.set(saved.locked);
49663
+ },
49664
+ error: () => this.audience.set(previous)
49665
+ });
49666
+ };
49667
+ levelTitle = (level) => {
49668
+ switch (level) {
49669
+ case "public": return this.i18n.translate("audience-anyone");
49670
+ case "private": return this.i18n.translate("audience-only-me");
49671
+ case "with": return this.i18n.translate("audience-only-these");
49672
+ case "without": return this.i18n.translate("audience-everyone-except");
49673
+ }
49674
+ };
49675
+ static ɵfac = i0.ɵɵngDeclareFactory({
49676
+ minVersion: "12.0.0",
49677
+ version: "22.2.1",
49678
+ ngImport: i0,
49679
+ type: AudiencePickerComponent,
49680
+ deps: [],
49681
+ target: i0.ɵɵFactoryTarget.Component
49682
+ });
49683
+ static ɵcmp = i0.ɵɵngDeclareComponent({
49684
+ minVersion: "17.2.0",
49685
+ version: "22.2.1",
49686
+ type: AudiencePickerComponent,
49687
+ isStandalone: true,
49688
+ selector: "m-audience-picker, m-one-audience-picker",
49689
+ inputs: {
49690
+ audience: {
49691
+ classPropertyName: "audience",
49692
+ publicName: "audience",
49693
+ isSignal: true,
49694
+ isRequired: false,
49695
+ transformFunction: null
49696
+ },
49697
+ source: {
49698
+ classPropertyName: "source",
49699
+ publicName: "source",
49700
+ isSignal: true,
49701
+ isRequired: false,
49702
+ transformFunction: null
49703
+ },
49704
+ locked: {
49705
+ classPropertyName: "locked",
49706
+ publicName: "locked",
49707
+ isSignal: true,
49708
+ isRequired: false,
49709
+ transformFunction: null
49710
+ },
49711
+ labelled: {
49712
+ classPropertyName: "labelled",
49713
+ publicName: "labelled",
49714
+ isSignal: true,
49715
+ isRequired: false,
49716
+ transformFunction: null
49717
+ },
49718
+ disabled: {
49719
+ classPropertyName: "disabled",
49720
+ publicName: "disabled",
49721
+ isSignal: true,
49722
+ isRequired: false,
49723
+ transformFunction: null
49724
+ },
49725
+ align: {
49726
+ classPropertyName: "align",
49727
+ publicName: "align",
49728
+ isSignal: true,
49729
+ isRequired: false,
49730
+ transformFunction: null
49731
+ }
49732
+ },
49733
+ outputs: { audience: "audienceChange" },
49734
+ viewQueries: [{
49735
+ propertyName: "selectorDir",
49736
+ first: true,
49737
+ predicate: SelectorDirective,
49738
+ descendants: true,
49739
+ isSignal: true
49740
+ }],
49741
+ usesInheritance: true,
49742
+ ngImport: i0,
49743
+ template: `
49744
+ <m-one-button
49745
+ [config]="triggerConfig()"
49746
+ [mSelector]="selectorConfig()"
49747
+ (opened)="open.set(true)"
49748
+ (closed)="open.set(false)"
49749
+ />
49750
+ `,
49751
+ isInline: true,
49752
+ dependencies: [{
49753
+ kind: "component",
49754
+ type: ButtonComponent,
49755
+ selector: "m-button,m-one-button",
49756
+ inputs: [
49757
+ "config",
49758
+ "color",
49759
+ "labelClass",
49760
+ "fullWidth",
49761
+ "nav",
49762
+ "navParams",
49763
+ "href",
49764
+ "disabled",
49765
+ "variant",
49766
+ "name",
49767
+ "baseUrl",
49768
+ "one",
49769
+ "remote",
49770
+ "label",
49771
+ "noTranslate",
49772
+ "params",
49773
+ "noNative",
49774
+ "icon",
49775
+ "isRightIcon",
49776
+ "iconOnly",
49777
+ "stacked",
49778
+ "imgSrc",
49779
+ "nonClickable",
49780
+ "inverted",
49781
+ "isSubmit",
49782
+ "tabindex"
49783
+ ],
49784
+ outputs: ["configChange", "clicked"]
49785
+ }, {
49786
+ kind: "directive",
49787
+ type: SelectorDirective,
49788
+ selector: "[mSelector]",
49789
+ inputs: ["mSelector", "disabled"],
49790
+ outputs: ["opened", "closed"],
49791
+ exportAs: ["mSelector"]
49792
+ }],
49793
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
49794
+ });
49795
+ };
49796
+ i0.ɵɵngDeclareClassMetadata({
49797
+ minVersion: "12.0.0",
49798
+ version: "22.2.1",
49799
+ ngImport: i0,
49800
+ type: AudiencePickerComponent,
49801
+ decorators: [{
49802
+ type: Component,
49803
+ args: [{
49804
+ selector: "m-audience-picker, m-one-audience-picker",
49805
+ imports: [ButtonComponent, SelectorDirective],
49806
+ template: `
49807
+ <m-one-button
49808
+ [config]="triggerConfig()"
49809
+ [mSelector]="selectorConfig()"
49810
+ (opened)="open.set(true)"
49811
+ (closed)="open.set(false)"
49812
+ />
49813
+ `,
49814
+ changeDetection: ChangeDetectionStrategy.OnPush
49815
+ }]
49816
+ }],
49817
+ ctorParameters: () => [],
49818
+ propDecorators: {
49819
+ audience: [{
49820
+ type: i0.Input,
49821
+ args: [{
49822
+ isSignal: true,
49823
+ alias: "audience",
49824
+ required: false
49825
+ }]
49826
+ }, {
49827
+ type: i0.Output,
49828
+ args: ["audienceChange"]
49829
+ }],
49830
+ source: [{
49831
+ type: i0.Input,
49832
+ args: [{
49833
+ isSignal: true,
49834
+ alias: "source",
49835
+ required: false
49836
+ }]
49837
+ }],
49838
+ locked: [{
49839
+ type: i0.Input,
49840
+ args: [{
49841
+ isSignal: true,
49842
+ alias: "locked",
49843
+ required: false
49844
+ }]
49845
+ }],
49846
+ labelled: [{
49847
+ type: i0.Input,
49848
+ args: [{
49849
+ isSignal: true,
49850
+ alias: "labelled",
49851
+ required: false
49852
+ }]
49853
+ }],
49854
+ disabled: [{
49855
+ type: i0.Input,
49856
+ args: [{
49857
+ isSignal: true,
49858
+ alias: "disabled",
49859
+ required: false
49860
+ }]
49861
+ }],
49862
+ align: [{
49863
+ type: i0.Input,
49864
+ args: [{
49865
+ isSignal: true,
49866
+ alias: "align",
49867
+ required: false
49868
+ }]
49869
+ }],
49870
+ selectorDir: [{
49871
+ type: i0.ViewChild,
49872
+ args: [i0.forwardRef(() => SelectorDirective), { isSignal: true }]
49873
+ }]
49874
+ }
49875
+ });
49876
+ 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, 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, stringToColor, tailRouteOf, toAttrBool, toAttrNumber, toCssLength, toHostNavId, toLength, toLocalNavId, toggleGroup, toggleTreeGridRow, toggleUid, unfetchedPlatformNav, ungroupedDocActions, urlValidation, wcLocalBaseOf, wcTierOf, withLevel };
49249
49877
 
49250
49878
  //# sourceMappingURL=magmonium-one.mjs.map