@magmonium/one 0.4.41 → 0.4.43
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/fields/app_color.json +5 -0
- package/assets/fields/logo_glyph_paste.json +7 -0
- package/assets/fields/logo_glyph_upload.json +12 -0
- package/assets/forms/logo_glyph_input.json +13 -0
- package/assets/i18n/ar.json +8 -0
- package/assets/i18n/de.json +8 -0
- package/assets/i18n/en.json +8 -0
- package/assets/i18n/es.json +8 -0
- package/assets/i18n/fr.json +8 -0
- package/assets/i18n/hi.json +8 -0
- package/assets/i18n/it.json +8 -0
- package/assets/i18n/ja.json +8 -0
- package/assets/i18n/ko.json +8 -0
- package/assets/i18n/nl.json +8 -0
- package/assets/i18n/pl.json +8 -0
- package/assets/i18n/pt.json +8 -0
- package/assets/i18n/ru.json +8 -0
- package/assets/i18n/tr.json +8 -0
- package/assets/i18n/zh.json +8 -0
- package/assets/index.json +1 -1
- package/fesm2022/{magmonium-one-attribute-value-DCTXt4Sr.mjs → magmonium-one-attribute-value-C1lqou2L.mjs} +3 -3
- package/fesm2022/{magmonium-one-attribute-value-DCTXt4Sr.mjs.map → magmonium-one-attribute-value-C1lqou2L.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-checkbox-BNQAkyYU.mjs → magmonium-one-base-checkbox-CIxAiA4Q.mjs} +2 -2
- package/fesm2022/{magmonium-one-base-checkbox-BNQAkyYU.mjs.map → magmonium-one-base-checkbox-CIxAiA4Q.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-dropdown-DU4B4w7c.mjs → magmonium-one-base-dropdown-XpTWe4Ii.mjs} +10 -10
- package/fesm2022/{magmonium-one-base-dropdown-DU4B4w7c.mjs.map → magmonium-one-base-dropdown-XpTWe4Ii.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-input-BTxhUtYO.mjs → magmonium-one-base-input-C1Ek0Ezm.mjs} +2 -2
- package/fesm2022/{magmonium-one-base-input-BTxhUtYO.mjs.map → magmonium-one-base-input-C1Ek0Ezm.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-text-BCSqKmVs.mjs → magmonium-one-base-text-Di2V2ojp.mjs} +2 -2
- package/fesm2022/{magmonium-one-base-text-BCSqKmVs.mjs.map → magmonium-one-base-text-Di2V2ojp.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-button-BWB3ZKIj.mjs → magmonium-one-button-DZ4wCJgb.mjs} +11 -9
- package/fesm2022/{magmonium-one-button-BWB3ZKIj.mjs.map → magmonium-one-button-DZ4wCJgb.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-checkbox-D5-5WhJ-.mjs → magmonium-one-checkbox-R-hPZrCa.mjs} +5 -5
- package/fesm2022/{magmonium-one-checkbox-D5-5WhJ-.mjs.map → magmonium-one-checkbox-R-hPZrCa.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-color-utl-D86GGpz5.mjs → magmonium-one-color-utl-DI5p24iQ.mjs} +209 -6
- package/fesm2022/magmonium-one-color-utl-DI5p24iQ.mjs.map +1 -0
- package/fesm2022/{magmonium-one-directives-DePukAj8.mjs → magmonium-one-directives-B93p5bAL.mjs} +4 -4
- package/fesm2022/{magmonium-one-directives-DePukAj8.mjs.map → magmonium-one-directives-B93p5bAL.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-group-m41SX_fL.mjs → magmonium-one-group-B7YeUd1u.mjs} +7 -7
- package/fesm2022/{magmonium-one-group-m41SX_fL.mjs.map → magmonium-one-group-B7YeUd1u.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-header-D8CB9CBJ.mjs → magmonium-one-header-DUiBhPUP.mjs} +6 -5
- package/fesm2022/{magmonium-one-header-D8CB9CBJ.mjs.map → magmonium-one-header-DUiBhPUP.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-icon-BTPHGpEN.mjs → magmonium-one-icon-C3jwzbb2.mjs} +80 -9
- package/fesm2022/magmonium-one-icon-C3jwzbb2.mjs.map +1 -0
- package/fesm2022/{magmonium-one-image-editor-Dn0ACfH0.mjs → magmonium-one-image-editor-BRTk8i4O.mjs} +4 -4
- package/fesm2022/{magmonium-one-image-editor-Dn0ACfH0.mjs.map → magmonium-one-image-editor-BRTk8i4O.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-label-DjvJthAB.mjs → magmonium-one-label-D_rU82nD.mjs} +2 -2
- package/fesm2022/{magmonium-one-label-DjvJthAB.mjs.map → magmonium-one-label-D_rU82nD.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-m-ref-C8c4Vf1G.mjs → magmonium-one-m-ref-CEms7B6-.mjs} +2 -2
- package/fesm2022/{magmonium-one-m-ref-C8c4Vf1G.mjs.map → magmonium-one-m-ref-CEms7B6-.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-menu-EIfPlZ4E.mjs → magmonium-one-menu-cO34OcJc.mjs} +8 -7
- package/fesm2022/{magmonium-one-menu-EIfPlZ4E.mjs.map → magmonium-one-menu-cO34OcJc.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-multi-range-o57TiVJU.mjs → magmonium-one-multi-range-Bq3_3NHg.mjs} +3 -3
- package/fesm2022/{magmonium-one-multi-range-o57TiVJU.mjs.map → magmonium-one-multi-range-Bq3_3NHg.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-options-asset-EVsv0DL7.mjs → magmonium-one-options-asset-BMd7W0Mk.mjs} +2 -2
- package/fesm2022/{magmonium-one-options-asset-EVsv0DL7.mjs.map → magmonium-one-options-asset-BMd7W0Mk.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-otp-CE4L1RcG.mjs → magmonium-one-otp-V2tFztLx.mjs} +5 -5
- package/fesm2022/{magmonium-one-otp-CE4L1RcG.mjs.map → magmonium-one-otp-V2tFztLx.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-password-BjqYmT1s.mjs → magmonium-one-password-IdllPMUw.mjs} +6 -6
- package/fesm2022/{magmonium-one-password-BjqYmT1s.mjs.map → magmonium-one-password-IdllPMUw.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-radio-C2wOB_Nb.mjs → magmonium-one-radio-BAL3-3j5.mjs} +3 -3
- package/fesm2022/{magmonium-one-radio-C2wOB_Nb.mjs.map → magmonium-one-radio-BAL3-3j5.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-range-rgDe4O8u.mjs → magmonium-one-range-Cf7yUnhN.mjs} +4 -4
- package/fesm2022/{magmonium-one-range-rgDe4O8u.mjs.map → magmonium-one-range-Cf7yUnhN.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-selector-DeRIUUBA.mjs → magmonium-one-selector-DAEI_0JX.mjs} +4 -4
- package/fesm2022/{magmonium-one-selector-DeRIUUBA.mjs.map → magmonium-one-selector-DAEI_0JX.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-size-converter-C5fG_dgw.mjs → magmonium-one-size-converter-BOBD8nHy.mjs} +8 -1
- package/fesm2022/magmonium-one-size-converter-BOBD8nHy.mjs.map +1 -0
- package/fesm2022/{magmonium-one-text-BL-1lWST.mjs → magmonium-one-text-BnTkYLJe.mjs} +8 -7
- package/fesm2022/{magmonium-one-text-BL-1lWST.mjs.map → magmonium-one-text-BnTkYLJe.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-text-output-Ci93Hi9Y.mjs → magmonium-one-text-output-BZU61QIF.mjs} +4 -4
- package/fesm2022/{magmonium-one-text-output-Ci93Hi9Y.mjs.map → magmonium-one-text-output-BZU61QIF.mjs.map} +1 -1
- package/fesm2022/magmonium-one-theme-DYvNIWmo.mjs +1 -0
- package/fesm2022/{magmonium-one-toggle-BTK2lzqA.mjs → magmonium-one-toggle-V_YnZXx5.mjs} +3 -3
- package/fesm2022/{magmonium-one-toggle-BTK2lzqA.mjs.map → magmonium-one-toggle-V_YnZXx5.mjs.map} +1 -1
- package/fesm2022/magmonium-one.mjs +788 -185
- package/fesm2022/magmonium-one.mjs.map +1 -1
- package/package.json +1 -1
- package/types/magmonium-one.d.ts +355 -53
- package/fesm2022/magmonium-one-color-utl-D86GGpz5.mjs.map +0 -1
- package/fesm2022/magmonium-one-icon-BTPHGpEN.mjs.map +0 -1
- package/fesm2022/magmonium-one-size-converter-C5fG_dgw.mjs.map +0 -1
- package/fesm2022/magmonium-one-theme-CT4cWpe7.mjs +0 -1
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
import { t as __exportAll } from "./magmonium-one-rolldown-runtime-DpJrqANO.mjs";
|
|
2
|
-
import { $ as WC_BUNDLE, A as isUrlLocalhost, B as IS_DESIGN_MODE, C as setWcLocalPort, D as getTierFromPreviewPath, E as wcTierOf, F as AppAvailability, G as MODAL_STORE_REF, H as LOADING_ACTIONS_REF, I as AppRelationType, J as OPTIONS_SOURCE, K as NAV_STORE_REF, L as COMPONENT_INPUT_REGISTRY, M as APP_CONTEXT_REF, N as APP_LINK, O as isLocalhost, P as ASSET_BASE_URL, Q as USER_STORE_REF, R as FOLDER_PICK_LISTENER, S as recordDefinedWcTier, T as wcLocalBaseOf, U as LOGIN_COMPONENT, V as IS_SIDE_PANEL, W as LOGIN_STORE, X as SEARCH_RESULTS_EVENT, Y as SEARCH_QUERY, Z as TRANSLATION_SOURCE, _ as ACCESS_DOMAINS, a as resolveSpacing, at as Size, b as definedWcBundleOf, c as TranslatePipe, d as browserLocale, et as WC_SEARCH_GROUPS, f as miniMarkToHtml, g as isJson, h as StorageService, i as resolveSize, it as DEFAULT_SIZE, j as isWebComponent, k as isTierPreview, l as TranslateService, m as SharedStoreRegistry, n as isSize, nt as LAYOUT_ASSET_FOLDER, o as toCssLength, p as AssetStore, q as ONE_ASSET_BASE_URL, r as resolveIconSize, rt as Assets, s as toLength, t as coerceSize, tt as FORM_ASSET_FOLDER, u as BrowserLocaleService, v as HttpService, w as setWcTier, x as definedWcTierOf, y as buildWcBaseUrl, z as ICON_SOURCE } from "./magmonium-one-size-converter-
|
|
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 WC_BUNDLE, A as isUrlLocalhost, B as IS_DESIGN_MODE, C as setWcLocalPort, D as getTierFromPreviewPath, E as wcTierOf, F as AppAvailability, G as MODAL_STORE_REF, H as LOADING_ACTIONS_REF, I as AppRelationType, J as OPTIONS_SOURCE, K as NAV_STORE_REF, L as COMPONENT_INPUT_REGISTRY, M as APP_CONTEXT_REF, N as APP_LINK, O as isLocalhost, P as ASSET_BASE_URL, Q as USER_STORE_REF, R as FOLDER_PICK_LISTENER, S as recordDefinedWcTier, T as wcLocalBaseOf, U as LOGIN_COMPONENT, V as IS_SIDE_PANEL, W as LOGIN_STORE, X as SEARCH_RESULTS_EVENT, Y as SEARCH_QUERY, Z as TRANSLATION_SOURCE, _ as ACCESS_DOMAINS, a as resolveSpacing, at as Size, b as definedWcBundleOf, c as TranslatePipe, d as browserLocale, et as WC_SEARCH_GROUPS, f as miniMarkToHtml, g as isJson, h as StorageService, i as resolveSize, it as DEFAULT_SIZE, j as isWebComponent, k as isTierPreview, l as TranslateService, m as SharedStoreRegistry, n as isSize, nt as LAYOUT_ASSET_FOLDER, o as toCssLength, p as AssetStore, q as ONE_ASSET_BASE_URL, r as resolveIconSize, rt as Assets, s as toLength, t as coerceSize, tt as FORM_ASSET_FOLDER, u as BrowserLocaleService, v as HttpService, w as setWcTier, x as definedWcTierOf, y as buildWcBaseUrl, z as ICON_SOURCE } from "./magmonium-one-size-converter-BOBD8nHy.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-DAEI_0JX.mjs";
|
|
4
4
|
import { t as FileService } from "./magmonium-one-file.service-Bo06pU3_.mjs";
|
|
5
|
-
import { a as calculateLuminance, c as hexToRgb, d as derivePropertyName, f as getProperty, h as
|
|
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 { i as getScrollParent, n as activeElementWithin, r as classListSignal, t as BaseTextInputComponent } from "./magmonium-one-base-text-
|
|
9
|
-
import { a as
|
|
10
|
-
import { i as resolveConfigAsset, n as toAttrNumber, r as ConfigComponent, t as toAttrBool } from "./magmonium-one-attribute-value-
|
|
11
|
-
import { a as isButtonName, c as formatBadgeCount, l as shouldShowBadge, n as SECTION_FORM_CONTEXT, o as ReactiveElementComponent, r as ImgComponent, s as BadgeComponent, t as ButtonComponent } from "./magmonium-one-button-
|
|
12
|
-
import { t as MRefDirective } from "./magmonium-one-m-ref-
|
|
13
|
-
import { t as HeaderComponent } from "./magmonium-one-header-
|
|
14
|
-
import { t as TextOutputComponent } from "./magmonium-one-text-output-
|
|
15
|
-
import { t as BaseInputComponent } from "./magmonium-one-base-input-
|
|
16
|
-
import { a as stringToColor, c as ToolTipDirective, d as DragListItemDirective, f as DragListDirective, i as MHeroColorDirective, l as FileUploadDirective, n as PaddingDirective, o as HighlightDirective, p as DraggableDirective, r as SPACING_INWARD, s as PositionDirective, t as MarginDirective, u as AutosizeDirective } from "./magmonium-one-directives-
|
|
17
|
-
import { n as DROPDOWN_IMPORTS, r as DROPDOWN_TEMPLATE, t as BaseDropdownComponent } from "./magmonium-one-base-dropdown-
|
|
5
|
+
import { C as isLightAppColor, D as ThemeDataService, E as rebuildLogoGlyph, S as appLogoShadowColor, T as normalizeAppColor, _ 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, 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 logoGlyphMaskUrl, x as appColorBrand, y as paintAppColor } from "./magmonium-one-color-utl-DI5p24iQ.mjs";
|
|
6
|
+
import "./magmonium-one-theme-DYvNIWmo.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-D_rU82nD.mjs";
|
|
8
|
+
import { i as getScrollParent, n as activeElementWithin, r as classListSignal, t as BaseTextInputComponent } from "./magmonium-one-base-text-Di2V2ojp.mjs";
|
|
9
|
+
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-C3jwzbb2.mjs";
|
|
10
|
+
import { i as resolveConfigAsset, n as toAttrNumber, r as ConfigComponent, t as toAttrBool } from "./magmonium-one-attribute-value-C1lqou2L.mjs";
|
|
11
|
+
import { a as isButtonName, c as formatBadgeCount, l as shouldShowBadge, n as SECTION_FORM_CONTEXT, o as ReactiveElementComponent, r as ImgComponent, s as BadgeComponent, t as ButtonComponent } from "./magmonium-one-button-DZ4wCJgb.mjs";
|
|
12
|
+
import { t as MRefDirective } from "./magmonium-one-m-ref-CEms7B6-.mjs";
|
|
13
|
+
import { t as HeaderComponent } from "./magmonium-one-header-DUiBhPUP.mjs";
|
|
14
|
+
import { t as TextOutputComponent } from "./magmonium-one-text-output-BZU61QIF.mjs";
|
|
15
|
+
import { t as BaseInputComponent } from "./magmonium-one-base-input-C1Ek0Ezm.mjs";
|
|
16
|
+
import { a as stringToColor, c as ToolTipDirective, d as DragListItemDirective, f as DragListDirective, i as MHeroColorDirective, l as FileUploadDirective, n as PaddingDirective, o as HighlightDirective, p as DraggableDirective, r as SPACING_INWARD, s as PositionDirective, t as MarginDirective, u as AutosizeDirective } from "./magmonium-one-directives-B93p5bAL.mjs";
|
|
17
|
+
import { n as DROPDOWN_IMPORTS, r as DROPDOWN_TEMPLATE, t as BaseDropdownComponent } from "./magmonium-one-base-dropdown-XpTWe4Ii.mjs";
|
|
18
18
|
import { t as InputType } from "./magmonium-one-input-DqHPorA1.mjs";
|
|
19
|
-
import { t as TextInputComponent } from "./magmonium-one-text-
|
|
20
|
-
import { i as OptionsSourceDirective, n as normalizeAssetOptions, r as presetDefaultOption, t as assetOptions } from "./magmonium-one-options-asset-
|
|
21
|
-
import { r as PLACED_CHECKBOX, t as CheckboxInputComponent } from "./magmonium-one-checkbox-
|
|
22
|
-
import { i as mergeUniqueWith, n as mergeUnique, r as mergeUniqueBy, t as ButtonGroupComponent } from "./magmonium-one-group-
|
|
23
|
-
import { n as ContextMenuBoxComponent, r as MenuComponent, t as ContextMenuComponent } from "./magmonium-one-menu-
|
|
24
|
-
import { t as BaseCheckboxInputComponent } from "./magmonium-one-base-checkbox-
|
|
25
|
-
import { t as RadioInputComponent } from "./magmonium-one-radio-
|
|
26
|
-
import { r as BaseArrayInputComponent, t as MultiRangeInputComponent } from "./magmonium-one-multi-range-
|
|
27
|
-
import { t as RangeInputComponent } from "./magmonium-one-range-
|
|
19
|
+
import { t as TextInputComponent } from "./magmonium-one-text-BnTkYLJe.mjs";
|
|
20
|
+
import { i as OptionsSourceDirective, n as normalizeAssetOptions, r as presetDefaultOption, t as assetOptions } from "./magmonium-one-options-asset-BMd7W0Mk.mjs";
|
|
21
|
+
import { r as PLACED_CHECKBOX, t as CheckboxInputComponent } from "./magmonium-one-checkbox-R-hPZrCa.mjs";
|
|
22
|
+
import { i as mergeUniqueWith, n as mergeUnique, r as mergeUniqueBy, t as ButtonGroupComponent } from "./magmonium-one-group-B7YeUd1u.mjs";
|
|
23
|
+
import { n as ContextMenuBoxComponent, r as MenuComponent, t as ContextMenuComponent } from "./magmonium-one-menu-cO34OcJc.mjs";
|
|
24
|
+
import { t as BaseCheckboxInputComponent } from "./magmonium-one-base-checkbox-CIxAiA4Q.mjs";
|
|
25
|
+
import { t as RadioInputComponent } from "./magmonium-one-radio-BAL3-3j5.mjs";
|
|
26
|
+
import { r as BaseArrayInputComponent, t as MultiRangeInputComponent } from "./magmonium-one-multi-range-Bq3_3NHg.mjs";
|
|
27
|
+
import { t as RangeInputComponent } from "./magmonium-one-range-Cf7yUnhN.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";
|
|
31
31
|
import { HttpErrorResponse, provideHttpClient, withFetch, withInterceptors } from "@angular/common/http";
|
|
32
|
-
import { EMPTY, Observable, Subject, catchError, combineLatest, filter, finalize, firstValueFrom, forkJoin, from, fromEvent, map, of, pipe, race, shareReplay, startWith, switchMap, take, tap, throwError } from "rxjs";
|
|
32
|
+
import { EMPTY, Observable, Subject, catchError, combineLatest, filter, finalize, firstValueFrom, forkJoin, from, fromEvent, map, mergeMap, of, pipe, race, shareReplay, startWith, switchMap, take, tap, throwError } from "rxjs";
|
|
33
33
|
import { rxResource, takeUntilDestroyed, toObservable, toSignal } from "@angular/core/rxjs-interop";
|
|
34
34
|
import { patchState, signalStore, withComputed, withHooks, withMethods, withProps, withState } from "@ngrx/signals";
|
|
35
35
|
import { rxMethod } from "@ngrx/signals/rxjs-interop";
|
|
@@ -565,6 +565,48 @@ const NotificationStore = signalStore({ providedIn: "root" }, withState(initialN
|
|
|
565
565
|
else store.notify(notification);
|
|
566
566
|
});
|
|
567
567
|
} })));
|
|
568
|
+
var AppIdentityService = class AppIdentityService {
|
|
569
|
+
#http = inject(HttpService);
|
|
570
|
+
#cache = /* @__PURE__ */ new Map();
|
|
571
|
+
identity = (link) => {
|
|
572
|
+
const held = this.#cache.get(link);
|
|
573
|
+
if (held) return held;
|
|
574
|
+
const read = this.#http.get("store", ["identity", link]).pipe(map((identity) => identity), catchError(() => {
|
|
575
|
+
this.#cache.delete(link);
|
|
576
|
+
return of(void 0);
|
|
577
|
+
}), shareReplay(1));
|
|
578
|
+
this.#cache.set(link, read);
|
|
579
|
+
return read;
|
|
580
|
+
};
|
|
581
|
+
forget = (link) => {
|
|
582
|
+
this.#cache.delete(link);
|
|
583
|
+
};
|
|
584
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
585
|
+
minVersion: "12.0.0",
|
|
586
|
+
version: "22.2.1",
|
|
587
|
+
ngImport: i0,
|
|
588
|
+
type: AppIdentityService,
|
|
589
|
+
deps: [],
|
|
590
|
+
target: i0.ɵɵFactoryTarget.Injectable
|
|
591
|
+
});
|
|
592
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({
|
|
593
|
+
minVersion: "12.0.0",
|
|
594
|
+
version: "22.2.1",
|
|
595
|
+
ngImport: i0,
|
|
596
|
+
type: AppIdentityService,
|
|
597
|
+
providedIn: "root"
|
|
598
|
+
});
|
|
599
|
+
};
|
|
600
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
601
|
+
minVersion: "12.0.0",
|
|
602
|
+
version: "22.2.1",
|
|
603
|
+
ngImport: i0,
|
|
604
|
+
type: AppIdentityService,
|
|
605
|
+
decorators: [{
|
|
606
|
+
type: Injectable,
|
|
607
|
+
args: [{ providedIn: "root" }]
|
|
608
|
+
}]
|
|
609
|
+
});
|
|
568
610
|
const DEFAULT_NAV_PARAM = "id";
|
|
569
611
|
const navParamOf = (nav) => nav?.param ?? "id";
|
|
570
612
|
const ROOT_NAV = "root";
|
|
@@ -1169,6 +1211,7 @@ const initialState$3 = {
|
|
|
1169
1211
|
remoteWidgets: {},
|
|
1170
1212
|
navMap: createPlatformNavMap(),
|
|
1171
1213
|
wcConfigMap: {},
|
|
1214
|
+
identityMap: {},
|
|
1172
1215
|
navLoading: false
|
|
1173
1216
|
};
|
|
1174
1217
|
const routeNavIdOf = (root) => {
|
|
@@ -1231,6 +1274,7 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
1231
1274
|
router
|
|
1232
1275
|
};
|
|
1233
1276
|
}), withComputed((store) => {
|
|
1277
|
+
const assetStore = inject(AssetStore);
|
|
1234
1278
|
const navWidgetMaps = inject(NAV_WIDGET_MAP, { optional: true });
|
|
1235
1279
|
const anchorRouteNavId = computed(() => visibleNavId(store.routeNavId() ?? "root"), ...ngDevMode ? [{ debugName: "anchorRouteNavId" }] : /* istanbul ignore next */ []);
|
|
1236
1280
|
const id = computed(() => store.menuNavId() ?? navIdFor(anchorRouteNavId(), store.murl()), ...ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []);
|
|
@@ -1276,7 +1320,7 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
1276
1320
|
const navMap = store.navMap();
|
|
1277
1321
|
const listed = menuMounts();
|
|
1278
1322
|
if (!listed.length) return navMap;
|
|
1279
|
-
const
|
|
1323
|
+
const identities = store.identityMap();
|
|
1280
1324
|
const parentOf = ({ appNavId, urlMode }) => {
|
|
1281
1325
|
const host = parentNavId(appNavId);
|
|
1282
1326
|
return urlMode === "tail" && host && navMap[host] ? host : ROOT_NAV;
|
|
@@ -1284,7 +1328,7 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
1284
1328
|
const extra = listed.map((mount) => {
|
|
1285
1329
|
const { name, appNavId, link } = mount;
|
|
1286
1330
|
const fetched = navMap[appNavId];
|
|
1287
|
-
const
|
|
1331
|
+
const identity = link ? identities[link] : void 0;
|
|
1288
1332
|
return {
|
|
1289
1333
|
node: {
|
|
1290
1334
|
...fetched ?? {
|
|
@@ -1292,8 +1336,7 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
1292
1336
|
presentation: "static"
|
|
1293
1337
|
},
|
|
1294
1338
|
navId: appNavId,
|
|
1295
|
-
title:
|
|
1296
|
-
...config?.logo ? { logo: config.logo } : {}
|
|
1339
|
+
title: identity?.name ?? fetched?.title ?? name
|
|
1297
1340
|
},
|
|
1298
1341
|
parent: parentOf(mount)
|
|
1299
1342
|
};
|
|
@@ -1498,6 +1541,50 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
1498
1541
|
}, ...ngDevMode ? [{ debugName: "activeWcConfig" }] : /* istanbul ignore next */ []);
|
|
1499
1542
|
const activeAppOpen = computed(() => !!activeWcConfig()?.open, ...ngDevMode ? [{ debugName: "activeAppOpen" }] : /* istanbul ignore next */ []);
|
|
1500
1543
|
const currentWcConfig = computed(() => activeAppOpen() ? void 0 : activeWcConfig(), ...ngDevMode ? [{ debugName: "currentWcConfig" }] : /* istanbul ignore next */ []);
|
|
1544
|
+
const currentIdentity = computed(() => {
|
|
1545
|
+
const appLink = store.appLink();
|
|
1546
|
+
return appLink && !activeAppOpen() ? store.identityMap()[appLink] : void 0;
|
|
1547
|
+
}, ...ngDevMode ? [{ debugName: "currentIdentity" }] : /* istanbul ignore next */ []);
|
|
1548
|
+
const appLogoLink = computed(() => store.appLink() ?? assetStore.appLink(), ...ngDevMode ? [{ debugName: "appLogoLink" }] : /* istanbul ignore next */ []);
|
|
1549
|
+
const appLogo = computed(() => {
|
|
1550
|
+
const appLink = appLogoLink();
|
|
1551
|
+
const identity = appLink ? store.identityMap()[appLink] : void 0;
|
|
1552
|
+
if (identity?.logoGlyph) return {
|
|
1553
|
+
glyph: identity.logoGlyph,
|
|
1554
|
+
name: identity.name
|
|
1555
|
+
};
|
|
1556
|
+
if (appLink && !activeAppOpen()) return {
|
|
1557
|
+
glyph: null,
|
|
1558
|
+
name: identity?.name ?? appLink
|
|
1559
|
+
};
|
|
1560
|
+
const root = store.navMap()[ROOT_NAV];
|
|
1561
|
+
if (root?.logo) return {
|
|
1562
|
+
src: root.logo,
|
|
1563
|
+
name: root.title
|
|
1564
|
+
};
|
|
1565
|
+
return { name: identity?.name ?? appLink ?? root?.title };
|
|
1566
|
+
}, ...ngDevMode ? [{ debugName: "appLogo" }] : /* istanbul ignore next */ []);
|
|
1567
|
+
const appLogos = computed(() => {
|
|
1568
|
+
const logos = {};
|
|
1569
|
+
for (const [link, identity] of Object.entries(store.identityMap())) {
|
|
1570
|
+
const color = identity.appColor;
|
|
1571
|
+
if (identity.logoGlyph) logos[link] = {
|
|
1572
|
+
glyph: identity.logoGlyph,
|
|
1573
|
+
name: identity.name,
|
|
1574
|
+
color
|
|
1575
|
+
};
|
|
1576
|
+
else if (!identity.open) logos[link] = {
|
|
1577
|
+
glyph: null,
|
|
1578
|
+
name: identity.name || link,
|
|
1579
|
+
color
|
|
1580
|
+
};
|
|
1581
|
+
else if (color) logos[link] = {
|
|
1582
|
+
name: identity.name || link,
|
|
1583
|
+
color
|
|
1584
|
+
};
|
|
1585
|
+
}
|
|
1586
|
+
return logos;
|
|
1587
|
+
}, ...ngDevMode ? [{ debugName: "appLogos" }] : /* istanbul ignore next */ []);
|
|
1501
1588
|
const answeringNavId = (candidates, hit) => {
|
|
1502
1589
|
if (hit) return hit.navId;
|
|
1503
1590
|
const map = store.navMap();
|
|
@@ -1536,8 +1623,32 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
1536
1623
|
hasOwnContent: !!widgetConfig || !!emittedMenu?.length
|
|
1537
1624
|
});
|
|
1538
1625
|
}, ...ngDevMode ? [{ debugName: "breadcrumbResult" }] : /* istanbul ignore next */ []);
|
|
1539
|
-
const
|
|
1540
|
-
const
|
|
1626
|
+
const appLinkByNavId = computed(() => Object.fromEntries([...allMounts(), ...menuMounts()].flatMap(({ appNavId, link }) => link ? [[appNavId, link]] : [])), ...ngDevMode ? [{ debugName: "appLinkByNavId" }] : /* istanbul ignore next */ []);
|
|
1627
|
+
const withAppLogo = computed(() => {
|
|
1628
|
+
const links = appLinkByNavId();
|
|
1629
|
+
const identities = store.identityMap();
|
|
1630
|
+
return (entry) => {
|
|
1631
|
+
const link = links[entry.nav ?? entry.id];
|
|
1632
|
+
const identity = link ? identities[link] : void 0;
|
|
1633
|
+
if (!link || !identity || identity.open && !identity.logoGlyph) return entry;
|
|
1634
|
+
return {
|
|
1635
|
+
...entry,
|
|
1636
|
+
appLogo: {
|
|
1637
|
+
glyph: identity.logoGlyph,
|
|
1638
|
+
color: identity.appColor,
|
|
1639
|
+
name: identity.name || link
|
|
1640
|
+
}
|
|
1641
|
+
};
|
|
1642
|
+
};
|
|
1643
|
+
}, ...ngDevMode ? [{ debugName: "withAppLogo" }] : /* istanbul ignore next */ []);
|
|
1644
|
+
const breadcrumb = computed(() => {
|
|
1645
|
+
const crumb = breadcrumbResult().breadcrumb;
|
|
1646
|
+
return {
|
|
1647
|
+
...crumb,
|
|
1648
|
+
header: withAppLogo()(crumb.header)
|
|
1649
|
+
};
|
|
1650
|
+
}, ...ngDevMode ? [{ debugName: "breadcrumb" }] : /* istanbul ignore next */ []);
|
|
1651
|
+
const navMenus = computed(() => breadcrumbResult().navMenus.map(withAppLogo()), ...ngDevMode ? [{ debugName: "navMenus" }] : /* istanbul ignore next */ []);
|
|
1541
1652
|
return {
|
|
1542
1653
|
id,
|
|
1543
1654
|
allMounts,
|
|
@@ -1562,6 +1673,10 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
1562
1673
|
return false;
|
|
1563
1674
|
}, ...ngDevMode ? [{ debugName: "navHasContent" }] : /* istanbul ignore next */ []),
|
|
1564
1675
|
currentWcConfig,
|
|
1676
|
+
currentIdentity,
|
|
1677
|
+
appLogoLink,
|
|
1678
|
+
appLogo,
|
|
1679
|
+
appLogos,
|
|
1565
1680
|
activeAppOpen,
|
|
1566
1681
|
transparentNavIds,
|
|
1567
1682
|
resolvedNavMenuConfig,
|
|
@@ -1572,6 +1687,7 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
1572
1687
|
};
|
|
1573
1688
|
}), withMethods((store) => {
|
|
1574
1689
|
const getNavService = inject(GetNavService);
|
|
1690
|
+
const appIdentityService = inject(AppIdentityService);
|
|
1575
1691
|
const localDefaultNavId = inject(NAV_DEFAULT_MURL, { optional: true });
|
|
1576
1692
|
const appBaseHref = inject(APP_BASE_HREF, { optional: true }) ?? "/";
|
|
1577
1693
|
const location = inject(Location);
|
|
@@ -1755,6 +1871,15 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
1755
1871
|
} }));
|
|
1756
1872
|
};
|
|
1757
1873
|
const loadWcConfig = rxMethod(pipe(filter((appLink) => !!appLink), filter((appLink) => !untracked(() => !!store.wcConfigMap()[appLink])), switchMap((appLink) => getNavService.loadWcConfig(appLink).pipe(tap((config) => untracked(() => setWcConfig(appLink, config)))))));
|
|
1874
|
+
const setIdentity = (identity) => {
|
|
1875
|
+
patchState(store, (state) => ({ identityMap: {
|
|
1876
|
+
...state.identityMap,
|
|
1877
|
+
[identity.link]: identity
|
|
1878
|
+
} }));
|
|
1879
|
+
};
|
|
1880
|
+
const loadIdentity = rxMethod(pipe(filter((appLink) => !!appLink), filter((appLink) => !untracked(() => !!store.identityMap()[appLink])), mergeMap((appLink) => appIdentityService.identity(appLink).pipe(tap((identity) => {
|
|
1881
|
+
if (identity) untracked(() => setIdentity(identity));
|
|
1882
|
+
})))));
|
|
1758
1883
|
const setAppLink = (appLink, appNavId) => {
|
|
1759
1884
|
patchState(store, {
|
|
1760
1885
|
appLink,
|
|
@@ -1762,6 +1887,7 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
1762
1887
|
});
|
|
1763
1888
|
settleRoute();
|
|
1764
1889
|
loadWcConfig(appLink);
|
|
1890
|
+
loadIdentity(appLink);
|
|
1765
1891
|
};
|
|
1766
1892
|
const registerMount = (mount) => {
|
|
1767
1893
|
const previous = untracked(() => store.mounts())[mount.name];
|
|
@@ -1777,6 +1903,7 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
1777
1903
|
settleRoute();
|
|
1778
1904
|
translateService.mountRemoteApp(mount.link);
|
|
1779
1905
|
loadWcConfig(mount.link);
|
|
1906
|
+
loadIdentity(mount.link);
|
|
1780
1907
|
const standsOn = untracked(() => store.hostRoute()).navId === mount.appNavId;
|
|
1781
1908
|
if (mount.createMenu || stale.length || standsOn) loadMountNav(mount);
|
|
1782
1909
|
};
|
|
@@ -1879,6 +2006,8 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
1879
2006
|
mountOf,
|
|
1880
2007
|
setWcConfig,
|
|
1881
2008
|
loadWcConfig,
|
|
2009
|
+
setIdentity,
|
|
2010
|
+
loadIdentity,
|
|
1882
2011
|
loadNav,
|
|
1883
2012
|
registerWidgets,
|
|
1884
2013
|
back,
|
|
@@ -1891,8 +2020,12 @@ const NavStore = signalStore({ providedIn: "root" }, withState(initialState$3),
|
|
|
1891
2020
|
navIdChain
|
|
1892
2021
|
};
|
|
1893
2022
|
}), withHooks((store) => {
|
|
2023
|
+
const appLogoState = inject(AppLogoState);
|
|
1894
2024
|
return { onInit() {
|
|
1895
2025
|
store.syncFromRouter(store.navigationEnd);
|
|
2026
|
+
store.loadIdentity(store.appLogoLink);
|
|
2027
|
+
effect(() => appLogoState.set(store.appLogo()));
|
|
2028
|
+
effect(() => appLogoState.setLogos(store.appLogos()));
|
|
1896
2029
|
const loadedFor = /* @__PURE__ */ new Set();
|
|
1897
2030
|
effect(() => {
|
|
1898
2031
|
const loaders = store.visibilityLoaders();
|
|
@@ -3002,7 +3135,8 @@ var ConfirmComponent = class ConfirmComponent {
|
|
|
3002
3135
|
"size",
|
|
3003
3136
|
"one",
|
|
3004
3137
|
"baseUrl",
|
|
3005
|
-
"remote"
|
|
3138
|
+
"remote",
|
|
3139
|
+
"shadow"
|
|
3006
3140
|
],
|
|
3007
3141
|
outputs: ["configChange"]
|
|
3008
3142
|
},
|
|
@@ -3340,6 +3474,7 @@ function initMagmoniumApp({ backend, authUrl, socketUrl }) {
|
|
|
3340
3474
|
SharedStoreRegistry.setTranslateService(translateService);
|
|
3341
3475
|
SharedStoreRegistry.setLoadingActions(loadingActions);
|
|
3342
3476
|
SharedStoreRegistry.setNotificationStore(inject(NotificationStore));
|
|
3477
|
+
SharedStoreRegistry.setAppLogoState(inject(AppLogoState));
|
|
3343
3478
|
if (navStore) SharedStoreRegistry.setNavStore(navStore);
|
|
3344
3479
|
if (loginStore) SharedStoreRegistry.setLoginStore(loginStore);
|
|
3345
3480
|
const effectiveBackend = backend || "http://localhost:8000";
|
|
@@ -4076,12 +4211,12 @@ var SectionFormItemComponent = class SectionFormItemComponent extends ConfigComp
|
|
|
4076
4211
|
try {
|
|
4077
4212
|
switch (type) {
|
|
4078
4213
|
case InputType.RADIO: {
|
|
4079
|
-
const { RadioInputComponent } = await import("./magmonium-one-radio-
|
|
4214
|
+
const { RadioInputComponent } = await import("./magmonium-one-radio-BAL3-3j5.mjs").then((n) => n.n);
|
|
4080
4215
|
this.createDynamicComponent(seq, RadioInputComponent);
|
|
4081
4216
|
break;
|
|
4082
4217
|
}
|
|
4083
4218
|
case InputType.TOGGLE: {
|
|
4084
|
-
const { ToggleInputComponent } = await import("./magmonium-one-toggle-
|
|
4219
|
+
const { ToggleInputComponent } = await import("./magmonium-one-toggle-V_YnZXx5.mjs");
|
|
4085
4220
|
this.createDynamicComponent(seq, ToggleInputComponent, [], true);
|
|
4086
4221
|
break;
|
|
4087
4222
|
}
|
|
@@ -4091,12 +4226,12 @@ var SectionFormItemComponent = class SectionFormItemComponent extends ConfigComp
|
|
|
4091
4226
|
break;
|
|
4092
4227
|
}
|
|
4093
4228
|
case InputType.PASSWORD: {
|
|
4094
|
-
const { PasswordInputComponent } = await import("./magmonium-one-password-
|
|
4229
|
+
const { PasswordInputComponent } = await import("./magmonium-one-password-IdllPMUw.mjs");
|
|
4095
4230
|
this.createDynamicComponent(seq, PasswordInputComponent);
|
|
4096
4231
|
break;
|
|
4097
4232
|
}
|
|
4098
4233
|
case InputType.OTP: {
|
|
4099
|
-
const { OtpInputComponent } = await import("./magmonium-one-otp-
|
|
4234
|
+
const { OtpInputComponent } = await import("./magmonium-one-otp-V2tFztLx.mjs");
|
|
4100
4235
|
this.createDynamicComponent(seq, OtpInputComponent);
|
|
4101
4236
|
break;
|
|
4102
4237
|
}
|
|
@@ -4106,7 +4241,7 @@ var SectionFormItemComponent = class SectionFormItemComponent extends ConfigComp
|
|
|
4106
4241
|
break;
|
|
4107
4242
|
}
|
|
4108
4243
|
case InputType.CHECKBOX: {
|
|
4109
|
-
const { CheckboxInputComponent } = await import("./magmonium-one-checkbox-
|
|
4244
|
+
const { CheckboxInputComponent } = await import("./magmonium-one-checkbox-R-hPZrCa.mjs").then((n) => n.n);
|
|
4110
4245
|
this.createDynamicComponent(seq, CheckboxInputComponent, [], true);
|
|
4111
4246
|
break;
|
|
4112
4247
|
}
|
|
@@ -4121,12 +4256,12 @@ var SectionFormItemComponent = class SectionFormItemComponent extends ConfigComp
|
|
|
4121
4256
|
break;
|
|
4122
4257
|
}
|
|
4123
4258
|
case InputType.RANGE: {
|
|
4124
|
-
const { RangeInputComponent } = await import("./magmonium-one-range-
|
|
4259
|
+
const { RangeInputComponent } = await import("./magmonium-one-range-Cf7yUnhN.mjs").then((n) => n.n);
|
|
4125
4260
|
this.createDynamicComponent(seq, RangeInputComponent);
|
|
4126
4261
|
break;
|
|
4127
4262
|
}
|
|
4128
4263
|
case InputType.MULTI_RANGE: {
|
|
4129
|
-
const { MultiRangeInputComponent } = await import("./magmonium-one-multi-range-
|
|
4264
|
+
const { MultiRangeInputComponent } = await import("./magmonium-one-multi-range-Bq3_3NHg.mjs").then((n) => n.n);
|
|
4130
4265
|
this.createDynamicComponent(seq, MultiRangeInputComponent);
|
|
4131
4266
|
break;
|
|
4132
4267
|
}
|
|
@@ -4177,7 +4312,7 @@ var SectionFormItemComponent = class SectionFormItemComponent extends ConfigComp
|
|
|
4177
4312
|
break;
|
|
4178
4313
|
}
|
|
4179
4314
|
default: {
|
|
4180
|
-
const { TextInputComponent } = await import("./magmonium-one-text-
|
|
4315
|
+
const { TextInputComponent } = await import("./magmonium-one-text-BnTkYLJe.mjs").then((n) => n.n);
|
|
4181
4316
|
this.createDynamicComponent(seq, TextInputComponent);
|
|
4182
4317
|
break;
|
|
4183
4318
|
}
|
|
@@ -6547,7 +6682,8 @@ var SectionBackComponent = class SectionBackComponent {
|
|
|
6547
6682
|
"size",
|
|
6548
6683
|
"one",
|
|
6549
6684
|
"baseUrl",
|
|
6550
|
-
"remote"
|
|
6685
|
+
"remote",
|
|
6686
|
+
"shadow"
|
|
6551
6687
|
],
|
|
6552
6688
|
outputs: ["configChange"]
|
|
6553
6689
|
},
|
|
@@ -6991,7 +7127,8 @@ var ActionComponent = class ActionComponent extends ButtonGroupComponent {
|
|
|
6991
7127
|
"size",
|
|
6992
7128
|
"one",
|
|
6993
7129
|
"baseUrl",
|
|
6994
|
-
"remote"
|
|
7130
|
+
"remote",
|
|
7131
|
+
"shadow"
|
|
6995
7132
|
],
|
|
6996
7133
|
outputs: ["configChange"]
|
|
6997
7134
|
},
|
|
@@ -7351,7 +7488,8 @@ var ClearableInputComponent = class ClearableInputComponent extends BaseTextInpu
|
|
|
7351
7488
|
"size",
|
|
7352
7489
|
"one",
|
|
7353
7490
|
"baseUrl",
|
|
7354
|
-
"remote"
|
|
7491
|
+
"remote",
|
|
7492
|
+
"shadow"
|
|
7355
7493
|
],
|
|
7356
7494
|
outputs: ["configChange"]
|
|
7357
7495
|
},
|
|
@@ -9527,7 +9665,8 @@ var SectionFilterMenuComponent = class SectionFilterMenuComponent {
|
|
|
9527
9665
|
"size",
|
|
9528
9666
|
"one",
|
|
9529
9667
|
"baseUrl",
|
|
9530
|
-
"remote"
|
|
9668
|
+
"remote",
|
|
9669
|
+
"shadow"
|
|
9531
9670
|
],
|
|
9532
9671
|
outputs: ["configChange"]
|
|
9533
9672
|
},
|
|
@@ -14577,7 +14716,8 @@ var AuthActivityPageComponent = class AuthActivityPageComponent {
|
|
|
14577
14716
|
"size",
|
|
14578
14717
|
"one",
|
|
14579
14718
|
"baseUrl",
|
|
14580
|
-
"remote"
|
|
14719
|
+
"remote",
|
|
14720
|
+
"shadow"
|
|
14581
14721
|
],
|
|
14582
14722
|
outputs: ["configChange"]
|
|
14583
14723
|
},
|
|
@@ -16723,8 +16863,8 @@ var SectionHeaderComponent = class SectionHeaderComponent {
|
|
|
16723
16863
|
classAttribute: "m-section-header"
|
|
16724
16864
|
},
|
|
16725
16865
|
ngImport: i0,
|
|
16726
|
-
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 <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 [level]=\"level()\"\n [label]=\"label()\"\n [icon]=\"icon()\"\n [params]=\"params()\"\n [noTranslate]=\"noTranslate()\" />\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",
|
|
16727
|
-
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{display:contents}.section-
|
|
16866
|
+
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 [level]=\"level()\"\n [label]=\"label()\"\n [icon]=\"icon()\"\n [params]=\"params()\"\n [noTranslate]=\"noTranslate()\" />\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",
|
|
16867
|
+
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"],
|
|
16728
16868
|
dependencies: [
|
|
16729
16869
|
{
|
|
16730
16870
|
kind: "directive",
|
|
@@ -16778,7 +16918,8 @@ var SectionHeaderComponent = class SectionHeaderComponent {
|
|
|
16778
16918
|
"size",
|
|
16779
16919
|
"one",
|
|
16780
16920
|
"baseUrl",
|
|
16781
|
-
"remote"
|
|
16921
|
+
"remote",
|
|
16922
|
+
"shadow"
|
|
16782
16923
|
],
|
|
16783
16924
|
outputs: ["configChange"]
|
|
16784
16925
|
},
|
|
@@ -16855,8 +16996,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
16855
16996
|
"[class.is-accordion]": "!!accordion()",
|
|
16856
16997
|
"(click)": "onHeaderClick($event)"
|
|
16857
16998
|
},
|
|
16858
|
-
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 <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 [level]=\"level()\"\n [label]=\"label()\"\n [icon]=\"icon()\"\n [params]=\"params()\"\n [noTranslate]=\"noTranslate()\" />\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",
|
|
16859
|
-
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{display:contents}.section-
|
|
16999
|
+
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 [level]=\"level()\"\n [label]=\"label()\"\n [icon]=\"icon()\"\n [params]=\"params()\"\n [noTranslate]=\"noTranslate()\" />\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",
|
|
17000
|
+
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"]
|
|
16860
17001
|
}]
|
|
16861
17002
|
}],
|
|
16862
17003
|
propDecorators: {
|
|
@@ -17310,7 +17451,8 @@ var SectionTableComponent = class SectionTableComponent extends ConfigComponent
|
|
|
17310
17451
|
"size",
|
|
17311
17452
|
"one",
|
|
17312
17453
|
"baseUrl",
|
|
17313
|
-
"remote"
|
|
17454
|
+
"remote",
|
|
17455
|
+
"shadow"
|
|
17314
17456
|
],
|
|
17315
17457
|
outputs: ["configChange"]
|
|
17316
17458
|
},
|
|
@@ -18418,7 +18560,8 @@ var TextareaInputComponent = class TextareaInputComponent extends BaseTextInputC
|
|
|
18418
18560
|
"size",
|
|
18419
18561
|
"one",
|
|
18420
18562
|
"baseUrl",
|
|
18421
|
-
"remote"
|
|
18563
|
+
"remote",
|
|
18564
|
+
"shadow"
|
|
18422
18565
|
],
|
|
18423
18566
|
outputs: ["configChange"]
|
|
18424
18567
|
}
|
|
@@ -21372,7 +21515,8 @@ var ColorPickerInputComponent = class ColorPickerInputComponent extends BaseText
|
|
|
21372
21515
|
"size",
|
|
21373
21516
|
"one",
|
|
21374
21517
|
"baseUrl",
|
|
21375
|
-
"remote"
|
|
21518
|
+
"remote",
|
|
21519
|
+
"shadow"
|
|
21376
21520
|
],
|
|
21377
21521
|
outputs: ["configChange"]
|
|
21378
21522
|
},
|
|
@@ -21637,12 +21781,12 @@ var WrapperInputComponent = class WrapperInputComponent extends ConfigComponent
|
|
|
21637
21781
|
const seq = ++this.dynamicSeq;
|
|
21638
21782
|
switch (this.config()?.type) {
|
|
21639
21783
|
case InputType.RADIO: {
|
|
21640
|
-
const { RadioInputComponent } = await import("./magmonium-one-radio-
|
|
21784
|
+
const { RadioInputComponent } = await import("./magmonium-one-radio-BAL3-3j5.mjs").then((n) => n.n);
|
|
21641
21785
|
this.createDynamicComponent(seq, RadioInputComponent);
|
|
21642
21786
|
break;
|
|
21643
21787
|
}
|
|
21644
21788
|
case InputType.TOGGLE: {
|
|
21645
|
-
const { ToggleInputComponent } = await import("./magmonium-one-toggle-
|
|
21789
|
+
const { ToggleInputComponent } = await import("./magmonium-one-toggle-V_YnZXx5.mjs");
|
|
21646
21790
|
this.createDynamicComponent(seq, ToggleInputComponent, [], true);
|
|
21647
21791
|
break;
|
|
21648
21792
|
}
|
|
@@ -21652,12 +21796,12 @@ var WrapperInputComponent = class WrapperInputComponent extends ConfigComponent
|
|
|
21652
21796
|
break;
|
|
21653
21797
|
}
|
|
21654
21798
|
case InputType.PASSWORD: {
|
|
21655
|
-
const { PasswordInputComponent } = await import("./magmonium-one-password-
|
|
21799
|
+
const { PasswordInputComponent } = await import("./magmonium-one-password-IdllPMUw.mjs");
|
|
21656
21800
|
this.createDynamicComponent(seq, PasswordInputComponent);
|
|
21657
21801
|
break;
|
|
21658
21802
|
}
|
|
21659
21803
|
case InputType.OTP: {
|
|
21660
|
-
const { OtpInputComponent } = await import("./magmonium-one-otp-
|
|
21804
|
+
const { OtpInputComponent } = await import("./magmonium-one-otp-V2tFztLx.mjs");
|
|
21661
21805
|
this.createDynamicComponent(seq, OtpInputComponent);
|
|
21662
21806
|
break;
|
|
21663
21807
|
}
|
|
@@ -21667,7 +21811,7 @@ var WrapperInputComponent = class WrapperInputComponent extends ConfigComponent
|
|
|
21667
21811
|
break;
|
|
21668
21812
|
}
|
|
21669
21813
|
case InputType.CHECKBOX: {
|
|
21670
|
-
const { CheckboxInputComponent } = await import("./magmonium-one-checkbox-
|
|
21814
|
+
const { CheckboxInputComponent } = await import("./magmonium-one-checkbox-R-hPZrCa.mjs").then((n) => n.n);
|
|
21671
21815
|
this.createDynamicComponent(seq, CheckboxInputComponent, [], true);
|
|
21672
21816
|
break;
|
|
21673
21817
|
}
|
|
@@ -21682,12 +21826,12 @@ var WrapperInputComponent = class WrapperInputComponent extends ConfigComponent
|
|
|
21682
21826
|
break;
|
|
21683
21827
|
}
|
|
21684
21828
|
case InputType.RANGE: {
|
|
21685
|
-
const { RangeInputComponent } = await import("./magmonium-one-range-
|
|
21829
|
+
const { RangeInputComponent } = await import("./magmonium-one-range-Cf7yUnhN.mjs").then((n) => n.n);
|
|
21686
21830
|
this.createDynamicComponent(seq, RangeInputComponent);
|
|
21687
21831
|
break;
|
|
21688
21832
|
}
|
|
21689
21833
|
case InputType.MULTI_RANGE: {
|
|
21690
|
-
const { MultiRangeInputComponent } = await import("./magmonium-one-multi-range-
|
|
21834
|
+
const { MultiRangeInputComponent } = await import("./magmonium-one-multi-range-Bq3_3NHg.mjs").then((n) => n.n);
|
|
21691
21835
|
this.createDynamicComponent(seq, MultiRangeInputComponent);
|
|
21692
21836
|
break;
|
|
21693
21837
|
}
|
|
@@ -21738,7 +21882,7 @@ var WrapperInputComponent = class WrapperInputComponent extends ConfigComponent
|
|
|
21738
21882
|
break;
|
|
21739
21883
|
}
|
|
21740
21884
|
default: {
|
|
21741
|
-
const { TextInputComponent } = await import("./magmonium-one-text-
|
|
21885
|
+
const { TextInputComponent } = await import("./magmonium-one-text-BnTkYLJe.mjs").then((n) => n.n);
|
|
21742
21886
|
this.createDynamicComponent(seq, TextInputComponent);
|
|
21743
21887
|
break;
|
|
21744
21888
|
}
|
|
@@ -22669,7 +22813,8 @@ var ToggleRadioInputComponent = class ToggleRadioInputComponent extends BaseText
|
|
|
22669
22813
|
"size",
|
|
22670
22814
|
"one",
|
|
22671
22815
|
"baseUrl",
|
|
22672
|
-
"remote"
|
|
22816
|
+
"remote",
|
|
22817
|
+
"shadow"
|
|
22673
22818
|
],
|
|
22674
22819
|
outputs: ["configChange"]
|
|
22675
22820
|
},
|
|
@@ -23037,7 +23182,8 @@ var SelectableCardInputComponent = class SelectableCardInputComponent extends Ba
|
|
|
23037
23182
|
"size",
|
|
23038
23183
|
"one",
|
|
23039
23184
|
"baseUrl",
|
|
23040
|
-
"remote"
|
|
23185
|
+
"remote",
|
|
23186
|
+
"shadow"
|
|
23041
23187
|
],
|
|
23042
23188
|
outputs: ["configChange"]
|
|
23043
23189
|
},
|
|
@@ -24054,7 +24200,7 @@ var FileUploadInputComponent = class FileUploadInputComponent extends BaseInputC
|
|
|
24054
24200
|
openEditor = async (file, size) => {
|
|
24055
24201
|
const modalStore = this.modalStore;
|
|
24056
24202
|
if (!modalStore) return void 0;
|
|
24057
|
-
const { ImageEditorComponent } = await import("./magmonium-one-image-editor-
|
|
24203
|
+
const { ImageEditorComponent } = await import("./magmonium-one-image-editor-BRTk8i4O.mjs");
|
|
24058
24204
|
const ratio = String(this.config()?.ratio ?? "");
|
|
24059
24205
|
return new Promise((resolve) => {
|
|
24060
24206
|
const modalRef = new ModalRef();
|
|
@@ -24293,7 +24439,8 @@ var FileUploadInputComponent = class FileUploadInputComponent extends BaseInputC
|
|
|
24293
24439
|
"size",
|
|
24294
24440
|
"one",
|
|
24295
24441
|
"baseUrl",
|
|
24296
|
-
"remote"
|
|
24442
|
+
"remote",
|
|
24443
|
+
"shadow"
|
|
24297
24444
|
],
|
|
24298
24445
|
outputs: ["configChange"]
|
|
24299
24446
|
},
|
|
@@ -24734,7 +24881,8 @@ var ListComponent = class ListComponent extends ConfigComponent {
|
|
|
24734
24881
|
"size",
|
|
24735
24882
|
"one",
|
|
24736
24883
|
"baseUrl",
|
|
24737
|
-
"remote"
|
|
24884
|
+
"remote",
|
|
24885
|
+
"shadow"
|
|
24738
24886
|
],
|
|
24739
24887
|
outputs: ["configChange"]
|
|
24740
24888
|
},
|
|
@@ -25784,7 +25932,8 @@ var StepComponent = class StepComponent {
|
|
|
25784
25932
|
"size",
|
|
25785
25933
|
"one",
|
|
25786
25934
|
"baseUrl",
|
|
25787
|
-
"remote"
|
|
25935
|
+
"remote",
|
|
25936
|
+
"shadow"
|
|
25788
25937
|
],
|
|
25789
25938
|
outputs: ["configChange"]
|
|
25790
25939
|
},
|
|
@@ -27164,7 +27313,8 @@ var DashboardCardComponent = class DashboardCardComponent {
|
|
|
27164
27313
|
"size",
|
|
27165
27314
|
"one",
|
|
27166
27315
|
"baseUrl",
|
|
27167
|
-
"remote"
|
|
27316
|
+
"remote",
|
|
27317
|
+
"shadow"
|
|
27168
27318
|
],
|
|
27169
27319
|
outputs: ["configChange"]
|
|
27170
27320
|
},
|
|
@@ -27656,7 +27806,8 @@ var WatermarkComponent = class WatermarkComponent extends ConfigComponent {
|
|
|
27656
27806
|
"size",
|
|
27657
27807
|
"one",
|
|
27658
27808
|
"baseUrl",
|
|
27659
|
-
"remote"
|
|
27809
|
+
"remote",
|
|
27810
|
+
"shadow"
|
|
27660
27811
|
],
|
|
27661
27812
|
outputs: ["configChange"]
|
|
27662
27813
|
}, {
|
|
@@ -27935,7 +28086,8 @@ var TechnicalMeterComponent = class TechnicalMeterComponent {
|
|
|
27935
28086
|
"size",
|
|
27936
28087
|
"one",
|
|
27937
28088
|
"baseUrl",
|
|
27938
|
-
"remote"
|
|
28089
|
+
"remote",
|
|
28090
|
+
"shadow"
|
|
27939
28091
|
],
|
|
27940
28092
|
outputs: ["configChange"]
|
|
27941
28093
|
},
|
|
@@ -29106,6 +29258,7 @@ var RemoteComponent = class RemoteComponent {
|
|
|
29106
29258
|
navRef = inject(NAV_STORE_REF, { optional: true });
|
|
29107
29259
|
reloadPage = inject(REMOTE_PAGE_RELOAD);
|
|
29108
29260
|
assetStore = inject(AssetStore);
|
|
29261
|
+
appLogoState = inject(AppLogoState);
|
|
29109
29262
|
loadedElement;
|
|
29110
29263
|
loadId = 0;
|
|
29111
29264
|
mountedLink;
|
|
@@ -29140,7 +29293,13 @@ var RemoteComponent = class RemoteComponent {
|
|
|
29140
29293
|
return navUrl === void 0 ? void 0 : `${navUrl}${this.hostQuery()}`;
|
|
29141
29294
|
}, ...ngDevMode ? [{ debugName: "remotePath" }] : /* istanbul ignore next */ []);
|
|
29142
29295
|
ownTail = computed(() => this.mountMatch()?.navUrl ?? this.tail(), ...ngDevMode ? [{ debugName: "ownTail" }] : /* istanbul ignore next */ []);
|
|
29296
|
+
appColor = computed(() => {
|
|
29297
|
+
const link = this.appLink();
|
|
29298
|
+
const color = link ? this.appLogoState.logos()[link]?.color : void 0;
|
|
29299
|
+
return color ? normalizeAppColor(color) : void 0;
|
|
29300
|
+
}, ...ngDevMode ? [{ debugName: "appColor" }] : /* istanbul ignore next */ []);
|
|
29143
29301
|
constructor() {
|
|
29302
|
+
effect(() => paintAppColor(this.elementRef.nativeElement, this.appColor()));
|
|
29144
29303
|
effect(() => {
|
|
29145
29304
|
this.loginStore?.isLoggedIn();
|
|
29146
29305
|
const config = this.config();
|
|
@@ -29516,7 +29675,8 @@ var RemoteComponent = class RemoteComponent {
|
|
|
29516
29675
|
"size",
|
|
29517
29676
|
"one",
|
|
29518
29677
|
"baseUrl",
|
|
29519
|
-
"remote"
|
|
29678
|
+
"remote",
|
|
29679
|
+
"shadow"
|
|
29520
29680
|
],
|
|
29521
29681
|
outputs: ["configChange"]
|
|
29522
29682
|
},
|
|
@@ -30065,7 +30225,8 @@ var PluginComponent = class PluginComponent {
|
|
|
30065
30225
|
"size",
|
|
30066
30226
|
"one",
|
|
30067
30227
|
"baseUrl",
|
|
30068
|
-
"remote"
|
|
30228
|
+
"remote",
|
|
30229
|
+
"shadow"
|
|
30069
30230
|
],
|
|
30070
30231
|
outputs: ["configChange"]
|
|
30071
30232
|
}, {
|
|
@@ -31098,7 +31259,8 @@ var SortComponent = class SortComponent extends ConfigComponent {
|
|
|
31098
31259
|
"size",
|
|
31099
31260
|
"one",
|
|
31100
31261
|
"baseUrl",
|
|
31101
|
-
"remote"
|
|
31262
|
+
"remote",
|
|
31263
|
+
"shadow"
|
|
31102
31264
|
],
|
|
31103
31265
|
outputs: ["configChange"]
|
|
31104
31266
|
},
|
|
@@ -33310,7 +33472,8 @@ var TableBodyComponent = class TableBodyComponent {
|
|
|
33310
33472
|
"size",
|
|
33311
33473
|
"one",
|
|
33312
33474
|
"baseUrl",
|
|
33313
|
-
"remote"
|
|
33475
|
+
"remote",
|
|
33476
|
+
"shadow"
|
|
33314
33477
|
],
|
|
33315
33478
|
outputs: ["configChange"]
|
|
33316
33479
|
},
|
|
@@ -35690,7 +35853,8 @@ var TreeGridComponent = class TreeGridComponent extends ConfigComponent {
|
|
|
35690
35853
|
"size",
|
|
35691
35854
|
"one",
|
|
35692
35855
|
"baseUrl",
|
|
35693
|
-
"remote"
|
|
35856
|
+
"remote",
|
|
35857
|
+
"shadow"
|
|
35694
35858
|
],
|
|
35695
35859
|
outputs: ["configChange"]
|
|
35696
35860
|
},
|
|
@@ -36538,7 +36702,8 @@ var SummaryComponent = class SummaryComponent extends ConfigComponent {
|
|
|
36538
36702
|
"size",
|
|
36539
36703
|
"one",
|
|
36540
36704
|
"baseUrl",
|
|
36541
|
-
"remote"
|
|
36705
|
+
"remote",
|
|
36706
|
+
"shadow"
|
|
36542
36707
|
],
|
|
36543
36708
|
outputs: ["configChange"]
|
|
36544
36709
|
},
|
|
@@ -36833,7 +36998,8 @@ var AccordionComponent = class AccordionComponent extends ConfigComponent {
|
|
|
36833
36998
|
"size",
|
|
36834
36999
|
"one",
|
|
36835
37000
|
"baseUrl",
|
|
36836
|
-
"remote"
|
|
37001
|
+
"remote",
|
|
37002
|
+
"shadow"
|
|
36837
37003
|
],
|
|
36838
37004
|
outputs: ["configChange"]
|
|
36839
37005
|
},
|
|
@@ -37629,7 +37795,8 @@ var NothingComponent = class NothingComponent {
|
|
|
37629
37795
|
"size",
|
|
37630
37796
|
"one",
|
|
37631
37797
|
"baseUrl",
|
|
37632
|
-
"remote"
|
|
37798
|
+
"remote",
|
|
37799
|
+
"shadow"
|
|
37633
37800
|
],
|
|
37634
37801
|
outputs: ["configChange"]
|
|
37635
37802
|
},
|
|
@@ -37810,6 +37977,140 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
37810
37977
|
args: ["inner", { isSignal: true }]
|
|
37811
37978
|
}] }
|
|
37812
37979
|
});
|
|
37980
|
+
var AppLogoComponent = class AppLogoComponent {
|
|
37981
|
+
glyph = input(...ngDevMode ? [void 0, { debugName: "glyph" }] : /* istanbul ignore next */ []);
|
|
37982
|
+
appColor = input(...ngDevMode ? [void 0, { debugName: "appColor" }] : /* istanbul ignore next */ []);
|
|
37983
|
+
name = input(...ngDevMode ? [void 0, { debugName: "name" }] : /* istanbul ignore next */ []);
|
|
37984
|
+
color = computed(() => {
|
|
37985
|
+
const value = this.appColor();
|
|
37986
|
+
return value ? normalizeAppColor(value) ?? null : null;
|
|
37987
|
+
}, ...ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []);
|
|
37988
|
+
shadow = computed(() => {
|
|
37989
|
+
const color = this.color();
|
|
37990
|
+
return color ? appLogoShadowColor(color) : null;
|
|
37991
|
+
}, ...ngDevMode ? [{ debugName: "shadow" }] : /* istanbul ignore next */ []);
|
|
37992
|
+
mask = computed(() => {
|
|
37993
|
+
const glyph = this.glyph();
|
|
37994
|
+
return glyph ? logoGlyphMaskUrl(glyph) : void 0;
|
|
37995
|
+
}, ...ngDevMode ? [{ debugName: "mask" }] : /* istanbul ignore next */ []);
|
|
37996
|
+
letter = computed(() => (this.name()?.trim().charAt(0) ?? "").toUpperCase(), ...ngDevMode ? [{ debugName: "letter" }] : /* istanbul ignore next */ []);
|
|
37997
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
37998
|
+
minVersion: "12.0.0",
|
|
37999
|
+
version: "22.2.1",
|
|
38000
|
+
ngImport: i0,
|
|
38001
|
+
type: AppLogoComponent,
|
|
38002
|
+
deps: [],
|
|
38003
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
38004
|
+
});
|
|
38005
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
38006
|
+
minVersion: "17.0.0",
|
|
38007
|
+
version: "22.2.1",
|
|
38008
|
+
type: AppLogoComponent,
|
|
38009
|
+
isStandalone: true,
|
|
38010
|
+
selector: "m-app-logo",
|
|
38011
|
+
inputs: {
|
|
38012
|
+
glyph: {
|
|
38013
|
+
classPropertyName: "glyph",
|
|
38014
|
+
publicName: "glyph",
|
|
38015
|
+
isSignal: true,
|
|
38016
|
+
isRequired: false,
|
|
38017
|
+
transformFunction: null
|
|
38018
|
+
},
|
|
38019
|
+
appColor: {
|
|
38020
|
+
classPropertyName: "appColor",
|
|
38021
|
+
publicName: "appColor",
|
|
38022
|
+
isSignal: true,
|
|
38023
|
+
isRequired: false,
|
|
38024
|
+
transformFunction: null
|
|
38025
|
+
},
|
|
38026
|
+
name: {
|
|
38027
|
+
classPropertyName: "name",
|
|
38028
|
+
publicName: "name",
|
|
38029
|
+
isSignal: true,
|
|
38030
|
+
isRequired: false,
|
|
38031
|
+
transformFunction: null
|
|
38032
|
+
}
|
|
38033
|
+
},
|
|
38034
|
+
host: {
|
|
38035
|
+
attributes: { "role": "img" },
|
|
38036
|
+
properties: {
|
|
38037
|
+
"attr.aria-label": "name() || null",
|
|
38038
|
+
"style.--m-app-logo-color": "color()",
|
|
38039
|
+
"style.--m-app-logo-shadow": "shadow()"
|
|
38040
|
+
},
|
|
38041
|
+
classAttribute: "m-app-logo"
|
|
38042
|
+
},
|
|
38043
|
+
ngImport: i0,
|
|
38044
|
+
template: `
|
|
38045
|
+
<span class="m-app-logo__mark">
|
|
38046
|
+
@if (mask(); as url) {
|
|
38047
|
+
<span class="m-app-logo__glyph" [style.mask-image]="url"></span>
|
|
38048
|
+
} @else {
|
|
38049
|
+
<span class="m-app-logo__letter">{{ letter() }}</span>
|
|
38050
|
+
}
|
|
38051
|
+
</span>
|
|
38052
|
+
`,
|
|
38053
|
+
isInline: true,
|
|
38054
|
+
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:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;aspect-ratio:1;container-type:size;border-radius:22%;overflow:hidden;background:var(--m-app-logo-color, var(--m-text-quaternary))}.m-app-logo__mark{display:flex;align-items:center;justify-content:center;width:100%;height:100%;filter:drop-shadow(0 4cqmin 3cqmin var(--m-app-logo-shadow, rgba(0, 0, 0, .25)))}.m-app-logo__glyph{width:60%;height:60%;background:#fff;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}.m-app-logo__letter{color:#fff;font-size:50cqmin;font-weight:700;line-height:1}\n"],
|
|
38055
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
38056
|
+
});
|
|
38057
|
+
};
|
|
38058
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
38059
|
+
minVersion: "12.0.0",
|
|
38060
|
+
version: "22.2.1",
|
|
38061
|
+
ngImport: i0,
|
|
38062
|
+
type: AppLogoComponent,
|
|
38063
|
+
decorators: [{
|
|
38064
|
+
type: Component,
|
|
38065
|
+
args: [{
|
|
38066
|
+
selector: "m-app-logo",
|
|
38067
|
+
template: `
|
|
38068
|
+
<span class="m-app-logo__mark">
|
|
38069
|
+
@if (mask(); as url) {
|
|
38070
|
+
<span class="m-app-logo__glyph" [style.mask-image]="url"></span>
|
|
38071
|
+
} @else {
|
|
38072
|
+
<span class="m-app-logo__letter">{{ letter() }}</span>
|
|
38073
|
+
}
|
|
38074
|
+
</span>
|
|
38075
|
+
`,
|
|
38076
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
38077
|
+
host: {
|
|
38078
|
+
class: "m-app-logo",
|
|
38079
|
+
role: "img",
|
|
38080
|
+
"[attr.aria-label]": "name() || null",
|
|
38081
|
+
"[style.--m-app-logo-color]": "color()",
|
|
38082
|
+
"[style.--m-app-logo-shadow]": "shadow()"
|
|
38083
|
+
},
|
|
38084
|
+
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:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;aspect-ratio:1;container-type:size;border-radius:22%;overflow:hidden;background:var(--m-app-logo-color, var(--m-text-quaternary))}.m-app-logo__mark{display:flex;align-items:center;justify-content:center;width:100%;height:100%;filter:drop-shadow(0 4cqmin 3cqmin var(--m-app-logo-shadow, rgba(0, 0, 0, .25)))}.m-app-logo__glyph{width:60%;height:60%;background:#fff;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}.m-app-logo__letter{color:#fff;font-size:50cqmin;font-weight:700;line-height:1}\n"]
|
|
38085
|
+
}]
|
|
38086
|
+
}],
|
|
38087
|
+
propDecorators: {
|
|
38088
|
+
glyph: [{
|
|
38089
|
+
type: i0.Input,
|
|
38090
|
+
args: [{
|
|
38091
|
+
isSignal: true,
|
|
38092
|
+
alias: "glyph",
|
|
38093
|
+
required: false
|
|
38094
|
+
}]
|
|
38095
|
+
}],
|
|
38096
|
+
appColor: [{
|
|
38097
|
+
type: i0.Input,
|
|
38098
|
+
args: [{
|
|
38099
|
+
isSignal: true,
|
|
38100
|
+
alias: "appColor",
|
|
38101
|
+
required: false
|
|
38102
|
+
}]
|
|
38103
|
+
}],
|
|
38104
|
+
name: [{
|
|
38105
|
+
type: i0.Input,
|
|
38106
|
+
args: [{
|
|
38107
|
+
isSignal: true,
|
|
38108
|
+
alias: "name",
|
|
38109
|
+
required: false
|
|
38110
|
+
}]
|
|
38111
|
+
}]
|
|
38112
|
+
}
|
|
38113
|
+
});
|
|
37813
38114
|
var AppCardComponent = class AppCardComponent {
|
|
37814
38115
|
app = input.required(...ngDevMode ? [{ debugName: "app" }] : /* istanbul ignore next */ []);
|
|
37815
38116
|
variant = input("card", ...ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []);
|
|
@@ -37875,8 +38176,8 @@ var AppCardComponent = class AppCardComponent {
|
|
|
37875
38176
|
},
|
|
37876
38177
|
ngImport: i0,
|
|
37877
38178
|
template: `
|
|
37878
|
-
<div [class]="'app-card app-card--' + variant()" [style.--app-accent]="app().
|
|
37879
|
-
@if (app().
|
|
38179
|
+
<div [class]="'app-card app-card--' + variant()" [style.--app-accent]="app().appColor" (click)="cardClick.emit(app())" role="button" tabindex="0">
|
|
38180
|
+
@if (app().appColor && variant() === 'card') {
|
|
37880
38181
|
<div class="app-card__accent"></div>
|
|
37881
38182
|
}
|
|
37882
38183
|
|
|
@@ -37885,17 +38186,13 @@ var AppCardComponent = class AppCardComponent {
|
|
|
37885
38186
|
}
|
|
37886
38187
|
|
|
37887
38188
|
<div class="app-card__icon-wrap">
|
|
37888
|
-
<m-
|
|
38189
|
+
<m-app-logo [glyph]="app().logoGlyph" [appColor]="app().appColor" [name]="app().name" />
|
|
37889
38190
|
</div>
|
|
37890
38191
|
|
|
37891
38192
|
<div class="app-card__body">
|
|
37892
38193
|
<div class="app-card__main-info">
|
|
37893
38194
|
<span class="app-card__name">{{ app().name }}</span>
|
|
37894
38195
|
|
|
37895
|
-
@if (variant() === 'row' || variant() === 'card') {
|
|
37896
|
-
<span class="app-card__company">{{ app().company }}</span>
|
|
37897
|
-
}
|
|
37898
|
-
|
|
37899
38196
|
@if (variant() === 'row') {
|
|
37900
38197
|
<span class="app-card__version">{{ app().version }}</span>
|
|
37901
38198
|
}
|
|
@@ -37924,24 +38221,16 @@ var AppCardComponent = class AppCardComponent {
|
|
|
37924
38221
|
</div>
|
|
37925
38222
|
`,
|
|
37926
38223
|
isInline: true,
|
|
37927
|
-
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)}}.app-card{position:relative;display:flex;border-radius:1.25rem;background:var(--m-backdrop-card, rgba(255, 255, 255, .25));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--m-border, rgba(255, 255, 255, .4));padding:1rem;gap:1rem;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);outline:none;overflow:hidden}.app-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px -8px var(--m-backdrop-shadow, rgba(0, 0, 0, .1));border-color:var(--m-focus, rgba(65, 105, 225, .4))}.app-card--small{padding:.75rem;gap:.75rem;align-items:center}.app-card--small .app-card__icon-wrap{width:2.5rem;height:2.5rem;border-radius:.75rem}.app-card--small .app-card__name{font-size:.875rem;font-weight:700}.app-card--tile{flex-direction:column;align-items:center;justify-content:center;padding:.875rem;gap:.5rem}.app-card--tile .app-card__icon-wrap{width:3.5rem;height:3.5rem;border-radius:1rem}.app-card--tile .app-card__body{align-items:center;text-align:center}.app-card--tile .app-card__main-info{align-items:center}.app-card--tile .app-card__name{font-size:.8125rem;font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.app-card--row{align-items:center}.app-card--row .app-card__icon-wrap{width:3.25rem;height:3.25rem;border-radius:.875rem}.app-card--row .app-card__main-info{display:flex;flex-direction:column;gap:.125rem}.app-card--row .app-card__name{font-size:.9375rem;font-weight:700}.app-card--row .app-
|
|
38224
|
+
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)}}.app-card{position:relative;display:flex;border-radius:1.25rem;background:var(--m-backdrop-card, rgba(255, 255, 255, .25));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--m-border, rgba(255, 255, 255, .4));padding:1rem;gap:1rem;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);outline:none;overflow:hidden}.app-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px -8px var(--m-backdrop-shadow, rgba(0, 0, 0, .1));border-color:var(--m-focus, rgba(65, 105, 225, .4))}.app-card--small{padding:.75rem;gap:.75rem;align-items:center}.app-card--small .app-card__icon-wrap{width:2.5rem;height:2.5rem;border-radius:.75rem}.app-card--small .app-card__name{font-size:.875rem;font-weight:700}.app-card--tile{flex-direction:column;align-items:center;justify-content:center;padding:.875rem;gap:.5rem}.app-card--tile .app-card__icon-wrap{width:3.5rem;height:3.5rem;border-radius:1rem}.app-card--tile .app-card__body{align-items:center;text-align:center}.app-card--tile .app-card__main-info{align-items:center}.app-card--tile .app-card__name{font-size:.8125rem;font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.app-card--row{align-items:center}.app-card--row .app-card__icon-wrap{width:3.25rem;height:3.25rem;border-radius:.875rem}.app-card--row .app-card__main-info{display:flex;flex-direction:column;gap:.125rem}.app-card--row .app-card__name{font-size:.9375rem;font-weight:700}.app-card--row .app-card__version{font-size:.75rem;color:var(--m-text-secondary, #64748b)}.app-card--card{flex-direction:column;padding:1.25rem;min-height:12rem}.app-card--card .app-card__accent{position:absolute;top:0;left:0;right:0;height:4px;background:var(--app-accent, var(--m-focus, #4169e1))}.app-card--card .app-card__icon-wrap{width:3.75rem;height:3.75rem;border-radius:1.125rem;background:var(--app-accent, var(--m-frame, #e0e7ff));opacity:.9}.app-card--card .app-card__icon-wrap:before{content:\"\";position:absolute;inset:0;background:var(--app-accent);opacity:.15}.app-card--card .app-card__body{flex:1;display:flex;flex-direction:column;gap:.5rem}.app-card--card .app-card__name{font-size:1.125rem;font-weight:800}.app-card--card .app-card__desc{font-size:.875rem;color:var(--m-text-secondary, #64748b);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:.25rem 0}.app-card--card .app-card__footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.app-card--card .app-card__version-badge{font-size:.6875rem;font-weight:700;background:var(--m-background-lite, rgba(0, 0, 0, .05));padding:.125rem .5rem;border-radius:9999px;color:var(--m-text-secondary, #64748b)}.app-card--card .app-card__updated{font-size:.6875rem;color:var(--m-text-tertiary, #94a3b8)}.app-card__badge{position:absolute;top:.75rem;right:.75rem;min-width:1.375rem;height:1.375rem;padding:0 .375rem;background:var(--m-error, #f43f5e);color:#fff;border-radius:9999px;font-size:.625rem;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #f43f5e66;z-index:2}.app-card__icon-wrap{flex-shrink:0;overflow:hidden;background:var(--m-frame, #f1f5f9);display:flex;align-items:center;justify-content:center}.app-card__icon-wrap img,.app-card__icon-wrap m-img{width:60%;height:60%;object-fit:contain}.app-card__body{min-width:0}.app-card__actions{margin-left:auto;display:flex;align-items:center}.app-card--card .app-card__actions{position:absolute;bottom:1.25rem;right:1.25rem}\n"],
|
|
37928
38225
|
dependencies: [
|
|
37929
38226
|
{
|
|
37930
38227
|
kind: "component",
|
|
37931
|
-
type:
|
|
37932
|
-
selector: "m-
|
|
38228
|
+
type: AppLogoComponent,
|
|
38229
|
+
selector: "m-app-logo",
|
|
37933
38230
|
inputs: [
|
|
37934
|
-
"
|
|
37935
|
-
"
|
|
37936
|
-
"
|
|
37937
|
-
"alt",
|
|
37938
|
-
"priority",
|
|
37939
|
-
"fill",
|
|
37940
|
-
"width",
|
|
37941
|
-
"height",
|
|
37942
|
-
"remote",
|
|
37943
|
-
"ngSrcset",
|
|
37944
|
-
"sizes"
|
|
38231
|
+
"glyph",
|
|
38232
|
+
"appColor",
|
|
38233
|
+
"name"
|
|
37945
38234
|
]
|
|
37946
38235
|
},
|
|
37947
38236
|
{
|
|
@@ -37989,7 +38278,8 @@ var AppCardComponent = class AppCardComponent {
|
|
|
37989
38278
|
"size",
|
|
37990
38279
|
"one",
|
|
37991
38280
|
"baseUrl",
|
|
37992
|
-
"remote"
|
|
38281
|
+
"remote",
|
|
38282
|
+
"shadow"
|
|
37993
38283
|
],
|
|
37994
38284
|
outputs: ["configChange"]
|
|
37995
38285
|
},
|
|
@@ -38013,14 +38303,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
38013
38303
|
selector: "m-app-card",
|
|
38014
38304
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
38015
38305
|
imports: [
|
|
38016
|
-
|
|
38306
|
+
AppLogoComponent,
|
|
38017
38307
|
ButtonComponent,
|
|
38018
38308
|
TranslatePipe,
|
|
38019
38309
|
IconComponent
|
|
38020
38310
|
],
|
|
38021
38311
|
template: `
|
|
38022
|
-
<div [class]="'app-card app-card--' + variant()" [style.--app-accent]="app().
|
|
38023
|
-
@if (app().
|
|
38312
|
+
<div [class]="'app-card app-card--' + variant()" [style.--app-accent]="app().appColor" (click)="cardClick.emit(app())" role="button" tabindex="0">
|
|
38313
|
+
@if (app().appColor && variant() === 'card') {
|
|
38024
38314
|
<div class="app-card__accent"></div>
|
|
38025
38315
|
}
|
|
38026
38316
|
|
|
@@ -38029,17 +38319,13 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
38029
38319
|
}
|
|
38030
38320
|
|
|
38031
38321
|
<div class="app-card__icon-wrap">
|
|
38032
|
-
<m-
|
|
38322
|
+
<m-app-logo [glyph]="app().logoGlyph" [appColor]="app().appColor" [name]="app().name" />
|
|
38033
38323
|
</div>
|
|
38034
38324
|
|
|
38035
38325
|
<div class="app-card__body">
|
|
38036
38326
|
<div class="app-card__main-info">
|
|
38037
38327
|
<span class="app-card__name">{{ app().name }}</span>
|
|
38038
38328
|
|
|
38039
|
-
@if (variant() === 'row' || variant() === 'card') {
|
|
38040
|
-
<span class="app-card__company">{{ app().company }}</span>
|
|
38041
|
-
}
|
|
38042
|
-
|
|
38043
38329
|
@if (variant() === 'row') {
|
|
38044
38330
|
<span class="app-card__version">{{ app().version }}</span>
|
|
38045
38331
|
}
|
|
@@ -38067,7 +38353,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
38067
38353
|
}
|
|
38068
38354
|
</div>
|
|
38069
38355
|
`,
|
|
38070
|
-
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)}}.app-card{position:relative;display:flex;border-radius:1.25rem;background:var(--m-backdrop-card, rgba(255, 255, 255, .25));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--m-border, rgba(255, 255, 255, .4));padding:1rem;gap:1rem;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);outline:none;overflow:hidden}.app-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px -8px var(--m-backdrop-shadow, rgba(0, 0, 0, .1));border-color:var(--m-focus, rgba(65, 105, 225, .4))}.app-card--small{padding:.75rem;gap:.75rem;align-items:center}.app-card--small .app-card__icon-wrap{width:2.5rem;height:2.5rem;border-radius:.75rem}.app-card--small .app-card__name{font-size:.875rem;font-weight:700}.app-card--tile{flex-direction:column;align-items:center;justify-content:center;padding:.875rem;gap:.5rem}.app-card--tile .app-card__icon-wrap{width:3.5rem;height:3.5rem;border-radius:1rem}.app-card--tile .app-card__body{align-items:center;text-align:center}.app-card--tile .app-card__main-info{align-items:center}.app-card--tile .app-card__name{font-size:.8125rem;font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.app-card--row{align-items:center}.app-card--row .app-card__icon-wrap{width:3.25rem;height:3.25rem;border-radius:.875rem}.app-card--row .app-card__main-info{display:flex;flex-direction:column;gap:.125rem}.app-card--row .app-card__name{font-size:.9375rem;font-weight:700}.app-card--row .app-
|
|
38356
|
+
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)}}.app-card{position:relative;display:flex;border-radius:1.25rem;background:var(--m-backdrop-card, rgba(255, 255, 255, .25));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--m-border, rgba(255, 255, 255, .4));padding:1rem;gap:1rem;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);outline:none;overflow:hidden}.app-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px -8px var(--m-backdrop-shadow, rgba(0, 0, 0, .1));border-color:var(--m-focus, rgba(65, 105, 225, .4))}.app-card--small{padding:.75rem;gap:.75rem;align-items:center}.app-card--small .app-card__icon-wrap{width:2.5rem;height:2.5rem;border-radius:.75rem}.app-card--small .app-card__name{font-size:.875rem;font-weight:700}.app-card--tile{flex-direction:column;align-items:center;justify-content:center;padding:.875rem;gap:.5rem}.app-card--tile .app-card__icon-wrap{width:3.5rem;height:3.5rem;border-radius:1rem}.app-card--tile .app-card__body{align-items:center;text-align:center}.app-card--tile .app-card__main-info{align-items:center}.app-card--tile .app-card__name{font-size:.8125rem;font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.app-card--row{align-items:center}.app-card--row .app-card__icon-wrap{width:3.25rem;height:3.25rem;border-radius:.875rem}.app-card--row .app-card__main-info{display:flex;flex-direction:column;gap:.125rem}.app-card--row .app-card__name{font-size:.9375rem;font-weight:700}.app-card--row .app-card__version{font-size:.75rem;color:var(--m-text-secondary, #64748b)}.app-card--card{flex-direction:column;padding:1.25rem;min-height:12rem}.app-card--card .app-card__accent{position:absolute;top:0;left:0;right:0;height:4px;background:var(--app-accent, var(--m-focus, #4169e1))}.app-card--card .app-card__icon-wrap{width:3.75rem;height:3.75rem;border-radius:1.125rem;background:var(--app-accent, var(--m-frame, #e0e7ff));opacity:.9}.app-card--card .app-card__icon-wrap:before{content:\"\";position:absolute;inset:0;background:var(--app-accent);opacity:.15}.app-card--card .app-card__body{flex:1;display:flex;flex-direction:column;gap:.5rem}.app-card--card .app-card__name{font-size:1.125rem;font-weight:800}.app-card--card .app-card__desc{font-size:.875rem;color:var(--m-text-secondary, #64748b);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:.25rem 0}.app-card--card .app-card__footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.app-card--card .app-card__version-badge{font-size:.6875rem;font-weight:700;background:var(--m-background-lite, rgba(0, 0, 0, .05));padding:.125rem .5rem;border-radius:9999px;color:var(--m-text-secondary, #64748b)}.app-card--card .app-card__updated{font-size:.6875rem;color:var(--m-text-tertiary, #94a3b8)}.app-card__badge{position:absolute;top:.75rem;right:.75rem;min-width:1.375rem;height:1.375rem;padding:0 .375rem;background:var(--m-error, #f43f5e);color:#fff;border-radius:9999px;font-size:.625rem;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #f43f5e66;z-index:2}.app-card__icon-wrap{flex-shrink:0;overflow:hidden;background:var(--m-frame, #f1f5f9);display:flex;align-items:center;justify-content:center}.app-card__icon-wrap img,.app-card__icon-wrap m-img{width:60%;height:60%;object-fit:contain}.app-card__body{min-width:0}.app-card__actions{margin-left:auto;display:flex;align-items:center}.app-card--card .app-card__actions{position:absolute;bottom:1.25rem;right:1.25rem}\n"]
|
|
38071
38357
|
}]
|
|
38072
38358
|
}],
|
|
38073
38359
|
propDecorators: {
|
|
@@ -38121,6 +38407,241 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
38121
38407
|
}]
|
|
38122
38408
|
}
|
|
38123
38409
|
});
|
|
38410
|
+
const ERROR_KEYS = {
|
|
38411
|
+
logo_invalid: "logo-glyph-invalid",
|
|
38412
|
+
logo_too_large: "logo-glyph-too-large"
|
|
38413
|
+
};
|
|
38414
|
+
var LogoGlyphInputComponent = class LogoGlyphInputComponent {
|
|
38415
|
+
glyph = model(null, ...ngDevMode ? [{ debugName: "glyph" }] : /* istanbul ignore next */ []);
|
|
38416
|
+
appColor = model(null, ...ngDevMode ? [{ debugName: "appColor" }] : /* istanbul ignore next */ []);
|
|
38417
|
+
name = input(...ngDevMode ? [void 0, { debugName: "name" }] : /* istanbul ignore next */ []);
|
|
38418
|
+
suggestedColors = input([], ...ngDevMode ? [{ debugName: "suggestedColors" }] : /* istanbul ignore next */ []);
|
|
38419
|
+
disabled = input(false, ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
|
|
38420
|
+
markup = signal("", ...ngDevMode ? [{ debugName: "markup" }] : /* istanbul ignore next */ []);
|
|
38421
|
+
error = signal("", ...ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []);
|
|
38422
|
+
errorKey = computed(() => {
|
|
38423
|
+
const error = this.error();
|
|
38424
|
+
return error ? ERROR_KEYS[error] : void 0;
|
|
38425
|
+
}, ...ngDevMode ? [{ debugName: "errorKey" }] : /* istanbul ignore next */ []);
|
|
38426
|
+
lightColor = computed(() => {
|
|
38427
|
+
const color = this.appColor();
|
|
38428
|
+
return !!color && isLightAppColor(color);
|
|
38429
|
+
}, ...ngDevMode ? [{ debugName: "lightColor" }] : /* istanbul ignore next */ []);
|
|
38430
|
+
suggestions = computed(() => this.suggestedColors().map((color) => normalizeAppColor(color)).filter((color) => !!color), ...ngDevMode ? [{ debugName: "suggestions" }] : /* istanbul ignore next */ []);
|
|
38431
|
+
formData = computed(() => ({
|
|
38432
|
+
logo_glyph_paste: this.markup(),
|
|
38433
|
+
app_color: this.appColor() ?? ""
|
|
38434
|
+
}), ...ngDevMode ? [{ debugName: "formData" }] : /* istanbul ignore next */ []);
|
|
38435
|
+
lastUpload;
|
|
38436
|
+
take = (markup) => {
|
|
38437
|
+
this.markup.set(markup);
|
|
38438
|
+
if (!markup.trim()) {
|
|
38439
|
+
this.error.set("");
|
|
38440
|
+
return;
|
|
38441
|
+
}
|
|
38442
|
+
const { svg, error } = rebuildLogoGlyph(markup);
|
|
38443
|
+
this.error.set(error);
|
|
38444
|
+
if (svg) this.glyph.set(svg);
|
|
38445
|
+
};
|
|
38446
|
+
onForm = (data) => {
|
|
38447
|
+
const upload = data["logo_glyph_upload"];
|
|
38448
|
+
if (upload !== this.lastUpload) {
|
|
38449
|
+
this.lastUpload = upload;
|
|
38450
|
+
if (typeof upload === "string") this.take(upload);
|
|
38451
|
+
}
|
|
38452
|
+
const paste = data["logo_glyph_paste"];
|
|
38453
|
+
if (typeof paste === "string" && paste !== this.markup()) this.take(paste);
|
|
38454
|
+
const color = normalizeAppColor(String(data["app_color"] ?? ""));
|
|
38455
|
+
if (color && color !== this.appColor()) this.appColor.set(color);
|
|
38456
|
+
};
|
|
38457
|
+
pickSuggestion = (color) => {
|
|
38458
|
+
if (!this.disabled()) this.appColor.set(color);
|
|
38459
|
+
};
|
|
38460
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
38461
|
+
minVersion: "12.0.0",
|
|
38462
|
+
version: "22.2.1",
|
|
38463
|
+
ngImport: i0,
|
|
38464
|
+
type: LogoGlyphInputComponent,
|
|
38465
|
+
deps: [],
|
|
38466
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
38467
|
+
});
|
|
38468
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
38469
|
+
minVersion: "17.0.0",
|
|
38470
|
+
version: "22.2.1",
|
|
38471
|
+
type: LogoGlyphInputComponent,
|
|
38472
|
+
isStandalone: true,
|
|
38473
|
+
selector: "m-logo-glyph-input",
|
|
38474
|
+
inputs: {
|
|
38475
|
+
glyph: {
|
|
38476
|
+
classPropertyName: "glyph",
|
|
38477
|
+
publicName: "glyph",
|
|
38478
|
+
isSignal: true,
|
|
38479
|
+
isRequired: false,
|
|
38480
|
+
transformFunction: null
|
|
38481
|
+
},
|
|
38482
|
+
appColor: {
|
|
38483
|
+
classPropertyName: "appColor",
|
|
38484
|
+
publicName: "appColor",
|
|
38485
|
+
isSignal: true,
|
|
38486
|
+
isRequired: false,
|
|
38487
|
+
transformFunction: null
|
|
38488
|
+
},
|
|
38489
|
+
name: {
|
|
38490
|
+
classPropertyName: "name",
|
|
38491
|
+
publicName: "name",
|
|
38492
|
+
isSignal: true,
|
|
38493
|
+
isRequired: false,
|
|
38494
|
+
transformFunction: null
|
|
38495
|
+
},
|
|
38496
|
+
suggestedColors: {
|
|
38497
|
+
classPropertyName: "suggestedColors",
|
|
38498
|
+
publicName: "suggestedColors",
|
|
38499
|
+
isSignal: true,
|
|
38500
|
+
isRequired: false,
|
|
38501
|
+
transformFunction: null
|
|
38502
|
+
},
|
|
38503
|
+
disabled: {
|
|
38504
|
+
classPropertyName: "disabled",
|
|
38505
|
+
publicName: "disabled",
|
|
38506
|
+
isSignal: true,
|
|
38507
|
+
isRequired: false,
|
|
38508
|
+
transformFunction: null
|
|
38509
|
+
}
|
|
38510
|
+
},
|
|
38511
|
+
outputs: {
|
|
38512
|
+
glyph: "glyphChange",
|
|
38513
|
+
appColor: "appColorChange"
|
|
38514
|
+
},
|
|
38515
|
+
host: { classAttribute: "m-logo-glyph-input" },
|
|
38516
|
+
ngImport: i0,
|
|
38517
|
+
template: "<div class=\"m-logo-glyph-input__preview\">\n <div class=\"m-logo-glyph-input__logo m-logo-glyph-input__logo--large\">\n <m-app-logo [glyph]=\"glyph()\" [appColor]=\"appColor()\" [name]=\"name()\" />\n </div>\n <div class=\"m-logo-glyph-input__logo m-logo-glyph-input__logo--small\">\n <m-app-logo [glyph]=\"glyph()\" [appColor]=\"appColor()\" [name]=\"name()\" />\n </div>\n</div>\n\n<div class=\"m-logo-glyph-input__fields\">\n <ng-content select=\"[logoAi]\" />\n\n <!-- asset: forms/logo_glyph_input.yml -->\n <m-form\n name=\"logo_glyph_input\"\n [one]=\"true\"\n [data]=\"formData()\"\n [readonly]=\"disabled()\"\n [autofocus]=\"false\"\n (dataChange)=\"onForm($event)\"\n />\n @if (errorKey(); as key) {\n <m-text-output variant=\"footer\" color=\"error\" [label]=\"key\" />\n }\n @if (lightColor()) {\n <m-text-output variant=\"footer\" color=\"warning\" label=\"app-color-light\" />\n }\n\n @if (suggestions().length) {\n <m-text-output variant=\"footer\" label=\"app-color-suggestions\" />\n <div class=\"m-logo-glyph-input__swatches\">\n @for (color of suggestions(); track color) {\n <div\n class=\"m-logo-glyph-input__swatch\"\n role=\"button\"\n tabindex=\"0\"\n [attr.aria-label]=\"color\"\n [attr.aria-pressed]=\"color === appColor()\"\n [class.m-logo-glyph-input__swatch--picked]=\"color === appColor()\"\n (click)=\"pickSuggestion(color)\"\n (keydown.enter)=\"pickSuggestion(color)\"\n (keydown.space)=\"pickSuggestion(color); $event.preventDefault()\"\n >\n <m-app-logo [glyph]=\"glyph()\" [appColor]=\"color\" [name]=\"name()\" />\n </div>\n }\n </div>\n }\n</div>\n",
|
|
38518
|
+
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;flex-wrap:wrap;gap:1.5rem;align-items:flex-start}.m-logo-glyph-input__preview{display:flex;align-items:flex-end;gap:1rem}.m-logo-glyph-input__logo--large{width:6rem;height:6rem}.m-logo-glyph-input__logo--small{width:2rem;height:2rem}.m-logo-glyph-input__fields{display:flex;flex-direction:column;gap:.75rem;flex:1 1 18rem;min-width:0}.m-logo-glyph-input__swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(2.5rem,1fr));gap:.5rem}.m-logo-glyph-input__swatch{aspect-ratio:1;border-radius:25%;padding:2px;cursor:pointer;outline:2px solid transparent;transition:outline-color .15s ease}.m-logo-glyph-input__swatch:focus-visible,.m-logo-glyph-input__swatch:hover{outline-color:var(--m-text-quaternary)}.m-logo-glyph-input__swatch--picked{outline-color:var(--m-mm)}\n"],
|
|
38519
|
+
dependencies: [
|
|
38520
|
+
{
|
|
38521
|
+
kind: "component",
|
|
38522
|
+
type: AppLogoComponent,
|
|
38523
|
+
selector: "m-app-logo",
|
|
38524
|
+
inputs: [
|
|
38525
|
+
"glyph",
|
|
38526
|
+
"appColor",
|
|
38527
|
+
"name"
|
|
38528
|
+
]
|
|
38529
|
+
},
|
|
38530
|
+
{
|
|
38531
|
+
kind: "component",
|
|
38532
|
+
type: FormGroupComponent,
|
|
38533
|
+
selector: "m-form, m-one-form",
|
|
38534
|
+
inputs: [
|
|
38535
|
+
"data",
|
|
38536
|
+
"state",
|
|
38537
|
+
"validation",
|
|
38538
|
+
"options",
|
|
38539
|
+
"fieldConfigs",
|
|
38540
|
+
"aclResolver",
|
|
38541
|
+
"autofocus",
|
|
38542
|
+
"readonly",
|
|
38543
|
+
"fieldRenderIds",
|
|
38544
|
+
"elements",
|
|
38545
|
+
"templates",
|
|
38546
|
+
"datas",
|
|
38547
|
+
"label",
|
|
38548
|
+
"subtitle"
|
|
38549
|
+
],
|
|
38550
|
+
outputs: [
|
|
38551
|
+
"dataChange",
|
|
38552
|
+
"act",
|
|
38553
|
+
"stateChange"
|
|
38554
|
+
]
|
|
38555
|
+
},
|
|
38556
|
+
{
|
|
38557
|
+
kind: "component",
|
|
38558
|
+
type: TextOutputComponent,
|
|
38559
|
+
selector: "m-text-output",
|
|
38560
|
+
inputs: [
|
|
38561
|
+
"config",
|
|
38562
|
+
"align",
|
|
38563
|
+
"variant",
|
|
38564
|
+
"color",
|
|
38565
|
+
"fontWeight",
|
|
38566
|
+
"label",
|
|
38567
|
+
"noTranslate",
|
|
38568
|
+
"params"
|
|
38569
|
+
],
|
|
38570
|
+
outputs: ["configChange", "clicked"]
|
|
38571
|
+
}
|
|
38572
|
+
],
|
|
38573
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
38574
|
+
});
|
|
38575
|
+
};
|
|
38576
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
38577
|
+
minVersion: "12.0.0",
|
|
38578
|
+
version: "22.2.1",
|
|
38579
|
+
ngImport: i0,
|
|
38580
|
+
type: LogoGlyphInputComponent,
|
|
38581
|
+
decorators: [{
|
|
38582
|
+
type: Component,
|
|
38583
|
+
args: [{
|
|
38584
|
+
selector: "m-logo-glyph-input",
|
|
38585
|
+
imports: [
|
|
38586
|
+
AppLogoComponent,
|
|
38587
|
+
FormGroupComponent,
|
|
38588
|
+
TextOutputComponent
|
|
38589
|
+
],
|
|
38590
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
38591
|
+
host: { class: "m-logo-glyph-input" },
|
|
38592
|
+
template: "<div class=\"m-logo-glyph-input__preview\">\n <div class=\"m-logo-glyph-input__logo m-logo-glyph-input__logo--large\">\n <m-app-logo [glyph]=\"glyph()\" [appColor]=\"appColor()\" [name]=\"name()\" />\n </div>\n <div class=\"m-logo-glyph-input__logo m-logo-glyph-input__logo--small\">\n <m-app-logo [glyph]=\"glyph()\" [appColor]=\"appColor()\" [name]=\"name()\" />\n </div>\n</div>\n\n<div class=\"m-logo-glyph-input__fields\">\n <ng-content select=\"[logoAi]\" />\n\n <!-- asset: forms/logo_glyph_input.yml -->\n <m-form\n name=\"logo_glyph_input\"\n [one]=\"true\"\n [data]=\"formData()\"\n [readonly]=\"disabled()\"\n [autofocus]=\"false\"\n (dataChange)=\"onForm($event)\"\n />\n @if (errorKey(); as key) {\n <m-text-output variant=\"footer\" color=\"error\" [label]=\"key\" />\n }\n @if (lightColor()) {\n <m-text-output variant=\"footer\" color=\"warning\" label=\"app-color-light\" />\n }\n\n @if (suggestions().length) {\n <m-text-output variant=\"footer\" label=\"app-color-suggestions\" />\n <div class=\"m-logo-glyph-input__swatches\">\n @for (color of suggestions(); track color) {\n <div\n class=\"m-logo-glyph-input__swatch\"\n role=\"button\"\n tabindex=\"0\"\n [attr.aria-label]=\"color\"\n [attr.aria-pressed]=\"color === appColor()\"\n [class.m-logo-glyph-input__swatch--picked]=\"color === appColor()\"\n (click)=\"pickSuggestion(color)\"\n (keydown.enter)=\"pickSuggestion(color)\"\n (keydown.space)=\"pickSuggestion(color); $event.preventDefault()\"\n >\n <m-app-logo [glyph]=\"glyph()\" [appColor]=\"color\" [name]=\"name()\" />\n </div>\n }\n </div>\n }\n</div>\n",
|
|
38593
|
+
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;flex-wrap:wrap;gap:1.5rem;align-items:flex-start}.m-logo-glyph-input__preview{display:flex;align-items:flex-end;gap:1rem}.m-logo-glyph-input__logo--large{width:6rem;height:6rem}.m-logo-glyph-input__logo--small{width:2rem;height:2rem}.m-logo-glyph-input__fields{display:flex;flex-direction:column;gap:.75rem;flex:1 1 18rem;min-width:0}.m-logo-glyph-input__swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(2.5rem,1fr));gap:.5rem}.m-logo-glyph-input__swatch{aspect-ratio:1;border-radius:25%;padding:2px;cursor:pointer;outline:2px solid transparent;transition:outline-color .15s ease}.m-logo-glyph-input__swatch:focus-visible,.m-logo-glyph-input__swatch:hover{outline-color:var(--m-text-quaternary)}.m-logo-glyph-input__swatch--picked{outline-color:var(--m-mm)}\n"]
|
|
38594
|
+
}]
|
|
38595
|
+
}],
|
|
38596
|
+
propDecorators: {
|
|
38597
|
+
glyph: [{
|
|
38598
|
+
type: i0.Input,
|
|
38599
|
+
args: [{
|
|
38600
|
+
isSignal: true,
|
|
38601
|
+
alias: "glyph",
|
|
38602
|
+
required: false
|
|
38603
|
+
}]
|
|
38604
|
+
}, {
|
|
38605
|
+
type: i0.Output,
|
|
38606
|
+
args: ["glyphChange"]
|
|
38607
|
+
}],
|
|
38608
|
+
appColor: [{
|
|
38609
|
+
type: i0.Input,
|
|
38610
|
+
args: [{
|
|
38611
|
+
isSignal: true,
|
|
38612
|
+
alias: "appColor",
|
|
38613
|
+
required: false
|
|
38614
|
+
}]
|
|
38615
|
+
}, {
|
|
38616
|
+
type: i0.Output,
|
|
38617
|
+
args: ["appColorChange"]
|
|
38618
|
+
}],
|
|
38619
|
+
name: [{
|
|
38620
|
+
type: i0.Input,
|
|
38621
|
+
args: [{
|
|
38622
|
+
isSignal: true,
|
|
38623
|
+
alias: "name",
|
|
38624
|
+
required: false
|
|
38625
|
+
}]
|
|
38626
|
+
}],
|
|
38627
|
+
suggestedColors: [{
|
|
38628
|
+
type: i0.Input,
|
|
38629
|
+
args: [{
|
|
38630
|
+
isSignal: true,
|
|
38631
|
+
alias: "suggestedColors",
|
|
38632
|
+
required: false
|
|
38633
|
+
}]
|
|
38634
|
+
}],
|
|
38635
|
+
disabled: [{
|
|
38636
|
+
type: i0.Input,
|
|
38637
|
+
args: [{
|
|
38638
|
+
isSignal: true,
|
|
38639
|
+
alias: "disabled",
|
|
38640
|
+
required: false
|
|
38641
|
+
}]
|
|
38642
|
+
}]
|
|
38643
|
+
}
|
|
38644
|
+
});
|
|
38124
38645
|
var PlaygroundComponent = class PlaygroundComponent {
|
|
38125
38646
|
config = input(...ngDevMode ? [void 0, { debugName: "config" }] : /* istanbul ignore next */ []);
|
|
38126
38647
|
copied = signal(false, ...ngDevMode ? [{ debugName: "copied" }] : /* istanbul ignore next */ []);
|
|
@@ -38977,7 +39498,8 @@ var ModalComponent = class ModalComponent extends ConfigComponent {
|
|
|
38977
39498
|
"size",
|
|
38978
39499
|
"one",
|
|
38979
39500
|
"baseUrl",
|
|
38980
|
-
"remote"
|
|
39501
|
+
"remote",
|
|
39502
|
+
"shadow"
|
|
38981
39503
|
],
|
|
38982
39504
|
outputs: ["configChange"]
|
|
38983
39505
|
},
|
|
@@ -40285,7 +40807,8 @@ var NavTrailComponent = class NavTrailComponent {
|
|
|
40285
40807
|
"size",
|
|
40286
40808
|
"one",
|
|
40287
40809
|
"baseUrl",
|
|
40288
|
-
"remote"
|
|
40810
|
+
"remote",
|
|
40811
|
+
"shadow"
|
|
40289
40812
|
],
|
|
40290
40813
|
outputs: ["configChange"]
|
|
40291
40814
|
},
|
|
@@ -40648,8 +41171,8 @@ var NavHeaderComponent = class NavHeaderComponent {
|
|
|
40648
41171
|
classAttribute: "m-nav-header"
|
|
40649
41172
|
},
|
|
40650
41173
|
ngImport: i0,
|
|
40651
|
-
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 <m-section-header class=\"nav-header__title\" [icon]=\"h.icon\" [label]=\"h.label\" />\n }\n }\n</m-section>\n",
|
|
40652
|
-
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)}\n"],
|
|
41174
|
+
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 @if (h.appLogo; as logo) {\n <!-- A mounted app's header draws its AppLogo in the icon's place. -->\n <m-section-header class=\"nav-header__title\" [label]=\"h.label\">\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 class=\"nav-header__title\" [icon]=\"h.icon\" [label]=\"h.label\" />\n }\n }\n }\n</m-section>\n",
|
|
41175
|
+
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__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"],
|
|
40653
41176
|
dependencies: [
|
|
40654
41177
|
{
|
|
40655
41178
|
kind: "component",
|
|
@@ -40806,6 +41329,16 @@ var NavHeaderComponent = class NavHeaderComponent {
|
|
|
40806
41329
|
"mRefToggle",
|
|
40807
41330
|
"mRefParams"
|
|
40808
41331
|
]
|
|
41332
|
+
},
|
|
41333
|
+
{
|
|
41334
|
+
kind: "component",
|
|
41335
|
+
type: AppLogoComponent,
|
|
41336
|
+
selector: "m-app-logo",
|
|
41337
|
+
inputs: [
|
|
41338
|
+
"glyph",
|
|
41339
|
+
"appColor",
|
|
41340
|
+
"name"
|
|
41341
|
+
]
|
|
40809
41342
|
}
|
|
40810
41343
|
],
|
|
40811
41344
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
@@ -40829,7 +41362,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
40829
41362
|
SectionSearchComponent,
|
|
40830
41363
|
ButtonComponent,
|
|
40831
41364
|
UserComponent,
|
|
40832
|
-
MRefDirective
|
|
41365
|
+
MRefDirective,
|
|
41366
|
+
AppLogoComponent
|
|
40833
41367
|
],
|
|
40834
41368
|
encapsulation: ViewEncapsulation.None,
|
|
40835
41369
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
@@ -40838,8 +41372,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
40838
41372
|
"[style.display]": "\"block\"",
|
|
40839
41373
|
"[style.--m-section-min-height]": "\"0\""
|
|
40840
41374
|
},
|
|
40841
|
-
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 <m-section-header class=\"nav-header__title\" [icon]=\"h.icon\" [label]=\"h.label\" />\n }\n }\n</m-section>\n",
|
|
40842
|
-
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)}\n"]
|
|
41375
|
+
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 @if (h.appLogo; as logo) {\n <!-- A mounted app's header draws its AppLogo in the icon's place. -->\n <m-section-header class=\"nav-header__title\" [label]=\"h.label\">\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 class=\"nav-header__title\" [icon]=\"h.icon\" [label]=\"h.label\" />\n }\n }\n }\n</m-section>\n",
|
|
41376
|
+
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__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"]
|
|
40843
41377
|
}]
|
|
40844
41378
|
}],
|
|
40845
41379
|
ctorParameters: () => []
|
|
@@ -40945,6 +41479,14 @@ var NavMenuComponent = class NavMenuComponent {
|
|
|
40945
41479
|
},
|
|
40946
41480
|
ngImport: i0,
|
|
40947
41481
|
template: `
|
|
41482
|
+
<!-- A row standing for a mounted app draws its AppLogo, else its icon. -->
|
|
41483
|
+
<ng-template #iconTemplate let-item>
|
|
41484
|
+
@if (item.appLogo; as logo) {
|
|
41485
|
+
<m-app-logo class="nav-menu__app-logo" [glyph]="logo.glyph" [appColor]="logo.color" [name]="logo.name" />
|
|
41486
|
+
} @else {
|
|
41487
|
+
<m-icon [name]="item.icon || 'menu'" [baseUrl]="baseUrl()" />
|
|
41488
|
+
}
|
|
41489
|
+
</ng-template>
|
|
40948
41490
|
<ng-template #menuTemplate let-item="row">
|
|
40949
41491
|
<div class="nav-menu__item">
|
|
40950
41492
|
@if (item.nav; as nav) {
|
|
@@ -40958,7 +41500,7 @@ var NavMenuComponent = class NavMenuComponent {
|
|
|
40958
41500
|
class="nav-menu__link"
|
|
40959
41501
|
>
|
|
40960
41502
|
<span class="nav-menu__icon">
|
|
40961
|
-
<
|
|
41503
|
+
<ng-container *ngTemplateOutlet="iconTemplate; context: { $implicit: item }" />
|
|
40962
41504
|
</span>
|
|
40963
41505
|
<span class="nav-menu__label">{{ item.label | translate }}</span>
|
|
40964
41506
|
</a>
|
|
@@ -40976,13 +41518,13 @@ var NavMenuComponent = class NavMenuComponent {
|
|
|
40976
41518
|
} @else if (item.href; as href) {
|
|
40977
41519
|
<a [href]="href" class="nav-menu__link">
|
|
40978
41520
|
<span class="nav-menu__icon">
|
|
40979
|
-
<
|
|
41521
|
+
<ng-container *ngTemplateOutlet="iconTemplate; context: { $implicit: item }" />
|
|
40980
41522
|
</span>
|
|
40981
41523
|
<span class="nav-menu__label">{{ item.label | translate }}</span>
|
|
40982
41524
|
</a>
|
|
40983
41525
|
} @else {
|
|
40984
41526
|
<span class="nav-menu__icon">
|
|
40985
|
-
<
|
|
41527
|
+
<ng-container *ngTemplateOutlet="iconTemplate; context: { $implicit: item }" />
|
|
40986
41528
|
</span>
|
|
40987
41529
|
<span class="nav-menu__label">
|
|
40988
41530
|
<span class="nav-menu__text">{{ item.label | translate }}</span>
|
|
@@ -40995,8 +41537,18 @@ var NavMenuComponent = class NavMenuComponent {
|
|
|
40995
41537
|
</div>
|
|
40996
41538
|
`,
|
|
40997
41539
|
isInline: true,
|
|
40998
|
-
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__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"],
|
|
41540
|
+
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"],
|
|
40999
41541
|
dependencies: [
|
|
41542
|
+
{
|
|
41543
|
+
kind: "directive",
|
|
41544
|
+
type: NgTemplateOutlet,
|
|
41545
|
+
selector: "[ngTemplateOutlet]",
|
|
41546
|
+
inputs: [
|
|
41547
|
+
"ngTemplateOutletContext",
|
|
41548
|
+
"ngTemplateOutlet",
|
|
41549
|
+
"ngTemplateOutletInjector"
|
|
41550
|
+
]
|
|
41551
|
+
},
|
|
41000
41552
|
{
|
|
41001
41553
|
kind: "component",
|
|
41002
41554
|
type: IconComponent,
|
|
@@ -41008,10 +41560,21 @@ var NavMenuComponent = class NavMenuComponent {
|
|
|
41008
41560
|
"size",
|
|
41009
41561
|
"one",
|
|
41010
41562
|
"baseUrl",
|
|
41011
|
-
"remote"
|
|
41563
|
+
"remote",
|
|
41564
|
+
"shadow"
|
|
41012
41565
|
],
|
|
41013
41566
|
outputs: ["configChange"]
|
|
41014
41567
|
},
|
|
41568
|
+
{
|
|
41569
|
+
kind: "component",
|
|
41570
|
+
type: AppLogoComponent,
|
|
41571
|
+
selector: "m-app-logo",
|
|
41572
|
+
inputs: [
|
|
41573
|
+
"glyph",
|
|
41574
|
+
"appColor",
|
|
41575
|
+
"name"
|
|
41576
|
+
]
|
|
41577
|
+
},
|
|
41015
41578
|
{
|
|
41016
41579
|
kind: "directive",
|
|
41017
41580
|
type: MRefDirective,
|
|
@@ -41093,6 +41656,14 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
41093
41656
|
args: [{
|
|
41094
41657
|
selector: "m-nav-menu",
|
|
41095
41658
|
template: `
|
|
41659
|
+
<!-- A row standing for a mounted app draws its AppLogo, else its icon. -->
|
|
41660
|
+
<ng-template #iconTemplate let-item>
|
|
41661
|
+
@if (item.appLogo; as logo) {
|
|
41662
|
+
<m-app-logo class="nav-menu__app-logo" [glyph]="logo.glyph" [appColor]="logo.color" [name]="logo.name" />
|
|
41663
|
+
} @else {
|
|
41664
|
+
<m-icon [name]="item.icon || 'menu'" [baseUrl]="baseUrl()" />
|
|
41665
|
+
}
|
|
41666
|
+
</ng-template>
|
|
41096
41667
|
<ng-template #menuTemplate let-item="row">
|
|
41097
41668
|
<div class="nav-menu__item">
|
|
41098
41669
|
@if (item.nav; as nav) {
|
|
@@ -41106,7 +41677,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
41106
41677
|
class="nav-menu__link"
|
|
41107
41678
|
>
|
|
41108
41679
|
<span class="nav-menu__icon">
|
|
41109
|
-
<
|
|
41680
|
+
<ng-container *ngTemplateOutlet="iconTemplate; context: { $implicit: item }" />
|
|
41110
41681
|
</span>
|
|
41111
41682
|
<span class="nav-menu__label">{{ item.label | translate }}</span>
|
|
41112
41683
|
</a>
|
|
@@ -41124,13 +41695,13 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
41124
41695
|
} @else if (item.href; as href) {
|
|
41125
41696
|
<a [href]="href" class="nav-menu__link">
|
|
41126
41697
|
<span class="nav-menu__icon">
|
|
41127
|
-
<
|
|
41698
|
+
<ng-container *ngTemplateOutlet="iconTemplate; context: { $implicit: item }" />
|
|
41128
41699
|
</span>
|
|
41129
41700
|
<span class="nav-menu__label">{{ item.label | translate }}</span>
|
|
41130
41701
|
</a>
|
|
41131
41702
|
} @else {
|
|
41132
41703
|
<span class="nav-menu__icon">
|
|
41133
|
-
<
|
|
41704
|
+
<ng-container *ngTemplateOutlet="iconTemplate; context: { $implicit: item }" />
|
|
41134
41705
|
</span>
|
|
41135
41706
|
<span class="nav-menu__label">
|
|
41136
41707
|
<span class="nav-menu__text">{{ item.label | translate }}</span>
|
|
@@ -41144,13 +41715,15 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
41144
41715
|
`,
|
|
41145
41716
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
41146
41717
|
imports: [
|
|
41718
|
+
NgTemplateOutlet,
|
|
41147
41719
|
IconComponent,
|
|
41720
|
+
AppLogoComponent,
|
|
41148
41721
|
MRefDirective,
|
|
41149
41722
|
TranslatePipe,
|
|
41150
41723
|
ListComponent,
|
|
41151
41724
|
ButtonComponent
|
|
41152
41725
|
],
|
|
41153
|
-
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__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"]
|
|
41726
|
+
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"]
|
|
41154
41727
|
}]
|
|
41155
41728
|
}],
|
|
41156
41729
|
propDecorators: {
|
|
@@ -41471,7 +42044,8 @@ var NavDetailsComponent = class NavDetailsComponent {
|
|
|
41471
42044
|
"size",
|
|
41472
42045
|
"one",
|
|
41473
42046
|
"baseUrl",
|
|
41474
|
-
"remote"
|
|
42047
|
+
"remote",
|
|
42048
|
+
"shadow"
|
|
41475
42049
|
],
|
|
41476
42050
|
outputs: ["configChange"]
|
|
41477
42051
|
},
|
|
@@ -41624,24 +42198,31 @@ var NavComponent = class NavComponent {
|
|
|
41624
42198
|
logo = computed(() => {
|
|
41625
42199
|
if (this.logoPending()) return void 0;
|
|
41626
42200
|
const config = this.isHost() ? void 0 : this.currentWcConfig();
|
|
41627
|
-
if (config?.
|
|
41628
|
-
|
|
41629
|
-
|
|
41630
|
-
|
|
41631
|
-
|
|
42201
|
+
if (config?.app) {
|
|
42202
|
+
const identity = this.#navStore.currentIdentity();
|
|
42203
|
+
return {
|
|
42204
|
+
app: config.app,
|
|
42205
|
+
alt: identity?.name ?? config.app,
|
|
42206
|
+
glyph: identity?.logoGlyph ?? null,
|
|
42207
|
+
color: identity?.appColor ?? null,
|
|
42208
|
+
src: void 0
|
|
42209
|
+
};
|
|
42210
|
+
}
|
|
41632
42211
|
const root = this.#navStore.navMap()[ROOT_NAV];
|
|
41633
42212
|
return root?.logo ? {
|
|
41634
|
-
|
|
42213
|
+
app: void 0,
|
|
41635
42214
|
alt: root.title ?? "logo",
|
|
41636
|
-
|
|
42215
|
+
glyph: null,
|
|
42216
|
+
color: null,
|
|
42217
|
+
src: root.logo
|
|
41637
42218
|
} : void 0;
|
|
41638
42219
|
}, ...ngDevMode ? [{ debugName: "logo" }] : /* istanbul ignore next */ []);
|
|
41639
42220
|
appRail = computed(() => {
|
|
41640
42221
|
if (!this.isHost()) return [];
|
|
41641
42222
|
const configs = this.#navStore.wcConfigMap();
|
|
42223
|
+
const identities = this.#navStore.identityMap();
|
|
41642
42224
|
const panelNavId = this.isNavOpened() ? this.#navStore.id() : void 0;
|
|
41643
42225
|
const isActive = (appNavId) => !!panelNavId && (panelNavId === appNavId || panelNavId.startsWith(`${appNavId}_`));
|
|
41644
|
-
const hostLogo = this.#navStore.navMap()[ROOT_NAV]?.logo;
|
|
41645
42226
|
const appLink = this.appLink();
|
|
41646
42227
|
const appNavId = this.#navStore.appNavId();
|
|
41647
42228
|
const main = appLink && appNavId && !this.activeAppOpen() ? [{
|
|
@@ -41660,9 +42241,9 @@ var NavComponent = class NavComponent {
|
|
|
41660
42241
|
key,
|
|
41661
42242
|
appNavId,
|
|
41662
42243
|
pending: !config,
|
|
41663
|
-
|
|
41664
|
-
|
|
41665
|
-
alt:
|
|
42244
|
+
glyph: identities[link]?.logoGlyph ?? null,
|
|
42245
|
+
color: identities[link]?.appColor ?? null,
|
|
42246
|
+
alt: identities[link]?.name ?? link,
|
|
41666
42247
|
active: isActive(appNavId)
|
|
41667
42248
|
}));
|
|
41668
42249
|
}, ...ngDevMode ? [{ debugName: "appRail" }] : /* istanbul ignore next */ []);
|
|
@@ -41848,7 +42429,7 @@ var NavComponent = class NavComponent {
|
|
|
41848
42429
|
outputs: { menuClicked: "menuClicked" },
|
|
41849
42430
|
host: { classAttribute: "m-nav" },
|
|
41850
42431
|
ngImport: i0,
|
|
41851
|
-
template: "<div class=\"nav\" [class.is-open]=\"isNavOpened()\" [class.is-scrolled-down]=\"isScrolledDown()\">\n <div class=\"nav__header\">\n @if (showLogo()) {\n @if (logo(); as logo) {\n <!-- AppLogo: menu open → home with panel still showing root; closed → home page. -->\n <button\n type=\"button\"\n class=\"nav_logo nav_logo--app\"\n [attr.data-app]=\"logo.app\"\n [attr.aria-label]=\"logo.alt\"\n [class.nav_logo--pop]=\"logoPop()\"\n [class.nav_logo--active]=\"logoActive()\"\n (click)=\"onLogoClick()\"\n (animationend)=\"logoPop.set(false)\"\n >\n <m-img class=\"nav_logo_img\" [src]=\"logo.src\" [alt]=\"logo.alt\" />\n </button>\n } @else if (logoPending()) {\n <div class=\"nav_logo nav_logo--loading\">\n <div class=\"nav_logo-skeleton\"></div>\n </div>\n }\n }\n <div class=\"nav_actions\">\n <m-one-button-group\n class=\"nav_main_group\"\n name=\"nav_main_button_group\"\n [buttons]=\"computedMainButtons()\"\n [vertical]=\"isVertical()\"\n />\n </div>\n @for (app of appRail(); track app.key) {\n <!-- App Rail: the Main Slot's App, then each Side App — opens the panel on its menu. -->\n @if (app.pending) {\n <div class=\"nav_logo nav_logo--loading nav_logo--rail\">\n <div class=\"nav_logo-skeleton\"></div>\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"nav_logo nav_logo--app nav_logo--rail\"\n [attr.data-app]=\"app.key\"\n [attr.aria-label]=\"app.alt\"\n [class.nav_logo--active]=\"app.active\"\n (click)=\"onAppLogoClick(app.appNavId)\"\n >\n <m-
|
|
42432
|
+
template: "<div class=\"nav\" [class.is-open]=\"isNavOpened()\" [class.is-scrolled-down]=\"isScrolledDown()\">\n <div class=\"nav__header\">\n @if (showLogo()) {\n @if (logo(); as logo) {\n <!-- AppLogo: menu open → home with panel still showing root; closed → home page. -->\n <button\n type=\"button\"\n class=\"nav_logo nav_logo--app\"\n [attr.data-app]=\"logo.app\"\n [attr.aria-label]=\"logo.alt\"\n [class.nav_logo--pop]=\"logoPop()\"\n [class.nav_logo--active]=\"logoActive()\"\n (click)=\"onLogoClick()\"\n (animationend)=\"logoPop.set(false)\"\n >\n @if (logo.src) {\n <m-img class=\"nav_logo_img\" [src]=\"logo.src\" [alt]=\"logo.alt\" />\n } @else {\n <m-app-logo class=\"nav_logo_img\" [glyph]=\"logo.glyph\" [appColor]=\"logo.color\" [name]=\"logo.alt\" />\n }\n </button>\n } @else if (logoPending()) {\n <div class=\"nav_logo nav_logo--loading\">\n <div class=\"nav_logo-skeleton\"></div>\n </div>\n }\n }\n <div class=\"nav_actions\">\n <m-one-button-group\n class=\"nav_main_group\"\n name=\"nav_main_button_group\"\n [buttons]=\"computedMainButtons()\"\n [vertical]=\"isVertical()\"\n />\n </div>\n @for (app of appRail(); track app.key) {\n <!-- App Rail: the Main Slot's App, then each Side App — opens the panel on its menu. -->\n @if (app.pending) {\n <div class=\"nav_logo nav_logo--loading nav_logo--rail\">\n <div class=\"nav_logo-skeleton\"></div>\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"nav_logo nav_logo--app nav_logo--rail\"\n [attr.data-app]=\"app.key\"\n [attr.aria-label]=\"app.alt\"\n [class.nav_logo--active]=\"app.active\"\n (click)=\"onAppLogoClick(app.appNavId)\"\n >\n <m-app-logo class=\"nav_logo_img\" [glyph]=\"app.glyph\" [appColor]=\"app.color\" [name]=\"app.alt\" />\n </button>\n }\n }\n </div>\n\n <div class=\"nav__body\">\n <m-one-button (clicked)=\"toggleMenu()\" [config]=\"menuButtonConfig()\" />\n </div>\n\n <div class=\"nav__footer\">\n <m-one-button-group name=\"nav_footer_button_group\" [buttons]=\"computedFooterButtons()\" [vertical]=\"isVertical()\" />\n </div>\n</div>\n\n<div\n class=\"nav__backdrop\"\n [class.show]=\"isNavOpened()\"\n (click)=\"toggleMenu()\"\n (keydown.enter)=\"toggleMenu()\"\n tabindex=\"0\"\n></div>\n<m-nav-details />\n",
|
|
41852
42433
|
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)}}.m-nav .nav{position:fixed;top:0;left:0;backdrop-filter:blur(16px) brightness(1.1) saturate(1.8) contrast(1.1);-webkit-backdrop-filter:blur(16px) brightness(1.1) saturate(1.8) contrast(1.1);background-color:var(--m-backdrop-glass);border:1px solid var(--m-backdrop-border);border:none;border-right:1px solid color-mix(in srgb,var(--m-border) 55%,transparent);width:64px;height:100%;transition:.4s cubic-bezier(.165,.84,.44,1) .15s ease-in-out;z-index:100;display:flex;flex-direction:column}.m-nav .nav button:not(.primary):not(:has(.nav-lang-label)):hover{background:#ffffff14;transform:scale(1.05);box-shadow:none}.m-nav .nav button:not(.primary):not(:has(.nav-lang-label)):active{transform:scale(.95);box-shadow:none}.m-nav .nav m-one-button:has(.nav-lang-label){--m-button-background: transparent;--m-button-hover-background: transparent;--m-button-border: none;--m-button-shadow: none;--m-button-padding: 0;--m-button-width: 2rem;--m-button-hover-transform: none}.m-nav .nav .button-group{display:flex;flex-direction:column;align-items:center;gap:1.75rem}.m-nav .nav_logo{display:flex;align-items:center;justify-content:center;padding:0;height:64px;width:64px;box-sizing:border-box;position:relative;margin:0 auto}.m-nav .nav_logo:after{content:\"\";position:absolute;bottom:0;left:10%;width:80%;height:2px;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--m-mm) 25%,transparent) 0%,color-mix(in srgb,var(--m-success) 15%,transparent) 40%,transparent 100%);filter:blur(.5px);pointer-events:none;z-index:11}.m-nav .nav_logo.nav_logo--rail:after{content:none}.m-nav .nav_logo.nav_logo--app{border:0;background:transparent!important;font:inherit;color:inherit;cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent}.m-nav .nav_logo.nav_logo--app:hover{transform:none!important}.m-nav .nav_logo.nav_logo--app .nav_logo_img{display:block;width:32px;height:32px;margin:0 auto;position:relative;z-index:1;border-radius:9px;overflow:hidden;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.m-nav .nav_logo.nav_logo--app .nav_logo_img img{width:100%;height:100%;object-fit:cover}.m-nav .nav_logo.nav_logo--app:hover .nav_logo_img{transform:scale(1.06)}.m-nav .nav_logo.nav_logo--app:active .nav_logo_img{transform:scale(.88);transition-duration:.1s}.m-nav .nav_logo.nav_logo--app.nav_logo--pop .nav_logo_img{animation:nav-logo-pop .4s cubic-bezier(.34,1.56,.64,1)}.m-nav .nav_logo.nav_logo--app:before{content:\"\";position:absolute;top:50%;left:50%;width:44px;height:44px;border-radius:14px;border:1px solid transparent;transform:translate(-50%,-50%) scale(.85);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .25s cubic-bezier(.34,1.56,.64,1)}.m-nav .nav_logo.nav_logo--app.nav_logo--active:before{opacity:1;transform:translate(-50%,-50%) scale(1);border-color:color-mix(in srgb,var(--m-primary-color) 45%,transparent);background:color-mix(in srgb,var(--m-primary-color) 8%,transparent)}.m-nav .nav_logo.nav_logo--loading{cursor:default!important;pointer-events:none!important}.m-nav .nav_logo.nav_logo--loading .nav_logo-skeleton{width:28px;height:28px;margin:0 auto;border-radius:8px;background:#ffffff14;animation:nav-logo-skeleton-pulse 1.5s infinite ease-in-out}.m-nav .nav_logo svg{width:1.75rem;height:auto;display:block;margin:0 auto;filter:drop-shadow(0 4px 12px color-mix(in srgb,var(--m-mm) 40%,transparent));transition:filter .3s ease-out}.m-nav .nav_logo svg:hover{filter:drop-shadow(0 8px 16px color-mix(in srgb,var(--m-mm) 60%,transparent))}.m-nav .nav_actions{width:100%;flex-direction:column;display:flex;align-items:center;justify-content:center;gap:1.75rem;margin-top:.5rem}.m-nav .nav_actions .nav_main_group{display:flex;flex-direction:column;align-items:center;width:100%}.m-nav .nav_user{width:100%;display:flex;align-items:center;justify-content:center;position:relative;z-index:12}.m-nav .nav__header,.m-nav .nav__footer{width:100%;position:relative;align-items:center;justify-content:center;display:flex;flex-direction:column}.m-nav .nav__body{width:100%;position:relative;flex:1;display:grid;place-items:center}@media(max-width:767px){.m-nav .nav{top:auto!important;bottom:0!important;left:0;right:0;position:fixed;width:100%;height:48px;box-sizing:content-box;display:flex;flex-direction:row;align-items:stretch;border-right:none;border-top:1px solid color-mix(in srgb,var(--m-border) 55%,transparent);padding-bottom:env(safe-area-inset-bottom);will-change:transform,opacity;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .4s ease;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);background:color-mix(in srgb,var(--m-background) 70%,transparent)}.m-nav .nav.is-scrolled-down{transform:translateY(calc(100% + env(safe-area-inset-bottom)));opacity:0;pointer-events:none}.m-nav .nav .nav__footer{display:none}.m-nav .nav .nav__header{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:space-between;height:100%}.m-nav .nav .nav__header .nav_logo{flex:0 0 64px;display:flex;align-items:center;justify-content:center;height:100%;cursor:pointer}.m-nav .nav .nav__header .nav_logo.nav_logo--loading{cursor:default!important;pointer-events:none!important}.m-nav .nav .nav__header .nav_logo svg{width:1.5rem}.m-nav .nav .nav__header .nav_actions{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.75rem;height:100%}.m-nav .nav .nav__header .nav_actions .nav_main_group{display:flex;align-items:center}.m-nav .nav .nav__header .nav_actions .nav_main_group .button-group{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;gap:.75rem}.m-nav .nav .nav__body{flex:0 0 48px;display:flex;justify-content:flex-end;align-items:center;padding-right:.25rem;height:100%}}@media(min-width:768px)and (max-width:1199px){.m-nav .nav{top:auto!important;bottom:0!important;left:0;right:0;position:fixed;width:100%;height:56px;box-sizing:content-box;display:flex;flex-direction:row;align-items:stretch;border-right:none;border-top:1px solid color-mix(in srgb,var(--m-border) 55%,transparent);padding-bottom:env(safe-area-inset-bottom);will-change:transform,opacity;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .4s ease;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);background:color-mix(in srgb,var(--m-background) 70%,transparent)}.m-nav .nav.is-scrolled-down{transform:translateY(calc(100% + env(safe-area-inset-bottom)));opacity:0;pointer-events:none}.m-nav .nav .nav__footer{display:none}.m-nav .nav .nav__header{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:space-between;height:100%}.m-nav .nav .nav__header .nav_logo{flex:0 0 72px;display:flex;align-items:center;justify-content:center;height:100%;cursor:pointer}.m-nav .nav .nav__header .nav_logo.nav_logo--loading{cursor:default!important;pointer-events:none!important}.m-nav .nav .nav__header .nav_logo svg{width:1.75rem}.m-nav .nav .nav__header .nav_actions{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:1.25rem;height:100%}.m-nav .nav .nav__header .nav_actions .nav_main_group{display:flex;align-items:center}.m-nav .nav .nav__header .nav_actions .nav_main_group .button-group{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;gap:1.25rem}.m-nav .nav .nav__body{flex:0 0 56px;display:flex;justify-content:flex-end;align-items:center;padding-right:.5rem;height:100%}}@keyframes breathe{0%,to{box-shadow:0 2px 8px #00000014,0 0 0 0 transparent}50%{box-shadow:0 6px 16px color-mix(in srgb,var(--m-mm) 20%,transparent),0 0 10px 2px color-mix(in srgb,var(--m-mm) 25%,transparent)}}.m-nav .nav__backdrop{position:fixed;inset:0;z-index:80;opacity:0;pointer-events:none;transition:opacity .4s cubic-bezier(.16,1,.3,1);cursor:pointer}.m-nav .nav__backdrop.show{opacity:1;pointer-events:all}.m-nav .nav-lang-label{font-size:.7rem;font-weight:800;text-transform:uppercase;color:var(--m-text-secondary);opacity:.8;line-height:1;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:2em;background:#00000008;transition:all .2s ease}.m-nav button:has(.nav-lang-label):hover .nav-lang-label{background:#0000000f;opacity:1;color:var(--m-primary-color)}.m-nav button.primary:has(.nav-lang-label) .nav-lang-label{background:var(--m-btn-color-opposite, #e1b941);opacity:1}@keyframes nav-logo-skeleton-pulse{0%{opacity:.5}50%{opacity:.8}to{opacity:.5}}@keyframes nav-logo-pop{0%{transform:scale(1)}35%{transform:scale(.85)}70%{transform:scale(1.06)}to{transform:scale(1)}}\n"],
|
|
41853
42434
|
dependencies: [
|
|
41854
42435
|
{
|
|
@@ -41920,6 +42501,16 @@ var NavComponent = class NavComponent {
|
|
|
41920
42501
|
"ngSrcset",
|
|
41921
42502
|
"sizes"
|
|
41922
42503
|
]
|
|
42504
|
+
},
|
|
42505
|
+
{
|
|
42506
|
+
kind: "component",
|
|
42507
|
+
type: AppLogoComponent,
|
|
42508
|
+
selector: "m-app-logo",
|
|
42509
|
+
inputs: [
|
|
42510
|
+
"glyph",
|
|
42511
|
+
"appColor",
|
|
42512
|
+
"name"
|
|
42513
|
+
]
|
|
41923
42514
|
}
|
|
41924
42515
|
],
|
|
41925
42516
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
@@ -41939,12 +42530,13 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
41939
42530
|
ButtonGroupComponent,
|
|
41940
42531
|
ButtonComponent,
|
|
41941
42532
|
NavDetailsComponent,
|
|
41942
|
-
ImgComponent
|
|
42533
|
+
ImgComponent,
|
|
42534
|
+
AppLogoComponent
|
|
41943
42535
|
],
|
|
41944
42536
|
encapsulation: ViewEncapsulation.None,
|
|
41945
42537
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
41946
42538
|
host: { class: "m-nav" },
|
|
41947
|
-
template: "<div class=\"nav\" [class.is-open]=\"isNavOpened()\" [class.is-scrolled-down]=\"isScrolledDown()\">\n <div class=\"nav__header\">\n @if (showLogo()) {\n @if (logo(); as logo) {\n <!-- AppLogo: menu open → home with panel still showing root; closed → home page. -->\n <button\n type=\"button\"\n class=\"nav_logo nav_logo--app\"\n [attr.data-app]=\"logo.app\"\n [attr.aria-label]=\"logo.alt\"\n [class.nav_logo--pop]=\"logoPop()\"\n [class.nav_logo--active]=\"logoActive()\"\n (click)=\"onLogoClick()\"\n (animationend)=\"logoPop.set(false)\"\n >\n <m-img class=\"nav_logo_img\" [src]=\"logo.src\" [alt]=\"logo.alt\" />\n </button>\n } @else if (logoPending()) {\n <div class=\"nav_logo nav_logo--loading\">\n <div class=\"nav_logo-skeleton\"></div>\n </div>\n }\n }\n <div class=\"nav_actions\">\n <m-one-button-group\n class=\"nav_main_group\"\n name=\"nav_main_button_group\"\n [buttons]=\"computedMainButtons()\"\n [vertical]=\"isVertical()\"\n />\n </div>\n @for (app of appRail(); track app.key) {\n <!-- App Rail: the Main Slot's App, then each Side App — opens the panel on its menu. -->\n @if (app.pending) {\n <div class=\"nav_logo nav_logo--loading nav_logo--rail\">\n <div class=\"nav_logo-skeleton\"></div>\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"nav_logo nav_logo--app nav_logo--rail\"\n [attr.data-app]=\"app.key\"\n [attr.aria-label]=\"app.alt\"\n [class.nav_logo--active]=\"app.active\"\n (click)=\"onAppLogoClick(app.appNavId)\"\n >\n <m-
|
|
42539
|
+
template: "<div class=\"nav\" [class.is-open]=\"isNavOpened()\" [class.is-scrolled-down]=\"isScrolledDown()\">\n <div class=\"nav__header\">\n @if (showLogo()) {\n @if (logo(); as logo) {\n <!-- AppLogo: menu open → home with panel still showing root; closed → home page. -->\n <button\n type=\"button\"\n class=\"nav_logo nav_logo--app\"\n [attr.data-app]=\"logo.app\"\n [attr.aria-label]=\"logo.alt\"\n [class.nav_logo--pop]=\"logoPop()\"\n [class.nav_logo--active]=\"logoActive()\"\n (click)=\"onLogoClick()\"\n (animationend)=\"logoPop.set(false)\"\n >\n @if (logo.src) {\n <m-img class=\"nav_logo_img\" [src]=\"logo.src\" [alt]=\"logo.alt\" />\n } @else {\n <m-app-logo class=\"nav_logo_img\" [glyph]=\"logo.glyph\" [appColor]=\"logo.color\" [name]=\"logo.alt\" />\n }\n </button>\n } @else if (logoPending()) {\n <div class=\"nav_logo nav_logo--loading\">\n <div class=\"nav_logo-skeleton\"></div>\n </div>\n }\n }\n <div class=\"nav_actions\">\n <m-one-button-group\n class=\"nav_main_group\"\n name=\"nav_main_button_group\"\n [buttons]=\"computedMainButtons()\"\n [vertical]=\"isVertical()\"\n />\n </div>\n @for (app of appRail(); track app.key) {\n <!-- App Rail: the Main Slot's App, then each Side App — opens the panel on its menu. -->\n @if (app.pending) {\n <div class=\"nav_logo nav_logo--loading nav_logo--rail\">\n <div class=\"nav_logo-skeleton\"></div>\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"nav_logo nav_logo--app nav_logo--rail\"\n [attr.data-app]=\"app.key\"\n [attr.aria-label]=\"app.alt\"\n [class.nav_logo--active]=\"app.active\"\n (click)=\"onAppLogoClick(app.appNavId)\"\n >\n <m-app-logo class=\"nav_logo_img\" [glyph]=\"app.glyph\" [appColor]=\"app.color\" [name]=\"app.alt\" />\n </button>\n }\n }\n </div>\n\n <div class=\"nav__body\">\n <m-one-button (clicked)=\"toggleMenu()\" [config]=\"menuButtonConfig()\" />\n </div>\n\n <div class=\"nav__footer\">\n <m-one-button-group name=\"nav_footer_button_group\" [buttons]=\"computedFooterButtons()\" [vertical]=\"isVertical()\" />\n </div>\n</div>\n\n<div\n class=\"nav__backdrop\"\n [class.show]=\"isNavOpened()\"\n (click)=\"toggleMenu()\"\n (keydown.enter)=\"toggleMenu()\"\n tabindex=\"0\"\n></div>\n<m-nav-details />\n",
|
|
41948
42540
|
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)}}.m-nav .nav{position:fixed;top:0;left:0;backdrop-filter:blur(16px) brightness(1.1) saturate(1.8) contrast(1.1);-webkit-backdrop-filter:blur(16px) brightness(1.1) saturate(1.8) contrast(1.1);background-color:var(--m-backdrop-glass);border:1px solid var(--m-backdrop-border);border:none;border-right:1px solid color-mix(in srgb,var(--m-border) 55%,transparent);width:64px;height:100%;transition:.4s cubic-bezier(.165,.84,.44,1) .15s ease-in-out;z-index:100;display:flex;flex-direction:column}.m-nav .nav button:not(.primary):not(:has(.nav-lang-label)):hover{background:#ffffff14;transform:scale(1.05);box-shadow:none}.m-nav .nav button:not(.primary):not(:has(.nav-lang-label)):active{transform:scale(.95);box-shadow:none}.m-nav .nav m-one-button:has(.nav-lang-label){--m-button-background: transparent;--m-button-hover-background: transparent;--m-button-border: none;--m-button-shadow: none;--m-button-padding: 0;--m-button-width: 2rem;--m-button-hover-transform: none}.m-nav .nav .button-group{display:flex;flex-direction:column;align-items:center;gap:1.75rem}.m-nav .nav_logo{display:flex;align-items:center;justify-content:center;padding:0;height:64px;width:64px;box-sizing:border-box;position:relative;margin:0 auto}.m-nav .nav_logo:after{content:\"\";position:absolute;bottom:0;left:10%;width:80%;height:2px;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--m-mm) 25%,transparent) 0%,color-mix(in srgb,var(--m-success) 15%,transparent) 40%,transparent 100%);filter:blur(.5px);pointer-events:none;z-index:11}.m-nav .nav_logo.nav_logo--rail:after{content:none}.m-nav .nav_logo.nav_logo--app{border:0;background:transparent!important;font:inherit;color:inherit;cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent}.m-nav .nav_logo.nav_logo--app:hover{transform:none!important}.m-nav .nav_logo.nav_logo--app .nav_logo_img{display:block;width:32px;height:32px;margin:0 auto;position:relative;z-index:1;border-radius:9px;overflow:hidden;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.m-nav .nav_logo.nav_logo--app .nav_logo_img img{width:100%;height:100%;object-fit:cover}.m-nav .nav_logo.nav_logo--app:hover .nav_logo_img{transform:scale(1.06)}.m-nav .nav_logo.nav_logo--app:active .nav_logo_img{transform:scale(.88);transition-duration:.1s}.m-nav .nav_logo.nav_logo--app.nav_logo--pop .nav_logo_img{animation:nav-logo-pop .4s cubic-bezier(.34,1.56,.64,1)}.m-nav .nav_logo.nav_logo--app:before{content:\"\";position:absolute;top:50%;left:50%;width:44px;height:44px;border-radius:14px;border:1px solid transparent;transform:translate(-50%,-50%) scale(.85);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .25s cubic-bezier(.34,1.56,.64,1)}.m-nav .nav_logo.nav_logo--app.nav_logo--active:before{opacity:1;transform:translate(-50%,-50%) scale(1);border-color:color-mix(in srgb,var(--m-primary-color) 45%,transparent);background:color-mix(in srgb,var(--m-primary-color) 8%,transparent)}.m-nav .nav_logo.nav_logo--loading{cursor:default!important;pointer-events:none!important}.m-nav .nav_logo.nav_logo--loading .nav_logo-skeleton{width:28px;height:28px;margin:0 auto;border-radius:8px;background:#ffffff14;animation:nav-logo-skeleton-pulse 1.5s infinite ease-in-out}.m-nav .nav_logo svg{width:1.75rem;height:auto;display:block;margin:0 auto;filter:drop-shadow(0 4px 12px color-mix(in srgb,var(--m-mm) 40%,transparent));transition:filter .3s ease-out}.m-nav .nav_logo svg:hover{filter:drop-shadow(0 8px 16px color-mix(in srgb,var(--m-mm) 60%,transparent))}.m-nav .nav_actions{width:100%;flex-direction:column;display:flex;align-items:center;justify-content:center;gap:1.75rem;margin-top:.5rem}.m-nav .nav_actions .nav_main_group{display:flex;flex-direction:column;align-items:center;width:100%}.m-nav .nav_user{width:100%;display:flex;align-items:center;justify-content:center;position:relative;z-index:12}.m-nav .nav__header,.m-nav .nav__footer{width:100%;position:relative;align-items:center;justify-content:center;display:flex;flex-direction:column}.m-nav .nav__body{width:100%;position:relative;flex:1;display:grid;place-items:center}@media(max-width:767px){.m-nav .nav{top:auto!important;bottom:0!important;left:0;right:0;position:fixed;width:100%;height:48px;box-sizing:content-box;display:flex;flex-direction:row;align-items:stretch;border-right:none;border-top:1px solid color-mix(in srgb,var(--m-border) 55%,transparent);padding-bottom:env(safe-area-inset-bottom);will-change:transform,opacity;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .4s ease;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);background:color-mix(in srgb,var(--m-background) 70%,transparent)}.m-nav .nav.is-scrolled-down{transform:translateY(calc(100% + env(safe-area-inset-bottom)));opacity:0;pointer-events:none}.m-nav .nav .nav__footer{display:none}.m-nav .nav .nav__header{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:space-between;height:100%}.m-nav .nav .nav__header .nav_logo{flex:0 0 64px;display:flex;align-items:center;justify-content:center;height:100%;cursor:pointer}.m-nav .nav .nav__header .nav_logo.nav_logo--loading{cursor:default!important;pointer-events:none!important}.m-nav .nav .nav__header .nav_logo svg{width:1.5rem}.m-nav .nav .nav__header .nav_actions{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.75rem;height:100%}.m-nav .nav .nav__header .nav_actions .nav_main_group{display:flex;align-items:center}.m-nav .nav .nav__header .nav_actions .nav_main_group .button-group{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;gap:.75rem}.m-nav .nav .nav__body{flex:0 0 48px;display:flex;justify-content:flex-end;align-items:center;padding-right:.25rem;height:100%}}@media(min-width:768px)and (max-width:1199px){.m-nav .nav{top:auto!important;bottom:0!important;left:0;right:0;position:fixed;width:100%;height:56px;box-sizing:content-box;display:flex;flex-direction:row;align-items:stretch;border-right:none;border-top:1px solid color-mix(in srgb,var(--m-border) 55%,transparent);padding-bottom:env(safe-area-inset-bottom);will-change:transform,opacity;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .4s ease;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);background:color-mix(in srgb,var(--m-background) 70%,transparent)}.m-nav .nav.is-scrolled-down{transform:translateY(calc(100% + env(safe-area-inset-bottom)));opacity:0;pointer-events:none}.m-nav .nav .nav__footer{display:none}.m-nav .nav .nav__header{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:space-between;height:100%}.m-nav .nav .nav__header .nav_logo{flex:0 0 72px;display:flex;align-items:center;justify-content:center;height:100%;cursor:pointer}.m-nav .nav .nav__header .nav_logo.nav_logo--loading{cursor:default!important;pointer-events:none!important}.m-nav .nav .nav__header .nav_logo svg{width:1.75rem}.m-nav .nav .nav__header .nav_actions{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:1.25rem;height:100%}.m-nav .nav .nav__header .nav_actions .nav_main_group{display:flex;align-items:center}.m-nav .nav .nav__header .nav_actions .nav_main_group .button-group{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;gap:1.25rem}.m-nav .nav .nav__body{flex:0 0 56px;display:flex;justify-content:flex-end;align-items:center;padding-right:.5rem;height:100%}}@keyframes breathe{0%,to{box-shadow:0 2px 8px #00000014,0 0 0 0 transparent}50%{box-shadow:0 6px 16px color-mix(in srgb,var(--m-mm) 20%,transparent),0 0 10px 2px color-mix(in srgb,var(--m-mm) 25%,transparent)}}.m-nav .nav__backdrop{position:fixed;inset:0;z-index:80;opacity:0;pointer-events:none;transition:opacity .4s cubic-bezier(.16,1,.3,1);cursor:pointer}.m-nav .nav__backdrop.show{opacity:1;pointer-events:all}.m-nav .nav-lang-label{font-size:.7rem;font-weight:800;text-transform:uppercase;color:var(--m-text-secondary);opacity:.8;line-height:1;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:2em;background:#00000008;transition:all .2s ease}.m-nav button:has(.nav-lang-label):hover .nav-lang-label{background:#0000000f;opacity:1;color:var(--m-primary-color)}.m-nav button.primary:has(.nav-lang-label) .nav-lang-label{background:var(--m-btn-color-opposite, #e1b941);opacity:1}@keyframes nav-logo-skeleton-pulse{0%{opacity:.5}50%{opacity:.8}to{opacity:.5}}@keyframes nav-logo-pop{0%{transform:scale(1)}35%{transform:scale(.85)}70%{transform:scale(1.06)}to{transform:scale(1)}}\n"]
|
|
41949
42541
|
}]
|
|
41950
42542
|
}],
|
|
@@ -41982,7 +42574,6 @@ var FooterComponent = class FooterComponent {
|
|
|
41982
42574
|
#navStore = inject(NavStore);
|
|
41983
42575
|
currentYear = (/* @__PURE__ */ new Date()).getFullYear();
|
|
41984
42576
|
activeApp = this.#navStore.currentWcConfig;
|
|
41985
|
-
companyName = computed(() => this.activeApp()?.company ?? "Magmonium India Private Limited", ...ngDevMode ? [{ debugName: "companyName" }] : /* istanbul ignore next */ []);
|
|
41986
42577
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
41987
42578
|
minVersion: "12.0.0",
|
|
41988
42579
|
version: "22.2.1",
|
|
@@ -42040,7 +42631,8 @@ var FooterComponent = class FooterComponent {
|
|
|
42040
42631
|
"size",
|
|
42041
42632
|
"one",
|
|
42042
42633
|
"baseUrl",
|
|
42043
|
-
"remote"
|
|
42634
|
+
"remote",
|
|
42635
|
+
"shadow"
|
|
42044
42636
|
],
|
|
42045
42637
|
outputs: ["configChange"]
|
|
42046
42638
|
},
|
|
@@ -44243,7 +44835,8 @@ var ThemeCardContentComponent = class ThemeCardContentComponent {
|
|
|
44243
44835
|
"size",
|
|
44244
44836
|
"one",
|
|
44245
44837
|
"baseUrl",
|
|
44246
|
-
"remote"
|
|
44838
|
+
"remote",
|
|
44839
|
+
"shadow"
|
|
44247
44840
|
],
|
|
44248
44841
|
outputs: ["configChange"]
|
|
44249
44842
|
}, {
|
|
@@ -45700,6 +46293,14 @@ function provideMagWcConfig(options) {
|
|
|
45700
46293
|
provide: NavStore,
|
|
45701
46294
|
useFactory: () => SharedStoreRegistry.getNavStore() || SharedStoreRegistry.getHostInjector()?.get(NavStore, null) || null
|
|
45702
46295
|
},
|
|
46296
|
+
{
|
|
46297
|
+
provide: AppLogoState,
|
|
46298
|
+
useFactory: () => SharedStoreRegistry.getAppLogoState() ?? new AppLogoState()
|
|
46299
|
+
},
|
|
46300
|
+
{
|
|
46301
|
+
provide: APP_THEME_COLOR,
|
|
46302
|
+
useFactory: appThemeColorFactory
|
|
46303
|
+
},
|
|
45703
46304
|
{
|
|
45704
46305
|
provide: MODAL_STORE_REF,
|
|
45705
46306
|
useFactory: () => {
|
|
@@ -45900,6 +46501,14 @@ function provideMagAppConfig(options) {
|
|
|
45900
46501
|
provide: NavStore,
|
|
45901
46502
|
useFactory: () => SharedStoreRegistry.getNavStore() || SharedStoreRegistry.getHostInjector()?.get(NavStore, null) || new NavStore()
|
|
45902
46503
|
},
|
|
46504
|
+
{
|
|
46505
|
+
provide: AppLogoState,
|
|
46506
|
+
useFactory: () => SharedStoreRegistry.getAppLogoState() ?? new AppLogoState()
|
|
46507
|
+
},
|
|
46508
|
+
{
|
|
46509
|
+
provide: APP_THEME_COLOR,
|
|
46510
|
+
useFactory: appThemeColorFactory
|
|
46511
|
+
},
|
|
45903
46512
|
{
|
|
45904
46513
|
provide: NAV_STORE_REF,
|
|
45905
46514
|
useFactory: (localStore) => SharedStoreRegistry.getNavStore() || SharedStoreRegistry.getHostInjector()?.get(NAV_STORE_REF, null) || localStore,
|
|
@@ -45919,6 +46528,11 @@ function provideMagAppConfig(options) {
|
|
|
45919
46528
|
provide: APP_CONTEXT_REF,
|
|
45920
46529
|
useFactory: provideAppContext
|
|
45921
46530
|
},
|
|
46531
|
+
provideAppInitializer(() => {
|
|
46532
|
+
const color = inject(APP_THEME_COLOR);
|
|
46533
|
+
const body = inject(DOCUMENT).body;
|
|
46534
|
+
effect(() => paintAppColor(body, color()));
|
|
46535
|
+
}),
|
|
45922
46536
|
provideAppInitializer(() => {
|
|
45923
46537
|
inject(APP_CONTEXT_REF);
|
|
45924
46538
|
}),
|
|
@@ -48026,7 +48640,8 @@ var SvgGeneratorComponent = class SvgGeneratorComponent {
|
|
|
48026
48640
|
"size",
|
|
48027
48641
|
"one",
|
|
48028
48642
|
"baseUrl",
|
|
48029
|
-
"remote"
|
|
48643
|
+
"remote",
|
|
48644
|
+
"shadow"
|
|
48030
48645
|
],
|
|
48031
48646
|
outputs: ["configChange"]
|
|
48032
48647
|
},
|
|
@@ -48291,7 +48906,8 @@ var SearchUserPanelComponent = class SearchUserPanelComponent {
|
|
|
48291
48906
|
"size",
|
|
48292
48907
|
"one",
|
|
48293
48908
|
"baseUrl",
|
|
48294
|
-
"remote"
|
|
48909
|
+
"remote",
|
|
48910
|
+
"shadow"
|
|
48295
48911
|
],
|
|
48296
48912
|
outputs: ["configChange"]
|
|
48297
48913
|
},
|
|
@@ -49214,7 +49830,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
49214
49830
|
}]
|
|
49215
49831
|
}
|
|
49216
49832
|
});
|
|
49217
|
-
const FALLBACK_ICON = "apps";
|
|
49218
49833
|
var AppTileComponent = class AppTileComponent {
|
|
49219
49834
|
app = input.required(...ngDevMode ? [{ debugName: "app" }] : /* istanbul ignore next */ []);
|
|
49220
49835
|
notifications = input([], ...ngDevMode ? [{ debugName: "notifications" }] : /* istanbul ignore next */ []);
|
|
@@ -49222,13 +49837,7 @@ var AppTileComponent = class AppTileComponent {
|
|
|
49222
49837
|
openApp = output();
|
|
49223
49838
|
clearAll = output();
|
|
49224
49839
|
expanded = signal(false, ...ngDevMode ? [{ debugName: "expanded" }] : /* istanbul ignore next */ []);
|
|
49225
|
-
fallback = FALLBACK_ICON;
|
|
49226
49840
|
icon = computed(() => this.app()?.icon, ...ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []);
|
|
49227
|
-
remote = computed(() => this.app()?.remote, ...ngDevMode ? [{ debugName: "remote" }] : /* istanbul ignore next */ []);
|
|
49228
|
-
isUrl = computed(() => {
|
|
49229
|
-
const icon = this.icon();
|
|
49230
|
-
return !!icon && (icon.startsWith("http") || icon.startsWith("/") || icon.includes("."));
|
|
49231
|
-
}, ...ngDevMode ? [{ debugName: "isUrl" }] : /* istanbul ignore next */ []);
|
|
49232
49841
|
notificationCount = computed(() => this.notifications().length, ...ngDevMode ? [{ debugName: "notificationCount" }] : /* istanbul ignore next */ []);
|
|
49233
49842
|
expandOrNavigate = (_event) => {
|
|
49234
49843
|
if (this.expanded()) {
|
|
@@ -49307,10 +49916,10 @@ var AppTileComponent = class AppTileComponent {
|
|
|
49307
49916
|
@if (expanded()) {
|
|
49308
49917
|
<div class="app-tile__header">
|
|
49309
49918
|
<div class="app-tile__header-icon">
|
|
49310
|
-
@if (
|
|
49311
|
-
<m-
|
|
49919
|
+
@if (icon(); as name) {
|
|
49920
|
+
<m-icon [name]="name" color="mm" />
|
|
49312
49921
|
} @else {
|
|
49313
|
-
<m-
|
|
49922
|
+
<m-app-logo [glyph]="app.logoGlyph" [appColor]="app.appColor" [name]="app.name" />
|
|
49314
49923
|
}
|
|
49315
49924
|
</div>
|
|
49316
49925
|
<span class="app-tile__header-name">{{ app.name }}</span>
|
|
@@ -49326,13 +49935,13 @@ var AppTileComponent = class AppTileComponent {
|
|
|
49326
49935
|
</div>
|
|
49327
49936
|
} @else {
|
|
49328
49937
|
<div class="app-tile__icon-wrapper">
|
|
49329
|
-
@if (
|
|
49330
|
-
<div class="app-
|
|
49331
|
-
<m-
|
|
49938
|
+
@if (icon(); as name) {
|
|
49939
|
+
<div class="app-tile__icon">
|
|
49940
|
+
<m-icon [name]="name" />
|
|
49332
49941
|
</div>
|
|
49333
49942
|
} @else {
|
|
49334
|
-
<div class="app-
|
|
49335
|
-
<m-
|
|
49943
|
+
<div class="app-tile__custom-icon">
|
|
49944
|
+
<m-app-logo [glyph]="app.logoGlyph" [appColor]="app.appColor" [name]="app.name" />
|
|
49336
49945
|
</div>
|
|
49337
49946
|
}
|
|
49338
49947
|
@if (notificationCount() > 0) {
|
|
@@ -49349,20 +49958,12 @@ var AppTileComponent = class AppTileComponent {
|
|
|
49349
49958
|
dependencies: [
|
|
49350
49959
|
{
|
|
49351
49960
|
kind: "component",
|
|
49352
|
-
type:
|
|
49353
|
-
selector: "m-
|
|
49961
|
+
type: AppLogoComponent,
|
|
49962
|
+
selector: "m-app-logo",
|
|
49354
49963
|
inputs: [
|
|
49355
|
-
"
|
|
49356
|
-
"
|
|
49357
|
-
"
|
|
49358
|
-
"alt",
|
|
49359
|
-
"priority",
|
|
49360
|
-
"fill",
|
|
49361
|
-
"width",
|
|
49362
|
-
"height",
|
|
49363
|
-
"remote",
|
|
49364
|
-
"ngSrcset",
|
|
49365
|
-
"sizes"
|
|
49964
|
+
"glyph",
|
|
49965
|
+
"appColor",
|
|
49966
|
+
"name"
|
|
49366
49967
|
]
|
|
49367
49968
|
},
|
|
49368
49969
|
{
|
|
@@ -49376,7 +49977,8 @@ var AppTileComponent = class AppTileComponent {
|
|
|
49376
49977
|
"size",
|
|
49377
49978
|
"one",
|
|
49378
49979
|
"baseUrl",
|
|
49379
|
-
"remote"
|
|
49980
|
+
"remote",
|
|
49981
|
+
"shadow"
|
|
49380
49982
|
],
|
|
49381
49983
|
outputs: ["configChange"]
|
|
49382
49984
|
},
|
|
@@ -49422,7 +50024,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
49422
50024
|
selector: "m-app-tile",
|
|
49423
50025
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
49424
50026
|
imports: [
|
|
49425
|
-
|
|
50027
|
+
AppLogoComponent,
|
|
49426
50028
|
IconComponent,
|
|
49427
50029
|
BadgeComponent,
|
|
49428
50030
|
ButtonGroupComponent,
|
|
@@ -49444,10 +50046,10 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
49444
50046
|
@if (expanded()) {
|
|
49445
50047
|
<div class="app-tile__header">
|
|
49446
50048
|
<div class="app-tile__header-icon">
|
|
49447
|
-
@if (
|
|
49448
|
-
<m-
|
|
50049
|
+
@if (icon(); as name) {
|
|
50050
|
+
<m-icon [name]="name" color="mm" />
|
|
49449
50051
|
} @else {
|
|
49450
|
-
<m-
|
|
50052
|
+
<m-app-logo [glyph]="app.logoGlyph" [appColor]="app.appColor" [name]="app.name" />
|
|
49451
50053
|
}
|
|
49452
50054
|
</div>
|
|
49453
50055
|
<span class="app-tile__header-name">{{ app.name }}</span>
|
|
@@ -49463,13 +50065,13 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
49463
50065
|
</div>
|
|
49464
50066
|
} @else {
|
|
49465
50067
|
<div class="app-tile__icon-wrapper">
|
|
49466
|
-
@if (
|
|
49467
|
-
<div class="app-
|
|
49468
|
-
<m-
|
|
50068
|
+
@if (icon(); as name) {
|
|
50069
|
+
<div class="app-tile__icon">
|
|
50070
|
+
<m-icon [name]="name" />
|
|
49469
50071
|
</div>
|
|
49470
50072
|
} @else {
|
|
49471
|
-
<div class="app-
|
|
49472
|
-
<m-
|
|
50073
|
+
<div class="app-tile__custom-icon">
|
|
50074
|
+
<m-app-logo [glyph]="app.logoGlyph" [appColor]="app.appColor" [name]="app.name" />
|
|
49473
50075
|
</div>
|
|
49474
50076
|
}
|
|
49475
50077
|
@if (notificationCount() > 0) {
|
|
@@ -49730,7 +50332,8 @@ var AudiencePickerBoxComponent = class AudiencePickerBoxComponent {
|
|
|
49730
50332
|
"size",
|
|
49731
50333
|
"one",
|
|
49732
50334
|
"baseUrl",
|
|
49733
|
-
"remote"
|
|
50335
|
+
"remote",
|
|
50336
|
+
"shadow"
|
|
49734
50337
|
],
|
|
49735
50338
|
outputs: ["configChange"]
|
|
49736
50339
|
},
|
|
@@ -50115,6 +50718,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
50115
50718
|
}]
|
|
50116
50719
|
}
|
|
50117
50720
|
});
|
|
50118
|
-
export { ACCESS_DOMAINS, APP_CONTEXT_REF, APP_LINK, ASSET_BASE_URL, AUDIENCE_ICONS, AUDIENCE_LEVELS, AccordionBodyDirective, AccordionComponent, AccordionGroupComponent, ActionComponent, AnimatedGraphsComponent, AppAvailability, AppCardComponent, AppRelationType, AppTileComponent, AssetStore, AssetUrlPipe, Assets, AudiencePickerBoxComponent, AudiencePickerComponent, AuthActivityPageComponent, AuthApiService, AuthStore, AutosizeDirective, BadgeComponent, BandingComponent, BaseArrayInputComponent, BaseRootWebComponent, BaseWebComponent, BrowserLocaleService, ButtonComponent, ButtonGroupComponent, CALLING_APP_HEADER, COMPONENT_INPUT_REGISTRY, CardComponent, CardWrapperComponent, CarouselComponent, ChartComponent, ChatBubbleComponent, CheckboxGroupComponent, CheckboxInputComponent, ClearableInputComponent, ClipboardService, ColComponent, ColorPickerInputComponent, CommentItemComponent, CommentsApiService, CommentsComponent, CommentsStore, CompactNumberPipe, ComponentInputComponent, ComponentStepperComponent, ConfigComponent, ConfirmComponent, ContextMenuComponent, CustomIconClass, CustomIconEditComponent, DEFAULT_AUDIENCE, DEFAULT_DENIAL, DEFAULT_DOC_ALIGN, DEFAULT_DOC_DENSITY, DEFAULT_DOC_VARIANT, DEFAULT_FILTER_RANGE_MODE, DEFAULT_FILTER_VARIANT, DEFAULT_NAV_PARAM, DEFAULT_NAV_SEGMENT, DEFAULT_SIZE, DOCK_MIN_PAGE_REMAINDER, DOCS_FOLDER, DOC_ACTION_ICONS, DOC_ALIGNS, DOC_DENSITIES, DOC_EDIT_ACTIONS, DOC_TOOLBAR_GROUPS, DOC_VARIANTS, DashboardCardComponent, DateInputComponent, DatePickerComponent, DeviceService, DocComponent, DocEditorComponent, DomService, Domain, DotGridComponent, DragListDirective, DragListItemDirective, DraggableDirective, DropdownInputComponent, FILTER_GROUP_CONTEXT, FILTER_RANGE_MODES, FILTER_VARIANTS, FLEX_VARIANTS, FOLDER_PICK_LISTENER, FORM_ASSET_FOLDER, FileService, FileUploadDirective, FileUploadInputComponent, FlexComponent, FlexItemComponent, FormGroupComponent, FrameComponent, FreezeService, GRID_BREAKPOINTS, GetNavService, HeaderComponent, HighlightDirective, HttpService, HttpSharingClient, ICON_SOURCE, IS_DESIGN_MODE, IS_SIDE_PANEL, IconComponent, ImgComponent, InputType, InstrumentScoreComponent, InterceptorObservables, JumbotronComponent, KeyValueComponent, LAYOUT_ASSET_FOLDER, LOADING_ACTIONS_REF, LOGIN_COMPONENT, LOGIN_STORE, LanguageComponent, ListComponent, LogoComponent, MAG_SOCKET_EVENT, MHeroColorDirective, MHeroComponent, MODAL_REF, MODAL_STORE_REF, MOUNT_STATIC_SEGMENT, MOUNT_TOKEN, MRefDirective, MStepComponent, MURL_PARAM, MURL_SEP, ManifestEnrichmentService, MarginDirective, MenuComponent, ModalDirective, ModalRef, ModalStore, MoneyPipe, MultiRangeInputComponent, MultiselectInputComponent, MurlUrlSerializer, NAV_DEFAULT_MURL, NAV_ID_SEP, NAV_MAIN_BUTTONS, NAV_SEGMENT_RE, NAV_STORE_REF, NAV_WC_COMPONENTS, NAV_WIDGET_MAP, NavComponent, NavDetailsComponent, NavHeaderComponent, NavMenuComponent, NavStore, NavTrailComponent, NothingComponent, NotificationElementComponent, NotificationGroupComponent, NotificationPopupComponent, NotificationService, NotificationStore, NotificationType, NotificationWidgetComponent, ONE_ASSET_BASE_URL, OPTIONS_SOURCE, OVERLAY_WIDGETS, OneApp, OptionsSourceDirective, OverlayBodyComponent, OverlayRef, OverlayService, PLATFORM_BUTTON_NAV_IDS, PLATFORM_EXTENSIBLE_NAV_IDS, PLATFORM_NAV_MAP, PLATFORM_ROOT_CHILDREN, PLUGIN_FALLBACK_LANG, PLUGIN_OUTPUT_EVENT, PLUGIN_SCREENS, PaddingDirective, PaginationComponent, PanelComponent, PercentagePipe, PlaygroundComponent, PluginComponent, PluginInputComponent, PluginOutputComponent, PositionDirective, PwaInstallComponent, RECENT_SEARCH_LIMIT, REMOTE_PAGE_RELOAD, ROOT_NAV, RadioGroupComponent, RadioInputComponent, RangeInputComponent, RatingInputComponent, ReactiveElementComponent, RemoteComponent, RemoteLoaderService, ResizeElementComponent, RouteContainer, RowComponent, SEARCH_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, ScoreComponent, ScrollComponent, ScrollService, SearchPanelComponent, SearchStore, SearchUserPanelComponent, SectionAccordionDirective, SectionAccordionGroupDirective, SectionBackComponent, SectionBadgesComponent, SectionButtonGroupComponent, SectionCardComponent, SectionCarouselComponent, SectionComponent, SectionFilterComponent, SectionFilterGroupComponent, SectionFilterMenuComponent, SectionFilterPanelComponent, SectionFilterRangePanelComponent, SectionFooterComponent, SectionFormComponent, SectionFormItemComponent, SectionHeaderComponent, SectionHeroComponent, SectionPaginationComponent, SectionSearchComponent, SectionStepperComponent, SectionTableCellComponent, SectionTableComponent, SectionTableRowComponent, SectionTableSortPipe, SectionTabsComponent, SectionToggleComponent, SectionToggleItemDirective, SelectableCardInputComponent, SelectorDirective, SettingsSearchBarComponent, SettingsSearchService, ShapeComponent, SharedStoreRegistry, SidePanelDirective, Size, SocketStore, SortComponent, StatComponent, StepComponent, StepperComponent, StepsComponent, StorageService, StrokeLinecap, StrokeLinejoin, SummaryComponent, SvgGeneratorComponent, SvgGeneratorService, SvgService, TOTAL_COLUMNS, TRANSLATION_SOURCE, TableComponent, TechnicalMeterComponent, TextInputComponent, TextOutputComponent, TextareaInputComponent, ThemeComponent, ThemeDataService, ThemeService, ThemeStore, TimeAgoPipe, TimelineComponent, ToggleButtonComponent, ToggleInputComponent, ToggleRadioInputComponent, ToolTipDirective, TooltipComponent, TranslatePipe, TranslateService, TreeGridComponent, URL_SEP, USER_STORE_REF, USER_TAB_MAP, UniverseComponent, UserApiService, UserAvatarComponent, UserComponent, UserNavComponent, UserSettingsComponent, UserStore, WC_BUNDLE, WC_NAVIGATE_EVENT, WC_ROUTE_CHANGED_EVENT, WC_SEARCH_GROUPS, WIN_USER_TAB_HOOK, WIN_USER_TAB_KEY, WatermarkComponent, WcRouterStore, WrapperInputComponent, activeElementWithin, allowedCodes, anchorNavId, applyColorsToElement, applyDocEdit, assetOptions, baseUnderHost, bootstrapMagApp, bootstrapPwaInstall, browserLocale, buildWcBaseUrl, calculateLuminance, calculateRanks, cellText, checkDoc, checkFilterCondition, childNavId, claimDenial, classListSignal, coerceSize, cornerEdge, cornerSide, createLoadingState, createMap, createPlatformNavMap, createPluginElement, definePluginScreens, definedWcBundleOf, definedWcTierOf, deriveAvatarGradient, deriveContrastColor, deriveOppositeColor, derivePropertyName, docActionKey, docAssetCandidates, docProblemKey, docRemotePath, emailValidation, evaluate, evaluateBool, exposeScreens, exposedScreensOf, fieldBoolean, fieldNumber, fieldString, filterHoldsList, filterHoldsOneBound, filterHoldsOptions, filterHoldsRange, filterList, filterNumber, filterNumberList, filterOne, filterPanelOf, filterPanelWidth, filterRange, filterTreeGridRows, filterValueList, filterValues, flattenTreeGridRows, formatBadgeCount, fullName, generateClipPath, generateTransform, getClassList, getProperty, getScrollParent, getTierFromPreviewPath, getTreeGridRow, getUniqueId, getValue, hasErrorComputed, hexToRgb, hslToRgb, initMagmoniumApp, initialNotificationState, initialState, initials, injectAuthenticate, injectDefaultDenial, injectInstallApp, injectParentSize, injectScrollSticky, isBootRedirect, isButtonName, isCancelledComputed, isExtensiblePlatformNavId, isJson, isLoadingComputed, isLocalhost, isNavInstanceConfig, isNavMenuConfig, isNavRowsConfig, isNavVisibilityConfig, isPlatformNavId, isPlatformPanelNavId, isSize, isTierPreview, isUrlLocalhost, isValidNavId, isValidNavSegment, isWebComponent, linkToId, linkToNav, loadingActions, mInterceptor, manualValidation, matchFieldValidation, matchMount, maxLengthValidation, maxValidation, mergePlatformNav, mergeUnique, mergeUniqueBy, mergeUniqueWith, minAgeValidation, minLengthValidation, minValidation, miniMarkToHtml, mountFor, mountPatternProblem, mountPatternText, mountSegmentOf, mountTokenOf, navIdChain, navIdFor, navIdSegment, navIdToRoutePath, navIdToSegments, navParamOf, navTailMatcher, navToId, navVisibilityGuard, nextSectionTableSort, normalizeAssetOptions, offsetOfLine, outletPathOf, outletSegmentsOf, parentNavId, parseAddress, parseColor, parseMountPattern, parsePatternNames, patternValidation, patternsValidation, permissionRefusal, pickCount, pickSupportedLanguage, picksMembers, platformNavWidgets, pluginTag, presetDefaultOption, privateGuard, processImageToSvg, provideAppContext, provideMagAppConfig, provideMagWcConfig, provideMagWcRoutes, provideModalComponents, provideMurlUrlSerializer, provideNavWidgets, provideOverlayWidgets, providePlatformNavWidgets, providePluginRuntime, provideSearch, provideSizeContext, provideUserTabs, publicGuard, readFieldPatterns, recordDefinedWcTier, remoteOutletRoute, renderAddress, renderDocument, requiredValidation, resolveConfigAsset, resolveIconSize, resolvePallet, resolvePatternRules, resolveSize, resolveSpacing, rgbToHex, rgbToHsl, rowHasChildren, samePatterns, sectionTableColumnId, sectionTableColumnWidths, sectionTableFrozenCount, segmentsToNavId, setProperty, setTreeGridChildren, setWcLocalPort, setWcTier, settingsWidgets, shouldShowBadge, sortSectionTableRows, splitNavId, splitOnMatch, splitPath, stringToColor, tailRouteOf, toAttrBool, toAttrNumber, toCssLength, toHostNavId, toLength, toLocalNavId, toggleGroup, toggleTreeGridRow, toggleUid, unfetchedPlatformNav, ungroupedDocActions, urlValidation, wcLocalBaseOf, wcTierOf, withLevel };
|
|
50721
|
+
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, 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_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, 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, 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, isSize, isTierPreview, isUrlLocalhost, isValidNavId, isValidNavSegment, isWebComponent, linkToId, linkToNav, loadingActions, logoGlyphMaskUrl, mInterceptor, manualValidation, matchFieldValidation, matchMount, maxLengthValidation, maxValidation, mergePlatformNav, mergeUnique, mergeUniqueBy, mergeUniqueWith, minAgeValidation, minLengthValidation, minValidation, miniMarkToHtml, mountFor, mountPatternProblem, mountPatternText, mountSegmentOf, mountTokenOf, navIdChain, navIdFor, navIdSegment, navIdToRoutePath, navIdToSegments, navParamOf, navTailMatcher, navToId, navVisibilityGuard, nextSectionTableSort, 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, rebuildLogoGlyph, recordDefinedWcTier, remoteOutletRoute, renderAddress, renderDocument, requiredValidation, resolveConfigAsset, resolveIconSize, resolvePallet, resolvePatternRules, resolveSize, resolveSpacing, rgbToHex, rgbToHsl, rowHasChildren, samePatterns, sectionTableColumnId, sectionTableColumnWidths, sectionTableFrozenCount, segmentsToNavId, setProperty, setTreeGridChildren, setWcLocalPort, setWcTier, settingsWidgets, shouldShowBadge, sortSectionTableRows, splitNavId, splitOnMatch, splitPath, stringToColor, tailRouteOf, toAttrBool, toAttrNumber, toCssLength, toHostNavId, toLength, toLocalNavId, toggleGroup, toggleTreeGridRow, toggleUid, unfetchedPlatformNav, ungroupedDocActions, urlValidation, wcLocalBaseOf, wcTierOf, withLevel };
|
|
50119
50722
|
|
|
50120
50723
|
//# sourceMappingURL=magmonium-one.mjs.map
|