@magmonium/one 0.4.50 → 0.4.52
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.
- package/assets/docs/en/app-release.md +14 -7
- package/fesm2022/{magmonium-one-attribute-value-CSl5Xeq1.mjs → magmonium-one-attribute-value-BobQXKUK.mjs} +3 -3
- package/fesm2022/{magmonium-one-attribute-value-CSl5Xeq1.mjs.map → magmonium-one-attribute-value-BobQXKUK.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-checkbox-BqCPBI1d.mjs → magmonium-one-base-checkbox-bwMjlhHR.mjs} +2 -2
- package/fesm2022/{magmonium-one-base-checkbox-BqCPBI1d.mjs.map → magmonium-one-base-checkbox-bwMjlhHR.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-dropdown-Dxo8Yd62.mjs → magmonium-one-base-dropdown-7XYsiJBX.mjs} +12 -12
- package/fesm2022/{magmonium-one-base-dropdown-Dxo8Yd62.mjs.map → magmonium-one-base-dropdown-7XYsiJBX.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-input-CsVND89n.mjs → magmonium-one-base-input-KRWQalNW.mjs} +2 -2
- package/fesm2022/{magmonium-one-base-input-CsVND89n.mjs.map → magmonium-one-base-input-KRWQalNW.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-text-CWf7J75v.mjs → magmonium-one-base-text-HyEol70U.mjs} +2 -2
- package/fesm2022/{magmonium-one-base-text-CWf7J75v.mjs.map → magmonium-one-base-text-HyEol70U.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-button-CJ1Gaaw-.mjs → magmonium-one-button-B1KCA8KO.mjs} +7 -7
- package/fesm2022/{magmonium-one-button-CJ1Gaaw-.mjs.map → magmonium-one-button-B1KCA8KO.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-checkbox-CS83TVYG.mjs → magmonium-one-checkbox-CbEdjmtz.mjs} +5 -5
- package/fesm2022/{magmonium-one-checkbox-CS83TVYG.mjs.map → magmonium-one-checkbox-CbEdjmtz.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-color-utl-td5Lij8L.mjs → magmonium-one-color-utl-Bd80JrEQ.mjs} +2 -2
- package/fesm2022/{magmonium-one-color-utl-td5Lij8L.mjs.map → magmonium-one-color-utl-Bd80JrEQ.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-directives-O1JyFBc3.mjs → magmonium-one-directives-C_i3gUFT.mjs} +4 -4
- package/fesm2022/{magmonium-one-directives-O1JyFBc3.mjs.map → magmonium-one-directives-C_i3gUFT.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-group-CYIO2BE-.mjs → magmonium-one-group-C7alQqSj.mjs} +7 -7
- package/fesm2022/{magmonium-one-group-CYIO2BE-.mjs.map → magmonium-one-group-C7alQqSj.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-header-7MmiF2rG.mjs → magmonium-one-header-CckG0DHr.mjs} +4 -4
- package/fesm2022/{magmonium-one-header-7MmiF2rG.mjs.map → magmonium-one-header-CckG0DHr.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-icon-DR7LgBc3.mjs → magmonium-one-icon-dAR6gd-q.mjs} +4 -4
- package/fesm2022/{magmonium-one-icon-DR7LgBc3.mjs.map → magmonium-one-icon-dAR6gd-q.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-image-editor-CkPeheGY.mjs → magmonium-one-image-editor-DHlktZ6z.mjs} +4 -4
- package/fesm2022/{magmonium-one-image-editor-CkPeheGY.mjs.map → magmonium-one-image-editor-DHlktZ6z.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-label-B2Rtuiyg.mjs → magmonium-one-label-B95NhEzQ.mjs} +2 -2
- package/fesm2022/{magmonium-one-label-B2Rtuiyg.mjs.map → magmonium-one-label-B95NhEzQ.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-m-ref-X9KgVe86.mjs → magmonium-one-m-ref-BdP7Kzhk.mjs} +2 -2
- package/fesm2022/{magmonium-one-m-ref-X9KgVe86.mjs.map → magmonium-one-m-ref-BdP7Kzhk.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-menu-Dstqv7P7.mjs → magmonium-one-menu-DmZJi88Y.mjs} +8 -8
- package/fesm2022/{magmonium-one-menu-Dstqv7P7.mjs.map → magmonium-one-menu-DmZJi88Y.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-multi-range-OzTdXSHR.mjs → magmonium-one-multi-range-BnWtK-O0.mjs} +3 -3
- package/fesm2022/{magmonium-one-multi-range-OzTdXSHR.mjs.map → magmonium-one-multi-range-BnWtK-O0.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-options-asset-BlrhLckD.mjs → magmonium-one-options-asset-By4-vPVk.mjs} +2 -2
- package/fesm2022/{magmonium-one-options-asset-BlrhLckD.mjs.map → magmonium-one-options-asset-By4-vPVk.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-otp-CkQohg0H.mjs → magmonium-one-otp-BOiv-9eT.mjs} +5 -5
- package/fesm2022/{magmonium-one-otp-CkQohg0H.mjs.map → magmonium-one-otp-BOiv-9eT.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-password-CLhWaUXK.mjs → magmonium-one-password-Bsv1wUIJ.mjs} +6 -6
- package/fesm2022/{magmonium-one-password-CLhWaUXK.mjs.map → magmonium-one-password-Bsv1wUIJ.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-radio-dZL0E4k_.mjs → magmonium-one-radio-BsQv0Wof.mjs} +3 -3
- package/fesm2022/{magmonium-one-radio-dZL0E4k_.mjs.map → magmonium-one-radio-BsQv0Wof.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-range-DLu5PhUN.mjs → magmonium-one-range-DPR659yG.mjs} +4 -4
- package/fesm2022/{magmonium-one-range-DLu5PhUN.mjs.map → magmonium-one-range-DPR659yG.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-selector-GGFfBf2O.mjs → magmonium-one-selector-CXZMCqmO.mjs} +4 -4
- package/fesm2022/{magmonium-one-selector-GGFfBf2O.mjs.map → magmonium-one-selector-CXZMCqmO.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-size-converter-BalJd7VH.mjs → magmonium-one-size-converter-BOLtxL8d.mjs} +6 -3
- package/fesm2022/magmonium-one-size-converter-BOLtxL8d.mjs.map +1 -0
- package/fesm2022/{magmonium-one-text-BPThK6-y.mjs → magmonium-one-text-Bo4XPBXB.mjs} +6 -6
- package/fesm2022/{magmonium-one-text-BPThK6-y.mjs.map → magmonium-one-text-Bo4XPBXB.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-text-output-Cg2dT_U_.mjs → magmonium-one-text-output-Dkx0i1iu.mjs} +4 -4
- package/fesm2022/{magmonium-one-text-output-Cg2dT_U_.mjs.map → magmonium-one-text-output-Dkx0i1iu.mjs.map} +1 -1
- package/fesm2022/magmonium-one-theme-Ce9i3H3R.mjs +1 -0
- package/fesm2022/{magmonium-one-toggle-DRG14zhR.mjs → magmonium-one-toggle-C5-GwMSQ.mjs} +3 -3
- package/fesm2022/{magmonium-one-toggle-DRG14zhR.mjs.map → magmonium-one-toggle-C5-GwMSQ.mjs.map} +1 -1
- package/fesm2022/magmonium-one.mjs +257 -106
- package/fesm2022/magmonium-one.mjs.map +1 -1
- package/package.json +1 -1
- package/types/magmonium-one.d.ts +135 -64
- package/fesm2022/magmonium-one-size-converter-BalJd7VH.mjs.map +0 -1
- package/fesm2022/magmonium-one-theme-CYT4pn5X.mjs +0 -1
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
import { t as __exportAll } from "./magmonium-one-rolldown-runtime-DpJrqANO.mjs";
|
|
2
|
-
import { $ as SEARCH_RESULTS_EVENT, A as isLocalhost, B as FOLDER_PICK_LISTENER, C as definedWcTierOf, D as wcLocalBaseOf, E as setWcTier, F as APP_LINK, G as LOADING_ACTIONS_REF, H as ICON_SOURCE, I as ASSET_BASE_URL, J as MODAL_STORE_REF, K as LOGIN_COMPONENT, L as AppAvailability, M as isUrlLocalhost, N as isWebComponent, O as wcTierOf, P as APP_CONTEXT_REF, Q as SEARCH_QUERY, R as AppRelationType, S as definedWcBundleOf, T as setWcLocalPort, U as IS_DESIGN_MODE, V as HOST_SESSION, W as IS_SIDE_PANEL, X as ONE_ASSET_BASE_URL, Y as NAV_STORE_REF, Z as OPTIONS_SOURCE, _ as StorageService, a as resolveSpacing, at as LAYOUT_ASSET_FOLDER, b as HttpService, c as TranslatePipe, ct as Size, d as browserLocale, et as TRANSLATION_SOURCE, f as escapeHtml, g as SharedStoreRegistry, h as AssetStore, i as resolveSize, it as FORM_ASSET_FOLDER, j as isTierPreview, k as getTierFromPreviewPath, l as TranslateService, m as miniMarkToHtml, n as isSize, nt as WC_BUNDLE, o as toCssLength, ot as Assets, p as miniMarkInlineToHtml, q as LOGIN_STORE, r as resolveIconSize, rt as WC_SEARCH_GROUPS, s as toLength, st as DEFAULT_SIZE, t as coerceSize, tt as USER_STORE_REF, u as BrowserLocaleService, v as isJson, w as recordDefinedWcTier, x as buildWcBaseUrl, y as ACCESS_DOMAINS, z as COMPONENT_INPUT_REGISTRY } from "./magmonium-one-size-converter-
|
|
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-
|
|
2
|
+
import { $ as SEARCH_RESULTS_EVENT, A as isLocalhost, B as FOLDER_PICK_LISTENER, C as definedWcTierOf, D as wcLocalBaseOf, E as setWcTier, F as APP_LINK, G as LOADING_ACTIONS_REF, H as ICON_SOURCE, I as ASSET_BASE_URL, J as MODAL_STORE_REF, K as LOGIN_COMPONENT, L as AppAvailability, M as isUrlLocalhost, N as isWebComponent, O as wcTierOf, P as APP_CONTEXT_REF, Q as SEARCH_QUERY, R as AppRelationType, S as definedWcBundleOf, T as setWcLocalPort, U as IS_DESIGN_MODE, V as HOST_SESSION, W as IS_SIDE_PANEL, X as ONE_ASSET_BASE_URL, Y as NAV_STORE_REF, Z as OPTIONS_SOURCE, _ as StorageService, a as resolveSpacing, at as LAYOUT_ASSET_FOLDER, b as HttpService, c as TranslatePipe, ct as Size, d as browserLocale, et as TRANSLATION_SOURCE, f as escapeHtml, g as SharedStoreRegistry, h as AssetStore, i as resolveSize, it as FORM_ASSET_FOLDER, j as isTierPreview, k as getTierFromPreviewPath, l as TranslateService, m as miniMarkToHtml, n as isSize, nt as WC_BUNDLE, o as toCssLength, ot as Assets, p as miniMarkInlineToHtml, q as LOGIN_STORE, r as resolveIconSize, rt as WC_SEARCH_GROUPS, s as toLength, st as DEFAULT_SIZE, t as coerceSize, tt as USER_STORE_REF, u as BrowserLocaleService, v as isJson, w as recordDefinedWcTier, x as buildWcBaseUrl, y as ACCESS_DOMAINS, z as COMPONENT_INPUT_REGISTRY } from "./magmonium-one-size-converter-BOLtxL8d.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-CXZMCqmO.mjs";
|
|
4
4
|
import { t as FileService } from "./magmonium-one-file.service-Bo06pU3_.mjs";
|
|
5
|
-
import { C as isLightAppColor, D as readableAppColor, E as normalizeAppColor, O as rebuildLogoGlyph, S as appLogoShadowColor, T as logoGlyphMaskUrl, _ as AppLogoState, a as calculateLuminance, b as LOGO_GLYPH_MAX_BYTES, c as hexToRgb, d as derivePropertyName, f as getProperty, g as APP_THEME_COLOR, h as APP_LOGO_SOURCE, i as deriveOppositeColor, k as ThemeDataService, 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, v as appThemeColorFactory, w as isReadableOn, x as appColorBrand, y as paintAppColor } from "./magmonium-one-color-utl-
|
|
6
|
-
import "./magmonium-one-theme-
|
|
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-
|
|
8
|
-
import { a as SIZE_CONTEXT, c as SHARED_ICONS, i as APP_LOGO_ICON, n as CustomIconClass, o as injectParentSize, r as IconComponent, s as provideSizeContext, t as CustomIconEditComponent } from "./magmonium-one-icon-
|
|
9
|
-
import { i as resolveConfigAsset, n as toAttrNumber, r as ConfigComponent, t as toAttrBool } from "./magmonium-one-attribute-value-
|
|
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-
|
|
11
|
-
import { t as MRefDirective } from "./magmonium-one-m-ref-
|
|
12
|
-
import { i as OptionsSourceDirective, n as normalizeAssetOptions, r as presetDefaultOption, t as assetOptions } from "./magmonium-one-options-asset-
|
|
5
|
+
import { C as isLightAppColor, D as readableAppColor, E as normalizeAppColor, O as rebuildLogoGlyph, S as appLogoShadowColor, T as logoGlyphMaskUrl, _ as AppLogoState, a as calculateLuminance, b as LOGO_GLYPH_MAX_BYTES, c as hexToRgb, d as derivePropertyName, f as getProperty, g as APP_THEME_COLOR, h as APP_LOGO_SOURCE, i as deriveOppositeColor, k as ThemeDataService, 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, v as appThemeColorFactory, w as isReadableOn, x as appColorBrand, y as paintAppColor } from "./magmonium-one-color-utl-Bd80JrEQ.mjs";
|
|
6
|
+
import "./magmonium-one-theme-Ce9i3H3R.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-B95NhEzQ.mjs";
|
|
8
|
+
import { a as SIZE_CONTEXT, c as SHARED_ICONS, i as APP_LOGO_ICON, n as CustomIconClass, o as injectParentSize, r as IconComponent, s as provideSizeContext, t as CustomIconEditComponent } from "./magmonium-one-icon-dAR6gd-q.mjs";
|
|
9
|
+
import { i as resolveConfigAsset, n as toAttrNumber, r as ConfigComponent, t as toAttrBool } from "./magmonium-one-attribute-value-BobQXKUK.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-B1KCA8KO.mjs";
|
|
11
|
+
import { t as MRefDirective } from "./magmonium-one-m-ref-BdP7Kzhk.mjs";
|
|
12
|
+
import { i as OptionsSourceDirective, n as normalizeAssetOptions, r as presetDefaultOption, t as assetOptions } from "./magmonium-one-options-asset-By4-vPVk.mjs";
|
|
13
13
|
import { t as InputType } from "./magmonium-one-input-DqHPorA1.mjs";
|
|
14
|
-
import { r as PLACED_CHECKBOX, t as CheckboxInputComponent } from "./magmonium-one-checkbox-
|
|
15
|
-
import { a as ToolTipDirective, c as DragListItemDirective, d as MarginDirective, f as PaddingDirective, i as PositionDirective, l as DragListDirective, n as stringToColor, o as FileUploadDirective, p as SPACING_INWARD, r as HighlightDirective, s as AutosizeDirective, t as MHeroColorDirective, u as DraggableDirective } from "./magmonium-one-directives-
|
|
16
|
-
import { t as HeaderComponent } from "./magmonium-one-header-
|
|
17
|
-
import { i as mergeUniqueWith, n as mergeUnique, r as mergeUniqueBy, t as ButtonGroupComponent } from "./magmonium-one-group-
|
|
18
|
-
import { n as ContextMenuBoxComponent, r as MenuComponent, t as ContextMenuComponent } from "./magmonium-one-menu-
|
|
19
|
-
import { t as BaseInputComponent } from "./magmonium-one-base-input-
|
|
20
|
-
import { i as getScrollParent, n as activeElementWithin, r as classListSignal, t as BaseTextInputComponent } from "./magmonium-one-base-text-
|
|
21
|
-
import { t as TextOutputComponent } from "./magmonium-one-text-output-
|
|
22
|
-
import { t as BaseCheckboxInputComponent } from "./magmonium-one-base-checkbox-
|
|
23
|
-
import { t as RadioInputComponent } from "./magmonium-one-radio-
|
|
24
|
-
import { t as TextInputComponent } from "./magmonium-one-text-
|
|
25
|
-
import { r as BaseArrayInputComponent, t as MultiRangeInputComponent } from "./magmonium-one-multi-range-
|
|
26
|
-
import { t as RangeInputComponent } from "./magmonium-one-range-
|
|
27
|
-
import { n as DROPDOWN_IMPORTS, r as DROPDOWN_TEMPLATE, t as BaseDropdownComponent } from "./magmonium-one-base-dropdown-
|
|
14
|
+
import { r as PLACED_CHECKBOX, t as CheckboxInputComponent } from "./magmonium-one-checkbox-CbEdjmtz.mjs";
|
|
15
|
+
import { a as ToolTipDirective, c as DragListItemDirective, d as MarginDirective, f as PaddingDirective, i as PositionDirective, l as DragListDirective, n as stringToColor, o as FileUploadDirective, p as SPACING_INWARD, r as HighlightDirective, s as AutosizeDirective, t as MHeroColorDirective, u as DraggableDirective } from "./magmonium-one-directives-C_i3gUFT.mjs";
|
|
16
|
+
import { t as HeaderComponent } from "./magmonium-one-header-CckG0DHr.mjs";
|
|
17
|
+
import { i as mergeUniqueWith, n as mergeUnique, r as mergeUniqueBy, t as ButtonGroupComponent } from "./magmonium-one-group-C7alQqSj.mjs";
|
|
18
|
+
import { n as ContextMenuBoxComponent, r as MenuComponent, t as ContextMenuComponent } from "./magmonium-one-menu-DmZJi88Y.mjs";
|
|
19
|
+
import { t as BaseInputComponent } from "./magmonium-one-base-input-KRWQalNW.mjs";
|
|
20
|
+
import { i as getScrollParent, n as activeElementWithin, r as classListSignal, t as BaseTextInputComponent } from "./magmonium-one-base-text-HyEol70U.mjs";
|
|
21
|
+
import { t as TextOutputComponent } from "./magmonium-one-text-output-Dkx0i1iu.mjs";
|
|
22
|
+
import { t as BaseCheckboxInputComponent } from "./magmonium-one-base-checkbox-bwMjlhHR.mjs";
|
|
23
|
+
import { t as RadioInputComponent } from "./magmonium-one-radio-BsQv0Wof.mjs";
|
|
24
|
+
import { t as TextInputComponent } from "./magmonium-one-text-Bo4XPBXB.mjs";
|
|
25
|
+
import { r as BaseArrayInputComponent, t as MultiRangeInputComponent } from "./magmonium-one-multi-range-BnWtK-O0.mjs";
|
|
26
|
+
import { t as RangeInputComponent } from "./magmonium-one-range-DPR659yG.mjs";
|
|
27
|
+
import { n as DROPDOWN_IMPORTS, r as DROPDOWN_TEMPLATE, t as BaseDropdownComponent } from "./magmonium-one-base-dropdown-7XYsiJBX.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";
|
|
@@ -744,12 +744,12 @@ var SectionFormItemComponent = class SectionFormItemComponent extends ConfigComp
|
|
|
744
744
|
try {
|
|
745
745
|
switch (type) {
|
|
746
746
|
case InputType.RADIO: {
|
|
747
|
-
const { RadioInputComponent } = await import("./magmonium-one-radio-
|
|
747
|
+
const { RadioInputComponent } = await import("./magmonium-one-radio-BsQv0Wof.mjs").then((n) => n.n);
|
|
748
748
|
this.createDynamicComponent(seq, RadioInputComponent);
|
|
749
749
|
break;
|
|
750
750
|
}
|
|
751
751
|
case InputType.TOGGLE: {
|
|
752
|
-
const { ToggleInputComponent } = await import("./magmonium-one-toggle-
|
|
752
|
+
const { ToggleInputComponent } = await import("./magmonium-one-toggle-C5-GwMSQ.mjs");
|
|
753
753
|
this.createDynamicComponent(seq, ToggleInputComponent, [], true);
|
|
754
754
|
break;
|
|
755
755
|
}
|
|
@@ -759,12 +759,12 @@ var SectionFormItemComponent = class SectionFormItemComponent extends ConfigComp
|
|
|
759
759
|
break;
|
|
760
760
|
}
|
|
761
761
|
case InputType.PASSWORD: {
|
|
762
|
-
const { PasswordInputComponent } = await import("./magmonium-one-password-
|
|
762
|
+
const { PasswordInputComponent } = await import("./magmonium-one-password-Bsv1wUIJ.mjs");
|
|
763
763
|
this.createDynamicComponent(seq, PasswordInputComponent);
|
|
764
764
|
break;
|
|
765
765
|
}
|
|
766
766
|
case InputType.OTP: {
|
|
767
|
-
const { OtpInputComponent } = await import("./magmonium-one-otp-
|
|
767
|
+
const { OtpInputComponent } = await import("./magmonium-one-otp-BOiv-9eT.mjs");
|
|
768
768
|
this.createDynamicComponent(seq, OtpInputComponent);
|
|
769
769
|
break;
|
|
770
770
|
}
|
|
@@ -774,7 +774,7 @@ var SectionFormItemComponent = class SectionFormItemComponent extends ConfigComp
|
|
|
774
774
|
break;
|
|
775
775
|
}
|
|
776
776
|
case InputType.CHECKBOX: {
|
|
777
|
-
const { CheckboxInputComponent } = await import("./magmonium-one-checkbox-
|
|
777
|
+
const { CheckboxInputComponent } = await import("./magmonium-one-checkbox-CbEdjmtz.mjs").then((n) => n.n);
|
|
778
778
|
this.createDynamicComponent(seq, CheckboxInputComponent, [], true);
|
|
779
779
|
break;
|
|
780
780
|
}
|
|
@@ -789,12 +789,12 @@ var SectionFormItemComponent = class SectionFormItemComponent extends ConfigComp
|
|
|
789
789
|
break;
|
|
790
790
|
}
|
|
791
791
|
case InputType.RANGE: {
|
|
792
|
-
const { RangeInputComponent } = await import("./magmonium-one-range-
|
|
792
|
+
const { RangeInputComponent } = await import("./magmonium-one-range-DPR659yG.mjs").then((n) => n.n);
|
|
793
793
|
this.createDynamicComponent(seq, RangeInputComponent);
|
|
794
794
|
break;
|
|
795
795
|
}
|
|
796
796
|
case InputType.MULTI_RANGE: {
|
|
797
|
-
const { MultiRangeInputComponent } = await import("./magmonium-one-multi-range-
|
|
797
|
+
const { MultiRangeInputComponent } = await import("./magmonium-one-multi-range-BnWtK-O0.mjs").then((n) => n.n);
|
|
798
798
|
this.createDynamicComponent(seq, MultiRangeInputComponent);
|
|
799
799
|
break;
|
|
800
800
|
}
|
|
@@ -845,7 +845,7 @@ var SectionFormItemComponent = class SectionFormItemComponent extends ConfigComp
|
|
|
845
845
|
break;
|
|
846
846
|
}
|
|
847
847
|
default: {
|
|
848
|
-
const { TextInputComponent } = await import("./magmonium-one-text-
|
|
848
|
+
const { TextInputComponent } = await import("./magmonium-one-text-Bo4XPBXB.mjs").then((n) => n.n);
|
|
849
849
|
this.createDynamicComponent(seq, TextInputComponent);
|
|
850
850
|
break;
|
|
851
851
|
}
|
|
@@ -13314,7 +13314,7 @@ const mInterceptor = (incoming, next) => {
|
|
|
13314
13314
|
const authBaseUrl = httpService.getAuthUrl();
|
|
13315
13315
|
const isBackend = incoming.url.startsWith(baseUrl) || incoming.url.startsWith(authBaseUrl);
|
|
13316
13316
|
const appLink = inject(APP_LINK)();
|
|
13317
|
-
const request = appLink && incoming.url.startsWith(baseUrl) ? incoming.clone({ setHeaders: { [CALLING_APP_HEADER]: appLink } }) : incoming;
|
|
13317
|
+
const request = appLink && incoming.url.startsWith(baseUrl) && !incoming.headers.has("X-Mag-App") ? incoming.clone({ setHeaders: { [CALLING_APP_HEADER]: appLink } }) : incoming;
|
|
13318
13318
|
const authenticate = injectAuthenticate();
|
|
13319
13319
|
const renewSession = injectRenewSession();
|
|
13320
13320
|
const hostSession = inject(HOST_SESSION);
|
|
@@ -13782,6 +13782,9 @@ function isNavRowsConfig(entry) {
|
|
|
13782
13782
|
function isNavInstanceConfig(entry) {
|
|
13783
13783
|
return typeof entry === "object" && "navInstance" in entry;
|
|
13784
13784
|
}
|
|
13785
|
+
function isNavCountConfig(entry) {
|
|
13786
|
+
return typeof entry === "object" && "navCount" in entry;
|
|
13787
|
+
}
|
|
13785
13788
|
function isNavVisibilityConfig(entry) {
|
|
13786
13789
|
return typeof entry === "object" && "navVisible" in entry;
|
|
13787
13790
|
}
|
|
@@ -14049,7 +14052,7 @@ const mergeTrail = (derived, override, derivedHeader) => {
|
|
|
14049
14052
|
};
|
|
14050
14053
|
};
|
|
14051
14054
|
function deriveBreadcrumb(params) {
|
|
14052
|
-
const { navId, navMap, anchor, breadcrumb, navMenu, hasOwnContent, dynamicRows, routeParams, instances, hidden = EMPTY_HIDDEN, transparent = EMPTY_HIDDEN } = params;
|
|
14055
|
+
const { navId, navMap, anchor, breadcrumb, navMenu, hasOwnContent, dynamicRows, routeParams, instances, hidden = EMPTY_HIDDEN, transparent = EMPTY_HIDDEN, counts } = params;
|
|
14053
14056
|
if (!navId) return emptyResult();
|
|
14054
14057
|
const instanceOf = (id) => {
|
|
14055
14058
|
const nav = navMap[id];
|
|
@@ -14088,12 +14091,20 @@ function deriveBreadcrumb(params) {
|
|
|
14088
14091
|
trail: derivedTrail,
|
|
14089
14092
|
header: derivedHeader
|
|
14090
14093
|
};
|
|
14094
|
+
const withCount = (entry) => {
|
|
14095
|
+
const badge = counts?.[entry.nav ?? entry.id];
|
|
14096
|
+
return badge ? {
|
|
14097
|
+
...entry,
|
|
14098
|
+
badge
|
|
14099
|
+
} : entry;
|
|
14100
|
+
};
|
|
14101
|
+
const menus = navMenu?.length && ownPanel ? navMenu : buildNavMenus(ownerId, navMap, anchor, dynamicRows, routeParams, instances, hidden, transparent);
|
|
14091
14102
|
return {
|
|
14092
14103
|
breadcrumb: {
|
|
14093
|
-
trail,
|
|
14094
|
-
header
|
|
14104
|
+
trail: (trail ?? []).map(withCount),
|
|
14105
|
+
header: withCount(header)
|
|
14095
14106
|
},
|
|
14096
|
-
navMenus:
|
|
14107
|
+
navMenus: menus.map(withCount)
|
|
14097
14108
|
};
|
|
14098
14109
|
}
|
|
14099
14110
|
const withOpenOutlets = (router, address) => {
|
|
@@ -14228,7 +14239,6 @@ const initialState$3 = {
|
|
|
14228
14239
|
menuNavId: void 0,
|
|
14229
14240
|
menuParams: void 0,
|
|
14230
14241
|
browsedApp: void 0,
|
|
14231
|
-
keepPanelOnPathChange: false,
|
|
14232
14242
|
panelPushed: false,
|
|
14233
14243
|
navScrolledDown: false,
|
|
14234
14244
|
visibilityAnswers: {},
|
|
@@ -14382,6 +14392,11 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
14382
14392
|
const hasMurl = computed(() => store.murl().length > 0, ...ngDevMode ? [{ debugName: "hasMurl" }] : /* istanbul ignore next */ []);
|
|
14383
14393
|
const isNavOpened = computed(() => hasMurl() || store.navOpenedByUser(), ...ngDevMode ? [{ debugName: "isNavOpened" }] : /* istanbul ignore next */ []);
|
|
14384
14394
|
const isMNavOpened = hasMurl;
|
|
14395
|
+
const isSideMenuOpen = computed(() => {
|
|
14396
|
+
if (!isNavOpened()) return false;
|
|
14397
|
+
const navId = id();
|
|
14398
|
+
return menuMounts().some(({ urlMode, link, appNavId }) => urlMode === "outlet" && !!link && (navId === appNavId || navId.startsWith(`${appNavId}_`)));
|
|
14399
|
+
}, ...ngDevMode ? [{ debugName: "isSideMenuOpen" }] : /* istanbul ignore next */ []);
|
|
14385
14400
|
const entryAt = (candidate) => {
|
|
14386
14401
|
const maps = navWidgetMaps ?? [];
|
|
14387
14402
|
const navId = candidate;
|
|
@@ -14439,6 +14454,16 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
14439
14454
|
}
|
|
14440
14455
|
return out;
|
|
14441
14456
|
}, ...ngDevMode ? [{ debugName: "dynamicInstances" }] : /* istanbul ignore next */ []);
|
|
14457
|
+
const navCounts = computed(() => {
|
|
14458
|
+
const out = {};
|
|
14459
|
+
for (const nav of Object.values(store.navMap())) {
|
|
14460
|
+
const hit = entryAt(nav.navId);
|
|
14461
|
+
if (!hit || !isNavCountConfig(hit.entry)) continue;
|
|
14462
|
+
const badge = hit.entry.navCount();
|
|
14463
|
+
if (badge) out[nav.navId] = badge;
|
|
14464
|
+
}
|
|
14465
|
+
return out;
|
|
14466
|
+
}, ...ngDevMode ? [{ debugName: "navCounts" }] : /* istanbul ignore next */ []);
|
|
14442
14467
|
const visibilityReads = computed(() => {
|
|
14443
14468
|
const params = panelParams();
|
|
14444
14469
|
const out = [];
|
|
@@ -14642,6 +14667,7 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
14642
14667
|
hidden: hiddenNavIds(),
|
|
14643
14668
|
transparent: transparentNavIds(),
|
|
14644
14669
|
routeParams: panelParams(),
|
|
14670
|
+
counts: navCounts(),
|
|
14645
14671
|
breadcrumb: menuConfig?.breadcramb?.() ?? (typeof widgetConfig?.breadcramb === "function" ? widgetConfig.breadcramb() : widgetConfig?.breadcramb),
|
|
14646
14672
|
navMenu: emittedMenu,
|
|
14647
14673
|
hasOwnContent: !!widgetConfig || !!emittedMenu?.length
|
|
@@ -14683,6 +14709,7 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
14683
14709
|
hasMurl,
|
|
14684
14710
|
isNavOpened,
|
|
14685
14711
|
isMNavOpened,
|
|
14712
|
+
isSideMenuOpen,
|
|
14686
14713
|
resolvedWidget,
|
|
14687
14714
|
searchAnswer,
|
|
14688
14715
|
searchLabel,
|
|
@@ -14718,23 +14745,32 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
14718
14745
|
const translateService = inject(TranslateService);
|
|
14719
14746
|
const router = store.router;
|
|
14720
14747
|
const mountOf = (navId) => mountFor(navId, untracked(() => store.allMounts()));
|
|
14748
|
+
const slotOfMount = (mount) => slotOf(mount.name, mount.appNavId, untracked(() => store.path()), untracked(() => store.outlets()), untracked(() => store.navMap()));
|
|
14721
14749
|
const addressFor = (navId, params) => renderAddress(navId, store.navMap(), {
|
|
14722
14750
|
navId: store.routeNavId() ?? "root",
|
|
14723
14751
|
path: store.path()
|
|
14724
14752
|
}, params);
|
|
14725
14753
|
const goToNav = (navId, params, options) => {
|
|
14726
14754
|
const willOpen = untracked(() => splitNavId(navId, store.navMap()).murl.length > 0);
|
|
14727
|
-
|
|
14728
|
-
|
|
14729
|
-
keepPanelOnPathChange: true
|
|
14730
|
-
});
|
|
14755
|
+
const keepPanel = !!options?.keepPanel || untracked(() => store.isNavOpened());
|
|
14756
|
+
if (keepPanel && !willOpen) patchState(store, { navOpenedByUser: true });
|
|
14731
14757
|
const mount = mountOf(navId);
|
|
14732
14758
|
if (mount?.navigate) {
|
|
14733
|
-
if (!options?.keepPanel)
|
|
14734
|
-
|
|
14735
|
-
|
|
14736
|
-
|
|
14737
|
-
|
|
14759
|
+
if (!options?.keepPanel) {
|
|
14760
|
+
const slot = keepPanel && slotOfMount(mount);
|
|
14761
|
+
patchState(store, slot === "side" ? {
|
|
14762
|
+
menuNavId: navId,
|
|
14763
|
+
menuParams: params,
|
|
14764
|
+
browsedApp: {
|
|
14765
|
+
name: mount.name,
|
|
14766
|
+
appNavId: mount.appNavId,
|
|
14767
|
+
slot
|
|
14768
|
+
}
|
|
14769
|
+
} : {
|
|
14770
|
+
menuNavId: void 0,
|
|
14771
|
+
browsedApp: void 0
|
|
14772
|
+
});
|
|
14773
|
+
}
|
|
14738
14774
|
const map = untracked(() => store.navMap());
|
|
14739
14775
|
const own = navIdToRoutePath(mount.appNavId, map);
|
|
14740
14776
|
const full = fillRoutePath(navId, map, params);
|
|
@@ -14814,6 +14850,9 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
14814
14850
|
menuNavId: void 0,
|
|
14815
14851
|
browsedApp: void 0
|
|
14816
14852
|
});
|
|
14853
|
+
dropMurl();
|
|
14854
|
+
};
|
|
14855
|
+
const dropMurl = () => {
|
|
14817
14856
|
if (!untracked(() => store.hasMurl())) return;
|
|
14818
14857
|
if (untracked(() => store.panelPushed())) {
|
|
14819
14858
|
patchState(store, { panelPushed: false });
|
|
@@ -14843,10 +14882,9 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
14843
14882
|
const outlets = outletsOf(router.url);
|
|
14844
14883
|
untracked(() => {
|
|
14845
14884
|
const pathChanged = path !== store.path();
|
|
14846
|
-
const keepPanel = store.keepPanelOnPathChange();
|
|
14847
14885
|
const browsed = store.browsedApp();
|
|
14848
14886
|
const slot = browsed && slotOf(browsed.name, browsed.appNavId, path, outlets, store.navMap());
|
|
14849
|
-
const
|
|
14887
|
+
const kept = !!browsed && !!slot && (slot !== browsed.slot || slot === "side");
|
|
14850
14888
|
patchState(store, {
|
|
14851
14889
|
path,
|
|
14852
14890
|
outlets,
|
|
@@ -14856,13 +14894,11 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
14856
14894
|
}),
|
|
14857
14895
|
routeChain,
|
|
14858
14896
|
murl,
|
|
14859
|
-
menuNavId:
|
|
14860
|
-
browsedApp:
|
|
14897
|
+
menuNavId: kept ? store.menuNavId() : void 0,
|
|
14898
|
+
browsedApp: kept && browsed && slot ? {
|
|
14861
14899
|
...browsed,
|
|
14862
14900
|
slot
|
|
14863
14901
|
} : void 0,
|
|
14864
|
-
navOpenedByUser: pathChanged && !keepPanel && !moved ? false : store.navOpenedByUser(),
|
|
14865
|
-
keepPanelOnPathChange: false,
|
|
14866
14902
|
navScrolledDown: pathChanged ? false : store.navScrolledDown(),
|
|
14867
14903
|
panelPushed: murl.length ? store.panelPushed() : false
|
|
14868
14904
|
});
|
|
@@ -14872,11 +14908,20 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
14872
14908
|
const setSelected = (navId, params, options) => {
|
|
14873
14909
|
if (!navId) return closePanel();
|
|
14874
14910
|
if (!standsOn(navId, params)) return goToNav(navId, params, options);
|
|
14875
|
-
if (
|
|
14911
|
+
if (options?.keepPanel) {
|
|
14912
|
+
patchState(store, {
|
|
14913
|
+
navOpenedByUser: true,
|
|
14914
|
+
menuNavId: void 0
|
|
14915
|
+
});
|
|
14916
|
+
return;
|
|
14917
|
+
}
|
|
14918
|
+
if (!untracked(() => store.isNavOpened())) return;
|
|
14876
14919
|
patchState(store, {
|
|
14877
14920
|
navOpenedByUser: true,
|
|
14878
|
-
menuNavId: void 0
|
|
14921
|
+
menuNavId: void 0,
|
|
14922
|
+
browsedApp: void 0
|
|
14879
14923
|
});
|
|
14924
|
+
dropMurl();
|
|
14880
14925
|
};
|
|
14881
14926
|
const toggleMenu = () => {
|
|
14882
14927
|
if (untracked(() => store.isNavOpened())) {
|
|
@@ -14894,7 +14939,7 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
14894
14939
|
[appLink]: config
|
|
14895
14940
|
} }));
|
|
14896
14941
|
};
|
|
14897
|
-
const loadWcConfig = rxMethod(pipe(filter((appLink) => !!appLink), filter((appLink) => !untracked(() => !!store.wcConfigMap()[appLink])),
|
|
14942
|
+
const loadWcConfig = rxMethod(pipe(filter((appLink) => !!appLink), filter((appLink) => !untracked(() => !!store.wcConfigMap()[appLink])), mergeMap((appLink) => getNavService.loadWcConfig(appLink).pipe(tap((config) => untracked(() => setWcConfig(appLink, config)))))));
|
|
14898
14943
|
const setIdentity = (identity) => {
|
|
14899
14944
|
patchState(store, (state) => ({ identityMap: {
|
|
14900
14945
|
...state.identityMap,
|
|
@@ -14946,6 +14991,12 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
14946
14991
|
settleRoute();
|
|
14947
14992
|
};
|
|
14948
14993
|
const setMountRoute = (name, route) => {
|
|
14994
|
+
const keyOf = (r) => r && visibilityKey(r.navId, r.params);
|
|
14995
|
+
const browsed = untracked(() => store.browsedApp());
|
|
14996
|
+
if (browsed?.name === name && browsed.slot === "side" && keyOf(route) !== keyOf(untracked(() => store.mountRoutes())[name])) patchState(store, {
|
|
14997
|
+
menuNavId: route ? toHostNavId(route.navId, browsed.appNavId) : browsed.appNavId,
|
|
14998
|
+
menuParams: route?.params
|
|
14999
|
+
});
|
|
14949
15000
|
patchState(store, (state) => ({ mountRoutes: route ? {
|
|
14950
15001
|
...state.mountRoutes,
|
|
14951
15002
|
[name]: route
|
|
@@ -14976,7 +15027,7 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
14976
15027
|
};
|
|
14977
15028
|
const browseApp = (appNavId) => {
|
|
14978
15029
|
const mount = mountOf(appNavId);
|
|
14979
|
-
const slot = mount &&
|
|
15030
|
+
const slot = mount && slotOfMount(mount);
|
|
14980
15031
|
patchState(store, {
|
|
14981
15032
|
navOpenedByUser: true,
|
|
14982
15033
|
menuNavId: appNavId,
|
|
@@ -15232,9 +15283,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
15232
15283
|
});
|
|
15233
15284
|
function initMagmoniumApp({ backend, authUrl, socketUrl }) {
|
|
15234
15285
|
return () => {
|
|
15286
|
+
const httpService = inject(HttpService);
|
|
15287
|
+
const effectiveBackend = backend || "http://localhost:8000";
|
|
15288
|
+
if (!backend) console.warn("initMagmoniumApp: No backend URL provided, defaulting to http://localhost:8000. Check your environment configuration if this is unexpected.");
|
|
15289
|
+
const effectiveAuth = authUrl || effectiveBackend;
|
|
15290
|
+
httpService.setUrl(effectiveBackend);
|
|
15291
|
+
httpService.setAuthUrl(effectiveAuth);
|
|
15235
15292
|
inject(FreezeService);
|
|
15236
15293
|
const hostSession = inject(HOST_SESSION);
|
|
15237
|
-
const httpService = inject(HttpService);
|
|
15238
15294
|
const translateService = inject(TranslateService);
|
|
15239
15295
|
const themeStore = inject(ThemeStore);
|
|
15240
15296
|
const loginStore = inject(LOGIN_STORE);
|
|
@@ -15249,11 +15305,6 @@ function initMagmoniumApp({ backend, authUrl, socketUrl }) {
|
|
|
15249
15305
|
SharedStoreRegistry.setAppLogoState(inject(AppLogoState));
|
|
15250
15306
|
if (navStore) SharedStoreRegistry.setNavStore(navStore);
|
|
15251
15307
|
if (loginStore) SharedStoreRegistry.setLoginStore(loginStore);
|
|
15252
|
-
const effectiveBackend = backend || "http://localhost:8000";
|
|
15253
|
-
if (!backend) console.warn("initMagmoniumApp: No backend URL provided, defaulting to http://localhost:8000. Check your environment configuration if this is unexpected.");
|
|
15254
|
-
const effectiveAuth = authUrl || effectiveBackend;
|
|
15255
|
-
httpService.setUrl(effectiveBackend);
|
|
15256
|
-
httpService.setAuthUrl(effectiveAuth);
|
|
15257
15308
|
themeStore.init();
|
|
15258
15309
|
if (socketUrl) {
|
|
15259
15310
|
const socketStore = inject(SocketStore);
|
|
@@ -16677,6 +16728,7 @@ var SectionHeaderComponent = class SectionHeaderComponent {
|
|
|
16677
16728
|
extraData = input(...ngDevMode ? [void 0, { debugName: "extraData" }] : /* istanbul ignore next */ []);
|
|
16678
16729
|
align = input(void 0, ...ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []);
|
|
16679
16730
|
alignment = computed(() => this.align() ?? "left", ...ngDevMode ? [{ debugName: "alignment" }] : /* istanbul ignore next */ []);
|
|
16731
|
+
badge = input(...ngDevMode ? [void 0, { debugName: "badge" }] : /* istanbul ignore next */ []);
|
|
16680
16732
|
showBack = input(false, ...ngDevMode ? [{ debugName: "showBack" }] : /* istanbul ignore next */ []);
|
|
16681
16733
|
actionButton = input(...ngDevMode ? [void 0, { debugName: "actionButton" }] : /* istanbul ignore next */ []);
|
|
16682
16734
|
actionLabel = input(...ngDevMode ? [void 0, { debugName: "actionLabel" }] : /* istanbul ignore next */ []);
|
|
@@ -16707,6 +16759,11 @@ var SectionHeaderComponent = class SectionHeaderComponent {
|
|
|
16707
16759
|
variant: "ghost"
|
|
16708
16760
|
};
|
|
16709
16761
|
}, ...ngDevMode ? [{ debugName: "actionConfig" }] : /* istanbul ignore next */ []);
|
|
16762
|
+
badgeConfig = computed(() => {
|
|
16763
|
+
if (!this.badge()?.count) return void 0;
|
|
16764
|
+
return { variant: this.badge()?.variant ?? "danger" };
|
|
16765
|
+
}, ...ngDevMode ? [{ debugName: "badgeConfig" }] : /* istanbul ignore next */ []);
|
|
16766
|
+
badgeText = computed(() => formatBadgeCount(this.badge()?.count), ...ngDevMode ? [{ debugName: "badgeText" }] : /* istanbul ignore next */ []);
|
|
16710
16767
|
accordion = computed(() => this.sectionContext?.accordion?.() ?? null, ...ngDevMode ? [{ debugName: "accordion" }] : /* istanbul ignore next */ []);
|
|
16711
16768
|
toggleIconName = computed(() => {
|
|
16712
16769
|
const accordion = this.accordion();
|
|
@@ -16839,6 +16896,13 @@ var SectionHeaderComponent = class SectionHeaderComponent {
|
|
|
16839
16896
|
isRequired: false,
|
|
16840
16897
|
transformFunction: null
|
|
16841
16898
|
},
|
|
16899
|
+
badge: {
|
|
16900
|
+
classPropertyName: "badge",
|
|
16901
|
+
publicName: "badge",
|
|
16902
|
+
isSignal: true,
|
|
16903
|
+
isRequired: false,
|
|
16904
|
+
transformFunction: null
|
|
16905
|
+
},
|
|
16842
16906
|
showBack: {
|
|
16843
16907
|
classPropertyName: "showBack",
|
|
16844
16908
|
publicName: "showBack",
|
|
@@ -16901,8 +16965,8 @@ var SectionHeaderComponent = class SectionHeaderComponent {
|
|
|
16901
16965
|
classAttribute: "m-section-header"
|
|
16902
16966
|
},
|
|
16903
16967
|
ngImport: i0,
|
|
16904
|
-
template: "<!-- One declaration of the row, rendered by whichever branch `spacing` picks.\n Hoisted into a template rather than written twice: an `<ng-content>` may\n appear once per selector in a component, so the duplicated copy caught\n nothing and a header projecting a title rendered it in the `spacing`\n branch alone. -->\n<ng-template #body>\n @if (accordion(); as accordionRef) {\n <div\n class=\"section-header__toggle\"\n [class.section-header__toggle--rotate]=\"toggleRotates()\"\n [class.section-header__toggle--open]=\"accordionRef.isOpen()\"\n [id]=\"accordionRef.headerId\"\n [attr.aria-expanded]=\"accordionRef.isOpen()\"\n [attr.aria-controls]=\"accordionRef.bodyId\"\n >\n <m-button\n [config]=\"{ icon: toggleIconName(), iconOnly: true, variant: 'ghost' }\"\n (clicked)=\"onToggleClick()\" />\n </div>\n }\n @if (showBack()) {\n <div class=\"section-header__back\">\n <m-button\n [config]=\"{ icon: 'chevron-left', iconOnly: true }\"\n (clicked)=\"back.emit()\" />\n </div>\n } @else if (!label() && icon(); as iconName) {\n <!-- Only where no label is written. A header with one hands the icon to\n `m-header`, which draws it inside the heading's line box and so on the\n heading's own centre line. Beside a projected title there is no such\n box to borrow, so the glyph is boxed to the level's line box here and\n centred in it — otherwise it centres against the whole title column,\n which on the Canvas is the label slot's drop rect stacked above the\n heading. -->\n <div class=\"section-header__icon\">\n <m-icon [name]=\"iconName\" />\n </div>\n }\n <!-- An AppLogo projected in the icon's place, selected by tag like the\n FilterGroup below — boxed to the heading's line box the same way. -->\n <div class=\"section-header__logo\">\n <ng-content select=\"m-app-logo\" />\n </div>\n <div\n class=\"section-header__title\"\n [class.section-header__title--reverse]=\"reverse()\"\n >\n <!-- The title slot is the catch-all rather than a `[label]` one: every\n header already projecting a heading writes it unselected, and a\n selector here would drop that content on the floor. What the design\n page emits — `<span label>` — is caught by it too, nothing else\n claiming the node. -->\n <ng-content />\n <!-- The written label, drawn beside the slot rather than as its\n `ng-content` fallback. A fallback renders only while *nothing* is\n projected, and the design Canvas always projects the slot span —\n empty until a Control is dropped in it — so a fallback there would\n blank the label a header is still configured with. `label` answers\n instead, which no header projecting a title sets. -->\n @if (label()) {\n <m-header\n
|
|
16905
|
-
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)}}:host{display:flex;align-items:center;gap:.5rem;min-height:var(--section-header-min-height, calc(var(--section-header-py, .5rem) * 2 + 1.25rem));border-bottom:1px solid var(--m-backdrop-border);padding:var(--section-header-py, .85rem) var(--section-px, 1rem);width:100%;grid-column:1/-1}:host(.no-border){border-bottom:none}:host(.spacing){padding:0;width:100%}.section-header__container{width:100%;min-width:0;max-width:var(--m-section-header-max-width, none);margin-inline:0 auto}:host(.box-center) .section-header__container{margin-inline:auto}:host(.box-right) .section-header__container{margin-inline:auto 0}.section-header__inner{display:flex;align-items:center;gap:.5rem;width:100%;min-width:0}.section-header__inner .section-header__title{flex:1;min-width:0;gap:.5rem}:host(.spacing) .section-header__inner{padding:1rem 1.5rem}:host(.has-sidepanel){padding-right:50px}:host(.has-sidepanel.has-menu){padding-right:50px}:host(.spacing.has-sidepanel) .section-header__inner{padding-right:calc(1.5rem + 50px)}:host(.is-sticky-enabled){position:sticky;top:var(--m-section-header-sticky-top, 0);z-index:var(--m-section-header-sticky-z, 10)}:host(.is-sticky){background:color-mix(in srgb,var(--m-background) 80%,transparent);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%)}:host(.is-accordion){cursor:pointer}.section-header__toggle{display:flex;flex-shrink:0}.section-header__toggle.section-header__toggle--rotate m-button{display:flex;transition:transform .3s cubic-bezier(.4,0,.2,1)}.section-header__toggle.section-header__toggle--rotate.section-header__toggle--open m-button{transform:rotate(180deg)}.section-header__title{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}m-header{min-width:0}.section-header__title--reverse{flex-direction:column-reverse}.section-header__sub{font-size:.8rem;color:var(--m-text-secondary);line-height:1.2}:host(.align-center){--m-header-justify: center}:host(.align-right){--m-header-justify: flex-end}:host(.has-menu){padding-right:0}:host(.spacing.has-menu) .section-header__inner{padding-right:0}.section-header__filters,.section-header__logo{display:contents}.section-header__logo m-section-filter-group{width:auto;flex-shrink:0;border-bottom:none}.section-header__back{display:flex;align-items:center;flex-shrink:0}.section-header__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;align-self:flex-start;height:var(--m-section-header-icon-box, 1.5125rem)}.section-header__menu,.section-header__action{margin-left:auto;flex-shrink:0;display:flex;align-items:center}.section-header__action+.section-header__menu{margin-left:0}\n"],
|
|
16968
|
+
template: "<!-- One declaration of the row, rendered by whichever branch `spacing` picks.\n Hoisted into a template rather than written twice: an `<ng-content>` may\n appear once per selector in a component, so the duplicated copy caught\n nothing and a header projecting a title rendered it in the `spacing`\n branch alone. -->\n<ng-template #body>\n @if (accordion(); as accordionRef) {\n <div\n class=\"section-header__toggle\"\n [class.section-header__toggle--rotate]=\"toggleRotates()\"\n [class.section-header__toggle--open]=\"accordionRef.isOpen()\"\n [id]=\"accordionRef.headerId\"\n [attr.aria-expanded]=\"accordionRef.isOpen()\"\n [attr.aria-controls]=\"accordionRef.bodyId\"\n >\n <m-button\n [config]=\"{ icon: toggleIconName(), iconOnly: true, variant: 'ghost' }\"\n (clicked)=\"onToggleClick()\" />\n </div>\n }\n @if (showBack()) {\n <div class=\"section-header__back\">\n <m-button\n [config]=\"{ icon: 'chevron-left', iconOnly: true }\"\n (clicked)=\"back.emit()\" />\n </div>\n } @else if (!label() && icon(); as iconName) {\n <!-- Only where no label is written. A header with one hands the icon to\n `m-header`, which draws it inside the heading's line box and so on the\n heading's own centre line. Beside a projected title there is no such\n box to borrow, so the glyph is boxed to the level's line box here and\n centred in it — otherwise it centres against the whole title column,\n which on the Canvas is the label slot's drop rect stacked above the\n heading. -->\n <div class=\"section-header__icon\">\n <m-icon [name]=\"iconName\" />\n </div>\n }\n <!-- An AppLogo projected in the icon's place, selected by tag like the\n FilterGroup below — boxed to the heading's line box the same way. -->\n <div class=\"section-header__logo\">\n <ng-content select=\"m-app-logo\" />\n </div>\n <div\n class=\"section-header__title\"\n [class.section-header__title--reverse]=\"reverse()\"\n >\n <!-- The title slot is the catch-all rather than a `[label]` one: every\n header already projecting a heading writes it unselected, and a\n selector here would drop that content on the floor. What the design\n page emits — `<span label>` — is caught by it too, nothing else\n claiming the node. -->\n <ng-content />\n <!-- The written label, drawn beside the slot rather than as its\n `ng-content` fallback. A fallback renders only while *nothing* is\n projected, and the design Canvas always projects the slot span —\n empty until a Control is dropped in it — so a fallback there would\n blank the label a header is still configured with. `label` answers\n instead, which no header projecting a title sets. -->\n @if (label()) {\n <!-- The badge shares the heading's line rather than sitting at the row's\n end, where a header's `flex: 1` title box would push it: the count\n belongs to the word it counts. -->\n <div class=\"section-header__heading\">\n <m-header\n [level]=\"level()\"\n [label]=\"label()\"\n [icon]=\"icon()\"\n [params]=\"params()\"\n [noTranslate]=\"noTranslate()\" />\n @if (badgeConfig(); as badge) {\n <m-badge [config]=\"badge\">{{ badgeText() }}</m-badge>\n }\n </div>\n }\n @if (subText(); as sub) {\n <span class=\"section-header__sub\">{{ sub }}</span>\n }\n </div>\n <!-- A FilterGroup projected into the header row, selected by tag rather than\n by an attribute — the same shape a Section catches its `m-action` with.\n A header has room for one icon and not for a row, so a group landing\n here is squeezed by placement (ADR 0025); nothing here enforces that,\n the caller binding `[squeeze]` on the tag it projects. -->\n <div class=\"section-header__filters\">\n <ng-content select=\"m-section-filter-group\" />\n </div>\n @if (actionConfig(); as action) {\n <div class=\"section-header__action\">\n <m-button [config]=\"action\" (clicked)=\"actionClick.emit()\" />\n </div>\n }\n @if (hasMenu()) {\n <div class=\"section-header__menu\">\n <m-context-menu\n [config]=\"menu()\"\n [name]=\"menuName()\"\n [visibilityRule]=\"visibilityRule()\"\n [disableRule]=\"disableRule()\"\n [extraData]=\"extraData()\"\n (action)=\"action.emit($event)\"\n />\n </div>\n }\n</ng-template>\n\n<!-- Always the same two boxes, whether or not a `maxWidth` is in force. The\n border and the sticky backdrop live on the host and keep spanning the\n Section's full width; only this container narrows and is placed by the\n Section's `align`, so the heading lines up with the body under it. -->\n<div class=\"section-header__container\">\n <div class=\"section-header__inner\">\n <ng-container [ngTemplateOutlet]=\"body\" />\n </div>\n</div>\n",
|
|
16969
|
+
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)}}:host{display:flex;align-items:center;gap:.5rem;min-height:var(--section-header-min-height, calc(var(--section-header-py, .5rem) * 2 + 1.25rem));border-bottom:1px solid var(--m-backdrop-border);padding:var(--section-header-py, .85rem) var(--section-px, 1rem);width:100%;grid-column:1/-1}:host(.no-border){border-bottom:none}:host(.spacing){padding:0;width:100%}.section-header__container{width:100%;min-width:0;max-width:var(--m-section-header-max-width, none);margin-inline:0 auto}:host(.box-center) .section-header__container{margin-inline:auto}:host(.box-right) .section-header__container{margin-inline:auto 0}.section-header__inner{display:flex;align-items:center;gap:.5rem;width:100%;min-width:0}.section-header__inner .section-header__title{flex:1;min-width:0;gap:.5rem}:host(.spacing) .section-header__inner{padding:1rem 1.5rem}:host(.has-sidepanel){padding-right:50px}:host(.has-sidepanel.has-menu){padding-right:50px}:host(.spacing.has-sidepanel) .section-header__inner{padding-right:calc(1.5rem + 50px)}:host(.is-sticky-enabled){position:sticky;top:var(--m-section-header-sticky-top, 0);z-index:var(--m-section-header-sticky-z, 10)}:host(.is-sticky){background:color-mix(in srgb,var(--m-background) 80%,transparent);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%)}:host(.is-accordion){cursor:pointer}.section-header__toggle{display:flex;flex-shrink:0}.section-header__toggle.section-header__toggle--rotate m-button{display:flex;transition:transform .3s cubic-bezier(.4,0,.2,1)}.section-header__toggle.section-header__toggle--rotate.section-header__toggle--open m-button{transform:rotate(180deg)}.section-header__title{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}m-header{min-width:0}.section-header__title--reverse{flex-direction:column-reverse}.section-header__sub{font-size:.8rem;color:var(--m-text-secondary);line-height:1.2}.section-header__heading{display:flex;align-items:center;gap:.5rem;min-width:0}.section-header__heading m-badge{--m-badge-height: 1.5em;--m-badge-min-width: 1.5em;--m-badge-padding: 0 .3em;--m-badge-gap: .1em;flex:none}:host(.align-center){--m-header-justify: center}:host(.align-right){--m-header-justify: flex-end}:host(.has-menu){padding-right:0}:host(.spacing.has-menu) .section-header__inner{padding-right:0}.section-header__filters,.section-header__logo{display:contents}.section-header__logo m-section-filter-group{width:auto;flex-shrink:0;border-bottom:none}.section-header__back{display:flex;align-items:center;flex-shrink:0}.section-header__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;align-self:flex-start;height:var(--m-section-header-icon-box, 1.5125rem)}.section-header__menu,.section-header__action{margin-left:auto;flex-shrink:0;display:flex;align-items:center}.section-header__action+.section-header__menu{margin-left:0}\n"],
|
|
16906
16970
|
dependencies: [
|
|
16907
16971
|
{
|
|
16908
16972
|
kind: "directive",
|
|
@@ -16961,6 +17025,13 @@ var SectionHeaderComponent = class SectionHeaderComponent {
|
|
|
16961
17025
|
],
|
|
16962
17026
|
outputs: ["configChange"]
|
|
16963
17027
|
},
|
|
17028
|
+
{
|
|
17029
|
+
kind: "component",
|
|
17030
|
+
type: BadgeComponent,
|
|
17031
|
+
selector: "m-badge",
|
|
17032
|
+
inputs: ["config"],
|
|
17033
|
+
outputs: ["configChange"]
|
|
17034
|
+
},
|
|
16964
17035
|
{
|
|
16965
17036
|
kind: "component",
|
|
16966
17037
|
type: ButtonComponent,
|
|
@@ -17013,6 +17084,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
17013
17084
|
ContextMenuComponent,
|
|
17014
17085
|
HeaderComponent,
|
|
17015
17086
|
IconComponent,
|
|
17087
|
+
BadgeComponent,
|
|
17016
17088
|
ButtonComponent
|
|
17017
17089
|
],
|
|
17018
17090
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
@@ -17034,8 +17106,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
17034
17106
|
"[class.is-accordion]": "!!accordion()",
|
|
17035
17107
|
"(click)": "onHeaderClick($event)"
|
|
17036
17108
|
},
|
|
17037
|
-
template: "<!-- One declaration of the row, rendered by whichever branch `spacing` picks.\n Hoisted into a template rather than written twice: an `<ng-content>` may\n appear once per selector in a component, so the duplicated copy caught\n nothing and a header projecting a title rendered it in the `spacing`\n branch alone. -->\n<ng-template #body>\n @if (accordion(); as accordionRef) {\n <div\n class=\"section-header__toggle\"\n [class.section-header__toggle--rotate]=\"toggleRotates()\"\n [class.section-header__toggle--open]=\"accordionRef.isOpen()\"\n [id]=\"accordionRef.headerId\"\n [attr.aria-expanded]=\"accordionRef.isOpen()\"\n [attr.aria-controls]=\"accordionRef.bodyId\"\n >\n <m-button\n [config]=\"{ icon: toggleIconName(), iconOnly: true, variant: 'ghost' }\"\n (clicked)=\"onToggleClick()\" />\n </div>\n }\n @if (showBack()) {\n <div class=\"section-header__back\">\n <m-button\n [config]=\"{ icon: 'chevron-left', iconOnly: true }\"\n (clicked)=\"back.emit()\" />\n </div>\n } @else if (!label() && icon(); as iconName) {\n <!-- Only where no label is written. A header with one hands the icon to\n `m-header`, which draws it inside the heading's line box and so on the\n heading's own centre line. Beside a projected title there is no such\n box to borrow, so the glyph is boxed to the level's line box here and\n centred in it — otherwise it centres against the whole title column,\n which on the Canvas is the label slot's drop rect stacked above the\n heading. -->\n <div class=\"section-header__icon\">\n <m-icon [name]=\"iconName\" />\n </div>\n }\n <!-- An AppLogo projected in the icon's place, selected by tag like the\n FilterGroup below — boxed to the heading's line box the same way. -->\n <div class=\"section-header__logo\">\n <ng-content select=\"m-app-logo\" />\n </div>\n <div\n class=\"section-header__title\"\n [class.section-header__title--reverse]=\"reverse()\"\n >\n <!-- The title slot is the catch-all rather than a `[label]` one: every\n header already projecting a heading writes it unselected, and a\n selector here would drop that content on the floor. What the design\n page emits — `<span label>` — is caught by it too, nothing else\n claiming the node. -->\n <ng-content />\n <!-- The written label, drawn beside the slot rather than as its\n `ng-content` fallback. A fallback renders only while *nothing* is\n projected, and the design Canvas always projects the slot span —\n empty until a Control is dropped in it — so a fallback there would\n blank the label a header is still configured with. `label` answers\n instead, which no header projecting a title sets. -->\n @if (label()) {\n <m-header\n
|
|
17038
|
-
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)}}:host{display:flex;align-items:center;gap:.5rem;min-height:var(--section-header-min-height, calc(var(--section-header-py, .5rem) * 2 + 1.25rem));border-bottom:1px solid var(--m-backdrop-border);padding:var(--section-header-py, .85rem) var(--section-px, 1rem);width:100%;grid-column:1/-1}:host(.no-border){border-bottom:none}:host(.spacing){padding:0;width:100%}.section-header__container{width:100%;min-width:0;max-width:var(--m-section-header-max-width, none);margin-inline:0 auto}:host(.box-center) .section-header__container{margin-inline:auto}:host(.box-right) .section-header__container{margin-inline:auto 0}.section-header__inner{display:flex;align-items:center;gap:.5rem;width:100%;min-width:0}.section-header__inner .section-header__title{flex:1;min-width:0;gap:.5rem}:host(.spacing) .section-header__inner{padding:1rem 1.5rem}:host(.has-sidepanel){padding-right:50px}:host(.has-sidepanel.has-menu){padding-right:50px}:host(.spacing.has-sidepanel) .section-header__inner{padding-right:calc(1.5rem + 50px)}:host(.is-sticky-enabled){position:sticky;top:var(--m-section-header-sticky-top, 0);z-index:var(--m-section-header-sticky-z, 10)}:host(.is-sticky){background:color-mix(in srgb,var(--m-background) 80%,transparent);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%)}:host(.is-accordion){cursor:pointer}.section-header__toggle{display:flex;flex-shrink:0}.section-header__toggle.section-header__toggle--rotate m-button{display:flex;transition:transform .3s cubic-bezier(.4,0,.2,1)}.section-header__toggle.section-header__toggle--rotate.section-header__toggle--open m-button{transform:rotate(180deg)}.section-header__title{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}m-header{min-width:0}.section-header__title--reverse{flex-direction:column-reverse}.section-header__sub{font-size:.8rem;color:var(--m-text-secondary);line-height:1.2}:host(.align-center){--m-header-justify: center}:host(.align-right){--m-header-justify: flex-end}:host(.has-menu){padding-right:0}:host(.spacing.has-menu) .section-header__inner{padding-right:0}.section-header__filters,.section-header__logo{display:contents}.section-header__logo m-section-filter-group{width:auto;flex-shrink:0;border-bottom:none}.section-header__back{display:flex;align-items:center;flex-shrink:0}.section-header__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;align-self:flex-start;height:var(--m-section-header-icon-box, 1.5125rem)}.section-header__menu,.section-header__action{margin-left:auto;flex-shrink:0;display:flex;align-items:center}.section-header__action+.section-header__menu{margin-left:0}\n"]
|
|
17109
|
+
template: "<!-- One declaration of the row, rendered by whichever branch `spacing` picks.\n Hoisted into a template rather than written twice: an `<ng-content>` may\n appear once per selector in a component, so the duplicated copy caught\n nothing and a header projecting a title rendered it in the `spacing`\n branch alone. -->\n<ng-template #body>\n @if (accordion(); as accordionRef) {\n <div\n class=\"section-header__toggle\"\n [class.section-header__toggle--rotate]=\"toggleRotates()\"\n [class.section-header__toggle--open]=\"accordionRef.isOpen()\"\n [id]=\"accordionRef.headerId\"\n [attr.aria-expanded]=\"accordionRef.isOpen()\"\n [attr.aria-controls]=\"accordionRef.bodyId\"\n >\n <m-button\n [config]=\"{ icon: toggleIconName(), iconOnly: true, variant: 'ghost' }\"\n (clicked)=\"onToggleClick()\" />\n </div>\n }\n @if (showBack()) {\n <div class=\"section-header__back\">\n <m-button\n [config]=\"{ icon: 'chevron-left', iconOnly: true }\"\n (clicked)=\"back.emit()\" />\n </div>\n } @else if (!label() && icon(); as iconName) {\n <!-- Only where no label is written. A header with one hands the icon to\n `m-header`, which draws it inside the heading's line box and so on the\n heading's own centre line. Beside a projected title there is no such\n box to borrow, so the glyph is boxed to the level's line box here and\n centred in it — otherwise it centres against the whole title column,\n which on the Canvas is the label slot's drop rect stacked above the\n heading. -->\n <div class=\"section-header__icon\">\n <m-icon [name]=\"iconName\" />\n </div>\n }\n <!-- An AppLogo projected in the icon's place, selected by tag like the\n FilterGroup below — boxed to the heading's line box the same way. -->\n <div class=\"section-header__logo\">\n <ng-content select=\"m-app-logo\" />\n </div>\n <div\n class=\"section-header__title\"\n [class.section-header__title--reverse]=\"reverse()\"\n >\n <!-- The title slot is the catch-all rather than a `[label]` one: every\n header already projecting a heading writes it unselected, and a\n selector here would drop that content on the floor. What the design\n page emits — `<span label>` — is caught by it too, nothing else\n claiming the node. -->\n <ng-content />\n <!-- The written label, drawn beside the slot rather than as its\n `ng-content` fallback. A fallback renders only while *nothing* is\n projected, and the design Canvas always projects the slot span —\n empty until a Control is dropped in it — so a fallback there would\n blank the label a header is still configured with. `label` answers\n instead, which no header projecting a title sets. -->\n @if (label()) {\n <!-- The badge shares the heading's line rather than sitting at the row's\n end, where a header's `flex: 1` title box would push it: the count\n belongs to the word it counts. -->\n <div class=\"section-header__heading\">\n <m-header\n [level]=\"level()\"\n [label]=\"label()\"\n [icon]=\"icon()\"\n [params]=\"params()\"\n [noTranslate]=\"noTranslate()\" />\n @if (badgeConfig(); as badge) {\n <m-badge [config]=\"badge\">{{ badgeText() }}</m-badge>\n }\n </div>\n }\n @if (subText(); as sub) {\n <span class=\"section-header__sub\">{{ sub }}</span>\n }\n </div>\n <!-- A FilterGroup projected into the header row, selected by tag rather than\n by an attribute — the same shape a Section catches its `m-action` with.\n A header has room for one icon and not for a row, so a group landing\n here is squeezed by placement (ADR 0025); nothing here enforces that,\n the caller binding `[squeeze]` on the tag it projects. -->\n <div class=\"section-header__filters\">\n <ng-content select=\"m-section-filter-group\" />\n </div>\n @if (actionConfig(); as action) {\n <div class=\"section-header__action\">\n <m-button [config]=\"action\" (clicked)=\"actionClick.emit()\" />\n </div>\n }\n @if (hasMenu()) {\n <div class=\"section-header__menu\">\n <m-context-menu\n [config]=\"menu()\"\n [name]=\"menuName()\"\n [visibilityRule]=\"visibilityRule()\"\n [disableRule]=\"disableRule()\"\n [extraData]=\"extraData()\"\n (action)=\"action.emit($event)\"\n />\n </div>\n }\n</ng-template>\n\n<!-- Always the same two boxes, whether or not a `maxWidth` is in force. The\n border and the sticky backdrop live on the host and keep spanning the\n Section's full width; only this container narrows and is placed by the\n Section's `align`, so the heading lines up with the body under it. -->\n<div class=\"section-header__container\">\n <div class=\"section-header__inner\">\n <ng-container [ngTemplateOutlet]=\"body\" />\n </div>\n</div>\n",
|
|
17110
|
+
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)}}:host{display:flex;align-items:center;gap:.5rem;min-height:var(--section-header-min-height, calc(var(--section-header-py, .5rem) * 2 + 1.25rem));border-bottom:1px solid var(--m-backdrop-border);padding:var(--section-header-py, .85rem) var(--section-px, 1rem);width:100%;grid-column:1/-1}:host(.no-border){border-bottom:none}:host(.spacing){padding:0;width:100%}.section-header__container{width:100%;min-width:0;max-width:var(--m-section-header-max-width, none);margin-inline:0 auto}:host(.box-center) .section-header__container{margin-inline:auto}:host(.box-right) .section-header__container{margin-inline:auto 0}.section-header__inner{display:flex;align-items:center;gap:.5rem;width:100%;min-width:0}.section-header__inner .section-header__title{flex:1;min-width:0;gap:.5rem}:host(.spacing) .section-header__inner{padding:1rem 1.5rem}:host(.has-sidepanel){padding-right:50px}:host(.has-sidepanel.has-menu){padding-right:50px}:host(.spacing.has-sidepanel) .section-header__inner{padding-right:calc(1.5rem + 50px)}:host(.is-sticky-enabled){position:sticky;top:var(--m-section-header-sticky-top, 0);z-index:var(--m-section-header-sticky-z, 10)}:host(.is-sticky){background:color-mix(in srgb,var(--m-background) 80%,transparent);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%)}:host(.is-accordion){cursor:pointer}.section-header__toggle{display:flex;flex-shrink:0}.section-header__toggle.section-header__toggle--rotate m-button{display:flex;transition:transform .3s cubic-bezier(.4,0,.2,1)}.section-header__toggle.section-header__toggle--rotate.section-header__toggle--open m-button{transform:rotate(180deg)}.section-header__title{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}m-header{min-width:0}.section-header__title--reverse{flex-direction:column-reverse}.section-header__sub{font-size:.8rem;color:var(--m-text-secondary);line-height:1.2}.section-header__heading{display:flex;align-items:center;gap:.5rem;min-width:0}.section-header__heading m-badge{--m-badge-height: 1.5em;--m-badge-min-width: 1.5em;--m-badge-padding: 0 .3em;--m-badge-gap: .1em;flex:none}:host(.align-center){--m-header-justify: center}:host(.align-right){--m-header-justify: flex-end}:host(.has-menu){padding-right:0}:host(.spacing.has-menu) .section-header__inner{padding-right:0}.section-header__filters,.section-header__logo{display:contents}.section-header__logo m-section-filter-group{width:auto;flex-shrink:0;border-bottom:none}.section-header__back{display:flex;align-items:center;flex-shrink:0}.section-header__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;align-self:flex-start;height:var(--m-section-header-icon-box, 1.5125rem)}.section-header__menu,.section-header__action{margin-left:auto;flex-shrink:0;display:flex;align-items:center}.section-header__action+.section-header__menu{margin-left:0}\n"]
|
|
17039
17111
|
}]
|
|
17040
17112
|
}],
|
|
17041
17113
|
propDecorators: {
|
|
@@ -17151,6 +17223,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
17151
17223
|
required: false
|
|
17152
17224
|
}]
|
|
17153
17225
|
}],
|
|
17226
|
+
badge: [{
|
|
17227
|
+
type: i0.Input,
|
|
17228
|
+
args: [{
|
|
17229
|
+
isSignal: true,
|
|
17230
|
+
alias: "badge",
|
|
17231
|
+
required: false
|
|
17232
|
+
}]
|
|
17233
|
+
}],
|
|
17154
17234
|
showBack: [{
|
|
17155
17235
|
type: i0.Input,
|
|
17156
17236
|
args: [{
|
|
@@ -21129,7 +21209,7 @@ var ColorPickerBoxComponent = class ColorPickerBoxComponent {
|
|
|
21129
21209
|
</m-section>
|
|
21130
21210
|
</div>`,
|
|
21131
21211
|
isInline: true,
|
|
21132
|
-
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)}}.color-picker-box{width:100%;box-sizing:border-box;background:color-mix(in srgb,var(--m-focus) 2%,var(--m-background));border:var(--m-input-border-width, 1px) solid var(--m-text-input-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)));border-radius:var(--m-input-radius, .5rem);overflow:hidden;box-shadow:0 .75rem 2rem
|
|
21212
|
+
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)}}.color-picker-box{width:100%;box-sizing:border-box;background:color-mix(in srgb,var(--m-focus) 2%,var(--m-background));border:var(--m-input-border-width, 1px) solid var(--m-text-input-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)));border-radius:var(--m-input-radius, .5rem);overflow:hidden;box-shadow:0 .75rem 2rem var(--m-backdrop-shadow);animation:color-picker-in .2s ease-out}.color-picker-box .color-picker-box-header{position:sticky;display:flex;flex-direction:row;top:0;left:0;width:100%;z-index:10;align-items:center;justify-content:space-between;background:color-mix(in srgb,var(--m-focus) 2%,var(--m-background));border-bottom:1px solid var(--m-text-input-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)))}.color-picker-box .color-picker-box-header .color-preview{height:2em;width:2em;border-radius:calc(var(--m-input-radius, .5rem) * .6);margin:.5em}.color-picker-box .color-picker-box-header .color-header{flex:1;padding:0 .5em}.color-picker-box .color-area{position:relative;width:100%;height:5em;overflow:hidden}.color-picker-box .color-area .color-base{position:absolute;inset:0;width:100%;height:100%;background:linear-gradient(180deg,#fff,#fff0,#000),linear-gradient(90deg,gray,#fff0);pointer-events:none}.color-picker-box .color-area .saturation-gradient{position:absolute;inset:0;background:linear-gradient(90deg,rgb(128,128,128) 0%,transparent 100%)}.color-picker-box .color-area .brightness-gradient{position:absolute;inset:0;background:linear-gradient(180deg,#ffffff 0%,transparent 50%,#000000 100%)}.color-picker-box .color-area .color-pointer{position:absolute;width:12px;height:12px;border:2px solid #fff;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0000004d;cursor:pointer;z-index:1}.color-picker-box .color-sliders{display:flex;flex-direction:column;gap:.5em;padding:.5em .75em;box-sizing:border-box}.color-picker-box .color-sliders .hue-slider,.color-picker-box .color-sliders .opacity-slider{height:.5em;position:relative;border-radius:.5em}.color-picker-box .color-sliders .hue-slider .pointer,.color-picker-box .color-sliders .opacity-slider .pointer{width:.5em;height:.5em;border-radius:50%;transform:translate(-50%,calc(-50% + 4px));box-shadow:0 1px 3px #0003;cursor:pointer;margin:0;padding:0;border:2px solid white;transition:scale .2s ease}.color-picker-box .color-sliders .hue-slider .pointer:hover,.color-picker-box .color-sliders .opacity-slider .pointer:hover{scale:1.2;box-shadow:0 2px 4px #0003}.color-picker-box .color-sliders .hue-slider{background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.color-picker-box .suggested-colors{padding:.375rem;box-sizing:border-box;width:100%}.color-picker-box .suggested-colors .suggested-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.375em;padding:.25em .375em;border-bottom:1px solid var(--m-text-input-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)))}.color-picker-box .suggested-colors .suggested-header span{font-size:.75em;font-weight:500;color:var(--m-input-color, var(--m-mm));display:flex;align-items:center;gap:.5em}.color-picker-box .suggested-colors .color-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(24px,1fr));gap:8px;width:100%;padding:.25rem}.color-picker-box .suggested-colors .color-grid .color-option{width:24px;height:24px;border-radius:.25rem;cursor:pointer;border:1px solid var(--m-text-input-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)));transition:transform .15s ease,box-shadow .15s ease;margin:auto;position:relative;padding:0}.color-picker-box .suggested-colors .color-grid .color-option:hover{transform:scale(1.1);z-index:1;box-shadow:0 2px 4px #0003}.color-picker-box .suggested-colors .color-grid .color-option:active{transform:scale(.95)}.color-picker-box .suggested-colors .color-grid .color-option[data-alpha]{background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:10px 10px;background-position:0 0,0 5px,5px -5px,-5px 0px}@keyframes color-picker-in{0%{opacity:0;transform:scale(.95) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}\n"],
|
|
21133
21213
|
dependencies: [
|
|
21134
21214
|
{
|
|
21135
21215
|
kind: "directive",
|
|
@@ -21190,6 +21270,7 @@ var ColorPickerBoxComponent = class ColorPickerBoxComponent {
|
|
|
21190
21270
|
"disableRule",
|
|
21191
21271
|
"extraData",
|
|
21192
21272
|
"align",
|
|
21273
|
+
"badge",
|
|
21193
21274
|
"showBack",
|
|
21194
21275
|
"actionButton",
|
|
21195
21276
|
"actionLabel",
|
|
@@ -21353,7 +21434,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
21353
21434
|
</m-section>
|
|
21354
21435
|
</div>`,
|
|
21355
21436
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
21356
|
-
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)}}.color-picker-box{width:100%;box-sizing:border-box;background:color-mix(in srgb,var(--m-focus) 2%,var(--m-background));border:var(--m-input-border-width, 1px) solid var(--m-text-input-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)));border-radius:var(--m-input-radius, .5rem);overflow:hidden;box-shadow:0 .75rem 2rem
|
|
21437
|
+
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)}}.color-picker-box{width:100%;box-sizing:border-box;background:color-mix(in srgb,var(--m-focus) 2%,var(--m-background));border:var(--m-input-border-width, 1px) solid var(--m-text-input-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)));border-radius:var(--m-input-radius, .5rem);overflow:hidden;box-shadow:0 .75rem 2rem var(--m-backdrop-shadow);animation:color-picker-in .2s ease-out}.color-picker-box .color-picker-box-header{position:sticky;display:flex;flex-direction:row;top:0;left:0;width:100%;z-index:10;align-items:center;justify-content:space-between;background:color-mix(in srgb,var(--m-focus) 2%,var(--m-background));border-bottom:1px solid var(--m-text-input-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)))}.color-picker-box .color-picker-box-header .color-preview{height:2em;width:2em;border-radius:calc(var(--m-input-radius, .5rem) * .6);margin:.5em}.color-picker-box .color-picker-box-header .color-header{flex:1;padding:0 .5em}.color-picker-box .color-area{position:relative;width:100%;height:5em;overflow:hidden}.color-picker-box .color-area .color-base{position:absolute;inset:0;width:100%;height:100%;background:linear-gradient(180deg,#fff,#fff0,#000),linear-gradient(90deg,gray,#fff0);pointer-events:none}.color-picker-box .color-area .saturation-gradient{position:absolute;inset:0;background:linear-gradient(90deg,rgb(128,128,128) 0%,transparent 100%)}.color-picker-box .color-area .brightness-gradient{position:absolute;inset:0;background:linear-gradient(180deg,#ffffff 0%,transparent 50%,#000000 100%)}.color-picker-box .color-area .color-pointer{position:absolute;width:12px;height:12px;border:2px solid #fff;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0000004d;cursor:pointer;z-index:1}.color-picker-box .color-sliders{display:flex;flex-direction:column;gap:.5em;padding:.5em .75em;box-sizing:border-box}.color-picker-box .color-sliders .hue-slider,.color-picker-box .color-sliders .opacity-slider{height:.5em;position:relative;border-radius:.5em}.color-picker-box .color-sliders .hue-slider .pointer,.color-picker-box .color-sliders .opacity-slider .pointer{width:.5em;height:.5em;border-radius:50%;transform:translate(-50%,calc(-50% + 4px));box-shadow:0 1px 3px #0003;cursor:pointer;margin:0;padding:0;border:2px solid white;transition:scale .2s ease}.color-picker-box .color-sliders .hue-slider .pointer:hover,.color-picker-box .color-sliders .opacity-slider .pointer:hover{scale:1.2;box-shadow:0 2px 4px #0003}.color-picker-box .color-sliders .hue-slider{background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.color-picker-box .suggested-colors{padding:.375rem;box-sizing:border-box;width:100%}.color-picker-box .suggested-colors .suggested-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.375em;padding:.25em .375em;border-bottom:1px solid var(--m-text-input-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)))}.color-picker-box .suggested-colors .suggested-header span{font-size:.75em;font-weight:500;color:var(--m-input-color, var(--m-mm));display:flex;align-items:center;gap:.5em}.color-picker-box .suggested-colors .color-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(24px,1fr));gap:8px;width:100%;padding:.25rem}.color-picker-box .suggested-colors .color-grid .color-option{width:24px;height:24px;border-radius:.25rem;cursor:pointer;border:1px solid var(--m-text-input-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)));transition:transform .15s ease,box-shadow .15s ease;margin:auto;position:relative;padding:0}.color-picker-box .suggested-colors .color-grid .color-option:hover{transform:scale(1.1);z-index:1;box-shadow:0 2px 4px #0003}.color-picker-box .suggested-colors .color-grid .color-option:active{transform:scale(.95)}.color-picker-box .suggested-colors .color-grid .color-option[data-alpha]{background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:10px 10px;background-position:0 0,0 5px,5px -5px,-5px 0px}@keyframes color-picker-in{0%{opacity:0;transform:scale(.95) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}\n"]
|
|
21357
21438
|
}]
|
|
21358
21439
|
}],
|
|
21359
21440
|
ctorParameters: () => [],
|
|
@@ -21819,12 +21900,12 @@ var WrapperInputComponent = class WrapperInputComponent extends ConfigComponent
|
|
|
21819
21900
|
const seq = ++this.dynamicSeq;
|
|
21820
21901
|
switch (this.config()?.type) {
|
|
21821
21902
|
case InputType.RADIO: {
|
|
21822
|
-
const { RadioInputComponent } = await import("./magmonium-one-radio-
|
|
21903
|
+
const { RadioInputComponent } = await import("./magmonium-one-radio-BsQv0Wof.mjs").then((n) => n.n);
|
|
21823
21904
|
this.createDynamicComponent(seq, RadioInputComponent);
|
|
21824
21905
|
break;
|
|
21825
21906
|
}
|
|
21826
21907
|
case InputType.TOGGLE: {
|
|
21827
|
-
const { ToggleInputComponent } = await import("./magmonium-one-toggle-
|
|
21908
|
+
const { ToggleInputComponent } = await import("./magmonium-one-toggle-C5-GwMSQ.mjs");
|
|
21828
21909
|
this.createDynamicComponent(seq, ToggleInputComponent, [], true);
|
|
21829
21910
|
break;
|
|
21830
21911
|
}
|
|
@@ -21834,12 +21915,12 @@ var WrapperInputComponent = class WrapperInputComponent extends ConfigComponent
|
|
|
21834
21915
|
break;
|
|
21835
21916
|
}
|
|
21836
21917
|
case InputType.PASSWORD: {
|
|
21837
|
-
const { PasswordInputComponent } = await import("./magmonium-one-password-
|
|
21918
|
+
const { PasswordInputComponent } = await import("./magmonium-one-password-Bsv1wUIJ.mjs");
|
|
21838
21919
|
this.createDynamicComponent(seq, PasswordInputComponent);
|
|
21839
21920
|
break;
|
|
21840
21921
|
}
|
|
21841
21922
|
case InputType.OTP: {
|
|
21842
|
-
const { OtpInputComponent } = await import("./magmonium-one-otp-
|
|
21923
|
+
const { OtpInputComponent } = await import("./magmonium-one-otp-BOiv-9eT.mjs");
|
|
21843
21924
|
this.createDynamicComponent(seq, OtpInputComponent);
|
|
21844
21925
|
break;
|
|
21845
21926
|
}
|
|
@@ -21849,7 +21930,7 @@ var WrapperInputComponent = class WrapperInputComponent extends ConfigComponent
|
|
|
21849
21930
|
break;
|
|
21850
21931
|
}
|
|
21851
21932
|
case InputType.CHECKBOX: {
|
|
21852
|
-
const { CheckboxInputComponent } = await import("./magmonium-one-checkbox-
|
|
21933
|
+
const { CheckboxInputComponent } = await import("./magmonium-one-checkbox-CbEdjmtz.mjs").then((n) => n.n);
|
|
21853
21934
|
this.createDynamicComponent(seq, CheckboxInputComponent, [], true);
|
|
21854
21935
|
break;
|
|
21855
21936
|
}
|
|
@@ -21864,12 +21945,12 @@ var WrapperInputComponent = class WrapperInputComponent extends ConfigComponent
|
|
|
21864
21945
|
break;
|
|
21865
21946
|
}
|
|
21866
21947
|
case InputType.RANGE: {
|
|
21867
|
-
const { RangeInputComponent } = await import("./magmonium-one-range-
|
|
21948
|
+
const { RangeInputComponent } = await import("./magmonium-one-range-DPR659yG.mjs").then((n) => n.n);
|
|
21868
21949
|
this.createDynamicComponent(seq, RangeInputComponent);
|
|
21869
21950
|
break;
|
|
21870
21951
|
}
|
|
21871
21952
|
case InputType.MULTI_RANGE: {
|
|
21872
|
-
const { MultiRangeInputComponent } = await import("./magmonium-one-multi-range-
|
|
21953
|
+
const { MultiRangeInputComponent } = await import("./magmonium-one-multi-range-BnWtK-O0.mjs").then((n) => n.n);
|
|
21873
21954
|
this.createDynamicComponent(seq, MultiRangeInputComponent);
|
|
21874
21955
|
break;
|
|
21875
21956
|
}
|
|
@@ -21920,7 +22001,7 @@ var WrapperInputComponent = class WrapperInputComponent extends ConfigComponent
|
|
|
21920
22001
|
break;
|
|
21921
22002
|
}
|
|
21922
22003
|
default: {
|
|
21923
|
-
const { TextInputComponent } = await import("./magmonium-one-text-
|
|
22004
|
+
const { TextInputComponent } = await import("./magmonium-one-text-Bo4XPBXB.mjs").then((n) => n.n);
|
|
21924
22005
|
this.createDynamicComponent(seq, TextInputComponent);
|
|
21925
22006
|
break;
|
|
21926
22007
|
}
|
|
@@ -24238,7 +24319,7 @@ var FileUploadInputComponent = class FileUploadInputComponent extends BaseInputC
|
|
|
24238
24319
|
openEditor = async (file, size) => {
|
|
24239
24320
|
const modalStore = this.modalStore;
|
|
24240
24321
|
if (!modalStore) return void 0;
|
|
24241
|
-
const { ImageEditorComponent } = await import("./magmonium-one-image-editor-
|
|
24322
|
+
const { ImageEditorComponent } = await import("./magmonium-one-image-editor-DHlktZ6z.mjs");
|
|
24242
24323
|
const ratio = String(this.config()?.ratio ?? "");
|
|
24243
24324
|
return new Promise((resolve) => {
|
|
24244
24325
|
const modalRef = new ModalRef();
|
|
@@ -28998,13 +29079,15 @@ var RemoteLoaderService = class RemoteLoaderService {
|
|
|
28998
29079
|
const config = await this.configOf(link);
|
|
28999
29080
|
return config.reason ? config : this.mount(config.config, useShadow, props, children);
|
|
29000
29081
|
};
|
|
29001
|
-
loadPluginFromLink = async (link, screen, props) => {
|
|
29082
|
+
loadPluginFromLink = async (link, screen, props, hostLink) => {
|
|
29002
29083
|
const loaded = await this.configOf(link);
|
|
29003
29084
|
if (loaded.reason) return loaded;
|
|
29004
29085
|
const config = loaded.config;
|
|
29005
|
-
const bundle = await this.loadBundle(config);
|
|
29006
|
-
if (bundle !== true) return bundle;
|
|
29007
29086
|
const tag = pluginTag(config.selector, screen);
|
|
29087
|
+
const rootless = config.kind === "plugin";
|
|
29088
|
+
if (rootless && !(config.plugins ?? []).some((p) => p.name === screen)) return { reason: "screen-not-found" };
|
|
29089
|
+
const bundle = await this.loadBundle(config, rootless ? tag : config.selector, hostLink);
|
|
29090
|
+
if (bundle !== true) return bundle;
|
|
29008
29091
|
if (!customElements.get(tag)) return { reason: "screen-not-found" };
|
|
29009
29092
|
const element = this.create(tag, props || {});
|
|
29010
29093
|
const { assetBaseUrl } = this.resolveUrls(config);
|
|
@@ -29047,7 +29130,7 @@ var RemoteLoaderService = class RemoteLoaderService {
|
|
|
29047
29130
|
config
|
|
29048
29131
|
} : { reason: "element-timeout" };
|
|
29049
29132
|
};
|
|
29050
|
-
loadBundle = async (config) => {
|
|
29133
|
+
loadBundle = async (config, waitFor = config.selector, hostLink) => {
|
|
29051
29134
|
if (this.loginStore && !this.loginStore.isLoggedIn()) {
|
|
29052
29135
|
console.warn(`Attempted to load component ${config.selector} without authentication`);
|
|
29053
29136
|
return {};
|
|
@@ -29055,18 +29138,18 @@ var RemoteLoaderService = class RemoteLoaderService {
|
|
|
29055
29138
|
const { scriptUrl } = this.resolveUrls(config);
|
|
29056
29139
|
if (!scriptUrl) return { reason: "script-failed" };
|
|
29057
29140
|
const tier = config.link && wcTierOf(config.link) || "status";
|
|
29058
|
-
const wasDefined = !!customElements.get(
|
|
29141
|
+
const wasDefined = !!customElements.get(waitFor);
|
|
29059
29142
|
const definedAs = definedWcTierOf(config.selector);
|
|
29060
29143
|
const sameBundle = !!config.componentFileName && definedWcBundleOf(config.selector) === config.componentFileName;
|
|
29061
29144
|
if (wasDefined && definedAs && definedAs !== tier && !sameBundle) return { reason: "tier-conflict" };
|
|
29062
29145
|
if (wasDefined && sameBundle) return true;
|
|
29063
29146
|
try {
|
|
29064
|
-
await this.loadScript(scriptUrl);
|
|
29147
|
+
await this.loadScript(scriptUrl, hostLink);
|
|
29065
29148
|
} catch {
|
|
29066
29149
|
return { reason: "script-failed" };
|
|
29067
29150
|
}
|
|
29068
29151
|
let timer;
|
|
29069
|
-
const defined = await Promise.race([customElements.whenDefined(
|
|
29152
|
+
const defined = await Promise.race([customElements.whenDefined(waitFor).then(() => true), new Promise((resolve) => {
|
|
29070
29153
|
timer = setTimeout(() => resolve(false), ELEMENT_TIMEOUT_MS);
|
|
29071
29154
|
})]);
|
|
29072
29155
|
clearTimeout(timer);
|
|
@@ -29074,7 +29157,7 @@ var RemoteLoaderService = class RemoteLoaderService {
|
|
|
29074
29157
|
if (!wasDefined) recordDefinedWcTier(config.selector, tier, config.componentFileName);
|
|
29075
29158
|
return true;
|
|
29076
29159
|
};
|
|
29077
|
-
async loadScript(url) {
|
|
29160
|
+
async loadScript(url, hostLink) {
|
|
29078
29161
|
if (document.querySelector(`script[data-wc-src="${url}"]`)) return;
|
|
29079
29162
|
if (!url.startsWith("http") || url.startsWith(window.location.origin)) return new Promise((resolve, reject) => {
|
|
29080
29163
|
const script = document.createElement("script");
|
|
@@ -29085,7 +29168,7 @@ var RemoteLoaderService = class RemoteLoaderService {
|
|
|
29085
29168
|
script.onerror = () => reject(/* @__PURE__ */ new Error(`Failed to load script: ${url}`));
|
|
29086
29169
|
document.head.appendChild(script);
|
|
29087
29170
|
});
|
|
29088
|
-
const blob = await firstValueFrom(this.httpService.blob(url));
|
|
29171
|
+
const blob = await firstValueFrom(this.httpService.blob(url, hostLink ? { [CALLING_APP_HEADER]: hostLink } : void 0));
|
|
29089
29172
|
const blobUrl = URL.createObjectURL(blob);
|
|
29090
29173
|
return new Promise((resolve, reject) => {
|
|
29091
29174
|
const script = document.createElement("script");
|
|
@@ -30624,6 +30707,7 @@ var PluginComponent = class PluginComponent {
|
|
|
30624
30707
|
...ngDevMode ? { debugName: "port" } : /* istanbul ignore next */ {},
|
|
30625
30708
|
transform: (value) => value === void 0 || value === null || value === "" ? void 0 : numberAttribute(value)
|
|
30626
30709
|
});
|
|
30710
|
+
hostLink = input(void 0, ...ngDevMode ? [{ debugName: "hostLink" }] : /* istanbul ignore next */ []);
|
|
30627
30711
|
inputs = input({}, ...ngDevMode ? [{ debugName: "inputs" }] : /* istanbul ignore next */ []);
|
|
30628
30712
|
inputChildren = contentChildren(PluginInputComponent, ...ngDevMode ? [{ debugName: "inputChildren" }] : /* istanbul ignore next */ []);
|
|
30629
30713
|
outputChildren = contentChildren(PluginOutputComponent, ...ngDevMode ? [{ debugName: "outputChildren" }] : /* istanbul ignore next */ []);
|
|
@@ -30636,7 +30720,7 @@ var PluginComponent = class PluginComponent {
|
|
|
30636
30720
|
loader = inject(RemoteLoaderService);
|
|
30637
30721
|
translateService = inject(TranslateService);
|
|
30638
30722
|
loginStore = inject(LOGIN_STORE, { optional: true });
|
|
30639
|
-
|
|
30723
|
+
appLink = inject(APP_LINK);
|
|
30640
30724
|
elementRef = inject(ElementRef);
|
|
30641
30725
|
loadedElement;
|
|
30642
30726
|
loadId = 0;
|
|
@@ -30649,6 +30733,7 @@ var PluginComponent = class PluginComponent {
|
|
|
30649
30733
|
const screen = this.screen();
|
|
30650
30734
|
const source = this.source();
|
|
30651
30735
|
const port = this.port();
|
|
30736
|
+
this.hostLink();
|
|
30652
30737
|
untracked(() => {
|
|
30653
30738
|
setWcTier(link, source === "published" ? void 0 : source);
|
|
30654
30739
|
setWcLocalPort(link, source === "local" ? port : void 0);
|
|
@@ -30675,12 +30760,13 @@ var PluginComponent = class PluginComponent {
|
|
|
30675
30760
|
const id = ++this.loadId;
|
|
30676
30761
|
this.dismount();
|
|
30677
30762
|
this.state.set("loading");
|
|
30763
|
+
const host = untracked(() => this.hostLink());
|
|
30678
30764
|
const result = await this.loader.loadPluginFromLink(link, screen, {
|
|
30679
30765
|
...untracked(() => this.values()),
|
|
30680
30766
|
lang: untracked(() => this.translateService.lang()),
|
|
30681
30767
|
pluginLink: link,
|
|
30682
|
-
hostLink: this.
|
|
30683
|
-
});
|
|
30768
|
+
hostLink: host ?? this.appLink()
|
|
30769
|
+
}, host);
|
|
30684
30770
|
if (id !== this.loadId) return;
|
|
30685
30771
|
if (!result.element) {
|
|
30686
30772
|
this.failure.set(result);
|
|
@@ -30746,6 +30832,13 @@ var PluginComponent = class PluginComponent {
|
|
|
30746
30832
|
isRequired: false,
|
|
30747
30833
|
transformFunction: null
|
|
30748
30834
|
},
|
|
30835
|
+
hostLink: {
|
|
30836
|
+
classPropertyName: "hostLink",
|
|
30837
|
+
publicName: "hostLink",
|
|
30838
|
+
isSignal: true,
|
|
30839
|
+
isRequired: false,
|
|
30840
|
+
transformFunction: null
|
|
30841
|
+
},
|
|
30749
30842
|
inputs: {
|
|
30750
30843
|
classPropertyName: "inputs",
|
|
30751
30844
|
publicName: "inputs",
|
|
@@ -30887,6 +30980,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
30887
30980
|
required: false
|
|
30888
30981
|
}]
|
|
30889
30982
|
}],
|
|
30983
|
+
hostLink: [{
|
|
30984
|
+
type: i0.Input,
|
|
30985
|
+
args: [{
|
|
30986
|
+
isSignal: true,
|
|
30987
|
+
alias: "hostLink",
|
|
30988
|
+
required: false
|
|
30989
|
+
}]
|
|
30990
|
+
}],
|
|
30890
30991
|
inputs: [{
|
|
30891
30992
|
type: i0.Input,
|
|
30892
30993
|
args: [{
|
|
@@ -38584,6 +38685,7 @@ var TimelineComponent = class TimelineComponent extends ConfigComponent {
|
|
|
38584
38685
|
"disableRule",
|
|
38585
38686
|
"extraData",
|
|
38586
38687
|
"align",
|
|
38688
|
+
"badge",
|
|
38587
38689
|
"showBack",
|
|
38588
38690
|
"actionButton",
|
|
38589
38691
|
"actionLabel",
|
|
@@ -38972,7 +39074,7 @@ var ScrollComponent = class ScrollComponent {
|
|
|
38972
39074
|
<div class="scroll__fade" [class.visible]="_hasFade()"></div>
|
|
38973
39075
|
`,
|
|
38974
39076
|
isInline: true,
|
|
38975
|
-
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)}}:host{display:block;flex:1;min-height:0;position:relative;overflow:hidden}.scroll__inner{height:100%;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}@media(max-width:1199px){.scroll__inner{scrollbar-width:none}.scroll__inner::-webkit-scrollbar{display:none}}@media(min-width:1200px){.scroll__inner{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.12) transparent}.scroll__inner::-webkit-scrollbar{width:3px}.scroll__inner::-webkit-scrollbar-track{background:transparent}.scroll__inner::-webkit-scrollbar-thumb{background:#0000001f;border-radius:2px;transition:background .2s}.scroll__inner::-webkit-scrollbar-thumb:hover{background:#00000047}}.scroll__fade{position:absolute;bottom:0;left:0;right:0;height:4rem;background:linear-gradient(to bottom,transparent,
|
|
39077
|
+
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)}}:host{display:block;flex:1;min-height:0;position:relative;overflow:hidden}.scroll__inner{height:100%;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}@media(max-width:1199px){.scroll__inner{scrollbar-width:none}.scroll__inner::-webkit-scrollbar{display:none}}@media(min-width:1200px){.scroll__inner{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.12) transparent}.scroll__inner::-webkit-scrollbar{width:3px}.scroll__inner::-webkit-scrollbar-track{background:transparent}.scroll__inner::-webkit-scrollbar-thumb{background:#0000001f;border-radius:2px;transition:background .2s}.scroll__inner::-webkit-scrollbar-thumb:hover{background:#00000047}}.scroll__fade{position:absolute;bottom:0;left:0;right:0;height:4rem;background:linear-gradient(to bottom,transparent,color-mix(in srgb,var(--m-background) 92%,transparent));pointer-events:none;opacity:0;transition:opacity .25s ease;z-index:1}.scroll__fade.visible{opacity:1}\n"],
|
|
38976
39078
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
38977
39079
|
});
|
|
38978
39080
|
};
|
|
@@ -38992,7 +39094,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
38992
39094
|
</div>
|
|
38993
39095
|
<div class="scroll__fade" [class.visible]="_hasFade()"></div>
|
|
38994
39096
|
`,
|
|
38995
|
-
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)}}:host{display:block;flex:1;min-height:0;position:relative;overflow:hidden}.scroll__inner{height:100%;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}@media(max-width:1199px){.scroll__inner{scrollbar-width:none}.scroll__inner::-webkit-scrollbar{display:none}}@media(min-width:1200px){.scroll__inner{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.12) transparent}.scroll__inner::-webkit-scrollbar{width:3px}.scroll__inner::-webkit-scrollbar-track{background:transparent}.scroll__inner::-webkit-scrollbar-thumb{background:#0000001f;border-radius:2px;transition:background .2s}.scroll__inner::-webkit-scrollbar-thumb:hover{background:#00000047}}.scroll__fade{position:absolute;bottom:0;left:0;right:0;height:4rem;background:linear-gradient(to bottom,transparent,
|
|
39097
|
+
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)}}:host{display:block;flex:1;min-height:0;position:relative;overflow:hidden}.scroll__inner{height:100%;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}@media(max-width:1199px){.scroll__inner{scrollbar-width:none}.scroll__inner::-webkit-scrollbar{display:none}}@media(min-width:1200px){.scroll__inner{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.12) transparent}.scroll__inner::-webkit-scrollbar{width:3px}.scroll__inner::-webkit-scrollbar-track{background:transparent}.scroll__inner::-webkit-scrollbar-thumb{background:#0000001f;border-radius:2px;transition:background .2s}.scroll__inner::-webkit-scrollbar-thumb:hover{background:#00000047}}.scroll__fade{position:absolute;bottom:0;left:0;right:0;height:4rem;background:linear-gradient(to bottom,transparent,color-mix(in srgb,var(--m-background) 92%,transparent));pointer-events:none;opacity:0;transition:opacity .25s ease;z-index:1}.scroll__fade.visible{opacity:1}\n"]
|
|
38996
39098
|
}]
|
|
38997
39099
|
}],
|
|
38998
39100
|
ctorParameters: () => [],
|
|
@@ -40673,7 +40775,7 @@ var PanelComponent = class PanelComponent {
|
|
|
40673
40775
|
</div>
|
|
40674
40776
|
`,
|
|
40675
40777
|
isInline: true,
|
|
40676
|
-
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)}}:host{display:block;height:100%}:host.is-nav-hidden{display:none}.side-panel{height:100%;background:var(--m-background);display:flex;flex-direction:column;overflow:hidden;position:relative;animation:panel-slide-right .3s cubic-bezier(.2,0,0,1) forwards;border-left:var(--m-input-border-width, 1px) solid var(--m-text-input-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)));box-shadow:-.75rem 0 2rem
|
|
40778
|
+
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)}}:host{display:block;height:100%}:host.is-nav-hidden{display:none}.side-panel{height:100%;background:var(--m-background);display:flex;flex-direction:column;overflow:hidden;position:relative;animation:panel-slide-right .3s cubic-bezier(.2,0,0,1) forwards;border-left:var(--m-input-border-width, 1px) solid var(--m-text-input-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)));box-shadow:-.75rem 0 2rem var(--m-backdrop-shadow)}.side-panel--docked{border-left:1px dashed var(--m-border);box-shadow:none}.side-panel--left{animation-name:panel-slide-left;border-left:none;border-right:var(--m-input-border-width, 1px) solid var(--m-text-input-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)));box-shadow:.75rem 0 2rem var(--m-backdrop-shadow)}.side-panel--left.side-panel--docked{border-left:none;border-right:1px dashed var(--m-border);box-shadow:none}.side-panel__close{position:absolute;top:0;right:0;padding:.25em;z-index:20}.side-panel__content{flex:1;display:flex;flex-direction:column;min-height:0;overflow-y:auto}@media(max-width:767px){.side-panel{animation-name:panel-slide-bottom;border-left:none;border-right:none;border-top:var(--m-input-border-width, 1px) solid var(--m-text-input-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)));box-shadow:0 -.75rem 2rem var(--m-backdrop-shadow);overflow-y:auto}}@keyframes panel-slide-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes panel-slide-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes panel-slide-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}\n"],
|
|
40677
40779
|
dependencies: [{
|
|
40678
40780
|
kind: "component",
|
|
40679
40781
|
type: ButtonComponent,
|
|
@@ -40747,7 +40849,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
40747
40849
|
useValue: true
|
|
40748
40850
|
}],
|
|
40749
40851
|
host: { "[class.is-nav-hidden]": "navOpen()" },
|
|
40750
|
-
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)}}:host{display:block;height:100%}:host.is-nav-hidden{display:none}.side-panel{height:100%;background:var(--m-background);display:flex;flex-direction:column;overflow:hidden;position:relative;animation:panel-slide-right .3s cubic-bezier(.2,0,0,1) forwards;border-left:var(--m-input-border-width, 1px) solid var(--m-text-input-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)));box-shadow:-.75rem 0 2rem
|
|
40852
|
+
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)}}:host{display:block;height:100%}:host.is-nav-hidden{display:none}.side-panel{height:100%;background:var(--m-background);display:flex;flex-direction:column;overflow:hidden;position:relative;animation:panel-slide-right .3s cubic-bezier(.2,0,0,1) forwards;border-left:var(--m-input-border-width, 1px) solid var(--m-text-input-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)));box-shadow:-.75rem 0 2rem var(--m-backdrop-shadow)}.side-panel--docked{border-left:1px dashed var(--m-border);box-shadow:none}.side-panel--left{animation-name:panel-slide-left;border-left:none;border-right:var(--m-input-border-width, 1px) solid var(--m-text-input-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)));box-shadow:.75rem 0 2rem var(--m-backdrop-shadow)}.side-panel--left.side-panel--docked{border-left:none;border-right:1px dashed var(--m-border);box-shadow:none}.side-panel__close{position:absolute;top:0;right:0;padding:.25em;z-index:20}.side-panel__content{flex:1;display:flex;flex-direction:column;min-height:0;overflow-y:auto}@media(max-width:767px){.side-panel{animation-name:panel-slide-bottom;border-left:none;border-right:none;border-top:var(--m-input-border-width, 1px) solid var(--m-text-input-border, color-mix(in srgb, var(--m-text) 18%, var(--m-background)));box-shadow:0 -.75rem 2rem var(--m-backdrop-shadow);overflow-y:auto}}@keyframes panel-slide-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes panel-slide-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes panel-slide-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}\n"]
|
|
40751
40853
|
}]
|
|
40752
40854
|
}],
|
|
40753
40855
|
propDecorators: {
|
|
@@ -42075,7 +42177,7 @@ var NavHeaderComponent = class NavHeaderComponent {
|
|
|
42075
42177
|
classAttribute: "m-nav-header"
|
|
42076
42178
|
},
|
|
42077
42179
|
ngImport: i0,
|
|
42078
|
-
template: "<m-section>\n @if (_isSearch() && _searchOpen()) {\n <!-- Searching: the field takes the row the trail was on, so the nav is\n hidden while there is something to type into. -->\n <m-section-search\n class=\"nav-header__search\"\n [(isOpen)]=\"_searchOpen\"\n [value]=\"_searchStore.query()\"\n [searchLabel]=\"_searchLabel()\"\n (searchChange)=\"_searchStore.updateQuery($event)\"\n />\n } @else if (_trail() || _isSearch()) {\n <!-- The nav's row, and the bar's toggle stands in it rather than in a row\n stacked on top of it. Both slots are written a single `@if` deep: a\n Section matches its projected slots by tag, and a node nested deeper\n falls through to the body instead. -->\n <m-section-back [back]=\"_hasParent()\" (navigate)=\"_navStore.back()\">\n @if (_trail(); as trail) {\n <m-nav-trail [config]=\"trail\" />\n }\n @if (_isSearch()) {\n <m-button\n class=\"nav-header__search-toggle\"\n [config]=\"_searchToggle\"\n (clicked)=\"_openSearch()\"\n />\n }\n </m-section-back>\n }\n\n @if (_user(); as user) {\n <m-user class=\"nav-header__user\" [id]=\"user.id\" [user]=\"user\" mRef=\"root_user\">\n <span class=\"nav-header__username\">@{{ user.username }}</span>\n </m-user>\n } @else if (_header(); as h) {\n @if (h.label) {\n <!-- The title follows its own Nav, as a menu row naming it would: the\n panel lists that Nav's rows, so its Page is the one they hang from.\n `role=\"button\"` also keeps the sheet's drag from starting on it. -->\n @if (h.appLogo; as logo) {\n <!-- A mounted app's header draws its AppLogo in the icon's place. -->\n <m-section-header\n class=\"nav-header__title\"\n role=\"button\"\n tabindex=\"0\"\n [label]=\"h.label\"\n (click)=\"_followHeader()\"\n (keydown.enter)=\"_followHeader()\"\n >\n <m-app-logo class=\"nav-header__app-logo\" [glyph]=\"logo.glyph\" [appColor]=\"logo.color\" [name]=\"logo.name\" />\n </m-section-header>\n } @else {\n <m-section-header\n class=\"nav-header__title\"\n role=\"button\"\n tabindex=\"0\"\n [icon]=\"h.icon\"\n [label]=\"h.label\"\n (click)=\"_followHeader()\"\n (keydown.enter)=\"_followHeader()\"\n />\n }\n }\n }\n</m-section>\n",
|
|
42180
|
+
template: "<m-section>\n @if (_isSearch() && _searchOpen()) {\n <!-- Searching: the field takes the row the trail was on, so the nav is\n hidden while there is something to type into. -->\n <m-section-search\n class=\"nav-header__search\"\n [(isOpen)]=\"_searchOpen\"\n [value]=\"_searchStore.query()\"\n [searchLabel]=\"_searchLabel()\"\n (searchChange)=\"_searchStore.updateQuery($event)\"\n />\n } @else if (_trail() || _isSearch()) {\n <!-- The nav's row, and the bar's toggle stands in it rather than in a row\n stacked on top of it. Both slots are written a single `@if` deep: a\n Section matches its projected slots by tag, and a node nested deeper\n falls through to the body instead. -->\n <m-section-back [back]=\"_hasParent()\" (navigate)=\"_navStore.back()\">\n @if (_trail(); as trail) {\n <m-nav-trail [config]=\"trail\" />\n }\n @if (_isSearch()) {\n <m-button\n class=\"nav-header__search-toggle\"\n [config]=\"_searchToggle\"\n (clicked)=\"_openSearch()\"\n />\n }\n </m-section-back>\n }\n\n @if (_user(); as user) {\n <m-user class=\"nav-header__user\" [id]=\"user.id\" [user]=\"user\" mRef=\"root_user\">\n <span class=\"nav-header__username\">@{{ user.username }}</span>\n </m-user>\n } @else if (_header(); as h) {\n @if (h.label) {\n <!-- The title follows its own Nav, as a menu row naming it would: the\n panel lists that Nav's rows, so its Page is the one they hang from.\n `role=\"button\"` also keeps the sheet's drag from starting on it. -->\n @if (h.appLogo; as logo) {\n <!-- A mounted app's header draws its AppLogo in the icon's place. -->\n <m-section-header\n class=\"nav-header__title\"\n role=\"button\"\n tabindex=\"0\"\n [label]=\"h.label\"\n [badge]=\"h.badge\"\n (click)=\"_followHeader()\"\n (keydown.enter)=\"_followHeader()\"\n >\n <m-app-logo class=\"nav-header__app-logo\" [glyph]=\"logo.glyph\" [appColor]=\"logo.color\" [name]=\"logo.name\" />\n </m-section-header>\n } @else {\n <m-section-header\n class=\"nav-header__title\"\n role=\"button\"\n tabindex=\"0\"\n [icon]=\"h.icon\"\n [label]=\"h.label\"\n [badge]=\"h.badge\"\n (click)=\"_followHeader()\"\n (keydown.enter)=\"_followHeader()\"\n />\n }\n }\n }\n</m-section>\n",
|
|
42079
42181
|
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)}}.nav-header__user{display:block;padding:1rem}.nav-header__username{font-size:.6875rem;font-weight:600;color:var(--m-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}m-section-search.nav-header__search{--_nav-row-height: var(--section-header-min-height, calc(var(--section-header-py, .5rem) * 2 + 1.25rem));min-height:var(--_nav-row-height);padding-block:0;--m-input-clear-height: calc(var(--_nav-row-height) - .5rem);--m-input-clear-min-height: calc(var(--_nav-row-height) - .5rem)}.nav-header__title{cursor:pointer}.nav-header__title:hover,.nav-header__title:focus-visible{background:color-mix(in srgb,var(--m-text) 8%,transparent);outline:none}.nav-header__title .nav-header__app-logo{flex-shrink:0;align-self:flex-start;width:var(--m-section-header-icon-box, 1.5125rem);height:var(--m-section-header-icon-box, 1.5125rem)}\n"],
|
|
42080
42182
|
dependencies: [
|
|
42081
42183
|
{
|
|
@@ -42120,6 +42222,7 @@ var NavHeaderComponent = class NavHeaderComponent {
|
|
|
42120
42222
|
"disableRule",
|
|
42121
42223
|
"extraData",
|
|
42122
42224
|
"align",
|
|
42225
|
+
"badge",
|
|
42123
42226
|
"showBack",
|
|
42124
42227
|
"actionButton",
|
|
42125
42228
|
"actionLabel",
|
|
@@ -42280,7 +42383,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
42280
42383
|
"[style.display]": "\"block\"",
|
|
42281
42384
|
"[style.--m-section-min-height]": "\"0\""
|
|
42282
42385
|
},
|
|
42283
|
-
template: "<m-section>\n @if (_isSearch() && _searchOpen()) {\n <!-- Searching: the field takes the row the trail was on, so the nav is\n hidden while there is something to type into. -->\n <m-section-search\n class=\"nav-header__search\"\n [(isOpen)]=\"_searchOpen\"\n [value]=\"_searchStore.query()\"\n [searchLabel]=\"_searchLabel()\"\n (searchChange)=\"_searchStore.updateQuery($event)\"\n />\n } @else if (_trail() || _isSearch()) {\n <!-- The nav's row, and the bar's toggle stands in it rather than in a row\n stacked on top of it. Both slots are written a single `@if` deep: a\n Section matches its projected slots by tag, and a node nested deeper\n falls through to the body instead. -->\n <m-section-back [back]=\"_hasParent()\" (navigate)=\"_navStore.back()\">\n @if (_trail(); as trail) {\n <m-nav-trail [config]=\"trail\" />\n }\n @if (_isSearch()) {\n <m-button\n class=\"nav-header__search-toggle\"\n [config]=\"_searchToggle\"\n (clicked)=\"_openSearch()\"\n />\n }\n </m-section-back>\n }\n\n @if (_user(); as user) {\n <m-user class=\"nav-header__user\" [id]=\"user.id\" [user]=\"user\" mRef=\"root_user\">\n <span class=\"nav-header__username\">@{{ user.username }}</span>\n </m-user>\n } @else if (_header(); as h) {\n @if (h.label) {\n <!-- The title follows its own Nav, as a menu row naming it would: the\n panel lists that Nav's rows, so its Page is the one they hang from.\n `role=\"button\"` also keeps the sheet's drag from starting on it. -->\n @if (h.appLogo; as logo) {\n <!-- A mounted app's header draws its AppLogo in the icon's place. -->\n <m-section-header\n class=\"nav-header__title\"\n role=\"button\"\n tabindex=\"0\"\n [label]=\"h.label\"\n (click)=\"_followHeader()\"\n (keydown.enter)=\"_followHeader()\"\n >\n <m-app-logo class=\"nav-header__app-logo\" [glyph]=\"logo.glyph\" [appColor]=\"logo.color\" [name]=\"logo.name\" />\n </m-section-header>\n } @else {\n <m-section-header\n class=\"nav-header__title\"\n role=\"button\"\n tabindex=\"0\"\n [icon]=\"h.icon\"\n [label]=\"h.label\"\n (click)=\"_followHeader()\"\n (keydown.enter)=\"_followHeader()\"\n />\n }\n }\n }\n</m-section>\n",
|
|
42386
|
+
template: "<m-section>\n @if (_isSearch() && _searchOpen()) {\n <!-- Searching: the field takes the row the trail was on, so the nav is\n hidden while there is something to type into. -->\n <m-section-search\n class=\"nav-header__search\"\n [(isOpen)]=\"_searchOpen\"\n [value]=\"_searchStore.query()\"\n [searchLabel]=\"_searchLabel()\"\n (searchChange)=\"_searchStore.updateQuery($event)\"\n />\n } @else if (_trail() || _isSearch()) {\n <!-- The nav's row, and the bar's toggle stands in it rather than in a row\n stacked on top of it. Both slots are written a single `@if` deep: a\n Section matches its projected slots by tag, and a node nested deeper\n falls through to the body instead. -->\n <m-section-back [back]=\"_hasParent()\" (navigate)=\"_navStore.back()\">\n @if (_trail(); as trail) {\n <m-nav-trail [config]=\"trail\" />\n }\n @if (_isSearch()) {\n <m-button\n class=\"nav-header__search-toggle\"\n [config]=\"_searchToggle\"\n (clicked)=\"_openSearch()\"\n />\n }\n </m-section-back>\n }\n\n @if (_user(); as user) {\n <m-user class=\"nav-header__user\" [id]=\"user.id\" [user]=\"user\" mRef=\"root_user\">\n <span class=\"nav-header__username\">@{{ user.username }}</span>\n </m-user>\n } @else if (_header(); as h) {\n @if (h.label) {\n <!-- The title follows its own Nav, as a menu row naming it would: the\n panel lists that Nav's rows, so its Page is the one they hang from.\n `role=\"button\"` also keeps the sheet's drag from starting on it. -->\n @if (h.appLogo; as logo) {\n <!-- A mounted app's header draws its AppLogo in the icon's place. -->\n <m-section-header\n class=\"nav-header__title\"\n role=\"button\"\n tabindex=\"0\"\n [label]=\"h.label\"\n [badge]=\"h.badge\"\n (click)=\"_followHeader()\"\n (keydown.enter)=\"_followHeader()\"\n >\n <m-app-logo class=\"nav-header__app-logo\" [glyph]=\"logo.glyph\" [appColor]=\"logo.color\" [name]=\"logo.name\" />\n </m-section-header>\n } @else {\n <m-section-header\n class=\"nav-header__title\"\n role=\"button\"\n tabindex=\"0\"\n [icon]=\"h.icon\"\n [label]=\"h.label\"\n [badge]=\"h.badge\"\n (click)=\"_followHeader()\"\n (keydown.enter)=\"_followHeader()\"\n />\n }\n }\n }\n</m-section>\n",
|
|
42284
42387
|
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)}}.nav-header__user{display:block;padding:1rem}.nav-header__username{font-size:.6875rem;font-weight:600;color:var(--m-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}m-section-search.nav-header__search{--_nav-row-height: var(--section-header-min-height, calc(var(--section-header-py, .5rem) * 2 + 1.25rem));min-height:var(--_nav-row-height);padding-block:0;--m-input-clear-height: calc(var(--_nav-row-height) - .5rem);--m-input-clear-min-height: calc(var(--_nav-row-height) - .5rem)}.nav-header__title{cursor:pointer}.nav-header__title:hover,.nav-header__title:focus-visible{background:color-mix(in srgb,var(--m-text) 8%,transparent);outline:none}.nav-header__title .nav-header__app-logo{flex-shrink:0;align-self:flex-start;width:var(--m-section-header-icon-box, 1.5125rem);height:var(--m-section-header-icon-box, 1.5125rem)}\n"]
|
|
42285
42388
|
}]
|
|
42286
42389
|
}],
|
|
@@ -42344,6 +42447,7 @@ var NavMenuComponent = class NavMenuComponent {
|
|
|
42344
42447
|
browse = (item) => {
|
|
42345
42448
|
if (item.nav) this._navRef?.browse?.(item.nav, item.navParams);
|
|
42346
42449
|
};
|
|
42450
|
+
formatBadgeCount = (count, max = 99) => formatBadgeCount(count, max);
|
|
42347
42451
|
rows = computed(() => (this.navList() ?? []).map((item, index) => ({
|
|
42348
42452
|
id: `${item.nav ?? item.href ?? item.label}-${index}`,
|
|
42349
42453
|
row: item
|
|
@@ -42395,6 +42499,18 @@ var NavMenuComponent = class NavMenuComponent {
|
|
|
42395
42499
|
<m-icon [name]="item.icon || 'menu'" [baseUrl]="baseUrl()" />
|
|
42396
42500
|
}
|
|
42397
42501
|
</ng-template>
|
|
42502
|
+
<!-- A row's count, drawn beside the row's own word rather than pushed to
|
|
42503
|
+
the row's end: it is the same figure the panel's header wears and part
|
|
42504
|
+
of the label, not a column of figures the list is scanned by. -->
|
|
42505
|
+
<ng-template #badgeTemplate let-item>
|
|
42506
|
+
@if (item.badge; as badge) {
|
|
42507
|
+
<m-badge
|
|
42508
|
+
class="nav-menu__badge"
|
|
42509
|
+
[config]="{ variant: badge.variant ?? 'danger' }"
|
|
42510
|
+
>{{ formatBadgeCount(badge.count) }}</m-badge
|
|
42511
|
+
>
|
|
42512
|
+
}
|
|
42513
|
+
</ng-template>
|
|
42398
42514
|
<ng-template #menuTemplate let-item="row">
|
|
42399
42515
|
<div class="nav-menu__item">
|
|
42400
42516
|
@if (item.nav; as nav) {
|
|
@@ -42410,7 +42526,10 @@ var NavMenuComponent = class NavMenuComponent {
|
|
|
42410
42526
|
<span class="nav-menu__icon">
|
|
42411
42527
|
<ng-container *ngTemplateOutlet="iconTemplate; context: { $implicit: item }" />
|
|
42412
42528
|
</span>
|
|
42413
|
-
<span class="nav-menu__label">
|
|
42529
|
+
<span class="nav-menu__label">
|
|
42530
|
+
{{ item.label | translate }}
|
|
42531
|
+
<ng-container *ngTemplateOutlet="badgeTemplate; context: { $implicit: item }" />
|
|
42532
|
+
</span>
|
|
42414
42533
|
</a>
|
|
42415
42534
|
<!-- The row follows the Nav; the chevron only Browses into it. -->
|
|
42416
42535
|
@if (item.browsable) {
|
|
@@ -42428,7 +42547,10 @@ var NavMenuComponent = class NavMenuComponent {
|
|
|
42428
42547
|
<span class="nav-menu__icon">
|
|
42429
42548
|
<ng-container *ngTemplateOutlet="iconTemplate; context: { $implicit: item }" />
|
|
42430
42549
|
</span>
|
|
42431
|
-
<span class="nav-menu__label">
|
|
42550
|
+
<span class="nav-menu__label">
|
|
42551
|
+
{{ item.label | translate }}
|
|
42552
|
+
<ng-container *ngTemplateOutlet="badgeTemplate; context: { $implicit: item }" />
|
|
42553
|
+
</span>
|
|
42432
42554
|
</a>
|
|
42433
42555
|
} @else {
|
|
42434
42556
|
<span class="nav-menu__icon">
|
|
@@ -42436,6 +42558,7 @@ var NavMenuComponent = class NavMenuComponent {
|
|
|
42436
42558
|
</span>
|
|
42437
42559
|
<span class="nav-menu__label">
|
|
42438
42560
|
<span class="nav-menu__text">{{ item.label | translate }}</span>
|
|
42561
|
+
<ng-container *ngTemplateOutlet="badgeTemplate; context: { $implicit: item }" />
|
|
42439
42562
|
</span>
|
|
42440
42563
|
}
|
|
42441
42564
|
</div>
|
|
@@ -42445,7 +42568,7 @@ var NavMenuComponent = class NavMenuComponent {
|
|
|
42445
42568
|
</div>
|
|
42446
42569
|
`,
|
|
42447
42570
|
isInline: true,
|
|
42448
|
-
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)}}:host{display:block;width:100%}.nav-menu{padding:0;margin:0}.nav-menu ul{display:flex;flex-direction:column;gap:0;padding:0;margin:0}.nav-menu li{padding:0;list-style:none;width:100%;border-bottom:1px solid rgba(0,0,0,.02)}.nav-menu li:last-child{border-bottom:none}.nav-menu__item{display:flex;align-items:center;gap:.75rem;width:100%;position:relative;color:var(--m-text-secondary);background:transparent}.nav-menu__item:not(:has(.nav-menu__link)){padding:.625rem 1rem}.nav-menu__link{display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem;border-radius:0;transition:all .15s cubic-bezier(.4,0,.2,1);cursor:pointer;width:100%;color:inherit;text-decoration:none}.nav-menu__link:hover{background:#00000008;color:var(--m-text)}.nav-menu__link:hover .nav-menu__icon{color:var(--m-text)}.nav-menu__link:hover .nav-menu__label{color:var(--m-text);font-weight:600}.nav-menu__browse{flex:none;margin-inline-end:.5rem;color:var(--m-text-tertiary)}.nav-menu__icon{display:flex;align-items:center;justify-content:center;color:var(--m-text-tertiary);transition:color .15s ease;width:1.15rem;height:1.15rem}.nav-menu__app-logo{display:block;width:100%;height:100%}.nav-menu__icon .m-icon{display:flex;align-items:center}.nav-menu__label{flex:1;display:block;width:100%;font-size:.8125rem;font-weight:500;letter-spacing:.01em;color:inherit;text-decoration:none}.nav-menu__item:has(.active){background:linear-gradient(90deg,color-mix(in srgb,var(--m-mm) 6%,transparent) 0%,color-mix(in srgb,var(--m-mm) 2%,transparent) 60%,transparent 100%);color:var(--m-mm);border-radius:0}.nav-menu__item:has(.active):after{content:\"\";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,rgba(255,255,255,.3) 0%,rgba(255,255,255,.05) 50%,transparent 100%);z-index:3}.nav-menu__item:has(.active) .nav-menu__icon{color:var(--m-mm);filter:drop-shadow(0 0 3px color-mix(in srgb,var(--m-mm) 20%,transparent))}.nav-menu__item:has(.active) .nav-menu__label{color:var(--m-mm);font-weight:700;letter-spacing:.015em}\n"],
|
|
42571
|
+
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)}}:host{display:block;width:100%}.nav-menu{padding:0;margin:0}.nav-menu ul{display:flex;flex-direction:column;gap:0;padding:0;margin:0}.nav-menu li{padding:0;list-style:none;width:100%;border-bottom:1px solid rgba(0,0,0,.02)}.nav-menu li:last-child{border-bottom:none}.nav-menu__item{display:flex;align-items:center;gap:.75rem;width:100%;position:relative;color:var(--m-text-secondary);background:transparent}.nav-menu__item:not(:has(.nav-menu__link)){padding:.625rem 1rem}.nav-menu__link{display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem;border-radius:0;transition:all .15s cubic-bezier(.4,0,.2,1);cursor:pointer;width:100%;color:inherit;text-decoration:none}.nav-menu__link:hover{background:#00000008;color:var(--m-text)}.nav-menu__link:hover .nav-menu__icon{color:var(--m-text)}.nav-menu__link:hover .nav-menu__label{color:var(--m-text);font-weight:600}.nav-menu__browse{flex:none;margin-inline-end:.5rem;color:var(--m-text-tertiary)}.nav-menu__icon{display:flex;align-items:center;justify-content:center;color:var(--m-text-tertiary);transition:color .15s ease;width:1.15rem;height:1.15rem}.nav-menu__app-logo{display:block;width:100%;height:100%}.nav-menu__icon .m-icon{display:flex;align-items:center}.nav-menu__label{flex:1;display:block;width:100%;font-size:.8125rem;font-weight:500;letter-spacing:.01em;color:inherit;text-decoration:none}.nav-menu__badge{--m-badge-height: 1.5em;--m-badge-min-width: 1.5em;--m-badge-padding: 0 .3em;--m-badge-gap: .1em;vertical-align:middle;margin-inline-start:.15rem}.nav-menu__item:has(.active){background:linear-gradient(90deg,color-mix(in srgb,var(--m-mm) 6%,transparent) 0%,color-mix(in srgb,var(--m-mm) 2%,transparent) 60%,transparent 100%);color:var(--m-mm);border-radius:0}.nav-menu__item:has(.active):after{content:\"\";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,rgba(255,255,255,.3) 0%,rgba(255,255,255,.05) 50%,transparent 100%);z-index:3}.nav-menu__item:has(.active) .nav-menu__icon{color:var(--m-mm);filter:drop-shadow(0 0 3px color-mix(in srgb,var(--m-mm) 20%,transparent))}.nav-menu__item:has(.active) .nav-menu__label{color:var(--m-mm);font-weight:700;letter-spacing:.015em}\n"],
|
|
42449
42572
|
dependencies: [
|
|
42450
42573
|
{
|
|
42451
42574
|
kind: "directive",
|
|
@@ -42487,6 +42610,13 @@ var NavMenuComponent = class NavMenuComponent {
|
|
|
42487
42610
|
"size"
|
|
42488
42611
|
]
|
|
42489
42612
|
},
|
|
42613
|
+
{
|
|
42614
|
+
kind: "component",
|
|
42615
|
+
type: BadgeComponent,
|
|
42616
|
+
selector: "m-badge",
|
|
42617
|
+
inputs: ["config"],
|
|
42618
|
+
outputs: ["configChange"]
|
|
42619
|
+
},
|
|
42490
42620
|
{
|
|
42491
42621
|
kind: "directive",
|
|
42492
42622
|
type: MRefDirective,
|
|
@@ -42576,6 +42706,18 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
42576
42706
|
<m-icon [name]="item.icon || 'menu'" [baseUrl]="baseUrl()" />
|
|
42577
42707
|
}
|
|
42578
42708
|
</ng-template>
|
|
42709
|
+
<!-- A row's count, drawn beside the row's own word rather than pushed to
|
|
42710
|
+
the row's end: it is the same figure the panel's header wears and part
|
|
42711
|
+
of the label, not a column of figures the list is scanned by. -->
|
|
42712
|
+
<ng-template #badgeTemplate let-item>
|
|
42713
|
+
@if (item.badge; as badge) {
|
|
42714
|
+
<m-badge
|
|
42715
|
+
class="nav-menu__badge"
|
|
42716
|
+
[config]="{ variant: badge.variant ?? 'danger' }"
|
|
42717
|
+
>{{ formatBadgeCount(badge.count) }}</m-badge
|
|
42718
|
+
>
|
|
42719
|
+
}
|
|
42720
|
+
</ng-template>
|
|
42579
42721
|
<ng-template #menuTemplate let-item="row">
|
|
42580
42722
|
<div class="nav-menu__item">
|
|
42581
42723
|
@if (item.nav; as nav) {
|
|
@@ -42591,7 +42733,10 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
42591
42733
|
<span class="nav-menu__icon">
|
|
42592
42734
|
<ng-container *ngTemplateOutlet="iconTemplate; context: { $implicit: item }" />
|
|
42593
42735
|
</span>
|
|
42594
|
-
<span class="nav-menu__label">
|
|
42736
|
+
<span class="nav-menu__label">
|
|
42737
|
+
{{ item.label | translate }}
|
|
42738
|
+
<ng-container *ngTemplateOutlet="badgeTemplate; context: { $implicit: item }" />
|
|
42739
|
+
</span>
|
|
42595
42740
|
</a>
|
|
42596
42741
|
<!-- The row follows the Nav; the chevron only Browses into it. -->
|
|
42597
42742
|
@if (item.browsable) {
|
|
@@ -42609,7 +42754,10 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
42609
42754
|
<span class="nav-menu__icon">
|
|
42610
42755
|
<ng-container *ngTemplateOutlet="iconTemplate; context: { $implicit: item }" />
|
|
42611
42756
|
</span>
|
|
42612
|
-
<span class="nav-menu__label">
|
|
42757
|
+
<span class="nav-menu__label">
|
|
42758
|
+
{{ item.label | translate }}
|
|
42759
|
+
<ng-container *ngTemplateOutlet="badgeTemplate; context: { $implicit: item }" />
|
|
42760
|
+
</span>
|
|
42613
42761
|
</a>
|
|
42614
42762
|
} @else {
|
|
42615
42763
|
<span class="nav-menu__icon">
|
|
@@ -42617,6 +42765,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
42617
42765
|
</span>
|
|
42618
42766
|
<span class="nav-menu__label">
|
|
42619
42767
|
<span class="nav-menu__text">{{ item.label | translate }}</span>
|
|
42768
|
+
<ng-container *ngTemplateOutlet="badgeTemplate; context: { $implicit: item }" />
|
|
42620
42769
|
</span>
|
|
42621
42770
|
}
|
|
42622
42771
|
</div>
|
|
@@ -42630,12 +42779,13 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
42630
42779
|
NgTemplateOutlet,
|
|
42631
42780
|
IconComponent,
|
|
42632
42781
|
AppLogoComponent,
|
|
42782
|
+
BadgeComponent,
|
|
42633
42783
|
MRefDirective,
|
|
42634
42784
|
TranslatePipe,
|
|
42635
42785
|
ListComponent,
|
|
42636
42786
|
ButtonComponent
|
|
42637
42787
|
],
|
|
42638
|
-
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)}}:host{display:block;width:100%}.nav-menu{padding:0;margin:0}.nav-menu ul{display:flex;flex-direction:column;gap:0;padding:0;margin:0}.nav-menu li{padding:0;list-style:none;width:100%;border-bottom:1px solid rgba(0,0,0,.02)}.nav-menu li:last-child{border-bottom:none}.nav-menu__item{display:flex;align-items:center;gap:.75rem;width:100%;position:relative;color:var(--m-text-secondary);background:transparent}.nav-menu__item:not(:has(.nav-menu__link)){padding:.625rem 1rem}.nav-menu__link{display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem;border-radius:0;transition:all .15s cubic-bezier(.4,0,.2,1);cursor:pointer;width:100%;color:inherit;text-decoration:none}.nav-menu__link:hover{background:#00000008;color:var(--m-text)}.nav-menu__link:hover .nav-menu__icon{color:var(--m-text)}.nav-menu__link:hover .nav-menu__label{color:var(--m-text);font-weight:600}.nav-menu__browse{flex:none;margin-inline-end:.5rem;color:var(--m-text-tertiary)}.nav-menu__icon{display:flex;align-items:center;justify-content:center;color:var(--m-text-tertiary);transition:color .15s ease;width:1.15rem;height:1.15rem}.nav-menu__app-logo{display:block;width:100%;height:100%}.nav-menu__icon .m-icon{display:flex;align-items:center}.nav-menu__label{flex:1;display:block;width:100%;font-size:.8125rem;font-weight:500;letter-spacing:.01em;color:inherit;text-decoration:none}.nav-menu__item:has(.active){background:linear-gradient(90deg,color-mix(in srgb,var(--m-mm) 6%,transparent) 0%,color-mix(in srgb,var(--m-mm) 2%,transparent) 60%,transparent 100%);color:var(--m-mm);border-radius:0}.nav-menu__item:has(.active):after{content:\"\";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,rgba(255,255,255,.3) 0%,rgba(255,255,255,.05) 50%,transparent 100%);z-index:3}.nav-menu__item:has(.active) .nav-menu__icon{color:var(--m-mm);filter:drop-shadow(0 0 3px color-mix(in srgb,var(--m-mm) 20%,transparent))}.nav-menu__item:has(.active) .nav-menu__label{color:var(--m-mm);font-weight:700;letter-spacing:.015em}\n"]
|
|
42788
|
+
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)}}:host{display:block;width:100%}.nav-menu{padding:0;margin:0}.nav-menu ul{display:flex;flex-direction:column;gap:0;padding:0;margin:0}.nav-menu li{padding:0;list-style:none;width:100%;border-bottom:1px solid rgba(0,0,0,.02)}.nav-menu li:last-child{border-bottom:none}.nav-menu__item{display:flex;align-items:center;gap:.75rem;width:100%;position:relative;color:var(--m-text-secondary);background:transparent}.nav-menu__item:not(:has(.nav-menu__link)){padding:.625rem 1rem}.nav-menu__link{display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem;border-radius:0;transition:all .15s cubic-bezier(.4,0,.2,1);cursor:pointer;width:100%;color:inherit;text-decoration:none}.nav-menu__link:hover{background:#00000008;color:var(--m-text)}.nav-menu__link:hover .nav-menu__icon{color:var(--m-text)}.nav-menu__link:hover .nav-menu__label{color:var(--m-text);font-weight:600}.nav-menu__browse{flex:none;margin-inline-end:.5rem;color:var(--m-text-tertiary)}.nav-menu__icon{display:flex;align-items:center;justify-content:center;color:var(--m-text-tertiary);transition:color .15s ease;width:1.15rem;height:1.15rem}.nav-menu__app-logo{display:block;width:100%;height:100%}.nav-menu__icon .m-icon{display:flex;align-items:center}.nav-menu__label{flex:1;display:block;width:100%;font-size:.8125rem;font-weight:500;letter-spacing:.01em;color:inherit;text-decoration:none}.nav-menu__badge{--m-badge-height: 1.5em;--m-badge-min-width: 1.5em;--m-badge-padding: 0 .3em;--m-badge-gap: .1em;vertical-align:middle;margin-inline-start:.15rem}.nav-menu__item:has(.active){background:linear-gradient(90deg,color-mix(in srgb,var(--m-mm) 6%,transparent) 0%,color-mix(in srgb,var(--m-mm) 2%,transparent) 60%,transparent 100%);color:var(--m-mm);border-radius:0}.nav-menu__item:has(.active):after{content:\"\";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,rgba(255,255,255,.3) 0%,rgba(255,255,255,.05) 50%,transparent 100%);z-index:3}.nav-menu__item:has(.active) .nav-menu__icon{color:var(--m-mm);filter:drop-shadow(0 0 3px color-mix(in srgb,var(--m-mm) 20%,transparent))}.nav-menu__item:has(.active) .nav-menu__label{color:var(--m-mm);font-weight:700;letter-spacing:.015em}\n"]
|
|
42639
42789
|
}]
|
|
42640
42790
|
}],
|
|
42641
42791
|
propDecorators: {
|
|
@@ -47118,16 +47268,16 @@ const platformNavWidgets = () => ({
|
|
|
47118
47268
|
});
|
|
47119
47269
|
const providePlatformNavWidgets = () => provideNavWidgets(platformNavWidgets());
|
|
47120
47270
|
function provideAppContext() {
|
|
47121
|
-
const
|
|
47271
|
+
const ownAppLink = inject(APP_LINK);
|
|
47122
47272
|
const authStore = inject(AuthStore);
|
|
47123
47273
|
const agreementGate = inject(AgreementGate);
|
|
47124
47274
|
const relationType = signal(null, ...ngDevMode ? [{ debugName: "relationType" }] : /* istanbul ignore next */ []);
|
|
47125
47275
|
effect(() => {
|
|
47126
|
-
const appLink =
|
|
47276
|
+
const appLink = ownAppLink();
|
|
47127
47277
|
const isLoggedIn = authStore.isLoggedIn();
|
|
47128
47278
|
agreementGate.revision();
|
|
47129
47279
|
if (appLink && isLoggedIn) {
|
|
47130
|
-
const current = () => untracked(
|
|
47280
|
+
const current = () => untracked(ownAppLink) === appLink;
|
|
47131
47281
|
agreementGate.view(appLink).then((view) => current() && relationType.set(view.type), () => current() && relationType.set(null));
|
|
47132
47282
|
} else relationType.set(null);
|
|
47133
47283
|
});
|
|
@@ -48594,6 +48744,7 @@ var SvgGeneratorToolBoxComponent = class SvgGeneratorToolBoxComponent {
|
|
|
48594
48744
|
"disableRule",
|
|
48595
48745
|
"extraData",
|
|
48596
48746
|
"align",
|
|
48747
|
+
"badge",
|
|
48597
48748
|
"showBack",
|
|
48598
48749
|
"actionButton",
|
|
48599
48750
|
"actionLabel",
|
|
@@ -51697,6 +51848,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
51697
51848
|
}]
|
|
51698
51849
|
}
|
|
51699
51850
|
});
|
|
51700
|
-
export { ACCESS_DOMAINS, APP_CONTEXT_REF, APP_LINK, APP_LOGO_ICON, APP_LOGO_SOURCE, APP_THEME_COLOR, ASSET_BASE_URL, AUDIENCE_ICONS, AUDIENCE_LEVELS, AccordionBodyDirective, AccordionComponent, AccordionGroupComponent, ActionComponent, AnimatedGraphsComponent, AppAvailability, AppCardComponent, AppIdentityService, AppLogoComponent, AppLogoState, 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, HOST_SESSION, 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, LOGO_GLYPH_MAX_BYTES, LanguageComponent, ListComponent, LogoComponent, LogoGlyphInputComponent, 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_BOOT_TIMEOUT_MS, REMOTE_PAGE_RELOAD, ROOT_NAV, RadioGroupComponent, RadioInputComponent, RangeInputComponent, RatingInputComponent, ReactiveElementComponent, RemoteComponent, RemoteLoaderService, ResizeElementComponent, RouteContainer, RowComponent, SEARCH_ANSWER_KEY, SEARCH_LABEL_KEY, SEARCH_QUERY, SEARCH_RESULTS_EVENT, SECTION_ACCORDION_GROUP, SECTION_FORM_CONTEXT, SECTION_TABLE_VARIANTS, SHARED_ICONS, SHARING_CLIENT, SIZE_CONTEXT, SPACING_INWARD, SPLASH_ID, 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, appColorBrand, appLogoShadowColor, appThemeColorFactory, 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, escapeHtml, 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, isLightAppColor, isLoadingComputed, isLocalhost, isNavInstanceConfig, isNavMenuConfig, isNavRowsConfig, isNavVisibilityConfig, isPlatformNavId, isPlatformPanelNavId, isReadableOn, isSize, isTierPreview, isUrlLocalhost, isValidNavId, isValidNavSegment, isWebComponent, linkToId, linkToNav, loadingActions, logoGlyphMaskUrl, mInterceptor, manualValidation, matchFieldValidation, matchMount, maxLengthValidation, maxValidation, mergePlatformNav, mergeUnique, mergeUniqueBy, mergeUniqueWith, minAgeValidation, minLengthValidation, minValidation, miniMarkInlineToHtml, miniMarkToHtml, mountFor, mountPatternProblem, mountPatternText, mountSegmentOf, mountTokenOf, navIdChain, navIdFor, navIdSegment, navIdToRoutePath, navIdToSegments, navParamOf, navTailMatcher, navToId, navVisibilityGuard, nextSectionTableSort, normalizeAppColor, normalizeAssetOptions, offsetOfLine, outletPathOf, outletSegmentsOf, paintAppColor, 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, readableAppColor, rebuildLogoGlyph, recordDefinedWcTier, registerSessionRenewal, 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, splashHtml, splitNavId, splitOnMatch, splitPath, stringToColor, tailRouteOf, toAttrBool, toAttrNumber, toCssLength, toHostNavId, toLength, toLocalNavId, toggleGroup, toggleTreeGridRow, toggleUid, unfetchedPlatformNav, ungroupedDocActions, urlValidation, wcLocalBaseOf, wcTierOf, withLevel };
|
|
51851
|
+
export { ACCESS_DOMAINS, APP_CONTEXT_REF, APP_LINK, APP_LOGO_ICON, APP_LOGO_SOURCE, APP_THEME_COLOR, ASSET_BASE_URL, AUDIENCE_ICONS, AUDIENCE_LEVELS, AccordionBodyDirective, AccordionComponent, AccordionGroupComponent, ActionComponent, AnimatedGraphsComponent, AppAvailability, AppCardComponent, AppIdentityService, AppLogoComponent, AppLogoState, 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, HOST_SESSION, 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, LOGO_GLYPH_MAX_BYTES, LanguageComponent, ListComponent, LogoComponent, LogoGlyphInputComponent, 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_BOOT_TIMEOUT_MS, REMOTE_PAGE_RELOAD, ROOT_NAV, RadioGroupComponent, RadioInputComponent, RangeInputComponent, RatingInputComponent, ReactiveElementComponent, RemoteComponent, RemoteLoaderService, ResizeElementComponent, RouteContainer, RowComponent, SEARCH_ANSWER_KEY, SEARCH_LABEL_KEY, SEARCH_QUERY, SEARCH_RESULTS_EVENT, SECTION_ACCORDION_GROUP, SECTION_FORM_CONTEXT, SECTION_TABLE_VARIANTS, SHARED_ICONS, SHARING_CLIENT, SIZE_CONTEXT, SPACING_INWARD, SPLASH_ID, 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, appColorBrand, appLogoShadowColor, appThemeColorFactory, 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, escapeHtml, 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, isLightAppColor, isLoadingComputed, isLocalhost, isNavCountConfig, isNavInstanceConfig, isNavMenuConfig, isNavRowsConfig, isNavVisibilityConfig, isPlatformNavId, isPlatformPanelNavId, isReadableOn, isSize, isTierPreview, isUrlLocalhost, isValidNavId, isValidNavSegment, isWebComponent, linkToId, linkToNav, loadingActions, logoGlyphMaskUrl, mInterceptor, manualValidation, matchFieldValidation, matchMount, maxLengthValidation, maxValidation, mergePlatformNav, mergeUnique, mergeUniqueBy, mergeUniqueWith, minAgeValidation, minLengthValidation, minValidation, miniMarkInlineToHtml, miniMarkToHtml, mountFor, mountPatternProblem, mountPatternText, mountSegmentOf, mountTokenOf, navIdChain, navIdFor, navIdSegment, navIdToRoutePath, navIdToSegments, navParamOf, navTailMatcher, navToId, navVisibilityGuard, nextSectionTableSort, normalizeAppColor, normalizeAssetOptions, offsetOfLine, outletPathOf, outletSegmentsOf, paintAppColor, 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, readableAppColor, rebuildLogoGlyph, recordDefinedWcTier, registerSessionRenewal, 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, splashHtml, splitNavId, splitOnMatch, splitPath, stringToColor, tailRouteOf, toAttrBool, toAttrNumber, toCssLength, toHostNavId, toLength, toLocalNavId, toggleGroup, toggleTreeGridRow, toggleUid, unfetchedPlatformNav, ungroupedDocActions, urlValidation, wcLocalBaseOf, wcTierOf, withLevel };
|
|
51701
51852
|
|
|
51702
51853
|
//# sourceMappingURL=magmonium-one.mjs.map
|