{"version":3,"file":"bravura-ui-form-field.mjs","sources":["../../../projects/ui/form-field/form-field.component.ts","../../../projects/ui/form-field/form-field.module.ts","../../../projects/ui/form-field/bravura-ui-form-field.ts"],"sourcesContent":["import { Directive, ElementRef, Host, Inject, InjectionToken, Input, Provider } from '@angular/core';\nimport { MatFormField } from '@angular/material/form-field';\n\nexport interface BuiFormFieldConfig {\n\tappearance?: 'fill' | 'outline' | 'bound';\n}\n\nexport const BUI_FORM_FIELD_CONFIG = new InjectionToken<BuiFormFieldConfig>('@bravura/ui/buiFormFieldConfig', {\n\tfactory: () => ({ appearance: 'fill' }),\n\tprovidedIn: 'root'\n});\n\nexport function provideFormFieldConfig(config: BuiFormFieldConfig): Provider {\n\tconst conf = { ...config };\n\tconf.appearance = conf.appearance || 'fill';\n\n\treturn {\n\t\tprovide: BUI_FORM_FIELD_CONFIG,\n\t\tuseValue: conf\n\t};\n}\n\n/**\n * @ignore\n */\n@Directive({\n\tselector: 'bui-form-field, mat-form-field',\n\thost: {\n\t\tclass: 'bui-host'\n\t}\n})\nexport class FormFieldStyleDirective {\n\tprivate _appearance: any;\n\tprivate _flowDetection: any;\n\n\t/** The form field appearance style. */\n\t@Input()\n\tget appearance(): any {\n\t\treturn this._appearance;\n\t}\n\tset appearance(value: any) {\n\t\tthis._appearance = value;\n\t\tthis.elemRef.nativeElement.classList.remove('bui-form-field-bound', 'bui-form-field-detach');\n\t\tif (['bound', 'detach'].includes(this._appearance)) {\n\t\t\tthis.matFormField.appearance = 'outline';\n\t\t\tthis.elemRef.nativeElement.classList.add(`bui-form-field-${value}`);\n\t\t\tthis.matFormField._shouldAlwaysFloat = () => true;\n\t\t} else {\n\t\t\tthis.matFormField.appearance = ['outline', 'fill'].includes(this._appearance) ? this._appearance : undefined;\n\t\t\tthis.matFormField._shouldAlwaysFloat = this._flowDetection;\n\t\t}\n\t}\n\n\tconstructor(\n\t\t@Host() private matFormField: MatFormField,\n\t\tprivate elemRef: ElementRef<HTMLElement>,\n\t\t@Inject(BUI_FORM_FIELD_CONFIG) config: BuiFormFieldConfig\n\t) {\n\t\tthis._flowDetection = matFormField._shouldAlwaysFloat;\n\t\tthis.appearance = config.appearance;\n\t}\n}\n\nconst matFormFieldRef: any = MatFormField.ɵcmp;\nmatFormFieldRef.selectors.push(['bui-form-field']);\ndelete matFormFieldRef.inputs.appearance;\ndelete matFormFieldRef.declaredInputs.appearance;\n","import { ObserversModule } from '@angular/cdk/observers';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { BUI_FORM_FIELD_CONFIG, BuiFormFieldConfig, FormFieldStyleDirective } from './form-field.component';\r\n\r\n@NgModule({\r\n\timports: [CommonModule, ObserversModule, FormFieldStyleDirective],\r\n\texports: [FormFieldStyleDirective]\r\n})\r\nexport class FormFieldModule {\r\n\tstatic forConfig(config: BuiFormFieldConfig): ModuleWithProviders<FormFieldModule> {\r\n\t\tconst cfg = { ...config };\r\n\t\tcfg.appearance = cfg.appearance || 'fill';\r\n\t\treturn {\r\n\t\t\tngModule: FormFieldModule,\r\n\t\t\tproviders: [\r\n\t\t\t\t{\r\n\t\t\t\t\tprovide: BUI_FORM_FIELD_CONFIG,\r\n\t\t\t\t\tuseValue: cfg\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t};\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}