@bravura/ui 9.0.3 → 9.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,8 +1,16 @@
1
1
  # Change history
2
2
 
3
+ ## <small>9.0.5 (2026-07-15)</small>
4
+
5
+ * fix(form-field): export styles ([d00217b](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/d00217b))
6
+
7
+ ## <small>9.0.4 (2026-07-15)</small>
8
+
9
+ - fix(decimal-input): allow decimal input used as attribute ([0fc85fe](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/0fc85fe))
10
+
3
11
  ## <small>9.0.3 (2026-07-14)</small>
4
12
 
5
- * fix: update storybook ([98ce0d5](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/98ce0d5))
13
+ - fix: update storybook ([98ce0d5](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/98ce0d5))
6
14
 
7
15
  ## <small>9.0.2 (2026-07-13)</small>
8
16
 
package/_index.scss CHANGED
@@ -1,5 +1,6 @@
1
- @forward './theme/ui-theme' show theme, all-component-colors;
2
- @forward './stepper/stepper-theme' as stepper-* show stepper-color, stepper-theme;
3
- @forward './radio-panel/radio-panel-theme' as radio-panel-* show radio-panel-color, radio-panel-theme;
4
- @forward './selection-panel/selection-panel-theme' as selection-panel-* show selection-panel-color,
5
- selection-panel-theme;
1
+ @forward './theme/ui-theme' show theme, all-component-colors;
2
+ @forward './stepper/stepper-theme' as stepper-* show stepper-color, stepper-theme;
3
+ @forward './radio-panel/radio-panel-theme' as radio-panel-* show radio-panel-color, radio-panel-theme;
4
+ @forward './selection-panel/selection-panel-theme' as selection-panel-* show selection-panel-color,
5
+ selection-panel-theme;
6
+ @forward './form-field/form-field-theme';
@@ -1,11 +1,17 @@
1
- import { DecimalPipe, CommonModule } from '@angular/common';
2
1
  import * as i0 from '@angular/core';
3
- import { forwardRef, HostListener, HostBinding, Input, Self, Directive, NgModule } from '@angular/core';
2
+ import { input, forwardRef, HostListener, HostBinding, Self, Directive, NgModule } from '@angular/core';
3
+ import { DecimalPipe } from '@angular/common';
4
4
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
5
  import { noop } from 'rxjs';
6
6
 
7
7
  /* tslint:disable:no-empty */
8
8
  const noop_consumer = (_) => { };
9
+ const optionalValue = (defaultValue) => (v) => {
10
+ if (v === '' || v === null || v === undefined || !Number.isFinite(v) || Number(v) < 0) {
11
+ return defaultValue;
12
+ }
13
+ return Number(v);
14
+ };
9
15
  /**
10
16
  * This directive will enhance an input element to format the numbers entered to a decimal amount.
11
17
  */
@@ -16,7 +22,7 @@ class DecimalInputDirective {
16
22
  /**
17
23
  * number of decimal places allowed
18
24
  */
19
- this.buiDecimalInput = 2;
25
+ this.buiDecimalInput = input(2, { ...(ngDevMode ? { debugName: "buiDecimalInput" } : /* istanbul ignore next */ {}), transform: optionalValue(2) });
20
26
  this.placeholder = '';
21
27
  this.autocomplete = 'off';
22
28
  this.type = 'number';
@@ -25,15 +31,14 @@ class DecimalInputDirective {
25
31
  this.onTouch = noop;
26
32
  }
27
33
  ngOnChanges() {
28
- this.buiDecimalInput = this.buiDecimalInput || 2;
29
34
  this.onInput();
30
35
  }
31
36
  onInput() {
32
37
  const value = this._el.nativeElement.value;
33
38
  const decimalPart = value.split('.')[1];
34
- if (decimalPart && decimalPart.length > this.buiDecimalInput) {
39
+ if (decimalPart && decimalPart.length > this.buiDecimalInput()) {
35
40
  const indexOfPeriod = value.indexOf('.');
36
- const newValue = value.substring(0, indexOfPeriod + this.buiDecimalInput + 1);
41
+ const newValue = value.substring(0, indexOfPeriod + this.buiDecimalInput() + 1);
37
42
  this._renderer.setProperty(this._el.nativeElement, 'value', newValue);
38
43
  }
39
44
  const resolvedValue = this._el.nativeElement.value;
@@ -70,17 +75,16 @@ class DecimalInputDirective {
70
75
  }
71
76
  const splitValues = value.split('.');
72
77
  let newValue = '';
73
- if (splitValues[1] && splitValues[1].length > this.buiDecimalInput) {
74
- newValue = value.substring(0, splitValues[0].length + 1 + this.buiDecimalInput);
78
+ if (splitValues[1] && splitValues[1].length > this.buiDecimalInput()) {
79
+ newValue = value.substring(0, splitValues[0].length + 1 + this.buiDecimalInput());
75
80
  }
76
81
  else {
77
- this.buiDecimalInput = this.buiDecimalInput < 0 ? 0 : this.buiDecimalInput;
78
- newValue = Number(value).toFixed(this.buiDecimalInput);
82
+ newValue = Number(value).toFixed(this.buiDecimalInput());
79
83
  }
80
84
  this._renderer.setProperty(this._el.nativeElement, 'value', newValue);
81
85
  }
82
86
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DecimalInputDirective, deps: [{ token: i0.ElementRef, self: true }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
83
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.6", type: DecimalInputDirective, isStandalone: false, selector: "input[buiDecimalInput]", inputs: { buiDecimalInput: "buiDecimalInput" }, host: { listeners: { "input": "onInput()", "keypress": "onKeypress($event)", "blur": "onblur()" }, properties: { "placeholder": "this.placeholder", "autocomplete": "this.autocomplete", "type": "this.type", "attr.inputmode": "this.inputMode" } }, providers: [
87
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.6", type: DecimalInputDirective, isStandalone: true, selector: "input[buiDecimalInput]", inputs: { buiDecimalInput: { classPropertyName: "buiDecimalInput", publicName: "buiDecimalInput", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "input": "onInput()", "keypress": "onKeypress($event)", "blur": "onblur()" }, properties: { "placeholder": "this.placeholder", "autocomplete": "this.autocomplete", "type": "this.type", "attr.inputmode": "this.inputMode" } }, providers: [
84
88
  DecimalPipe,
85
89
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DecimalInputDirective), multi: true }
86
90
  ], usesOnChanges: true, ngImport: i0 }); }
@@ -92,14 +96,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
92
96
  providers: [
93
97
  DecimalPipe,
94
98
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DecimalInputDirective), multi: true }
95
- ],
96
- standalone: false
99
+ ]
97
100
  }]
98
101
  }], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
99
102
  type: Self
100
- }] }, { type: i0.Renderer2 }], propDecorators: { buiDecimalInput: [{
101
- type: Input
102
- }], placeholder: [{
103
+ }] }, { type: i0.Renderer2 }], propDecorators: { buiDecimalInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "buiDecimalInput", required: false }] }], placeholder: [{
103
104
  type: HostBinding,
104
105
  args: ['placeholder']
105
106
  }], autocomplete: [{
@@ -124,14 +125,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
124
125
 
125
126
  class DecimalInputModule {
126
127
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DecimalInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
127
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.6", ngImport: i0, type: DecimalInputModule, declarations: [DecimalInputDirective], imports: [CommonModule], exports: [DecimalInputDirective] }); }
128
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DecimalInputModule, imports: [CommonModule] }); }
128
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.6", ngImport: i0, type: DecimalInputModule, imports: [DecimalInputDirective], exports: [DecimalInputDirective] }); }
129
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DecimalInputModule }); }
129
130
  }
130
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DecimalInputModule, decorators: [{
131
132
  type: NgModule,
132
133
  args: [{
133
- declarations: [DecimalInputDirective],
134
- imports: [CommonModule],
134
+ imports: [DecimalInputDirective],
135
135
  exports: [DecimalInputDirective]
136
136
  }]
137
137
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"bravura-ui-decimal-input.mjs","sources":["../../../projects/ui/decimal-input/decimal-input.directive.ts","../../../projects/ui/decimal-input/decimal-input.module.ts","../../../projects/ui/decimal-input/bravura-ui-decimal-input.ts"],"sourcesContent":["import { DecimalPipe } from '@angular/common';\r\nimport {\r\n\tDirective,\r\n\tElementRef,\r\n\tforwardRef,\r\n\tHostBinding,\r\n\tHostListener,\r\n\tInput,\r\n\tOnChanges,\r\n\tRenderer2,\r\n\tSelf\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { noop } from 'rxjs';\r\n\r\n/* tslint:disable:no-empty */\r\nexport const noop_consumer = (_: any) => {};\r\n\r\n/**\r\n * This directive will enhance an input element to format the numbers entered to a decimal amount.\r\n */\r\n@Directive({\r\n\tselector: 'input[buiDecimalInput]',\r\n\tproviders: [\r\n\t\tDecimalPipe,\r\n\t\t{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DecimalInputDirective), multi: true }\r\n\t],\r\n\tstandalone: false\r\n})\r\nexport class DecimalInputDirective implements OnChanges, ControlValueAccessor {\r\n\t/**\r\n\t * number of decimal places allowed\r\n\t */\r\n\t@Input()\r\n\tbuiDecimalInput: number = 2;\r\n\r\n\t@HostBinding('placeholder')\r\n\tplaceholder: string = '';\r\n\r\n\t@HostBinding('autocomplete')\r\n\tautocomplete = 'off';\r\n\r\n\t@HostBinding('type')\r\n\ttype = 'number';\r\n\r\n\t@HostBinding('attr.inputmode')\r\n\tinputMode = 'decimal';\r\n\r\n\tprivate change = noop_consumer;\r\n\tprivate onTouch = noop;\r\n\r\n\tconstructor(\r\n\t\t@Self() private _el: ElementRef<HTMLInputElement>,\r\n\t\tprivate _renderer: Renderer2\r\n\t) {}\r\n\r\n\tngOnChanges(): void {\r\n\t\tthis.buiDecimalInput = this.buiDecimalInput || 2;\r\n\t\tthis.onInput();\r\n\t}\r\n\r\n\t@HostListener('input')\r\n\tonInput() {\r\n\t\tconst value = this._el.nativeElement.value;\r\n\r\n\t\tconst decimalPart = value.split('.')[1];\r\n\r\n\t\tif (decimalPart && decimalPart.length > this.buiDecimalInput) {\r\n\t\t\tconst indexOfPeriod = value.indexOf('.');\r\n\t\t\tconst newValue = value.substring(0, indexOfPeriod + this.buiDecimalInput + 1);\r\n\t\t\tthis._renderer.setProperty(this._el.nativeElement, 'value', newValue);\r\n\t\t}\r\n\t\tconst resolvedValue = this._el.nativeElement.value;\r\n\t\tthis.change(\r\n\t\t\tresolvedValue === '' || resolvedValue === null || resolvedValue === undefined ? null : Number(resolvedValue)\r\n\t\t);\r\n\t}\r\n\r\n\t@HostListener('keypress', ['$event'])\r\n\tonKeypress(evt: KeyboardEvent) {\r\n\t\tconst target = evt.target as HTMLInputElement;\r\n\t\tconst value = target.value;\r\n\t\tconst isSpace = evt.key === ' ';\r\n\r\n\t\tif (\r\n\t\t\tisSpace ||\r\n\t\t\t(!['.', '-'].includes(evt.key) && isNaN(Number(evt.key))) ||\r\n\t\t\t(evt.key === '.' && value.indexOf('.') > 0)\r\n\t\t) {\r\n\t\t\tevt.preventDefault();\r\n\t\t}\r\n\t}\r\n\r\n\t@HostListener('blur')\r\n\tonblur() {\r\n\t\tthis.onTouch();\r\n\t\tthis._resetDecimalPlaces();\r\n\t}\r\n\r\n\twriteValue(value: any) {\r\n\t\tthis._renderer.setProperty(this._el.nativeElement, 'value', value);\r\n\t\tthis._resetDecimalPlaces();\r\n\t}\r\n\r\n\tregisterOnChange(fn: any) {\r\n\t\tthis.change = fn;\r\n\t}\r\n\r\n\tregisterOnTouched(fn: any) {\r\n\t\tthis.onTouch = fn;\r\n\t}\r\n\r\n\tprivate _resetDecimalPlaces() {\r\n\t\tconst value = this._el.nativeElement.value;\r\n\t\tif (value === '' || value === null || value === undefined) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst splitValues = value.split('.');\r\n\t\tlet newValue = '';\r\n\t\tif (splitValues[1] && splitValues[1].length > this.buiDecimalInput) {\r\n\t\t\tnewValue = value.substring(0, splitValues[0].length + 1 + this.buiDecimalInput);\r\n\t\t} else {\r\n\t\t\tthis.buiDecimalInput = this.buiDecimalInput < 0 ? 0 : this.buiDecimalInput;\r\n\t\t\tnewValue = Number(value).toFixed(this.buiDecimalInput);\r\n\t\t}\r\n\t\tthis._renderer.setProperty(this._el.nativeElement, 'value', newValue);\r\n\t}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { DecimalInputDirective } from './decimal-input.directive';\r\n\r\n@NgModule({\r\n\tdeclarations: [DecimalInputDirective],\r\n\timports: [CommonModule],\r\n\texports: [DecimalInputDirective]\r\n})\r\nexport class DecimalInputModule {}\r\nexport { DecimalInputDirective };\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bravura-ui-decimal-input.mjs","sources":["../../../projects/ui/decimal-input/decimal-input.directive.ts","../../../projects/ui/decimal-input/decimal-input.module.ts","../../../projects/ui/decimal-input/bravura-ui-decimal-input.ts"],"sourcesContent":["import { DecimalPipe } from '@angular/common';\nimport {\n\tDirective,\n\tElementRef,\n\tforwardRef,\n\tHostBinding,\n\tHostListener,\n\tinput,\n\tOnChanges,\n\tRenderer2,\n\tSelf\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { noop } from 'rxjs';\n\n/* tslint:disable:no-empty */\nexport const noop_consumer = (_: any) => {};\n\nconst optionalValue = (defaultValue: number) => (v: unknown) => {\n\tif (v === '' || v === null || v === undefined || !Number.isFinite(v) || Number(v) < 0) {\n\t\treturn defaultValue;\n\t}\n\treturn Number(v);\n};\n\n/**\n * This directive will enhance an input element to format the numbers entered to a decimal amount.\n */\n@Directive({\n\tselector: 'input[buiDecimalInput]',\n\tproviders: [\n\t\tDecimalPipe,\n\t\t{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DecimalInputDirective), multi: true }\n\t]\n})\nexport class DecimalInputDirective implements OnChanges, ControlValueAccessor {\n\t/**\n\t * number of decimal places allowed\n\t */\n\n\tbuiDecimalInput = input(2, {\n\t\ttransform: optionalValue(2)\n\t});\n\n\t@HostBinding('placeholder')\n\tplaceholder: string = '';\n\n\t@HostBinding('autocomplete')\n\tautocomplete = 'off';\n\n\t@HostBinding('type')\n\ttype = 'number';\n\n\t@HostBinding('attr.inputmode')\n\tinputMode = 'decimal';\n\n\tprivate change = noop_consumer;\n\tprivate onTouch = noop;\n\n\tconstructor(\n\t\t@Self() private _el: ElementRef<HTMLInputElement>,\n\t\tprivate _renderer: Renderer2\n\t) {}\n\n\tngOnChanges(): void {\n\t\tthis.onInput();\n\t}\n\n\t@HostListener('input')\n\tonInput() {\n\t\tconst value = this._el.nativeElement.value;\n\n\t\tconst decimalPart = value.split('.')[1];\n\n\t\tif (decimalPart && decimalPart.length > this.buiDecimalInput()) {\n\t\t\tconst indexOfPeriod = value.indexOf('.');\n\t\t\tconst newValue = value.substring(0, indexOfPeriod + this.buiDecimalInput() + 1);\n\t\t\tthis._renderer.setProperty(this._el.nativeElement, 'value', newValue);\n\t\t}\n\t\tconst resolvedValue = this._el.nativeElement.value;\n\t\tthis.change(\n\t\t\tresolvedValue === '' || resolvedValue === null || resolvedValue === undefined ? null : Number(resolvedValue)\n\t\t);\n\t}\n\n\t@HostListener('keypress', ['$event'])\n\tonKeypress(evt: KeyboardEvent) {\n\t\tconst target = evt.target as HTMLInputElement;\n\t\tconst value = target.value;\n\t\tconst isSpace = evt.key === ' ';\n\n\t\tif (\n\t\t\tisSpace ||\n\t\t\t(!['.', '-'].includes(evt.key) && isNaN(Number(evt.key))) ||\n\t\t\t(evt.key === '.' && value.indexOf('.') > 0)\n\t\t) {\n\t\t\tevt.preventDefault();\n\t\t}\n\t}\n\n\t@HostListener('blur')\n\tonblur() {\n\t\tthis.onTouch();\n\t\tthis._resetDecimalPlaces();\n\t}\n\n\twriteValue(value: any) {\n\t\tthis._renderer.setProperty(this._el.nativeElement, 'value', value);\n\t\tthis._resetDecimalPlaces();\n\t}\n\n\tregisterOnChange(fn: any) {\n\t\tthis.change = fn;\n\t}\n\n\tregisterOnTouched(fn: any) {\n\t\tthis.onTouch = fn;\n\t}\n\n\tprivate _resetDecimalPlaces() {\n\t\tconst value = this._el.nativeElement.value;\n\t\tif (value === '' || value === null || value === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tconst splitValues = value.split('.');\n\t\tlet newValue = '';\n\t\tif (splitValues[1] && splitValues[1].length > this.buiDecimalInput()) {\n\t\t\tnewValue = value.substring(0, splitValues[0].length + 1 + this.buiDecimalInput());\n\t\t} else {\n\t\t\tnewValue = Number(value).toFixed(this.buiDecimalInput());\n\t\t}\n\t\tthis._renderer.setProperty(this._el.nativeElement, 'value', newValue);\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport { DecimalInputDirective } from './decimal-input.directive';\n\n@NgModule({\n\timports: [DecimalInputDirective],\n\texports: [DecimalInputDirective]\n})\nexport class DecimalInputModule {}\nexport { DecimalInputDirective };\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -24,11 +24,16 @@ const BUI_FORM_FIELD_CONFIG = new InjectionToken('@bravura/ui/buiFormFieldConfig
24
24
  */
25
25
  class FormFieldComponent extends MatFormField {
26
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: FormFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.6", type: FormFieldComponent, isStandalone: false, selector: "bui-dummy-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true, styles: [".bui-form-field-bound,.bui-form-field-detach{padding-top:24px;--mat-mdc-form-field-floating-label-scale: 1 !important;--mat-mdc-form-field-floating-label-translate-y: -3.3rem}.bui-form-field-bound .mdc-floating-label,.bui-form-field-detach .mdc-floating-label{--mat-mdc-form-field-label-transform: translateY(var(--mat-mdc-form-field-floating-label-translate-y)) translateX(-4px) scale(var(--mat-mdc-form-field-floating-label-scale, .75)) !important}[dir=rtl] .bui-form-field-bound .mdc-floating-label,[dir=rtl] .bui-form-field-detach .mdc-floating-label{--mat-mdc-form-field-label-transform: translateY(var(--mat-mdc-form-field-floating-label-translate-y)) translateX(4px) scale(var(--mat-mdc-form-field-floating-label-scale, .75)) !important}.bui-form-field-bound .mdc-floating-label,.bui-form-field-detach .mdc-floating-label{transition:none!important}.bui-form-field-bound .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix,.bui-form-field-detach .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{display:flex;flex-direction:column;justify-content:center;align-self:stretch}.bui-form-field-bound.mat-focused{--mat-mdc-form-field-floating-label-translate-y: calc(-3.3rem - 1px) }.bui-form-field-bound .mat-mdc-form-field-hint-wrapper,.bui-form-field-bound .mat-mdc-form-field-error-wrapper{padding-left:initial;padding-inline-start:4px}.bui-form-field-bound .mat-mdc-form-field-infix{min-height:48px}.bui-form-field-bound .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.bui-form-field-bound .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:4px}.bui-form-field-bound .mdc-notched-outline--notched .mdc-notched-outline__notch{border-top-width:1px;border-top-style:solid}.bui-form-field-bound .mdc-text-field--focused .mdc-notched-outline--notched .mdc-notched-outline__notch{border-top-width:2px}.bui-form-field-bound .mat-mdc-form-field-icon-prefix>.mat-icon{padding:0 6px 0 12px}.bui-form-field-bound .mat-mdc-form-field-icon-prefix>span,.bui-form-field-bound .mat-mdc-form-field-icon-prefix>div{padding-inline-start:6px}.bui-form-field-bound .mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px 0 6px}.bui-form-field-bound .mat-mdc-form-field-icon-suffix>span,.bui-form-field-bound .mat-mdc-form-field-icon-suffix>div{padding-inline-end:6px}.bui-form-field-detach .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:0;padding-bottom:0}.bui-form-field-detach .mat-mdc-form-field-hint-wrapper,.bui-form-field-detach .mat-mdc-form-field-error-wrapper{padding-inline-start:0}.bui-form-field-detach .mat-mdc-form-field-infix{min-height:40px}.bui-form-field-detach .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.bui-form-field-detach .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.bui-form-field-detach .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{border:none!important}.bui-form-field-detach .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:0}.bui-form-field-detach .mat-mdc-text-field-wrapper.mdc-text-field--outlined{padding-inline-start:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.6", type: FormFieldComponent, isStandalone: true, selector: "bui-dummy-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
28
28
  }
29
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: FormFieldComponent, decorators: [{
30
30
  type: Component,
31
- args: [{ selector: 'bui-dummy-component', template: ``, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: [".bui-form-field-bound,.bui-form-field-detach{padding-top:24px;--mat-mdc-form-field-floating-label-scale: 1 !important;--mat-mdc-form-field-floating-label-translate-y: -3.3rem}.bui-form-field-bound .mdc-floating-label,.bui-form-field-detach .mdc-floating-label{--mat-mdc-form-field-label-transform: translateY(var(--mat-mdc-form-field-floating-label-translate-y)) translateX(-4px) scale(var(--mat-mdc-form-field-floating-label-scale, .75)) !important}[dir=rtl] .bui-form-field-bound .mdc-floating-label,[dir=rtl] .bui-form-field-detach .mdc-floating-label{--mat-mdc-form-field-label-transform: translateY(var(--mat-mdc-form-field-floating-label-translate-y)) translateX(4px) scale(var(--mat-mdc-form-field-floating-label-scale, .75)) !important}.bui-form-field-bound .mdc-floating-label,.bui-form-field-detach .mdc-floating-label{transition:none!important}.bui-form-field-bound .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix,.bui-form-field-detach .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{display:flex;flex-direction:column;justify-content:center;align-self:stretch}.bui-form-field-bound.mat-focused{--mat-mdc-form-field-floating-label-translate-y: calc(-3.3rem - 1px) }.bui-form-field-bound .mat-mdc-form-field-hint-wrapper,.bui-form-field-bound .mat-mdc-form-field-error-wrapper{padding-left:initial;padding-inline-start:4px}.bui-form-field-bound .mat-mdc-form-field-infix{min-height:48px}.bui-form-field-bound .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.bui-form-field-bound .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:4px}.bui-form-field-bound .mdc-notched-outline--notched .mdc-notched-outline__notch{border-top-width:1px;border-top-style:solid}.bui-form-field-bound .mdc-text-field--focused .mdc-notched-outline--notched .mdc-notched-outline__notch{border-top-width:2px}.bui-form-field-bound .mat-mdc-form-field-icon-prefix>.mat-icon{padding:0 6px 0 12px}.bui-form-field-bound .mat-mdc-form-field-icon-prefix>span,.bui-form-field-bound .mat-mdc-form-field-icon-prefix>div{padding-inline-start:6px}.bui-form-field-bound .mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px 0 6px}.bui-form-field-bound .mat-mdc-form-field-icon-suffix>span,.bui-form-field-bound .mat-mdc-form-field-icon-suffix>div{padding-inline-end:6px}.bui-form-field-detach .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:0;padding-bottom:0}.bui-form-field-detach .mat-mdc-form-field-hint-wrapper,.bui-form-field-detach .mat-mdc-form-field-error-wrapper{padding-inline-start:0}.bui-form-field-detach .mat-mdc-form-field-infix{min-height:40px}.bui-form-field-detach .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.bui-form-field-detach .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.bui-form-field-detach .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{border:none!important}.bui-form-field-detach .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:0}.bui-form-field-detach .mat-mdc-text-field-wrapper.mdc-text-field--outlined{padding-inline-start:0}\n"] }]
31
+ args: [{
32
+ selector: 'bui-dummy-component',
33
+ template: ``,
34
+ encapsulation: ViewEncapsulation.None,
35
+ changeDetection: ChangeDetectionStrategy.OnPush
36
+ }]
32
37
  }] });
33
38
  /**
34
39
  * @ignore
@@ -58,7 +63,7 @@ class FormFieldStyleDirective {
58
63
  this.appearance = config.appearance;
59
64
  }
60
65
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: FormFieldStyleDirective, deps: [{ token: i1.MatFormField, host: true }, { token: i0.ElementRef }, { token: BUI_FORM_FIELD_CONFIG }], target: i0.ɵɵFactoryTarget.Directive }); }
61
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.6", type: FormFieldStyleDirective, isStandalone: false, selector: "bui-form-field, mat-form-field", inputs: { appearance: "appearance" }, host: { classAttribute: "bui-host" }, ngImport: i0 }); }
66
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.6", type: FormFieldStyleDirective, isStandalone: true, selector: "bui-form-field, mat-form-field", inputs: { appearance: "appearance" }, host: { classAttribute: "bui-host" }, ngImport: i0 }); }
62
67
  }
63
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: FormFieldStyleDirective, decorators: [{
64
69
  type: Directive,
@@ -66,8 +71,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
66
71
  selector: 'bui-form-field, mat-form-field',
67
72
  host: {
68
73
  class: 'bui-host'
69
- },
70
- standalone: false
74
+ }
71
75
  }]
72
76
  }], ctorParameters: () => [{ type: i1.MatFormField, decorators: [{
73
77
  type: Host
@@ -99,15 +103,14 @@ class FormFieldModule {
99
103
  };
100
104
  }
101
105
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: FormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
102
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.6", ngImport: i0, type: FormFieldModule, declarations: [FormFieldComponent, FormFieldStyleDirective], imports: [CommonModule, MatFormFieldModule, ObserversModule], exports: [FormFieldComponent, FormFieldStyleDirective, MatFormFieldModule] }); }
103
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: FormFieldModule, imports: [CommonModule, MatFormFieldModule, ObserversModule, MatFormFieldModule] }); }
106
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.6", ngImport: i0, type: FormFieldModule, imports: [CommonModule, MatFormFieldModule, ObserversModule, FormFieldComponent, FormFieldStyleDirective], exports: [FormFieldComponent, FormFieldStyleDirective] }); }
107
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: FormFieldModule, imports: [CommonModule, MatFormFieldModule, ObserversModule] }); }
104
108
  }
105
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: FormFieldModule, decorators: [{
106
110
  type: NgModule,
107
111
  args: [{
108
- declarations: [FormFieldComponent, FormFieldStyleDirective],
109
- imports: [CommonModule, MatFormFieldModule, ObserversModule],
110
- exports: [FormFieldComponent, FormFieldStyleDirective, MatFormFieldModule]
112
+ imports: [CommonModule, MatFormFieldModule, ObserversModule, FormFieldComponent, FormFieldStyleDirective],
113
+ exports: [FormFieldComponent, FormFieldStyleDirective]
111
114
  }]
112
115
  }] });
113
116
 
@@ -1 +1 @@
1
- {"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 {\r\n\tChangeDetectionStrategy,\r\n\tComponent,\r\n\tDirective,\r\n\tElementRef,\r\n\tHost,\r\n\tInject,\r\n\tInjectionToken,\r\n\tInput,\r\n\tViewEncapsulation\r\n} from '@angular/core';\r\nimport { MatFormField } from '@angular/material/form-field';\r\n\r\nexport interface BuiFormFieldConfig {\r\n\tappearance?: 'fill' | 'outline' | 'bound';\r\n}\r\n\r\nexport const BUI_FORM_FIELD_CONFIG = new InjectionToken<BuiFormFieldConfig>('@bravura/ui/buiFormFieldConfig', {\r\n\tfactory: () => ({ appearance: 'fill' }),\r\n\tprovidedIn: 'root'\r\n});\r\n/**\r\n * Container for form controls that applies Material Design styling and behavior.\r\n *\r\n * This component extends Angular Material's [mat-form-field](https://material.angular.io/components/form-field) and provides two additional appearances\r\n * `bound` and `detach`. `bound` renders the label outside the outlined area of the field, while `detach` remove the borders all together. `detach`\r\n * is generally used with form controls that render their own borders.\r\n *\r\n * ** IMPORTANT NOTICE **\r\n *\r\n * From version 3.0 onward, the selector `bui-form-field` is deprecated and will be removed in later releases. You no longer need to use this tag name\r\n * for the new appearances. As long as you import the `NgModule` from this package, the new appearances will be supported by Material's `mat-form-field`\r\n * component.\r\n */\r\n@Component({\r\n\tselector: 'bui-dummy-component',\r\n\ttemplate: ``,\r\n\tstyleUrls: ['./form-field.component.scss'],\r\n\tencapsulation: ViewEncapsulation.None,\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tstandalone: false\r\n})\r\nexport class FormFieldComponent extends MatFormField {}\r\n\r\n/**\r\n * @ignore\r\n */\r\n@Directive({\r\n\tselector: 'bui-form-field, mat-form-field',\r\n\thost: {\r\n\t\tclass: 'bui-host'\r\n\t},\r\n\tstandalone: false\r\n})\r\nexport class FormFieldStyleDirective {\r\n\tprivate _appearance: any;\r\n\tprivate _flowDetection: any;\r\n\r\n\t/** The form field appearance style. */\r\n\t@Input()\r\n\tget appearance(): any {\r\n\t\treturn this._appearance;\r\n\t}\r\n\tset appearance(value: any) {\r\n\t\tthis._appearance = value;\r\n\t\tthis.elemRef.nativeElement.classList.remove('bui-form-field-bound', 'bui-form-field-detach');\r\n\t\tif (['bound', 'detach'].includes(this._appearance)) {\r\n\t\t\tthis.matFormField.appearance = 'outline';\r\n\t\t\tthis.elemRef.nativeElement.classList.add(`bui-form-field-${value}`);\r\n\t\t\tthis.matFormField._shouldAlwaysFloat = () => true;\r\n\t\t} else {\r\n\t\t\tthis.matFormField.appearance = ['outline', 'fill'].includes(this._appearance) ? this._appearance : undefined;\r\n\t\t\tthis.matFormField._shouldAlwaysFloat = this._flowDetection;\r\n\t\t}\r\n\t}\r\n\r\n\tconstructor(\r\n\t\t@Host() private matFormField: MatFormField,\r\n\t\tprivate elemRef: ElementRef<HTMLElement>,\r\n\t\t@Inject(BUI_FORM_FIELD_CONFIG) config: BuiFormFieldConfig\r\n\t) {\r\n\t\tthis._flowDetection = matFormField._shouldAlwaysFloat;\r\n\t\tthis.appearance = config.appearance;\r\n\t}\r\n}\r\n\r\nconst matFormFieldRef: any = MatFormField.ɵcmp;\r\nconst formFieldRef: any = FormFieldComponent.ɵcmp;\r\n\r\nmatFormFieldRef.styles.push(...formFieldRef.styles);\r\nmatFormFieldRef.selectors.push(['bui-form-field']);\r\ndelete matFormFieldRef.inputs.appearance;\r\ndelete matFormFieldRef.declaredInputs.appearance;\r\n","import { ObserversModule } from '@angular/cdk/observers';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport {\r\n\tBuiFormFieldConfig,\r\n\tBUI_FORM_FIELD_CONFIG,\r\n\tFormFieldComponent,\r\n\tFormFieldStyleDirective\r\n} from './form-field.component';\r\n\r\n@NgModule({\r\n\tdeclarations: [FormFieldComponent, FormFieldStyleDirective],\r\n\timports: [CommonModule, MatFormFieldModule, ObserversModule],\r\n\texports: [FormFieldComponent, FormFieldStyleDirective, MatFormFieldModule]\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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"}
1
+ {"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 {\n\tChangeDetectionStrategy,\n\tComponent,\n\tDirective,\n\tElementRef,\n\tHost,\n\tInject,\n\tInjectionToken,\n\tInput,\n\tViewEncapsulation\n} 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/**\n * Container for form controls that applies Material Design styling and behavior.\n *\n * This component extends Angular Material's [mat-form-field](https://material.angular.io/components/form-field) and provides two additional appearances\n * `bound` and `detach`. `bound` renders the label outside the outlined area of the field, while `detach` remove the borders all together. `detach`\n * is generally used with form controls that render their own borders.\n *\n * ** IMPORTANT NOTICE **\n *\n * From version 3.0 onward, the selector `bui-form-field` is deprecated and will be removed in later releases. You no longer need to use this tag name\n * for the new appearances. As long as you import the `NgModule` from this package, the new appearances will be supported by Material's `mat-form-field`\n * component.\n */\n@Component({\n\tselector: 'bui-dummy-component',\n\ttemplate: ``,\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormFieldComponent extends MatFormField {}\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;\nconst formFieldRef: any = FormFieldComponent.ɵcmp;\n\nmatFormFieldRef.styles.push(...formFieldRef.styles);\nmatFormFieldRef.selectors.push(['bui-form-field']);\ndelete matFormFieldRef.inputs.appearance;\ndelete matFormFieldRef.declaredInputs.appearance;\n","import { ObserversModule } from '@angular/cdk/observers';\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport {\n\tBuiFormFieldConfig,\n\tBUI_FORM_FIELD_CONFIG,\n\tFormFieldComponent,\n\tFormFieldStyleDirective\n} from './form-field.component';\n\n@NgModule({\n\timports: [CommonModule, MatFormFieldModule, ObserversModule, FormFieldComponent, FormFieldStyleDirective],\n\texports: [FormFieldComponent, FormFieldStyleDirective]\n})\nexport class FormFieldModule {\n\tstatic forConfig(config: BuiFormFieldConfig): ModuleWithProviders<FormFieldModule> {\n\t\tconst cfg = { ...config };\n\t\tcfg.appearance = cfg.appearance || 'fill';\n\t\treturn {\n\t\t\tngModule: FormFieldModule,\n\t\t\tproviders: [\n\t\t\t\t{\n\t\t\t\t\tprovide: BUI_FORM_FIELD_CONFIG,\n\t\t\t\t\tuseValue: cfg\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ $offset: -3.3rem;
2
+
3
+ .bui-form-field-bound,
4
+ .bui-form-field-detach {
5
+ padding-top: 24px;
6
+
7
+ --mat-mdc-form-field-floating-label-scale: 1 !important;
8
+ --mat-mdc-form-field-floating-label-translate-y: #{$offset};
9
+
10
+ .mdc-floating-label {
11
+ --mat-mdc-form-field-label-transform: translateY(var(--mat-mdc-form-field-floating-label-translate-y))
12
+ translateX(-4px) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75)) !important;
13
+ [dir='rtl'] & {
14
+ --mat-mdc-form-field-label-transform: translateY(var(--mat-mdc-form-field-floating-label-translate-y))
15
+ translateX(4px) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75)) !important;
16
+ }
17
+ transition: none !important;
18
+ }
19
+
20
+ .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix {
21
+ display: flex;
22
+ flex-direction: column;
23
+ justify-content: center;
24
+ align-self: stretch;
25
+ }
26
+ }
27
+
28
+ .bui-form-field-bound {
29
+ &.mat-focused {
30
+ --mat-mdc-form-field-floating-label-translate-y: calc(#{$offset} - 1px);
31
+ }
32
+
33
+ .mat-mdc-form-field-hint-wrapper,
34
+ .mat-mdc-form-field-error-wrapper {
35
+ padding-left: initial;
36
+ padding-inline-start: 4px;
37
+ }
38
+
39
+ .mat-mdc-form-field-infix {
40
+ min-height: 48px;
41
+ }
42
+
43
+ .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix {
44
+ padding-top: 8px;
45
+ padding-bottom: 8px;
46
+ }
47
+
48
+ .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading {
49
+ width: 4px;
50
+ }
51
+
52
+ .mdc-notched-outline--notched .mdc-notched-outline__notch {
53
+ border-top-width: 1px;
54
+ border-top-style: solid;
55
+ }
56
+
57
+ .mdc-text-field--focused .mdc-notched-outline--notched .mdc-notched-outline__notch {
58
+ border-top-width: 2px;
59
+ }
60
+
61
+ .mat-mdc-form-field-icon-prefix {
62
+ & > .mat-icon {
63
+ padding: 0 6px 0 12px;
64
+ }
65
+ & > span,
66
+ & > div {
67
+ padding-inline-start: 6px;
68
+ }
69
+ }
70
+
71
+ .mat-mdc-form-field-icon-suffix {
72
+ & > .mat-icon {
73
+ padding: 0 12px 0 6px;
74
+ }
75
+ & > span,
76
+ & > div {
77
+ padding-inline-end: 6px;
78
+ }
79
+ }
80
+ }
81
+
82
+ .bui-form-field-detach {
83
+ .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix {
84
+ padding-top: 0px;
85
+ padding-bottom: 0px;
86
+ }
87
+
88
+ .mat-mdc-form-field-hint-wrapper,
89
+ .mat-mdc-form-field-error-wrapper {
90
+ padding-inline-start: 0;
91
+ }
92
+
93
+ .mat-mdc-form-field-infix {
94
+ min-height: 40px;
95
+ }
96
+
97
+ .mdc-text-field--outlined .mdc-notched-outline {
98
+ .mdc-notched-outline__leading,
99
+ .mdc-notched-outline__trailing,
100
+ .mdc-notched-outline__notch {
101
+ border: none !important;
102
+ }
103
+
104
+ .mdc-notched-outline__leading {
105
+ width: 0;
106
+ }
107
+ }
108
+
109
+ .mat-mdc-text-field-wrapper.mdc-text-field--outlined {
110
+ padding-inline-start: 0;
111
+ }
112
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bravura/ui",
3
3
  "description": "Bravura UI Components for Angular applications",
4
- "version": "9.0.3",
4
+ "version": "9.0.5",
5
5
  "keywords": [
6
6
  "Angular",
7
7
  "Angular Material",
@@ -1,101 +1,102 @@
1
- @use 'sass:map';
2
- @use '@angular/material' as mat;
3
- @use './scrollbar.scss' as scrollbar;
4
- @use './bui-card' as card;
5
- @use './ui-theme-legacy' as legacy;
6
- @use '../stepper/stepper-theme' as stepper;
7
- @use '../radio-panel/radio-panel-theme' as radio;
8
- @use '../selection-panel/selection-panel-theme' as selection;
9
-
10
- $default-border-color-transition: border-color 100ms cubic-bezier(0.55, 0, 0.55, 0.2);
11
- $mat-foreground-extract: (
12
- 'secondary-text': 'light',
13
- 'hint-text': 'muted',
14
- 'divider': 'divider',
15
- 'base': 'base',
16
- 'inactive': 'inactive'
17
- );
18
-
19
- $mat-background-extract: (
20
- 'card': 'card',
21
- 'background': 'body'
22
- );
23
-
24
- @mixin all-component-colors($theme, $border-color-transition: $default-border-color-transition) {
25
- @if (mat.get-theme-version($theme) == 1) {
26
- @include stepper.color($theme);
27
- @include radio.color($theme);
28
- @include selection.color($theme);
29
-
30
- .bui-border-emphasis:hover {
31
- border-color: currentColor !important;
32
- transition: $border-color-transition;
33
- }
34
-
35
- // @include card.bui-card($color-config);
36
- @each $p in (primary, tertiary, secondary, error) {
37
- $c: mat.get-theme-color($theme, $p);
38
- @include apply-color($p, $c, $border-color-transition);
39
- }
40
-
41
- .bui-host {
42
- @each $p in (primary, tertiary, secondary, error) {
43
- $c: mat.get-theme-color($theme, $p);
44
- --bui-color-#{$p}: #{$c};
45
- }
46
-
47
- @if mat.get-theme-type($theme) != dark {
48
- --bui-color-success: #519602;
49
- --bui-color-info: #0dcaf0;
50
- --bui-color-warning: #ffc107;
51
- --bui-color-error: #dc3545;
52
- }
53
- }
54
- } @else {
55
- @include legacy.apply-colors($theme);
56
- }
57
- }
58
-
59
- @mixin apply-color($name, $color, $border-color-transition: $default-border-color-transition) {
60
- .bui-border-#{$name} {
61
- border-color: $color !important;
62
- transition: $border-color-transition;
63
- }
64
- .bui-bg-#{$name} {
65
- background-color: $color !important;
66
- }
67
- .bui-color-#{$name} {
68
- color: $color !important;
69
- }
70
- .bui-outline-#{$name} {
71
- outline-color: $color !important;
72
- }
73
- }
74
-
75
- @mixin apply-colors($theme, $border-color-transition: $default-border-color-transition) {
76
- @include all-component-colors($theme, $border-color-transition);
77
- }
78
-
79
- @mixin theme($theme, $border-color-transition: $default-border-color-transition) {
80
- @if (mat.get-theme-version($theme) == 1) {
81
- @include apply-colors($theme, $border-color-transition);
82
- @include stepper.theme($theme);
83
- @include radio.theme($theme);
84
- @include selection.theme($theme);
85
- @include scrollbar.bui-scrollbar;
86
-
87
- .mat-icon {
88
- &.fas,
89
- &.far,
90
- &.fab,
91
- &.fa {
92
- display: inline-flex;
93
- justify-content: center;
94
- align-items: center;
95
- font-size: 20px;
96
- }
97
- }
98
- } @else {
99
- @include legacy.theme($theme);
100
- }
101
- }
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+ @use './scrollbar.scss' as scrollbar;
4
+ @use './bui-card' as card;
5
+ @use './ui-theme-legacy' as legacy;
6
+ @use '../stepper/stepper-theme' as stepper;
7
+ @use '../radio-panel/radio-panel-theme' as radio;
8
+ @use '../selection-panel/selection-panel-theme' as selection;
9
+ @use '../form-field/form-field-theme';
10
+
11
+ $default-border-color-transition: border-color 100ms cubic-bezier(0.55, 0, 0.55, 0.2);
12
+ $mat-foreground-extract: (
13
+ 'secondary-text': 'light',
14
+ 'hint-text': 'muted',
15
+ 'divider': 'divider',
16
+ 'base': 'base',
17
+ 'inactive': 'inactive'
18
+ );
19
+
20
+ $mat-background-extract: (
21
+ 'card': 'card',
22
+ 'background': 'body'
23
+ );
24
+
25
+ @mixin all-component-colors($theme, $border-color-transition: $default-border-color-transition) {
26
+ @if (mat.get-theme-version($theme) == 1) {
27
+ @include stepper.color($theme);
28
+ @include radio.color($theme);
29
+ @include selection.color($theme);
30
+
31
+ .bui-border-emphasis:hover {
32
+ border-color: currentColor !important;
33
+ transition: $border-color-transition;
34
+ }
35
+
36
+ // @include card.bui-card($color-config);
37
+ @each $p in (primary, tertiary, secondary, error) {
38
+ $c: mat.get-theme-color($theme, $p);
39
+ @include apply-color($p, $c, $border-color-transition);
40
+ }
41
+
42
+ .bui-host {
43
+ @each $p in (primary, tertiary, secondary, error) {
44
+ $c: mat.get-theme-color($theme, $p);
45
+ --bui-color-#{$p}: #{$c};
46
+ }
47
+
48
+ @if mat.get-theme-type($theme) != dark {
49
+ --bui-color-success: #519602;
50
+ --bui-color-info: #0dcaf0;
51
+ --bui-color-warning: #ffc107;
52
+ --bui-color-error: #dc3545;
53
+ }
54
+ }
55
+ } @else {
56
+ @include legacy.apply-colors($theme);
57
+ }
58
+ }
59
+
60
+ @mixin apply-color($name, $color, $border-color-transition: $default-border-color-transition) {
61
+ .bui-border-#{$name} {
62
+ border-color: $color !important;
63
+ transition: $border-color-transition;
64
+ }
65
+ .bui-bg-#{$name} {
66
+ background-color: $color !important;
67
+ }
68
+ .bui-color-#{$name} {
69
+ color: $color !important;
70
+ }
71
+ .bui-outline-#{$name} {
72
+ outline-color: $color !important;
73
+ }
74
+ }
75
+
76
+ @mixin apply-colors($theme, $border-color-transition: $default-border-color-transition) {
77
+ @include all-component-colors($theme, $border-color-transition);
78
+ }
79
+
80
+ @mixin theme($theme, $border-color-transition: $default-border-color-transition) {
81
+ @if (mat.get-theme-version($theme) == 1) {
82
+ @include apply-colors($theme, $border-color-transition);
83
+ @include stepper.theme($theme);
84
+ @include radio.theme($theme);
85
+ @include selection.theme($theme);
86
+ @include scrollbar.bui-scrollbar;
87
+
88
+ .mat-icon {
89
+ &.fas,
90
+ &.far,
91
+ &.fab,
92
+ &.fa {
93
+ display: inline-flex;
94
+ justify-content: center;
95
+ align-items: center;
96
+ font-size: 20px;
97
+ }
98
+ }
99
+ } @else {
100
+ @include legacy.theme($theme);
101
+ }
102
+ }
@@ -1,7 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { OnChanges, ElementRef, Renderer2 } from '@angular/core';
3
3
  import { ControlValueAccessor } from '@angular/forms';
4
- import * as i2 from '@angular/common';
5
4
 
6
5
  /**
7
6
  * This directive will enhance an input element to format the numbers entered to a decimal amount.
@@ -12,7 +11,7 @@ declare class DecimalInputDirective implements OnChanges, ControlValueAccessor {
12
11
  /**
13
12
  * number of decimal places allowed
14
13
  */
15
- buiDecimalInput: number;
14
+ buiDecimalInput: i0.InputSignalWithTransform<number, unknown>;
16
15
  placeholder: string;
17
16
  autocomplete: string;
18
17
  type: string;
@@ -29,12 +28,12 @@ declare class DecimalInputDirective implements OnChanges, ControlValueAccessor {
29
28
  registerOnTouched(fn: any): void;
30
29
  private _resetDecimalPlaces;
31
30
  static ɵfac: i0.ɵɵFactoryDeclaration<DecimalInputDirective, [{ self: true; }, null]>;
32
- static ɵdir: i0.ɵɵDirectiveDeclaration<DecimalInputDirective, "input[buiDecimalInput]", never, { "buiDecimalInput": { "alias": "buiDecimalInput"; "required": false; }; }, {}, never, never, false, never>;
31
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DecimalInputDirective, "input[buiDecimalInput]", never, { "buiDecimalInput": { "alias": "buiDecimalInput"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
33
32
  }
34
33
 
35
34
  declare class DecimalInputModule {
36
35
  static ɵfac: i0.ɵɵFactoryDeclaration<DecimalInputModule, never>;
37
- static ɵmod: i0.ɵɵNgModuleDeclaration<DecimalInputModule, [typeof DecimalInputDirective], [typeof i2.CommonModule], [typeof DecimalInputDirective]>;
36
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DecimalInputModule, never, [typeof DecimalInputDirective], [typeof DecimalInputDirective]>;
38
37
  static ɵinj: i0.ɵɵInjectorDeclaration<DecimalInputModule>;
39
38
  }
40
39
 
@@ -1,9 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { ElementRef, ModuleWithProviders } from '@angular/core';
3
- import * as i3 from '@angular/material/form-field';
3
+ import * as i2 from '@angular/material/form-field';
4
4
  import { MatFormField } from '@angular/material/form-field';
5
- import * as i2 from '@angular/common';
6
- import * as i4 from '@angular/cdk/observers';
5
+ import * as i1 from '@angular/common';
6
+ import * as i3 from '@angular/cdk/observers';
7
7
 
8
8
  interface BuiFormFieldConfig {
9
9
  appearance?: 'fill' | 'outline' | 'bound';
@@ -23,7 +23,7 @@ interface BuiFormFieldConfig {
23
23
  */
24
24
  declare class FormFieldComponent extends MatFormField {
25
25
  static ɵfac: i0.ɵɵFactoryDeclaration<FormFieldComponent, never>;
26
- static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "bui-dummy-component", never, {}, {}, never, never, false, never>;
26
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "bui-dummy-component", never, {}, {}, never, never, true, never>;
27
27
  }
28
28
  /**
29
29
  * @ignore
@@ -38,13 +38,13 @@ declare class FormFieldStyleDirective {
38
38
  set appearance(value: any);
39
39
  constructor(matFormField: MatFormField, elemRef: ElementRef<HTMLElement>, config: BuiFormFieldConfig);
40
40
  static ɵfac: i0.ɵɵFactoryDeclaration<FormFieldStyleDirective, [{ host: true; }, null, null]>;
41
- static ɵdir: i0.ɵɵDirectiveDeclaration<FormFieldStyleDirective, "bui-form-field, mat-form-field", never, { "appearance": { "alias": "appearance"; "required": false; }; }, {}, never, never, false, never>;
41
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FormFieldStyleDirective, "bui-form-field, mat-form-field", never, { "appearance": { "alias": "appearance"; "required": false; }; }, {}, never, never, true, never>;
42
42
  }
43
43
 
44
44
  declare class FormFieldModule {
45
45
  static forConfig(config: BuiFormFieldConfig): ModuleWithProviders<FormFieldModule>;
46
46
  static ɵfac: i0.ɵɵFactoryDeclaration<FormFieldModule, never>;
47
- static ɵmod: i0.ɵɵNgModuleDeclaration<FormFieldModule, [typeof FormFieldComponent, typeof FormFieldStyleDirective], [typeof i2.CommonModule, typeof i3.MatFormFieldModule, typeof i4.ObserversModule], [typeof FormFieldComponent, typeof FormFieldStyleDirective, typeof i3.MatFormFieldModule]>;
47
+ static ɵmod: i0.ɵɵNgModuleDeclaration<FormFieldModule, never, [typeof i1.CommonModule, typeof i2.MatFormFieldModule, typeof i3.ObserversModule, typeof FormFieldComponent, typeof FormFieldStyleDirective], [typeof FormFieldComponent, typeof FormFieldStyleDirective]>;
48
48
  static ɵinj: i0.ɵɵInjectorDeclaration<FormFieldModule>;
49
49
  }
50
50