@magmonium/one 0.4.102 → 0.4.103
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/fesm2022/{magmonium-one-attribute-value-BXEWw7xP.mjs → magmonium-one-attribute-value-D3-h8ve6.mjs} +3 -3
- package/fesm2022/{magmonium-one-attribute-value-BXEWw7xP.mjs.map → magmonium-one-attribute-value-D3-h8ve6.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-checkbox-CIUMxkzu.mjs → magmonium-one-base-checkbox-Bwl2LUSC.mjs} +2 -2
- package/fesm2022/{magmonium-one-base-checkbox-CIUMxkzu.mjs.map → magmonium-one-base-checkbox-Bwl2LUSC.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-dropdown-BMsV5USo.mjs → magmonium-one-base-dropdown-Cw6z6tBU.mjs} +10 -10
- package/fesm2022/magmonium-one-base-dropdown-Cw6z6tBU.mjs.map +1 -0
- package/fesm2022/{magmonium-one-base-input-BeyBAbV4.mjs → magmonium-one-base-input-BP-CVJlM.mjs} +2 -1
- package/fesm2022/{magmonium-one-base-input-BeyBAbV4.mjs.map → magmonium-one-base-input-BP-CVJlM.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-text-BBeMl8XM.mjs → magmonium-one-base-text-D6Ep6NEn.mjs} +2 -2
- package/fesm2022/{magmonium-one-base-text-BBeMl8XM.mjs.map → magmonium-one-base-text-D6Ep6NEn.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-button-DC_fLy-J.mjs → magmonium-one-button-CJG1vPHS.mjs} +7 -7
- package/fesm2022/{magmonium-one-button-DC_fLy-J.mjs.map → magmonium-one-button-CJG1vPHS.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-checkbox-C85FEuTs.mjs → magmonium-one-checkbox-ZM0KfqIQ.mjs} +7 -7
- package/fesm2022/magmonium-one-checkbox-ZM0KfqIQ.mjs.map +1 -0
- package/fesm2022/{magmonium-one-color-utl-DMLkkE-z.mjs → magmonium-one-color-utl-Bo4uumN1.mjs} +2 -2
- package/fesm2022/{magmonium-one-color-utl-DMLkkE-z.mjs.map → magmonium-one-color-utl-Bo4uumN1.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-directives-CJK7xDPK.mjs → magmonium-one-directives-BxxQs2S4.mjs} +4 -4
- package/fesm2022/{magmonium-one-directives-CJK7xDPK.mjs.map → magmonium-one-directives-BxxQs2S4.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-group-qu3xLiI8.mjs → magmonium-one-group-D5QIFnbR.mjs} +7 -7
- package/fesm2022/{magmonium-one-group-qu3xLiI8.mjs.map → magmonium-one-group-D5QIFnbR.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-header-BC-74GOn.mjs → magmonium-one-header-BGTP8_Uw.mjs} +4 -4
- package/fesm2022/{magmonium-one-header-BC-74GOn.mjs.map → magmonium-one-header-BGTP8_Uw.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-icon-CXFTG4mD.mjs → magmonium-one-icon-C8FRmxpW.mjs} +4 -4
- package/fesm2022/{magmonium-one-icon-CXFTG4mD.mjs.map → magmonium-one-icon-C8FRmxpW.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-image-editor-BAF7cdC2.mjs → magmonium-one-image-editor-C4l92aUj.mjs} +4 -4
- package/fesm2022/{magmonium-one-image-editor-BAF7cdC2.mjs.map → magmonium-one-image-editor-C4l92aUj.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-label-BNxbDSwc.mjs → magmonium-one-label-mLyqV5U_.mjs} +2 -2
- package/fesm2022/{magmonium-one-label-BNxbDSwc.mjs.map → magmonium-one-label-mLyqV5U_.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-m-ref-CoK96ogW.mjs → magmonium-one-m-ref-DQLJ12Cj.mjs} +2 -2
- package/fesm2022/{magmonium-one-m-ref-CoK96ogW.mjs.map → magmonium-one-m-ref-DQLJ12Cj.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-menu-D_HAqfel.mjs → magmonium-one-menu-BqT-XVvZ.mjs} +6 -6
- package/fesm2022/{magmonium-one-menu-D_HAqfel.mjs.map → magmonium-one-menu-BqT-XVvZ.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-multi-range-DqtW4U_x.mjs → magmonium-one-multi-range-BMn1iVZ4.mjs} +5 -4
- package/fesm2022/magmonium-one-multi-range-BMn1iVZ4.mjs.map +1 -0
- package/fesm2022/{magmonium-one-options-asset-DWjdYQe0.mjs → magmonium-one-options-asset-iITooSr4.mjs} +2 -2
- package/fesm2022/{magmonium-one-options-asset-DWjdYQe0.mjs.map → magmonium-one-options-asset-iITooSr4.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-otp-DOPvjYJz.mjs → magmonium-one-otp-xQgDDbDC.mjs} +7 -7
- package/fesm2022/magmonium-one-otp-xQgDDbDC.mjs.map +1 -0
- package/fesm2022/{magmonium-one-password-BqdyEDF6.mjs → magmonium-one-password-lZ5OEevh.mjs} +8 -8
- package/fesm2022/magmonium-one-password-lZ5OEevh.mjs.map +1 -0
- package/fesm2022/{magmonium-one-radio-DGTbRRXb.mjs → magmonium-one-radio-bTivHHZH.mjs} +3 -3
- package/fesm2022/{magmonium-one-radio-DGTbRRXb.mjs.map → magmonium-one-radio-bTivHHZH.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-range-Dw4YACtP.mjs → magmonium-one-range-8y-IUMjf.mjs} +4 -4
- package/fesm2022/{magmonium-one-range-Dw4YACtP.mjs.map → magmonium-one-range-8y-IUMjf.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-selector-QB49Ju9l.mjs → magmonium-one-selector-x0wB0KrY.mjs} +4 -4
- package/fesm2022/{magmonium-one-selector-QB49Ju9l.mjs.map → magmonium-one-selector-x0wB0KrY.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-text-CMULvvAr.mjs → magmonium-one-text-BTAJl4eW.mjs} +8 -8
- package/fesm2022/magmonium-one-text-BTAJl4eW.mjs.map +1 -0
- package/fesm2022/{magmonium-one-text-output-DiA4R1pw.mjs → magmonium-one-text-output-DP06NTMe.mjs} +4 -4
- package/fesm2022/{magmonium-one-text-output-DiA4R1pw.mjs.map → magmonium-one-text-output-DP06NTMe.mjs.map} +1 -1
- package/fesm2022/magmonium-one-theme-LIc0f731.mjs +1 -0
- package/fesm2022/{magmonium-one-toggle-sUSXzxMl.mjs → magmonium-one-toggle-CqEqyEtf.mjs} +2 -2
- package/fesm2022/{magmonium-one-toggle-sUSXzxMl.mjs.map → magmonium-one-toggle-CqEqyEtf.mjs.map} +1 -1
- package/fesm2022/magmonium-one.mjs +60 -60
- package/fesm2022/magmonium-one.mjs.map +1 -1
- package/package.json +1 -1
- package/types/magmonium-one.d.ts +3 -1
- package/fesm2022/magmonium-one-base-dropdown-BMsV5USo.mjs.map +0 -1
- package/fesm2022/magmonium-one-checkbox-C85FEuTs.mjs.map +0 -1
- package/fesm2022/magmonium-one-multi-range-DqtW4U_x.mjs.map +0 -1
- package/fesm2022/magmonium-one-otp-DOPvjYJz.mjs.map +0 -1
- package/fesm2022/magmonium-one-password-BqdyEDF6.mjs.map +0 -1
- package/fesm2022/magmonium-one-text-CMULvvAr.mjs.map +0 -1
- package/fesm2022/magmonium-one-theme-DEgFM1wD.mjs +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { G as IS_DESIGN_MODE, S as HttpService, _ as AssetStore } from "./magmonium-one-base-input-
|
|
2
|
-
import { m as ThemeStore, t as applyColorsToElement } from "./magmonium-one-color-utl-
|
|
1
|
+
import { G as IS_DESIGN_MODE, S as HttpService, _ as AssetStore } from "./magmonium-one-base-input-BP-CVJlM.mjs";
|
|
2
|
+
import { m as ThemeStore, t as applyColorsToElement } from "./magmonium-one-color-utl-Bo4uumN1.mjs";
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import { ChangeDetectionStrategy, Component, ElementRef, computed, effect, inject, input, model, signal, untracked } from "@angular/core";
|
|
5
5
|
import { catchError, of } from "rxjs";
|
|
@@ -252,4 +252,4 @@ const toAttrNumber = (value) => {
|
|
|
252
252
|
};
|
|
253
253
|
export { resolveConfigAsset as i, toAttrNumber as n, ConfigComponent as r, toAttrBool as t };
|
|
254
254
|
|
|
255
|
-
//# sourceMappingURL=magmonium-one-attribute-value-
|
|
255
|
+
//# sourceMappingURL=magmonium-one-attribute-value-D3-h8ve6.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magmonium-one-attribute-value-BXEWw7xP.mjs","names":[],"sources":["../../../../libs/one/src/lib/shared/functions/config/resolve-config-asset.ts","../../../../libs/one/src/lib/shared/lib/components/config-component.ts","../../../../libs/one/src/lib/shared/functions/config/attribute-value.ts"],"sourcesContent":["import { catchError, Observable, of } from 'rxjs';\nimport { AssetStore } from '../../stores/asset.store';\nimport { Config } from '../../type/config/config-type';\n\n/**\n * Resolves a config asset by name via `AssetStore`, outside any component\n * injection context — callable from directives, stores, or components alike.\n */\nexport function resolveConfigAsset<T extends Config = Config>(\n assetStore: InstanceType<typeof AssetStore>,\n subFolder: string | undefined,\n name: string | undefined,\n isOne: boolean,\n remoteBaseUrl: string | undefined\n): Observable<Partial<T>> {\n if (!name) return of({});\n\n const parts = [subFolder, name].filter(\n (part): part is string => typeof part !== 'undefined'\n );\n const type = parts.length > 1 ? parts.slice(0, -1).join('/') : parts[0];\n const assetName = parts[parts.length - 1];\n\n return assetStore\n .resolve<Partial<T>>(type, assetName, isOne, remoteBaseUrl)\n .pipe(catchError(() => of({})));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n inject,\n input,\n model,\n signal,\n untracked,\n} from '@angular/core';\nimport { rxResource } from '@angular/core/rxjs-interop';\nimport { AssetStore } from '../../stores/asset.store';\nimport { Config } from '../../type/config/config-type';\nimport { resolveConfigAsset } from '../../functions/config/resolve-config-asset';\nimport { applyColorsToElement, ColorPallet } from '../theme/lib/color-utl';\nimport { ThemeStore } from '../theme/lib/theme-store';\nimport { HttpService } from '../../services/http';\nimport { IS_DESIGN_MODE } from '../../config/tokens';\n\n@Component({\n imports: [],\n selector: 'm-config',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ConfigComponent<T extends Config = Config> {\n config = model<Partial<T>>();\n name = input<string | undefined>();\n baseUrl = input<string | undefined>();\n protected readonly subFolder: string | undefined = undefined;\n // Off for components whose settings are written on the tag: a Section Form\n // and its Items take every key as an attribute (ADR 0010), so their `name`\n // is the data key a form models by and not a `forms/*.yml` or\n // `fields/*.yml` to fetch. Config assets stay with <m-form> and its\n // <m-input-wrapper>, the pair that is reached by name alone.\n protected readonly resolvesConfigAsset: boolean = true;\n one = input<boolean | undefined>(undefined);\n protected readonly elementRef = inject(ElementRef);\n protected readonly isFromOne = computed(() => {\n if (this.one() || this.config()?.one) {\n return true;\n }\n return this.elementRef.nativeElement.tagName.startsWith('M-ONE');\n });\n protected readonly themeStore = inject(ThemeStore);\n\n // True when this component sits inside a visual editor's canvas (DesignMode).\n // Subclasses use it to render editor-only affordances — placeholder boxes for\n // otherwise zero-sized nodes, drop outlines, inert interactions.\n protected readonly isDesignMode = !!inject(IS_DESIGN_MODE, {\n optional: true,\n });\n\n protected readonly pallet = signal<ColorPallet | undefined>(undefined);\n\n remote = input<string | undefined>();\n protected readonly assetStore = inject(AssetStore);\n private readonly http = inject(HttpService);\n private readonly previousName = signal<string | undefined>(undefined);\n // Protected: a subclass resolving an asset of its own — a Field's accepted\n // shapes — has to reach the same Remote its config came from.\n protected readonly remoteBaseUrl = computed<string | undefined>(() => {\n const remoteId = this.remote() ?? this.config()?.remote;\n return remoteId ? this.http.buildWcAssetBaseUrl(remoteId) : undefined;\n });\n private readonly assetsPath = computed<\n | {\n name: string;\n isOne: boolean;\n remoteBaseUrl: string | undefined;\n }\n | undefined\n >(() => {\n const name = this.name();\n if (!name || !this.resolvesConfigAsset) return undefined;\n return {\n name,\n isOne: this.isFromOne(),\n remoteBaseUrl: this.remoteBaseUrl(),\n };\n });\n private readonly storedConfig = rxResource({\n params: () => this.assetsPath(),\n stream: ({ params }) =>\n resolveConfigAsset<T>(\n this.assetStore,\n this.subFolder,\n params?.name,\n params?.isOne ?? false,\n params?.remoteBaseUrl\n ),\n });\n\n // The `name` the resolved asset declares for itself, which is not always the\n // filename it was found under: fields/label_key.yml declares `label`, so a\n // picker asset and a plain textarea asset can drive one config key. Exposed\n // because `config().name` is stamped with the filename — that is what\n // resolves the asset — and a subclass binding to the declared key needs the\n // other half.\n protected readonly declaredName = computed(\n () => (this.storedConfig.value() as Config | undefined)?.name\n );\n\n // Keep track of manual updates cumulatively to support delta updates\n private readonly manualConfig = signal<Partial<T>>({});\n // Prevents syncManualConfig from treating internal updateConfig writes as external input\n private readonly _internalConfigWritePending = signal(false);\n\n /** Override in subclasses to provide component-level config overrides from individual inputs. */\n protected resolveComponentOverrides(): Partial<T> {\n return {};\n }\n\n constructor() {\n effect(this.syncManualConfig);\n effect(this.updateConfig);\n effect(this.updatePallet);\n }\n\n private readonly syncManualConfig = () => {\n const current = this.config();\n if (!current) return;\n\n untracked(() => {\n // Skip writes that originated from updateConfig — they are already merged\n if (this._internalConfigWritePending()) {\n this._internalConfigWritePending.set(false);\n return;\n }\n\n const prev = this.manualConfig();\n\n const merged = {\n ...current,\n };\n\n const allKeys = new Set([...Object.keys(merged), ...Object.keys(prev)]);\n const changed = [...allKeys].some((k) => {\n const inMerged = Object.prototype.hasOwnProperty.call(merged, k);\n const inPrev = Object.prototype.hasOwnProperty.call(prev, k);\n return (\n inMerged !== inPrev ||\n (merged as Record<string, unknown>)[k] !==\n (prev as Record<string, unknown>)[k]\n );\n });\n\n if (changed) {\n this.manualConfig.set(merged);\n }\n });\n };\n\n protected get defaultColor(): string {\n return 'mm';\n }\n\n private readonly updatePallet = (): void => {\n const config = this.config();\n if (!config) {\n return;\n }\n // Scalar inputs override the resolved config everywhere else. Apply the\n // same precedence to the host palette so its contrast and opposite values\n // cannot lag behind an explicit `color` input.\n const color =\n this.resolveComponentOverrides().color ??\n config.color ??\n this.defaultColor;\n this.pallet.set(\n applyColorsToElement(\n color,\n this.themeStore.color(),\n this.elementRef.nativeElement\n )\n );\n };\n\n private readonly updateConfig = () => {\n const currentName = untracked(() => this.name());\n const prevName = untracked(() => this.previousName());\n const storedConfigValue = this.storedConfig.value();\n const isLoading = this.storedConfig.isLoading();\n const manual = this.manualConfig();\n const componentOverrides = this.resolveComponentOverrides();\n\n const nameChanged = currentName !== prevName && prevName !== undefined;\n\n if (nameChanged) {\n // Clear manual config on name change to start fresh with new asset\n this.manualConfig.set({});\n this._internalConfigWritePending.set(true);\n this.config.set({\n ...((storedConfigValue ?? {}) as T),\n ...componentOverrides,\n name: currentName,\n remote: this.remote() ?? (storedConfigValue as Partial<T>)?.remote,\n isLoading,\n } as T);\n } else {\n untracked(() => {\n const currentConfig = this.config();\n const merged = {\n ...((storedConfigValue ?? {}) as Partial<T>),\n ...(manual as T),\n ...componentOverrides,\n name: currentName ?? currentConfig?.name,\n baseUrl: this.baseUrl() ?? currentConfig?.baseUrl,\n remote:\n this.remote() ??\n (storedConfigValue as Partial<T>)?.remote ??\n currentConfig?.remote,\n isLoading,\n } as T;\n\n const prev = currentConfig ?? {};\n const allKeys = new Set([...Object.keys(merged), ...Object.keys(prev)]);\n const same = [...allKeys].every((k) => {\n const inMerged = Object.prototype.hasOwnProperty.call(merged, k);\n const inPrev = Object.prototype.hasOwnProperty.call(prev, k);\n return (\n inMerged === inPrev &&\n (merged as Record<string, unknown>)[k] ===\n (prev as Record<string, unknown>)[k]\n );\n });\n if (same) return;\n\n this._internalConfigWritePending.set(true);\n this.config.set(merged);\n });\n }\n this.previousName.set(currentName);\n };\n}\n","// A component's scalar settings ride on its tag (ADR 0010), and an attribute\n// is a string even when the value is not. These are what a\n// `resolveComponentOverrides()` runs an attribute through before folding it\n// into the config the component would otherwise have read from a YAML asset.\n\n/**\n * A bare attribute (`required`, `fullWidth`) arrives as '', which is HTML for\n * \"present\" — the one spelling that has to mean true rather than empty. Only\n * the literal string 'false' reads as false, so `[required]=\"false\"` and\n * `required=\"false\"` agree; without that, a non-empty string would reach a\n * `boolean` input as truthy and an unticked toggle would render as ticked.\n */\nexport const toAttrBool = (\n value: boolean | string | undefined\n): boolean | undefined => {\n if (value === undefined) return undefined;\n if (typeof value === 'boolean') return value;\n return value.trim().toLowerCase() !== 'false';\n};\n\n/**\n * A numeric string becomes a number so the inputs reading these get the type\n * they expect. Anything else passes through as written — `maxWidth: 50%` and a\n * date format are legitimately non-numeric, and an empty attribute is an unset\n * rather than a zero.\n */\nexport const toAttrNumber = (\n value: number | string | undefined\n): number | string | undefined => {\n if (value === undefined || typeof value === 'number') return value;\n const trimmed = value.trim();\n if (trimmed === '') return undefined;\n const numeric = Number(trimmed);\n return Number.isNaN(numeric) ? value : numeric;\n};\n"],"mappings":";;;;;;AAQA,SAAgB,mBACd,YACA,WACA,MACA,OACA,eAAiC;CAEjC,IAAI,CAAC,MAAM,OAAO,GAAG,CAAA,CAAE;CAEvB,MAAM,QAAQ,CAAC,WAAW,IAAI,CAAC,CAAC,QAC7B,SAAyB,OAAO,SAAS,WAAW;CAEvD,MAAM,OAAO,MAAM,SAAS,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM;CACrE,MAAM,YAAY,MAAM,MAAM,SAAS;CAEvC,OAAO,WACJ,QAAoB,MAAM,WAAW,OAAO,aAAa,CAAC,CAC1D,KAAK,iBAAiB,GAAG,CAAA,CAAE,CAAC,CAAC;AAClC;ACCA,IAAa,kBAAb,MAAa,gBAAe;CAC1B,SAAS,MAAmB,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,SAAA,CAAA,+BAAA,CAAA,CAAA;CAC5B,OAAO,MAA2B,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;CAClC,UAAU,MAA2B,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,UAAA,CAAA,+BAAA,CAAA,CAAA;CAClB,YAAgC;CAMhC,sBAA+B;CAClD,MAAM,MAA2B,QAAU,GAAA,YAAA,CAAA,EAAA,WAAA,MAAA,CAAA,+BAAA,CAAA,CAAA;CACxB,aAAa,OAAO,UAAU;CAC9B,YAAY,eAAc;EAC3C,IAAI,KAAK,IAAG,KAAM,KAAK,OAAM,CAAE,EAAE,KAC/B,OAAO;EAET,OAAO,KAAK,WAAW,cAAc,QAAQ,WAAW,OAAO;CACjE,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,YAAA,CAAA,+BAAA,CAAA,CAAA;CACiB,aAAa,OAAO,UAAU;CAK9B,eAAe,CAAC,CAAC,OAAO,gBAAgB,EACzD,UAAU,KACX,CAAA;CAEkB,SAAS,OAAgC,QAAU,GAAA,YAAA,CAAA,EAAA,WAAA,SAAA,CAAA,+BAAA,CAAA,CAAA;CAEtE,SAAS,MAA2B,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,SAAA,CAAA,+BAAA,CAAA,CAAA;CACjB,aAAa,OAAO,UAAU;CAChC,OAAO,OAAO,WAAW;CACzB,eAAe,OAA2B,QAAU,GAAA,YAAA,CAAA,EAAA,WAAA,eAAA,CAAA,+BAAA,CAAA,CAAA;CAGlD,gBAAgB,eAAkC;EACnE,MAAM,WAAW,KAAK,OAAM,KAAM,KAAK,OAAM,CAAE,EAAE;EACjD,OAAO,WAAW,KAAK,KAAK,oBAAoB,QAAQ,IAAI;CAC9D,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,gBAAA,CAAA,+BAAA,CAAA,CAAA;CACe,aAAa,eAOvB;EACL,MAAM,OAAO,KAAK,KAAI;EACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,qBAAqB,OAAO;EAC/C,OAAO;GACL;GACA,OAAO,KAAK,UAAS;GACrB,eAAe,KAAK,cAAa;EAClC;CACH,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,aAAA,CAAA,+BAAA,CAAA,CAAA;CACe,eAAe,WAAW;EACzC,cAAc,KAAK,WAAU;EAC7B,SAAS,EAAE,aACT,mBACE,KAAK,YACL,KAAK,WACL,QAAQ,MACR,QAAQ,SAAS,OACjB,QAAQ,aAAa;CAE1B,CAAA;CAQkB,eAAe,eACzB,KAAK,aAAa,MAAK,CAAyB,EAAE,MAC1D,GAAA,YAAA,CAAA,EAAA,WAAA,eAAA,CAAA,+BAAA,CAAA,CAAA;CAGgB,eAAe,OAAmB,CAAA,GAAG,GAAA,YAAA,CAAA,EAAA,WAAA,eAAA,CAAA,+BAAA,CAAA,CAAA;CAErC,8BAA8B,OAAO,OAAM,GAAA,YAAA,CAAA,EAAA,WAAA,8BAAA,CAAA,+BAAA,CAAA,CAAA;CAGlD,4BAAyB;EACjC,OAAO,CAAA;CACT;CAEA,cAAA;EACE,OAAO,KAAK,gBAAgB;EAC5B,OAAO,KAAK,YAAY;EACxB,OAAO,KAAK,YAAY;CAC1B;CAEiB,yBAAwB;EACvC,MAAM,UAAU,KAAK,OAAM;EAC3B,IAAI,CAAC,SAAS;EAEd,gBAAe;GAEb,IAAI,KAAK,4BAA2B,GAAI;IACtC,KAAK,4BAA4B,IAAI,KAAK;IAC1C;GACF;GAEA,MAAM,OAAO,KAAK,aAAY;GAE9B,MAAM,SAAS,EACb,GAAG,QACJ;GAaD,IAVgB,CAAC,mBAAG,IADA,IAAI,CAAC,GAAG,OAAO,KAAK,MAAM,GAAG,GAAG,OAAO,KAAK,IAAI,CAAC,CACjD,CAAO,CAAC,CAAC,MAAM,MAAK;IAGtC,OAFiB,OAAO,UAAU,eAAe,KAAK,QAAQ,CAG5D,MAFa,OAAO,UAAU,eAAe,KAAK,MAAM,CAE3C,KACZ,OAAmC,OACjC,KAAiC;GAExC,CAEI,GACF,KAAK,aAAa,IAAI,MAAM;EAEhC,CAAC;CACH;CAEA,IAAc,eAAY;EACxB,OAAO;CACT;CAEiB,qBAA0B;EACzC,MAAM,SAAS,KAAK,OAAM;EAC1B,IAAI,CAAC,QACH;EAKF,MAAM,QACJ,KAAK,0BAAyB,CAAE,CAAC,SACjC,OAAO,SACP,KAAK;EACP,KAAK,OAAO,IACV,qBACE,OACA,KAAK,WAAW,MAAK,GACrB,KAAK,WAAW,aAAa,CAC9B;CAEL;CAEiB,qBAAoB;EACnC,MAAM,cAAc,gBAAgB,KAAK,KAAI,CAAE;EAC/C,MAAM,WAAW,gBAAgB,KAAK,aAAY,CAAE;EACpD,MAAM,oBAAoB,KAAK,aAAa,MAAK;EACjD,MAAM,YAAY,KAAK,aAAa,UAAS;EAC7C,MAAM,SAAS,KAAK,aAAY;EAChC,MAAM,qBAAqB,KAAK,0BAAyB;EAIzD,IAFoB,gBAAgB,YAAY,aAAa,QAE5C;GAEf,KAAK,aAAa,IAAI,CAAA,CAAE;GACxB,KAAK,4BAA4B,IAAI,IAAI;GACzC,KAAK,OAAO,IAAI;IACd,GAAK,qBAAqB,CAAA;IAC1B,GAAG;IACH,MAAM;IACN,QAAQ,KAAK,OAAM,KAAO,mBAAkC;IAC5D;GACI,CAAA;EACR,OACE,gBAAe;GACb,MAAM,gBAAgB,KAAK,OAAM;GACjC,MAAM,SAAS;IACb,GAAK,qBAAqB,CAAA;IAC1B,GAAI;IACJ,GAAG;IACH,MAAM,eAAe,eAAe;IACpC,SAAS,KAAK,QAAO,KAAM,eAAe;IAC1C,QACE,KAAK,OAAM,KACV,mBAAkC,UACnC,eAAe;IACjB;GACI;GAEN,MAAM,OAAO,iBAAiB,CAAA;GAW9B,IATa,CAAC,mBAAG,IADG,IAAI,CAAC,GAAG,OAAO,KAAK,MAAM,GAAG,GAAG,OAAO,KAAK,IAAI,CAAC,CACpD,CAAO,CAAC,CAAC,OAAO,MAAK;IAGpC,OAFiB,OAAO,UAAU,eAAe,KAAK,QAAQ,CAG5D,MAFa,OAAO,UAAU,eAAe,KAAK,MAAM,CAE3C,KACZ,OAAmC,OACjC,KAAiC;GAExC,CACI,GAAM;GAEV,KAAK,4BAA4B,IAAI,IAAI;GACzC,KAAK,OAAO,IAAI,MAAM;EACxB,CAAC;EAEH,KAAK,aAAa,IAAI,WAAW;CACnC;CAhNW,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAe,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAf,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAe,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,QAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,MAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,SAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,KAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,QAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,SAAA,EAAA,QAAA,eAAA;EAAA,UAAA;EAAA,UAHhB;EAAE,UAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAGD,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAe,YAAA,CAAA;EAN3B,MAAA;EAAU,MAAA,CAAA;GACT,SAAS,CAAA;GACT,UAAU;GACV,UAAU;GACV,iBAAiB,wBAAwB;EAC1C,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdD,MAAa,cACX,UACuB;CACvB,IAAI,UAAU,QAAW,OAAO;CAChC,IAAI,OAAO,UAAU,WAAW,OAAO;CACvC,OAAO,MAAM,KAAI,CAAE,CAAC,YAAW,MAAO;AACxC;AAQA,MAAa,gBACX,UAC+B;CAC/B,IAAI,UAAU,UAAa,OAAO,UAAU,UAAU,OAAO;CAC7D,MAAM,UAAU,MAAM,KAAI;CAC1B,IAAI,YAAY,IAAI,OAAO;CAC3B,MAAM,UAAU,OAAO,OAAO;CAC9B,OAAO,OAAO,MAAM,OAAO,IAAI,QAAQ;AACzC"}
|
|
1
|
+
{"version":3,"file":"magmonium-one-attribute-value-D3-h8ve6.mjs","names":[],"sources":["../../../../libs/one/src/lib/shared/functions/config/resolve-config-asset.ts","../../../../libs/one/src/lib/shared/lib/components/config-component.ts","../../../../libs/one/src/lib/shared/functions/config/attribute-value.ts"],"sourcesContent":["import { catchError, Observable, of } from 'rxjs';\nimport { AssetStore } from '../../stores/asset.store';\nimport { Config } from '../../type/config/config-type';\n\n/**\n * Resolves a config asset by name via `AssetStore`, outside any component\n * injection context — callable from directives, stores, or components alike.\n */\nexport function resolveConfigAsset<T extends Config = Config>(\n assetStore: InstanceType<typeof AssetStore>,\n subFolder: string | undefined,\n name: string | undefined,\n isOne: boolean,\n remoteBaseUrl: string | undefined\n): Observable<Partial<T>> {\n if (!name) return of({});\n\n const parts = [subFolder, name].filter(\n (part): part is string => typeof part !== 'undefined'\n );\n const type = parts.length > 1 ? parts.slice(0, -1).join('/') : parts[0];\n const assetName = parts[parts.length - 1];\n\n return assetStore\n .resolve<Partial<T>>(type, assetName, isOne, remoteBaseUrl)\n .pipe(catchError(() => of({})));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n inject,\n input,\n model,\n signal,\n untracked,\n} from '@angular/core';\nimport { rxResource } from '@angular/core/rxjs-interop';\nimport { AssetStore } from '../../stores/asset.store';\nimport { Config } from '../../type/config/config-type';\nimport { resolveConfigAsset } from '../../functions/config/resolve-config-asset';\nimport { applyColorsToElement, ColorPallet } from '../theme/lib/color-utl';\nimport { ThemeStore } from '../theme/lib/theme-store';\nimport { HttpService } from '../../services/http';\nimport { IS_DESIGN_MODE } from '../../config/tokens';\n\n@Component({\n imports: [],\n selector: 'm-config',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ConfigComponent<T extends Config = Config> {\n config = model<Partial<T>>();\n name = input<string | undefined>();\n baseUrl = input<string | undefined>();\n protected readonly subFolder: string | undefined = undefined;\n // Off for components whose settings are written on the tag: a Section Form\n // and its Items take every key as an attribute (ADR 0010), so their `name`\n // is the data key a form models by and not a `forms/*.yml` or\n // `fields/*.yml` to fetch. Config assets stay with <m-form> and its\n // <m-input-wrapper>, the pair that is reached by name alone.\n protected readonly resolvesConfigAsset: boolean = true;\n one = input<boolean | undefined>(undefined);\n protected readonly elementRef = inject(ElementRef);\n protected readonly isFromOne = computed(() => {\n if (this.one() || this.config()?.one) {\n return true;\n }\n return this.elementRef.nativeElement.tagName.startsWith('M-ONE');\n });\n protected readonly themeStore = inject(ThemeStore);\n\n // True when this component sits inside a visual editor's canvas (DesignMode).\n // Subclasses use it to render editor-only affordances — placeholder boxes for\n // otherwise zero-sized nodes, drop outlines, inert interactions.\n protected readonly isDesignMode = !!inject(IS_DESIGN_MODE, {\n optional: true,\n });\n\n protected readonly pallet = signal<ColorPallet | undefined>(undefined);\n\n remote = input<string | undefined>();\n protected readonly assetStore = inject(AssetStore);\n private readonly http = inject(HttpService);\n private readonly previousName = signal<string | undefined>(undefined);\n // Protected: a subclass resolving an asset of its own — a Field's accepted\n // shapes — has to reach the same Remote its config came from.\n protected readonly remoteBaseUrl = computed<string | undefined>(() => {\n const remoteId = this.remote() ?? this.config()?.remote;\n return remoteId ? this.http.buildWcAssetBaseUrl(remoteId) : undefined;\n });\n private readonly assetsPath = computed<\n | {\n name: string;\n isOne: boolean;\n remoteBaseUrl: string | undefined;\n }\n | undefined\n >(() => {\n const name = this.name();\n if (!name || !this.resolvesConfigAsset) return undefined;\n return {\n name,\n isOne: this.isFromOne(),\n remoteBaseUrl: this.remoteBaseUrl(),\n };\n });\n private readonly storedConfig = rxResource({\n params: () => this.assetsPath(),\n stream: ({ params }) =>\n resolveConfigAsset<T>(\n this.assetStore,\n this.subFolder,\n params?.name,\n params?.isOne ?? false,\n params?.remoteBaseUrl\n ),\n });\n\n // The `name` the resolved asset declares for itself, which is not always the\n // filename it was found under: fields/label_key.yml declares `label`, so a\n // picker asset and a plain textarea asset can drive one config key. Exposed\n // because `config().name` is stamped with the filename — that is what\n // resolves the asset — and a subclass binding to the declared key needs the\n // other half.\n protected readonly declaredName = computed(\n () => (this.storedConfig.value() as Config | undefined)?.name\n );\n\n // Keep track of manual updates cumulatively to support delta updates\n private readonly manualConfig = signal<Partial<T>>({});\n // Prevents syncManualConfig from treating internal updateConfig writes as external input\n private readonly _internalConfigWritePending = signal(false);\n\n /** Override in subclasses to provide component-level config overrides from individual inputs. */\n protected resolveComponentOverrides(): Partial<T> {\n return {};\n }\n\n constructor() {\n effect(this.syncManualConfig);\n effect(this.updateConfig);\n effect(this.updatePallet);\n }\n\n private readonly syncManualConfig = () => {\n const current = this.config();\n if (!current) return;\n\n untracked(() => {\n // Skip writes that originated from updateConfig — they are already merged\n if (this._internalConfigWritePending()) {\n this._internalConfigWritePending.set(false);\n return;\n }\n\n const prev = this.manualConfig();\n\n const merged = {\n ...current,\n };\n\n const allKeys = new Set([...Object.keys(merged), ...Object.keys(prev)]);\n const changed = [...allKeys].some((k) => {\n const inMerged = Object.prototype.hasOwnProperty.call(merged, k);\n const inPrev = Object.prototype.hasOwnProperty.call(prev, k);\n return (\n inMerged !== inPrev ||\n (merged as Record<string, unknown>)[k] !==\n (prev as Record<string, unknown>)[k]\n );\n });\n\n if (changed) {\n this.manualConfig.set(merged);\n }\n });\n };\n\n protected get defaultColor(): string {\n return 'mm';\n }\n\n private readonly updatePallet = (): void => {\n const config = this.config();\n if (!config) {\n return;\n }\n // Scalar inputs override the resolved config everywhere else. Apply the\n // same precedence to the host palette so its contrast and opposite values\n // cannot lag behind an explicit `color` input.\n const color =\n this.resolveComponentOverrides().color ??\n config.color ??\n this.defaultColor;\n this.pallet.set(\n applyColorsToElement(\n color,\n this.themeStore.color(),\n this.elementRef.nativeElement\n )\n );\n };\n\n private readonly updateConfig = () => {\n const currentName = untracked(() => this.name());\n const prevName = untracked(() => this.previousName());\n const storedConfigValue = this.storedConfig.value();\n const isLoading = this.storedConfig.isLoading();\n const manual = this.manualConfig();\n const componentOverrides = this.resolveComponentOverrides();\n\n const nameChanged = currentName !== prevName && prevName !== undefined;\n\n if (nameChanged) {\n // Clear manual config on name change to start fresh with new asset\n this.manualConfig.set({});\n this._internalConfigWritePending.set(true);\n this.config.set({\n ...((storedConfigValue ?? {}) as T),\n ...componentOverrides,\n name: currentName,\n remote: this.remote() ?? (storedConfigValue as Partial<T>)?.remote,\n isLoading,\n } as T);\n } else {\n untracked(() => {\n const currentConfig = this.config();\n const merged = {\n ...((storedConfigValue ?? {}) as Partial<T>),\n ...(manual as T),\n ...componentOverrides,\n name: currentName ?? currentConfig?.name,\n baseUrl: this.baseUrl() ?? currentConfig?.baseUrl,\n remote:\n this.remote() ??\n (storedConfigValue as Partial<T>)?.remote ??\n currentConfig?.remote,\n isLoading,\n } as T;\n\n const prev = currentConfig ?? {};\n const allKeys = new Set([...Object.keys(merged), ...Object.keys(prev)]);\n const same = [...allKeys].every((k) => {\n const inMerged = Object.prototype.hasOwnProperty.call(merged, k);\n const inPrev = Object.prototype.hasOwnProperty.call(prev, k);\n return (\n inMerged === inPrev &&\n (merged as Record<string, unknown>)[k] ===\n (prev as Record<string, unknown>)[k]\n );\n });\n if (same) return;\n\n this._internalConfigWritePending.set(true);\n this.config.set(merged);\n });\n }\n this.previousName.set(currentName);\n };\n}\n","// A component's scalar settings ride on its tag (ADR 0010), and an attribute\n// is a string even when the value is not. These are what a\n// `resolveComponentOverrides()` runs an attribute through before folding it\n// into the config the component would otherwise have read from a YAML asset.\n\n/**\n * A bare attribute (`required`, `fullWidth`) arrives as '', which is HTML for\n * \"present\" — the one spelling that has to mean true rather than empty. Only\n * the literal string 'false' reads as false, so `[required]=\"false\"` and\n * `required=\"false\"` agree; without that, a non-empty string would reach a\n * `boolean` input as truthy and an unticked toggle would render as ticked.\n */\nexport const toAttrBool = (\n value: boolean | string | undefined\n): boolean | undefined => {\n if (value === undefined) return undefined;\n if (typeof value === 'boolean') return value;\n return value.trim().toLowerCase() !== 'false';\n};\n\n/**\n * A numeric string becomes a number so the inputs reading these get the type\n * they expect. Anything else passes through as written — `maxWidth: 50%` and a\n * date format are legitimately non-numeric, and an empty attribute is an unset\n * rather than a zero.\n */\nexport const toAttrNumber = (\n value: number | string | undefined\n): number | string | undefined => {\n if (value === undefined || typeof value === 'number') return value;\n const trimmed = value.trim();\n if (trimmed === '') return undefined;\n const numeric = Number(trimmed);\n return Number.isNaN(numeric) ? value : numeric;\n};\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as BaseInputComponent } from "./magmonium-one-base-input-
|
|
1
|
+
import { t as BaseInputComponent } from "./magmonium-one-base-input-BP-CVJlM.mjs";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import { Directive, afterRenderEffect, model, viewChild } from "@angular/core";
|
|
4
4
|
var BaseCheckboxInputComponent = class BaseCheckboxInputComponent extends BaseInputComponent {
|
|
@@ -74,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
74
74
|
});
|
|
75
75
|
export { BaseCheckboxInputComponent as t };
|
|
76
76
|
|
|
77
|
-
//# sourceMappingURL=magmonium-one-base-checkbox-
|
|
77
|
+
//# sourceMappingURL=magmonium-one-base-checkbox-Bwl2LUSC.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magmonium-one-base-checkbox-
|
|
1
|
+
{"version":3,"file":"magmonium-one-base-checkbox-Bwl2LUSC.mjs","names":[],"sources":["../../../../libs/one/src/lib/shared/ui/input/ui/checkbox/base-checkbox.ts"],"sourcesContent":["import {\n afterRenderEffect,\n Directive,\n ElementRef,\n model,\n ModelSignal,\n viewChild,\n} from '@angular/core';\nimport { FormCheckboxControl } from '@angular/forms/signals';\nimport { BaseInputComponent } from '../../lib/base-input';\nimport { Input } from '../../model/input';\n\n@Directive()\nexport class BaseCheckboxInputComponent\n extends BaseInputComponent<Input>\n implements FormCheckboxControl\n{\n public value = undefined;\n /** Required by FormCheckboxControl interface */\n public readonly checked: ModelSignal<boolean> = model<boolean>(\n false\n ) as ModelSignal<boolean>;\n\n private inputElement =\n viewChild<ElementRef<HTMLInputElement>>('inputElement');\n\n constructor() {\n super();\n afterRenderEffect(() => {\n if (this.focused() && this.inputElement()) {\n this.inputElement()?.nativeElement.focus();\n }\n });\n }\n\n protected readonly setValue = (value: boolean) => {\n this.checked.set(value);\n this.touched.set(true);\n };\n}\n"],"mappings":";;;AAaA,IAAa,6BAAb,MAAa,mCACH,mBAAyB;CAG1B,QAAQ;CAEC,UAAgC,MAC9C,KAAK;CAGC,eACN,UAAwC,gBAAe,GAAA,YAAA,CAAA,EAAA,WAAA,eAAA,CAAA,+BAAA,CAAA,CAAA;CAEzD,cAAA;EACE,MAAK;EACL,wBAAuB;GACrB,IAAI,KAAK,QAAO,KAAM,KAAK,aAAY,GACrC,KAAK,aAAY,CAAE,EAAE,cAAc,MAAK;EAE5C,CAAC;CACH;CAEmB,YAAY,UAAkB;EAC/C,KAAK,QAAQ,IAAI,KAAK;EACtB,KAAK,QAAQ,IAAI,IAAI;CACvB;CAzBW,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAA0B,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAA1B,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAA0B,cAAA;EAAA,QAAA,EAAA,SAAA;GAAA,mBAAA;GAAA,YAAA;GAAA,UAAA;GAAA,YAAA;GAAA,mBAAA;EAAA,EAAA;EAAA,SAAA,EAAA,SAAA,gBAAA;EAAA,aAAA,CAAA;GAAA,cAAA;GAAA,OAAA;GAAA,WAAA,CAAA,cAAA;GAAA,aAAA;GAAA,UAAA;EAAA,CAAA;EAAA,iBAAA;EAAA,UAAA;CAAA,CAAA;;AAA1B,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAA0B,YAAA,CAAA,EADtC,MAAA,UAY2C,CAAA;CAAA,sBAAA,CAAA;CAAA,gBAAA;EAAA,SAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,GAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA,eAAA;EAAA,CAAA;EAAA,cAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA,gBAAc,EAAA,UAAA,KAAA,CAAA;EAAA,CAAA;CAAA;AAAA,CAAA"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { d as TranslateService, t as BaseInputComponent, u as TranslatePipe } from "./magmonium-one-base-input-
|
|
2
|
-
import { t as SelectorDirective } from "./magmonium-one-selector-
|
|
3
|
-
import { t as LabelComponent } from "./magmonium-one-label-
|
|
4
|
-
import { t as ButtonComponent } from "./magmonium-one-button-
|
|
5
|
-
import { t as assetOptions } from "./magmonium-one-options-asset-
|
|
6
|
-
import "./magmonium-one-directives-
|
|
7
|
-
import { t as TextOutputComponent } from "./magmonium-one-text-output-
|
|
8
|
-
import { t as TextInputComponent } from "./magmonium-one-text-
|
|
1
|
+
import { d as TranslateService, t as BaseInputComponent, u as TranslatePipe } from "./magmonium-one-base-input-BP-CVJlM.mjs";
|
|
2
|
+
import { t as SelectorDirective } from "./magmonium-one-selector-x0wB0KrY.mjs";
|
|
3
|
+
import { t as LabelComponent } from "./magmonium-one-label-mLyqV5U_.mjs";
|
|
4
|
+
import { t as ButtonComponent } from "./magmonium-one-button-CJG1vPHS.mjs";
|
|
5
|
+
import { t as assetOptions } from "./magmonium-one-options-asset-iITooSr4.mjs";
|
|
6
|
+
import "./magmonium-one-directives-BxxQs2S4.mjs";
|
|
7
|
+
import { t as TextOutputComponent } from "./magmonium-one-text-output-DP06NTMe.mjs";
|
|
8
|
+
import { t as TextInputComponent } from "./magmonium-one-text-BTAJl4eW.mjs";
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import { ChangeDetectionStrategy, Component, Directive, ElementRef, computed, effect, inject, input, inputBinding, linkedSignal, model, output, outputBinding, signal, viewChild } from "@angular/core";
|
|
11
11
|
var DropdownBoxComponent = class DropdownBoxComponent {
|
|
@@ -257,7 +257,7 @@ const DROPDOWN_TEMPLATE = `
|
|
|
257
257
|
<m-button [disabled]="disabled()" [config]="chevron()" />
|
|
258
258
|
</div>
|
|
259
259
|
@if (showErrors()) {
|
|
260
|
-
@
|
|
260
|
+
@if (shownError(); as error) {
|
|
261
261
|
<m-text-output
|
|
262
262
|
variant="footer"
|
|
263
263
|
color="error"
|
|
@@ -601,4 +601,4 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
601
601
|
});
|
|
602
602
|
export { DROPDOWN_IMPORTS as n, DROPDOWN_TEMPLATE as r, BaseDropdownComponent as t };
|
|
603
603
|
|
|
604
|
-
//# sourceMappingURL=magmonium-one-base-dropdown-
|
|
604
|
+
//# sourceMappingURL=magmonium-one-base-dropdown-Cw6z6tBU.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"magmonium-one-base-dropdown-Cw6z6tBU.mjs","names":[],"sources":["../../../../libs/one/src/lib/shared/ui/input/ui/dropdown/dropdown-box.ts","../../../../libs/one/src/lib/shared/ui/input/ui/dropdown/base-dropdown.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { TranslatePipe } from '../../../../pipe/translate';\nimport { DropdownOption, DropdownValue } from '../../model/input';\n\n@Component({\n selector: 'm-dropdown-box',\n imports: [TranslatePipe],\n template: `\n <ul class=\"dropdown-box\" role=\"listbox\">\n @for (option of options(); track option.value; let i = $index) {\n @let selectedState = isSelected(option.value);\n <li\n class=\"dropdown-box__option\"\n [class.dropdown-box__option--selected]=\"selectedState\"\n [class.dropdown-box__option--disabled]=\"option.disabled\"\n [class.dropdown-box__option--active]=\"i === activeIndex()\"\n [style.--m-dropdown-option-depth]=\"option.depth\"\n role=\"option\"\n [attr.aria-selected]=\"selectedState\"\n [attr.data-value]=\"option.value\"\n (click)=\"selectOption(option)\"\n (keydown.enter)=\"selectOption(option)\"\n tabindex=\"0\"\n >\n <!-- A group header is a row, never a choice: no box to tick. -->\n @if (multiple() && !option.disabled) {\n <input\n type=\"checkbox\"\n class=\"dropdown-box__checkbox\"\n [checked]=\"selectedState\"\n tabindex=\"-1\"\n (click)=\"$event.preventDefault()\"\n />\n }\n @if (option.noTranslate) {\n {{ option.label }}\n } @else {\n {{ option.label | translate }}\n }\n </li>\n } @empty {\n <li class=\"dropdown-box__empty\">\n {{ 'no-results-found' | translate }}\n </li>\n }\n </ul>\n `,\n styleUrl: './dropdown-box.sass',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownBoxComponent {\n readonly options = input<DropdownOption<DropdownValue>[]>([]);\n /** The values ticked, as a list whichever Field drew the panel. */\n readonly selected = input<readonly DropdownValue[]>([]);\n readonly multiple = input<boolean>(false);\n readonly activeIndex = input<number>(-1);\n readonly action = output<DropdownOption<DropdownValue>>();\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n // Keep the keyboard-active option in view as ↑/↓ walk a scrolled list.\n constructor() {\n effect(() => {\n const index = this.activeIndex();\n if (index < 0) return;\n this.host.nativeElement\n .querySelectorAll('.dropdown-box__option')\n [index]?.scrollIntoView?.({ block: 'nearest' });\n });\n }\n\n protected readonly isSelected = (value: DropdownValue): boolean =>\n this.selected().includes(value);\n\n // Only emit a selection event for enabled options.\n protected readonly selectOption = (\n option: DropdownOption<DropdownValue>\n ): void => {\n if (option.disabled) return;\n this.action.emit(option);\n };\n}\n","import {\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n inputBinding,\n linkedSignal,\n model,\n outputBinding,\n Signal,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ValidationError, WithOptionalFieldTree } from '@angular/forms/signals';\nimport { LabelComponent } from '../label';\nimport { TextOutputComponent } from '../../../text-output';\nimport { BaseInputComponent } from '../../lib/base-input';\nimport { Button } from '../../../button/type/button';\nimport { ButtonComponent } from '../../../button/ui/button';\nimport { TranslateService } from '../../../../services';\nimport { SelectorConfig, SelectorDirective } from '../../../../directives';\nimport { Direction } from '../../../../directives/selector/selector-type';\nimport { DropdownBoxComponent } from './dropdown-box';\nimport {\n DropdownInput,\n DropdownOption,\n DropdownValue,\n TextInput,\n} from '../../model/input';\nimport { TextInputComponent } from '../text/text';\nimport { assetOptions } from '../../lib/options-asset';\n\n/** The trigger both option Fields draw: a searchable text input and a chevron. */\nexport const DROPDOWN_TEMPLATE = `\n @if (config(); as dropdown) {\n @if (dropdown.label) {\n <m-label\n [for]=\"dropdown.name ?? ''\"\n [placeholder]=\"dropdown.label\"\n [params]=\"dropdown.params\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n />\n }\n <div\n class=\"trigger-wrap\"\n #wrapper\n [mSelector]=\"selectorConfig()\"\n [disabled]=\"disabled() || readonly() || !!config()?.readonly\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n (focusin)=\"isFocused.set(true)\"\n (focusout)=\"isFocused.set(false)\"\n >\n <m-text-input\n [config]=\"triggerInputConfig()\"\n [value]=\"displayValue()\"\n [disabled]=\"disabled()\"\n [invalid]=\"invalid()\"\n [hideErrors]=\"true\"\n [(touched)]=\"touched\"\n [focused]=\"focused()\"\n (valueChange)=\"onInput($event)\"\n (click)=\"preventToggleWhenOpen($event)\"\n (keydown.space)=\"$event.stopPropagation()\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.arrowdown)=\"onArrow($event, 1)\"\n (keydown.arrowup)=\"onArrow($event, -1)\"\n (keydown.tab)=\"$event.stopPropagation()\"\n />\n <m-button [disabled]=\"disabled()\" [config]=\"chevron()\" />\n </div>\n @if (showErrors()) {\n @if (shownError(); as error) {\n <m-text-output\n variant=\"footer\"\n color=\"error\"\n [label]=\"error.message\"\n />\n }\n }\n }\n`;\n\nexport const DROPDOWN_IMPORTS = [\n LabelComponent,\n TextOutputComponent,\n TextInputComponent,\n ButtonComponent,\n SelectorDirective,\n];\n\n/**\n * Everything a Dropdown and a Multiselect share: the options, the search, the\n * keyboard walk and the panel. What differs is only what the Field holds — one\n * value or a list — so a subclass says which values are selected and what a\n * pick does to them.\n */\n@Directive()\nexport abstract class BaseDropdownComponent extends BaseInputComponent<DropdownInput> {\n public override config = input<Partial<DropdownInput> | undefined>();\n public override required = input<boolean>(false);\n public override disabled = input<boolean>(false);\n public override invalid = input<boolean>(false);\n public override touched = model<boolean>(false);\n public override focused = input<boolean>(false);\n public override errors = input<readonly WithOptionalFieldTree<ValidationError>[]>(\n []\n );\n\n readonly options = input<\n DropdownOption<DropdownValue>[] | Signal<DropdownOption<DropdownValue>[]>\n >();\n readonly dir = input<Direction>();\n readonly toggle = model(false);\n readonly searchTerm = signal('');\n readonly isFocused = signal(false);\n readonly chevron = computed(\n () =>\n <Button>{\n icon: this.toggle() ? 'chevron-up' : 'chevron-down',\n one: true,\n variant: 'ghost',\n // In-Field control, never the form's submit — without this the Button\n // reads as the submit control and greys out while the form is invalid.\n type: 'button',\n // Chevron tracks the trigger's border like the text input's own icon:\n // red while the Field shows errors, focus tint while focused, border at rest.\n color: this.showErrors()\n ? 'error'\n : this.isFocused()\n ? 'focus'\n : 'border',\n // The trigger input is the Field's tab stop; the chevron only repeats\n // what clicking that input already does, so Tab walks past it.\n tabindex: -1,\n }\n );\n\n /** The values the Field holds now, as a list whichever kind it is. */\n protected abstract readonly selectedValues: Signal<readonly DropdownValue[]>;\n /** Whether the panel ticks rows and stays open across picks. */\n protected abstract readonly multiple: boolean;\n /** What picking `option` does to the Field's value. */\n protected abstract selectOption(option: DropdownOption<DropdownValue>): void;\n\n protected readonly triggerInputConfig = computed(() => {\n const dropdown = this.config() as DropdownInput | undefined;\n return <Partial<TextInput>>{\n name: dropdown?.name,\n icon: dropdown?.icon,\n one: dropdown?.one,\n placeholder: this.placeholderText(),\n readonly: this.readonly() || !!dropdown?.readonly,\n };\n });\n\n protected readonly dropdownOptions = computed(\n (): DropdownOption<DropdownValue>[] => {\n const runtimeOptions = this.options();\n const source =\n runtimeOptions ?? (this.config() as DropdownInput | undefined)?.options;\n if (typeof source === 'function') return source();\n if (source?.length) return source;\n return this.assetOptions();\n }\n );\n\n private readonly translateService = inject(TranslateService);\n\n protected readonly assetOptions = assetOptions(\n () => (this.config() as DropdownInput | undefined)?.optionsAsset\n );\n\n /** An option's text: authored as it stands, a key translated. */\n private readonly optionLabel = (\n option?: DropdownOption<DropdownValue>\n ): string => {\n if (!option?.label) return '';\n return option.noTranslate\n ? option.label\n : this.translateService.translate(option.label);\n };\n\n protected readonly filteredOptions = computed(\n (): DropdownOption<DropdownValue>[] => {\n const search = this.searchTerm().toLowerCase();\n if (!search) return this.dropdownOptions();\n return this.dropdownOptions().filter((o) => {\n const label = this.optionLabel(o).toLowerCase();\n return (\n label.includes(search) ||\n String(o.value).toLowerCase().includes(search)\n );\n });\n }\n );\n\n /** The option ↑/↓ point at while the panel is open; -1 is none. Reset as the search narrows the list. */\n protected readonly activeIndex = linkedSignal<\n DropdownOption<DropdownValue>[],\n number\n >({\n source: this.filteredOptions,\n computation: (options) =>\n this.searchTerm() ? this.nextEnabled(options, -1, 1) : -1,\n });\n\n /** The enabled option `step` rows past `from`, wrapping; `from` itself when none. */\n private readonly nextEnabled = (\n options: DropdownOption<DropdownValue>[],\n from: number,\n step: 1 | -1\n ): number => {\n for (let i = 1; i <= options.length; i++) {\n const index =\n (((from + step * i) % options.length) + options.length) %\n options.length;\n if (!options[index].disabled) return index;\n }\n return from;\n };\n\n /** One pick reads as its option's label, several as a count. */\n private readonly selectionLabel = computed((): string => {\n const values = this.selectedValues();\n if (values.length === 0) return '';\n if (values.length === 1) {\n return this.optionLabel(\n this.dropdownOptions().find((o) => o.value === values[0])\n );\n }\n const translation = this.translateService.translate(\n `selected?count=${values.length}`\n );\n return translation.includes('selected')\n ? `${values.length} Selected`\n : translation;\n });\n\n protected readonly displayValue = computed((): string =>\n this.toggle() ? this.searchTerm() : this.selectionLabel()\n );\n\n protected readonly placeholderText = computed((): string => {\n if (this.toggle()) {\n const label = this.selectionLabel();\n if (label) return label;\n }\n const placeholder = (this.config() as DropdownInput | undefined)\n ?.placeholder;\n return placeholder ? this.translateService.translate(placeholder) : '';\n });\n\n private readonly wrapperRef =\n viewChild<ElementRef<HTMLDivElement>>('wrapper');\n\n protected readonly selectorConfig = computed<\n SelectorConfig<DropdownBoxComponent>\n >(() => ({\n component: DropdownBoxComponent,\n base: 'm-dropdown-input',\n matchTriggerWidth: true,\n toggle: true,\n dir: this.dir(),\n bindings: [\n inputBinding('options', this.filteredOptions),\n inputBinding('selected', this.selectedValues),\n inputBinding('multiple', () => this.multiple),\n inputBinding('activeIndex', this.activeIndex),\n outputBinding<DropdownOption<DropdownValue>>('action', (option) =>\n this.selectOption(option)\n ),\n ],\n }));\n\n /** Shuts the panel after a pick, the way a click on the trigger would. */\n protected readonly closePanel = (): void => {\n this.toggle.set(false);\n this.searchTerm.set('');\n setTimeout(() => this.wrapperRef()?.nativeElement.click(), 0);\n };\n\n protected readonly onOpened = (): void => {\n this.toggle.set(true);\n this.searchTerm.set('');\n const current = this.selectedValues()[0];\n this.activeIndex.set(\n this.filteredOptions().findIndex((o) => o.value === current)\n );\n };\n\n // Focus stays in the trigger input (it is the search box), so ↑/↓ move the\n // active option rather than DOM focus. Closed, ArrowDown bubbles on to\n // SelectorDirective, which opens the panel.\n protected readonly onArrow = (event: Event, step: 1 | -1): void => {\n if (!this.toggle()) return;\n event.preventDefault();\n this.activeIndex.update((index) =>\n this.nextEnabled(this.filteredOptions(), index, step)\n );\n };\n\n // Enter never reaches SelectorDirective (it would toggle the panel); open,\n // it picks the active option.\n protected readonly onEnter = (event: Event): void => {\n event.stopPropagation();\n if (!this.toggle()) return;\n event.preventDefault();\n const option = this.filteredOptions()[this.activeIndex()];\n if (option && !option.disabled) this.selectOption(option);\n };\n\n protected readonly onClosed = (): void => {\n this.toggle.set(false);\n this.searchTerm.set('');\n };\n\n protected readonly onInput = (value: string): void => {\n this.searchTerm.set(value);\n };\n\n protected readonly preventToggleWhenOpen = (event: Event): void => {\n if (this.toggle() || this.readonly() || this.config()?.readonly) {\n event.stopPropagation();\n }\n };\n}\n"],"mappings":"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"}
|
package/fesm2022/{magmonium-one-base-input-BeyBAbV4.mjs → magmonium-one-base-input-BP-CVJlM.mjs}
RENAMED
|
@@ -1106,6 +1106,7 @@ var BaseInputComponent = class BaseInputComponent {
|
|
|
1106
1106
|
}
|
|
1107
1107
|
}, ...ngDevMode ? [{ debugName: "applyConfigSize" }] : /* istanbul ignore next */ []);
|
|
1108
1108
|
showErrors = computed(() => (this.invalid() === true || this.invalid() + "" === "true") && (this.touched() === true || this.touched() + "" === "true" || isFilledValue(readValue(this))), ...ngDevMode ? [{ debugName: "showErrors" }] : /* istanbul ignore next */ []);
|
|
1109
|
+
shownError = computed(() => this.errors()[0], ...ngDevMode ? [{ debugName: "shownError" }] : /* istanbul ignore next */ []);
|
|
1109
1110
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
1110
1111
|
minVersion: "12.0.0",
|
|
1111
1112
|
version: "22.2.1",
|
|
@@ -1272,4 +1273,4 @@ const isFilledValue = (value) => {
|
|
|
1272
1273
|
};
|
|
1273
1274
|
export { OPTIONS_SOURCE as $, wcTierOf as A, AppRelationType as B, buildWcBaseUrl as C, setWcLocalPort as D, recordDefinedWcTier as E, isWebComponent as F, IS_DESIGN_MODE as G, FOLDER_PICK_LISTENER as H, APP_CONTEXT_REF as I, LOGIN_COMPONENT as J, IS_SIDE_PANEL as K, APP_LINK as L, isLocalhost as M, isTierPreview as N, setWcTier as O, isUrlLocalhost as P, ONE_ASSET_BASE_URL as Q, ASSET_BASE_URL as R, HttpService as S, definedWcTierOf as T, HOST_SESSION as U, COMPONENT_INPUT_REGISTRY as V, ICON_SOURCE as W, MODAL_STORE_REF as X, LOGIN_STORE as Y, NAV_STORE_REF as Z, AssetStore as _, resolveIconSize as a, WC_SEARCH_GROUPS as at, isJson as b, toCssLength as c, Assets as ct, TranslateService as d, SEARCH_QUERY as et, BrowserLocaleService as f, miniMarkToHtml as g, miniMarkInlineToHtml as h, isSize as i, WC_BUNDLE as it, getTierFromPreviewPath as j, wcLocalBaseOf as k, toLength as l, DEFAULT_SIZE as lt, escapeHtml as m, isFilledValue as n, TRANSLATION_SOURCE as nt, resolveSize as o, FORM_ASSET_FOLDER as ot, browserLocale as p, LOADING_ACTIONS_REF as q, coerceSize as r, USER_STORE_REF as rt, resolveSpacing as s, LAYOUT_ASSET_FOLDER as st, BaseInputComponent as t, SEARCH_RESULTS_EVENT as tt, TranslatePipe as u, Size as ut, SharedStoreRegistry as v, definedWcBundleOf as w, ACCESS_DOMAINS as x, StorageService as y, AppAvailability as z };
|
|
1274
1275
|
|
|
1275
|
-
//# sourceMappingURL=magmonium-one-base-input-
|
|
1276
|
+
//# sourceMappingURL=magmonium-one-base-input-BP-CVJlM.mjs.map
|