@praxisui/metadata-editor 0.0.1

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"praxisui-metadata-editor.mjs","sources":["../../../projects/praxis-metadata-editor/src/lib/registry/config-registry.service.ts","../../../projects/praxis-metadata-editor/src/lib/registry/context-validator-registry.service.ts","../../../projects/praxis-metadata-editor/src/lib/services/schema-normalizer.service.ts","../../../projects/praxis-metadata-editor/src/lib/services/dynamic-form-factory.service.ts","../../../projects/praxis-metadata-editor/src/lib/services/editor-component-registry.service.ts","../../../projects/praxis-metadata-editor/src/lib/components/regex-help-dialog/regex-help-dialog.component.ts","../../../projects/praxis-metadata-editor/src/lib/components/dynamic-editor-renderer/dynamic-editor-renderer.component.ts","../../../projects/praxis-metadata-editor/src/lib/config/input.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/select.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/transfer-list.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/radio.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/button-toggle.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/tree-select.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/textarea.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/number.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/date.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/date-range.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/datetime-local.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/date-input.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/time-input.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/time-picker.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/time-range.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/month.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/week.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/email.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/password.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/url.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/search.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/phone.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/color.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/color-picker.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/rating.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/chip-input.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/checkbox-group.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/toggle.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/slider.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/range-slider.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/currency.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/cpf-cnpj.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/file-upload.config.ts","../../../projects/praxis-metadata-editor/src/lib/config/year.config.ts","../../../projects/praxis-metadata-editor/src/lib/validators/context-validators.ts","../../../projects/praxis-metadata-editor/src/lib/components/field-metadata-editor/field-metadata-editor.component.ts","../../../projects/praxis-metadata-editor/src/lib/tabs/cascade-manager/cascade-rules.service.ts","../../../projects/praxis-metadata-editor/src/lib/tabs/cascade-manager/cascade-manager-tab.component.ts","../../../projects/praxis-metadata-editor/src/praxisui-metadata-editor.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport type { FieldControlType } from '@praxisui/core';\nimport type { EditorProperty } from '../types/editor-property.types';\n\n@Injectable({ providedIn: 'root' })\nexport class ConfigRegistryService {\n private readonly map = new Map<FieldControlType, EditorProperty[]>();\n\n register(controlType: FieldControlType, props: EditorProperty[]): void {\n this.map.set(controlType, props);\n }\n\n getProperties(controlType: FieldControlType): EditorProperty[] {\n return this.map.get(controlType) ?? [];\n }\n\n list(): Array<{ controlType: FieldControlType; count: number }> {\n return Array.from(this.map.entries()).map(([ct, props]) => ({\n controlType: ct,\n count: props.length,\n }));\n }\n}\n","import { Injectable } from '@angular/core';\nimport type { FieldControlType } from '@praxisui/core';\nimport type { ValidatorFn } from '@angular/forms';\n\n@Injectable({ providedIn: 'root' })\nexport class ContextValidatorRegistryService {\n private readonly map = new Map<FieldControlType, ValidatorFn[]>();\n\n register(controlType: FieldControlType, validator: ValidatorFn): void {\n const list = this.map.get(controlType) ?? [];\n list.push(validator);\n this.map.set(controlType, list);\n }\n\n get(controlType: FieldControlType): ValidatorFn[] {\n return this.map.get(controlType) ?? [];\n }\n}\n","import { Injectable } from '@angular/core';\nimport type { EditorProperty } from '../types/editor-property.types';\nimport type { FieldDefinition } from '@praxisui/core';\n\n@Injectable({ providedIn: 'root' })\nexport class SchemaNormalizerService {\n /** Normaliza propriedades e aplica defaultValue resolvendo do seed por dot-path. */\n normalize(properties: EditorProperty[], seed?: Partial<FieldDefinition>): EditorProperty[] {\n const out = properties.map((p) => {\n const clone: EditorProperty = { ...p };\n // normalizar options se for string simples\n if (Array.isArray(clone.options)) {\n clone.options = clone.options.map((opt: any) =>\n typeof opt === 'string' ? { value: opt, text: opt } : opt,\n );\n }\n // pattern/regex\n if ((clone as any).pattern && typeof (clone as any).pattern === 'string') {\n const str = String((clone as any).pattern);\n const match = /^\\/(.*)\\/([gimsuy]*)$/.exec(str);\n if (match) {\n try {\n (clone as any).pattern = new RegExp(match[1], match[2]);\n } catch {}\n }\n }\n // aplicar defaultValue do seed se existir\n if (seed && clone.defaultValue === undefined) {\n const val = this.getByPath(seed as any, clone.name);\n if (val !== undefined) {\n // Stringify complex defaults for textarea-friendly editors\n const needsJson = (\n clone.editorType === 'textarea' &&\n (\n clone.name === 'options' ||\n clone.name === 'filterCriteria' ||\n clone.name === 'paletteSettings.colors' ||\n clone.name === 'views' ||\n clone.name === 'adaptiveSubtitle'\n )\n );\n clone.defaultValue = needsJson && typeof val !== 'string' ? JSON.stringify(val, null, 2) : val;\n try {\n if (\n clone.name === 'resourcePath' ||\n clone.name === 'filterCriteria' ||\n clone.name === 'optionLabelKey' ||\n clone.name === 'optionValueKey' ||\n clone.name === 'options' ||\n clone.name === 'paletteSettings.colors' ||\n clone.name === 'views'\n ) {\n console.debug('[SchemaNormalizer] default from seed', {\n name: clone.name,\n value: needsJson && typeof val !== 'string' ? JSON.stringify(val) : val,\n });\n }\n // Extra diagnostics for Rating editor fields\n if ([\n 'max',\n 'allowHalf',\n 'precision',\n 'selection',\n 'size',\n 'icon',\n 'emptyIcon',\n 'svgIcon',\n 'svgIconOutline',\n 'ratingColor',\n 'outlineColor',\n 'readonly',\n 'tabIndex',\n 'ariaLabel',\n ].includes(clone.name)) {\n console.debug('[SchemaNormalizer][RATING] default from seed', {\n name: clone.name,\n value: val,\n });\n }\n } catch {}\n }\n } else if (seed && clone.defaultValue !== undefined) {\n // Log when a property defines its own defaultValue and thus does not read from seed\n try {\n if (\n clone.name === 'resourcePath' ||\n clone.name === 'filterCriteria' ||\n clone.name === 'optionLabelKey' ||\n clone.name === 'optionValueKey' ||\n clone.name === 'options'\n ) {\n const val = this.getByPath(seed as any, clone.name);\n console.debug('[SchemaNormalizer] default preserved (property default overrides seed)', {\n name: clone.name,\n propertyDefault: clone.defaultValue,\n seedValue: val,\n });\n }\n } catch {}\n }\n return clone;\n });\n try {\n const names = out.map((p) => p.name);\n const defPreview = out\n .filter((p) =>\n ['resourcePath', 'filterCriteria', 'optionLabelKey', 'optionValueKey'].includes(p.name),\n )\n .map((p) => ({ name: p.name, defaultValue: (p as any).defaultValue }));\n console.debug('[SchemaNormalizer] normalize summary', { names, defPreview });\n } catch {}\n return out;\n }\n\n /** Lê valor por dot-path */\n private getByPath(obj: any, path: string): any {\n return path.split('.').reduce((acc, key) => (acc == null ? acc : acc[key]), obj);\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport type { EditorProperty } from '../types/editor-property.types';\nimport type { FieldDefinition } from '@praxisui/core';\nimport { ContextValidatorRegistryService } from '../registry/context-validator-registry.service';\nimport type { FieldControlType } from '@praxisui/core';\n\n@Injectable({ providedIn: 'root' })\nexport class DynamicFormFactoryService {\n constructor(\n private fb: FormBuilder,\n private ctxValidators: ContextValidatorRegistryService,\n ) {}\n\n createEditorForm(\n controlType: FieldControlType,\n props: EditorProperty[],\n seed?: Partial<FieldDefinition>,\n ): FormGroup {\n const group = this.fb.group({});\n\n for (const p of props) {\n const ctrl = new FormControl(\n p.defaultValue ?? null,\n { validators: p.validators ?? [] },\n );\n this.assignControlByPath(group, p.name, ctrl);\n try {\n if (\n p.name === 'resourcePath' ||\n p.name === 'filterCriteria' ||\n p.name === 'optionLabelKey' ||\n p.name === 'optionValueKey'\n ) {\n console.debug('[EditorForm] control init', {\n name: p.name,\n defaultValue: p.defaultValue ?? null,\n });\n }\n } catch {}\n }\n\n const formValidators = this.ctxValidators.get(controlType);\n if (formValidators.length) {\n group.addValidators(formValidators);\n }\n return group;\n }\n\n getControlByPath(form: FormGroup, path: string): AbstractControl | null {\n return form.get(path);\n }\n\n setValueByPath(form: FormGroup, path: string, value: any): void {\n form.get(path)?.setValue(value);\n }\n\n extractPatch(form: FormGroup): Partial<FieldDefinition> {\n const patch = form.getRawValue() as any;\n try { console.debug('[EditorForm] extractPatch', patch); } catch {}\n return patch;\n }\n\n mergeIntoFieldDefinition(\n base: FieldDefinition,\n patch: Partial<FieldDefinition>,\n ): FieldDefinition {\n return this.deepMerge(base, patch);\n }\n\n private assignControlByPath(group: FormGroup, path: string, ctrl: FormControl) {\n const parts = path.split('.');\n let current: FormGroup = group;\n for (let i = 0; i < parts.length - 1; i++) {\n const key = parts[i];\n const next = current.get(key);\n if (!next) {\n const child = this.fb.group({});\n current.addControl(key, child);\n current = child;\n } else if (next instanceof FormGroup) {\n current = next;\n } else {\n // Overwrite non-group path with group to respect dot-notation\n const child = this.fb.group({});\n current.removeControl(key);\n current.addControl(key, child);\n current = child;\n }\n }\n current.addControl(parts[parts.length - 1], ctrl);\n }\n\n private deepMerge<T>(target: T, source: Partial<T>): T {\n if (source == null || typeof source !== 'object') return target;\n const result: any = Array.isArray(target) ? [...(target as any)] : { ...(target as any) };\n for (const [k, v] of Object.entries(source as any)) {\n if (v && typeof v === 'object' && !Array.isArray(v)) {\n result[k] = this.deepMerge(result[k] ?? {}, v as any);\n } else {\n result[k] = v;\n }\n }\n return result as T;\n }\n}\n","import { Injectable, Type } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class EditorComponentRegistryService {\n private readonly registry = new Map<string, () => Promise<Type<any>>>();\n private readonly cache = new Map<string, Type<any>>();\n\n register(editorType: string, loader: () => Promise<Type<any>>): void {\n this.registry.set(editorType, loader);\n }\n\n async get(editorType: string): Promise<Type<any> | null> {\n if (this.cache.has(editorType)) {\n return this.cache.get(editorType)!;\n }\n const loader = this.registry.get(editorType);\n if (!loader) return null;\n const type = await loader();\n if (type) this.cache.set(editorType, type);\n return type ?? null;\n }\n\n isRegistered(editorType: string): boolean {\n return this.registry.has(editorType);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatListModule } from '@angular/material/list';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'praxis-regex-help-dialog',\n standalone: true,\n imports: [CommonModule, MatDialogModule, MatListModule, MatButtonModule],\n template: `\n <h2 mat-dialog-title>Modelos de Expressões Regulares</h2>\n <div mat-dialog-content>\n <p>Selecione um dos modelos abaixo para preencher o campo ou use como base:</p>\n <mat-nav-list dense>\n @for (r of presets; track r.pattern) {\n <a mat-list-item (click)=\"choose(r.pattern)\" style=\"cursor: pointer;\">\n <span matListItemTitle><code>{{ r.pattern }}</code></span>\n <span matListItemLine>{{ r.label }}</span>\n </a>\n }\n </mat-nav-list>\n <p style=\"margin-top: 12px;\">Recursos úteis:</p>\n <ul>\n <li><a href=\"https://regex101.com/\" target=\"_blank\" rel=\"noreferrer noopener\">regex101.com</a> — Teste e depure regex</li>\n <li><a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions\" target=\"_blank\" rel=\"noreferrer noopener\">MDN: Regular expressions</a></li>\n </ul>\n </div>\n <div mat-dialog-actions>\n <button class=\"mat-mdc-button mdc-button\" mat-dialog-close>Fechar</button>\n </div>\n `,\n})\nexport class RegexHelpDialogComponent {\n private dialogRef = inject(MatDialogRef<RegexHelpDialogComponent>);\n\n readonly presets: { label: string; pattern: string }[] = [\n { label: 'Apenas letras (ASCII)', pattern: '/^[a-zA-Z]+$/' },\n { label: 'Apenas dígitos', pattern: '/^\\\\d+$/' },\n { label: 'Email simples', pattern: '/^\\\\w+@[\\\\w.-]+\\\\.[A-Za-z]&#123;2,&#125;$/' },\n { label: 'URL básica (http/https)', pattern: '/^(https?:\\\\/\\\\/)?[\\\\w.-]+(\\\\\\\\.[\\\\w.-]+)+[\\\\w\\\\-._~:?#@!$&\\'()*+,;=\\\\/]*$/' },\n { label: 'Pelo menos 8 caracteres', pattern: '/^.&#123;8,&#125;$/' },\n { label: 'CEP brasileiro (#####-###)', pattern: '/^\\\\d{5}-\\\\d{3}$/' },\n { label: 'CPF (###.###.###-##)', pattern: '/^\\\\d{3}\\\\.\\\\d{3}\\\\.\\\\d{3}-\\\\d{2}$/' },\n { label: 'CNPJ (##.###.###/####-##)', pattern: '/^\\\\d{2}\\\\.\\\\d{3}\\\\.\\\\d{3}\\\\/\\\\d{4}-\\\\d{2}$/' },\n { label: 'Telefone (Brasil) com DDD', pattern: '/^\\\\(\\\\d{2}\\\\) \\\\d{4,5}-\\\\d{4}$/' },\n { label: 'Somente hex (0-9 A-F)', pattern: '/^[0-9A-Fa-f]+$/' },\n { label: 'Código postal (US ZIP)', pattern: '/^\\\\d{5}(-\\\\d{4})?$/' },\n { label: 'Data (YYYY-MM-DD)', pattern: '/^\\\\d{4}-\\\\d{2}-\\\\d{2}$/' },\n { label: 'Hora (HH:MM 24h)', pattern: '/^([01]\\\\d|2[0-3]):[0-5]\\\\d$/' },\n { label: 'Slug (letras, dígitos, hífen)', pattern: '/^[a-z0-9-]+$/' },\n { label: 'Username (3-16, alfanum., _ -)', pattern: '/^[a-zA-Z0-9_-]{3,16}$/' },\n { label: 'Senha forte (8+, maiúsc., minúsc., dígito)', pattern: '/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d).&#123;8,&#125;$/' },\n { label: 'IPv4', pattern: '/^(25[0-5]|2[0-4]\\\\d|[01]?\\\\d?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|[01]?\\\\d?\\\\d))&#123;3&#125;$/' },\n { label: 'MAC address', pattern: '/^([0-9A-Fa-f]{2}:)&#123;5&#125;[0-9A-Fa-f]{2}$/' },\n { label: 'Hashtag (#palavra)', pattern: '/^#\\\\w+$/' },\n { label: 'Menção (@usuario)', pattern: '/^@\\\\w+$/' },\n { label: 'Palavra específica (foo)', pattern: '/\\\\bfoo\\\\b/' },\n { label: 'Não conter espaços', pattern: '/^\\\\S+$/' },\n { label: 'Início com letra', pattern: '/^[A-Za-z].*$/' },\n { label: 'Termina com ponto final', pattern: '/.*\\\\.$/' },\n { label: 'Número com 2 casas decimais', pattern: '/^\\\\d+(,\\\\d{2}|\\\\.\\\\d{2})$/' },\n { label: 'Hex color (#RRGGBB)', pattern: '/^#?[A-Fa-f0-9]{6}$/' },\n { label: 'UUID v4', pattern: '/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i' },\n { label: 'DOM id (letra inicial)', pattern: '/^[A-Za-z][-A-Za-z0-9_:.]*$/' },\n { label: 'Base64', pattern: '/^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$/' },\n ];\n\n choose(pattern: string): void {\n this.dialogRef.close(pattern);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport type { EditorProperty } from '../../types/editor-property.types';\nimport type { FieldMetadata, FieldControlType } from '@praxisui/core';\nimport { DynamicFieldLoaderDirective } from '@praxisui/dynamic-fields';\nimport { FieldControlType as FCT } from '@praxisui/core';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog, MatDialogModule } from '@angular/material/dialog';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { PraxisIconDirective } from '@praxisui/core';\nimport { RegexHelpDialogComponent } from '../regex-help-dialog/regex-help-dialog.component';\nimport { IconPickerService } from '@praxisui/core';\n\n@Component({\n selector: 'praxis-dynamic-editor-renderer',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n DynamicFieldLoaderDirective,\n MatExpansionModule,\n MatIconModule,\n MatButtonModule,\n MatDialogModule,\n MatTooltipModule,\n PraxisIconDirective,\n ],\n template: `\n <ng-template #item let-field=\"field\" let-index=\"index\" let-content=\"content\">\n <div class=\"editor-item\" style=\"position: relative;\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n <!-- Botão de ajuda para regex, posicionado como sufixo visual do campo -->\n <button\n *ngIf=\"field.name === 'pattern'\"\n type=\"button\"\n mat-icon-button\n class=\"regex-help-btn decorator-btn\"\n (click)=\"openRegexHelp()\"\n aria-label=\"Exemplos de regex\"\n matTooltip=\"Exemplos de regex\"\n >\n <mat-icon [praxisIcon]=\"'search'\"></mat-icon>\n </button>\n <!-- Botão para escolher ícone (prefix/suffix) -->\n <button\n *ngIf=\"isIconField(field.name)\"\n type=\"button\"\n mat-icon-button\n class=\"icon-picker-btn decorator-btn\"\n (click)=\"openIconPicker(field.name)\"\n aria-label=\"Escolher ícone\"\n matTooltip=\"Escolher ícone\"\n >\n <mat-icon [praxisIcon]=\"'apps'\"></mat-icon>\n </button>\n </div>\n </ng-template>\n\n <div class=\"editor-surface\">\n <mat-accordion class=\"section-accordion\" multi>\n <mat-expansion-panel class=\"section-card\" *ngFor=\"let g of groupOrder\">\n <mat-expansion-panel-header class=\"section-header\">\n <mat-panel-title>\n <span class=\"section-title\">\n <mat-icon class=\"section-icon\" [praxisIcon]=\"groupIcon(g)\"></mat-icon>\n {{ g }}\n </span>\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <div *ngFor=\"let row of groupRows[g]\" class=\"editor-row\" [ngClass]=\"rowClass(row)\">\n <ng-container *ngIf=\"ready\"\n dynamicFieldLoader\n [fields]=\"row\"\n [formGroup]=\"form\"\n [itemTemplate]=\"item\">\n </ng-container>\n </div>\n </mat-expansion-panel>\n </mat-accordion>\n </div>\n `,\n styles: [\n `\n :host { display: block; }\n .editor-surface {\n padding: 8px 8px 2px;\n border-radius: 12px;\n background: transparent; /* gradiente movido para o settings-panel */\n }\n /* --- Seções (cards colapsáveis) --- */\n .section-accordion {\n display: block;\n }\n .section-card {\n margin: 6px 0 8px; /* reduced vertical spacing between panels */\n border-radius: 12px;\n border: 1px solid rgba(0,0,0,0.08);\n overflow: hidden;\n }\n .section-card.mat-expanded {\n border-color: color-mix(in srgb, var(--mat-sys-primary, #3f51b5) 20%, transparent);\n box-shadow: 0 2px 10px rgba(0,0,0,0.05);\n }\n .section-card .mat-expansion-panel-body {\n padding: 12px 12px 8px; /* add top space between header and first field */\n background: linear-gradient(180deg, color-mix(in srgb, var(--md-sys-color-surface, var(--sicoob-bg-elev-1)) 2%), transparent);\n }\n .section-header {\n /* Use host theme tokens with dark-friendly fallbacks */\n background: linear-gradient(\n 180deg,\n color-mix(in srgb, var(--md-sys-color-surface, var(--sicoob-bg-elev-2)) 92%, var(--md-sys-color-primary, var(--sicoob-primary-default))) 0%,\n var(--md-sys-color-surface, var(--sicoob-bg-elev-2)) 100%\n );\n border-bottom: 1px solid var(--md-sys-color-outline-variant, var(--sicoob-stroke-medium));\n padding: 2px 8px; /* extra compact header */\n min-height: 32px; /* extra compact height */\n display: flex;\n align-items: center; /* vertically center header content */\n }\n /* Ensure Material header title area centers content vertically */\n .section-header .mat-expansion-panel-header-title,\n .section-header .mat-expansion-panel-header-description {\n display: flex;\n align-items: center;\n }\n .section-title {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 600;\n letter-spacing: 0.2px;\n /* Use theme on-surface color for title text */\n color: var(--mat-sys-color-on-surface, var(--md-sys-color-on-surface, rgba(0,0,0,0.87)));\n font-size: 0.9rem; /* smaller to match extra compact header */\n line-height: 1.2;\n }\n .section-icon {\n /* Use theme primary color for the icon */\n color: var(--mat-sys-color-primary, var(--md-sys-color-primary, #3f51b5));\n opacity: 0.9;\n }\n\n\n .editor-row {\n display: flex;\n gap: 12px;\n align-items: flex-start;\n flex-wrap: wrap;\n margin-bottom: 8px;\n }\n /* Campos ocupam 100% da largura por padrão (uma coluna) */\n .editor-row > praxis-field-shell {\n flex: 1 1 100%;\n min-width: 280px;\n }\n /* Garantir que cada campo ocupe toda a largura e tenha respiro inferior */\n .editor-row praxis-field-shell .mat-mdc-form-field {\n width: 100%;\n margin-bottom: 8px;\n }\n /* Nos rows inline (toggles), cada item ocupa apenas o necessário */\n .editor-row.row-inline > praxis-field-shell {\n flex: 0 0 auto;\n }\n /* Duas colunas iguais */\n .editor-row.row-2 > praxis-field-shell { flex: 1 1 calc(50% - 12px); min-width: 260px; }\n /* Três colunas iguais */\n .editor-row.row-3 > praxis-field-shell { flex: 1 1 calc(33.333% - 12px); min-width: 220px; }\n\n /* Priorização visual dos campos principais */\n .editor-row > praxis-field-shell[data-field-name=\"controlType\"],\n .editor-row > praxis-field-shell[data-field-name=\"label\"],\n .editor-row > praxis-field-shell[data-field-name=\"placeholder\"] {\n flex: 1 1 calc(50% - 12px);\n min-width: 300px;\n }\n praxis-field-shell[data-field-name=\"label\"] .mdc-floating-label,\n praxis-field-shell[data-field-name=\"placeholder\"] .mdc-floating-label {\n font-weight: 600;\n }\n /* Inputs curtos para prefixos/sufixos */\n .editor-row > praxis-field-shell[data-field-name=\"prefix\"],\n .editor-row > praxis-field-shell[data-field-name=\"suffix\"],\n .editor-row > praxis-field-shell[data-field-name=\"prefixIcon\"],\n .editor-row > praxis-field-shell[data-field-name=\"suffixIcon\"],\n .editor-row > praxis-field-shell[data-field-name=\"prefixIconColor\"],\n .editor-row > praxis-field-shell[data-field-name=\"suffixIconColor\"] {\n flex: 0 0 200px;\n min-width: 160px;\n }\n\n /* Decorators (botões flutuantes no campo) */\n .decorator-btn {\n position: absolute;\n right: 6px;\n top: 8px;\n z-index: 2;\n color: var(--mat-sys-primary, #3f51b5);\n opacity: 0.85;\n }\n\n /* Destaque para toggles importantes */\n praxis-field-shell[data-field-name=\"showCharCount\"] .mdc-switch { transform: scale(1.05); }\n praxis-field-shell[data-field-name=\"showCharCount\"] .mat-mdc-slide-toggle { font-weight: 600; }\n /* Banner de aviso estilizado no hint do Tipo de campo */\n praxis-field-shell[data-field-name=\"controlType\"] .mat-mdc-form-field-hint {\n display: flex;\n align-items: center;\n gap: 8px;\n background: rgba(255, 171, 0, 0.12); /* amber */\n border: 1px solid rgba(255, 171, 0, 0.35);\n color: #ffca28;\n padding: 8px 10px;\n border-radius: 6px;\n line-height: 1.3;\n white-space: normal;\n }\n praxis-field-shell[data-field-name=\"controlType\"] .mat-mdc-form-field-hint::before {\n content: '⚠️';\n display: inline-block;\n }\n /* Garantir espaço vertical extra abaixo do aviso */\n praxis-field-shell[data-field-name=\"controlType\"] .mat-mdc-form-field-subscript-wrapper {\n margin-top: 6px;\n margin-bottom: 10px;\n min-height: auto; /* deixa o wrapper crescer conforme conteúdo */\n }\n praxis-field-shell[data-field-name=\"controlType\"] .mat-mdc-form-field {\n margin-bottom: 16px; /* mais respiro para não sobrepor próximo campo */\n }\n `,\n ],\n})\nexport class DynamicEditorRendererComponent implements OnChanges {\n @Input() properties: EditorProperty[] = [];\n @Input() form!: FormGroup;\n\n fields: FieldMetadata[] = [];\n groupFields: Record<string, FieldMetadata[]> = {};\n groupOrder: string[] = [];\n groupRows: Record<string, FieldMetadata[][]> = {};\n // Evita reentrância: cria loaders após o primeiro tick\n ready = false;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['properties']) {\n const mapped = this.properties.map((p) => this.toFieldMetadata(p));\n this.fields = mapped;\n const groupMap = new Map<string, FieldMetadata[]>();\n const rowMap = new Map<string, Map<string, FieldMetadata[]>>();\n for (const f of mapped) {\n const g = (f as any)._group || 'Geral';\n if (!groupMap.has(g)) groupMap.set(g, []);\n groupMap.get(g)!.push(f);\n const rowKey = (f as any)._row || `${f.name}`;\n if (!rowMap.has(g)) rowMap.set(g, new Map());\n const rmap = rowMap.get(g)!;\n if (!rmap.has(rowKey)) rmap.set(rowKey, []);\n rmap.get(rowKey)!.push(f);\n }\n this.groupFields = Object.fromEntries(groupMap.entries());\n this.groupOrder = Array.from(groupMap.keys()).sort((a, b) => this.groupWeight(a) - this.groupWeight(b));\n const rows: Record<string, FieldMetadata[][]> = {};\n for (const g of this.groupOrder) {\n const rmap = rowMap.get(g)!;\n rows[g] = Array.from(rmap.values());\n }\n this.groupRows = rows;\n // Ativar loaders após agrupar propriedades\n queueMicrotask?.(() => (this.ready = true));\n }\n }\n\n private toFieldMetadata(p: EditorProperty): FieldMetadata {\n const controlType = this.mapEditorType(p.editorType);\n const meta: any = {\n name: p.name,\n label: p.label,\n controlType,\n placeholder: p.placeholder,\n // Ajuda contextual padrão quando ausente\n hint: p.hint,\n options: Array.isArray(p.options) ? (p.options as any) : undefined,\n required: p.required,\n // meta auxiliar de agrupamento (não exportado)\n _group: p.group || 'Geral',\n _inline: p.inline || false,\n _row: p.row || undefined,\n // validators do EditorProperty já foram aplicados ao FormControl pela fábrica,\n // mas manter aqui não prejudica e habilita exibição de mensagens padrão.\n validators: undefined,\n } as FieldMetadata & { _group?: string; min?: number; max?: number; step?: number };\n\n // Priorização de campos principais (agrupa em uma linha \"core\")\n const coreNames = new Set(['controlType', 'label', 'placeholder']);\n if (coreNames.has(p.name) && !meta._row) meta._row = '__core';\n\n // Campos menores e de baixa relevância visual (agrupados inline)\n const smallNames = new Set([\n 'prefix',\n 'suffix',\n 'prefixIcon',\n 'suffixIcon',\n 'prefixIconColor',\n 'suffixIconColor',\n 'icon',\n ]);\n if (smallNames.has(p.name)) {\n meta._inline = true;\n if (!meta._row) meta._row = '__affixes';\n }\n\n // Apenas campos de ícone devem receber o hint de Material Symbols\n if (this.isIconField(p.name) && !meta.hint) {\n meta.hint = 'Use o nome do ícone (Material Symbols)';\n }\n\n // Booleans em linha (switches) para melhor densidade\n const booleanLike = new Set([\n 'required',\n 'disabled',\n 'readonly',\n 'showCharCount',\n 'showClear',\n 'autoFocus',\n 'hideLabel',\n ]);\n if (p.editorType === 'checkbox' || booleanLike.has(p.name)) {\n meta._inline = true;\n if (!meta._row) meta._row = '__toggles';\n }\n\n // Mensagem padrão de atenção ao trocar tipo de campo\n if (p.name === 'controlType' && !meta.hint) {\n meta.hint = 'Alterar o tipo pode impactar configurações e validações';\n }\n\n if (p.editorType === 'number') {\n // Defaults for numeric editors\n if (/minlength|maxlength/i.test(p.name)) {\n (meta as any).min = 0;\n (meta as any).step = 1;\n }\n }\n\n // no editor-specific overrides for textarea sizing here (reverted)\n\n return meta as FieldMetadata;\n }\n\n // Priorização das seções\n private groupWeight(group: string): number {\n const key = group.toLowerCase();\n const order = [\n 'geral',\n 'apresent',\n 'valida',\n 'formato',\n 'comport',\n 'material',\n 'ações',\n 'acess',\n ];\n const idx = order.findIndex((k) => key.includes(k));\n return idx >= 0 ? idx : 999;\n }\n\n // No section open by default\n isInitiallyExpanded(_group: string): boolean {\n return false;\n }\n\n // (preview removed by request)\n\n rowClass(row: FieldMetadata[]): string {\n // Linha compacta (toggles) quando todos são inline\n if (row.every((f: any) => !!(f as any)._inline)) return 'row-inline';\n // Se não for inline e houver 2 ou 3 itens, usar colunas iguais\n const n = row.length;\n if (n === 2) return 'row-2';\n if (n === 3) return 'row-3';\n return '';\n }\n\n private mapEditorType(t: string): FieldControlType {\n switch (t) {\n case 'text':\n return FCT.INPUT as FieldControlType;\n case 'number':\n return FCT.NUMERIC_TEXT_BOX as FieldControlType;\n case 'textarea':\n return FCT.TEXTAREA as FieldControlType;\n case 'select':\n return FCT.SELECT as FieldControlType;\n case 'checkbox':\n // Para booleano simples, usamos o toggle\n return (FCT as any).TOGGLE as FieldControlType;\n case 'date':\n return (FCT as any).DATE_INPUT as FieldControlType;\n case 'datetime-local':\n return (FCT as any).DATETIME_LOCAL_INPUT as FieldControlType;\n case 'color':\n return (FCT as any).COLOR_INPUT as FieldControlType;\n case 'colorPicker':\n return (FCT as any).COLOR_PICKER as FieldControlType;\n default:\n return FCT.INPUT as FieldControlType;\n }\n }\n\n groupIcon(group: string): string {\n const key = group.toLowerCase();\n if (key.includes('valida')) return 'rule';\n if (key.includes('formato') || key.includes('másc')) return 'format_shapes';\n if (key.includes('apresent')) return 'display_settings';\n if (key.includes('lista') || key.includes('opç')) return 'list';\n return 'tune';\n }\n\n constructor(private dialog: MatDialog, private iconPicker: IconPickerService) {}\n\n isIconField(path: string): boolean {\n if (!path) return false;\n // Supports: prefixIcon, suffixIcon, icon, clearButton.icon, any *.icon\n return path === 'prefixIcon' || path === 'suffixIcon' || path === 'icon' || /(^|\\.)icon$/.test(path);\n }\n\n openRegexHelp(): void {\n const ref = this.dialog.open(RegexHelpDialogComponent, {\n width: '720px',\n });\n ref.afterClosed().subscribe((selected: string | null | undefined) => {\n if (!selected) return;\n const ctrl = this.form?.get('pattern');\n ctrl?.setValue(selected);\n ctrl?.markAsDirty();\n this.form?.markAsDirty();\n });\n }\n\n async openIconPicker(path: string): Promise<void> {\n const current = this.form?.get(path)?.value as string | undefined;\n const picked = await this.iconPicker.openDialog({ value: current });\n if (picked !== undefined) {\n this.form?.get(path)?.setValue(picked);\n this.form?.markAsDirty();\n }\n }\n}\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const inputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', placeholder: 'Rótulo do campo', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:search). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n { name: 'showCharacterCount', label: 'Mostrar contador de caracteres', editorType: 'checkbox', group: 'Geral' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'minLength', label: 'Mínimo de caracteres', editorType: 'number', group: 'Validação', row: 'validacao.minmax' },\n { name: 'maxLength', label: 'Máximo de caracteres', editorType: 'number', group: 'Validação', row: 'validacao.minmax' },\n { name: 'pattern', label: 'Pattern (regex)', editorType: 'text', hint: 'Ex.: /^foo.*/i', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.minLengthMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxLengthMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação' },\n { name: 'validators.patternMessage', label: 'Mensagem: padrão inválido', editorType: 'text', group: 'Validação' },\n\n // Máscara/Formato\n { name: 'mask', label: 'Máscara', editorType: 'text', group: 'Formato/Comportamento' },\n {\n name: 'textTransform',\n label: 'Transformação de texto',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'none', text: 'Nenhuma' },\n { value: 'uppercase', text: 'MAIÚSCULAS (CSS)' },\n { value: 'lowercase', text: 'minúsculas (CSS)' },\n { value: 'capitalize', text: 'Capitalizar (CSS)' },\n { value: 'titleCase', text: 'Title Case' },\n { value: 'sentenceCase', text: 'Sentence case' },\n { value: 'kebab', text: 'kebab-case' },\n { value: 'snake', text: 'snake_case' },\n { value: 'camel', text: 'camelCase' },\n { value: 'pascal', text: 'PascalCase' },\n { value: 'slugify', text: 'slugify (a-z0-9-)' },\n { value: 'trim', text: 'trim (remover bordas)' },\n { value: 'collapseWhitespace', text: 'collapseWhitespace (normalizar espaços)' },\n { value: 'removeDiacritics', text: 'removeDiacritics (sem acentos)' },\n ],\n },\n {\n name: 'textTransformApply',\n label: 'Aplicar em',\n editorType: 'select',\n group: 'Formato/Comportamento',\n defaultValue: 'displayOnly',\n options: [\n { value: 'displayOnly', text: 'Exibição (visual)' },\n { value: 'saveOnly', text: 'Salvar (persistência)' },\n { value: 'both', text: 'Ambos' },\n ],\n },\n\n // Formato/Comportamento\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'spellcheck', label: 'Verificação ortográfica', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles1', inline: true },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles1', inline: true },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles1', inline: true },\n {\n name: 'inputMode',\n label: 'Modo de entrada (mobile)',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'text', text: 'Texto' },\n { value: 'numeric', text: 'Numérico' },\n { value: 'decimal', text: 'Decimal' },\n { value: 'tel', text: 'Telefone' },\n { value: 'email', text: 'Email' },\n { value: 'url', text: 'URL' },\n { value: 'search', text: 'Busca' },\n ],\n },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles2', inline: true },\n {\n name: 'inputType',\n label: 'Tipo de input (HTML5)',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'text', text: 'Texto' },\n { value: 'email', text: 'Email' },\n { value: 'password', text: 'Senha' },\n { value: 'tel', text: 'Telefone' },\n { value: 'url', text: 'URL' },\n { value: 'search', text: 'Busca' },\n { value: 'number', text: 'Número' },\n { value: 'date', text: 'Data' },\n { value: 'datetime-local', text: 'Data/Hora local' },\n { value: 'time', text: 'Hora' },\n { value: 'month', text: 'Mês' },\n { value: 'week', text: 'Semana' },\n { value: 'color', text: 'Cor' },\n ],\n },\n {\n name: 'validators.validationTrigger',\n label: 'Gatilho de validação',\n editorType: 'select',\n group: 'Formato/Comportamento',\n row: 'comportamento.validation',\n inline: true,\n options: [\n { value: 'change', text: 'Ao digitar' },\n { value: 'blur', text: 'Ao sair do campo' },\n { value: 'submit', text: 'Ao submeter' },\n { value: 'immediate', text: 'Imediato' },\n ],\n },\n {\n name: 'validators.validationDebounce',\n label: 'Debounce de validação (ms)',\n editorType: 'number',\n group: 'Formato/Comportamento',\n row: 'comportamento.validation',\n inline: true,\n },\n { name: 'validators.showInlineErrors', label: 'Mostrar erros inline', editorType: 'checkbox', group: 'Formato/Comportamento' },\n {\n name: 'validators.errorPosition',\n label: 'Posição do erro',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'bottom', text: 'Abaixo' },\n { value: 'top', text: 'Acima' },\n { value: 'tooltip', text: 'Tooltip' },\n ],\n },\n\n // Material Design\n {\n name: 'materialDesign.appearance',\n label: 'Aparência',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ],\n },\n {\n name: 'materialDesign.color',\n label: 'Cor do tema',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ],\n },\n {\n name: 'materialDesign.floatLabel',\n label: 'Comportamento do label',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ],\n },\n {\n name: 'materialDesign.subscriptSizing',\n label: 'Subscript sizing',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ],\n },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n\n // Estado de erro e interações avançadas\n {\n name: 'errorStateMatcher',\n label: 'Estratégia de erro',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ],\n },\n { name: 'disabledInteractive', label: 'Desabilitado interativo', editorType: 'checkbox', group: 'Material Design' },\n\n // Botão limpar (clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações' },\n\n // Acessibilidade / Avançado\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', hint: '{ \"testId\": \"input-a\" }', group: 'Acessibilidade' },\n\n // Valor padrão\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\n// Editor de metadados para componentes SELECT-like\n// Paridade com INPUT: grupos, linhas e propriedades canônicas\nexport const selectProperties: EditorProperty[] = [\n // 1) Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:list). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // 2) Dados/Opções\n {\n name: 'options',\n label: 'Opções (estáticas)',\n editorType: 'textarea',\n group: 'Dados/Opções',\n hint: 'JSON: [{ \"value\":1, \"text\":\"Um\" }] ou linhas: valor|rótulo',\n },\n { name: 'emptyOptionText', label: 'Texto da opção vazia', editorType: 'text', group: 'Dados/Opções' },\n { name: 'multiple', label: 'Múltipla seleção', editorType: 'checkbox', group: 'Dados/Opções', row: 'dados.inline1', inline: true },\n { name: 'optionLabelKey', label: 'Chave do rótulo (remoto)', editorType: 'text', group: 'Dados/Opções' },\n { name: 'optionValueKey', label: 'Chave do valor (remoto)', editorType: 'text', group: 'Dados/Opções' },\n\n // 3) Fonte Remota\n { name: 'resourcePath', label: 'Resource Path', editorType: 'text', group: 'Fonte Remota' },\n {\n name: 'loadOn',\n label: 'Carregar em',\n editorType: 'select',\n group: 'Fonte Remota',\n options: [\n { value: 'open', text: 'Ao abrir (padrão)' },\n { value: 'init', text: 'Na inicialização' },\n { value: 'none', text: 'Nenhum (manual)' },\n ],\n hint: \"Define quando o async-select realiza a primeira busca remota\",\n },\n { name: 'filterCriteria', label: 'Critérios de filtro (JSON)', editorType: 'textarea', group: 'Fonte Remota', hint: '{ \"active\": true }' },\n\n // 3.1) Dependências (Cascata Nativa – Fase 1)\n { name: 'dependencyFields', label: 'Campos dependentes (CSV ou JSON)', editorType: 'text', group: 'Fonte Remota', hint: \"Ex.: rotaId,destinoReqId\" },\n { name: 'resetOnDependentChange', label: 'Resetar ao mudar dependentes', editorType: 'checkbox', group: 'Fonte Remota' },\n { name: 'enableDependencyCascade', label: 'Habilitar cascata nativa', editorType: 'checkbox', group: 'Fonte Remota', hint: 'Desative quando Connections controlarem filterCriteria' },\n { name: 'dependencyFilterMap', label: 'Mapeamento de filtros (JSON)', editorType: 'textarea', group: 'Fonte Remota', hint: '{ \"rotaId\": \"rotaId\", \"destinoReqId\": { \"key\": \"destinoId\", \"valuePath\": \"id\" } }' },\n { name: 'dependencyValuePath', label: 'Value path padrão (dep.)', editorType: 'text', group: 'Fonte Remota', hint: \"Ex.: 'id' (default) ou 'code'\" },\n {\n name: 'dependencyMergeStrategy',\n label: 'Merge de filtros (dep.)',\n editorType: 'select',\n group: 'Fonte Remota',\n options: [\n { value: 'merge', text: 'merge (padrão)' },\n { value: 'replace', text: 'replace (apenas chaves mapeadas)' },\n ],\n hint: 'merge preserva chaves externas; replace substitui apenas chaves mapeadas',\n },\n { name: 'dependencyDebounceMs', label: 'Debounce (ms) dependentes', editorType: 'number', group: 'Fonte Remota', hint: 'Padrão: 150' },\n {\n name: 'dependencyLoadOnChange',\n label: 'Recarregar ao mudar dependentes',\n editorType: 'select',\n group: 'Fonte Remota',\n options: [\n { value: 'respectLoadOn', text: 'Respeitar loadOn (padrão)' },\n { value: 'immediate', text: 'Imediato' },\n { value: 'manual', text: 'Manual (Connections disparam)' },\n ],\n },\n\n // 4) Formato/Comportamento\n { name: 'selectAll', label: 'Selecionar todos', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline1', inline: true },\n { name: 'searchable', label: 'Buscável', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline1', inline: true },\n { name: 'maxSelections', label: 'Máximo de seleções', editorType: 'number', group: 'Formato/Comportamento' },\n\n // 5) Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // 6) Material Design\n {\n name: 'materialDesign.appearance',\n label: 'Aparência',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ],\n },\n {\n name: 'materialDesign.color',\n label: 'Cor do tema',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ],\n },\n {\n name: 'materialDesign.floatLabel',\n label: 'Comportamento do label',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ],\n },\n {\n name: 'materialDesign.subscriptSizing',\n label: 'Subscript sizing',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ],\n },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n {\n name: 'errorStateMatcher',\n label: 'Estratégia de erro',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ],\n },\n\n // 7) Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade', hint: '{ \"testId\": \"select-a\" }' },\n\n // 8) Ações (Clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', row: 'clear.inline1', inline: true },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', row: 'clear.inline2', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', row: 'clear.inline2', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações', row: 'clear.inline2' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', row: 'clear.inline2' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', row: 'clear.inline1', inline: true },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const transferListProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n\n // Dados/Opções\n {\n name: 'options',\n label: 'Opções (estáticas)',\n editorType: 'textarea',\n group: 'Dados/Opções',\n hint: 'JSON: [{ \"value\":1, \"text\":\"Um\" }] ou linhas: valor|rótulo',\n },\n { name: 'optionLabelKey', label: 'Chave do rótulo (remoto)', editorType: 'text', group: 'Dados/Opções' },\n { name: 'optionValueKey', label: 'Chave do valor (remoto)', editorType: 'text', group: 'Dados/Opções' },\n\n // Fonte Remota\n { name: 'resourcePath', label: 'Resource Path', editorType: 'text', group: 'Fonte Remota' },\n { name: 'filterCriteria', label: 'Critérios de filtro (JSON)', editorType: 'textarea', group: 'Fonte Remota', hint: '{ \"active\": true }' },\n { name: 'searchable', label: 'Buscável', editorType: 'checkbox', group: 'Fonte Remota', row: 'fonte.inline1', inline: true },\n\n // Formato/Comportamento\n { name: 'maxSelections', label: 'Máximo de seleções', editorType: 'number', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade', hint: '{ \"testId\": \"transfer-a\" }' },\n\n // Ações (Clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const radioProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n\n // Dados/Opções\n {\n name: 'providerOptions',\n label: 'Opções (estáticas)',\n editorType: 'textarea',\n group: 'Dados/Opções',\n hint: 'JSON: [{ \"value\":1, \"text\":\"Um\" }] ou linhas: valor|rótulo',\n },\n { name: 'optionLabelKey', label: 'Chave do rótulo (remoto)', editorType: 'text', group: 'Dados/Opções' },\n { name: 'optionValueKey', label: 'Chave do valor (remoto)', editorType: 'text', group: 'Dados/Opções' },\n\n // Fonte Remota\n { name: 'resourcePath', label: 'Resource Path', editorType: 'text', group: 'Fonte Remota' },\n { name: 'filterCriteria', label: 'Critérios de filtro (JSON)', editorType: 'text', group: 'Fonte Remota', hint: '{ \"active\": true }' },\n\n // Formato/Comportamento\n { name: 'color', label: 'Cor', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'layout', label: 'Layout', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'horizontal', text: 'Horizontal' },\n { value: 'vertical', text: 'Vertical' },\n ] },\n { name: 'labelPosition', label: 'Posição do label', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'before', text: 'Antes' },\n { value: 'after', text: 'Depois' },\n ] },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const buttonToggleProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Geral' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Geral' },\n\n // Dados/Opções\n {\n name: 'options',\n label: 'Opções (estáticas)',\n editorType: 'textarea',\n group: 'Dados/Opções',\n hint: 'JSON: [{ \"value\":1, \"text\":\"Um\" }] ou linhas: valor|rótulo',\n },\n { name: 'optionLabelKey', label: 'Chave do rótulo (remoto)', editorType: 'text', group: 'Dados/Opções' },\n { name: 'optionValueKey', label: 'Chave do valor (remoto)', editorType: 'text', group: 'Dados/Opções' },\n\n // Fonte Remota\n { name: 'resourcePath', label: 'Resource Path', editorType: 'text', group: 'Fonte Remota' },\n { name: 'filterCriteria', label: 'Critérios de filtro (JSON)', editorType: 'textarea', group: 'Fonte Remota', hint: '{ \"active\": true }' },\n\n // Formato/Comportamento\n { name: 'multiple', label: 'Múltipla seleção', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline1', inline: true },\n { name: 'maxSelections', label: 'Máximo de seleções', editorType: 'number', group: 'Formato/Comportamento' },\n\n // Material Design\n { name: 'appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'legacy', text: 'Legacy' },\n { value: 'standard', text: 'Standard' },\n ] },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const treeSelectProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n\n // Dados/Opções\n {\n name: 'options',\n label: 'Nós (estáticos)',\n editorType: 'textarea',\n group: 'Dados/Opções',\n hint: 'JSON: [{ \"value\":1, \"label\":\"Um\", children:[...] }]',\n },\n\n // Formato/Comportamento\n { name: 'searchable', label: 'Buscável', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline1', inline: true },\n { name: 'leafOnly', label: 'Permitir apenas folhas', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline1', inline: true },\n { name: 'autoExpandOnSearch', label: 'Auto-expansão ao buscar', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline2', inline: true },\n { name: 'returnPath', label: 'Retornar caminho', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline2', inline: true },\n { name: 'returnObject', label: 'Retornar objeto', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.inline2', inline: true },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n \n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade', hint: '{ \"testId\": \"tree-a\" }' },\n\n // Ações (Clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\n// Properties for Material Textarea editor (parity with INPUT where applicable)\nexport const textareaProperties: EditorProperty[] = [\n // Geral / Apresentação\n { name: 'label', label: 'Label', editorType: 'text', placeholder: 'Rótulo do campo', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:edit). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'minLength', label: 'Mínimo de caracteres', editorType: 'number', group: 'Validação', row: 'validacao.minmax' },\n { name: 'maxLength', label: 'Máximo de caracteres', editorType: 'number', group: 'Validação', row: 'validacao.minmax' },\n { name: 'pattern', label: 'Pattern (regex)', editorType: 'text', hint: 'Ex.: /^foo.*/i', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.minLengthMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxLengthMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação' },\n { name: 'validators.patternMessage', label: 'Mensagem: padrão inválido', editorType: 'text', group: 'Validação' },\n // fase 2: minWords + mensagem\n // { name: 'validators.minWords', label: 'Mínimo de palavras', editorType: 'number', group: 'Validação', row: 'validacao.minwords' },\n // { name: 'validators.minWordsMessage', label: 'Mensagem: poucas palavras', editorType: 'text', group: 'Validação', row: 'validacao.minwords' },\n\n // Formato/Comportamento\n {\n name: 'textTransform',\n label: 'Transformação de texto',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'none', text: 'Nenhuma' },\n { value: 'uppercase', text: 'MAIÚSCULAS (CSS)' },\n { value: 'lowercase', text: 'minúsculas (CSS)' },\n { value: 'capitalize', text: 'Capitalizar (CSS)' },\n { value: 'titleCase', text: 'Title Case' },\n { value: 'sentenceCase', text: 'Sentence case' },\n { value: 'kebab', text: 'kebab-case' },\n { value: 'snake', text: 'snake_case' },\n { value: 'camel', text: 'camelCase' },\n { value: 'pascal', text: 'PascalCase' },\n { value: 'slugify', text: 'slugify (a-z0-9-)' },\n { value: 'trim', text: 'trim (remover bordas)' },\n { value: 'collapseWhitespace', text: 'collapseWhitespace (normalizar espaços)' },\n { value: 'removeDiacritics', text: 'removeDiacritics (sem acentos)' },\n ],\n },\n {\n name: 'textTransformApply',\n label: 'Aplicar em',\n editorType: 'select',\n group: 'Formato/Comportamento',\n defaultValue: 'displayOnly',\n options: [\n { value: 'displayOnly', text: 'Exibição (visual)' },\n { value: 'saveOnly', text: 'Salvar (persistência)' },\n { value: 'both', text: 'Ambos' },\n ],\n },\n { name: 'showCharacterCount', label: 'Mostrar contador de caracteres', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'rows', label: 'Linhas (rows)', editorType: 'number', group: 'Formato/Comportamento', row: 'formato.size' },\n { name: 'cols', label: 'Colunas (cols)', editorType: 'number', group: 'Formato/Comportamento', row: 'formato.size' },\n {\n name: 'wrap',\n label: 'Quebra de linha (wrap)',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'soft', text: 'Soft (visual, sem \\n)' },\n { value: 'hard', text: 'Hard (visual + \\n)' },\n { value: 'off', text: 'Off (sem quebra automática)' },\n ],\n },\n { name: 'autoResize', label: 'Auto-resize (CDK)', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'formato.autosize', inline: true },\n { name: 'minRows', label: 'Mín. linhas', editorType: 'number', group: 'Formato/Comportamento', row: 'formato.autosize', inline: true },\n { name: 'maxRows', label: 'Máx. linhas', editorType: 'number', group: 'Formato/Comportamento', row: 'formato.autosize', inline: true },\n { name: 'resize', label: 'Redimensionamento (CSS resize)', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'none', text: 'Nenhum' },\n { value: 'vertical', text: 'Vertical' },\n { value: 'horizontal', text: 'Horizontal' },\n { value: 'both', text: 'Ambos' },\n ] },\n { name: 'textAreaMode', label: 'Modo de edição', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'plain', text: 'Texto (normal)' },\n { value: 'code', text: 'Código (genérico)' },\n { value: 'markdown', text: 'Markdown' },\n { value: 'json', text: 'JSON' },\n { value: 'xml', text: 'XML' },\n { value: 'sql', text: 'SQL' },\n { value: 'log', text: 'Log' },\n ] },\n { name: 'showStats', label: 'Mostrar estatísticas (palavras/linhas)', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Formato/Comportamento\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'spellcheck', label: 'Verificação ortográfica', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles1', inline: true },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles1', inline: true },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles1', inline: true },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles2', inline: true },\n { name: 'enableTabIndent', label: 'Tab: inserir indentação', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comportamento.toggles2', inline: true },\n { name: 'tabSize', label: 'Tamanho da indentação (espaços)', editorType: 'number', group: 'Formato/Comportamento', row: 'comportamento.toggles2', inline: true },\n { name: 'maxLines', label: 'Máx. de linhas (bloqueia Enter)', editorType: 'number', group: 'Formato/Comportamento', row: 'comportamento.validation', inline: true },\n {\n name: 'validators.validationTrigger',\n label: 'Gatilho de validação',\n editorType: 'select',\n group: 'Formato/Comportamento',\n row: 'comportamento.validation',\n inline: true,\n options: [\n { value: 'change', text: 'Ao digitar' },\n { value: 'blur', text: 'Ao sair do campo' },\n { value: 'submit', text: 'Ao submeter' },\n { value: 'immediate', text: 'Imediato' },\n ],\n },\n { name: 'validators.validationDebounce', label: 'Debounce de validação (ms)', editorType: 'number', group: 'Formato/Comportamento', row: 'comportamento.validation', inline: true },\n { name: 'validators.showInlineErrors', label: 'Mostrar erros inline', editorType: 'checkbox', group: 'Formato/Comportamento' },\n {\n name: 'validators.errorPosition',\n label: 'Posição do erro',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'bottom', text: 'Abaixo' },\n { value: 'top', text: 'Acima' },\n { value: 'tooltip', text: 'Tooltip' },\n ],\n },\n\n // Material Design\n {\n name: 'materialDesign.appearance',\n label: 'Aparência',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ],\n },\n {\n name: 'materialDesign.color',\n label: 'Cor do tema',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ],\n },\n {\n name: 'materialDesign.floatLabel',\n label: 'Comportamento do label',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ],\n },\n {\n name: 'materialDesign.subscriptSizing',\n label: 'Subscript sizing',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ],\n },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n {\n name: 'errorStateMatcher',\n label: 'Estratégia de erro',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ],\n },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', hint: '{ \"testId\": \"textarea-a\" }', group: 'Acessibilidade' },\n\n // Ações (clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações' },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\n// Editor de metadados para NUMBER (numericTextBox)\n// Paridade com INPUT, cobrindo grupos e propriedades canônicas\nexport const numberProperties: EditorProperty[] = [\n // 1) Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'number', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: 'Material Symbols (ex.: mi:...). Use o seletor ao lado para buscar.' },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: 'Material Symbols (ex.: mi:...). Use o seletor ao lado para buscar.' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // 2) Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínimo', editorType: 'number', group: 'Validação', row: 'validacao.minmax', inline: true },\n { name: 'max', label: 'Máximo', editorType: 'number', group: 'Validação', row: 'validacao.minmax', inline: true },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.minMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação' },\n\n // 3) Formato/Comportamento\n { name: 'step', label: 'Step (incremento)', editorType: 'number', group: 'Formato/Comportamento' },\n { name: 'numberFormat.decimalPlaces', label: 'Casas decimais', editorType: 'number', group: 'Formato/Comportamento', row: 'formato.decimais', inline: true },\n { name: 'showGrouping', label: 'Agrupar milhares', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'formato.decimais', inline: true, hint: 'Fase 1: aplica apenas formatação visual básica' },\n {\n name: 'inputMode',\n label: 'Modo de entrada',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'numeric', text: 'Numérico' },\n { value: 'decimal', text: 'Decimal' },\n ],\n },\n\n // 4) Formato/Comportamento\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'spellcheck', label: 'Verificação ortográfica', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.toggles1', inline: true },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.toggles1', inline: true },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.toggles1', inline: true },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.toggles2', inline: true },\n {\n name: 'validators.validationTrigger',\n label: 'Gatilho de validação',\n editorType: 'select',\n group: 'Formato/Comportamento',\n row: 'comp.validation',\n inline: true,\n options: [\n { value: 'change', text: 'Ao digitar' },\n { value: 'blur', text: 'Ao sair do campo' },\n { value: 'submit', text: 'Ao submeter' },\n { value: 'immediate', text: 'Imediato' },\n ],\n },\n { name: 'validators.validationDebounce', label: 'Debounce (ms)', editorType: 'number', group: 'Formato/Comportamento', row: 'comp.validation', inline: true },\n { name: 'validators.showInlineErrors', label: 'Mostrar erros inline', editorType: 'checkbox', group: 'Formato/Comportamento' },\n {\n name: 'validators.errorPosition',\n label: 'Posição do erro',\n editorType: 'select',\n group: 'Formato/Comportamento',\n options: [\n { value: 'bottom', text: 'Abaixo' },\n { value: 'top', text: 'Acima' },\n { value: 'tooltip', text: 'Tooltip' },\n ],\n },\n\n // 5) Material Design\n {\n name: 'materialDesign.appearance',\n label: 'Aparência',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ],\n },\n {\n name: 'materialDesign.color',\n label: 'Cor do tema',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ],\n },\n {\n name: 'materialDesign.floatLabel',\n label: 'Comportamento do label',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ],\n },\n {\n name: 'materialDesign.subscriptSizing',\n label: 'Subscript sizing',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ],\n },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n {\n name: 'errorStateMatcher',\n label: 'Estratégia de erro',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ],\n },\n\n // 6) Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade', hint: '{ \"testId\": \"number-a\" }' },\n\n // 7) Ações (Clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', row: 'acoes.inline1', inline: true },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', row: 'acoes.inline2', hint: 'Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.' },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', row: 'acoes.inline2', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações', row: 'acoes.inline2' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', row: 'acoes.inline2' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', row: 'acoes.inline1', inline: true },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const dateProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'date', group: 'Geral', hint: 'Data (YYYY-MM-DD)' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:calendar_today). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'minDate', label: 'Mínima', editorType: 'date', group: 'Validação', row: 'val.minmax' },\n { name: 'maxDate', label: 'Máxima', editorType: 'date', group: 'Validação', row: 'val.minmax' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.minMessage', label: 'Mensagem: data mínima', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxMessage', label: 'Mensagem: data máxima', editorType: 'text', group: 'Validação' },\n\n // Formato/Comportamento\n { name: 'startView', label: 'Visão inicial', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'month', text: 'Mês' },\n { value: 'year', text: 'Ano' },\n { value: 'multi-year', text: 'Décadas' },\n ] },\n { name: 'startAt', label: 'Abrir em', editorType: 'date', group: 'Formato/Comportamento' },\n { name: 'touchUi', label: 'Touch UI', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'closeOnSelect', label: 'Fechar ao selecionar', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n\n // Material Design\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Material Design', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ] },\n { name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Material Design', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ] },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n { name: 'errorStateMatcher', label: 'Estratégia de erro', editorType: 'select', group: 'Material Design', options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ] },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade' },\n\n // Ações\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações', row: 'clear.inline1', inline: true },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', row: 'clear.inline2', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', row: 'clear.inline2', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações', row: 'clear.inline2' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações', row: 'clear.inline2' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações', row: 'clear.inline1', inline: true },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const dateRangeProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue.startDate', label: 'Valor padrão (início)', editorType: 'date', group: 'Geral' },\n { name: 'defaultValue.endDate', label: 'Valor padrão (fim)', editorType: 'date', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:date_range). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n\n // Placeholders específicos\n { name: 'startPlaceholder', label: 'Placeholder (início)', editorType: 'text', group: 'Geral' },\n { name: 'endPlaceholder', label: 'Placeholder (fim)', editorType: 'text', group: 'Geral' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'minDate', label: 'Mínima', editorType: 'date', group: 'Validação', row: 'val.minmax' },\n { name: 'maxDate', label: 'Máxima', editorType: 'date', group: 'Validação', row: 'val.minmax' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Formato/Comportamento\n { name: 'startView', label: 'Visão inicial', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'month', text: 'Mês' },\n { value: 'year', text: 'Ano' },\n { value: 'multi-year', text: 'Décadas' },\n ] },\n { name: 'startAt', label: 'Abrir em', editorType: 'date', group: 'Formato/Comportamento' },\n { name: 'touchUi', label: 'Touch UI', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n\n // Material Design\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Material Design', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ] },\n { name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Material Design', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ] },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n { name: 'errorStateMatcher', label: 'Estratégia de erro', editorType: 'select', group: 'Material Design', options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ] },\n\n // Acessibilidade\n { name: 'startAriaLabel', label: 'ARIA (início)', editorType: 'text', group: 'Acessibilidade' },\n { name: 'endAriaLabel', label: 'ARIA (fim)', editorType: 'text', group: 'Acessibilidade' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const datetimeLocalProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (YYYY-MM-DDTHH:mm)', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:schedule). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínimo (YYYY-MM-DDTHH:mm)', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n { name: 'max', label: 'Máximo (YYYY-MM-DDTHH:mm)', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.minMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação' },\n\n // Formato/Comportamento\n { name: 'step', label: 'Step (segundos)', editorType: 'number', group: 'Formato/Comportamento' },\n { name: 'inputMode', label: 'Modo de entrada (mobile)', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'text', text: 'Texto' },\n { value: 'numeric', text: 'Numérico' },\n { value: 'decimal', text: 'Decimal' },\n { value: 'tel', text: 'Telefone' },\n { value: 'email', text: 'Email' },\n { value: 'url', text: 'URL' },\n { value: 'search', text: 'Busca' },\n ] },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n\n // Material Design\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Material Design', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ] },\n { name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Material Design', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ] },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n { name: 'errorStateMatcher', label: 'Estratégia de erro', editorType: 'select', group: 'Material Design', options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ] },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade' },\n\n // Ações: Não expõe Clear (componente não implementa botão de limpar)\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\n// Native <input type=\"date\"> editor properties\nexport const dateInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (YYYY-MM-DD)', editorType: 'date', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:event). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínima (YYYY-MM-DD)', editorType: 'date', group: 'Validação', row: 'val.minmax' },\n { name: 'max', label: 'Máxima (YYYY-MM-DD)', editorType: 'date', group: 'Validação', row: 'val.minmax' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Formato/Comportamento\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n\n // Material Design\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Material Design', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ] },\n { name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Material Design', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ] },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n { name: 'errorStateMatcher', label: 'Estratégia de erro', editorType: 'select', group: 'Material Design', options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ] },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade' },\n\n // Ações: Não expõe Clear (componente não implementa botão de limpar)\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const timeInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (HH:mm)', editorType: 'text', group: 'Geral', hint: 'Ex.: 08:30' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:schedule). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínimo (HH:mm)', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n { name: 'max', label: 'Máximo (HH:mm)', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Formato/Comportamento\n { name: 'step', label: 'Step (segundos)', editorType: 'number', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'inputMode', label: 'Modo de entrada', editorType: 'text', group: 'Formato/Comportamento' },\n\n // Material Design\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Material Design', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ] },\n { name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Material Design', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ] },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n { name: 'errorStateMatcher', label: 'Estratégia de erro', editorType: 'select', group: 'Material Design', options: [\n { value: 'default', text: 'Padrão' },\n { value: 'showOnDirtyAndInvalid', text: 'Mostrar ao sujar e inválido' },\n { value: 'showOnSubmitted', text: 'Mostrar ao enviar' },\n { value: 'showImmediately', text: 'Mostrar imediatamente' },\n ] },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const timePickerProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (exibição)', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: 'Material Symbols (ex.: mi:...). Use o seletor ao lado para buscar.' },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: 'Material Symbols (ex.: mi:...). Use o seletor ao lado para buscar.' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínimo (HH:mm[:ss])', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n { name: 'max', label: 'Máximo (HH:mm[:ss])', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Comportamento\n { name: 'interval', label: 'Intervalo (segundos ou 30m)', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'timeOptions', label: 'Opções (uma por linha)', editorType: 'textarea', group: 'Formato/Comportamento' },\n { name: 'openOnClick', label: 'Abrir ao clicar', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'touchUi', label: 'Touch UI', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.inline1', inline: true },\n { name: 'format', label: 'Formato', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: '24h', text: '24 horas' },\n { value: '12h', text: '12 horas' },\n ] },\n { name: 'showSeconds', label: 'Exibir segundos', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'stepMinute', label: 'Passo (min)', editorType: 'number', group: 'Formato/Comportamento', row: 'fmt.steps', inline: true },\n { name: 'stepSecond', label: 'Passo (seg)', editorType: 'number', group: 'Formato/Comportamento', row: 'fmt.steps', inline: true },\n { name: 'timeFilter', label: 'Filtro (id função)', editorType: 'text', group: 'Formato/Comportamento' },\n\n // Material/A11y/Ações básicas\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const timeRangeProperties: EditorProperty[] = [\n // Geral (defaultValue como objeto start/end)\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue.start', label: 'Início (HH:mm)', editorType: 'text', group: 'Geral', row: 'geral.range', inline: true },\n { name: 'defaultValue.end', label: 'Fim (HH:mm)', editorType: 'text', group: 'Geral', row: 'geral.range', inline: true },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: 'Material Symbols (ex.: mi:...). Use o seletor ao lado para buscar.' },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: 'Material Symbols (ex.: mi:...). Use o seletor ao lado para buscar.' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Min (HH:mm)', editorType: 'text', group: 'Validação', row: 'val.minmax', inline: true },\n { name: 'max', label: 'Max (HH:mm)', editorType: 'text', group: 'Validação', row: 'val.minmax', inline: true },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Comportamento\n { name: 'step', label: 'Step (segundos)', editorType: 'number', group: 'Formato/Comportamento' },\n { name: 'touchUi', label: 'Touch UI', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Material/A11y\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const monthInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (YYYY-MM)', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:calendar_view_month). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: 'Material Symbols (ex.: mi:...). Use o seletor ao lado para buscar.' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínimo (YYYY-MM)', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n { name: 'max', label: 'Máximo (YYYY-MM)', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n\n // Material/A11y/Ações\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const weekInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (YYYY-Www)', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:date_range). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: 'Material Symbols (ex.: mi:...). Use o seletor ao lado para buscar.' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínimo (YYYY-Www)', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n { name: 'max', label: 'Máximo (YYYY-Www)', editorType: 'text', group: 'Validação', row: 'val.minmax' },\n\n // Material/A11y\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const emailInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:mail). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'minLength', label: 'Mín. caracteres', editorType: 'number', group: 'Validação', row: 'val.len', inline: true },\n { name: 'maxLength', label: 'Máx. caracteres', editorType: 'number', group: 'Validação', row: 'val.len', inline: true },\n { name: 'pattern', label: 'Regex', editorType: 'text', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.minLengthMessage', label: 'Mensagem: minLength', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxLengthMessage', label: 'Mensagem: maxLength', editorType: 'text', group: 'Validação' },\n { name: 'validators.patternMessage', label: 'Mensagem: regex', editorType: 'text', group: 'Validação' },\n\n // Comportamento\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'spellcheck', label: 'Verificação ortográfica', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'inputMode', label: 'Modo de entrada', editorType: 'text', group: 'Formato/Comportamento' },\n\n // Material/A11y/Ações\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const passwordInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:lock). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'minLength', label: 'Mín. caracteres', editorType: 'number', group: 'Validação', row: 'val.len', inline: true },\n { name: 'maxLength', label: 'Máx. caracteres', editorType: 'number', group: 'Validação', row: 'val.len', inline: true },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.minLengthMessage', label: 'Mensagem: minLength', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxLengthMessage', label: 'Mensagem: maxLength', editorType: 'text', group: 'Validação' },\n\n // Comportamento\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Material/A11y\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const urlInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (URL)', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:link). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'pattern', label: 'Regex', editorType: 'text', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.patternMessage', label: 'Mensagem: regex', editorType: 'text', group: 'Validação' },\n\n // Comportamento\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'spellcheck', label: 'Verificação ortográfica', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const searchInputProperties: EditorProperty[] = [\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:search). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const phoneInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:call). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Comportamento\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'spellcheck', label: 'Verificação ortográfica', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'inputMode', label: 'Modo de entrada', editorType: 'text', group: 'Formato/Comportamento' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const colorInputProperties: EditorProperty[] = [\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (#RRGGBB)', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:palette). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Palette / Preview\n { name: 'palettePreset', label: 'Paleta (preset)', editorType: 'select', group: 'Palette', options: [\n { value: 'material', text: 'Material' },\n { value: 'office', text: 'Office' },\n { value: 'basic', text: 'Básico' },\n ] },\n { name: 'paletteColors', label: 'Paleta: cores (JSON ou linhas)', editorType: 'textarea', group: 'Palette', hint: \"JSON array ou uma cor por linha (#hex ou rgba/hsl)\" },\n { name: 'columns', label: 'Paleta: colunas', editorType: 'number', group: 'Palette', defaultValue: 8 },\n { name: 'popupWidth', label: 'Popup width (px ou CSS)', editorType: 'text', group: 'Preview/Popup', defaultValue: '320' },\n { name: 'preview', label: 'Mostrar preview', editorType: 'checkbox', group: 'Preview/Popup' },\n { name: 'showRecent', label: 'Mostrar recentes', editorType: 'checkbox', group: 'Preview/Popup' },\n { name: 'maxRecent', label: 'Qtd. de recentes', editorType: 'number', group: 'Preview/Popup', defaultValue: 12 },\n { name: 'showNativeOption', label: 'Mostrar seletor nativo', editorType: 'checkbox', group: 'Preview/Popup' },\n\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Material Design', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ] },\n { name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Material Design', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ] },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\n// ColorPicker v2 property editor (pdx-color-picker)\nexport const colorPickerProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral', hint: '#rrggbb, rgba(), ...' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Geral' },\n\n // Formato/Comportamento\n {\n name: 'format',\n label: 'Formato de saída',\n editorType: 'select',\n group: 'Formato/Comportamento',\n defaultValue: 'rgba',\n options: [\n { value: 'hex', text: 'HEX' },\n { value: 'rgb', text: 'RGB' },\n { value: 'rgba', text: 'RGBA' },\n { value: 'hsl', text: 'HSL' },\n ],\n },\n\n // Views e Preview\n {\n name: 'views',\n label: \"Views (JSON: ['gradient','palette'])\",\n editorType: 'textarea',\n group: 'Views/Preview',\n hint: \"JSON array. Ex.: ['gradient','palette']\",\n defaultValue: \"['gradient','palette']\",\n },\n {\n name: 'activeView',\n label: 'View ativa',\n editorType: 'select',\n group: 'Views/Preview',\n options: [\n { value: 'gradient', text: 'Gradient' },\n { value: 'palette', text: 'Palette' },\n ],\n },\n { name: 'preview', label: 'Mostrar preview (pane)', editorType: 'checkbox', group: 'Views/Preview' },\n { name: 'clearButton', label: 'Botão Clear', editorType: 'checkbox', group: 'Views/Preview' },\n {\n name: 'actionsLayout',\n label: 'Ações (layout)',\n editorType: 'select',\n group: 'Views/Preview',\n defaultValue: 'end',\n options: [\n { value: 'start', text: 'Início' },\n { value: 'end', text: 'Fim' },\n ],\n },\n\n // Adaptive e Popup\n { name: 'adaptiveMode', label: 'Adaptive (BottomSheet/Drawer)', editorType: 'checkbox', group: 'Adaptive/Popup' },\n { name: 'adaptiveTitle', label: 'Adaptive title', editorType: 'text', group: 'Adaptive/Popup' },\n { name: 'adaptiveSubtitle', label: 'Adaptive subtitle', editorType: 'text', group: 'Adaptive/Popup' },\n { name: 'popupSettings.width', label: 'Popup width (px ou CSS)', editorType: 'text', group: 'Adaptive/Popup', defaultValue: '340' },\n\n // Gradient\n { name: 'gradientSettings.showOpacity', label: 'Gradiente: transparência (alpha)', editorType: 'checkbox', group: 'Gradient' },\n {\n name: 'gradientSettings.channel',\n label: 'Gradiente: canal',\n editorType: 'select',\n group: 'Gradient',\n defaultValue: 'hsv',\n options: [\n { value: 'hsv', text: 'HSV' },\n { value: 'hsl', text: 'HSL' },\n ],\n },\n\n // Palette\n {\n name: 'paletteSettings.preset',\n label: 'Palette: preset',\n editorType: 'select',\n group: 'Palette',\n defaultValue: 'material',\n options: [\n { value: 'material', text: 'Material' },\n { value: 'office', text: 'Office' },\n { value: 'basic', text: 'Básico' },\n ],\n },\n {\n name: 'paletteSettings.colors',\n label: 'Palette: cores (JSON ou linhas)',\n editorType: 'textarea',\n group: 'Palette',\n hint: \"JSON array ou uma cor por linha (#hex ou rgba/hsl)\",\n },\n { name: 'paletteSettings.columns', label: 'Palette: colunas', editorType: 'number', group: 'Palette', defaultValue: 8 },\n\n // Tema/Estilo\n {\n name: 'fillMode',\n label: 'Fill mode',\n editorType: 'select',\n group: 'Theming',\n defaultValue: 'solid',\n options: [\n { value: 'solid', text: 'Solid' },\n { value: 'flat', text: 'Flat' },\n { value: 'outline', text: 'Outline' },\n ],\n },\n {\n name: 'rounded',\n label: 'Rounded',\n editorType: 'select',\n group: 'Theming',\n defaultValue: 'medium',\n options: [\n { value: 'none', text: 'None' },\n { value: 'small', text: 'Small' },\n { value: 'medium', text: 'Medium' },\n { value: 'large', text: 'Large' },\n { value: 'full', text: 'Full' },\n ],\n },\n {\n name: 'size',\n label: 'Size',\n editorType: 'select',\n group: 'Theming',\n defaultValue: 'medium',\n options: [\n { value: 'small', text: 'Small' },\n { value: 'medium', text: 'Medium' },\n { value: 'large', text: 'Large' },\n ],\n },\n { name: 'icon', label: 'Ícone', editorType: 'text', group: 'Theming', hint: \"Material Symbols (ex.: mi:palette). Use o seletor ao lado para buscar.\" },\n { name: 'svgIcon', label: 'SVG icon', editorType: 'text', group: 'Theming' },\n { name: 'iconClass', label: 'Icon class (JSON/string)', editorType: 'textarea', group: 'Theming', hint: 'string | string[] | Record<string, boolean>' },\n\n // Acessibilidade/Comportamento\n { name: 'tabindex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const ratingProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n\n { name: 'max', label: 'Quantidade de itens', editorType: 'number', group: 'Formato/Comportamento', hint: 'Ex.: 5' },\n { name: 'allowHalf', label: 'Permitir meio ícone', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'selection', label: 'Modo de seleção', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'continuous', text: 'Contínuo' },\n { value: 'single', text: 'Único' },\n ] },\n { name: 'size', label: 'Tamanho', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'small', text: 'Pequeno' },\n { value: 'medium', text: 'Médio' },\n { value: 'large', text: 'Grande' },\n ] },\n { name: 'icon', label: 'Ícone preenchido', editorType: 'text', group: 'Formato/Comportamento', hint: 'Material Symbols (ex.: mi:star). Use o seletor ao lado para buscar.' },\n { name: 'emptyIcon', label: 'Ícone vazio', editorType: 'text', group: 'Formato/Comportamento', hint: 'Material Symbols (ex.: mi:star_border). Use o seletor ao lado para buscar.' },\n { name: 'svgIcon', label: 'SVG (preenchido)', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'svgIconOutline', label: 'SVG (vazio)', editorType: 'text', group: 'Formato/Comportamento' },\n\n // Cores/Comportamento\n { name: 'ratingColor', label: 'Cor do preenchimento', editorType: 'color', group: 'Formato/Comportamento', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'outlineColor', label: 'Cor do contorno', editorType: 'color', group: 'Formato/Comportamento', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const chipInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n\n // Dados/Opções\n { name: 'options', label: 'Opções (JSON ou linhas valor|rótulo)', editorType: 'textarea', group: 'Dados/Opções' },\n { name: 'resourcePath', label: 'Resource Path (remoto)', editorType: 'text', group: 'Dados/Opções', row: 'dados.remoto', inline: true },\n { name: 'filterCriteria', label: 'Critérios de filtro (JSON)', editorType: 'textarea', group: 'Dados/Opções', hint: '{ \"active\": true }' },\n { name: 'optionLabelKey', label: 'Chave do rótulo (remoto)', editorType: 'text', group: 'Dados/Opções', row: 'dados.keys', inline: true },\n { name: 'optionValueKey', label: 'Chave do valor (remoto)', editorType: 'text', group: 'Dados/Opções', row: 'dados.keys', inline: true },\n\n // Formato/Comportamento\n { name: 'maxSelections', label: 'Máx. seleções', editorType: 'number', group: 'Formato/Comportamento' },\n { name: 'removable', label: 'Removível', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.flags', inline: true },\n { name: 'addOnBlur', label: 'Adicionar ao sair', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'comp.flags', inline: true },\n { name: 'searchable', label: 'Pesquisável', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'minLength', label: 'Mín. caracteres busca', editorType: 'number', group: 'Formato/Comportamento', row: 'comp.search', inline: true },\n { name: 'validationDebounce', label: 'Debounce busca (ms)', editorType: 'number', group: 'Formato/Comportamento', row: 'comp.search', inline: true },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Material Design\n {\n name: 'materialDesign.appearance',\n label: 'Aparência',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ],\n },\n {\n name: 'materialDesign.color',\n label: 'Cor do tema',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ],\n },\n {\n name: 'materialDesign.floatLabel',\n label: 'Comportamento do label',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ],\n },\n {\n name: 'materialDesign.subscriptSizing',\n label: 'Subscript sizing',\n editorType: 'select',\n group: 'Material Design',\n options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ],\n },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'tabIndex', label: 'TabIndex', editorType: 'number', group: 'Acessibilidade' },\n { name: 'dataAttributes', label: 'Data attributes (JSON)', editorType: 'textarea', group: 'Acessibilidade', hint: '{ \"testId\": \"chips-a\" }' },\n\n // Ações (Clear)\n { name: 'clearButton.enabled', label: 'Clear: habilitar', editorType: 'checkbox', group: 'Ações' },\n { name: 'clearButton.icon', label: 'Clear: ícone', editorType: 'text', group: 'Ações', hint: \"Material Symbols (ex.: mi:clear). Use o seletor ao lado para buscar.\" },\n { name: 'clearButton.iconColor', label: 'Clear: cor do ícone', editorType: 'color', group: 'Ações', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'clearButton.tooltip', label: 'Clear: tooltip', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.ariaLabel', label: 'Clear: aria-label', editorType: 'text', group: 'Ações' },\n { name: 'clearButton.showOnlyWhenFilled', label: 'Clear: só quando preenchido', editorType: 'checkbox', group: 'Ações' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const checkboxGroupProperties: EditorProperty[] = [\n // Dados/Opções\n { name: 'options', label: 'Opções (JSON ou linhas valor|rótulo)', editorType: 'textarea', group: 'Dados/Opções' },\n { name: 'resourcePath', label: 'Recurso (remoto)', editorType: 'text', group: 'Dados/Opções', row: 'dados.remoto', inline: true },\n { name: 'filterCriteria', label: 'Filtro (JSON)', editorType: 'textarea', group: 'Dados/Opções' },\n { name: 'optionLabelKey', label: 'Chave rótulo', editorType: 'text', group: 'Dados/Opções', row: 'dados.keys', inline: true },\n { name: 'optionValueKey', label: 'Chave valor', editorType: 'text', group: 'Dados/Opções', row: 'dados.keys', inline: true },\n\n // Formato/Comportamento\n { name: 'searchable', label: 'Pesquisável', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'selectAll', label: 'Selecionar todos', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'maxSelections', label: 'Máx. seleções', editorType: 'number', group: 'Formato/Comportamento' },\n { name: 'layout', label: 'Layout', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'horizontal', text: 'Horizontal' },\n { value: 'vertical', text: 'Vertical' },\n ] },\n { name: 'labelPosition', label: 'Posição do label', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'before', text: 'Antes' },\n { value: 'after', text: 'Depois' },\n ] },\n { name: 'color', label: 'Cor', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'indeterminate', label: 'Indeterminado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'linkText', label: 'Texto do link', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'linkUrl', label: 'URL do link', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'linkTarget', label: 'Alvo do link', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: '_self', text: 'Mesma janela' },\n { value: '_blank', text: 'Nova janela' },\n ] },\n\n // Geral/Validação\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const toggleProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (boolean)', editorType: 'checkbox', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n\n // Material Design\n { name: 'color', label: 'Cor', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n\n // Formato/Comportamento\n { name: 'labelPosition', label: 'Posição do label', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'before', text: 'Antes' },\n { value: 'after', text: 'Depois' },\n ] },\n { name: 'hideIcon', label: 'Ocultar ícone', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disableRipple', label: 'Desabilitar ripple', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Validação\n { name: 'requiredTrue', label: 'Exigir verdadeiro', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredTrueMessage', label: 'Mensagem: exigir verdadeiro', editorType: 'text', group: 'Validação' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const sliderProperties: EditorProperty[] = [\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'min', label: 'Mínimo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true },\n { name: 'max', label: 'Máximo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true },\n { name: 'validators.minMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação' },\n { name: 'step', label: 'Step', editorType: 'number', group: 'Formato/Comportamento' },\n { name: 'thumbLabel', label: 'Thumb label', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'vertical', label: 'Vertical', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.flags', inline: true },\n { name: 'showTicks', label: 'Ticks', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: false, text: 'Sem ticks' },\n { value: true, text: 'Com ticks' },\n { value: 'auto', text: 'Auto' },\n ] },\n { name: 'discrete', label: 'Discreto', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'invert', label: 'Inverter', editorType: 'checkbox', group: 'Formato/Comportamento', row: 'fmt.flags', inline: true },\n { name: 'color', label: 'Cor', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const rangeSliderProperties: EditorProperty[] = [\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'mode', label: 'Modo', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'single', text: 'Único' },\n { value: 'range', text: 'Faixa' },\n ] },\n { name: 'min', label: 'Mínimo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true },\n { name: 'max', label: 'Máximo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true },\n { name: 'validators.minMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação' },\n { name: 'step', label: 'Step', editorType: 'number', group: 'Formato/Comportamento' },\n { name: 'thumbLabel', label: 'Thumb label', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'showTicks', label: 'Ticks', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: false, text: 'Sem ticks' },\n { value: true, text: 'Com ticks' },\n { value: 'auto', text: 'Auto' },\n ] },\n { name: 'discrete', label: 'Discreto', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'vertical', label: 'Vertical', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'invert', label: 'Inverter', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'minDistance', label: 'Distância mínima', editorType: 'number', group: 'Validação', row: 'val.distance', inline: true },\n { name: 'maxDistance', label: 'Distância máxima', editorType: 'number', group: 'Validação', row: 'val.distance', inline: true },\n { name: 'validators.rangeMessage', label: 'Mensagem: ordem do range', editorType: 'text', group: 'Validação' },\n { name: 'validators.distanceMessage', label: 'Mensagem: distância', editorType: 'text', group: 'Validação' },\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'displayWith', label: 'DisplayWith (id função)', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'showInputs', label: 'Mostrar inputs', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'color', label: 'Cor', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const currencyInputProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'number', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: 'Material Symbols (ex.: mi:...). Use o seletor ao lado para buscar.' },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: 'Material Symbols (ex.: mi:...). Use o seletor ao lado para buscar.' },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'min', label: 'Mínimo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true },\n { name: 'max', label: 'Máximo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.minMessage', label: 'Mensagem: mínimo', editorType: 'text', group: 'Validação' },\n { name: 'validators.maxMessage', label: 'Mensagem: máximo', editorType: 'text', group: 'Validação' },\n\n // Formato/Comportamento\n { name: 'numberFormat.currency', label: 'Moeda', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'numberFormat.currencyPosition', label: 'Posição moeda', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'before', text: 'Antes' },\n { value: 'after', text: 'Depois' },\n ] },\n { name: 'numberFormat.decimalPlaces', label: 'Casas decimais', editorType: 'number', group: 'Formato/Comportamento' },\n { name: 'numberFormat.locale', label: 'Locale', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'showGrouping', label: 'Agrupar milhares', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Material/A11y/Ações\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n // Sem Clear: componente não implementa botão de limpar\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const cpfCnpjProperties: EditorProperty[] = [\n // Geral\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão', editorType: 'text', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:badge). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'prefix', label: 'Texto (prefixo)', editorType: 'text', group: 'Geral' },\n { name: 'suffix', label: 'Texto (sufixo)', editorType: 'text', group: 'Geral' },\n\n // Validação\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n { name: 'validators.patternMessage', label: 'Mensagem: formato inválido', editorType: 'text', group: 'Validação' },\n\n // Formato/Comportamento\n { name: 'documentType', label: 'Tipo de documento', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'cpf', text: 'CPF' },\n { value: 'cnpj', text: 'CNPJ' },\n ] },\n { name: 'version', label: 'Versão (parsing)', editorType: 'select', group: 'Formato/Comportamento', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'legacy', text: 'Legacy (numérico)' },\n { value: 'alpha', text: 'Alpha (alfa-numérico para CNPJ)' },\n ] },\n { name: 'allowFormattedInput', label: 'Permitir entrada formatada', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'unmaskOnSubmit', label: 'Enviar sem máscara (modelo)', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autocomplete', label: 'Autocomplete', editorType: 'text', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n\n // Material Design\n { name: 'materialDesign.appearance', label: 'Aparência', editorType: 'select', group: 'Material Design', options: [\n { value: 'fill', text: 'Fill' },\n { value: 'outline', text: 'Outline' },\n ] },\n { name: 'materialDesign.color', label: 'Cor do tema', editorType: 'select', group: 'Material Design', options: [\n { value: 'primary', text: 'Primária' },\n { value: 'accent', text: 'Acento' },\n { value: 'warn', text: 'Alerta' },\n ] },\n { name: 'materialDesign.floatLabel', label: 'Comportamento do label', editorType: 'select', group: 'Material Design', options: [\n { value: 'auto', text: 'Auto' },\n { value: 'always', text: 'Sempre' },\n ] },\n { name: 'materialDesign.subscriptSizing', label: 'Subscript sizing', editorType: 'select', group: 'Material Design', options: [\n { value: 'fixed', text: 'Fixo' },\n { value: 'dynamic', text: 'Dinâmico' },\n ] },\n { name: 'materialDesign.hideRequiredMarker', label: 'Ocultar * obrigatório', editorType: 'checkbox', group: 'Material Design' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const fileUploadProperties: EditorProperty[] = [\n // Dados/Opções\n { name: 'accept', label: 'Tipos aceitos (mimes/ext.)', editorType: 'text', group: 'Dados/Opções' },\n { name: 'multiple', label: 'Múltiplos arquivos', editorType: 'checkbox', group: 'Dados/Opções' },\n { name: 'maxSizeMB', label: 'Tamanho máx (MB)', editorType: 'number', group: 'Dados/Opções' },\n { name: 'resourcePath', label: 'Recurso', editorType: 'text', group: 'Dados/Opções' },\n { name: 'uploadUrl', label: 'Upload URL', editorType: 'text', group: 'Dados/Opções' },\n { name: 'filterCriteria', label: 'Filtro (JSON)', editorType: 'textarea', group: 'Dados/Opções' },\n\n // Geral/Validação\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'validators.requiredMessage', label: 'Mensagem: obrigatório', editorType: 'text', group: 'Validação' },\n\n // Acessibilidade\n { name: 'ariaLabel', label: 'ARIA label', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaDescribedby', label: 'ARIA describedby', editorType: 'text', group: 'Acessibilidade' },\n { name: 'ariaLabelledby', label: 'ARIA labelledby', editorType: 'text', group: 'Acessibilidade' },\n];\n","import type { EditorProperty } from '../types/editor-property.types';\n\nexport const yearInputProperties: EditorProperty[] = [\n { name: 'label', label: 'Label', editorType: 'text', group: 'Geral' },\n { name: 'defaultValue', label: 'Valor padrão (YYYY)', editorType: 'number', group: 'Geral' },\n { name: 'placeholder', label: 'Placeholder', editorType: 'text', group: 'Geral' },\n { name: 'hint', label: 'Hint', editorType: 'text', group: 'Geral' },\n { name: 'prefixIcon', label: 'Ícone (prefixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:calendar_month). Use o seletor ao lado para buscar.\" },\n { name: 'prefixIconColor', label: 'Cor do ícone (prefixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n { name: 'suffixIcon', label: 'Ícone (sufixo)', editorType: 'text', group: 'Geral', hint: \"Material Symbols (ex.: mi:info). Use o seletor ao lado para buscar.\" },\n { name: 'suffixIconColor', label: 'Cor do ícone (sufixo)', editorType: 'color', group: 'Geral', hint: 'primary/accent/warn ou cor CSS (ex.: #496ddb, rgb(73,109,219), red)' },\n\n // Validação/Comportamento\n { name: 'required', label: 'Obrigatório', editorType: 'checkbox', group: 'Validação' },\n { name: 'minYear', label: 'Ano mínimo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true },\n { name: 'maxYear', label: 'Ano máximo', editorType: 'number', group: 'Validação', row: 'val.minmax', inline: true },\n { name: 'step', label: 'Step', editorType: 'number', group: 'Formato/Comportamento' },\n { name: 'readonly', label: 'Somente leitura', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'disabled', label: 'Desabilitado', editorType: 'checkbox', group: 'Formato/Comportamento' },\n { name: 'autoFocus', label: 'Focar automaticamente', editorType: 'checkbox', group: 'Formato/Comportamento' },\n];\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\n\n/** Garante que minLength <= maxLength quando ambos definidos. */\nexport function minLenLeMaxLen(group: AbstractControl): ValidationErrors | null {\n const v = group.value || {};\n const min = v?.minLength;\n const max = v?.maxLength;\n if (min != null && max != null && Number(min) > Number(max)) {\n return { minLengthGtMaxLength: true };\n }\n return null;\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output, inject } from '@angular/core';\nimport { ReactiveFormsModule, FormGroup } from '@angular/forms';\nimport type { FieldControlType, FieldDefinition } from '@praxisui/core';\nimport { ConfigRegistryService } from '../../registry/config-registry.service';\nimport { SchemaNormalizerService } from '../../services/schema-normalizer.service';\nimport { DynamicFormFactoryService } from '../../services/dynamic-form-factory.service';\nimport { DynamicEditorRendererComponent } from '../dynamic-editor-renderer/dynamic-editor-renderer.component';\nimport { FieldControlType as FCT } from '@praxisui/core';\nimport { inputProperties } from '../../config/input.config';\nimport { selectProperties } from '../../config/select.config';\nimport { transferListProperties } from '../../config/transfer-list.config';\nimport { radioProperties } from '../../config/radio.config';\nimport { buttonToggleProperties } from '../../config/button-toggle.config';\nimport { treeSelectProperties } from '../../config/tree-select.config';\nimport { textareaProperties } from '../../config/textarea.config';\nimport { numberProperties } from '../../config/number.config';\nimport { dateProperties } from '../../config/date.config';\nimport { dateRangeProperties } from '../../config/date-range.config';\nimport { datetimeLocalProperties } from '../../config/datetime-local.config';\nimport { dateInputProperties } from '../../config/date-input.config';\nimport { timeInputProperties } from '../../config/time-input.config';\nimport { timePickerProperties } from '../../config/time-picker.config';\nimport { timeRangeProperties } from '../../config/time-range.config';\nimport { monthInputProperties } from '../../config/month.config';\nimport { weekInputProperties } from '../../config/week.config';\nimport { emailInputProperties } from '../../config/email.config';\nimport { passwordInputProperties } from '../../config/password.config';\nimport { urlInputProperties } from '../../config/url.config';\nimport { searchInputProperties } from '../../config/search.config';\nimport { phoneInputProperties } from '../../config/phone.config';\nimport { colorInputProperties } from '../../config/color.config';\nimport { colorPickerProperties } from '../../config/color-picker.config';\nimport { ratingProperties } from '../../config/rating.config';\nimport { chipInputProperties } from '../../config/chip-input.config';\nimport { checkboxGroupProperties } from '../../config/checkbox-group.config';\nimport { toggleProperties } from '../../config/toggle.config';\nimport { sliderProperties } from '../../config/slider.config';\nimport { rangeSliderProperties } from '../../config/range-slider.config';\nimport { currencyInputProperties } from '../../config/currency.config';\nimport { cpfCnpjProperties } from '../../config/cpf-cnpj.config';\nimport { fileUploadProperties } from '../../config/file-upload.config';\nimport { yearInputProperties } from '../../config/year.config';\nimport { SETTINGS_PANEL_DATA } from '@praxisui/settings-panel';\nimport { BehaviorSubject } from 'rxjs';\nimport { ContextValidatorRegistryService } from '../../registry/context-validator-registry.service';\nimport { minLenLeMaxLen } from '../../validators/context-validators';\n\n@Component({\n selector: 'praxis-field-metadata-editor',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, DynamicEditorRendererComponent],\n template: `\n <div class=\"p-3\" *ngIf=\"form\">\n <praxis-dynamic-editor-renderer\n [properties]=\"normalizedProps\"\n [form]=\"form\"\n ></praxis-dynamic-editor-renderer>\n </div>\n `,\n})\nexport class FieldMetadataEditorComponent implements OnInit {\n @Input() controlType!: FieldControlType;\n @Input() seed?: Partial<FieldDefinition>;\n @Output() applied = new EventEmitter<Partial<FieldDefinition>>();\n @Output() cancel = new EventEmitter<void>();\n\n form!: FormGroup;\n normalizedProps: any[] = [];\n private initialSnapshot: any | null = null;\n private baselineReady = false;\n // Lista de tipos suportados no editor (curada para os tipos com config disponível)\n typeOptions: Array<{ value: FieldControlType; label: string }> = [\n { value: (FCT as any).INPUT, label: 'Texto (Input)' },\n { value: (FCT as any).TEXTAREA, label: 'Texto longo (Textarea)' },\n { value: (FCT as any).NUMERIC_TEXT_BOX, label: 'Número' },\n { value: (FCT as any).CURRENCY_INPUT, label: 'Moeda' },\n { value: (FCT as any).EMAIL_INPUT, label: 'E-mail' },\n { value: (FCT as any).PASSWORD, label: 'Senha' },\n { value: (FCT as any).URL_INPUT, label: 'URL' },\n { value: (FCT as any).SEARCH_INPUT, label: 'Busca' },\n { value: (FCT as any).PHONE, label: 'Telefone' },\n { value: (FCT as any).SELECT, label: 'Seleção (Select)' },\n { value: (FCT as any).MULTI_SELECT, label: 'Seleção múltipla' },\n { value: (FCT as any).AUTO_COMPLETE, label: 'Auto-completar' },\n { value: (FCT as any).SELECTION_LIST, label: 'Lista de seleção' },\n { value: (FCT as any).TREE_SELECT, label: 'Árvore (Tree Select)' },\n { value: (FCT as any).MULTI_SELECT_TREE, label: 'Árvore múltipla' },\n { value: (FCT as any).RADIO, label: 'Opções (Radio)' },\n { value: (FCT as any).BUTTON_TOGGLE, label: 'Alternador (Button Toggle)' },\n { value: (FCT as any).CHECKBOX, label: 'Caixa de seleção' },\n { value: (FCT as any).TOGGLE, label: 'Liga/Desliga (Toggle)' },\n { value: (FCT as any).SLIDER, label: 'Slider' },\n { value: (FCT as any).RANGE_SLIDER, label: 'Slider (intervalo)' },\n { value: (FCT as any).DATE_INPUT, label: 'Data (Input)' },\n { value: (FCT as any).DATE_RANGE, label: 'Intervalo de data' },\n { value: (FCT as any).DATETIME_LOCAL_INPUT, label: 'Data e Hora (local)' },\n { value: (FCT as any).TIME_INPUT, label: 'Hora (Input)' },\n { value: (FCT as any).TIME_PICKER, label: 'Hora (Picker)' },\n { value: (FCT as any).TIME_RANGE, label: 'Intervalo de hora' },\n { value: (FCT as any).MONTH_INPUT, label: 'Mês' },\n { value: (FCT as any).WEEK_INPUT, label: 'Semana' },\n { value: (FCT as any).YEAR_INPUT, label: 'Ano' },\n { value: (FCT as any).COLOR_INPUT, label: 'Cor (Input)' },\n { value: (FCT as any).COLOR_PICKER, label: 'Cor (Picker)' },\n { value: (FCT as any).RATING, label: 'Avaliação (Rating)' },\n { value: (FCT as any).CHIP_INPUT, label: 'Chips' },\n { value: (FCT as any).TRANSFER_LIST, label: 'Transferência de itens' },\n { value: (FCT as any).CPF_CNPJ_INPUT, label: 'CPF/CNPJ' },\n { value: (FCT as any).FILE_UPLOAD, label: 'Upload de Arquivo' },\n ];\n\n // Settings Panel integration (contract: isDirty$, isValid$, isBusy$)\n isDirty$ = new BehaviorSubject<boolean>(false);\n isValid$ = new BehaviorSubject<boolean>(true);\n isBusy$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private registry: ConfigRegistryService,\n private normalizer: SchemaNormalizerService,\n private factory: DynamicFormFactoryService,\n private ctxValidators: ContextValidatorRegistryService,\n ) {\n // Support SETTINGS_PANEL_DATA injection as input fallback\n const data = inject(SETTINGS_PANEL_DATA, { optional: true }) as\n | { controlType?: FieldControlType; seed?: Partial<FieldDefinition>; hostBridge?: { applyPatch?: (p: any) => void } }\n | undefined;\n if (data) {\n if (data.controlType) this.controlType = data.controlType;\n if (data.seed) this.seed = data.seed;\n // Bridge: allow host to receive patches even if saved$/applied$ are missed\n try { (this as any).__hostApplyPatch = data.hostBridge?.applyPatch; } catch {}\n }\n }\n\n ngOnInit(): void {\n try {\n const hasBridge = typeof (this as any).__hostApplyPatch === 'function';\n (console.log || console.debug)('[FieldMetadataEditor] ngOnInit', { controlType: this.controlType, hasHostBridge: hasBridge });\n } catch {}\n this.rebuildEditorForType(this.controlType);\n }\n\n private rebuildEditorForType(ct: FieldControlType): void {\n this.controlType = ct;\n let props = this.registry.getProperties(this.controlType);\n try {\n (console.log || console.debug)('[FieldMetadataEditor] init', {\n controlType: this.controlType,\n seedPreview: {\n resourcePath: (this.seed as any)?.resourcePath,\n optionLabelKey: (this.seed as any)?.optionLabelKey,\n optionValueKey: (this.seed as any)?.optionValueKey,\n filterCriteria:\n typeof (this.seed as any)?.filterCriteria === 'string'\n ? (this.seed as any)?.filterCriteria\n : (this.seed as any)?.filterCriteria != null\n ? JSON.stringify((this.seed as any)?.filterCriteria)\n : undefined,\n },\n propsBefore: props.map((p) => p.name),\n });\n } catch {}\n // Fallback de registro mínimo para facilitar execução inicial\n if (!props.length) {\n if (this.controlType === (FCT as any).INPUT) {\n this.registry.register(this.controlType, inputProperties);\n props = inputProperties;\n } else if (\n // Aliases for select-like\n (this.controlType as any) === 'searchable-select' ||\n (this.controlType as any) === 'async-select'\n ) {\n this.registry.register(this.controlType, selectProperties);\n props = selectProperties;\n } else if (this.controlType === (FCT as any).NUMERIC_TEXT_BOX) {\n this.registry.register(this.controlType, numberProperties);\n props = numberProperties;\n } else if (this.controlType === (FCT as any).DATE_PICKER) {\n this.registry.register(this.controlType, dateProperties);\n props = dateProperties;\n } else if (this.controlType === (FCT as any).DATE_INPUT) {\n this.registry.register(this.controlType, dateInputProperties);\n props = dateInputProperties;\n } else if (this.controlType === (FCT as any).DATE_RANGE) {\n this.registry.register(this.controlType, dateRangeProperties);\n props = dateRangeProperties;\n } else if (this.controlType === (FCT as any).DATETIME_LOCAL_INPUT) {\n this.registry.register(this.controlType, datetimeLocalProperties);\n props = datetimeLocalProperties;\n } else if (this.controlType === (FCT as any).TIME_INPUT) {\n this.registry.register(this.controlType, timeInputProperties);\n props = timeInputProperties;\n } else if (this.controlType === (FCT as any).TIME_PICKER) {\n this.registry.register(this.controlType, timePickerProperties);\n props = timePickerProperties;\n } else if (this.controlType === (FCT as any).TIME_RANGE) {\n this.registry.register(this.controlType, timeRangeProperties);\n props = timeRangeProperties;\n } else if (this.controlType === (FCT as any).MONTH_INPUT) {\n this.registry.register(this.controlType, monthInputProperties);\n props = monthInputProperties;\n } else if (this.controlType === (FCT as any).WEEK_INPUT) {\n this.registry.register(this.controlType, weekInputProperties);\n props = weekInputProperties;\n } else if (this.controlType === (FCT as any).EMAIL_INPUT) {\n this.registry.register(this.controlType, emailInputProperties);\n props = emailInputProperties;\n } else if (this.controlType === (FCT as any).PASSWORD) {\n this.registry.register(this.controlType, passwordInputProperties);\n props = passwordInputProperties;\n } else if (this.controlType === (FCT as any).URL_INPUT) {\n this.registry.register(this.controlType, urlInputProperties);\n props = urlInputProperties;\n } else if (this.controlType === (FCT as any).SEARCH_INPUT) {\n this.registry.register(this.controlType, searchInputProperties);\n props = searchInputProperties;\n } else if (this.controlType === (FCT as any).PHONE) {\n this.registry.register(this.controlType, phoneInputProperties);\n props = phoneInputProperties;\n } else if (this.controlType === (FCT as any).COLOR_INPUT) {\n this.registry.register(this.controlType, colorInputProperties);\n props = colorInputProperties;\n } else if (this.controlType === (FCT as any).COLOR_PICKER) {\n this.registry.register(this.controlType, colorPickerProperties);\n props = colorPickerProperties;\n } else if (this.controlType === (FCT as any).RATING) {\n this.registry.register(this.controlType, ratingProperties);\n props = ratingProperties;\n } else if (\n this.controlType === (FCT as any).SELECT ||\n this.controlType === (FCT as any).MULTI_SELECT ||\n this.controlType === (FCT as any).AUTO_COMPLETE ||\n this.controlType === (FCT as any).SELECTION_LIST\n ) {\n this.registry.register(this.controlType, selectProperties);\n props = selectProperties;\n } else if (this.controlType === (FCT as any).TEXTAREA) {\n this.registry.register(this.controlType, textareaProperties);\n props = textareaProperties;\n } else if (this.controlType === (FCT as any).TRANSFER_LIST) {\n this.registry.register(this.controlType, transferListProperties);\n props = transferListProperties;\n } else if (this.controlType === (FCT as any).RADIO) {\n this.registry.register(this.controlType, radioProperties);\n props = radioProperties;\n } else if (this.controlType === (FCT as any).BUTTON_TOGGLE) {\n this.registry.register(this.controlType, buttonToggleProperties);\n props = buttonToggleProperties;\n } else if (this.controlType === (FCT as any).CHIP_INPUT) {\n this.registry.register(this.controlType, chipInputProperties);\n props = chipInputProperties;\n } else if (this.controlType === (FCT as any).CHECKBOX) {\n this.registry.register(this.controlType, checkboxGroupProperties);\n props = checkboxGroupProperties;\n } else if (this.controlType === (FCT as any).TOGGLE) {\n this.registry.register(this.controlType, toggleProperties);\n props = toggleProperties;\n } else if (this.controlType === (FCT as any).SLIDER) {\n this.registry.register(this.controlType, sliderProperties);\n props = sliderProperties;\n } else if (this.controlType === (FCT as any).RANGE_SLIDER) {\n this.registry.register(this.controlType, rangeSliderProperties);\n props = rangeSliderProperties;\n } else if (this.controlType === (FCT as any).CURRENCY_INPUT) {\n this.registry.register(this.controlType, currencyInputProperties);\n props = currencyInputProperties;\n } else if (this.controlType === (FCT as any).CPF_CNPJ_INPUT) {\n this.registry.register(this.controlType, cpfCnpjProperties);\n props = cpfCnpjProperties;\n } else if (this.controlType === (FCT as any).FILE_UPLOAD) {\n this.registry.register(this.controlType, fileUploadProperties);\n props = fileUploadProperties;\n } else if (this.controlType === (FCT as any).YEAR_INPUT) {\n this.registry.register(this.controlType, yearInputProperties);\n props = yearInputProperties;\n } else if (\n this.controlType === (FCT as any).TREE_SELECT ||\n this.controlType === (FCT as any).MULTI_SELECT_TREE\n ) {\n this.registry.register(this.controlType, treeSelectProperties);\n props = treeSelectProperties;\n }\n }\n try {\n (console.log || console.debug)('[FieldMetadataEditor] props after registry resolution', {\n resolvedProps: props.map((p) => p.name),\n });\n } catch {}\n // Inject controlType selector into 'Geral' group so users can change field type\n try {\n const typeProp = {\n name: 'controlType',\n label: 'Tipo de campo',\n editorType: 'select',\n group: 'Geral',\n // Destaque visual e aviso claro sobre risco\n prefixIcon: 'warning',\n hint:\n '⚠️ Alterar o tipo de campo NÃO altera o tipo de dado na API. ' +\n 'Isso pode causar erro ao salvar se o formato esperado for diferente.',\n options: this.typeOptions.map((o) => ({ value: o.value, text: o.label })),\n defaultValue: this.controlType,\n } as any;\n props = [typeProp, ...props];\n } catch {}\n\n this.normalizedProps = this.normalizer.normalize(props, this.seed);\n try {\n console.debug('[FieldMetadataEditor] normalized props', {\n propNames: this.normalizedProps.map((p: any) => p.name),\n defaults: this.normalizedProps\n .filter((p: any) =>\n ['resourcePath', 'filterCriteria', 'optionLabelKey', 'optionValueKey'].includes(p.name),\n )\n .map((p: any) => ({ name: p.name, defaultValue: p.defaultValue })),\n optionsDefault: (() => {\n const opt = (this.normalizedProps as any[]).find((p) => p.name === 'options');\n if (!opt) return undefined;\n const v: any = opt.defaultValue;\n return {\n type: v == null ? 'null' : typeof v,\n preview: typeof v === 'string' ? String(v).slice(0, 80) : undefined,\n lengthOrCount: Array.isArray(v)\n ? v.length\n : (typeof v === 'string' ? (v as string).length : undefined),\n };\n })(),\n });\n } catch {}\n // Inject default for providerOptions from seed.options when present (radio/editor-friendly name)\n try {\n const hasProviderOptions = this.normalizedProps.some((p: any) => p.name === 'providerOptions');\n const seedOptions = (this.seed as any)?.options;\n if (hasProviderOptions && seedOptions !== undefined) {\n const v = typeof seedOptions === 'string' ? seedOptions : (() => { try { return JSON.stringify(seedOptions, null, 2); } catch { return String(seedOptions); } })();\n this.normalizedProps = this.normalizedProps.map((p: any) =>\n p.name === 'providerOptions' && p.defaultValue === undefined ? { ...p, defaultValue: v } : p,\n );\n (console.log || console.debug)('[FieldMetadataEditor] providerOptions default injected from seed.options', {\n type: typeof seedOptions,\n lengthOrCount: Array.isArray(seedOptions) ? seedOptions.length : (typeof seedOptions === 'string' ? seedOptions.length : undefined),\n });\n }\n } catch {}\n // Register contextual validators for INPUT/TEXTAREA (minLength <= maxLength)\n if (\n this.controlType === (FCT as any).INPUT ||\n this.controlType === (FCT as any).TEXTAREA\n ) {\n const existing = this.ctxValidators.get(this.controlType);\n if (!existing.includes(minLenLeMaxLen)) {\n this.ctxValidators.register(this.controlType, minLenLeMaxLen);\n }\n }\n this.form = this.factory.createEditorForm(\n this.controlType,\n this.normalizedProps,\n this.seed,\n );\n // Apply seed values into the form controls (only non-null/undefined)\n try {\n const getByPath = (obj: any, path: string) => {\n if (!obj || typeof obj !== 'object') return undefined;\n if (!path || typeof path !== 'string') return undefined;\n const parts = path.split('.');\n let curr: any = obj;\n for (const k of parts) {\n if (curr == null) return undefined;\n curr = curr[k];\n }\n return curr;\n };\n const subset: Record<string, any> = {};\n for (const p of this.normalizedProps || []) {\n const name = p?.name as string;\n if (!name) continue;\n const val = getByPath(this.seed, name);\n // Preserve false/0; skip only null/undefined\n if (val !== undefined && val !== null) {\n this.factory.setValueByPath(this.form, name, val);\n subset[name] = val;\n }\n }\n // Also patch the form in a single call to ensure UI reflects values immediately\n try { this.form.patchValue(subset, { emitEvent: false }); } catch {}\n // Diagnostics for Rating seeding after applying seed → form\n try {\n const ctU = String(this.controlType || '').toUpperCase();\n if (ctU === String((FCT as any).RATING)) {\n const pick = (k: string) => this.form.get(k)?.value;\n console.debug('[FieldMetadataEditor][RATING] seeded form values', {\n max: pick('max'),\n allowHalf: pick('allowHalf'),\n selection: pick('selection'),\n size: pick('size'),\n icon: pick('icon'),\n emptyIcon: pick('emptyIcon'),\n svgIcon: pick('svgIcon'),\n svgIconOutline: pick('svgIconOutline'),\n ratingColor: pick('ratingColor'),\n outlineColor: pick('outlineColor'),\n readonly: pick('readonly'),\n tabIndex: pick('tabIndex'),\n ariaLabel: pick('ariaLabel'),\n });\n }\n } catch {}\n } catch {}\n // Diagnostics: dump initial values for Rating editor\n try {\n const ctU = String(this.controlType || '').toUpperCase();\n if (ctU === String((FCT as any).RATING)) {\n const pick = (k: string) => this.form.get(k)?.value;\n console.debug('[FieldMetadataEditor][RATING] initial form values', {\n max: pick('max'),\n allowHalf: pick('allowHalf'),\n selection: pick('selection'),\n size: pick('size'),\n icon: pick('icon'),\n emptyIcon: pick('emptyIcon'),\n svgIcon: pick('svgIcon'),\n svgIconOutline: pick('svgIconOutline'),\n ratingColor: pick('ratingColor'),\n outlineColor: pick('outlineColor'),\n readonly: pick('readonly'),\n tabIndex: pick('tabIndex'),\n ariaLabel: pick('ariaLabel'),\n });\n }\n } catch {}\n // track validity/dirty with snapshot-based detection (avoid false dirty on init)\n this.isValid$.next(this.form.valid);\n this.form.statusChanges.subscribe(() => this.isValid$.next(this.form.valid));\n this.form.valueChanges.subscribe((val) => {\n if (!this.baselineReady) {\n // Ignore initial churn until baseline is captured\n return;\n }\n if (this.initialSnapshot == null) {\n this.initialSnapshot = val;\n if (this.isDirty$.value) this.isDirty$.next(false);\n try { (console.log || console.debug)('[FieldMetadataEditor] baseline set from first stable value'); } catch {}\n return;\n }\n let same = false;\n try { same = JSON.stringify(val) === JSON.stringify(this.initialSnapshot); } catch { same = false; }\n const dirty = !same;\n if (dirty !== this.isDirty$.value) {\n try { (console.log || console.debug)('[FieldMetadataEditor] dirty ->', dirty); } catch {}\n this.isDirty$.next(dirty);\n }\n });\n // Defer baseline capture until next tick to absorb any programmatic value patches\n setTimeout(() => {\n try {\n this.initialSnapshot = this.form.getRawValue();\n this.baselineReady = true;\n if (this.isDirty$.value) this.isDirty$.next(false);\n (console.log || console.debug)('[FieldMetadataEditor] baseline captured (deferred)');\n } catch {\n this.baselineReady = true;\n }\n }, 0);\n }\n\n apply(): void {\n const raw = this.factory.extractPatch(this.form) as any;\n const patch = this.buildDeltaPatch(raw, this.initialSnapshot) as any;\n // Map editor-friendly 'providerOptions' back to canonical 'options'\n if (patch && patch.providerOptions !== undefined && patch.options === undefined) {\n patch.options = patch.providerOptions;\n delete patch.providerOptions;\n }\n // Sempre incluir controlType no patch quando presente\n (patch as any).controlType = this.controlType as any;\n try { console.debug('[FieldMetadataEditor] apply() patch', patch); } catch {}\n try { const fn = (this as any).__hostApplyPatch; if (typeof fn === 'function') fn(patch); } catch {}\n this.applied.emit(patch);\n }\n\n onSave(): Partial<FieldDefinition> | undefined {\n return this.getSettingsValue();\n }\n\n // Settings Panel value provider API\n getSettingsValue(): Partial<FieldDefinition> {\n const raw = this.factory.extractPatch(this.form) as any;\n const patch = this.buildDeltaPatch(raw, this.initialSnapshot) as any;\n if (patch && patch.providerOptions !== undefined && patch.options === undefined) {\n patch.options = patch.providerOptions;\n delete patch.providerOptions;\n }\n (patch as any).controlType = this.controlType as any;\n try { console.debug('[FieldMetadataEditor] getSettingsValue() patch', patch); } catch {}\n return patch;\n }\n\n /**\n * Constrói um patch delta a partir do valor atual do form, removendo\n * chaves não alteradas e valores nulos/strings vazias (exceto boolean/zero).\n */\n private buildDeltaPatch(current: any, baseline: any): any {\n try {\n const isObject = (v: any) => v != null && typeof v === 'object' && !Array.isArray(v);\n const changed: any = {};\n const keys = Object.keys(current || {});\n for (const k of keys) {\n const cv = (current as any)[k];\n const bv = baseline ? (baseline as any)[k] : undefined;\n const isNullish = cv === null || cv === undefined;\n const isEmptyString = typeof cv === 'string' && cv.trim() === '';\n // Preservar false/0 explicitamente; descartar null/undefined e strings vazias\n if (isNullish || isEmptyString) continue;\n if (isObject(cv)) {\n const nested = this.buildDeltaPatch(cv, isObject(bv) ? bv : undefined);\n if (nested && Object.keys(nested).length) changed[k] = nested;\n } else {\n // Incluir apenas se mudou em relação ao baseline ou se baseline não existe\n if (baseline === null || baseline === undefined || cv !== bv) {\n changed[k] = cv;\n }\n }\n }\n return changed;\n } catch {\n // Fallback: retornar current quando algo falhar (melhor do que perder patch)\n return current;\n }\n }\n reset(): void {\n this.form.reset(this.factory.extractPatch(this.form));\n this.isDirty$.next(false);\n }\n\n onControlTypeChange(next: FieldControlType): void {\n this.rebuildEditorForType(next);\n this.isDirty$.next(true);\n }\n\n // Template-safe change handler (avoid TS casts in template)\n onControlTypeChangeEvent(event: Event): void {\n const value = (event.target as HTMLSelectElement | null)?.value as any;\n if (value != null) this.onControlTypeChange(value as FieldControlType);\n }\n}\n","import { Injectable } from '@angular/core';\nimport type { FieldDefinition, FieldMetadata } from '@praxisui/core';\n\nexport interface CascadeRuleViewModel {\n targetField: string;\n dependencyFields: string[];\n enableDependencyCascade: boolean;\n resetOnDependentChange: boolean;\n dependencyFilterMap?: Record<string, any> | null;\n dependencyValuePath?: string | Record<string, string> | null;\n dependencyMergeStrategy?: 'merge' | 'replace';\n dependencyDebounceMs?: number | null;\n dependencyLoadOnChange?: 'respectLoadOn' | 'immediate' | 'manual';\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CascadeRulesService {\n getFieldLabelMap(fields: Array<FieldDefinition | FieldMetadata>): Map<string, string> {\n const map = new Map<string, string>();\n fields.forEach((f) => map.set(f.name, f.label || f.name));\n return map;\n }\n\n hydrateRule(field: FieldDefinition | FieldMetadata): CascadeRuleViewModel | null {\n const deps = (field as any).dependencyFields as string[] | undefined;\n if (!deps || deps.length === 0) return null;\n const vm: CascadeRuleViewModel = {\n targetField: field.name,\n dependencyFields: [...deps],\n enableDependencyCascade:\n (field as any).enableDependencyCascade === false ? false : true,\n resetOnDependentChange: !!(field as any).resetOnDependentChange,\n dependencyFilterMap: (field as any).dependencyFilterMap || null,\n dependencyValuePath: (field as any).dependencyValuePath || null,\n dependencyMergeStrategy: (field as any).dependencyMergeStrategy || 'merge',\n dependencyDebounceMs:\n (field as any).dependencyDebounceMs != null\n ? Number((field as any).dependencyDebounceMs)\n : 150,\n dependencyLoadOnChange:\n (field as any).dependencyLoadOnChange || 'respectLoadOn',\n };\n return vm;\n }\n\n dehydratePatch(rule: CascadeRuleViewModel): Partial<FieldDefinition> {\n const patch: any = {\n dependencyFields: rule.dependencyFields,\n enableDependencyCascade: rule.enableDependencyCascade,\n resetOnDependentChange: rule.resetOnDependentChange,\n dependencyMergeStrategy: rule.dependencyMergeStrategy || 'merge',\n dependencyLoadOnChange: rule.dependencyLoadOnChange || 'respectLoadOn',\n };\n if (rule.dependencyFilterMap != null) patch.dependencyFilterMap = rule.dependencyFilterMap;\n if (rule.dependencyValuePath != null) patch.dependencyValuePath = rule.dependencyValuePath as any;\n if (rule.dependencyDebounceMs != null)\n patch.dependencyDebounceMs = Number(rule.dependencyDebounceMs);\n return patch as Partial<FieldDefinition>;\n }\n\n /** Suggest a basic mapping dep->dep and a default valuePath */\n suggest(rule: CascadeRuleViewModel, inferredValueKey?: string): CascadeRuleViewModel {\n const map: Record<string, any> = {};\n (rule.dependencyFields || []).forEach((dep) => (map[dep] = dep));\n return {\n ...rule,\n dependencyFilterMap: Object.keys(map).length ? map : rule.dependencyFilterMap,\n dependencyValuePath: rule.dependencyValuePath || inferredValueKey || 'id',\n };\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, OnChanges, SimpleChanges, signal } from '@angular/core';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport type { FieldDefinition, FieldMetadata } from '@praxisui/core';\nimport { CascadeRulesService, CascadeRuleViewModel } from './cascade-rules.service';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatListModule } from '@angular/material/list';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { PraxisIconDirective } from '@praxisui/core';\n\n@Component({\n selector: 'praxis-cascade-manager-tab',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n MatInputModule,\n MatChipsModule,\n MatListModule,\n MatDividerModule,\n MatSelectModule,\n MatCheckboxModule,\n MatExpansionModule,\n MatMenuModule,\n ScrollingModule,\n PraxisIconDirective,\n ],\n styles: [\n `\n :host { display: block; }\n .cm-root { display: grid; grid-template-columns: 320px 1fr; gap: 16px; min-height: 420px; }\n .cm-left { border-right: 1px solid rgba(0,0,0,0.06); padding-right: 8px; }\n .cm-search { width: 100%; margin-bottom: 8px; }\n .cm-right { padding-left: 8px; }\n .field-item { display: flex; align-items: center; justify-content: space-between; padding: 6px 4px; cursor: pointer; border-radius: 6px; }\n .field-item.selected { background: rgba(0,0,0,0.04); }\n .rule-badges { display: inline-flex; gap: 6px; }\n .rule-badge { font-size: 10px; padding: 2px 6px; border-radius: 10px; }\n .b-active { background: #e8f5e9; color: #2e7d32; }\n .b-manual { background: #eceff1; color: #455a64; }\n .b-immediate { background: #fff3e0; color: #ef6c00; }\n .b-conflict { background: #ffebee; color: #c62828; }\n .cm-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }\n .rules-empty { opacity: .7; font-style: italic; padding: 8px 0; }\n .rule-row { display: grid; grid-template-columns: 1fr auto; align-items: center; padding: 8px 0; border-bottom: 1px dashed rgba(0,0,0,0.06); }\n .rule-actions button { margin-left: 4px; }\n .banner { background: #fff8e1; color: #6d4c41; padding: 8px 12px; border: 1px solid #ffe082; border-radius: 6px; margin-bottom: 8px; display: flex; gap: 8px; align-items: center; }\n .import-panel { background: #f5f5f5; border: 1px solid #e0e0e0; border-radius: 6px; padding: 8px; margin-bottom: 8px; }\n .full { width: 100%; }\n .form-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }\n .form-grid { display: grid; gap: 12px; padding: 8px 0; }\n .map-table { width: 100%; border-collapse: collapse; }\n .map-table th, .map-table td { padding: 6px 8px; border-bottom: 1px dashed rgba(0,0,0,0.06); }\n .kbd { font-family: monospace; background: #eee; padding: 0 4px; border-radius: 3px; }\n `\n ],\n template: `\n <div class=\"cm-root\">\n <!-- Left: Fields list -->\n <div class=\"cm-left\">\n <mat-form-field appearance=\"outline\" class=\"cm-search\" subscriptSizing=\"dynamic\">\n <mat-label>Buscar campos</mat-label>\n <input matInput [ngModel]=\"searchTerm\" (ngModelChange)=\"onSearchChange($event)\">\n </mat-form-field>\n <ng-container *ngIf=\"fields.length <= 50; else vscroll\">\n <div>\n <div *ngFor=\"let f of filteredFields()\" (click)=\"selectField(f.name)\" class=\"field-item\" [class.selected]=\"f.name===selectedField()\" tabindex=\"0\" (keydown)=\"onFieldKeydown($event, f.name)\">\n <div>\n <div>{{ labelFor(f.name) }}</div>\n <small style=\"opacity:.7\">{{ f.name }}</small>\n </div>\n <div class=\"rule-badges\" *ngIf=\"hasRule(f.name)\">\n <span class=\"rule-badge b-active\" *ngIf=\"isCascadeEnabled(f.name)\">Ativo</span>\n <span class=\"rule-badge b-manual\" *ngIf=\"loadOnChange(f.name)==='manual'\">Manual</span>\n <span class=\"rule-badge b-immediate\" *ngIf=\"loadOnChange(f.name)==='immediate'\">Immediate</span>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-template #vscroll>\n <cdk-virtual-scroll-viewport itemSize=\"44\" style=\"height: calc(100vh - 240px)\">\n <div *cdkVirtualFor=\"let f of filteredFields()\" (click)=\"selectField(f.name)\" class=\"field-item\" [class.selected]=\"f.name===selectedField()\" tabindex=\"0\" (keydown)=\"onFieldKeydown($event, f.name)\">\n <div>\n <div>{{ labelFor(f.name) }}</div>\n <small style=\"opacity:.7\">{{ f.name }}</small>\n </div>\n <div class=\"rule-badges\" *ngIf=\"hasRule(f.name)\">\n <span class=\"rule-badge b-active\" *ngIf=\"isCascadeEnabled(f.name)\">Ativo</span>\n <span class=\"rule-badge b-manual\" *ngIf=\"loadOnChange(f.name)==='manual'\">Manual</span>\n <span class=\"rule-badge b-immediate\" *ngIf=\"loadOnChange(f.name)==='immediate'\">Immediate</span>\n </div>\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n </div>\n\n <!-- Right: Rules for selected field -->\n <div class=\"cm-right\" *ngIf=\"selectedField() as sel\">\n <div class=\"cm-header\">\n <div>\n <h3 style=\"margin:0\">{{ labelFor(sel) }}</h3>\n <div style=\"opacity:.7\">{{ sel }}</div>\n </div>\n <div>\n <button mat-stroked-button color=\"primary\" (click)=\"exportRules()\" style=\"margin-right:8px\">Exportar</button>\n <button mat-stroked-button (click)=\"toggleImport()\" style=\"margin-right:8px\">Importar</button>\n <button mat-flat-button color=\"primary\" [matMenuTriggerFor]=\"addMenu\" [disabled]=\"editing()\">Adicionar</button>\n <mat-menu #addMenu=\"matMenu\">\n <button mat-menu-item (click)=\"startEdit(sel)\"><mat-icon [praxisIcon]=\"'add'\"></mat-icon><span>Em branco</span></button>\n <button mat-menu-item (click)=\"startTemplate(sel, 'rota-destino')\" [disabled]=\"!hasField('rotaId') || !hasField('destinoReqId')\"><mat-icon [praxisIcon]=\"'bolt'\"></mat-icon><span>Rota → Destino (id)</span></button>\n <button mat-menu-item (click)=\"startTemplate(sel, 'rota-destino-propriedade')\" [disabled]=\"!hasField('rotaId') || !hasField('destinoReqId')\"><mat-icon [praxisIcon]=\"'bolt'\"></mat-icon><span>Rota + Destino → Propriedade (ids)</span></button>\n </mat-menu>\n </div>\n </div>\n\n <!-- Conflict banner (connections) -->\n <div class=\"banner\" *ngIf=\"hasConflict(sel)\">\n <mat-icon [praxisIcon]=\"'link_off'\"></mat-icon>\n <div>\n Connections atualizam este campo (filterCriteria). Considere desativar a cascata nativa ou usar ‘manual’.\n </div>\n <span class=\"spacer\"></span>\n <button mat-stroked-button color=\"primary\" (click)=\"quickSet(sel,'disable')\">Desativar</button>\n <button mat-stroked-button color=\"accent\" (click)=\"quickSet(sel,'manual')\">Definir manual</button>\n </div>\n\n <div *ngIf=\"importMode\" class=\"import-panel\">\n <div style=\"display:flex; gap:8px; align-items:center; margin-bottom:8px\"><mat-icon [praxisIcon]=\"'upload'\"></mat-icon><strong>Importar regras (JSON)</strong></div>\n <textarea matInput rows=\"6\" class=\"full\" [(ngModel)]=\"importJson\" placeholder='{ \"campo\": { \"dependencyFields\": [\"dep\"], ... } }'></textarea>\n <div style=\"display:flex; gap:8px; justify-content:flex-end; padding-top:8px\">\n <button mat-stroked-button (click)=\"toggleImport()\">Cancelar</button>\n <button mat-flat-button color=\"primary\" (click)=\"applyImport()\">Aplicar</button>\n </div>\n </div>\n\n <div *ngIf=\"!ruleFor(sel)\">\n <div class=\"rules-empty\">Nenhuma regra de cascata. Clique em “Adicionar”.</div>\n </div>\n <div *ngIf=\"ruleFor(sel) as rule\">\n <div class=\"rule-row\">\n <div>\n <div><strong>Dependentes:</strong> {{ rule.dependencyFields.join(', ') || '—' }}</div>\n <div style=\"opacity:.7\">Load on change: {{ rule.dependencyLoadOnChange || 'respectLoadOn' }} | Merge: {{ rule.dependencyMergeStrategy || 'merge' }}</div>\n </div>\n <div class=\"rule-actions\">\n <button mat-icon-button matTooltip=\"Editar\" (click)=\"edit(sel)\"><mat-icon [praxisIcon]=\"'edit'\"></mat-icon></button>\n <button mat-icon-button matTooltip=\"Duplicar\" disabled><mat-icon [praxisIcon]=\"'content_copy'\"></mat-icon></button>\n <button mat-icon-button matTooltip=\"Remover\" (click)=\"remove(sel)\"><mat-icon [praxisIcon]=\"'delete'\"></mat-icon></button>\n </div>\n </div>\n </div>\n\n <!-- Editor com seções -->\n <mat-expansion-panel [expanded]=\"editing()\">\n <mat-expansion-panel-header>\n <mat-panel-title>Edição de Regra</mat-panel-title>\n <mat-panel-description>Configurar dependentes, execução e mapeamento</mat-panel-description>\n </mat-expansion-panel-header>\n\n <!-- Básico -->\n <mat-expansion-panel [expanded]=\"true\">\n <mat-expansion-panel-header>\n <mat-panel-title>Básico</mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"form-grid\">\n <div class=\"form-row\">\n <mat-form-field appearance=\"outline\" class=\"full\">\n <mat-label>Dependentes (CSV)</mat-label>\n <input matInput [(ngModel)]=\"editDepCsv\">\n <mat-hint>Ex.: rotaId,destinoReqId</mat-hint>\n </mat-form-field>\n </div>\n <div class=\"form-row\">\n <mat-checkbox [(ngModel)]=\"editEnable\">Ativar cascata nativa</mat-checkbox>\n <mat-checkbox [(ngModel)]=\"editReset\">Resetar ao mudar</mat-checkbox>\n </div>\n </div>\n </mat-expansion-panel>\n\n <!-- Execução -->\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n <mat-panel-title>Execução</mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"form-row\">\n <mat-form-field appearance=\"outline\">\n <mat-label>Carregar ao mudar</mat-label>\n <mat-select [(ngModel)]=\"editLoadOn\">\n <mat-option value=\"respectLoadOn\">Respeitar loadOn</mat-option>\n <mat-option value=\"immediate\">Imediato</mat-option>\n <mat-option value=\"manual\">Manual</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>Merge de filtros</mat-label>\n <mat-select [(ngModel)]=\"editMerge\">\n <mat-option value=\"merge\">merge (padrão)</mat-option>\n <mat-option value=\"replace\">replace</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>Atraso (ms)</mat-label>\n <input matInput type=\"number\" [(ngModel)]=\"editDebounce\">\n </mat-form-field>\n </div>\n </mat-expansion-panel>\n\n <!-- Extração de valor -->\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n <mat-panel-title>Extração de valor</mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"form-row\">\n <mat-form-field appearance=\"outline\" class=\"full\">\n <mat-label>ValuePath padrão</mat-label>\n <input matInput [(ngModel)]=\"editValuePath\" placeholder=\"id\">\n <mat-hint>Preenchido automaticamente a partir de optionValueKey() ou 'id'</mat-hint>\n </mat-form-field>\n </div>\n </mat-expansion-panel>\n\n <!-- Mapeamento de filtros (tabela) -->\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n <mat-panel-title>Mapeamento de filtros</mat-panel-title>\n </mat-expansion-panel-header>\n <table class=\"map-table\" *ngIf=\"editMapRows.length; else noMap\">\n <thead>\n <tr>\n <th>Dependente</th>\n <th>Chave (dot‑path)</th>\n <th>ValuePath (opcional)</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let row of editMapRows; let i = index\">\n <td>{{ row.dep }}</td>\n <td>\n <input matInput [(ngModel)]=\"row.key\" placeholder=\"{{row.dep}}\">\n </td>\n <td>\n <input matInput [(ngModel)]=\"row.valuePath\" placeholder=\"{{editValuePath||'id'}}\">\n </td>\n </tr>\n </tbody>\n </table>\n <ng-template #noMap>\n <div class=\"rules-empty\">Defina dependentes para sugerir o mapeamento.</div>\n </ng-template>\n </mat-expansion-panel>\n\n <!-- Preview -->\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n <mat-panel-title>Preview</mat-panel-title>\n </mat-expansion-panel-header>\n <pre style=\"white-space: pre-wrap; background:#fafafa; padding:8px; border:1px solid #eee; border-radius:6px\">{{ buildPreview() }}</pre>\n <div style=\"display:flex; justify-content:flex-end; padding-top:6px\">\n <button mat-stroked-button (click)=\"copyPreview()\">Copiar</button>\n </div>\n </mat-expansion-panel>\n\n <div style=\"display:flex; gap:8px; justify-content:flex-end; padding:8px 0;\">\n <button mat-stroked-button (click)=\"cancelEdit()\">Cancelar</button>\n <button mat-flat-button color=\"primary\" (click)=\"saveEdit(sel)\">Salvar</button>\n </div>\n </mat-expansion-panel>\n </div>\n </div>\n `,\n})\nexport class CascadeManagerTabComponent implements OnChanges {\n @Input() fields: Array<FieldDefinition | FieldMetadata> = [];\n @Input() connections?: Array<{ toFieldName: string; toInputPath: string }>; // optional signal for conflicts\n @Output() apply = new EventEmitter<Record<string, Partial<FieldDefinition>>>();\n @Output() cancel = new EventEmitter<void>();\n\n searchTerm = '';\n private searchTimer: any = null;\n private searchValue = '';\n private readonly rules = signal<Map<string, CascadeRuleViewModel>>(new Map());\n private readonly selectedFieldSig = signal<string | null>(null);\n // Inline editor state (MVP)\n readonly editing = signal(false);\n editDepCsv = '';\n editEnable = true;\n editReset = false;\n editMerge: 'merge' | 'replace' = 'merge';\n editLoadOn: 'respectLoadOn' | 'immediate' | 'manual' = 'respectLoadOn';\n editDebounce: number | null = 150;\n editValuePath = '';\n editFilterMapJson = '';\n importMode = false;\n importJson = '';\n editMapRows: Array<{ dep: string; key: string; valuePath?: string }> = [];\n\n constructor(private readonly svc: CascadeRulesService) {}\n\n ngOnInit(): void {\n // hydrate from input fields\n const map = new Map<string, CascadeRuleViewModel>();\n for (const f of this.fields) {\n const vm = this.svc.hydrateRule(f);\n if (vm) map.set(f.name, vm);\n }\n this.rules.set(map);\n if (!this.selectedFieldSig() && this.fields.length) {\n this.selectedFieldSig.set(this.fields[0].name);\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['fields'] && !changes['fields'].firstChange) {\n // Re-hydrate rules from incoming fields while preserving existing ones when possible\n const incoming = this.fields || [];\n const next = new Map<string, CascadeRuleViewModel>();\n // keep existing for fields still present\n for (const f of incoming) {\n const existing = this.rules().get(f.name);\n const hydrated = this.svc.hydrateRule(f);\n if (hydrated) next.set(f.name, hydrated);\n else if (existing) next.set(f.name, existing);\n }\n this.rules.set(next);\n // preserve selection if still valid\n const sel = this.selectedField();\n if (sel && !incoming.some((f) => f.name === sel)) {\n this.selectedFieldSig.set(incoming[0]?.name ?? null);\n }\n }\n }\n\n filteredFields(): Array<FieldDefinition | FieldMetadata> {\n const q = (this.searchValue || '').toLowerCase();\n const labelMap = this.svc.getFieldLabelMap(this.fields);\n return this.fields\n .filter((f) => !q || f.name.toLowerCase().includes(q) || (labelMap.get(f.name) || '').toLowerCase().includes(q))\n .sort((a, b) => (labelMap.get(a.name) || a.name).localeCompare(labelMap.get(b.name) || b.name));\n }\n\n labelFor(name: string): string {\n return this.svc.getFieldLabelMap(this.fields).get(name) || name;\n }\n\n selectedField(): string | null {\n return this.selectedFieldSig();\n }\n\n selectField(name: string): void {\n this.selectedFieldSig.set(name);\n this.editing.set(false);\n }\n\n hasRule(name: string): boolean {\n return this.rules().has(name);\n }\n ruleFor(name: string): CascadeRuleViewModel | null {\n return this.rules().get(name) || null;\n }\n isCascadeEnabled(name: string): boolean {\n return (this.ruleFor(name)?.enableDependencyCascade ?? true) === true;\n }\n loadOnChange(name: string): 'respectLoadOn' | 'immediate' | 'manual' {\n return this.ruleFor(name)?.dependencyLoadOnChange || 'respectLoadOn';\n }\n hasConflict(name: string): boolean {\n if (!this.connections) return false;\n return this.connections.some((c) => c.toFieldName === name && (c.toInputPath || '').includes('filterCriteria'));\n }\n\n startEdit(name: string): void {\n const existing = this.ruleFor(name);\n const base: CascadeRuleViewModel = existing || {\n targetField: name,\n dependencyFields: [],\n enableDependencyCascade: true,\n resetOnDependentChange: false,\n dependencyFilterMap: {},\n dependencyValuePath: 'id',\n dependencyMergeStrategy: 'merge',\n dependencyDebounceMs: 150,\n dependencyLoadOnChange: 'respectLoadOn',\n };\n const suggested = this.svc.suggest(base, 'id');\n // Bind to inline editor\n this.editDepCsv = suggested.dependencyFields.join(',');\n this.editEnable = suggested.enableDependencyCascade;\n this.editReset = suggested.resetOnDependentChange;\n this.editMerge = suggested.dependencyMergeStrategy || 'merge';\n this.editLoadOn = suggested.dependencyLoadOnChange || 'respectLoadOn';\n this.editDebounce = suggested.dependencyDebounceMs ?? 150;\n this.editValuePath = (typeof suggested.dependencyValuePath === 'string' ? suggested.dependencyValuePath : 'id') || '';\n try { this.editFilterMapJson = suggested.dependencyFilterMap ? JSON.stringify(suggested.dependencyFilterMap, null, 2) : ''; } catch { this.editFilterMapJson = ''; }\n // Build mapping rows from dependencies\n this.buildMapRowsFromDeps();\n this.editing.set(true);\n }\n edit(name: string): void { this.startEdit(name); }\n cancelEdit(): void { this.editing.set(false); }\n\n saveEdit(name: string): void {\n // Build rule from editor\n const deps = (this.editDepCsv || '')\n .split(',')\n .map((s) => s.trim())\n .filter((s) => !!s && s !== name);\n // Build map from rows; fallback to JSON when provided\n let map: any = {};\n this.editMapRows.forEach((r) => { if (!r.key && r.dep) r.key = r.dep; if (r.dep) map[r.dep] = r.valuePath ? { key: r.key || r.dep, valuePath: r.valuePath } : (r.key || r.dep); });\n const raw = (this.editFilterMapJson || '').trim();\n if (raw) {\n try { const fromJson = JSON.parse(raw); map = { ...map, ...fromJson }; } catch { alert('Mapeamento de filtros inválido (JSON)'); return; }\n }\n const rule: CascadeRuleViewModel = {\n targetField: name,\n dependencyFields: deps,\n enableDependencyCascade: this.editEnable,\n resetOnDependentChange: this.editReset,\n dependencyFilterMap: map,\n dependencyValuePath: this.buildValuePathOverrides(deps),\n dependencyMergeStrategy: this.editMerge,\n dependencyDebounceMs: this.editDebounce ?? 150,\n dependencyLoadOnChange: this.editLoadOn,\n };\n const next = new Map(this.rules());\n next.set(name, rule);\n this.rules.set(next);\n this.emitPatch();\n this.editing.set(false);\n }\n\n remove(name: string): void {\n const next = new Map(this.rules());\n next.delete(name);\n this.rules.set(next);\n // Removing means clearing the cascade-related keys; send empty patch\n const patch: any = {\n [name]: {\n dependencyFields: [],\n enableDependencyCascade: false,\n resetOnDependentChange: false,\n dependencyFilterMap: undefined,\n dependencyValuePath: undefined,\n dependencyMergeStrategy: undefined,\n dependencyDebounceMs: undefined,\n dependencyLoadOnChange: undefined,\n },\n };\n this.apply.emit(patch);\n }\n\n quickSet(name: string, action: 'disable' | 'manual'): void {\n const current = this.ruleFor(name);\n if (!current) return;\n const next = { ...current };\n if (action === 'disable') next.enableDependencyCascade = false;\n if (action === 'manual') next.dependencyLoadOnChange = 'manual';\n const map = new Map(this.rules()); map.set(name, next); this.rules.set(map);\n this.emitPatch();\n }\n\n private emitPatch(): void {\n const out: Record<string, Partial<FieldDefinition>> = {};\n for (const [name, rule] of this.rules()) {\n out[name] = this.svc.dehydratePatch(rule);\n }\n this.apply.emit(out);\n }\n\n // Phase 2 helpers\n onSearchChange(val: string): void {\n this.searchTerm = val;\n if (this.searchTimer) clearTimeout(this.searchTimer);\n this.searchTimer = setTimeout(() => (this.searchValue = this.searchTerm), 150);\n }\n onFieldKeydown(event: KeyboardEvent, name: string): void {\n if (event.key === 'Enter') { this.edit(name); event.preventDefault(); }\n if (event.key.toLowerCase() === 'd' && (event.ctrlKey || event.metaKey)) { /* duplicate placeholder */ event.preventDefault(); }\n if (event.key === 'Delete') { this.remove(name); event.preventDefault(); }\n }\n hasField(name: string): boolean { return this.fields.some((f) => f.name === name); }\n toggleImport(): void { this.importMode = !this.importMode; this.importJson = ''; }\n exportRules(): void {\n const out: Record<string, Partial<FieldDefinition>> = {};\n for (const [name, rule] of this.rules()) out[name] = this.svc.dehydratePatch(rule);\n const json = JSON.stringify(out, null, 2);\n try { navigator.clipboard?.writeText(json); } catch {}\n alert('Regras exportadas para a área de transferência.');\n }\n applyImport(): void {\n let obj: any;\n try { obj = JSON.parse(this.importJson || '{}'); } catch { alert('JSON inválido'); return; }\n const next = new Map(this.rules());\n Object.keys(obj || {}).forEach((field) => {\n const patch = obj[field] || {};\n const vm: CascadeRuleViewModel = this.svc.hydrateRule({ ...(patch as any), name: field } as any) || ({\n targetField: field,\n dependencyFields: patch.dependencyFields || [],\n enableDependencyCascade: patch.enableDependencyCascade !== false,\n resetOnDependentChange: !!patch.resetOnDependentChange,\n dependencyFilterMap: patch.dependencyFilterMap || {},\n dependencyValuePath: patch.dependencyValuePath || 'id',\n dependencyMergeStrategy: patch.dependencyMergeStrategy || 'merge',\n dependencyDebounceMs: patch.dependencyDebounceMs ?? 150,\n dependencyLoadOnChange: patch.dependencyLoadOnChange || 'respectLoadOn',\n } as CascadeRuleViewModel);\n next.set(field, vm);\n });\n this.rules.set(next);\n this.emitPatch();\n this.importMode = false;\n }\n startTemplate(name: string, tpl: 'rota-destino' | 'rota-destino-propriedade'): void {\n const hasR = this.hasField('rotaId'); const hasD = this.hasField('destinoReqId');\n const deps = tpl === 'rota-destino' ? (hasR ? ['rotaId'] : []) : (hasR && hasD ? ['rotaId','destinoReqId'] : []);\n this.editDepCsv = deps.join(',');\n this.editEnable = true; this.editReset = true; this.editMerge = 'merge'; this.editLoadOn = 'respectLoadOn'; this.editDebounce = 150; this.editValuePath = 'id';\n this.buildMapRowsFromDeps();\n this.editing.set(true);\n }\n buildMapRowsFromDeps(): void {\n const deps = (this.editDepCsv || '').split(',').map((s) => s.trim()).filter(Boolean);\n const existing: any = (() => { try { return JSON.parse(this.editFilterMapJson || '{}'); } catch { return {}; } })();\n this.editMapRows = deps.map((dep) => {\n const entry = existing[dep];\n if (!entry) return { dep, key: dep };\n if (typeof entry === 'string') return { dep, key: entry };\n return { dep, key: entry.key || dep, valuePath: entry.valuePath };\n });\n }\n buildValuePathOverrides(deps: string[]): string | Record<string, string> {\n // If any row defines a valuePath, return a record; else return default string\n const record: Record<string, string> = {};\n this.editMapRows.forEach((r) => { if (r.valuePath) record[r.dep] = r.valuePath; });\n const hasAny = Object.keys(record).length > 0;\n return hasAny ? record : (this.editValuePath || 'id');\n }\n buildPreview(): string {\n try {\n const deps = (this.editDepCsv || '').split(',').map((s) => s.trim()).filter(Boolean);\n const frag: any = {};\n this.editMapRows.forEach((r) => {\n const example = r.valuePath ? 123 : 123; // simple placeholder id\n const parts = (r.key || r.dep).split('.'); let ref = frag;\n for (let i=0;i<parts.length-1;i++){ const p=parts[i]; ref[p]=ref[p]||{}; ref=ref[p]; }\n ref[parts[parts.length-1]] = example;\n });\n return JSON.stringify(frag, null, 2);\n } catch { return '{}'; }\n }\n copyPreview(): void { try { navigator.clipboard?.writeText(this.buildPreview()); } catch {} }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.ContextValidatorRegistryService","FCT","i2","i3","i4","i7","i1.ConfigRegistryService","i2.SchemaNormalizerService","i3.DynamicFormFactoryService","i4.ContextValidatorRegistryService","i5","i1.CascadeRulesService","i6","i8","i10"],"mappings":"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"}