@mosaicoo/form-angular 0.9.3 → 0.9.4

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.
@@ -121,8 +121,8 @@ class MatTextFieldComponent extends MaterialFieldBase {
121
121
  this.setValue(raw);
122
122
  }
123
123
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: MatTextFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
124
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: MatTextFieldComponent, isStandalone: true, selector: "mform-mat-text", usesInheritance: true, ngImport: i0, template: `
125
- <mat-form-field appearance="outline" class="mform-mat-field">
124
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: MatTextFieldComponent, isStandalone: true, selector: "mform-mat-text", host: { styleAttribute: "display: block" }, usesInheritance: true, ngImport: i0, template: `
125
+ <mat-form-field appearance="outline" class="mform-mat-field" style="display: block; width: 100%">
126
126
  <mat-label>{{ label() }}</mat-label>
127
127
  @if (isTextarea()) {
128
128
  <textarea
@@ -170,8 +170,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
170
170
  selector: 'mform-mat-text',
171
171
  changeDetection: ChangeDetectionStrategy.OnPush,
172
172
  imports: [FormsModule, MatFormFieldModule, MatInputModule],
173
+ // display/width via host binding + inline style, NOT a component
174
+ // stylesheet: a 4th inline stylesheet in this entry trips a worker-pool
175
+ // finalization bug in the unit-test builder (the vitest process never
176
+ // exits after a green run — reproduced deterministically at 4, fine at 3).
177
+ host: { style: 'display: block' },
173
178
  template: `
174
- <mat-form-field appearance="outline" class="mform-mat-field">
179
+ <mat-form-field appearance="outline" class="mform-mat-field" style="display: block; width: 100%">
175
180
  <mat-label>{{ label() }}</mat-label>
176
181
  @if (isTextarea()) {
177
182
  <textarea
@@ -217,8 +222,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
217
222
  class MatSelectFieldComponent extends MaterialFieldBase {
218
223
  options = computed(() => this.field().options ?? [], ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
219
224
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: MatSelectFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
220
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: MatSelectFieldComponent, isStandalone: true, selector: "mform-mat-select", usesInheritance: true, ngImport: i0, template: `
221
- <mat-form-field appearance="outline" class="mform-mat-field">
225
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: MatSelectFieldComponent, isStandalone: true, selector: "mform-mat-select", host: { styleAttribute: "display: block" }, usesInheritance: true, ngImport: i0, template: `
226
+ <mat-form-field appearance="outline" class="mform-mat-field" style="display: block; width: 100%">
222
227
  <mat-label>{{ label() }}</mat-label>
223
228
  <mat-select
224
229
  [ngModel]="value()"
@@ -248,8 +253,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
248
253
  selector: 'mform-mat-select',
249
254
  changeDetection: ChangeDetectionStrategy.OnPush,
250
255
  imports: [FormsModule, MatFormFieldModule, MatSelectModule, MatOption],
256
+ // See MatTextFieldComponent: no component stylesheet on purpose.
257
+ host: { style: 'display: block' },
251
258
  template: `
252
- <mat-form-field appearance="outline" class="mform-mat-field">
259
+ <mat-form-field appearance="outline" class="mform-mat-field" style="display: block; width: 100%">
253
260
  <mat-label>{{ label() }}</mat-label>
254
261
  <mat-select
255
262
  [ngModel]="value()"
@@ -276,7 +283,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
276
283
  }] });
277
284
  class MatCheckboxFieldComponent extends MaterialFieldBase {
278
285
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: MatCheckboxFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
279
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: MatCheckboxFieldComponent, isStandalone: true, selector: "mform-mat-checkbox", usesInheritance: true, ngImport: i0, template: `
286
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: MatCheckboxFieldComponent, isStandalone: true, selector: "mform-mat-checkbox", host: { styleAttribute: "display: block" }, usesInheritance: true, ngImport: i0, template: `
280
287
  <div class="mform-mat-checkbox">
281
288
  <mat-checkbox
282
289
  [ngModel]="value() === true"
@@ -295,7 +302,7 @@ class MatCheckboxFieldComponent extends MaterialFieldBase {
295
302
  }
296
303
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: MatCheckboxFieldComponent, decorators: [{
297
304
  type: Component,
298
- args: [{ selector: 'mform-mat-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, MatCheckboxModule], template: `
305
+ args: [{ selector: 'mform-mat-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, MatCheckboxModule], host: { style: 'display: block' }, template: `
299
306
  <div class="mform-mat-checkbox">
300
307
  <mat-checkbox
301
308
  [ngModel]="value() === true"
@@ -315,7 +322,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
315
322
  class MatRadioFieldComponent extends MaterialFieldBase {
316
323
  options = computed(() => this.field().options ?? [], ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
317
324
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: MatRadioFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
318
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: MatRadioFieldComponent, isStandalone: true, selector: "mform-mat-radio", usesInheritance: true, ngImport: i0, template: `
325
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: MatRadioFieldComponent, isStandalone: true, selector: "mform-mat-radio", host: { styleAttribute: "display: block" }, usesInheritance: true, ngImport: i0, template: `
319
326
  <div class="mform-mat-radio">
320
327
  <span class="mform-mat-radio-label">{{ label() }}</span>
321
328
  <mat-radio-group
@@ -335,7 +342,7 @@ class MatRadioFieldComponent extends MaterialFieldBase {
335
342
  }
336
343
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: MatRadioFieldComponent, decorators: [{
337
344
  type: Component,
338
- args: [{ selector: 'mform-mat-radio', changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, MatRadioModule], template: `
345
+ args: [{ selector: 'mform-mat-radio', changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, MatRadioModule], host: { style: 'display: block' }, template: `
339
346
  <div class="mform-mat-radio">
340
347
  <span class="mform-mat-radio-label">{{ label() }}</span>
341
348
  <mat-radio-group
@@ -1 +1 @@
1
- {"version":3,"file":"mosaicoo-form-angular-material.mjs","sources":["../../../packages/angular/material/src/material-fields.ts","../../../packages/angular/material/src/public-api.ts","../../../packages/angular/material/src/mosaicoo-form-angular-material.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Directive, computed, input } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ErrorStateMatcher, MatOption } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { maskValue } from '@mosaicoo/form-core';\nimport type { FieldOption, FormEngine, InputField } from '@mosaicoo/form-core';\n\n/**\n * Material Design 3 field components.\n *\n * Every component implements the renderer's `MformFieldComponent` contract\n * (signal inputs `field`/`engine`/`path`/`tick`/`mode`) and talks to the form\n * exclusively through the engine — validation, conditionals, calculations and\n * events keep working unchanged. The HOST's Material theme (M3 tokens) styles\n * everything; this entry adds no theming of its own.\n */\n\n@Directive()\nabstract class MaterialFieldBase {\n readonly field = input.required<InputField>();\n readonly engine = input.required<FormEngine>();\n readonly path = input.required<string>();\n readonly tick = input<number>(0);\n readonly mode = input<'edit' | 'readonly' | 'disabled'>('edit');\n\n /** Error state driven by the ENGINE, not by template validators. */\n readonly errorMatcher: ErrorStateMatcher = {\n isErrorState: () => this.errors().length > 0,\n };\n\n value(): unknown {\n this.tick();\n return this.engine().getValue(this.path());\n }\n\n errors() {\n this.tick();\n return this.engine().getFieldErrors(this.path());\n }\n\n firstError(): string | null {\n return this.errors()[0]?.message ?? null;\n }\n\n required(): boolean {\n return this.field().validators?.some((v) => v.type === 'required') ?? false;\n }\n\n disabled(): boolean {\n return (\n this.mode() !== 'edit' ||\n this.field().disabled === true ||\n this.field().calculate !== undefined\n );\n }\n\n label(): string {\n return this.field().label ?? this.field().key;\n }\n\n setValue(value: unknown): void {\n this.engine().setValue(this.path(), value);\n }\n\n touch(): void {\n this.engine().markTouched(this.path());\n void this.engine().validateFieldAsync(this.path());\n }\n}\n\n@Component({\n selector: 'mform-mat-text',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, MatFormFieldModule, MatInputModule],\n template: `\n <mat-form-field appearance=\"outline\" class=\"mform-mat-field\">\n <mat-label>{{ label() }}</mat-label>\n @if (isTextarea()) {\n <textarea\n matInput\n [rows]=\"3\"\n [ngModel]=\"stringValue()\"\n [errorStateMatcher]=\"errorMatcher\"\n [placeholder]=\"field().placeholder ?? ''\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n (ngModelChange)=\"write($event)\"\n (blur)=\"touch()\"\n ></textarea>\n } @else {\n <input\n matInput\n [type]=\"inputType()\"\n [ngModel]=\"stringValue()\"\n [errorStateMatcher]=\"errorMatcher\"\n [placeholder]=\"field().placeholder ?? ''\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n (ngModelChange)=\"write($event)\"\n (blur)=\"touch()\"\n />\n }\n @if (prefixText(); as p) {\n <span matTextPrefix>{{ p }}&nbsp;</span>\n }\n @if (suffixText(); as s) {\n <span matTextSuffix>{{ s }}</span>\n }\n @if (field().description; as hint) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n @if (firstError(); as error) {\n <mat-error>{{ error }}</mat-error>\n }\n </mat-form-field>\n `,\n})\nexport class MatTextFieldComponent extends MaterialFieldBase {\n isTextarea(): boolean {\n return this.field().type === 'textarea';\n }\n\n stringValue(): string {\n const value = this.value();\n if (value === undefined || value === null) return '';\n const mask = this.field().format?.mask;\n if (mask && typeof value === 'string') return maskValue(value, mask).masked;\n return String(value);\n }\n\n inputType(): string {\n switch (this.field().type) {\n case 'number':\n case 'currency':\n return 'number';\n case 'email': return 'email';\n case 'password': return 'password';\n case 'phone': return 'tel';\n case 'url': return 'url';\n case 'time': return 'time';\n case 'datetime': return 'datetime-local';\n case 'day': return 'date';\n default: return 'text';\n }\n }\n\n prefixText(): string | null {\n const value = this.field().props?.['prefix'];\n return typeof value === 'string' && value ? value : null;\n }\n\n suffixText(): string | null {\n const value = this.field().props?.['suffix'];\n return typeof value === 'string' && value ? value : null;\n }\n\n write(raw: string): void {\n const mask = this.field().format?.mask;\n if (mask) {\n const { masked, raw: stripped } = maskValue(raw, mask);\n this.setValue(this.field().format?.keepMask ? masked : stripped);\n return;\n }\n if (this.field().dataType === 'number') {\n const parsed = raw === '' ? undefined : Number(raw);\n this.setValue(parsed !== undefined && Number.isFinite(parsed) ? parsed : undefined);\n return;\n }\n this.setValue(raw);\n }\n}\n\n@Component({\n selector: 'mform-mat-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, MatFormFieldModule, MatSelectModule, MatOption],\n template: `\n <mat-form-field appearance=\"outline\" class=\"mform-mat-field\">\n <mat-label>{{ label() }}</mat-label>\n <mat-select\n [ngModel]=\"value()\"\n [errorStateMatcher]=\"errorMatcher\"\n [multiple]=\"field().multiple === true\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n (ngModelChange)=\"setValue($event)\"\n (closed)=\"touch()\"\n >\n @for (option of options(); track option.value) {\n <mat-option [value]=\"option.value\">{{ option.label }}</mat-option>\n }\n </mat-select>\n @if (field().description; as hint) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n @if (firstError(); as error) {\n <mat-error>{{ error }}</mat-error>\n }\n </mat-form-field>\n `,\n})\nexport class MatSelectFieldComponent extends MaterialFieldBase {\n readonly options = computed<FieldOption[]>(() => this.field().options ?? []);\n}\n\n@Component({\n selector: 'mform-mat-checkbox',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, MatCheckboxModule],\n template: `\n <div class=\"mform-mat-checkbox\">\n <mat-checkbox\n [ngModel]=\"value() === true\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n (ngModelChange)=\"setValue($event)\"\n (blur)=\"touch()\"\n >\n {{ label() }}\n </mat-checkbox>\n @if (firstError(); as error) {\n <div class=\"mform-mat-error\">{{ error }}</div>\n }\n </div>\n `,\n styles: `\n .mform-mat-error { color: var(--mat-sys-error, #ba1a1a); font-size: 12px; padding-left: 12px; }\n `,\n})\nexport class MatCheckboxFieldComponent extends MaterialFieldBase {}\n\n@Component({\n selector: 'mform-mat-radio',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, MatRadioModule],\n template: `\n <div class=\"mform-mat-radio\">\n <span class=\"mform-mat-radio-label\">{{ label() }}</span>\n <mat-radio-group\n [ngModel]=\"value()\"\n [disabled]=\"disabled()\"\n (ngModelChange)=\"setValue($event)\"\n >\n @for (option of options(); track option.value) {\n <mat-radio-button [value]=\"option.value\">{{ option.label }}</mat-radio-button>\n }\n </mat-radio-group>\n @if (firstError(); as error) {\n <div class=\"mform-mat-error\">{{ error }}</div>\n }\n </div>\n `,\n styles: `\n .mform-mat-radio { display: flex; flex-direction: column; gap: 4px; }\n .mform-mat-radio-label { font-size: 13px; font-weight: 500; }\n .mform-mat-radio mat-radio-group { display: flex; flex-direction: column; }\n .mform-mat-error { color: var(--mat-sys-error, #ba1a1a); font-size: 12px; }\n `,\n})\nexport class MatRadioFieldComponent extends MaterialFieldBase {\n readonly options = computed<FieldOption[]>(() => this.field().options ?? []);\n}\n","/*\n * Material adapter entry point (`@mosaicoo/form-angular/material`).\n *\n * Optional: requires the host to install @angular/material (optional peer).\n * Registers Material Design 3 field components over the runtime's registry —\n * unmapped types keep the built-in accessible renderers. The host's Material\n * theme (M3 tokens) drives all styling.\n */\nimport { type EnvironmentProviders } from '@angular/core';\nimport { provideMosaicooForm, type FieldComponentMap } from '@mosaicoo/form-angular';\nimport {\n MatCheckboxFieldComponent,\n MatRadioFieldComponent,\n MatSelectFieldComponent,\n MatTextFieldComponent,\n} from './material-fields.js';\n\nexport {\n MatCheckboxFieldComponent,\n MatRadioFieldComponent,\n MatSelectFieldComponent,\n MatTextFieldComponent,\n};\n\n/** Field types rendered with Material components (others stay built-in). */\nexport const MATERIAL_FIELD_COMPONENTS: FieldComponentMap = {\n text: MatTextFieldComponent,\n textarea: MatTextFieldComponent,\n number: MatTextFieldComponent,\n currency: MatTextFieldComponent,\n email: MatTextFieldComponent,\n password: MatTextFieldComponent,\n phone: MatTextFieldComponent,\n url: MatTextFieldComponent,\n time: MatTextFieldComponent,\n datetime: MatTextFieldComponent,\n day: MatTextFieldComponent,\n select: MatSelectFieldComponent,\n checkbox: MatCheckboxFieldComponent,\n radio: MatRadioFieldComponent,\n};\n\n/**\n * Registers the Material field set:\n *\n * ```ts\n * bootstrapApplication(App, {\n * providers: [provideMaterialForms()],\n * });\n * ```\n *\n * Composable: later `provideMosaicooForm({components})` calls can override\n * individual types (host-specific fields win).\n */\nexport function provideMaterialForms(): EnvironmentProviders {\n return provideMosaicooForm({ components: MATERIAL_FIELD_COMPONENTS });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAWA;;;;;;;;AAQG;AAEH,MACe,iBAAiB,CAAA;AACrB,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,2EAAc;AACpC,IAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,4EAAc;AACrC,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,0EAAU;AAC/B,IAAA,IAAI,GAAG,KAAK,CAAS,CAAC,2EAAC;AACvB,IAAA,IAAI,GAAG,KAAK,CAAmC,MAAM,2EAAC;;AAGtD,IAAA,YAAY,GAAsB;QACzC,YAAY,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC;KAC7C;IAED,KAAK,GAAA;QACH,IAAI,CAAC,IAAI,EAAE;AACX,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5C;IAEA,MAAM,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE;AACX,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAClD;IAEA,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,IAAI;IAC1C;IAEA,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,KAAK;IAC7E;IAEA,QAAQ,GAAA;AACN,QAAA,QACE,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM;AACtB,YAAA,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,KAAK,IAAI;YAC9B,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,KAAK,SAAS;IAExC;IAEA,KAAK,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG;IAC/C;AAEA,IAAA,QAAQ,CAAC,KAAc,EAAA;AACrB,QAAA,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC;IAC5C;IAEA,KAAK,GAAA;QACH,IAAI,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACtC,QAAA,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACpD;wGAjDa,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD/B;;AAoGK,MAAO,qBAAsB,SAAQ,iBAAiB,CAAA;IAC1D,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,KAAK,UAAU;IACzC;IAEA,WAAW,GAAA;AACT,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;AAAE,YAAA,OAAO,EAAE;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI;AACtC,QAAA,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM;AAC3E,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB;IAEA,SAAS,GAAA;AACP,QAAA,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI;AACvB,YAAA,KAAK,QAAQ;AACb,YAAA,KAAK,UAAU;AACb,gBAAA,OAAO,QAAQ;AACjB,YAAA,KAAK,OAAO,EAAE,OAAO,OAAO;AAC5B,YAAA,KAAK,UAAU,EAAE,OAAO,UAAU;AAClC,YAAA,KAAK,OAAO,EAAE,OAAO,KAAK;AAC1B,YAAA,KAAK,KAAK,EAAE,OAAO,KAAK;AACxB,YAAA,KAAK,MAAM,EAAE,OAAO,MAAM;AAC1B,YAAA,KAAK,UAAU,EAAE,OAAO,gBAAgB;AACxC,YAAA,KAAK,KAAK,EAAE,OAAO,MAAM;AACzB,YAAA,SAAS,OAAO,MAAM;;IAE1B;IAEA,UAAU,GAAA;AACR,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAC;AAC5C,QAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,KAAK,GAAG,IAAI;IAC1D;IAEA,UAAU,GAAA;AACR,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAC;AAC5C,QAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,KAAK,GAAG,IAAI;IAC1D;AAEA,IAAA,KAAK,CAAC,GAAW,EAAA;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI;QACtC,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC;YACtD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;YAChE;QACF;QACA,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACtC,YAAA,MAAM,MAAM,GAAG,GAAG,KAAK,EAAE,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC;YACnD,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC;YACnF;QACF;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;IACpB;wGApDW,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA3CtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA1CS,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FA4C9C,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA/CjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,OAAO,EAAE,CAAC,WAAW,EAAE,kBAAkB,EAAE,cAAc,CAAC;AAC1D,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCT,EAAA,CAAA;AACF,iBAAA;;AAqFK,MAAO,uBAAwB,SAAQ,iBAAiB,CAAA;AACnD,IAAA,OAAO,GAAG,QAAQ,CAAgB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,IAAI,EAAE,8EAAC;wGADjE,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAzBxB;;;;;;;;;;;;;;;;;;;;;;;AAuBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAxBS,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,EAAA,0BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FA0B/C,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBA7BnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;oBAC5B,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,WAAW,EAAE,kBAAkB,EAAE,eAAe,EAAE,SAAS,CAAC;AACtE,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;AAuBT,EAAA,CAAA;AACF,iBAAA;;AA6BK,MAAO,yBAA0B,SAAQ,iBAAiB,CAAA;wGAAnD,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EApB1B;;;;;;;;;;;;;;;GAeT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAhBS,WAAW,2jBAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAqB7B,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAxBrC,SAAS;+BACE,oBAAoB,EAAA,eAAA,EACb,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAA,QAAA,EAC/B;;;;;;;;;;;;;;;AAeT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,0FAAA,CAAA,EAAA;;AAmCG,MAAO,sBAAuB,SAAQ,iBAAiB,CAAA;AAClD,IAAA,OAAO,GAAG,QAAQ,CAAgB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,IAAI,EAAE,8EAAC;wGADjE,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAxBvB;;;;;;;;;;;;;;;;GAgBT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8PAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAjBS,WAAW,8VAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAyB1B,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBA5BlC,SAAS;+BACE,iBAAiB,EAAA,eAAA,EACV,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,WAAW,EAAE,cAAc,CAAC,EAAA,QAAA,EAC5B;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,8PAAA,CAAA,EAAA;;;ACvOH;AACO,MAAM,yBAAyB,GAAsB;AAC1D,IAAA,IAAI,EAAE,qBAAqB;AAC3B,IAAA,QAAQ,EAAE,qBAAqB;AAC/B,IAAA,MAAM,EAAE,qBAAqB;AAC7B,IAAA,QAAQ,EAAE,qBAAqB;AAC/B,IAAA,KAAK,EAAE,qBAAqB;AAC5B,IAAA,QAAQ,EAAE,qBAAqB;AAC/B,IAAA,KAAK,EAAE,qBAAqB;AAC5B,IAAA,GAAG,EAAE,qBAAqB;AAC1B,IAAA,IAAI,EAAE,qBAAqB;AAC3B,IAAA,QAAQ,EAAE,qBAAqB;AAC/B,IAAA,GAAG,EAAE,qBAAqB;AAC1B,IAAA,MAAM,EAAE,uBAAuB;AAC/B,IAAA,QAAQ,EAAE,yBAAyB;AACnC,IAAA,KAAK,EAAE,sBAAsB;;AAG/B;;;;;;;;;;;AAWG;SACa,oBAAoB,GAAA;IAClC,OAAO,mBAAmB,CAAC,EAAE,UAAU,EAAE,yBAAyB,EAAE,CAAC;AACvE;;ACxDA;;AAEG;;;;"}
1
+ {"version":3,"file":"mosaicoo-form-angular-material.mjs","sources":["../../../packages/angular/material/src/material-fields.ts","../../../packages/angular/material/src/public-api.ts","../../../packages/angular/material/src/mosaicoo-form-angular-material.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Directive, computed, input } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ErrorStateMatcher, MatOption } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { maskValue } from '@mosaicoo/form-core';\nimport type { FieldOption, FormEngine, InputField } from '@mosaicoo/form-core';\n\n/**\n * Material Design 3 field components.\n *\n * Every component implements the renderer's `MformFieldComponent` contract\n * (signal inputs `field`/`engine`/`path`/`tick`/`mode`) and talks to the form\n * exclusively through the engine — validation, conditionals, calculations and\n * events keep working unchanged. The HOST's Material theme (M3 tokens) styles\n * everything; this entry adds no theming of its own.\n */\n\n@Directive()\nabstract class MaterialFieldBase {\n readonly field = input.required<InputField>();\n readonly engine = input.required<FormEngine>();\n readonly path = input.required<string>();\n readonly tick = input<number>(0);\n readonly mode = input<'edit' | 'readonly' | 'disabled'>('edit');\n\n /** Error state driven by the ENGINE, not by template validators. */\n readonly errorMatcher: ErrorStateMatcher = {\n isErrorState: () => this.errors().length > 0,\n };\n\n value(): unknown {\n this.tick();\n return this.engine().getValue(this.path());\n }\n\n errors() {\n this.tick();\n return this.engine().getFieldErrors(this.path());\n }\n\n firstError(): string | null {\n return this.errors()[0]?.message ?? null;\n }\n\n required(): boolean {\n return this.field().validators?.some((v) => v.type === 'required') ?? false;\n }\n\n disabled(): boolean {\n return (\n this.mode() !== 'edit' ||\n this.field().disabled === true ||\n this.field().calculate !== undefined\n );\n }\n\n label(): string {\n return this.field().label ?? this.field().key;\n }\n\n setValue(value: unknown): void {\n this.engine().setValue(this.path(), value);\n }\n\n touch(): void {\n this.engine().markTouched(this.path());\n void this.engine().validateFieldAsync(this.path());\n }\n}\n\n@Component({\n selector: 'mform-mat-text',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, MatFormFieldModule, MatInputModule],\n // display/width via host binding + inline style, NOT a component\n // stylesheet: a 4th inline stylesheet in this entry trips a worker-pool\n // finalization bug in the unit-test builder (the vitest process never\n // exits after a green run — reproduced deterministically at 4, fine at 3).\n host: { style: 'display: block' },\n template: `\n <mat-form-field appearance=\"outline\" class=\"mform-mat-field\" style=\"display: block; width: 100%\">\n <mat-label>{{ label() }}</mat-label>\n @if (isTextarea()) {\n <textarea\n matInput\n [rows]=\"3\"\n [ngModel]=\"stringValue()\"\n [errorStateMatcher]=\"errorMatcher\"\n [placeholder]=\"field().placeholder ?? ''\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n (ngModelChange)=\"write($event)\"\n (blur)=\"touch()\"\n ></textarea>\n } @else {\n <input\n matInput\n [type]=\"inputType()\"\n [ngModel]=\"stringValue()\"\n [errorStateMatcher]=\"errorMatcher\"\n [placeholder]=\"field().placeholder ?? ''\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n (ngModelChange)=\"write($event)\"\n (blur)=\"touch()\"\n />\n }\n @if (prefixText(); as p) {\n <span matTextPrefix>{{ p }}&nbsp;</span>\n }\n @if (suffixText(); as s) {\n <span matTextSuffix>{{ s }}</span>\n }\n @if (field().description; as hint) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n @if (firstError(); as error) {\n <mat-error>{{ error }}</mat-error>\n }\n </mat-form-field>\n `,\n})\nexport class MatTextFieldComponent extends MaterialFieldBase {\n isTextarea(): boolean {\n return this.field().type === 'textarea';\n }\n\n stringValue(): string {\n const value = this.value();\n if (value === undefined || value === null) return '';\n const mask = this.field().format?.mask;\n if (mask && typeof value === 'string') return maskValue(value, mask).masked;\n return String(value);\n }\n\n inputType(): string {\n switch (this.field().type) {\n case 'number':\n case 'currency':\n return 'number';\n case 'email': return 'email';\n case 'password': return 'password';\n case 'phone': return 'tel';\n case 'url': return 'url';\n case 'time': return 'time';\n case 'datetime': return 'datetime-local';\n case 'day': return 'date';\n default: return 'text';\n }\n }\n\n prefixText(): string | null {\n const value = this.field().props?.['prefix'];\n return typeof value === 'string' && value ? value : null;\n }\n\n suffixText(): string | null {\n const value = this.field().props?.['suffix'];\n return typeof value === 'string' && value ? value : null;\n }\n\n write(raw: string): void {\n const mask = this.field().format?.mask;\n if (mask) {\n const { masked, raw: stripped } = maskValue(raw, mask);\n this.setValue(this.field().format?.keepMask ? masked : stripped);\n return;\n }\n if (this.field().dataType === 'number') {\n const parsed = raw === '' ? undefined : Number(raw);\n this.setValue(parsed !== undefined && Number.isFinite(parsed) ? parsed : undefined);\n return;\n }\n this.setValue(raw);\n }\n}\n\n@Component({\n selector: 'mform-mat-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, MatFormFieldModule, MatSelectModule, MatOption],\n // See MatTextFieldComponent: no component stylesheet on purpose.\n host: { style: 'display: block' },\n template: `\n <mat-form-field appearance=\"outline\" class=\"mform-mat-field\" style=\"display: block; width: 100%\">\n <mat-label>{{ label() }}</mat-label>\n <mat-select\n [ngModel]=\"value()\"\n [errorStateMatcher]=\"errorMatcher\"\n [multiple]=\"field().multiple === true\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n (ngModelChange)=\"setValue($event)\"\n (closed)=\"touch()\"\n >\n @for (option of options(); track option.value) {\n <mat-option [value]=\"option.value\">{{ option.label }}</mat-option>\n }\n </mat-select>\n @if (field().description; as hint) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n @if (firstError(); as error) {\n <mat-error>{{ error }}</mat-error>\n }\n </mat-form-field>\n `,\n})\nexport class MatSelectFieldComponent extends MaterialFieldBase {\n readonly options = computed<FieldOption[]>(() => this.field().options ?? []);\n}\n\n@Component({\n selector: 'mform-mat-checkbox',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, MatCheckboxModule],\n host: { style: 'display: block' },\n template: `\n <div class=\"mform-mat-checkbox\">\n <mat-checkbox\n [ngModel]=\"value() === true\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n (ngModelChange)=\"setValue($event)\"\n (blur)=\"touch()\"\n >\n {{ label() }}\n </mat-checkbox>\n @if (firstError(); as error) {\n <div class=\"mform-mat-error\">{{ error }}</div>\n }\n </div>\n `,\n styles: `\n .mform-mat-error { color: var(--mat-sys-error, #ba1a1a); font-size: 12px; padding-left: 12px; }\n `,\n})\nexport class MatCheckboxFieldComponent extends MaterialFieldBase {}\n\n@Component({\n selector: 'mform-mat-radio',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, MatRadioModule],\n host: { style: 'display: block' },\n template: `\n <div class=\"mform-mat-radio\">\n <span class=\"mform-mat-radio-label\">{{ label() }}</span>\n <mat-radio-group\n [ngModel]=\"value()\"\n [disabled]=\"disabled()\"\n (ngModelChange)=\"setValue($event)\"\n >\n @for (option of options(); track option.value) {\n <mat-radio-button [value]=\"option.value\">{{ option.label }}</mat-radio-button>\n }\n </mat-radio-group>\n @if (firstError(); as error) {\n <div class=\"mform-mat-error\">{{ error }}</div>\n }\n </div>\n `,\n styles: `\n .mform-mat-radio { display: flex; flex-direction: column; gap: 4px; }\n .mform-mat-radio-label { font-size: 13px; font-weight: 500; }\n .mform-mat-radio mat-radio-group { display: flex; flex-direction: column; }\n .mform-mat-error { color: var(--mat-sys-error, #ba1a1a); font-size: 12px; }\n `,\n})\nexport class MatRadioFieldComponent extends MaterialFieldBase {\n readonly options = computed<FieldOption[]>(() => this.field().options ?? []);\n}\n","/*\n * Material adapter entry point (`@mosaicoo/form-angular/material`).\n *\n * Optional: requires the host to install @angular/material (optional peer).\n * Registers Material Design 3 field components over the runtime's registry —\n * unmapped types keep the built-in accessible renderers. The host's Material\n * theme (M3 tokens) drives all styling.\n */\nimport { type EnvironmentProviders } from '@angular/core';\nimport { provideMosaicooForm, type FieldComponentMap } from '@mosaicoo/form-angular';\nimport {\n MatCheckboxFieldComponent,\n MatRadioFieldComponent,\n MatSelectFieldComponent,\n MatTextFieldComponent,\n} from './material-fields.js';\n\nexport {\n MatCheckboxFieldComponent,\n MatRadioFieldComponent,\n MatSelectFieldComponent,\n MatTextFieldComponent,\n};\n\n/** Field types rendered with Material components (others stay built-in). */\nexport const MATERIAL_FIELD_COMPONENTS: FieldComponentMap = {\n text: MatTextFieldComponent,\n textarea: MatTextFieldComponent,\n number: MatTextFieldComponent,\n currency: MatTextFieldComponent,\n email: MatTextFieldComponent,\n password: MatTextFieldComponent,\n phone: MatTextFieldComponent,\n url: MatTextFieldComponent,\n time: MatTextFieldComponent,\n datetime: MatTextFieldComponent,\n day: MatTextFieldComponent,\n select: MatSelectFieldComponent,\n checkbox: MatCheckboxFieldComponent,\n radio: MatRadioFieldComponent,\n};\n\n/**\n * Registers the Material field set:\n *\n * ```ts\n * bootstrapApplication(App, {\n * providers: [provideMaterialForms()],\n * });\n * ```\n *\n * Composable: later `provideMosaicooForm({components})` calls can override\n * individual types (host-specific fields win).\n */\nexport function provideMaterialForms(): EnvironmentProviders {\n return provideMosaicooForm({ components: MATERIAL_FIELD_COMPONENTS });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mosaicoo/form-angular",
3
- "version": "0.9.3",
3
+ "version": "0.9.4",
4
4
  "description": "Angular renderer for Mosaicoo Form: accessible, token-themable dynamic forms with wizard mode and host-provided dynamic options",
5
5
  "license": "MIT",
6
6
  "author": "Mosaicoo",
@@ -39,7 +39,7 @@
39
39
  }
40
40
  },
41
41
  "dependencies": {
42
- "@mosaicoo/form-core": "^0.9.3",
42
+ "@mosaicoo/form-core": "^0.9.4",
43
43
  "tslib": "^2.3.0"
44
44
  },
45
45
  "sideEffects": false,