@bravura/ui 7.0.0 → 8.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.
- package/CHANGELOG.md +15 -4
- package/fesm2022/bravura-ui-alert.mjs +13 -13
- package/fesm2022/bravura-ui-alert.mjs.map +1 -1
- package/fesm2022/bravura-ui-behavior.mjs +16 -16
- package/fesm2022/bravura-ui-behavior.mjs.map +1 -1
- package/fesm2022/bravura-ui-clip-note.mjs +10 -10
- package/fesm2022/bravura-ui-clip-note.mjs.map +1 -1
- package/fesm2022/bravura-ui-common.mjs +4 -4
- package/fesm2022/bravura-ui-common.mjs.map +1 -1
- package/fesm2022/bravura-ui-currency-input.mjs +7 -7
- package/fesm2022/bravura-ui-currency-input.mjs.map +1 -1
- package/fesm2022/bravura-ui-decimal-input.mjs +7 -7
- package/fesm2022/bravura-ui-decimal-input.mjs.map +1 -1
- package/fesm2022/bravura-ui-discrete-input.mjs +8 -8
- package/fesm2022/bravura-ui-discrete-input.mjs.map +1 -1
- package/fesm2022/bravura-ui-file-upload.mjs +11 -11
- package/fesm2022/bravura-ui-file-upload.mjs.map +1 -1
- package/fesm2022/bravura-ui-form-field.mjs +11 -11
- package/fesm2022/bravura-ui-form-field.mjs.map +1 -1
- package/fesm2022/bravura-ui-icon-font.mjs +7 -7
- package/fesm2022/bravura-ui-icon-font.mjs.map +1 -1
- package/fesm2022/bravura-ui-panel.mjs +13 -13
- package/fesm2022/bravura-ui-panel.mjs.map +1 -1
- package/fesm2022/bravura-ui-phone-number.mjs +13 -13
- package/fesm2022/bravura-ui-phone-number.mjs.map +1 -1
- package/fesm2022/bravura-ui-radio-panel.mjs +21 -23
- package/fesm2022/bravura-ui-radio-panel.mjs.map +1 -1
- package/fesm2022/bravura-ui-selection-panel.mjs +10 -10
- package/fesm2022/bravura-ui-selection-panel.mjs.map +1 -1
- package/fesm2022/bravura-ui-skeletons.mjs +10 -10
- package/fesm2022/bravura-ui-skeletons.mjs.map +1 -1
- package/fesm2022/bravura-ui-stepper.mjs +13 -13
- package/fesm2022/bravura-ui-stepper.mjs.map +1 -1
- package/fesm2022/bravura-ui-tooltip.mjs +12 -30
- package/fesm2022/bravura-ui-tooltip.mjs.map +1 -1
- package/package.json +22 -22
- package/{currency-input/index.d.ts → types/bravura-ui-currency-input.d.ts} +4 -4
- package/{decimal-input/index.d.ts → types/bravura-ui-decimal-input.d.ts} +4 -4
- package/{file-upload/index.d.ts → types/bravura-ui-file-upload.d.ts} +1 -1
- package/{radio-panel/index.d.ts → types/bravura-ui-radio-panel.d.ts} +3 -5
- package/{tooltip/index.d.ts → types/bravura-ui-tooltip.d.ts} +16 -38
- /package/{alert/testing/index.d.ts → types/bravura-ui-alert-testing.d.ts} +0 -0
- /package/{alert/index.d.ts → types/bravura-ui-alert.d.ts} +0 -0
- /package/{behavior/index.d.ts → types/bravura-ui-behavior.d.ts} +0 -0
- /package/{clip-note/index.d.ts → types/bravura-ui-clip-note.d.ts} +0 -0
- /package/{common/index.d.ts → types/bravura-ui-common.d.ts} +0 -0
- /package/{discrete-input/index.d.ts → types/bravura-ui-discrete-input.d.ts} +0 -0
- /package/{form-field/index.d.ts → types/bravura-ui-form-field.d.ts} +0 -0
- /package/{icon-font/index.d.ts → types/bravura-ui-icon-font.d.ts} +0 -0
- /package/{panel/index.d.ts → types/bravura-ui-panel.d.ts} +0 -0
- /package/{phone-number/index.d.ts → types/bravura-ui-phone-number.d.ts} +0 -0
- /package/{radio-panel/testing/index.d.ts → types/bravura-ui-radio-panel-testing.d.ts} +0 -0
- /package/{selection-panel/index.d.ts → types/bravura-ui-selection-panel.d.ts} +0 -0
- /package/{skeletons/index.d.ts → types/bravura-ui-skeletons.d.ts} +0 -0
- /package/{stepper/index.d.ts → types/bravura-ui-stepper.d.ts} +0 -0
- /package/{index.d.ts → types/bravura-ui.d.ts} +0 -0
|
@@ -145,8 +145,8 @@ class ClipNoteComponent {
|
|
|
145
145
|
this._icon = icon;
|
|
146
146
|
this._cd.markForCheck();
|
|
147
147
|
}
|
|
148
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
149
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
148
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ClipNoteComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Directionality }, { token: i0.ElementRef, host: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
149
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: ClipNoteComponent, isStandalone: false, selector: "bui-clip-note", host: { classAttribute: "bui-clip-note bui-host" }, viewQueries: [{ propertyName: "_viewDiv", first: true, predicate: ["viewDiv"], descendants: true, read: ElementRef, static: true }, { propertyName: "_noteViewRef", first: true, predicate: ["noteViewRef"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "_fallbackTemplate", first: true, predicate: ["fallbackTemplate"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"bui-clip-note-wrapper\">\r\n\t<div\r\n\t\tclass=\"bui-clip-note-content bui-border-{{ _color }} mat-elevation-z3\"\r\n\t\t[@panelAnimation]=\"panelState\"\r\n\t\t#viewDiv\r\n\t\t(cdkObserveContent)=\"_checkContent()\"\r\n\t>\r\n\t\t<ng-container #noteViewRef></ng-container>\r\n\t</div>\r\n\r\n\t<button\r\n\t\tmat-raised-button\r\n\t\tclass=\"bui-clip-note-trigger bui-clip-note-trigger-{{ buttonIconState }}\"\r\n\t\t[color]=\"_color\"\r\n\t\t[@buttonAnimation]=\"buttonState\"\r\n\t\t(mouseenter)=\"_mouseOverButton(true)\"\r\n\t\t(mouseleave)=\"_mouseOverButton(false)\"\r\n\t\t(click)=\"_scheduleToggle()\"\r\n\t>\r\n\t\t<mat-icon\r\n\t\t\t[@buttonIconAnimation]=\"_icon ? 'disabled' : buttonIconState\"\r\n\t\t\t(@buttonIconAnimation.start)=\"_buttonAnimating = true\"\r\n\t\t\t(@buttonIconAnimation.done)=\"_buttonAnimating = false; _checkToggle()\"\r\n\t\t\t[buiIcon]=\"_icon || (direction === 'rtl' ? 'chevron_right' : 'chevron_left')\"\r\n\t\t\tstyle=\"margin: 0\"\r\n\t\t>\r\n\t\t</mat-icon>\r\n\t\t<span [@buttonTextAnimation]=\"buttonState\" class=\"bui-clip-note-button-text\"> {{ buttonText }}</span>\r\n\t</button>\r\n</div>\r\n\r\n<ng-template #fallbackTemplate>\r\n\t<div [innerHTML]=\"_content\"></div>\r\n</ng-template>\r\n", styles: [":host{position:absolute;top:2rem;box-sizing:border-box;z-index:var(--bui-clip-note-z-index, 100)}:host(.bui-clip-note-hidden){display:none}:host-context(:not([dir=rtl])){right:0}:host-context(:not([dir=rtl])) .bui-clip-note-trigger{right:-18px}:host-context([dir=rtl]){left:0;right:unset}:host-context([dir=rtl]) .bui-clip-note-trigger{left:-18px;right:unset}.bui-clip-note-trigger{border-radius:18px;overflow:hidden;position:absolute;top:-1rem}.bui-clip-note-button-text{display:inline-block;overflow:hidden;white-space:nowrap;vertical-align:middle}.bui-clip-note-wrapper{position:relative}.bui-clip-note-content{max-width:320px;min-width:150px;background-color:var(--bui-bg-body);border-radius:6px;border-width:1px;border-style:solid;padding:1rem;overflow-y:hidden}@keyframes rubber-band{0%{transform:scaleZ(1)}30%{transform:scale3d(1.25,.75,1)}40%{transform:scale3d(.75,1.25,1)}50%{transform:scale3d(1.15,.85,1)}65%{transform:scale3d(.95,1.05,1)}75%{transform:scale3d(1.05,.95,1)}to{transform:scaleZ(1)}}:host(.bui-clip-note-reveal) .bui-clip-note-trigger{animation:rubber-band .8s ease}\n"], dependencies: [{ kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { kind: "directive", type: i5.IconDirective, selector: "[buiIcon]", inputs: ["buiIcon", "size", "variant"] }], animations: [
|
|
150
150
|
trigger('buttonAnimation', [
|
|
151
151
|
state('*', style({ width: '36px', minWidth: 0, padding: 0 })),
|
|
152
152
|
state('active', style({})),
|
|
@@ -177,7 +177,7 @@ class ClipNoteComponent {
|
|
|
177
177
|
])
|
|
178
178
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
179
179
|
}
|
|
180
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
180
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ClipNoteComponent, decorators: [{
|
|
181
181
|
type: Component,
|
|
182
182
|
args: [{ selector: 'bui-clip-note', host: { class: 'bui-clip-note bui-host' }, animations: [
|
|
183
183
|
trigger('buttonAnimation', [
|
|
@@ -332,10 +332,10 @@ class ClipNoteDirective {
|
|
|
332
332
|
_processContent() {
|
|
333
333
|
this._compRef.instance._contentChanged(this._content);
|
|
334
334
|
}
|
|
335
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
336
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
335
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ClipNoteDirective, deps: [{ token: i0.ElementRef, host: true }, { token: i0.ViewContainerRef }, { token: CLIP_NOTE_DEFAULT_CONFIG }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
336
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: ClipNoteDirective, isStandalone: false, selector: "[buiClipNote]", inputs: { buiClipNote: "buiClipNote", buiClipNoteColor: "buiClipNoteColor", buiClipNoteIcon: "buiClipNoteIcon", buiClipNoteCaption: "buiClipNoteCaption" }, outputs: { buiClipNoteOpened: "buiClipNoteOpened", buiClipNoteClosed: "buiClipNoteClosed" }, exportAs: ["buiClipNote"], ngImport: i0 }); }
|
|
337
337
|
}
|
|
338
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
338
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ClipNoteDirective, decorators: [{
|
|
339
339
|
type: Directive,
|
|
340
340
|
args: [{
|
|
341
341
|
selector: '[buiClipNote]',
|
|
@@ -368,11 +368,11 @@ class ClipNoteModule {
|
|
|
368
368
|
providers: [{ provide: CLIP_NOTE_DEFAULT_CONFIG, useValue: config }]
|
|
369
369
|
};
|
|
370
370
|
}
|
|
371
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
372
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
373
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
371
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ClipNoteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
372
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: ClipNoteModule, declarations: [ClipNoteComponent, ClipNoteDirective], imports: [CommonModule, MatButtonModule, MatIconModule, BidiModule, BuiCommonModule, ObserversModule, IconFontModule], exports: [ClipNoteDirective] }); }
|
|
373
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ClipNoteModule, imports: [CommonModule, MatButtonModule, MatIconModule, BidiModule, BuiCommonModule, ObserversModule, IconFontModule] }); }
|
|
374
374
|
}
|
|
375
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
375
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ClipNoteModule, decorators: [{
|
|
376
376
|
type: NgModule,
|
|
377
377
|
args: [{
|
|
378
378
|
declarations: [ClipNoteComponent, ClipNoteDirective],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bravura-ui-clip-note.mjs","sources":["../../../projects/ui/clip-note/clip-note.component.ts","../../../projects/ui/clip-note/clip-note.component.html","../../../projects/ui/clip-note/clip-note.directive.ts","../../../projects/ui/clip-note/clip-note.module.ts","../../../projects/ui/clip-note/bravura-ui-clip-note.ts"],"sourcesContent":["import { animate, animateChild, group, query, state, style, transition, trigger } from '@angular/animations';\r\nimport { Directionality } from '@angular/cdk/bidi';\r\nimport {\r\n\tChangeDetectionStrategy,\r\n\tChangeDetectorRef,\r\n\tComponent,\r\n\tElementRef,\r\n\tEmbeddedViewRef,\r\n\tEventEmitter,\r\n\tHost,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tTemplateRef,\r\n\tViewChild,\r\n\tViewContainerRef\r\n} from '@angular/core';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n\tselector: 'bui-clip-note',\r\n\ttemplateUrl: './clip-note.component.html',\r\n\tstyleUrls: ['./clip-note.component.scss'],\r\n\thost: { class: 'bui-clip-note bui-host' },\r\n\tanimations: [\r\n\t\ttrigger('buttonAnimation', [\r\n\t\t\tstate('*', style({ width: '36px', minWidth: 0, padding: 0 })),\r\n\t\t\tstate('active', style({})),\r\n\t\t\ttransition('inactive <=> active', [\r\n\t\t\t\tgroup([animate('250ms cubic-bezier(.56,.14,.18,.91)'), query('@buttonTextAnimation', animateChild())]),\r\n\t\t\t\tquery('@buttonIconAnimation', animateChild())\r\n\t\t\t])\r\n\t\t]),\r\n\t\ttrigger('buttonTextAnimation', [\r\n\t\t\tstate('inactive', style({ opacity: 0, width: 0 })),\r\n\t\t\tstate('active', style({ opacity: 1 })),\r\n\t\t\ttransition('inactive => active', animate('250ms cubic-bezier(.88,.15,.63,.61)')),\r\n\t\t\ttransition('active => inactive', animate('250ms cubic-bezier(.05,.72,.44,.92)'))\r\n\t\t]),\r\n\t\ttrigger('buttonIconAnimation', [\r\n\t\t\tstate('active-ltr', style({ transform: 'rotate(-90deg)' })),\r\n\t\t\tstate('active-rtl', style({ transform: 'rotate(90deg)' })),\r\n\t\t\tstate('open-ltr', style({ transform: 'rotate(90deg)' })),\r\n\t\t\tstate('open-rtl', style({ transform: 'rotate(270deg)' })),\r\n\t\t\tstate('inactive', style({})),\r\n\t\t\ttransition('inactive <=> *, * <=> open-ltr, * <=> open-rtl', animate('250ms cubic-bezier(0.25, 0.8, 0.25, 1)'))\r\n\t\t]),\r\n\t\ttrigger('panelAnimation', [\r\n\t\t\tstate('open', style({})),\r\n\t\t\tstate('closed-rtl', style({ transform: 'scale(0) translate(-80%, -70%)', padding: 0, opacity: 0 })),\r\n\t\t\tstate('closed-ltr', style({ transform: 'scale(0) translate(80%, -70%)', padding: 0, opacity: 0 })),\r\n\t\t\ttransition('open <=> *', animate('300ms cubic-bezier(.69,.12,.6,.62)'))\r\n\t\t])\r\n\t],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tstandalone: false\r\n})\r\nexport class ClipNoteComponent implements OnInit, OnDestroy {\r\n\tbuttonText = '';\r\n\r\n\tget buttonState(): string {\r\n\t\tif (this._hovering || this.panelState === 'open') {\r\n\t\t\treturn 'active';\r\n\t\t}\r\n\t\treturn 'inactive';\r\n\t}\r\n\r\n\tget buttonIconState(): string {\r\n\t\tif (this.panelState === 'open') {\r\n\t\t\treturn `open-${this.direction}`;\r\n\t\t}\r\n\t\tif (this.buttonState === 'active') {\r\n\t\t\treturn `active-${this.direction}`;\r\n\t\t}\r\n\t\treturn 'inactive';\r\n\t}\r\n\r\n\tpanelState: 'open' | 'closed-ltr' | 'closed-rtl' = 'closed-ltr';\r\n\r\n\tdirection = 'ltr';\r\n\t_contentView?: EmbeddedViewRef<any>;\r\n\t_content?: string;\r\n\t_color: ThemePalette;\r\n\t_buttonAnimating = false;\r\n\t_icon?: string;\r\n\t_hasContent = false;\r\n\r\n\treadonly opened = new EventEmitter<void>();\r\n\treadonly closed = new EventEmitter<void>();\r\n\r\n\tprivate _hovering = false;\r\n\tprivate _destroyed$ = new Subject<void>();\r\n\tprivate _toggleQueue: boolean[] = [];\r\n\r\n\t@ViewChild('viewDiv', { static: true, read: ElementRef })\r\n\tprivate _viewDiv!: ElementRef<HTMLDivElement>;\r\n\r\n\t@ViewChild('noteViewRef', { static: true, read: ViewContainerRef })\r\n\tprivate _noteViewRef!: ViewContainerRef;\r\n\r\n\t@ViewChild('fallbackTemplate', { static: true })\r\n\tprivate _fallbackTemplate!: TemplateRef<any>;\r\n\r\n\tconstructor(\r\n\t\tprivate _cd: ChangeDetectorRef,\r\n\t\tprivate _dir: Directionality,\r\n\t\t@Host() private _elemRef: ElementRef<HTMLElement>\r\n\t) {}\r\n\r\n\tngOnInit(): void {\r\n\t\tconst changeDir = () => {\r\n\t\t\tthis.direction = this._dir.value;\r\n\t\t\tthis.panelState = `closed-${this.direction}` as any;\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t};\r\n\t\tthis._dir.change.pipe(takeUntil(this._destroyed$)).subscribe(changeDir);\r\n\t\tchangeDir();\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis._destroyed$.next();\r\n\t\tthis._destroyed$.complete();\r\n\t}\r\n\r\n\t_mouseOverButton(hovering: boolean) {\r\n\t\tif (this._hovering !== hovering) {\r\n\t\t\tthis._hovering = hovering;\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t}\r\n\t}\r\n\r\n\ttoggle() {\r\n\t\tthis.panelState = this.panelState === `closed-${this.direction}` ? 'open' : (`closed-${this.direction}` as any);\r\n\t\tthis._cd.markForCheck();\r\n\t}\r\n\r\n\t_scheduleToggle() {\r\n\t\tif (this._buttonAnimating) {\r\n\t\t\tthis._toggleQueue.push(true);\r\n\t\t} else {\r\n\t\t\tthis.toggle();\r\n\t\t}\r\n\t}\r\n\r\n\t_checkToggle() {\r\n\t\tif (this._toggleQueue.pop()) {\r\n\t\t\tthis.toggle();\r\n\t\t}\r\n\t}\r\n\r\n\topen() {\r\n\t\tthis.panelState = 'open';\r\n\t\tthis._cd.markForCheck();\r\n\t\tthis._emit();\r\n\t}\r\n\r\n\tclose() {\r\n\t\tthis.panelState = `closed-${this.direction}` as any;\r\n\t\tthis._cd.markForCheck();\r\n\t\tthis._emit();\r\n\t}\r\n\r\n\t_emit() {\r\n\t\tif (this.panelState === 'open') {\r\n\t\t\tthis.opened.emit();\r\n\t\t} else {\r\n\t\t\tthis.closed.emit();\r\n\t\t}\r\n\t}\r\n\r\n\t_contentChanged(content?: string | TemplateRef<any>) {\r\n\t\tlet template: TemplateRef<any>;\r\n\r\n\t\tif (content instanceof TemplateRef) {\r\n\t\t\ttemplate = content;\r\n\t\t} else {\r\n\t\t\ttemplate = this._fallbackTemplate;\r\n\t\t\tthis._content = content;\r\n\t\t}\r\n\t\tthis._noteViewRef.clear();\r\n\t\tconst context = {};\r\n\t\tthis._contentView = this._noteViewRef.createEmbeddedView(template, context);\r\n\t\tthis._checkContent(true);\r\n\t}\r\n\r\n\t_checkContent(initial?: boolean) {\r\n\t\tthis._contentView?.detectChanges();\r\n\t\tthis._hasContent = !!this._viewDiv.nativeElement.textContent?.trim();\r\n\t\tconst classList = this._elemRef.nativeElement.classList;\r\n\t\tconst cls = 'bui-clip-note-hidden';\r\n\t\tconst cls1 = 'bui-clip-note-reveal';\r\n\t\tif (this._hasContent) {\r\n\t\t\tclassList.remove(cls);\r\n\t\t\tif (!initial && this.panelState !== 'open') {\r\n\t\t\t\tclassList.add(cls1);\r\n\t\t\t}\r\n\t\t\tthis._elemRef.nativeElement.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\r\n\t\t} else {\r\n\t\t\tclassList.add(cls);\r\n\t\t\tclassList.remove(cls1);\r\n\t\t\tthis.close();\r\n\t\t}\r\n\t}\r\n\r\n\t_assignColor(color: ThemePalette) {\r\n\t\tthis._color = color;\r\n\t\tthis._cd.markForCheck();\r\n\t}\r\n\r\n\t_assignButtonText(text: string) {\r\n\t\tthis.buttonText = text;\r\n\t\tthis._cd.markForCheck();\r\n\t}\r\n\r\n\t_assignButtonIcon(icon?: string) {\r\n\t\tthis._icon = icon;\r\n\t\tthis._cd.markForCheck();\r\n\t}\r\n}\r\n","<div class=\"bui-clip-note-wrapper\">\r\n\t<div\r\n\t\tclass=\"bui-clip-note-content bui-border-{{ _color }} mat-elevation-z3\"\r\n\t\t[@panelAnimation]=\"panelState\"\r\n\t\t#viewDiv\r\n\t\t(cdkObserveContent)=\"_checkContent()\"\r\n\t>\r\n\t\t<ng-container #noteViewRef></ng-container>\r\n\t</div>\r\n\r\n\t<button\r\n\t\tmat-raised-button\r\n\t\tclass=\"bui-clip-note-trigger bui-clip-note-trigger-{{ buttonIconState }}\"\r\n\t\t[color]=\"_color\"\r\n\t\t[@buttonAnimation]=\"buttonState\"\r\n\t\t(mouseenter)=\"_mouseOverButton(true)\"\r\n\t\t(mouseleave)=\"_mouseOverButton(false)\"\r\n\t\t(click)=\"_scheduleToggle()\"\r\n\t>\r\n\t\t<mat-icon\r\n\t\t\t[@buttonIconAnimation]=\"_icon ? 'disabled' : buttonIconState\"\r\n\t\t\t(@buttonIconAnimation.start)=\"_buttonAnimating = true\"\r\n\t\t\t(@buttonIconAnimation.done)=\"_buttonAnimating = false; _checkToggle()\"\r\n\t\t\t[buiIcon]=\"_icon || (direction === 'rtl' ? 'chevron_right' : 'chevron_left')\"\r\n\t\t\tstyle=\"margin: 0\"\r\n\t\t>\r\n\t\t</mat-icon>\r\n\t\t<span [@buttonTextAnimation]=\"buttonState\" class=\"bui-clip-note-button-text\"> {{ buttonText }}</span>\r\n\t</button>\r\n</div>\r\n\r\n<ng-template #fallbackTemplate>\r\n\t<div [innerHTML]=\"_content\"></div>\r\n</ng-template>\r\n","import {\r\n\tAfterViewInit,\r\n\tComponentRef,\r\n\tDirective,\r\n\tElementRef,\r\n\tEventEmitter,\r\n\tHost,\r\n\tInject,\r\n\tInjectionToken,\r\n\tInput,\r\n\tOutput,\r\n\tTemplateRef,\r\n\tViewContainerRef\r\n} from '@angular/core';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { ClipNoteComponent } from './clip-note.component';\r\n\r\nexport interface ClipNoteDefaultConfig {\r\n\tcolor: ThemePalette;\r\n\tcaption: string;\r\n}\r\n\r\n/** Used to provide default config for clip notes. */\r\nexport const CLIP_NOTE_DEFAULT_CONFIG = new InjectionToken<ClipNoteDefaultConfig>('bui-clip-note.default-config', {\r\n\tfactory: () => ({ color: 'primary', caption: 'More info' })\r\n});\r\n\r\n/**\r\n * A clip note consists of a toggle button and a floating 'notepad' element, attached to the top end of the host element's\r\n * viewable area. The 'notepad' normally collapses away and only reveals itself when the toggle button is active.\r\n *\r\n * The toggle button clips on the edge of the host element and expands to display the full caption when hovered. It hides itself\r\n * automatically when there is no content provided via the `buiClipNote` property of the directive.\r\n *\r\n * The clip note component is suitable for large page container elements with visible boundaries. It can present contextual\r\n * information regarding and in addition to the content displayed in the main view area.\r\n *\r\n * The properties `buiClipNoteColor` and `buiClipNoteCaption` customise the appearance of the clip note, the default values of which\r\n * can optionally be provided by the `ClipNoteModule.forConfig()` method.\r\n *\r\n */\r\n@Directive({\r\n\tselector: '[buiClipNote]',\r\n\texportAs: 'buiClipNote',\r\n\tstandalone: false\r\n})\r\nexport class ClipNoteDirective implements AfterViewInit {\r\n\t/**\r\n\t * Provide content to the clip note's floating notepad element.\r\n\t * It accepts a `string` of HTML content or a `TemplateRef` object.\r\n\t */\r\n\t@Input()\r\n\tget buiClipNote(): string | TemplateRef<any> | undefined {\r\n\t\treturn this._content;\r\n\t}\r\n\tset buiClipNote(note: string | TemplateRef<any> | undefined) {\r\n\t\tthis._content = note;\r\n\t\tif (this._compRef) {\r\n\t\t\tthis._processContent();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Customise the theme color alias.\r\n\t * @default 'primary'\r\n\t */\r\n\t@Input()\r\n\tget buiClipNoteColor(): ThemePalette {\r\n\t\treturn this._color;\r\n\t}\r\n\tset buiClipNoteColor(color: ThemePalette) {\r\n\t\tthis._color = color;\r\n\t\tif (this._compRef) {\r\n\t\t\tthis._compRef.instance._assignColor(this._color);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Customise the icon on the toggle button. With this property specified, the animation on the icon\r\n\t * will not be active.\r\n\t */\r\n\t@Input()\r\n\tget buiClipNoteIcon(): string | undefined {\r\n\t\treturn this._icon;\r\n\t}\r\n\tset buiClipNoteIcon(icon: string | undefined) {\r\n\t\tthis._icon = icon;\r\n\t\tif (this._compRef) {\r\n\t\t\tthis._compRef.instance._assignButtonIcon(this._icon);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * The caption of the toggle button when expanded.\r\n\t */\r\n\t@Input()\r\n\tget buiClipNoteCaption(): string {\r\n\t\treturn this._caption;\r\n\t}\r\n\tset buiClipNoteCaption(text: string) {\r\n\t\tthis._caption = text;\r\n\t\tif (this._compRef) {\r\n\t\t\tthis._compRef.instance._assignButtonText(this._caption);\r\n\t\t}\r\n\t}\r\n\r\n\t/** Emits when the panel opens */\r\n\t@Output()\r\n\treadonly buiClipNoteOpened = new EventEmitter<void>();\r\n\r\n\t/** Emits when the panel closes */\r\n\t@Output()\r\n\treadonly buiClipNoteClosed = new EventEmitter<void>();\r\n\r\n\tprivate _content?: string | TemplateRef<any>;\r\n\tprivate _color: ThemePalette = 'primary';\r\n\tprivate _compRef!: ComponentRef<ClipNoteComponent>;\r\n\tprivate _caption: string;\r\n\tprivate _icon?: string;\r\n\r\n\tconstructor(\r\n\t\t@Host() private _elementRef: ElementRef<HTMLElement>,\r\n\t\tprivate _vc: ViewContainerRef,\r\n\t\t@Inject(CLIP_NOTE_DEFAULT_CONFIG) _config: ClipNoteDefaultConfig\r\n\t) {\r\n\t\tthis._caption = _config.caption;\r\n\t\tthis._color = _config.color;\r\n\t}\r\n\r\n\tngAfterViewInit(): void {\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis._compRef = this._vc.createComponent(ClipNoteComponent);\r\n\t\t\tconst childElement: HTMLElement = this._compRef.location.nativeElement;\r\n\t\t\tconst element = this._elementRef.nativeElement;\r\n\t\t\telement.style.position = 'relative';\r\n\t\t\telement.appendChild(childElement);\r\n\t\t\tthis._compRef.instance._assignColor(this._color);\r\n\t\t\tthis._compRef.instance._assignButtonText(this._caption);\r\n\t\t\tthis._compRef.instance._assignButtonIcon(this._icon);\r\n\t\t\tthis._compRef.instance.opened.subscribe(this.buiClipNoteOpened.next.bind(this.buiClipNoteOpened));\r\n\t\t\tthis._compRef.instance.closed.subscribe(this.buiClipNoteClosed.next.bind(this.buiClipNoteClosed));\r\n\t\t\tthis._processContent();\r\n\t\t});\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis._compRef.destroy();\r\n\t}\r\n\r\n\t/** Open the note panel */\r\n\topen() {\r\n\t\tthis._compRef.instance.open();\r\n\t}\r\n\r\n\t/** Close the note panel */\r\n\tclose() {\r\n\t\tthis._compRef.instance.close();\r\n\t}\r\n\r\n\tprivate _processContent() {\r\n\t\tthis._compRef.instance._contentChanged(this._content);\r\n\t}\r\n}\r\n","import { BidiModule } from '@angular/cdk/bidi';\r\nimport { ObserversModule } from '@angular/cdk/observers';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { BuiCommonModule } from '@bravura/ui/common';\r\nimport { IconFontModule } from '@bravura/ui/icon-font';\r\nimport { ClipNoteComponent } from './clip-note.component';\r\nimport { ClipNoteDefaultConfig, ClipNoteDirective, CLIP_NOTE_DEFAULT_CONFIG } from './clip-note.directive';\r\n\r\n@NgModule({\r\n\tdeclarations: [ClipNoteComponent, ClipNoteDirective],\r\n\timports: [CommonModule, MatButtonModule, MatIconModule, BidiModule, BuiCommonModule, ObserversModule, IconFontModule],\r\n\texports: [ClipNoteDirective]\r\n})\r\nexport class ClipNoteModule {\r\n\tstatic forConfig(config: ClipNoteDefaultConfig): ModuleWithProviders<ClipNoteModule> {\r\n\t\treturn {\r\n\t\t\tngModule: ClipNoteModule,\r\n\t\t\tproviders: [{ provide: CLIP_NOTE_DEFAULT_CONFIG, useValue: config }]\r\n\t\t};\r\n\t}\r\n}\r\n\r\nexport { ClipNoteDirective };\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;MAyDa,iBAAiB,CAAA;AAG7B,IAAA,IAAI,WAAW,GAAA;QACd,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE;AACjD,YAAA,OAAO,QAAQ;;AAEhB,QAAA,OAAO,UAAU;;AAGlB,IAAA,IAAI,eAAe,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE;AAC/B,YAAA,OAAO,CAAQ,KAAA,EAAA,IAAI,CAAC,SAAS,EAAE;;AAEhC,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE;AAClC,YAAA,OAAO,CAAU,OAAA,EAAA,IAAI,CAAC,SAAS,EAAE;;AAElC,QAAA,OAAO,UAAU;;AA6BlB,IAAA,WAAA,CACS,GAAsB,EACtB,IAAoB,EACZ,QAAiC,EAAA;QAFzC,IAAG,CAAA,GAAA,GAAH,GAAG;QACH,IAAI,CAAA,IAAA,GAAJ,IAAI;QACI,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAhDzB,IAAU,CAAA,UAAA,GAAG,EAAE;QAmBf,IAAU,CAAA,UAAA,GAAyC,YAAY;QAE/D,IAAS,CAAA,SAAA,GAAG,KAAK;QAIjB,IAAgB,CAAA,gBAAA,GAAG,KAAK;QAExB,IAAW,CAAA,WAAA,GAAG,KAAK;AAEV,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ;AACjC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ;QAElC,IAAS,CAAA,SAAA,GAAG,KAAK;AACjB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAQ;QACjC,IAAY,CAAA,YAAA,GAAc,EAAE;;IAiBpC,QAAQ,GAAA;QACP,MAAM,SAAS,GAAG,MAAK;YACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK;YAChC,IAAI,CAAC,UAAU,GAAG,CAAA,OAAA,EAAU,IAAI,CAAC,SAAS,EAAS;AACnD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACxB,SAAC;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC;AACvE,QAAA,SAAS,EAAE;;IAGZ,WAAW,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;;AAG5B,IAAA,gBAAgB,CAAC,QAAiB,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;AAChC,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;AACzB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;;IAIzB,MAAM,GAAA;QACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,CAAA,OAAA,EAAU,IAAI,CAAC,SAAS,CAAA,CAAE,GAAG,MAAM,GAAI,UAAU,IAAI,CAAC,SAAS,CAAA,CAAU;AAC/G,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;IAGxB,eAAe,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC1B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;;aACtB;YACN,IAAI,CAAC,MAAM,EAAE;;;IAIf,YAAY,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE;YAC5B,IAAI,CAAC,MAAM,EAAE;;;IAIf,IAAI,GAAA;AACH,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM;AACxB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;QACvB,IAAI,CAAC,KAAK,EAAE;;IAGb,KAAK,GAAA;QACJ,IAAI,CAAC,UAAU,GAAG,CAAA,OAAA,EAAU,IAAI,CAAC,SAAS,EAAS;AACnD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;QACvB,IAAI,CAAC,KAAK,EAAE;;IAGb,KAAK,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE;AAC/B,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;;aACZ;AACN,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;;;AAIpB,IAAA,eAAe,CAAC,OAAmC,EAAA;AAClD,QAAA,IAAI,QAA0B;AAE9B,QAAA,IAAI,OAAO,YAAY,WAAW,EAAE;YACnC,QAAQ,GAAG,OAAO;;aACZ;AACN,YAAA,QAAQ,GAAG,IAAI,CAAC,iBAAiB;AACjC,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;;AAExB,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;QACzB,MAAM,OAAO,GAAG,EAAE;AAClB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC;AAC3E,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;;AAGzB,IAAA,aAAa,CAAC,OAAiB,EAAA;AAC9B,QAAA,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE;AAClC,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE;QACpE,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS;QACvD,MAAM,GAAG,GAAG,sBAAsB;QAClC,MAAM,IAAI,GAAG,sBAAsB;AACnC,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;YACrB,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE;AAC3C,gBAAA,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;;AAEpB,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;;aAC9E;AACN,YAAA,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;AAClB,YAAA,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,KAAK,EAAE;;;AAId,IAAA,YAAY,CAAC,KAAmB,EAAA;AAC/B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGxB,IAAA,iBAAiB,CAAC,IAAY,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGxB,IAAA,iBAAiB,CAAC,IAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;+GA/JZ,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,8MAqCe,UAAU,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAGN,gBAAgB,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjGjE,gvCAkCA,EDVa,MAAA,EAAA,CAAA,skCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACX,OAAO,CAAC,iBAAiB,EAAE;AAC1B,gBAAA,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7D,gBAAA,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC1B,UAAU,CAAC,qBAAqB,EAAE;AACjC,oBAAA,KAAK,CAAC,CAAC,OAAO,CAAC,qCAAqC,CAAC,EAAE,KAAK,CAAC,sBAAsB,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AACtG,oBAAA,KAAK,CAAC,sBAAsB,EAAE,YAAY,EAAE;iBAC5C;aACD,CAAC;YACF,OAAO,CAAC,qBAAqB,EAAE;AAC9B,gBAAA,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBAClD,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACtC,gBAAA,UAAU,CAAC,oBAAoB,EAAE,OAAO,CAAC,qCAAqC,CAAC,CAAC;AAChF,gBAAA,UAAU,CAAC,oBAAoB,EAAE,OAAO,CAAC,qCAAqC,CAAC;aAC/E,CAAC;YACF,OAAO,CAAC,qBAAqB,EAAE;gBAC9B,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;gBAC3D,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;gBAC1D,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;gBACxD,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;AACzD,gBAAA,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;AAC5B,gBAAA,UAAU,CAAC,gDAAgD,EAAE,OAAO,CAAC,wCAAwC,CAAC;aAC9G,CAAC;YACF,OAAO,CAAC,gBAAgB,EAAE;AACzB,gBAAA,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;AACxB,gBAAA,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,gCAAgC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACnG,gBAAA,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,+BAA+B,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAClG,gBAAA,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,oCAAoC,CAAC;aACtE;AACD,SAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAIW,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAtC7B,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,QAGnB,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAC7B,UAAA,EAAA;wBACX,OAAO,CAAC,iBAAiB,EAAE;AAC1B,4BAAA,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7D,4BAAA,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;4BAC1B,UAAU,CAAC,qBAAqB,EAAE;AACjC,gCAAA,KAAK,CAAC,CAAC,OAAO,CAAC,qCAAqC,CAAC,EAAE,KAAK,CAAC,sBAAsB,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AACtG,gCAAA,KAAK,CAAC,sBAAsB,EAAE,YAAY,EAAE;6BAC5C;yBACD,CAAC;wBACF,OAAO,CAAC,qBAAqB,EAAE;AAC9B,4BAAA,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;4BAClD,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACtC,4BAAA,UAAU,CAAC,oBAAoB,EAAE,OAAO,CAAC,qCAAqC,CAAC,CAAC;AAChF,4BAAA,UAAU,CAAC,oBAAoB,EAAE,OAAO,CAAC,qCAAqC,CAAC;yBAC/E,CAAC;wBACF,OAAO,CAAC,qBAAqB,EAAE;4BAC9B,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;4BAC3D,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;4BAC1D,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;4BACxD,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;AACzD,4BAAA,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;AAC5B,4BAAA,UAAU,CAAC,gDAAgD,EAAE,OAAO,CAAC,wCAAwC,CAAC;yBAC9G,CAAC;wBACF,OAAO,CAAC,gBAAgB,EAAE;AACzB,4BAAA,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;AACxB,4BAAA,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,gCAAgC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACnG,4BAAA,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,+BAA+B,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAClG,4BAAA,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,oCAAoC,CAAC;yBACtE;AACD,qBAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,KAAK,EAAA,QAAA,EAAA,gvCAAA,EAAA,MAAA,EAAA,CAAA,skCAAA,CAAA,EAAA;;0BAmDf;;sBAZD,SAAS;uBAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;;sBAGvD,SAAS;uBAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE;;sBAGjE,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;AE9EhD;AACO,MAAM,wBAAwB,GAAG,IAAI,cAAc,CAAwB,8BAA8B,EAAE;AACjH,IAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE;AAC1D,CAAA,CAAC;AAEF;;;;;;;;;;;;;AAaG;MAMU,iBAAiB,CAAA;AAC7B;;;AAGG;AACH,IAAA,IACI,WAAW,GAAA;QACd,OAAO,IAAI,CAAC,QAAQ;;IAErB,IAAI,WAAW,CAAC,IAA2C,EAAA;AAC1D,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,eAAe,EAAE;;;AAIxB;;;AAGG;AACH,IAAA,IACI,gBAAgB,GAAA;QACnB,OAAO,IAAI,CAAC,MAAM;;IAEnB,IAAI,gBAAgB,CAAC,KAAmB,EAAA;AACvC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;;;AAIlD;;;AAGG;AACH,IAAA,IACI,eAAe,GAAA;QAClB,OAAO,IAAI,CAAC,KAAK;;IAElB,IAAI,eAAe,CAAC,IAAwB,EAAA;AAC3C,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAItD;;AAEG;AACH,IAAA,IACI,kBAAkB,GAAA;QACrB,OAAO,IAAI,CAAC,QAAQ;;IAErB,IAAI,kBAAkB,CAAC,IAAY,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;;;AAkBzD,IAAA,WAAA,CACiB,WAAoC,EAC5C,GAAqB,EACK,OAA8B,EAAA;QAFhD,IAAW,CAAA,WAAA,GAAX,WAAW;QACnB,IAAG,CAAA,GAAA,GAAH,GAAG;;AAdH,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAQ;;AAI5C,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAQ;QAG7C,IAAM,CAAA,MAAA,GAAiB,SAAS;AAUvC,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO;AAC/B,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK;;IAG5B,eAAe,GAAA;QACd,UAAU,CAAC,MAAK;YACf,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,iBAAiB,CAAC;YAC3D,MAAM,YAAY,GAAgB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa;AACtE,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa;AAC9C,YAAA,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AACnC,YAAA,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;YACvD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACjG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACjG,IAAI,CAAC,eAAe,EAAE;AACvB,SAAC,CAAC;;IAGH,WAAW,GAAA;AACV,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;;;IAIxB,IAAI,GAAA;AACH,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;;;IAI9B,KAAK,GAAA;AACJ,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE;;IAGvB,eAAe,GAAA;QACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;;AAlH1C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,wFA6EpB,wBAAwB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGA7ErB,iBAAiB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,UAAU,EAAE;AACZ,iBAAA;;0BA4EE;;0BAEA,MAAM;2BAAC,wBAAwB;;sBAxEhC;;sBAeA;;sBAeA;;sBAcA;;sBAYA;;sBAIA;;;MC/FW,cAAc,CAAA;IAC1B,OAAO,SAAS,CAAC,MAA6B,EAAA;QAC7C,OAAO;AACN,YAAA,QAAQ,EAAE,cAAc;YACxB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,EAAE;SACnE;;+GALU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,iBAJX,iBAAiB,EAAE,iBAAiB,CACzC,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,aAC1G,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAEf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAHhB,OAAA,EAAA,CAAA,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA;;4FAGxG,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,YAAY,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;AACpD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,CAAC;oBACrH,OAAO,EAAE,CAAC,iBAAiB;AAC3B,iBAAA;;;ACfD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"bravura-ui-clip-note.mjs","sources":["../../../projects/ui/clip-note/clip-note.component.ts","../../../projects/ui/clip-note/clip-note.component.html","../../../projects/ui/clip-note/clip-note.directive.ts","../../../projects/ui/clip-note/clip-note.module.ts","../../../projects/ui/clip-note/bravura-ui-clip-note.ts"],"sourcesContent":["import { animate, animateChild, group, query, state, style, transition, trigger } from '@angular/animations';\r\nimport { Directionality } from '@angular/cdk/bidi';\r\nimport {\r\n\tChangeDetectionStrategy,\r\n\tChangeDetectorRef,\r\n\tComponent,\r\n\tElementRef,\r\n\tEmbeddedViewRef,\r\n\tEventEmitter,\r\n\tHost,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tTemplateRef,\r\n\tViewChild,\r\n\tViewContainerRef\r\n} from '@angular/core';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n\tselector: 'bui-clip-note',\r\n\ttemplateUrl: './clip-note.component.html',\r\n\tstyleUrls: ['./clip-note.component.scss'],\r\n\thost: { class: 'bui-clip-note bui-host' },\r\n\tanimations: [\r\n\t\ttrigger('buttonAnimation', [\r\n\t\t\tstate('*', style({ width: '36px', minWidth: 0, padding: 0 })),\r\n\t\t\tstate('active', style({})),\r\n\t\t\ttransition('inactive <=> active', [\r\n\t\t\t\tgroup([animate('250ms cubic-bezier(.56,.14,.18,.91)'), query('@buttonTextAnimation', animateChild())]),\r\n\t\t\t\tquery('@buttonIconAnimation', animateChild())\r\n\t\t\t])\r\n\t\t]),\r\n\t\ttrigger('buttonTextAnimation', [\r\n\t\t\tstate('inactive', style({ opacity: 0, width: 0 })),\r\n\t\t\tstate('active', style({ opacity: 1 })),\r\n\t\t\ttransition('inactive => active', animate('250ms cubic-bezier(.88,.15,.63,.61)')),\r\n\t\t\ttransition('active => inactive', animate('250ms cubic-bezier(.05,.72,.44,.92)'))\r\n\t\t]),\r\n\t\ttrigger('buttonIconAnimation', [\r\n\t\t\tstate('active-ltr', style({ transform: 'rotate(-90deg)' })),\r\n\t\t\tstate('active-rtl', style({ transform: 'rotate(90deg)' })),\r\n\t\t\tstate('open-ltr', style({ transform: 'rotate(90deg)' })),\r\n\t\t\tstate('open-rtl', style({ transform: 'rotate(270deg)' })),\r\n\t\t\tstate('inactive', style({})),\r\n\t\t\ttransition('inactive <=> *, * <=> open-ltr, * <=> open-rtl', animate('250ms cubic-bezier(0.25, 0.8, 0.25, 1)'))\r\n\t\t]),\r\n\t\ttrigger('panelAnimation', [\r\n\t\t\tstate('open', style({})),\r\n\t\t\tstate('closed-rtl', style({ transform: 'scale(0) translate(-80%, -70%)', padding: 0, opacity: 0 })),\r\n\t\t\tstate('closed-ltr', style({ transform: 'scale(0) translate(80%, -70%)', padding: 0, opacity: 0 })),\r\n\t\t\ttransition('open <=> *', animate('300ms cubic-bezier(.69,.12,.6,.62)'))\r\n\t\t])\r\n\t],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tstandalone: false\r\n})\r\nexport class ClipNoteComponent implements OnInit, OnDestroy {\r\n\tbuttonText = '';\r\n\r\n\tget buttonState(): string {\r\n\t\tif (this._hovering || this.panelState === 'open') {\r\n\t\t\treturn 'active';\r\n\t\t}\r\n\t\treturn 'inactive';\r\n\t}\r\n\r\n\tget buttonIconState(): string {\r\n\t\tif (this.panelState === 'open') {\r\n\t\t\treturn `open-${this.direction}`;\r\n\t\t}\r\n\t\tif (this.buttonState === 'active') {\r\n\t\t\treturn `active-${this.direction}`;\r\n\t\t}\r\n\t\treturn 'inactive';\r\n\t}\r\n\r\n\tpanelState: 'open' | 'closed-ltr' | 'closed-rtl' = 'closed-ltr';\r\n\r\n\tdirection = 'ltr';\r\n\t_contentView?: EmbeddedViewRef<any>;\r\n\t_content?: string;\r\n\t_color: ThemePalette;\r\n\t_buttonAnimating = false;\r\n\t_icon?: string;\r\n\t_hasContent = false;\r\n\r\n\treadonly opened = new EventEmitter<void>();\r\n\treadonly closed = new EventEmitter<void>();\r\n\r\n\tprivate _hovering = false;\r\n\tprivate _destroyed$ = new Subject<void>();\r\n\tprivate _toggleQueue: boolean[] = [];\r\n\r\n\t@ViewChild('viewDiv', { static: true, read: ElementRef })\r\n\tprivate _viewDiv!: ElementRef<HTMLDivElement>;\r\n\r\n\t@ViewChild('noteViewRef', { static: true, read: ViewContainerRef })\r\n\tprivate _noteViewRef!: ViewContainerRef;\r\n\r\n\t@ViewChild('fallbackTemplate', { static: true })\r\n\tprivate _fallbackTemplate!: TemplateRef<any>;\r\n\r\n\tconstructor(\r\n\t\tprivate _cd: ChangeDetectorRef,\r\n\t\tprivate _dir: Directionality,\r\n\t\t@Host() private _elemRef: ElementRef<HTMLElement>\r\n\t) {}\r\n\r\n\tngOnInit(): void {\r\n\t\tconst changeDir = () => {\r\n\t\t\tthis.direction = this._dir.value;\r\n\t\t\tthis.panelState = `closed-${this.direction}` as any;\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t};\r\n\t\tthis._dir.change.pipe(takeUntil(this._destroyed$)).subscribe(changeDir);\r\n\t\tchangeDir();\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis._destroyed$.next();\r\n\t\tthis._destroyed$.complete();\r\n\t}\r\n\r\n\t_mouseOverButton(hovering: boolean) {\r\n\t\tif (this._hovering !== hovering) {\r\n\t\t\tthis._hovering = hovering;\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t}\r\n\t}\r\n\r\n\ttoggle() {\r\n\t\tthis.panelState = this.panelState === `closed-${this.direction}` ? 'open' : (`closed-${this.direction}` as any);\r\n\t\tthis._cd.markForCheck();\r\n\t}\r\n\r\n\t_scheduleToggle() {\r\n\t\tif (this._buttonAnimating) {\r\n\t\t\tthis._toggleQueue.push(true);\r\n\t\t} else {\r\n\t\t\tthis.toggle();\r\n\t\t}\r\n\t}\r\n\r\n\t_checkToggle() {\r\n\t\tif (this._toggleQueue.pop()) {\r\n\t\t\tthis.toggle();\r\n\t\t}\r\n\t}\r\n\r\n\topen() {\r\n\t\tthis.panelState = 'open';\r\n\t\tthis._cd.markForCheck();\r\n\t\tthis._emit();\r\n\t}\r\n\r\n\tclose() {\r\n\t\tthis.panelState = `closed-${this.direction}` as any;\r\n\t\tthis._cd.markForCheck();\r\n\t\tthis._emit();\r\n\t}\r\n\r\n\t_emit() {\r\n\t\tif (this.panelState === 'open') {\r\n\t\t\tthis.opened.emit();\r\n\t\t} else {\r\n\t\t\tthis.closed.emit();\r\n\t\t}\r\n\t}\r\n\r\n\t_contentChanged(content?: string | TemplateRef<any>) {\r\n\t\tlet template: TemplateRef<any>;\r\n\r\n\t\tif (content instanceof TemplateRef) {\r\n\t\t\ttemplate = content;\r\n\t\t} else {\r\n\t\t\ttemplate = this._fallbackTemplate;\r\n\t\t\tthis._content = content;\r\n\t\t}\r\n\t\tthis._noteViewRef.clear();\r\n\t\tconst context = {};\r\n\t\tthis._contentView = this._noteViewRef.createEmbeddedView(template, context);\r\n\t\tthis._checkContent(true);\r\n\t}\r\n\r\n\t_checkContent(initial?: boolean) {\r\n\t\tthis._contentView?.detectChanges();\r\n\t\tthis._hasContent = !!this._viewDiv.nativeElement.textContent?.trim();\r\n\t\tconst classList = this._elemRef.nativeElement.classList;\r\n\t\tconst cls = 'bui-clip-note-hidden';\r\n\t\tconst cls1 = 'bui-clip-note-reveal';\r\n\t\tif (this._hasContent) {\r\n\t\t\tclassList.remove(cls);\r\n\t\t\tif (!initial && this.panelState !== 'open') {\r\n\t\t\t\tclassList.add(cls1);\r\n\t\t\t}\r\n\t\t\tthis._elemRef.nativeElement.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\r\n\t\t} else {\r\n\t\t\tclassList.add(cls);\r\n\t\t\tclassList.remove(cls1);\r\n\t\t\tthis.close();\r\n\t\t}\r\n\t}\r\n\r\n\t_assignColor(color: ThemePalette) {\r\n\t\tthis._color = color;\r\n\t\tthis._cd.markForCheck();\r\n\t}\r\n\r\n\t_assignButtonText(text: string) {\r\n\t\tthis.buttonText = text;\r\n\t\tthis._cd.markForCheck();\r\n\t}\r\n\r\n\t_assignButtonIcon(icon?: string) {\r\n\t\tthis._icon = icon;\r\n\t\tthis._cd.markForCheck();\r\n\t}\r\n}\r\n","<div class=\"bui-clip-note-wrapper\">\r\n\t<div\r\n\t\tclass=\"bui-clip-note-content bui-border-{{ _color }} mat-elevation-z3\"\r\n\t\t[@panelAnimation]=\"panelState\"\r\n\t\t#viewDiv\r\n\t\t(cdkObserveContent)=\"_checkContent()\"\r\n\t>\r\n\t\t<ng-container #noteViewRef></ng-container>\r\n\t</div>\r\n\r\n\t<button\r\n\t\tmat-raised-button\r\n\t\tclass=\"bui-clip-note-trigger bui-clip-note-trigger-{{ buttonIconState }}\"\r\n\t\t[color]=\"_color\"\r\n\t\t[@buttonAnimation]=\"buttonState\"\r\n\t\t(mouseenter)=\"_mouseOverButton(true)\"\r\n\t\t(mouseleave)=\"_mouseOverButton(false)\"\r\n\t\t(click)=\"_scheduleToggle()\"\r\n\t>\r\n\t\t<mat-icon\r\n\t\t\t[@buttonIconAnimation]=\"_icon ? 'disabled' : buttonIconState\"\r\n\t\t\t(@buttonIconAnimation.start)=\"_buttonAnimating = true\"\r\n\t\t\t(@buttonIconAnimation.done)=\"_buttonAnimating = false; _checkToggle()\"\r\n\t\t\t[buiIcon]=\"_icon || (direction === 'rtl' ? 'chevron_right' : 'chevron_left')\"\r\n\t\t\tstyle=\"margin: 0\"\r\n\t\t>\r\n\t\t</mat-icon>\r\n\t\t<span [@buttonTextAnimation]=\"buttonState\" class=\"bui-clip-note-button-text\"> {{ buttonText }}</span>\r\n\t</button>\r\n</div>\r\n\r\n<ng-template #fallbackTemplate>\r\n\t<div [innerHTML]=\"_content\"></div>\r\n</ng-template>\r\n","import {\r\n\tAfterViewInit,\r\n\tComponentRef,\r\n\tDirective,\r\n\tElementRef,\r\n\tEventEmitter,\r\n\tHost,\r\n\tInject,\r\n\tInjectionToken,\r\n\tInput,\r\n\tOutput,\r\n\tTemplateRef,\r\n\tViewContainerRef\r\n} from '@angular/core';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { ClipNoteComponent } from './clip-note.component';\r\n\r\nexport interface ClipNoteDefaultConfig {\r\n\tcolor: ThemePalette;\r\n\tcaption: string;\r\n}\r\n\r\n/** Used to provide default config for clip notes. */\r\nexport const CLIP_NOTE_DEFAULT_CONFIG = new InjectionToken<ClipNoteDefaultConfig>('bui-clip-note.default-config', {\r\n\tfactory: () => ({ color: 'primary', caption: 'More info' })\r\n});\r\n\r\n/**\r\n * A clip note consists of a toggle button and a floating 'notepad' element, attached to the top end of the host element's\r\n * viewable area. The 'notepad' normally collapses away and only reveals itself when the toggle button is active.\r\n *\r\n * The toggle button clips on the edge of the host element and expands to display the full caption when hovered. It hides itself\r\n * automatically when there is no content provided via the `buiClipNote` property of the directive.\r\n *\r\n * The clip note component is suitable for large page container elements with visible boundaries. It can present contextual\r\n * information regarding and in addition to the content displayed in the main view area.\r\n *\r\n * The properties `buiClipNoteColor` and `buiClipNoteCaption` customise the appearance of the clip note, the default values of which\r\n * can optionally be provided by the `ClipNoteModule.forConfig()` method.\r\n *\r\n */\r\n@Directive({\r\n\tselector: '[buiClipNote]',\r\n\texportAs: 'buiClipNote',\r\n\tstandalone: false\r\n})\r\nexport class ClipNoteDirective implements AfterViewInit {\r\n\t/**\r\n\t * Provide content to the clip note's floating notepad element.\r\n\t * It accepts a `string` of HTML content or a `TemplateRef` object.\r\n\t */\r\n\t@Input()\r\n\tget buiClipNote(): string | TemplateRef<any> | undefined {\r\n\t\treturn this._content;\r\n\t}\r\n\tset buiClipNote(note: string | TemplateRef<any> | undefined) {\r\n\t\tthis._content = note;\r\n\t\tif (this._compRef) {\r\n\t\t\tthis._processContent();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Customise the theme color alias.\r\n\t * @default 'primary'\r\n\t */\r\n\t@Input()\r\n\tget buiClipNoteColor(): ThemePalette {\r\n\t\treturn this._color;\r\n\t}\r\n\tset buiClipNoteColor(color: ThemePalette) {\r\n\t\tthis._color = color;\r\n\t\tif (this._compRef) {\r\n\t\t\tthis._compRef.instance._assignColor(this._color);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Customise the icon on the toggle button. With this property specified, the animation on the icon\r\n\t * will not be active.\r\n\t */\r\n\t@Input()\r\n\tget buiClipNoteIcon(): string | undefined {\r\n\t\treturn this._icon;\r\n\t}\r\n\tset buiClipNoteIcon(icon: string | undefined) {\r\n\t\tthis._icon = icon;\r\n\t\tif (this._compRef) {\r\n\t\t\tthis._compRef.instance._assignButtonIcon(this._icon);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * The caption of the toggle button when expanded.\r\n\t */\r\n\t@Input()\r\n\tget buiClipNoteCaption(): string {\r\n\t\treturn this._caption;\r\n\t}\r\n\tset buiClipNoteCaption(text: string) {\r\n\t\tthis._caption = text;\r\n\t\tif (this._compRef) {\r\n\t\t\tthis._compRef.instance._assignButtonText(this._caption);\r\n\t\t}\r\n\t}\r\n\r\n\t/** Emits when the panel opens */\r\n\t@Output()\r\n\treadonly buiClipNoteOpened = new EventEmitter<void>();\r\n\r\n\t/** Emits when the panel closes */\r\n\t@Output()\r\n\treadonly buiClipNoteClosed = new EventEmitter<void>();\r\n\r\n\tprivate _content?: string | TemplateRef<any>;\r\n\tprivate _color: ThemePalette = 'primary';\r\n\tprivate _compRef!: ComponentRef<ClipNoteComponent>;\r\n\tprivate _caption: string;\r\n\tprivate _icon?: string;\r\n\r\n\tconstructor(\r\n\t\t@Host() private _elementRef: ElementRef<HTMLElement>,\r\n\t\tprivate _vc: ViewContainerRef,\r\n\t\t@Inject(CLIP_NOTE_DEFAULT_CONFIG) _config: ClipNoteDefaultConfig\r\n\t) {\r\n\t\tthis._caption = _config.caption;\r\n\t\tthis._color = _config.color;\r\n\t}\r\n\r\n\tngAfterViewInit(): void {\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis._compRef = this._vc.createComponent(ClipNoteComponent);\r\n\t\t\tconst childElement: HTMLElement = this._compRef.location.nativeElement;\r\n\t\t\tconst element = this._elementRef.nativeElement;\r\n\t\t\telement.style.position = 'relative';\r\n\t\t\telement.appendChild(childElement);\r\n\t\t\tthis._compRef.instance._assignColor(this._color);\r\n\t\t\tthis._compRef.instance._assignButtonText(this._caption);\r\n\t\t\tthis._compRef.instance._assignButtonIcon(this._icon);\r\n\t\t\tthis._compRef.instance.opened.subscribe(this.buiClipNoteOpened.next.bind(this.buiClipNoteOpened));\r\n\t\t\tthis._compRef.instance.closed.subscribe(this.buiClipNoteClosed.next.bind(this.buiClipNoteClosed));\r\n\t\t\tthis._processContent();\r\n\t\t});\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis._compRef.destroy();\r\n\t}\r\n\r\n\t/** Open the note panel */\r\n\topen() {\r\n\t\tthis._compRef.instance.open();\r\n\t}\r\n\r\n\t/** Close the note panel */\r\n\tclose() {\r\n\t\tthis._compRef.instance.close();\r\n\t}\r\n\r\n\tprivate _processContent() {\r\n\t\tthis._compRef.instance._contentChanged(this._content);\r\n\t}\r\n}\r\n","import { BidiModule } from '@angular/cdk/bidi';\r\nimport { ObserversModule } from '@angular/cdk/observers';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { BuiCommonModule } from '@bravura/ui/common';\r\nimport { IconFontModule } from '@bravura/ui/icon-font';\r\nimport { ClipNoteComponent } from './clip-note.component';\r\nimport { ClipNoteDefaultConfig, ClipNoteDirective, CLIP_NOTE_DEFAULT_CONFIG } from './clip-note.directive';\r\n\r\n@NgModule({\r\n\tdeclarations: [ClipNoteComponent, ClipNoteDirective],\r\n\timports: [CommonModule, MatButtonModule, MatIconModule, BidiModule, BuiCommonModule, ObserversModule, IconFontModule],\r\n\texports: [ClipNoteDirective]\r\n})\r\nexport class ClipNoteModule {\r\n\tstatic forConfig(config: ClipNoteDefaultConfig): ModuleWithProviders<ClipNoteModule> {\r\n\t\treturn {\r\n\t\t\tngModule: ClipNoteModule,\r\n\t\t\tproviders: [{ provide: CLIP_NOTE_DEFAULT_CONFIG, useValue: config }]\r\n\t\t};\r\n\t}\r\n}\r\n\r\nexport { ClipNoteDirective };\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -65,11 +65,11 @@ class BuiCommonModule {
|
|
|
65
65
|
observer.observe(document.body, { attributes: true });
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
69
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
70
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
68
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BuiCommonModule, deps: [{ token: i1.Directionality }, { token: BuiCommonModule, optional: true, skipSelf: true }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
69
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: BuiCommonModule, imports: [BidiModule], exports: [BidiModule] }); }
|
|
70
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BuiCommonModule, imports: [BidiModule, BidiModule] }); }
|
|
71
71
|
}
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BuiCommonModule, decorators: [{
|
|
73
73
|
type: NgModule,
|
|
74
74
|
args: [{
|
|
75
75
|
declarations: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bravura-ui-common.mjs","sources":["../../../projects/ui/common/common-utils.ts","../../../projects/ui/common/common.module.ts","../../../projects/ui/common/bravura-ui-common.ts"],"sourcesContent":["export function generateID() {\r\n\treturn Math.round(Math.random() * Math.pow(2, 50)).toString(36);\r\n}\r\n\r\nexport function isElementInViewport(el: HTMLElement) {\r\n\tconst rect = el.getBoundingClientRect();\r\n\r\n\treturn (\r\n\t\trect.top >= 0 &&\r\n\t\trect.left >= 0 &&\r\n\t\trect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n\t\trect.right <= (window.innerWidth || document.documentElement.clientWidth)\r\n\t);\r\n}\r\n\r\n/**\r\n * Uses canvas.measureText to compute and return the width of the given text of given font in pixels.\r\n *\r\n * @param {String} text The text to be rendered.\r\n * @param el the element used to compute the font styles\r\n *\r\n * @see https://stackoverflow.com/questions/118241/calculate-text-width-with-javascript/21015393#21015393\r\n */\r\nexport function getTextWidth(text: string, el: HTMLElement = document.body): number {\r\n\tfunction getCssStyle(element: HTMLElement, prop: string) {\r\n\t\treturn window.getComputedStyle(element, null).getPropertyValue(prop);\r\n\t}\r\n\r\n\tconst fontWeight = getCssStyle(el, 'font-weight') || 'normal';\r\n\tconst fontSize = getCssStyle(el, 'font-size') || '16px';\r\n\tconst fontFamily = getCssStyle(el, 'font-family') || 'Arial';\r\n\r\n\tconst font = `${fontWeight} ${fontSize} ${fontFamily}`;\r\n\r\n\t// re-use canvas object for better performance\r\n\tconst canvas = (getTextWidth as any).canvas || ((getTextWidth as any).canvas = document.createElement('canvas'));\r\n\tconst context = canvas.getContext('2d');\r\n\tcontext.font = font;\r\n\tconst metrics = context.measureText(text);\r\n\treturn Math.round(metrics.width);\r\n}\r\n","import { BidiModule, Direction, Directionality } from '@angular/cdk/bidi';\n\nimport { Inject, NgModule, Optional, SkipSelf, DOCUMENT } from '@angular/core';\n\n/** Regex that matches locales with an RTL script. Taken from `goog.i18n.bidi.isRtlLanguage`. */\nconst RTL_LOCALE_PATTERN =\n\t/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;\n\n/** Resolves a string value to a specific direction. */\nexport function _resolveDirectionality(rawValue: string): Direction {\n\tconst value = rawValue?.toLowerCase() || '';\n\n\tif (value === 'auto' && typeof navigator !== 'undefined' && navigator?.language) {\n\t\treturn RTL_LOCALE_PATTERN.test(navigator.language) ? 'rtl' : 'ltr';\n\t}\n\n\treturn value === 'rtl' ? 'rtl' : 'ltr';\n}\n\n@NgModule({\n\tdeclarations: [],\n\timports: [BidiModule],\n\texports: [BidiModule]\n})\nexport class BuiCommonModule {\n\tconstructor(\n\t\tdir: Directionality,\n\t\t@Optional()\n\t\t@SkipSelf()\n\t\tthisModule: BuiCommonModule,\n\t\t@Inject(DOCUMENT) document: Document\n\t) {\n\t\tif (!thisModule) {\n\t\t\tconst observer = new MutationObserver(() => {\n\t\t\t\tconst attr = document.documentElement.getAttribute('dir') || document.body.getAttribute('dir');\n\t\t\t\tif (attr && dir.value !== attr) {\n\t\t\t\t\tconst d = _resolveDirectionality(attr);\n\t\t\t\t\tdir.change.emit(d);\n\t\t\t\t\tif (Object.getOwnPropertyNames(dir).includes('value')) {\n\t\t\t\t\t\t(dir as any).value = d;\n\t\t\t\t\t}\n\t\t\t\t\tsetTimeout(() => dir.change.emit(d));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tobserver.observe(document.documentElement, { attributes: true });\n\t\t\tobserver.observe(document.body, { attributes: true });\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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
|
|
1
|
+
{"version":3,"file":"bravura-ui-common.mjs","sources":["../../../projects/ui/common/common-utils.ts","../../../projects/ui/common/common.module.ts","../../../projects/ui/common/bravura-ui-common.ts"],"sourcesContent":["export function generateID() {\r\n\treturn Math.round(Math.random() * Math.pow(2, 50)).toString(36);\r\n}\r\n\r\nexport function isElementInViewport(el: HTMLElement) {\r\n\tconst rect = el.getBoundingClientRect();\r\n\r\n\treturn (\r\n\t\trect.top >= 0 &&\r\n\t\trect.left >= 0 &&\r\n\t\trect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n\t\trect.right <= (window.innerWidth || document.documentElement.clientWidth)\r\n\t);\r\n}\r\n\r\n/**\r\n * Uses canvas.measureText to compute and return the width of the given text of given font in pixels.\r\n *\r\n * @param {String} text The text to be rendered.\r\n * @param el the element used to compute the font styles\r\n *\r\n * @see https://stackoverflow.com/questions/118241/calculate-text-width-with-javascript/21015393#21015393\r\n */\r\nexport function getTextWidth(text: string, el: HTMLElement = document.body): number {\r\n\tfunction getCssStyle(element: HTMLElement, prop: string) {\r\n\t\treturn window.getComputedStyle(element, null).getPropertyValue(prop);\r\n\t}\r\n\r\n\tconst fontWeight = getCssStyle(el, 'font-weight') || 'normal';\r\n\tconst fontSize = getCssStyle(el, 'font-size') || '16px';\r\n\tconst fontFamily = getCssStyle(el, 'font-family') || 'Arial';\r\n\r\n\tconst font = `${fontWeight} ${fontSize} ${fontFamily}`;\r\n\r\n\t// re-use canvas object for better performance\r\n\tconst canvas = (getTextWidth as any).canvas || ((getTextWidth as any).canvas = document.createElement('canvas'));\r\n\tconst context = canvas.getContext('2d');\r\n\tcontext.font = font;\r\n\tconst metrics = context.measureText(text);\r\n\treturn Math.round(metrics.width);\r\n}\r\n","import { BidiModule, Direction, Directionality } from '@angular/cdk/bidi';\n\nimport { Inject, NgModule, Optional, SkipSelf, DOCUMENT } from '@angular/core';\n\n/** Regex that matches locales with an RTL script. Taken from `goog.i18n.bidi.isRtlLanguage`. */\nconst RTL_LOCALE_PATTERN =\n\t/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;\n\n/** Resolves a string value to a specific direction. */\nexport function _resolveDirectionality(rawValue: string): Direction {\n\tconst value = rawValue?.toLowerCase() || '';\n\n\tif (value === 'auto' && typeof navigator !== 'undefined' && navigator?.language) {\n\t\treturn RTL_LOCALE_PATTERN.test(navigator.language) ? 'rtl' : 'ltr';\n\t}\n\n\treturn value === 'rtl' ? 'rtl' : 'ltr';\n}\n\n@NgModule({\n\tdeclarations: [],\n\timports: [BidiModule],\n\texports: [BidiModule]\n})\nexport class BuiCommonModule {\n\tconstructor(\n\t\tdir: Directionality,\n\t\t@Optional()\n\t\t@SkipSelf()\n\t\tthisModule: BuiCommonModule,\n\t\t@Inject(DOCUMENT) document: Document\n\t) {\n\t\tif (!thisModule) {\n\t\t\tconst observer = new MutationObserver(() => {\n\t\t\t\tconst attr = document.documentElement.getAttribute('dir') || document.body.getAttribute('dir');\n\t\t\t\tif (attr && dir.value !== attr) {\n\t\t\t\t\tconst d = _resolveDirectionality(attr);\n\t\t\t\t\tdir.change.emit(d);\n\t\t\t\t\tif (Object.getOwnPropertyNames(dir).includes('value')) {\n\t\t\t\t\t\t(dir as any).value = d;\n\t\t\t\t\t}\n\t\t\t\t\tsetTimeout(() => dir.change.emit(d));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tobserver.observe(document.documentElement, { attributes: true });\n\t\t\tobserver.observe(document.body, { attributes: true });\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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"}
|
|
@@ -222,10 +222,10 @@ class CurrencyInputDirective {
|
|
|
222
222
|
const decimalStr = this.baseUnitOnly ? '' : `${this._ds}00`;
|
|
223
223
|
return this._trailing ? `0${decimalStr} ${this._symbol}` : `${this._symbol}0${decimalStr}`;
|
|
224
224
|
}
|
|
225
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
226
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
225
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CurrencyInputDirective, deps: [{ token: i0.ElementRef, self: true }, { token: i0.Renderer2 }, { token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }, { token: MAT_FORM_FIELD, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
226
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: CurrencyInputDirective, isStandalone: false, selector: "input[buiCurrencyInput],input[currencyCode],input[data-type=currency]", inputs: { allowNegative: "allowNegative", currencyCode: "currencyCode", baseUnitOnly: "baseUnitOnly", format: "format" }, host: { listeners: { "input": "onInput()", "focus": "onFocus()", "blur": "onblur()" }, properties: { "placeholder": "this.placeholder", "autocomplete": "this.autocomplete", "type": "this.type", "attr.inputmode": "this.inputMode" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CurrencyInputDirective), multi: true }], usesOnChanges: true, ngImport: i0 }); }
|
|
227
227
|
}
|
|
228
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
228
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CurrencyInputDirective, decorators: [{
|
|
229
229
|
type: Directive,
|
|
230
230
|
args: [{
|
|
231
231
|
selector: 'input[buiCurrencyInput],input[currencyCode],input[data-type=currency]',
|
|
@@ -277,11 +277,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
277
277
|
}] } });
|
|
278
278
|
|
|
279
279
|
class CurrencyInputModule {
|
|
280
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
281
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
282
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
280
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CurrencyInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
281
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: CurrencyInputModule, declarations: [CurrencyInputDirective], imports: [CommonModule], exports: [CurrencyInputDirective] }); }
|
|
282
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CurrencyInputModule, imports: [CommonModule] }); }
|
|
283
283
|
}
|
|
284
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
284
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CurrencyInputModule, decorators: [{
|
|
285
285
|
type: NgModule,
|
|
286
286
|
args: [{
|
|
287
287
|
declarations: [CurrencyInputDirective],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bravura-ui-currency-input.mjs","sources":["../../../projects/ui/currency-input/currency-input.directive.ts","../../../projects/ui/currency-input/currency-input.module.ts","../../../projects/ui/currency-input/bravura-ui-currency-input.ts"],"sourcesContent":["import { DecimalPipe, getCurrencySymbol } from '@angular/common';\r\nimport {\r\n\tDEFAULT_CURRENCY_CODE,\r\n\tDirective,\r\n\tElementRef,\r\n\tforwardRef,\r\n\tHostBinding,\r\n\tHostListener,\r\n\tInject,\r\n\tInput,\r\n\tLOCALE_ID,\r\n\tOnChanges,\r\n\tOnInit,\r\n\tOptional,\r\n\tRenderer2,\r\n\tSelf,\r\n\tɵfindLocaleData\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MatFormField, MAT_FORM_FIELD } from '@angular/material/form-field';\r\nimport { MatInput } from '@angular/material/input';\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 currency amount.\r\n */\r\n@Directive({\r\n\tselector: 'input[buiCurrencyInput],input[currencyCode],input[data-type=currency]',\r\n\tproviders: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CurrencyInputDirective), multi: true }],\r\n\tstandalone: false\r\n})\r\nexport class CurrencyInputDirective implements OnInit, OnChanges, ControlValueAccessor {\r\n\t/**\r\n\t * true to allow negative input, otherwise false\r\n\t * Default to false.\r\n\t */\r\n\t@Input()\r\n\tallowNegative: boolean = false;\r\n\r\n\t/**\r\n\t * Provide the currency code to format the entered amount.\r\n\t * Uses angular token DEFAULT_CURRENCY_CODE by default.\r\n\t */\r\n\t@Input()\r\n\tcurrencyCode: string = '';\r\n\r\n\t/**\r\n\t * true if no decimal digits allowed, otherwise false.\r\n\t * Default to false.\r\n\t */\r\n\t@Input()\r\n\tbaseUnitOnly = false;\r\n\r\n\t/**\r\n\t * The format the of the amount either in wide or narrow.\r\n\t */\r\n\t@Input()\r\n\tformat: 'narrow' | 'wide' = 'wide';\r\n\r\n\t@HostBinding('placeholder')\r\n\tprivate placeholder: string = '';\r\n\r\n\t@HostBinding('autocomplete')\r\n\tprivate autocomplete = 'off';\r\n\r\n\t@HostBinding('type')\r\n\tprivate type = 'text';\r\n\r\n\t@HostBinding('attr.inputmode')\r\n\tprivate inputMode = 'decimal';\r\n\r\n\tprivate change = noop_consumer;\r\n\tprivate onTouch = noop;\r\n\tprivate _safari: boolean;\r\n\tprivate _symbol: string = '$';\r\n\tprivate _decimalPipe!: DecimalPipe;\r\n\r\n\tprivate _ds = '.'; // decimal separator\r\n\tprivate _trailing = false;\r\n\r\n\tconstructor(\r\n\t\t@Self() private _el: ElementRef<HTMLInputElement>,\r\n\t\tprivate _renderer: Renderer2,\r\n\t\t@Inject(LOCALE_ID) private _locale: string,\r\n\t\t@Inject(DEFAULT_CURRENCY_CODE) private _defaultCurrencyCode: string,\r\n\t\t@Optional() @Inject(MAT_FORM_FIELD) private _field?: MatFormField\r\n\t) {\r\n\t\tconst userAgent = navigator.userAgent;\r\n\t\tthis._safari = !userAgent.match(/Firefox/i) && !userAgent.match(/Chrome/i) && !!userAgent.match(/safari/i);\r\n\t\tthis._currencyUpdated();\r\n\t}\r\n\r\n\tngOnInit() {}\r\n\r\n\tngOnChanges(): void {\r\n\t\tthis._currencyUpdated();\r\n\t\tthis.onInput();\r\n\t}\r\n\r\n\t@HostListener('input')\r\n\tonInput() {\r\n\t\tthis._formatCurrency(this._el, false, true);\r\n\t}\r\n\r\n\t@HostListener('focus')\r\n\tonFocus() {\r\n\t\tthis._formatCurrency(this._el, false, true);\r\n\t}\r\n\r\n\t@HostListener('blur')\r\n\tonblur() {\r\n\t\tthis.onTouch();\r\n\t\tthis._formatCurrency(this._el, true, false);\r\n\t}\r\n\r\n\twriteValue(value: any) {\r\n\t\tvalue = this._decimalPipe.transform(value);\r\n\t\tthis._renderer.setProperty(this._el.nativeElement, 'value', value);\r\n\t\tthis._formatCurrency(this._el, true, false);\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 _updatePlaceholder() {\r\n\t\tthis.placeholder = this.placeholder || this._0Text;\r\n\t\tif (this._field?._control instanceof MatInput) {\r\n\t\t\tthis._field._control.placeholder = this.placeholder;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _currencyUpdated() {\r\n\t\tthis.currencyCode = this.currencyCode || this._defaultCurrencyCode;\r\n\t\tthis._symbol = getCurrencySymbol(this.currencyCode, this.format, this._locale) || '$';\r\n\t\tconst localeData = ɵfindLocaleData(this._locale);\r\n\t\tthis._ds = localeData[13][0];\r\n\t\tthis._decimalPipe = new DecimalPipe(this._locale);\r\n\t\tconst curFormat: string = localeData[14][2];\r\n\t\tthis._trailing = curFormat.indexOf('¤') > 0;\r\n\t\tthis._updatePlaceholder();\r\n\t}\r\n\r\n\tprivate _formatCurrency(input: ElementRef<HTMLInputElement>, blur: boolean, focus: boolean) {\r\n\t\t// appends $ to value, validates decimal side\r\n\t\t// and puts cursor back in right position.\r\n\t\t// get input value\r\n\t\tlet input_val = input.nativeElement.value;\r\n\r\n\t\t// don't validate empty input\r\n\t\tif (input_val === '') {\r\n\t\t\tthis.change(null);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst minus = this.allowNegative ? '-' : '';\r\n\r\n\t\t// remove non digit values except currency symbol, decimal separator and hypen\r\n\t\tconst reg = new RegExp(`[^0-9${minus}${this._symbol}${this._ds}]`, 'g');\r\n\r\n\t\tlet sanitiseValue = input_val.replace(reg, '');\r\n\r\n\t\tif (sanitiseValue === '' || sanitiseValue === this._symbol) {\r\n\t\t\tthis.change(null);\r\n\t\t\tthis._renderer.setProperty(input.nativeElement, 'value', '');\r\n\t\t\treturn;\r\n\t\t} else if (\r\n\t\t\t(this.allowNegative && sanitiseValue === `-${this._symbol}`) ||\r\n\t\t\tsanitiseValue === '-' ||\r\n\t\t\tsanitiseValue === '--'\r\n\t\t) {\r\n\t\t\tthis.change(null);\r\n\t\t\tthis._renderer.setProperty(input.nativeElement, 'value', '-');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst negative = this.allowNegative && input_val.indexOf('-') >= 0;\r\n\r\n\t\t// original length\r\n\t\tconst original_len = input_val.length;\r\n\r\n\t\t// initial caret position\r\n\t\tlet caret_pos = input.nativeElement.selectionStart;\r\n\r\n\t\tinput_val = input_val.replace(RegExp(`[^0-9${minus}${this._ds}]`, 'g'), '').replace(/^\\.\\./, '');\r\n\t\t// check for decimal\r\n\t\tif (input_val.indexOf(this._ds) >= 0) {\r\n\t\t\t// get position of first decimal\r\n\t\t\t// this prevents multiple decimals from\r\n\t\t\t// being entered\r\n\t\t\tlet decimal_pos = input_val.indexOf(this._ds);\r\n\r\n\t\t\t// split number by decimal point\r\n\t\t\tlet left_side = input_val.substring(0, decimal_pos);\r\n\t\t\tlet right_side = input_val.substring(decimal_pos);\r\n\r\n\t\t\t// add commas to left side of number\r\n\t\t\tleft_side = this._formatNumber(left_side, blur) || '';\r\n\r\n\t\t\t// no value append a zero for decimal values\r\n\t\t\tif (!left_side.length) {\r\n\t\t\t\tleft_side = '0';\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.baseUnitOnly) {\r\n\t\t\t\t// validate right side\r\n\t\t\t\tright_side = right_side.replace(/\\D/g, '');\r\n\r\n\t\t\t\t// Limit decimal to only 2 digits\r\n\t\t\t\tlet v = Number(`0.${right_side}`);\r\n\t\t\t\tif (v) {\r\n\t\t\t\t\tconst length = right_side.length > 1 ? 2 : 1;\r\n\t\t\t\t\tright_side = v.toFixed(length).substring(2, 4);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// On blur make sure 2 numbers after decimal\r\n\t\t\t\tif (blur) {\r\n\t\t\t\t\tright_side += '00';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tright_side = right_side.substring(0, 2);\r\n\r\n\t\t\t\t// join number by .\r\n\t\t\t\tinput_val = left_side + this._ds + right_side;\r\n\t\t\t} else {\r\n\t\t\t\tinput_val = left_side;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tinput_val = this._formatNumber(input_val, blur);\r\n\r\n\t\t\t// final formatting\r\n\t\t\tif (blur && !this.baseUnitOnly) {\r\n\t\t\t\tinput_val += `${this._ds}00`;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst numStr = input_val;\r\n\t\t// append the currency symbol\r\n\t\tif (!this._safari || !focus) {\r\n\t\t\tif (this._trailing) {\r\n\t\t\t\tinput_val = input_val + ' ' + this._symbol;\r\n\t\t\t} else {\r\n\t\t\t\tinput_val = this._symbol + input_val;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (negative) {\r\n\t\t\t// append the hypen back to the value if a negative value was entered\r\n\t\t\tinput_val = `-${input_val}`;\r\n\t\t}\r\n\r\n\t\tconst num = this._convert((negative ? '-' : '') + numStr);\r\n\r\n\t\t// update control value first with the number\r\n\t\tthis.change(Number(num));\r\n\r\n\t\tif (blur && num === 0) {\r\n\t\t\tinput_val = this._0Text;\r\n\t\t}\r\n\r\n\t\t// update dom with the formatted value\r\n\t\tthis._renderer.setProperty(input.nativeElement, 'value', input_val);\r\n\t\t// put caret back in the right position\r\n\t\tlet updated_len = input_val.length;\r\n\t\tif (caret_pos) {\r\n\t\t\tcaret_pos = updated_len - original_len + caret_pos;\r\n\t\t\tif (input_val.substring(caret_pos - this._symbol.length) === this._symbol && this._trailing) {\r\n\t\t\t\tcaret_pos -= this._symbol.length + 1;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!this._safari) {\r\n\t\t\tinput.nativeElement.setSelectionRange(caret_pos, caret_pos);\r\n\t\t}\r\n\t}\r\n\r\n\t// format the number into currency format\r\n\tprivate _formatNumber(n: string, blur: boolean = false) {\r\n\t\t// format number 1000000 to 1,234,567\r\n\t\tn = n.replace(/\\D/g, '');\r\n\t\tif (blur) {\r\n\t\t\tn = n.replace(/^0+/, '');\r\n\t\t}\r\n\t\treturn this._decimalPipe.transform(n, '1.0-0') as string;\r\n\t}\r\n\r\n\tprivate _convert(input: string): number {\r\n\t\tconst val = input\r\n\t\t\t.replace(this._ds, 'd')\r\n\t\t\t.replace(/[^0-9d-]/g, '')\r\n\t\t\t.replace('d', '.');\r\n\t\treturn parseFloat(val);\r\n\t}\r\n\r\n\tprivate get _0Text(): string {\r\n\t\tconst decimalStr = this.baseUnitOnly ? '' : `${this._ds}00`;\r\n\t\treturn this._trailing ? `0${decimalStr} ${this._symbol}` : `${this._symbol}0${decimalStr}`;\r\n\t}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { CurrencyInputDirective } from './currency-input.directive';\r\n\r\n@NgModule({\r\n\tdeclarations: [CurrencyInputDirective],\r\n\timports: [CommonModule],\r\n\texports: [CurrencyInputDirective]\r\n})\r\nexport class CurrencyInputModule {}\r\n\r\nexport { CurrencyInputDirective };\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵfindLocaleData"],"mappings":";;;;;;;;;AAuBA;AACO,MAAM,aAAa,GAAG,CAAC,CAAM,KAAM,GAAC;AAE3C;;AAEG;MAMU,sBAAsB,CAAA;IAiDlC,WACiB,CAAA,GAAiC,EACzC,SAAoB,EACD,OAAe,EACH,oBAA4B,EACvB,MAAqB,EAAA;QAJjD,IAAG,CAAA,GAAA,GAAH,GAAG;QACX,IAAS,CAAA,SAAA,GAAT,SAAS;QACU,IAAO,CAAA,OAAA,GAAP,OAAO;QACK,IAAoB,CAAA,oBAAA,GAApB,oBAAoB;QACf,IAAM,CAAA,MAAA,GAAN,MAAM;AArDnD;;;AAGG;QAEH,IAAa,CAAA,aAAA,GAAY,KAAK;AAE9B;;;AAGG;QAEH,IAAY,CAAA,YAAA,GAAW,EAAE;AAEzB;;;AAGG;QAEH,IAAY,CAAA,YAAA,GAAG,KAAK;AAEpB;;AAEG;QAEH,IAAM,CAAA,MAAA,GAAsB,MAAM;QAG1B,IAAW,CAAA,WAAA,GAAW,EAAE;QAGxB,IAAY,CAAA,YAAA,GAAG,KAAK;QAGpB,IAAI,CAAA,IAAA,GAAG,MAAM;QAGb,IAAS,CAAA,SAAA,GAAG,SAAS;QAErB,IAAM,CAAA,MAAA,GAAG,aAAa;QACtB,IAAO,CAAA,OAAA,GAAG,IAAI;QAEd,IAAO,CAAA,OAAA,GAAW,GAAG;AAGrB,QAAA,IAAA,CAAA,GAAG,GAAG,GAAG,CAAC;QACV,IAAS,CAAA,SAAA,GAAG,KAAK;AASxB,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS;QACrC,IAAI,CAAC,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;QAC1G,IAAI,CAAC,gBAAgB,EAAE;;AAGxB,IAAA,QAAQ;IAER,WAAW,GAAA;QACV,IAAI,CAAC,gBAAgB,EAAE;QACvB,IAAI,CAAC,OAAO,EAAE;;IAIf,OAAO,GAAA;QACN,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;;IAI5C,OAAO,GAAA;QACN,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;;IAI5C,MAAM,GAAA;QACL,IAAI,CAAC,OAAO,EAAE;QACd,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC;;AAG5C,IAAA,UAAU,CAAC,KAAU,EAAA;QACpB,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC;AAC1C,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC;QAClE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC;;AAG5C,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE;;AAGjB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACxB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;;IAGV,kBAAkB,GAAA;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM;QAClD,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,YAAY,QAAQ,EAAE;YAC9C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW;;;IAI7C,gBAAgB,GAAA;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,oBAAoB;AAClE,QAAA,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG;QACrF,MAAM,UAAU,GAAGA,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;QAChD,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;QACjD,MAAM,SAAS,GAAW,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QAC3C,IAAI,CAAC,kBAAkB,EAAE;;AAGlB,IAAA,eAAe,CAAC,KAAmC,EAAE,IAAa,EAAE,KAAc,EAAA;;;;AAIzF,QAAA,IAAI,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK;;AAGzC,QAAA,IAAI,SAAS,KAAK,EAAE,EAAE;AACrB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACjB;;AAGD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,EAAE;;AAG3C,QAAA,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,CAAA,KAAA,EAAQ,KAAK,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,EAAG,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC;QAEvE,IAAI,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAE9C,IAAI,aAAa,KAAK,EAAE,IAAI,aAAa,KAAK,IAAI,CAAC,OAAO,EAAE;AAC3D,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACjB,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC;YAC5D;;AACM,aAAA,IACN,CAAC,IAAI,CAAC,aAAa,IAAI,aAAa,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,CAAA,CAAE;AAC3D,YAAA,aAAa,KAAK,GAAG;YACrB,aAAa,KAAK,IAAI,EACrB;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACjB,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,CAAC;YAC7D;;AAGD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;;AAGlE,QAAA,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM;;AAGrC,QAAA,IAAI,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc;QAElD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAQ,KAAA,EAAA,KAAK,CAAG,EAAA,IAAI,CAAC,GAAG,CAAG,CAAA,CAAA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;;QAEhG,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;;;;YAIrC,IAAI,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;;YAG7C,IAAI,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC;YACnD,IAAI,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC;;YAGjD,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE;;AAGrD,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;gBACtB,SAAS,GAAG,GAAG;;AAGhB,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;;gBAEvB,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;;gBAG1C,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,UAAU,CAAA,CAAE,CAAC;gBACjC,IAAI,CAAC,EAAE;AACN,oBAAA,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAC5C,oBAAA,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;;;gBAI/C,IAAI,IAAI,EAAE;oBACT,UAAU,IAAI,IAAI;;gBAGnB,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;;gBAGvC,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,GAAG,UAAU;;iBACvC;gBACN,SAAS,GAAG,SAAS;;;aAEhB;YACN,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC;;AAG/C,YAAA,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAC/B,gBAAA,SAAS,IAAI,CAAG,EAAA,IAAI,CAAC,GAAG,IAAI;;;QAI9B,MAAM,MAAM,GAAG,SAAS;;QAExB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE;AAC5B,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;gBACnB,SAAS,GAAG,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO;;iBACpC;AACN,gBAAA,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,SAAS;;;QAItC,IAAI,QAAQ,EAAE;;AAEb,YAAA,SAAS,GAAG,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE;;QAG5B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,GAAG,GAAG,GAAG,EAAE,IAAI,MAAM,CAAC;;QAGzD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAExB,QAAA,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,EAAE;AACtB,YAAA,SAAS,GAAG,IAAI,CAAC,MAAM;;;AAIxB,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC;;AAEnE,QAAA,IAAI,WAAW,GAAG,SAAS,CAAC,MAAM;QAClC,IAAI,SAAS,EAAE;AACd,YAAA,SAAS,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS;YAClD,IAAI,SAAS,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;gBAC5F,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;;;AAGtC,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAClB,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC;;;;AAKrD,IAAA,aAAa,CAAC,CAAS,EAAE,IAAA,GAAgB,KAAK,EAAA;;QAErD,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACxB,IAAI,IAAI,EAAE;YACT,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;;QAEzB,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAW;;AAGjD,IAAA,QAAQ,CAAC,KAAa,EAAA;QAC7B,MAAM,GAAG,GAAG;AACV,aAAA,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG;AACrB,aAAA,OAAO,CAAC,WAAW,EAAE,EAAE;AACvB,aAAA,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;AACnB,QAAA,OAAO,UAAU,CAAC,GAAG,CAAC;;AAGvB,IAAA,IAAY,MAAM,GAAA;AACjB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,CAAA,EAAG,IAAI,CAAC,GAAG,IAAI;QAC3D,OAAO,IAAI,CAAC,SAAS,GAAG,CAAA,CAAA,EAAI,UAAU,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,CAAE,CAAA,GAAG,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,UAAU,CAAA,CAAE;;AA5Q/E,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EAoDzB,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,SAAS,EACT,EAAA,EAAA,KAAA,EAAA,qBAAqB,aACT,cAAc,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAtDvB,sBAAsB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,uEAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAHvB,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGnG,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,uEAAuE;oBACjF,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,4BAA4B,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC/G,oBAAA,UAAU,EAAE;AACZ,iBAAA;;0BAmDE;;0BAEA,MAAM;2BAAC,SAAS;;0BAChB,MAAM;2BAAC,qBAAqB;;0BAC5B;;0BAAY,MAAM;2BAAC,cAAc;;sBAjDlC;;sBAOA;;sBAOA;;sBAMA;;sBAGA,WAAW;uBAAC,aAAa;;sBAGzB,WAAW;uBAAC,cAAc;;sBAG1B,WAAW;uBAAC,MAAM;;sBAGlB,WAAW;uBAAC,gBAAgB;;sBA+B5B,YAAY;uBAAC,OAAO;;sBAKpB,YAAY;uBAAC,OAAO;;sBAKpB,YAAY;uBAAC,MAAM;;;MCvGR,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAJhB,YAAA,EAAA,CAAA,sBAAsB,CAC3B,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,sBAAsB,CAAA,EAAA,CAAA,CAAA;AAEpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAHrB,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGV,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,sBAAsB;AAChC,iBAAA;;;ACRD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"bravura-ui-currency-input.mjs","sources":["../../../projects/ui/currency-input/currency-input.directive.ts","../../../projects/ui/currency-input/currency-input.module.ts","../../../projects/ui/currency-input/bravura-ui-currency-input.ts"],"sourcesContent":["import { DecimalPipe, getCurrencySymbol } from '@angular/common';\nimport {\n\tDEFAULT_CURRENCY_CODE,\n\tDirective,\n\tElementRef,\n\tforwardRef,\n\tHostBinding,\n\tHostListener,\n\tInject,\n\tInput,\n\tLOCALE_ID,\n\tOnChanges,\n\tOnInit,\n\tOptional,\n\tRenderer2,\n\tSelf,\n\tɵfindLocaleData\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MAT_FORM_FIELD, MatFormField } from '@angular/material/form-field';\nimport { MatInput } from '@angular/material/input';\nimport { noop } from 'rxjs';\n\n/* tslint:disable:no-empty */\nexport const noop_consumer = (_: any) => {};\n\n/**\n * This directive will enhance an input element to format the numbers entered to a currency amount.\n */\n@Directive({\n\tselector: 'input[buiCurrencyInput],input[currencyCode],input[data-type=currency]',\n\tproviders: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CurrencyInputDirective), multi: true }],\n\tstandalone: false\n})\nexport class CurrencyInputDirective implements OnInit, OnChanges, ControlValueAccessor {\n\t/**\n\t * true to allow negative input, otherwise false\n\t * Default to false.\n\t */\n\t@Input()\n\tallowNegative: boolean = false;\n\n\t/**\n\t * Provide the currency code to format the entered amount.\n\t * Uses angular token DEFAULT_CURRENCY_CODE by default.\n\t */\n\t@Input()\n\tcurrencyCode: string = '';\n\n\t/**\n\t * true if no decimal digits allowed, otherwise false.\n\t * Default to false.\n\t */\n\t@Input()\n\tbaseUnitOnly = false;\n\n\t/**\n\t * The format the of the amount either in wide or narrow.\n\t */\n\t@Input()\n\tformat: 'narrow' | 'wide' = 'wide';\n\n\t@HostBinding('placeholder')\n\tplaceholder: string = '';\n\n\t@HostBinding('autocomplete')\n\tautocomplete = 'off';\n\n\t@HostBinding('type')\n\ttype = 'text';\n\n\t@HostBinding('attr.inputmode')\n\tinputMode = 'decimal';\n\n\tprivate change = noop_consumer;\n\tprivate onTouch = noop;\n\tprivate _safari: boolean;\n\tprivate _symbol: string = '$';\n\tprivate _decimalPipe!: DecimalPipe;\n\n\tprivate _ds = '.'; // decimal separator\n\tprivate _trailing = false;\n\n\tconstructor(\n\t\t@Self() private _el: ElementRef<HTMLInputElement>,\n\t\tprivate _renderer: Renderer2,\n\t\t@Inject(LOCALE_ID) private _locale: string,\n\t\t@Inject(DEFAULT_CURRENCY_CODE) private _defaultCurrencyCode: string,\n\t\t@Optional() @Inject(MAT_FORM_FIELD) private _field?: MatFormField\n\t) {\n\t\tconst userAgent = navigator.userAgent;\n\t\tthis._safari = !userAgent.match(/Firefox/i) && !userAgent.match(/Chrome/i) && !!userAgent.match(/safari/i);\n\t\tthis._currencyUpdated();\n\t}\n\n\tngOnInit() {}\n\n\tngOnChanges(): void {\n\t\tthis._currencyUpdated();\n\t\tthis.onInput();\n\t}\n\n\t@HostListener('input')\n\tonInput() {\n\t\tthis._formatCurrency(this._el, false, true);\n\t}\n\n\t@HostListener('focus')\n\tonFocus() {\n\t\tthis._formatCurrency(this._el, false, true);\n\t}\n\n\t@HostListener('blur')\n\tonblur() {\n\t\tthis.onTouch();\n\t\tthis._formatCurrency(this._el, true, false);\n\t}\n\n\twriteValue(value: any) {\n\t\tvalue = this._decimalPipe.transform(value);\n\t\tthis._renderer.setProperty(this._el.nativeElement, 'value', value);\n\t\tthis._formatCurrency(this._el, true, false);\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 _updatePlaceholder() {\n\t\tthis.placeholder = this.placeholder || this._0Text;\n\t\tif (this._field?._control instanceof MatInput) {\n\t\t\tthis._field._control.placeholder = this.placeholder;\n\t\t}\n\t}\n\n\tprivate _currencyUpdated() {\n\t\tthis.currencyCode = this.currencyCode || this._defaultCurrencyCode;\n\t\tthis._symbol = getCurrencySymbol(this.currencyCode, this.format, this._locale) || '$';\n\t\tconst localeData = ɵfindLocaleData(this._locale);\n\t\tthis._ds = localeData[13][0];\n\t\tthis._decimalPipe = new DecimalPipe(this._locale);\n\t\tconst curFormat: string = localeData[14][2];\n\t\tthis._trailing = curFormat.indexOf('¤') > 0;\n\t\tthis._updatePlaceholder();\n\t}\n\n\tprivate _formatCurrency(input: ElementRef<HTMLInputElement>, blur: boolean, focus: boolean) {\n\t\t// appends $ to value, validates decimal side\n\t\t// and puts cursor back in right position.\n\t\t// get input value\n\t\tlet input_val = input.nativeElement.value;\n\n\t\t// don't validate empty input\n\t\tif (input_val === '') {\n\t\t\tthis.change(null);\n\t\t\treturn;\n\t\t}\n\n\t\tconst minus = this.allowNegative ? '-' : '';\n\n\t\t// remove non digit values except currency symbol, decimal separator and hypen\n\t\tconst reg = new RegExp(`[^0-9${minus}${this._symbol}${this._ds}]`, 'g');\n\n\t\tlet sanitiseValue = input_val.replace(reg, '');\n\n\t\tif (sanitiseValue === '' || sanitiseValue === this._symbol) {\n\t\t\tthis.change(null);\n\t\t\tthis._renderer.setProperty(input.nativeElement, 'value', '');\n\t\t\treturn;\n\t\t} else if (\n\t\t\t(this.allowNegative && sanitiseValue === `-${this._symbol}`) ||\n\t\t\tsanitiseValue === '-' ||\n\t\t\tsanitiseValue === '--'\n\t\t) {\n\t\t\tthis.change(null);\n\t\t\tthis._renderer.setProperty(input.nativeElement, 'value', '-');\n\t\t\treturn;\n\t\t}\n\n\t\tconst negative = this.allowNegative && input_val.indexOf('-') >= 0;\n\n\t\t// original length\n\t\tconst original_len = input_val.length;\n\n\t\t// initial caret position\n\t\tlet caret_pos = input.nativeElement.selectionStart;\n\n\t\tinput_val = input_val.replace(RegExp(`[^0-9${minus}${this._ds}]`, 'g'), '').replace(/^\\.\\./, '');\n\t\t// check for decimal\n\t\tif (input_val.indexOf(this._ds) >= 0) {\n\t\t\t// get position of first decimal\n\t\t\t// this prevents multiple decimals from\n\t\t\t// being entered\n\t\t\tlet decimal_pos = input_val.indexOf(this._ds);\n\n\t\t\t// split number by decimal point\n\t\t\tlet left_side = input_val.substring(0, decimal_pos);\n\t\t\tlet right_side = input_val.substring(decimal_pos);\n\n\t\t\t// add commas to left side of number\n\t\t\tleft_side = this._formatNumber(left_side, blur) || '';\n\n\t\t\t// no value append a zero for decimal values\n\t\t\tif (!left_side.length) {\n\t\t\t\tleft_side = '0';\n\t\t\t}\n\n\t\t\tif (!this.baseUnitOnly) {\n\t\t\t\t// validate right side\n\t\t\t\tright_side = right_side.replace(/\\D/g, '');\n\n\t\t\t\t// Limit decimal to only 2 digits\n\t\t\t\tlet v = Number(`0.${right_side}`);\n\t\t\t\tif (v) {\n\t\t\t\t\tconst length = right_side.length > 1 ? 2 : 1;\n\t\t\t\t\tright_side = v.toFixed(length).substring(2, 4);\n\t\t\t\t}\n\n\t\t\t\t// On blur make sure 2 numbers after decimal\n\t\t\t\tif (blur) {\n\t\t\t\t\tright_side += '00';\n\t\t\t\t}\n\n\t\t\t\tright_side = right_side.substring(0, 2);\n\n\t\t\t\t// join number by .\n\t\t\t\tinput_val = left_side + this._ds + right_side;\n\t\t\t} else {\n\t\t\t\tinput_val = left_side;\n\t\t\t}\n\t\t} else {\n\t\t\tinput_val = this._formatNumber(input_val, blur);\n\n\t\t\t// final formatting\n\t\t\tif (blur && !this.baseUnitOnly) {\n\t\t\t\tinput_val += `${this._ds}00`;\n\t\t\t}\n\t\t}\n\n\t\tconst numStr = input_val;\n\t\t// append the currency symbol\n\t\tif (!this._safari || !focus) {\n\t\t\tif (this._trailing) {\n\t\t\t\tinput_val = input_val + ' ' + this._symbol;\n\t\t\t} else {\n\t\t\t\tinput_val = this._symbol + input_val;\n\t\t\t}\n\t\t}\n\n\t\tif (negative) {\n\t\t\t// append the hypen back to the value if a negative value was entered\n\t\t\tinput_val = `-${input_val}`;\n\t\t}\n\n\t\tconst num = this._convert((negative ? '-' : '') + numStr);\n\n\t\t// update control value first with the number\n\t\tthis.change(Number(num));\n\n\t\tif (blur && num === 0) {\n\t\t\tinput_val = this._0Text;\n\t\t}\n\n\t\t// update dom with the formatted value\n\t\tthis._renderer.setProperty(input.nativeElement, 'value', input_val);\n\t\t// put caret back in the right position\n\t\tlet updated_len = input_val.length;\n\t\tif (caret_pos) {\n\t\t\tcaret_pos = updated_len - original_len + caret_pos;\n\t\t\tif (input_val.substring(caret_pos - this._symbol.length) === this._symbol && this._trailing) {\n\t\t\t\tcaret_pos -= this._symbol.length + 1;\n\t\t\t}\n\t\t}\n\t\tif (!this._safari) {\n\t\t\tinput.nativeElement.setSelectionRange(caret_pos, caret_pos);\n\t\t}\n\t}\n\n\t// format the number into currency format\n\tprivate _formatNumber(n: string, blur: boolean = false) {\n\t\t// format number 1000000 to 1,234,567\n\t\tn = n.replace(/\\D/g, '');\n\t\tif (blur) {\n\t\t\tn = n.replace(/^0+/, '');\n\t\t}\n\t\treturn this._decimalPipe.transform(n, '1.0-0') as string;\n\t}\n\n\tprivate _convert(input: string): number {\n\t\tconst val = input\n\t\t\t.replace(this._ds, 'd')\n\t\t\t.replace(/[^0-9d-]/g, '')\n\t\t\t.replace('d', '.');\n\t\treturn parseFloat(val);\n\t}\n\n\tprivate get _0Text(): string {\n\t\tconst decimalStr = this.baseUnitOnly ? '' : `${this._ds}00`;\n\t\treturn this._trailing ? `0${decimalStr} ${this._symbol}` : `${this._symbol}0${decimalStr}`;\n\t}\n}\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { CurrencyInputDirective } from './currency-input.directive';\r\n\r\n@NgModule({\r\n\tdeclarations: [CurrencyInputDirective],\r\n\timports: [CommonModule],\r\n\texports: [CurrencyInputDirective]\r\n})\r\nexport class CurrencyInputModule {}\r\n\r\nexport { CurrencyInputDirective };\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵfindLocaleData"],"mappings":"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"}
|
|
@@ -79,13 +79,13 @@ class DecimalInputDirective {
|
|
|
79
79
|
}
|
|
80
80
|
this._renderer.setProperty(this._el.nativeElement, 'value', newValue);
|
|
81
81
|
}
|
|
82
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
83
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
82
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.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: "21.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: [
|
|
84
84
|
DecimalPipe,
|
|
85
85
|
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DecimalInputDirective), multi: true }
|
|
86
86
|
], usesOnChanges: true, ngImport: i0 }); }
|
|
87
87
|
}
|
|
88
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DecimalInputDirective, decorators: [{
|
|
89
89
|
type: Directive,
|
|
90
90
|
args: [{
|
|
91
91
|
selector: 'input[buiDecimalInput]',
|
|
@@ -123,11 +123,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
123
123
|
}] } });
|
|
124
124
|
|
|
125
125
|
class DecimalInputModule {
|
|
126
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
127
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
128
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
126
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DecimalInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
127
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: DecimalInputModule, declarations: [DecimalInputDirective], imports: [CommonModule], exports: [DecimalInputDirective] }); }
|
|
128
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DecimalInputModule, imports: [CommonModule] }); }
|
|
129
129
|
}
|
|
130
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DecimalInputModule, decorators: [{
|
|
131
131
|
type: NgModule,
|
|
132
132
|
args: [{
|
|
133
133
|
declarations: [DecimalInputDirective],
|
|
@@ -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';\
|
|
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\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\tstandalone: false\n})\nexport class DecimalInputDirective implements OnChanges, ControlValueAccessor {\n\t/**\n\t * number of decimal places allowed\n\t */\n\t@Input()\n\tbuiDecimalInput: number = 2;\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.buiDecimalInput = this.buiDecimalInput || 2;\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\tthis.buiDecimalInput = this.buiDecimalInput < 0 ? 0 : this.buiDecimalInput;\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 { 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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"}
|
|
@@ -266,14 +266,14 @@ class DiscreteInputComponent {
|
|
|
266
266
|
event.preventDefault();
|
|
267
267
|
this.onContainerClick();
|
|
268
268
|
}
|
|
269
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
270
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
269
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DiscreteInputComponent, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }, { token: MAT_FORM_FIELD, optional: true }, { token: i2.NgControl, optional: true, self: true }, { token: i2.NgForm, optional: true }, { token: i2.FormGroupDirective, optional: true }, { token: i3.ErrorStateMatcher }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
270
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: DiscreteInputComponent, isStandalone: false, selector: "bui-discrete-input", inputs: { type: "type", separator: "separator", accept: "accept", userAriaDescribedBy: ["aria-describedby", "userAriaDescribedBy"], autocomplete: "autocomplete", sizeSpec: "sizeSpec", placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, host: { classAttribute: "bui-discrete-input bui-host" }, providers: [{ provide: MatFormFieldControl, useExisting: DiscreteInputComponent }], viewQueries: [{ propertyName: "inputParts", predicate: ["part"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n\trole=\"group\"\n\tclass=\"bui-discrete-input-container\"\n\t[formGroup]=\"group\"\n\t[attr.aria-labelledby]=\"_formField?.getLabelId()\"\n>\n\t<ng-container [formArrayName]=\"'parts'\">\n\t\t@for (p of parts.controls; track p; let i = $index) {\n\t\t\t<input\n\t\t\t\tclass=\"bui-discrete-input-element bui-outline-{{ _colorSuffix }}\"\n\t\t\t\t[formControlName]=\"i\"\n\t\t\t\t[attr.aria-label]=\"'character ' + (i + 1)\"\n\t\t\t\t(input)=\"_handleInput(p, i, $event)\"\n\t\t\t\t(beforeinput)=\"_handleBeforeInput(i, $event)\"\n\t\t\t\t(keydown.backspace)=\"_handleBackspace(p, i)\"\n\t\t\t\t(keydown.arrowup)=\"_consumeKey($event)\"\n\t\t\t\t(keydown.arrowdown)=\"_consumeKey($event)\"\n\t\t\t\t(keydown.arrowleft)=\"_leftArrow(i, $event)\"\n\t\t\t\t(keydown.arrowright)=\"_rightArrow(i, $event)\"\n\t\t\t\t[attr.placeholder]=\"_placeholderAt(i)\"\n\t\t\t\t#part\n\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t(paste)=\"_onPaste($event)\"\n\t\t\t\t[type]=\"['text', 'number', 'password'].includes(type) ? type : 'text'\"\n\t\t\t\t[attr.inputmode]=\"type === 'number' ? 'decimal' : undefined\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t/>\n\t\t\t@if (_separatorRequired(i)) {\n\t\t\t\t<span class=\"bui-discrete-input-spacer\">{{ separator }}</span>\n\t\t\t}\n\t\t}\n\t</ng-container>\n</div>\n", styles: [".bui-discrete-input-container{display:flex;align-items:center}.bui-discrete-input-element{border:1px solid rgba(128,128,128,.4);border-radius:3px;background:none;padding:0;text-align:center;width:1.5em;height:1.5em;font-size:inherit}.bui-discrete-input-element:not(:last-child){margin-right:.25em}.bui-discrete-input-element:focus-visible{outline-style:solid;outline-width:2px;outline-offset:-1px}.bui-discrete-input-element[type=number]::-webkit-inner-spin-button,.bui-discrete-input-element[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.bui-discrete-input-element[type=number]{-moz-appearance:textfield}.bui-discrete-input-element{color:currentColor;caret-color:auto}.bui-discrete-input-spacer{margin-right:.25em;vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }] }); }
|
|
271
271
|
}
|
|
272
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
272
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DiscreteInputComponent, decorators: [{
|
|
273
273
|
type: Component,
|
|
274
274
|
args: [{ selector: 'bui-discrete-input', providers: [{ provide: MatFormFieldControl, useExisting: DiscreteInputComponent }], host: {
|
|
275
275
|
class: 'bui-discrete-input bui-host'
|
|
276
|
-
}, standalone: false, template: "<div\n\trole=\"group\"\n\tclass=\"bui-discrete-input-container\"\n\t[formGroup]=\"group\"\n\t[attr.aria-labelledby]=\"_formField?.getLabelId()\"\n>\n\t<ng-container [formArrayName]=\"'parts'\">\n\t\t@for (p of parts.controls; track p; let i = $index) {\n\t\t\t<input\n\t\t\t\tclass=\"bui-discrete-input-element bui-outline-{{ _colorSuffix }}\"\n\t\t\t\t[formControlName]=\"i\"\n\t\t\t\t[attr.aria-label]=\"'character ' + (i + 1)\"\n\t\t\t\t(input)=\"_handleInput(p, i, $event)\"\n\t\t\t\t(beforeinput)=\"_handleBeforeInput(i, $event)\"\n\t\t\t\t(keydown.backspace)=\"_handleBackspace(p, i)\"\n\t\t\t\t(keydown.arrowup)=\"_consumeKey($event)\"\n\t\t\t\t(keydown.arrowdown)=\"_consumeKey($event)\"\n\t\t\t\t(keydown.arrowleft)=\"_leftArrow(i, $event)\"\n\t\t\t\t(keydown.arrowright)=\"_rightArrow(i, $event)\"\n\t\t\t\t[attr.placeholder]=\"_placeholderAt(i)\"\n\t\t\t\t#part\n\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t(paste)=\"_onPaste($event)\"\n\t\t\t\t[type]=\"['text', 'number', 'password'].includes(type) ? type : 'text'\"\n\t\t\t\t[attr.inputmode]=\"type === 'number' ? 'decimal' : undefined\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t/>\n\t\t\t@if (_separatorRequired(i)) {\n\t\t\t\t<span class=\"bui-discrete-input-spacer\">{{ separator }}</span>\n\t\t\t}\n\t\t}\n\t</ng-container>\n</div>\n", styles: [".bui-discrete-input-container{display:flex;align-items:center}.bui-discrete-input-element{border:1px solid rgba(128,128,128,.4);border-radius:3px;background:none;padding:0;text-align:center;width:1.5em;height:1.5em;font-size:inherit
|
|
276
|
+
}, standalone: false, template: "<div\n\trole=\"group\"\n\tclass=\"bui-discrete-input-container\"\n\t[formGroup]=\"group\"\n\t[attr.aria-labelledby]=\"_formField?.getLabelId()\"\n>\n\t<ng-container [formArrayName]=\"'parts'\">\n\t\t@for (p of parts.controls; track p; let i = $index) {\n\t\t\t<input\n\t\t\t\tclass=\"bui-discrete-input-element bui-outline-{{ _colorSuffix }}\"\n\t\t\t\t[formControlName]=\"i\"\n\t\t\t\t[attr.aria-label]=\"'character ' + (i + 1)\"\n\t\t\t\t(input)=\"_handleInput(p, i, $event)\"\n\t\t\t\t(beforeinput)=\"_handleBeforeInput(i, $event)\"\n\t\t\t\t(keydown.backspace)=\"_handleBackspace(p, i)\"\n\t\t\t\t(keydown.arrowup)=\"_consumeKey($event)\"\n\t\t\t\t(keydown.arrowdown)=\"_consumeKey($event)\"\n\t\t\t\t(keydown.arrowleft)=\"_leftArrow(i, $event)\"\n\t\t\t\t(keydown.arrowright)=\"_rightArrow(i, $event)\"\n\t\t\t\t[attr.placeholder]=\"_placeholderAt(i)\"\n\t\t\t\t#part\n\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t(paste)=\"_onPaste($event)\"\n\t\t\t\t[type]=\"['text', 'number', 'password'].includes(type) ? type : 'text'\"\n\t\t\t\t[attr.inputmode]=\"type === 'number' ? 'decimal' : undefined\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t/>\n\t\t\t@if (_separatorRequired(i)) {\n\t\t\t\t<span class=\"bui-discrete-input-spacer\">{{ separator }}</span>\n\t\t\t}\n\t\t}\n\t</ng-container>\n</div>\n", styles: [".bui-discrete-input-container{display:flex;align-items:center}.bui-discrete-input-element{border:1px solid rgba(128,128,128,.4);border-radius:3px;background:none;padding:0;text-align:center;width:1.5em;height:1.5em;font-size:inherit}.bui-discrete-input-element:not(:last-child){margin-right:.25em}.bui-discrete-input-element:focus-visible{outline-style:solid;outline-width:2px;outline-offset:-1px}.bui-discrete-input-element[type=number]::-webkit-inner-spin-button,.bui-discrete-input-element[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.bui-discrete-input-element[type=number]{-moz-appearance:textfield}.bui-discrete-input-element{color:currentColor;caret-color:auto}.bui-discrete-input-spacer{margin-right:.25em;vertical-align:middle}\n"] }]
|
|
277
277
|
}], ctorParameters: () => [{ type: i1.FocusMonitor }, { type: i0.ElementRef }, { type: i4.MatFormField, decorators: [{
|
|
278
278
|
type: Optional
|
|
279
279
|
}, {
|
|
@@ -314,11 +314,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
314
314
|
}] } });
|
|
315
315
|
|
|
316
316
|
class DiscreteInputModule {
|
|
317
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
318
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
319
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
317
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DiscreteInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
318
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: DiscreteInputModule, declarations: [DiscreteInputComponent], imports: [CommonModule, MatFormFieldModule, ReactiveFormsModule, A11yModule], exports: [DiscreteInputComponent] }); }
|
|
319
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DiscreteInputModule, imports: [CommonModule, MatFormFieldModule, ReactiveFormsModule, A11yModule] }); }
|
|
320
320
|
}
|
|
321
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
321
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DiscreteInputModule, decorators: [{
|
|
322
322
|
type: NgModule,
|
|
323
323
|
args: [{
|
|
324
324
|
declarations: [DiscreteInputComponent],
|