@ndwnu/design-system 1.1.1 → 3.0.0
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/assets/images/ndw-logo-short.svg +3 -3
- package/assets/images/ndw-logo.svg +3 -3
- package/assets/images/nwb-logo-short.svg +10 -10
- package/assets/images/nwb-logo.svg +4 -4
- package/components/accordion/accordion.component.d.ts +1 -0
- package/components/alert/alert.component.d.ts +18 -2
- package/components/alert/alert.model.d.ts +1 -0
- package/components/badge/badge.component.d.ts +8 -1
- package/components/card/card-footer/card-footer.component.d.ts +0 -1
- package/components/card/card-header/card-header.component.d.ts +0 -3
- package/components/card/card.component.d.ts +2 -8
- package/components/card/index.d.ts +3 -1
- package/components/collapsible/collapsible.component.d.ts +4 -3
- package/components/dropdown/dropdown.component.d.ts +10 -5
- package/components/form-field/checkbox/checkbox.component.d.ts +2 -1
- package/components/form-field/file-upload/file-upload-text.interface.d.ts +4 -0
- package/components/form-field/file-upload/file-upload.component.d.ts +46 -0
- package/components/form-field/file-upload/index.d.ts +2 -0
- package/components/form-field/form-field.component.d.ts +13 -8
- package/components/form-field/index.d.ts +4 -0
- package/components/form-field/input/input.directive.d.ts +2 -0
- package/components/form-field/input/input.model.d.ts +1 -3
- package/components/form-field/month-input/index.d.ts +1 -0
- package/components/form-field/month-input/month-input-utils.d.ts +5 -0
- package/components/form-field/month-input/month-input.component.d.ts +42 -0
- package/components/form-field/option-group/index.d.ts +3 -0
- package/components/form-field/option-group/option-group.component.d.ts +26 -0
- package/components/form-field/option-group/option-group.model.d.ts +1 -0
- package/components/form-field/option-group/option.component.d.ts +9 -0
- package/components/form-field/radio-button/radio-button.component.d.ts +2 -1
- package/components/form-field/radio-group/radio-group.component.d.ts +1 -1
- package/components/form-field/success/index.d.ts +1 -0
- package/components/form-field/success/success.component.d.ts +5 -0
- package/components/form-field/textarea/auto-grow.directive.d.ts +19 -0
- package/components/form-field/textarea/index.d.ts +1 -0
- package/components/icon/action-icon/action-icon.component.d.ts +33 -0
- package/components/icon/action-icon/index.d.ts +1 -0
- package/components/icon/icon.component.d.ts +4 -6
- package/components/icon/index.d.ts +1 -0
- package/components/index.d.ts +1 -0
- package/components/main-navigation/main-navigation.component.d.ts +19 -6
- package/components/main-navigation/main-navigation.imports.d.ts +9 -0
- package/components/main-navigation-menu/main-navigation-menu.component.d.ts +4 -1
- package/components/modal/index.d.ts +7 -1
- package/components/modal/modal-content/index.d.ts +1 -0
- package/components/modal/modal-content/modal-content.component.d.ts +5 -0
- package/components/modal/modal-footer/index.d.ts +1 -0
- package/components/modal/modal-footer/modal-footer.component.d.ts +5 -0
- package/components/modal/modal-header/index.d.ts +1 -0
- package/components/modal/modal-header/modal-header.component.d.ts +7 -0
- package/components/modal/modal.component.d.ts +11 -0
- package/components/modal/modal.service.d.ts +0 -1
- package/components/multi-select/multi-select.component.d.ts +6 -5
- package/components/pill/pill.component.d.ts +8 -0
- package/components/popover/popover-trigger.directive.d.ts +1 -1
- package/components/removable-pill/removable-pill.component.d.ts +9 -2
- package/components/toast/index.d.ts +2 -0
- package/components/toast/toast.component.d.ts +19 -0
- package/components/toast/toast.service.d.ts +12 -0
- package/components/tooltip/tooltip.directive.d.ts +7 -2
- package/core/styles/ndw-styles.scss +89 -37
- package/core/styles/nwb-styles.scss +89 -37
- package/esm2022/components/accordion/accordion.component.mjs +9 -5
- package/esm2022/components/accordion/accordion.service.mjs +3 -6
- package/esm2022/components/alert/alert.component.mjs +28 -3
- package/esm2022/components/alert/alert.model.mjs +1 -1
- package/esm2022/components/badge/badge.component.mjs +10 -3
- package/esm2022/components/breadcrumb-group/breadcrumb-group.component.mjs +3 -3
- package/esm2022/components/button/button.directive.mjs +4 -3
- package/esm2022/components/card/card-footer/card-footer.component.mjs +3 -6
- package/esm2022/components/card/card-header/card-header.component.mjs +4 -12
- package/esm2022/components/card/card.component.mjs +5 -22
- package/esm2022/components/card/index.mjs +12 -2
- package/esm2022/components/collapsible/collapsible.component.mjs +6 -13
- package/esm2022/components/dropdown/dropdown.component.mjs +32 -8
- package/esm2022/components/form-field/checkbox/checkbox.component.mjs +5 -4
- package/esm2022/components/form-field/error/error.component.mjs +3 -3
- package/esm2022/components/form-field/file-upload/file-upload-text.interface.mjs +2 -0
- package/esm2022/components/form-field/file-upload/file-upload.component.mjs +217 -0
- package/esm2022/components/form-field/file-upload/index.mjs +3 -0
- package/esm2022/components/form-field/form-field.component.mjs +48 -28
- package/esm2022/components/form-field/index.mjs +5 -1
- package/esm2022/components/form-field/info/info.component.mjs +2 -2
- package/esm2022/components/form-field/input/input.directive.mjs +8 -3
- package/esm2022/components/form-field/input/input.model.mjs +1 -3
- package/esm2022/components/form-field/month-input/index.mjs +2 -0
- package/esm2022/components/form-field/month-input/month-input-utils.mjs +13 -0
- package/esm2022/components/form-field/month-input/month-input.component.mjs +155 -0
- package/esm2022/components/form-field/option-group/index.mjs +4 -0
- package/esm2022/components/form-field/option-group/option-group.component.mjs +64 -0
- package/esm2022/components/form-field/option-group/option-group.model.mjs +2 -0
- package/esm2022/components/form-field/option-group/option.component.mjs +23 -0
- package/esm2022/components/form-field/radio-button/radio-button.component.mjs +5 -4
- package/esm2022/components/form-field/radio-group/radio-group.component.mjs +4 -6
- package/esm2022/components/form-field/success/index.mjs +2 -0
- package/esm2022/components/form-field/success/success.component.mjs +12 -0
- package/esm2022/components/form-field/textarea/auto-grow.directive.mjs +45 -0
- package/esm2022/components/form-field/textarea/index.mjs +2 -0
- package/esm2022/components/icon/action-icon/action-icon.component.mjs +40 -0
- package/esm2022/components/icon/action-icon/index.mjs +2 -0
- package/esm2022/components/icon/icon.component.mjs +9 -24
- package/esm2022/components/icon/index.mjs +2 -1
- package/esm2022/components/index.mjs +2 -1
- package/esm2022/components/main-navigation/main-navigation.component.mjs +70 -31
- package/esm2022/components/main-navigation/main-navigation.imports.mjs +20 -0
- package/esm2022/components/main-navigation-menu/main-navigation-menu.component.mjs +10 -4
- package/esm2022/components/modal/index.mjs +18 -2
- package/esm2022/components/modal/modal-content/index.mjs +2 -0
- package/esm2022/components/modal/modal-content/modal-content.component.mjs +11 -0
- package/esm2022/components/modal/modal-footer/index.mjs +2 -0
- package/esm2022/components/modal/modal-footer/modal-footer.component.mjs +11 -0
- package/esm2022/components/modal/modal-header/index.mjs +2 -0
- package/esm2022/components/modal/modal-header/modal-header.component.mjs +20 -0
- package/esm2022/components/modal/modal.component.mjs +32 -0
- package/esm2022/components/modal/modal.service.mjs +6 -11
- package/esm2022/components/multi-select/multi-select.component.mjs +10 -8
- package/esm2022/components/pill/pill.component.mjs +17 -4
- package/esm2022/components/popover/popover-trigger.directive.mjs +1 -2
- package/esm2022/components/removable-pill/removable-pill.component.mjs +13 -11
- package/esm2022/components/toast/index.mjs +3 -0
- package/esm2022/components/toast/toast.component.mjs +77 -0
- package/esm2022/components/toast/toast.service.mjs +43 -0
- package/esm2022/components/tooltip/tooltip.component.mjs +5 -3
- package/esm2022/components/tooltip/tooltip.directive.mjs +47 -18
- package/fesm2022/ndwnu-design-system.mjs +1275 -419
- package/fesm2022/ndwnu-design-system.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { Component, HostBinding, HostListener, viewChild, input, model, computed, } from '@angular/core';
|
|
2
|
+
import { IconComponent } from '../../icon';
|
|
3
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class FileUploadComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.fileInputElement = viewChild.required('fileInput');
|
|
8
|
+
this.allowedFileTypeRegex = input();
|
|
9
|
+
this.fileUploadText = input({ dragText: '', dragOverText: '' });
|
|
10
|
+
this.uploadDate = input('');
|
|
11
|
+
this.maxFileSizeInBytes = input(1000000);
|
|
12
|
+
this.disabled = input(false);
|
|
13
|
+
this.readonly = input(false);
|
|
14
|
+
this.draggingOver = model(false);
|
|
15
|
+
this.selectedFile = model();
|
|
16
|
+
this.error = model(false);
|
|
17
|
+
this.success = model(false);
|
|
18
|
+
this.incorrectFileType = model(false);
|
|
19
|
+
this.incorrectFileSize = model(false);
|
|
20
|
+
this.canEdit = computed(() => !this.selectedFile() && !this.disabled() && !this.readonly());
|
|
21
|
+
}
|
|
22
|
+
get tabindexAttr() {
|
|
23
|
+
return !this.canEdit() ? -1 : 0;
|
|
24
|
+
}
|
|
25
|
+
get hasError() {
|
|
26
|
+
return this.error();
|
|
27
|
+
}
|
|
28
|
+
get hasSuccess() {
|
|
29
|
+
return this.success();
|
|
30
|
+
}
|
|
31
|
+
get isDisabled() {
|
|
32
|
+
return this.disabled();
|
|
33
|
+
}
|
|
34
|
+
get isReadonly() {
|
|
35
|
+
return this.readonly();
|
|
36
|
+
}
|
|
37
|
+
get isDragging() {
|
|
38
|
+
return this.draggingOver();
|
|
39
|
+
}
|
|
40
|
+
get hasSelectedFile() {
|
|
41
|
+
return this.selectedFile() ? true : false;
|
|
42
|
+
}
|
|
43
|
+
onKeyDown(event) {
|
|
44
|
+
if (event.key !== 'Enter' && event.key !== ' ') {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const target = event.target;
|
|
48
|
+
if (target.tagName.toLowerCase() === 'button') {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (this.canEdit()) {
|
|
52
|
+
this.fileInputElement().nativeElement.click();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
onClick() {
|
|
56
|
+
if (this.canEdit()) {
|
|
57
|
+
this.fileInputElement().nativeElement.click();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
onDragLeave(event) {
|
|
61
|
+
event?.preventDefault();
|
|
62
|
+
this.draggingOver.set(false);
|
|
63
|
+
}
|
|
64
|
+
onDragOver(event) {
|
|
65
|
+
event?.preventDefault();
|
|
66
|
+
if (this.canEdit()) {
|
|
67
|
+
this.draggingOver.set(true);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
onDragEnter(event) {
|
|
71
|
+
event?.preventDefault();
|
|
72
|
+
if (this.canEdit()) {
|
|
73
|
+
this.draggingOver.set(true);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
onDrop(event) {
|
|
77
|
+
event.preventDefault();
|
|
78
|
+
if (this.canEdit()) {
|
|
79
|
+
const file = event.dataTransfer?.files[0];
|
|
80
|
+
if (file) {
|
|
81
|
+
this.selectFile(file);
|
|
82
|
+
}
|
|
83
|
+
this.draggingOver.set(false);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
onDownloadFileClick() {
|
|
87
|
+
const url = window.URL.createObjectURL(this.selectedFile());
|
|
88
|
+
const linkElement = document.createElement('a');
|
|
89
|
+
linkElement.href = url;
|
|
90
|
+
linkElement.download = this.selectedFile().name;
|
|
91
|
+
document.body.appendChild(linkElement);
|
|
92
|
+
linkElement.click();
|
|
93
|
+
document.body.removeChild(linkElement);
|
|
94
|
+
window.URL.revokeObjectURL(url);
|
|
95
|
+
}
|
|
96
|
+
onDeleteClick(event) {
|
|
97
|
+
event?.stopPropagation();
|
|
98
|
+
this.resetFile();
|
|
99
|
+
this.incorrectFileType.set(false);
|
|
100
|
+
this.incorrectFileSize.set(false);
|
|
101
|
+
}
|
|
102
|
+
displayText() {
|
|
103
|
+
if (!this.selectedFile()) {
|
|
104
|
+
return this.draggingOver()
|
|
105
|
+
? this.fileUploadText().dragOverText
|
|
106
|
+
: this.fileUploadText().dragText;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
return '';
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
onFileSelected(event) {
|
|
113
|
+
if (this.canEdit()) {
|
|
114
|
+
const inputElement = event.target;
|
|
115
|
+
if (inputElement.files) {
|
|
116
|
+
const file = inputElement.files[0];
|
|
117
|
+
this.selectFile(file);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
selectFile(file) {
|
|
122
|
+
if (file) {
|
|
123
|
+
if (!this.correctFileType(file.type)) {
|
|
124
|
+
this.resetFile();
|
|
125
|
+
this.incorrectFileSize.set(false);
|
|
126
|
+
this.incorrectFileType.set(true);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if (!this.correctFileSize(file.size)) {
|
|
130
|
+
this.resetFile();
|
|
131
|
+
this.incorrectFileType.set(false);
|
|
132
|
+
this.incorrectFileSize.set(true);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
this.incorrectFileSize.set(false);
|
|
136
|
+
this.incorrectFileType.set(false);
|
|
137
|
+
this.selectedFile.set(file);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
resetFile() {
|
|
141
|
+
this.selectedFile.set(null);
|
|
142
|
+
this.fileInputElement().nativeElement.value = '';
|
|
143
|
+
}
|
|
144
|
+
correctFileSize(fileSize) {
|
|
145
|
+
return this.maxFileSizeInBytes() > fileSize;
|
|
146
|
+
}
|
|
147
|
+
correctFileType(fileType) {
|
|
148
|
+
return this.allowedFileTypeRegex()?.test(fileType) ? true : false;
|
|
149
|
+
}
|
|
150
|
+
writeValue(value) {
|
|
151
|
+
this.selectedFile.set(value);
|
|
152
|
+
}
|
|
153
|
+
registerOnChange(fn) {
|
|
154
|
+
this.selectedFile.subscribe(fn);
|
|
155
|
+
}
|
|
156
|
+
registerOnTouched() {
|
|
157
|
+
// noop
|
|
158
|
+
}
|
|
159
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
160
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: FileUploadComponent, isStandalone: true, selector: "ndw-file-upload", inputs: { allowedFileTypeRegex: { classPropertyName: "allowedFileTypeRegex", publicName: "allowedFileTypeRegex", isSignal: true, isRequired: false, transformFunction: null }, fileUploadText: { classPropertyName: "fileUploadText", publicName: "fileUploadText", isSignal: true, isRequired: false, transformFunction: null }, uploadDate: { classPropertyName: "uploadDate", publicName: "uploadDate", isSignal: true, isRequired: false, transformFunction: null }, maxFileSizeInBytes: { classPropertyName: "maxFileSizeInBytes", publicName: "maxFileSizeInBytes", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, draggingOver: { classPropertyName: "draggingOver", publicName: "draggingOver", isSignal: true, isRequired: false, transformFunction: null }, selectedFile: { classPropertyName: "selectedFile", publicName: "selectedFile", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, success: { classPropertyName: "success", publicName: "success", isSignal: true, isRequired: false, transformFunction: null }, incorrectFileType: { classPropertyName: "incorrectFileType", publicName: "incorrectFileType", isSignal: true, isRequired: false, transformFunction: null }, incorrectFileSize: { classPropertyName: "incorrectFileSize", publicName: "incorrectFileSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { draggingOver: "draggingOverChange", selectedFile: "selectedFileChange", error: "errorChange", success: "successChange", incorrectFileType: "incorrectFileTypeChange", incorrectFileSize: "incorrectFileSizeChange" }, host: { listeners: { "keydown": "onKeyDown($event)", "click": "onClick()", "dragleave": "onDragLeave($event)", "dragover": "onDragOver($event)", "dragenter": "onDragEnter($event)", "drop": "onDrop($event)" }, properties: { "attr.tabindex": "this.tabindexAttr", "class.error": "this.hasError", "class.success": "this.hasSuccess", "class.disabled": "this.isDisabled", "class.readonly": "this.isReadonly", "class.dragging": "this.isDragging", "class.file-selected": "this.hasSelectedFile" } }, providers: [
|
|
161
|
+
{
|
|
162
|
+
provide: NG_VALUE_ACCESSOR,
|
|
163
|
+
useExisting: FileUploadComponent,
|
|
164
|
+
multi: true,
|
|
165
|
+
},
|
|
166
|
+
], viewQueries: [{ propertyName: "fileInputElement", first: true, predicate: ["fileInput"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (!draggingOver() && !selectedFile()) {\n <ndw-icon>cloud_upload</ndw-icon>\n} @else if (draggingOver() && !selectedFile()) {\n <ndw-icon>pageless</ndw-icon>\n}\n\n{{ displayText() }}\n\n@if (selectedFile()) {\n <div class=\"file-name\">\n <button\n class=\"file-name-text\"\n (click)=\"onDownloadFileClick()\"\n (keydown.enter)=\"onDownloadFileClick()\"\n >\n {{ selectedFile()?.name }}\n </button>\n\n <div class=\"file-delete-icon\">\n <button (click)=\"onDeleteClick($event)\" (keydown.enter)=\"onDeleteClick($event)\">\n <ndw-icon>delete</ndw-icon>\n </button>\n </div>\n </div>\n\n <p class=\"file-date\">\n {{ uploadDate() }}\n </p>\n}\n\n<input type=\"file\" #fileInput hidden aria-hidden=\"true\" (change)=\"onFileSelected($event)\" />\n", styles: [":host{display:grid;align-items:center;border-radius:var(--ndw-border-radius-sm);border:var(--ndw-border-size-sm) dashed var(--ndw-color-secondary-500);background-color:var(--ndw-color-secondary-050);color:var(--ndw-color-secondary-500);padding:var(--ndw-spacing-lg);text-align:center;cursor:pointer;transition:var(--ndw-animation-speed-fast) ease-out}:host ndw-icon{color:var(--ndw-color-secondary-500);font-size:var(--ndw-font-size-md);pointer-events:none}:host.dragging,:host:hover,:host:focus{background-color:var(--ndw-color-secondary-100);outline:none}:host.success.file-selected{background-color:var(--ndw-color-positive-100);border:var(--ndw-border-size-sm) solid var(--ndw-color-positive-500);color:var(--ndw-color-positive-500)}:host.error{background-color:var(--ndw-color-critical-100);border:var(--ndw-border-size-sm) dashed var(--ndw-color-critical-500);color:var(--ndw-color-critical-500)}:host.error ndw-icon{color:var(--ndw-color-critical-500);pointer-events:none}:host.error.file-selected{background-color:var(--ndw-color-critical-100);border:var(--ndw-border-size-sm) solid var(--ndw-color-critical-500);color:var(--ndw-color-critical-500)}:host.error.file-selected ndw-icon{color:var(--ndw-color-secondary-500);pointer-events:all}:host.disabled,:host.readonly{background-color:var(--ndw-color-grey-100);border:var(--ndw-border-size-sm) dashed var(--ndw-color-grey-500);color:var(--ndw-color-grey-500);cursor:not-allowed}:host.disabled ndw-icon,:host.readonly ndw-icon{color:var(--ndw-color-grey-500);pointer-events:none}:host.disabled.file-selected .file-name,:host.readonly.file-selected .file-name{color:var(--ndw-color-secondary-500)}:host.disabled.file-selected .file-name .file-name-text:hover,:host.readonly.file-selected .file-name .file-name-text:hover{text-decoration:none}:host.disabled.file-selected .file-delete-icon,:host.readonly.file-selected .file-delete-icon{display:none}:host.file-selected{background-color:var(--ndw-color-grey-100);border:var(--ndw-border-size-sm) solid var(--ndw-color-grey-300);padding:var(--ndw-spacing-sm);align-items:baseline;word-break:break-all;cursor:auto;text-align:left}:host.file-selected .file-name{display:flex;align-items:center}:host.file-selected .file-name .file-name-text{background:transparent;border:none;padding:0;color:var(--ndw-color-secondary-500);cursor:pointer}:host.file-selected .file-name .file-name-text:hover,:host.file-selected .file-name .file-name-text:focus{text-decoration:underline;outline:none}:host.file-selected .file-date{font-size:var(--ndw-font-size-xs);color:var(--ndw-color-grey-500);margin:0}:host.file-selected .file-delete-icon{display:flex;flex:1;justify-content:end;pointer-events:all}:host.file-selected .file-delete-icon button{background:transparent;border:none;cursor:pointer;padding:var(--ndw-spacing-2xs);border-radius:var(--ndw-border-radius-md);transition:background-color .15s ease-in-out}:host.file-selected .file-delete-icon button:hover{background-color:var(--ndw-alpha-black-007)}:host.file-selected .file-delete-icon button:active,:host.file-selected .file-delete-icon button:focus,:host.file-selected .file-delete-icon button:focus-visible{background-color:var(--ndw-alpha-black-015)}:host.file-selected .file-delete-icon button:focus-visible{color:var(--ndw-color-primary);outline-color:var(--ndw-color-secondary-500)}:host.file-selected .file-delete-icon ndw-icon{pointer-events:all}:host.file-selected .file-delete-icon ndw-icon:focus{color:var(--ndw-color-secondary-500);outline:none}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "ndw-icon", inputs: ["size"] }] }); }
|
|
167
|
+
}
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FileUploadComponent, decorators: [{
|
|
169
|
+
type: Component,
|
|
170
|
+
args: [{ selector: 'ndw-file-upload', standalone: true, imports: [IconComponent], providers: [
|
|
171
|
+
{
|
|
172
|
+
provide: NG_VALUE_ACCESSOR,
|
|
173
|
+
useExisting: FileUploadComponent,
|
|
174
|
+
multi: true,
|
|
175
|
+
},
|
|
176
|
+
], template: "@if (!draggingOver() && !selectedFile()) {\n <ndw-icon>cloud_upload</ndw-icon>\n} @else if (draggingOver() && !selectedFile()) {\n <ndw-icon>pageless</ndw-icon>\n}\n\n{{ displayText() }}\n\n@if (selectedFile()) {\n <div class=\"file-name\">\n <button\n class=\"file-name-text\"\n (click)=\"onDownloadFileClick()\"\n (keydown.enter)=\"onDownloadFileClick()\"\n >\n {{ selectedFile()?.name }}\n </button>\n\n <div class=\"file-delete-icon\">\n <button (click)=\"onDeleteClick($event)\" (keydown.enter)=\"onDeleteClick($event)\">\n <ndw-icon>delete</ndw-icon>\n </button>\n </div>\n </div>\n\n <p class=\"file-date\">\n {{ uploadDate() }}\n </p>\n}\n\n<input type=\"file\" #fileInput hidden aria-hidden=\"true\" (change)=\"onFileSelected($event)\" />\n", styles: [":host{display:grid;align-items:center;border-radius:var(--ndw-border-radius-sm);border:var(--ndw-border-size-sm) dashed var(--ndw-color-secondary-500);background-color:var(--ndw-color-secondary-050);color:var(--ndw-color-secondary-500);padding:var(--ndw-spacing-lg);text-align:center;cursor:pointer;transition:var(--ndw-animation-speed-fast) ease-out}:host ndw-icon{color:var(--ndw-color-secondary-500);font-size:var(--ndw-font-size-md);pointer-events:none}:host.dragging,:host:hover,:host:focus{background-color:var(--ndw-color-secondary-100);outline:none}:host.success.file-selected{background-color:var(--ndw-color-positive-100);border:var(--ndw-border-size-sm) solid var(--ndw-color-positive-500);color:var(--ndw-color-positive-500)}:host.error{background-color:var(--ndw-color-critical-100);border:var(--ndw-border-size-sm) dashed var(--ndw-color-critical-500);color:var(--ndw-color-critical-500)}:host.error ndw-icon{color:var(--ndw-color-critical-500);pointer-events:none}:host.error.file-selected{background-color:var(--ndw-color-critical-100);border:var(--ndw-border-size-sm) solid var(--ndw-color-critical-500);color:var(--ndw-color-critical-500)}:host.error.file-selected ndw-icon{color:var(--ndw-color-secondary-500);pointer-events:all}:host.disabled,:host.readonly{background-color:var(--ndw-color-grey-100);border:var(--ndw-border-size-sm) dashed var(--ndw-color-grey-500);color:var(--ndw-color-grey-500);cursor:not-allowed}:host.disabled ndw-icon,:host.readonly ndw-icon{color:var(--ndw-color-grey-500);pointer-events:none}:host.disabled.file-selected .file-name,:host.readonly.file-selected .file-name{color:var(--ndw-color-secondary-500)}:host.disabled.file-selected .file-name .file-name-text:hover,:host.readonly.file-selected .file-name .file-name-text:hover{text-decoration:none}:host.disabled.file-selected .file-delete-icon,:host.readonly.file-selected .file-delete-icon{display:none}:host.file-selected{background-color:var(--ndw-color-grey-100);border:var(--ndw-border-size-sm) solid var(--ndw-color-grey-300);padding:var(--ndw-spacing-sm);align-items:baseline;word-break:break-all;cursor:auto;text-align:left}:host.file-selected .file-name{display:flex;align-items:center}:host.file-selected .file-name .file-name-text{background:transparent;border:none;padding:0;color:var(--ndw-color-secondary-500);cursor:pointer}:host.file-selected .file-name .file-name-text:hover,:host.file-selected .file-name .file-name-text:focus{text-decoration:underline;outline:none}:host.file-selected .file-date{font-size:var(--ndw-font-size-xs);color:var(--ndw-color-grey-500);margin:0}:host.file-selected .file-delete-icon{display:flex;flex:1;justify-content:end;pointer-events:all}:host.file-selected .file-delete-icon button{background:transparent;border:none;cursor:pointer;padding:var(--ndw-spacing-2xs);border-radius:var(--ndw-border-radius-md);transition:background-color .15s ease-in-out}:host.file-selected .file-delete-icon button:hover{background-color:var(--ndw-alpha-black-007)}:host.file-selected .file-delete-icon button:active,:host.file-selected .file-delete-icon button:focus,:host.file-selected .file-delete-icon button:focus-visible{background-color:var(--ndw-alpha-black-015)}:host.file-selected .file-delete-icon button:focus-visible{color:var(--ndw-color-primary);outline-color:var(--ndw-color-secondary-500)}:host.file-selected .file-delete-icon ndw-icon{pointer-events:all}:host.file-selected .file-delete-icon ndw-icon:focus{color:var(--ndw-color-secondary-500);outline:none}\n"] }]
|
|
177
|
+
}], propDecorators: { tabindexAttr: [{
|
|
178
|
+
type: HostBinding,
|
|
179
|
+
args: ['attr.tabindex']
|
|
180
|
+
}], hasError: [{
|
|
181
|
+
type: HostBinding,
|
|
182
|
+
args: ['class.error']
|
|
183
|
+
}], hasSuccess: [{
|
|
184
|
+
type: HostBinding,
|
|
185
|
+
args: ['class.success']
|
|
186
|
+
}], isDisabled: [{
|
|
187
|
+
type: HostBinding,
|
|
188
|
+
args: ['class.disabled']
|
|
189
|
+
}], isReadonly: [{
|
|
190
|
+
type: HostBinding,
|
|
191
|
+
args: ['class.readonly']
|
|
192
|
+
}], isDragging: [{
|
|
193
|
+
type: HostBinding,
|
|
194
|
+
args: ['class.dragging']
|
|
195
|
+
}], hasSelectedFile: [{
|
|
196
|
+
type: HostBinding,
|
|
197
|
+
args: ['class.file-selected']
|
|
198
|
+
}], onKeyDown: [{
|
|
199
|
+
type: HostListener,
|
|
200
|
+
args: ['keydown', ['$event']]
|
|
201
|
+
}], onClick: [{
|
|
202
|
+
type: HostListener,
|
|
203
|
+
args: ['click']
|
|
204
|
+
}], onDragLeave: [{
|
|
205
|
+
type: HostListener,
|
|
206
|
+
args: ['dragleave', ['$event']]
|
|
207
|
+
}], onDragOver: [{
|
|
208
|
+
type: HostListener,
|
|
209
|
+
args: ['dragover', ['$event']]
|
|
210
|
+
}], onDragEnter: [{
|
|
211
|
+
type: HostListener,
|
|
212
|
+
args: ['dragenter', ['$event']]
|
|
213
|
+
}], onDrop: [{
|
|
214
|
+
type: HostListener,
|
|
215
|
+
args: ['drop', ['$event']]
|
|
216
|
+
}] } });
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmR3L3NyYy9jb21wb25lbnRzL2Zvcm0tZmllbGQvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmR3L3NyYy9jb21wb25lbnRzL2Zvcm0tZmllbGQvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLFNBQVMsRUFDVCxLQUFLLEVBQ0wsS0FBSyxFQUVMLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFnQnpFLE1BQU0sT0FBTyxtQkFBbUI7SUFkaEM7UUFla0IscUJBQWdCLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBK0IsV0FBVyxDQUFDLENBQUM7UUFDakYseUJBQW9CLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDdkMsbUJBQWMsR0FBRyxLQUFLLENBQWlCLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzRSxlQUFVLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZCLHVCQUFrQixHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxhQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLGFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsaUJBQVksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsaUJBQVks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LFxuICBIb3N0TGlzdGVuZXIsXG4gIHZpZXdDaGlsZCxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBFbGVtZW50UmVmLFxuICBjb21wdXRlZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkVGV4dCB9IGZyb20gJy4vZmlsZS11cGxvYWQtdGV4dC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ljb24nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZHctZmlsZS11cGxvYWQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSWNvbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuc2NzcycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IEZpbGVVcGxvYWRDb21wb25lbnQsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsZUlucHV0RWxlbWVudCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PignZmlsZUlucHV0Jyk7XG4gIHB1YmxpYyByZWFkb25seSBhbGxvd2VkRmlsZVR5cGVSZWdleCA9IGlucHV0PFJlZ0V4cD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGZpbGVVcGxvYWRUZXh0ID0gaW5wdXQ8RmlsZVVwbG9hZFRleHQ+KHsgZHJhZ1RleHQ6ICcnLCBkcmFnT3ZlclRleHQ6ICcnIH0pO1xuICBwdWJsaWMgcmVhZG9ubHkgdXBsb2FkRGF0ZSA9IGlucHV0KCcnKTtcbiAgcHVibGljIHJlYWRvbmx5IG1heEZpbGVTaXplSW5CeXRlcyA9IGlucHV0KDEwMDAwMDApO1xuICBwdWJsaWMgcmVhZG9ubHkgZGlzYWJsZWQgPSBpbnB1dChmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSByZWFkb25seSA9IGlucHV0KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGRyYWdnaW5nT3ZlciA9IG1vZGVsKGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkRmlsZSA9IG1vZGVsPEZpbGUgfCBudWxsPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgZXJyb3IgPSBtb2RlbChmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBzdWNjZXNzID0gbW9kZWwoZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgaW5jb3JyZWN0RmlsZVR5cGUgPSBtb2RlbChmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBpbmNvcnJlY3RGaWxlU2l6ZSA9IG1vZGVsKGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjYW5FZGl0ID0gY29tcHV0ZWQoXG4gICAgKCkgPT4gIXRoaXMuc2VsZWN0ZWRGaWxlKCkgJiYgIXRoaXMuZGlzYWJsZWQoKSAmJiAhdGhpcy5yZWFkb25seSgpLFxuICApO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gIHB1YmxpYyBnZXQgdGFiaW5kZXhBdHRyKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICF0aGlzLmNhbkVkaXQoKSA/IC0xIDogMDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZXJyb3InKVxuICBwdWJsaWMgZ2V0IGhhc0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVycm9yKCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnN1Y2Nlc3MnKVxuICBwdWJsaWMgZ2V0IGhhc1N1Y2Nlc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3VjY2VzcygpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kaXNhYmxlZCcpXG4gIHB1YmxpYyBnZXQgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCgpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yZWFkb25seScpXG4gIHB1YmxpYyBnZXQgaXNSZWFkb25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZWFkb25seSgpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kcmFnZ2luZycpXG4gIHB1YmxpYyBnZXQgaXNEcmFnZ2luZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kcmFnZ2luZ092ZXIoKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmlsZS1zZWxlY3RlZCcpXG4gIHB1YmxpYyBnZXQgaGFzU2VsZWN0ZWRGaWxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkRmlsZSgpID8gdHJ1ZSA6IGZhbHNlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ICE9PSAnRW50ZXInICYmIGV2ZW50LmtleSAhPT0gJyAnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICh0YXJnZXQudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYnV0dG9uJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNhbkVkaXQoKSkge1xuICAgICAgdGhpcy5maWxlSW5wdXRFbGVtZW50KCkubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgcHVibGljIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FuRWRpdCgpKSB7XG4gICAgICB0aGlzLmZpbGVJbnB1dEVsZW1lbnQoKS5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2xlYXZlJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRHJhZ0xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmRyYWdnaW5nT3Zlci5zZXQoZmFsc2UpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ292ZXInLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKHRoaXMuY2FuRWRpdCgpKSB7XG4gICAgICB0aGlzLmRyYWdnaW5nT3Zlci5zZXQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2VudGVyJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRHJhZ0VudGVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAodGhpcy5jYW5FZGl0KCkpIHtcbiAgICAgIHRoaXMuZHJhZ2dpbmdPdmVyLnNldCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAodGhpcy5jYW5FZGl0KCkpIHtcbiAgICAgIGNvbnN0IGZpbGU6IEZpbGUgfCB1bmRlZmluZWQgPSBldmVudC5kYXRhVHJhbnNmZXI/LmZpbGVzWzBdO1xuICAgICAgaWYgKGZpbGUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RGaWxlKGZpbGUpO1xuICAgICAgfVxuICAgICAgdGhpcy5kcmFnZ2luZ092ZXIuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25Eb3dubG9hZEZpbGVDbGljaygpOiB2b2lkIHtcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTCh0aGlzLnNlbGVjdGVkRmlsZSgpISk7XG4gICAgY29uc3QgbGlua0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgbGlua0VsZW1lbnQuaHJlZiA9IHVybDtcbiAgICBsaW5rRWxlbWVudC5kb3dubG9hZCA9IHRoaXMuc2VsZWN0ZWRGaWxlKCkhLm5hbWU7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rRWxlbWVudCk7XG4gICAgbGlua0VsZW1lbnQuY2xpY2soKTtcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmtFbGVtZW50KTtcbiAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICB9XG5cbiAgcHVibGljIG9uRGVsZXRlQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMucmVzZXRGaWxlKCk7XG4gICAgdGhpcy5pbmNvcnJlY3RGaWxlVHlwZS5zZXQoZmFsc2UpO1xuICAgIHRoaXMuaW5jb3JyZWN0RmlsZVNpemUuc2V0KGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNwbGF5VGV4dCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5zZWxlY3RlZEZpbGUoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZHJhZ2dpbmdPdmVyKClcbiAgICAgICAgPyB0aGlzLmZpbGVVcGxvYWRUZXh0KCkuZHJhZ092ZXJUZXh0XG4gICAgICAgIDogdGhpcy5maWxlVXBsb2FkVGV4dCgpLmRyYWdUZXh0O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhbkVkaXQoKSkge1xuICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICBpZiAoaW5wdXRFbGVtZW50LmZpbGVzKSB7XG4gICAgICAgIGNvbnN0IGZpbGU6IEZpbGUgPSBpbnB1dEVsZW1lbnQuZmlsZXNbMF07XG4gICAgICAgIHRoaXMuc2VsZWN0RmlsZShmaWxlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdEZpbGUoZmlsZTogRmlsZSk6IHZvaWQge1xuICAgIGlmIChmaWxlKSB7XG4gICAgICBpZiAoIXRoaXMuY29ycmVjdEZpbGVUeXBlKGZpbGUudHlwZSkpIHtcbiAgICAgICAgdGhpcy5yZXNldEZpbGUoKTtcbiAgICAgICAgdGhpcy5pbmNvcnJlY3RGaWxlU2l6ZS5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLmluY29ycmVjdEZpbGVUeXBlLnNldCh0cnVlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuY29ycmVjdEZpbGVTaXplKGZpbGUuc2l6ZSkpIHtcbiAgICAgICAgdGhpcy5yZXNldEZpbGUoKTtcbiAgICAgICAgdGhpcy5pbmNvcnJlY3RGaWxlVHlwZS5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLmluY29ycmVjdEZpbGVTaXplLnNldCh0cnVlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmluY29ycmVjdEZpbGVTaXplLnNldChmYWxzZSk7XG4gICAgICB0aGlzLmluY29ycmVjdEZpbGVUeXBlLnNldChmYWxzZSk7XG5cbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlLnNldChmaWxlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc2V0RmlsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRmlsZS5zZXQobnVsbCk7XG4gICAgdGhpcy5maWxlSW5wdXRFbGVtZW50KCkubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBjb3JyZWN0RmlsZVNpemUoZmlsZVNpemU6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1heEZpbGVTaXplSW5CeXRlcygpID4gZmlsZVNpemU7XG4gIH1cblxuICBwcml2YXRlIGNvcnJlY3RGaWxlVHlwZShmaWxlVHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWxsb3dlZEZpbGVUeXBlUmVnZXgoKT8udGVzdChmaWxlVHlwZSkgPyB0cnVlIDogZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogRmlsZSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRGaWxlLnNldCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBGaWxlIHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRGaWxlLnN1YnNjcmliZShmbik7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoKTogdm9pZCB7XG4gICAgLy8gbm9vcFxuICB9XG59XG4iLCJAaWYgKCFkcmFnZ2luZ092ZXIoKSAmJiAhc2VsZWN0ZWRGaWxlKCkpIHtcbiAgPG5kdy1pY29uPmNsb3VkX3VwbG9hZDwvbmR3LWljb24+XG59IEBlbHNlIGlmIChkcmFnZ2luZ092ZXIoKSAmJiAhc2VsZWN0ZWRGaWxlKCkpIHtcbiAgPG5kdy1pY29uPnBhZ2VsZXNzPC9uZHctaWNvbj5cbn1cblxue3sgZGlzcGxheVRleHQoKSB9fVxuXG5AaWYgKHNlbGVjdGVkRmlsZSgpKSB7XG4gIDxkaXYgY2xhc3M9XCJmaWxlLW5hbWVcIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImZpbGUtbmFtZS10ZXh0XCJcbiAgICAgIChjbGljayk9XCJvbkRvd25sb2FkRmlsZUNsaWNrKClcIlxuICAgICAgKGtleWRvd24uZW50ZXIpPVwib25Eb3dubG9hZEZpbGVDbGljaygpXCJcbiAgICA+XG4gICAgICB7eyBzZWxlY3RlZEZpbGUoKT8ubmFtZSB9fVxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGRpdiBjbGFzcz1cImZpbGUtZGVsZXRlLWljb25cIj5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cIm9uRGVsZXRlQ2xpY2soJGV2ZW50KVwiIChrZXlkb3duLmVudGVyKT1cIm9uRGVsZXRlQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICA8bmR3LWljb24+ZGVsZXRlPC9uZHctaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8cCBjbGFzcz1cImZpbGUtZGF0ZVwiPlxuICAgIHt7IHVwbG9hZERhdGUoKSB9fVxuICA8L3A+XG59XG5cbjxpbnB1dCB0eXBlPVwiZmlsZVwiICNmaWxlSW5wdXQgaGlkZGVuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIChjaGFuZ2UpPVwib25GaWxlU2VsZWN0ZWQoJGV2ZW50KVwiIC8+XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './file-upload.component';
|
|
2
|
+
export * from './file-upload-text.interface';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZHcvc3JjL2NvbXBvbmVudHMvZm9ybS1maWVsZC9maWxlLXVwbG9hZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtdXBsb2FkLXRleHQuaW50ZXJmYWNlJztcbiJdfQ==
|
|
@@ -1,31 +1,35 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NgClass, NgTemplateOutlet } from '@angular/common';
|
|
2
2
|
import { Component, computed, contentChild, effect, input } from '@angular/core';
|
|
3
|
+
import { ButtonDirective } from '../button';
|
|
3
4
|
import { IconComponent } from '../icon';
|
|
4
5
|
import { TooltipDirective } from '../tooltip';
|
|
5
|
-
import { CheckboxGroupComponent } from './checkbox-group';
|
|
6
6
|
import { ErrorComponent } from './error';
|
|
7
7
|
import { FormFieldElement } from './form-field.model';
|
|
8
8
|
import { InfoComponent } from './info';
|
|
9
9
|
import { InputDirective, InputType } from './input';
|
|
10
|
-
import {
|
|
10
|
+
import { MonthInputComponent } from './month-input';
|
|
11
|
+
import { SuccessComponent } from './success';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "@angular/common";
|
|
13
13
|
const inputTypesWithPrefixIcon = [InputType.Search];
|
|
14
|
-
const
|
|
14
|
+
const inputTypesWithSuffixButton = [InputType.Date, InputType.Time];
|
|
15
15
|
export class FormFieldComponent {
|
|
16
16
|
constructor() {
|
|
17
|
-
this.
|
|
18
|
-
this.
|
|
19
|
-
this.
|
|
20
|
-
this.label = input();
|
|
17
|
+
this.monthInput = contentChild(MonthInputComponent);
|
|
18
|
+
this.regularInput = contentChild(InputDirective);
|
|
19
|
+
this.input = computed(() => this.regularInput() ?? this.monthInput()?.input());
|
|
20
|
+
this.label = input.required();
|
|
21
|
+
this.clearSearchAriaLabel = input();
|
|
22
|
+
this.suffixButtonAriaLabel = input();
|
|
23
|
+
this.hideLabel = input(false);
|
|
21
24
|
this.disabled = input(false);
|
|
22
25
|
this.error = input();
|
|
26
|
+
this.success = input();
|
|
23
27
|
this.info = input();
|
|
24
28
|
this.tooltip = input('');
|
|
25
|
-
this.required = computed(() => this.setRequiredState());
|
|
26
29
|
this.inputPrefix = computed(() => this.setInputPrefix());
|
|
27
30
|
this.inputSuffix = computed(() => this.setInputSuffix());
|
|
28
31
|
this.uuid = crypto.randomUUID();
|
|
32
|
+
this.descriptionUuid = crypto.randomUUID();
|
|
29
33
|
effect(() => {
|
|
30
34
|
const input = this.input();
|
|
31
35
|
if (!input) {
|
|
@@ -34,7 +38,9 @@ export class FormFieldComponent {
|
|
|
34
38
|
this.addInputTypeBasedClass(input);
|
|
35
39
|
this.setInputDisabledState(input);
|
|
36
40
|
this.setInputErrorState(input);
|
|
41
|
+
this.setInputSuccessState(input);
|
|
37
42
|
this.setInputId(input);
|
|
43
|
+
this.setAriaDescribedBy(input);
|
|
38
44
|
});
|
|
39
45
|
}
|
|
40
46
|
clearInput() {
|
|
@@ -45,6 +51,16 @@ export class FormFieldComponent {
|
|
|
45
51
|
input.element.dispatchEvent(new Event('input'));
|
|
46
52
|
}
|
|
47
53
|
}
|
|
54
|
+
onSuffixButtonClick() {
|
|
55
|
+
const inputElement = this.input()?.element;
|
|
56
|
+
if (!inputElement) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
inputElement.focus();
|
|
60
|
+
if ('showPicker' in inputElement) {
|
|
61
|
+
inputElement.showPicker();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
48
64
|
addInputTypeBasedClass(input) {
|
|
49
65
|
const element = input.element;
|
|
50
66
|
if (!element) {
|
|
@@ -53,9 +69,9 @@ export class FormFieldComponent {
|
|
|
53
69
|
inputTypesWithPrefixIcon.includes(element.type)
|
|
54
70
|
? element.classList.add('prefix-icon')
|
|
55
71
|
: element.classList.remove('prefix-icon');
|
|
56
|
-
|
|
57
|
-
? element.classList.add('suffix-
|
|
58
|
-
: element.classList.remove('suffix-
|
|
72
|
+
inputTypesWithSuffixButton.includes(element.type)
|
|
73
|
+
? element.classList.add('suffix-button')
|
|
74
|
+
: element.classList.remove('suffix-button');
|
|
59
75
|
}
|
|
60
76
|
setInputDisabledState(input) {
|
|
61
77
|
input.disabled = this.disabled();
|
|
@@ -63,9 +79,15 @@ export class FormFieldComponent {
|
|
|
63
79
|
setInputErrorState(input) {
|
|
64
80
|
input.error = !!this.error()?.length;
|
|
65
81
|
}
|
|
82
|
+
setInputSuccessState(input) {
|
|
83
|
+
input.success = !!this.success()?.length;
|
|
84
|
+
}
|
|
66
85
|
setInputId(input) {
|
|
67
86
|
input.id = `input-${this.uuid}`;
|
|
68
87
|
}
|
|
88
|
+
setAriaDescribedBy(input) {
|
|
89
|
+
input.ariaDescribedBy = this.descriptionUuid;
|
|
90
|
+
}
|
|
69
91
|
setInputPrefix() {
|
|
70
92
|
const input = this.input();
|
|
71
93
|
if (!input) {
|
|
@@ -82,7 +104,7 @@ export class FormFieldComponent {
|
|
|
82
104
|
return;
|
|
83
105
|
}
|
|
84
106
|
// Set the input icon for date inputs
|
|
85
|
-
if (
|
|
107
|
+
if (inputTypesWithSuffixButton.includes(input.element.type)) {
|
|
86
108
|
return input.element.type === InputType.Time ? 'schedule' : 'calendar_month';
|
|
87
109
|
}
|
|
88
110
|
// Set the input icon for select inputs
|
|
@@ -91,22 +113,20 @@ export class FormFieldComponent {
|
|
|
91
113
|
}
|
|
92
114
|
return undefined;
|
|
93
115
|
}
|
|
94
|
-
setRequiredState() {
|
|
95
|
-
const checkboxGroup = this.checkboxGroup();
|
|
96
|
-
const input = this.input();
|
|
97
|
-
const radioGroup = this.radioGroup();
|
|
98
|
-
const requiredCheckboxes = checkboxGroup?.checkboxes().some((checkbox) => checkbox.required());
|
|
99
|
-
const requiredInput = input?.element.required;
|
|
100
|
-
const requiredRadioButtons = radioGroup
|
|
101
|
-
?.radioButtons()
|
|
102
|
-
.some((radioButton) => radioButton.required());
|
|
103
|
-
return requiredInput || requiredCheckboxes || requiredRadioButtons || false;
|
|
104
|
-
}
|
|
105
116
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
106
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: FormFieldComponent, isStandalone: true, selector: "ndw-form-field", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null },
|
|
117
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: FormFieldComponent, isStandalone: true, selector: "ndw-form-field", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, clearSearchAriaLabel: { classPropertyName: "clearSearchAriaLabel", publicName: "clearSearchAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, suffixButtonAriaLabel: { classPropertyName: "suffixButtonAriaLabel", publicName: "suffixButtonAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, hideLabel: { classPropertyName: "hideLabel", publicName: "hideLabel", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, success: { classPropertyName: "success", publicName: "success", isSignal: true, isRequired: false, transformFunction: null }, info: { classPropertyName: "info", publicName: "info", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "monthInput", first: true, predicate: MonthInputComponent, descendants: true, isSignal: true }, { propertyName: "regularInput", first: true, predicate: InputDirective, descendants: true, isSignal: true }], ngImport: i0, template: "@if (input() === undefined) {\n <fieldset>\n <legend ndwLabel [class.sr-only]=\"hideLabel()\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n </legend>\n <ng-container *ngTemplateOutlet=\"fieldTemplate\" />\n </fieldset>\n} @else {\n <label ndwLabel [attr.for]=\"input() ? 'input-' + uuid : null\" [class.sr-only]=\"hideLabel()\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n </label>\n <ng-container *ngTemplateOutlet=\"fieldTemplate\" />\n}\n\n<ng-template #fieldTemplate>\n @if (inputPrefix(); as icon) {\n <ndw-icon class=\"input-prefix-icon\" [ngClass]=\"{ disabled: disabled() }\">\n {{ icon }}\n </ndw-icon>\n }\n @if (inputSuffix(); as icon) {\n <button\n ndwButton\n extra-small\n tertiary\n class=\"input-suffix-button\"\n [ngClass]=\"{ disabled: disabled() }\"\n [ariaLabel]=\"suffixButtonAriaLabel() ?? ''\"\n (click)=\"onSuffixButtonClick()\"\n >\n <ndw-icon>{{ icon }}</ndw-icon>\n </button>\n }\n\n @if (input()?.element?.type === 'search' && input()?.element?.value !== '') {\n <button\n ndwButton\n alternative\n extra-small\n tertiary\n class=\"input-suffix-button\"\n [ariaLabel]=\"clearSearchAriaLabel() ?? ''\"\n (click)=\"clearInput()\"\n >\n <ndw-icon>close</ndw-icon>\n </button>\n }\n\n <ng-content />\n\n @if (info(); as info) {\n <ndw-info [id]=\"descriptionUuid\">{{ info }}</ndw-info>\n }\n @if (error(); as error) {\n <ndw-error role=\"alert\" aria-live=\"polite\">{{ error }}</ndw-error>\n }\n @if (success(); as success) {\n <ndw-success role=\"alert\" aria-live=\"polite\">{{ success }}</ndw-success>\n }\n</ng-template>\n\n<ng-template #labelTemplate>\n <span class=\"required-label required\"> * </span>\n {{ label() }}\n @if (tooltip(); as tooltip) {\n <ndw-icon [ndwTooltip]=\"tooltip\">info</ndw-icon>\n }\n</ng-template>\n", styles: [":host{position:relative;display:grid;margin-bottom:var(--ndw-spacing-md);color:var(--ndw-color-grey-700);font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-sm)}:host .required-label{display:none}:host:has([required]) .required-label{display:inline}fieldset{border:0;margin:0;padding:0}fieldset legend{padding-inline:0}ndw-error,ndw-success,ndw-info{margin-top:var(--ndw-spacing-2xs)}.input-prefix-icon,.input-suffix-button{position:absolute;z-index:1}.input-prefix-icon.disabled,.input-suffix-button.disabled{color:var(--ndw-color-grey-300)}.input-prefix-icon{color:var(--ndw-color-grey-400);font-size:var(--ndw-font-size-lg);left:var(--ndw-spacing-sm);top:.625rem}label:not(.sr-only)~.input-prefix-icon{top:2.125rem}.input-suffix-button{top:.5rem;right:var(--ndw-spacing-xs)}label:not(.sr-only)~.input-suffix-button{top:2rem}\n"], dependencies: [{ kind: "directive", type: ButtonDirective, selector: "[ndwButton]" }, { kind: "component", type: ErrorComponent, selector: "ndw-error" }, { kind: "component", type: SuccessComponent, selector: "ndw-success" }, { kind: "component", type: IconComponent, selector: "ndw-icon", inputs: ["size"] }, { kind: "component", type: InfoComponent, selector: "ndw-info" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: TooltipDirective, selector: "[ndwTooltip]", inputs: ["ndwTooltip"] }] }); }
|
|
107
118
|
}
|
|
108
119
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
109
120
|
type: Component,
|
|
110
|
-
args: [{ selector: 'ndw-form-field', standalone: true, imports: [
|
|
121
|
+
args: [{ selector: 'ndw-form-field', standalone: true, imports: [
|
|
122
|
+
ButtonDirective,
|
|
123
|
+
ErrorComponent,
|
|
124
|
+
SuccessComponent,
|
|
125
|
+
IconComponent,
|
|
126
|
+
InfoComponent,
|
|
127
|
+
NgClass,
|
|
128
|
+
NgTemplateOutlet,
|
|
129
|
+
TooltipDirective,
|
|
130
|
+
], template: "@if (input() === undefined) {\n <fieldset>\n <legend ndwLabel [class.sr-only]=\"hideLabel()\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n </legend>\n <ng-container *ngTemplateOutlet=\"fieldTemplate\" />\n </fieldset>\n} @else {\n <label ndwLabel [attr.for]=\"input() ? 'input-' + uuid : null\" [class.sr-only]=\"hideLabel()\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n </label>\n <ng-container *ngTemplateOutlet=\"fieldTemplate\" />\n}\n\n<ng-template #fieldTemplate>\n @if (inputPrefix(); as icon) {\n <ndw-icon class=\"input-prefix-icon\" [ngClass]=\"{ disabled: disabled() }\">\n {{ icon }}\n </ndw-icon>\n }\n @if (inputSuffix(); as icon) {\n <button\n ndwButton\n extra-small\n tertiary\n class=\"input-suffix-button\"\n [ngClass]=\"{ disabled: disabled() }\"\n [ariaLabel]=\"suffixButtonAriaLabel() ?? ''\"\n (click)=\"onSuffixButtonClick()\"\n >\n <ndw-icon>{{ icon }}</ndw-icon>\n </button>\n }\n\n @if (input()?.element?.type === 'search' && input()?.element?.value !== '') {\n <button\n ndwButton\n alternative\n extra-small\n tertiary\n class=\"input-suffix-button\"\n [ariaLabel]=\"clearSearchAriaLabel() ?? ''\"\n (click)=\"clearInput()\"\n >\n <ndw-icon>close</ndw-icon>\n </button>\n }\n\n <ng-content />\n\n @if (info(); as info) {\n <ndw-info [id]=\"descriptionUuid\">{{ info }}</ndw-info>\n }\n @if (error(); as error) {\n <ndw-error role=\"alert\" aria-live=\"polite\">{{ error }}</ndw-error>\n }\n @if (success(); as success) {\n <ndw-success role=\"alert\" aria-live=\"polite\">{{ success }}</ndw-success>\n }\n</ng-template>\n\n<ng-template #labelTemplate>\n <span class=\"required-label required\"> * </span>\n {{ label() }}\n @if (tooltip(); as tooltip) {\n <ndw-icon [ndwTooltip]=\"tooltip\">info</ndw-icon>\n }\n</ng-template>\n", styles: [":host{position:relative;display:grid;margin-bottom:var(--ndw-spacing-md);color:var(--ndw-color-grey-700);font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-sm)}:host .required-label{display:none}:host:has([required]) .required-label{display:inline}fieldset{border:0;margin:0;padding:0}fieldset legend{padding-inline:0}ndw-error,ndw-success,ndw-info{margin-top:var(--ndw-spacing-2xs)}.input-prefix-icon,.input-suffix-button{position:absolute;z-index:1}.input-prefix-icon.disabled,.input-suffix-button.disabled{color:var(--ndw-color-grey-300)}.input-prefix-icon{color:var(--ndw-color-grey-400);font-size:var(--ndw-font-size-lg);left:var(--ndw-spacing-sm);top:.625rem}label:not(.sr-only)~.input-prefix-icon{top:2.125rem}.input-suffix-button{top:.5rem;right:var(--ndw-spacing-xs)}label:not(.sr-only)~.input-suffix-button{top:2rem}\n"] }]
|
|
111
131
|
}], ctorParameters: () => [] });
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZHcvc3JjL2NvbXBvbmVudHMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25kdy9zcmMvY29tcG9uZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDeEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUVwRCxNQUFNLHdCQUF3QixHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3BELE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7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TSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRXJDLE1BQU0sa0JBQWtCLEdBQUcsYUFBYSxFQUFFLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDL0YsTUFBTSxhQUFhLEdBQUcsS0FBSyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDOUMsTUFBTSxvQkFBb0IsR0FBRyxVQUFVO1lBQ3JDLEVBQUUsWUFBWSxFQUFFO2FBQ2YsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUVqRCxPQUFPLGFBQWEsSUFBSSxrQkFBa0IsSUFBSSxvQkFBb0IsSUFBSSxLQUFLLENBQUM7SUFDOUUsQ0FBQzs4R0EvR1Usa0JBQWtCO2tHQUFsQixrQkFBa0IsNnRCQUNELGNBQWMsNkZBQ1QsbUJBQW1CLGdHQUNoQixzQkFBc0IsZ0VDMUI1RCx3OUJBb0NBLDh4QkRqQlksWUFBWSw2SEFBRSxjQUFjLHNEQUFFLGFBQWEsOEVBQUUsYUFBYSxxREFBRSxnQkFBZ0I7OzJGQUkzRSxrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGNvbnRlbnRDaGlsZCwgZWZmZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbic7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vdG9vbHRpcCc7XG5cbmltcG9ydCB7IENoZWNrYm94R3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94LWdyb3VwJztcbmltcG9ydCB7IEVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi9lcnJvcic7XG5pbXBvcnQgeyBGb3JtRmllbGRFbGVtZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IEluZm9Db21wb25lbnQgfSBmcm9tICcuL2luZm8nO1xuaW1wb3J0IHsgSW5wdXREaXJlY3RpdmUsIElucHV0VHlwZSB9IGZyb20gJy4vaW5wdXQnO1xuaW1wb3J0IHsgUmFkaW9Hcm91cENvbXBvbmVudCB9IGZyb20gJy4vcmFkaW8tZ3JvdXAnO1xuXG5jb25zdCBpbnB1dFR5cGVzV2l0aFByZWZpeEljb24gPSBbSW5wdXRUeXBlLlNlYXJjaF07XG5jb25zdCBpbnB1dFR5cGVzV2l0aFN1ZmZpeEljb24gPSBbSW5wdXRUeXBlLkRhdGUsIElucHV0VHlwZS5Nb250aCwgSW5wdXRUeXBlLlRpbWUsIElucHV0VHlwZS5XZWVrXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmR3LWZvcm0tZmllbGQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBFcnJvckNvbXBvbmVudCwgSWNvbkNvbXBvbmVudCwgSW5mb0NvbXBvbmVudCwgVG9vbHRpcERpcmVjdGl2ZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2Zvcm0tZmllbGQuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRDb21wb25lbnQge1xuICBwdWJsaWMgaW5wdXQgPSBjb250ZW50Q2hpbGQoSW5wdXREaXJlY3RpdmUpO1xuICBwdWJsaWMgcmFkaW9Hcm91cCA9IGNvbnRlbnRDaGlsZChSYWRpb0dyb3VwQ29tcG9uZW50KTtcbiAgcHVibGljIGNoZWNrYm94R3JvdXAgPSBjb250ZW50Q2hpbGQoQ2hlY2tib3hHcm91cENvbXBvbmVudCk7XG5cbiAgcHVibGljIGxhYmVsID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIHB1YmxpYyBkaXNhYmxlZCA9IGlucHV0KGZhbHNlKTtcbiAgcHVibGljIGVycm9yID0gaW5wdXQ8c3RyaW5nPigpO1xuICBwdWJsaWMgaW5mbyA9IGlucHV0PHN0cmluZz4oKTtcbiAgcHVibGljIHRvb2x0aXAgPSBpbnB1dCgnJyk7XG5cbiAgcHVibGljIHJlcXVpcmVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zZXRSZXF1aXJlZFN0YXRlKCkpO1xuICBwdWJsaWMgaW5wdXRQcmVmaXggPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNldElucHV0UHJlZml4KCkpO1xuICBwdWJsaWMgaW5wdXRTdWZmaXggPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNldElucHV0U3VmZml4KCkpO1xuXG4gIHB1YmxpYyB1dWlkID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5pbnB1dCgpO1xuICAgICAgaWYgKCFpbnB1dCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuYWRkSW5wdXRUeXBlQmFzZWRDbGFzcyhpbnB1dCk7XG4gICAgICB0aGlzLnNldElucHV0RGlzYWJsZWRTdGF0ZShpbnB1dCk7XG4gICAgICB0aGlzLnNldElucHV0RXJyb3JTdGF0ZShpbnB1dCk7XG4gICAgICB0aGlzLnNldElucHV0SWQoaW5wdXQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNsZWFySW5wdXQoKTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmlucHV0KCk7XG4gICAgaWYgKGlucHV0KSB7XG4gICAgICBpbnB1dC5lbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAvLyBUcmlnZ2VyICduZHctY2hhbmdlZCcgYXR0cmlidXRlIHVwZGF0ZSBvbiB0aGUgaW5wdXQgZWxlbWVudFxuICAgICAgaW5wdXQuZWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRJbnB1dFR5cGVCYXNlZENsYXNzKGlucHV0OiBJbnB1dERpcmVjdGl2ZSk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBpbnB1dC5lbGVtZW50O1xuICAgIGlmICghZWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlucHV0VHlwZXNXaXRoUHJlZml4SWNvbi5pbmNsdWRlcyhlbGVtZW50LnR5cGUgYXMgSW5wdXRUeXBlKVxuICAgICAgPyBlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3ByZWZpeC1pY29uJylcbiAgICAgIDogZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdwcmVmaXgtaWNvbicpO1xuXG4gICAgaW5wdXRUeXBlc1dpdGhTdWZmaXhJY29uLmluY2x1ZGVzKGVsZW1lbnQudHlwZSBhcyBJbnB1dFR5cGUpXG4gICAgICA/IGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnc3VmZml4LWljb24nKVxuICAgICAgOiBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3N1ZmZpeC1pY29uJyk7XG4gIH1cblxuICBwcml2YXRlIHNldElucHV0RGlzYWJsZWRTdGF0ZShpbnB1dDogSW5wdXREaXJlY3RpdmUpOiB2b2lkIHtcbiAgICBpbnB1dC5kaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5wdXRFcnJvclN0YXRlKGlucHV0OiBJbnB1dERpcmVjdGl2ZSk6IHZvaWQge1xuICAgIGlucHV0LmVycm9yID0gISF0aGlzLmVycm9yKCk/Lmxlbmd0aDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5wdXRJZChpbnB1dDogSW5wdXREaXJlY3RpdmUpOiB2b2lkIHtcbiAgICBpbnB1dC5pZCA9IGBpbnB1dC0ke3RoaXMudXVpZH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRJbnB1dFByZWZpeCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5pbnB1dCgpO1xuICAgIGlmICghaW5wdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBTZXQgdGhlIGlucHV0IGljb24gZm9yIHNlYXJjaCBpbnB1dHNcbiAgICByZXR1cm4gaW5wdXRUeXBlc1dpdGhQcmVmaXhJY29uLmluY2x1ZGVzKGlucHV0LmVsZW1lbnQudHlwZSBhcyBJbnB1dFR5cGUpXG4gICAgICA/ICdzZWFyY2gnXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5wdXRTdWZmaXgoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXQoKTtcbiAgICBpZiAoIWlucHV0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gU2V0IHRoZSBpbnB1dCBpY29uIGZvciBkYXRlIGlucHV0c1xuICAgIGlmIChpbnB1dFR5cGVzV2l0aFN1ZmZpeEljb24uaW5jbHVkZXMoaW5wdXQuZWxlbWVudC50eXBlIGFzIElucHV0VHlwZSkpIHtcbiAgICAgIHJldHVybiBpbnB1dC5lbGVtZW50LnR5cGUgPT09IElucHV0VHlwZS5UaW1lID8gJ3NjaGVkdWxlJyA6ICdjYWxlbmRhcl9tb250aCc7XG4gICAgfVxuXG4gICAgLy8gU2V0IHRoZSBpbnB1dCBpY29uIGZvciBzZWxlY3QgaW5wdXRzXG4gICAgaWYgKGlucHV0LmVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gRm9ybUZpZWxkRWxlbWVudC5TZWxlY3QpIHtcbiAgICAgIHJldHVybiAna2V5Ym9hcmRfYXJyb3dfZG93bic7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UmVxdWlyZWRTdGF0ZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjaGVja2JveEdyb3VwID0gdGhpcy5jaGVja2JveEdyb3VwKCk7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmlucHV0KCk7XG4gICAgY29uc3QgcmFkaW9Hcm91cCA9IHRoaXMucmFkaW9Hcm91cCgpO1xuXG4gICAgY29uc3QgcmVxdWlyZWRDaGVja2JveGVzID0gY2hlY2tib3hHcm91cD8uY2hlY2tib3hlcygpLnNvbWUoKGNoZWNrYm94KSA9PiBjaGVja2JveC5yZXF1aXJlZCgpKTtcbiAgICBjb25zdCByZXF1aXJlZElucHV0ID0gaW5wdXQ/LmVsZW1lbnQucmVxdWlyZWQ7XG4gICAgY29uc3QgcmVxdWlyZWRSYWRpb0J1dHRvbnMgPSByYWRpb0dyb3VwXG4gICAgICA/LnJhZGlvQnV0dG9ucygpXG4gICAgICAuc29tZSgocmFkaW9CdXR0b24pID0+IHJhZGlvQnV0dG9uLnJlcXVpcmVkKCkpO1xuXG4gICAgcmV0dXJuIHJlcXVpcmVkSW5wdXQgfHwgcmVxdWlyZWRDaGVja2JveGVzIHx8IHJlcXVpcmVkUmFkaW9CdXR0b25zIHx8IGZhbHNlO1xuICB9XG59XG4iLCJAaWYgKHJlcXVpcmVkKCkgfHwgbGFiZWwoKSB8fCB0b29sdGlwKCkpIHtcbiAgPGxhYmVsIG5kd0xhYmVsIFtmb3JdPVwiJ2lucHV0LScgKyB1dWlkXCI+XG4gICAgQGlmIChyZXF1aXJlZCgpKSB7XG4gICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+ICogPC9zcGFuPlxuICAgIH1cbiAgICB7eyBsYWJlbCgpIH19XG4gICAgQGlmICh0b29sdGlwKCk7IGFzIHRvb2x0aXApIHtcbiAgICAgIDxuZHctaWNvbiBbbmR3VG9vbHRpcF09XCJ0b29sdGlwXCI+aW5mbzwvbmR3LWljb24+XG4gICAgfVxuICA8L2xhYmVsPlxufVxuQGlmIChpbnB1dFByZWZpeCgpOyBhcyBpY29uKSB7XG4gIDxuZHctaWNvbiBjbGFzcz1cInByZWZpeC1pbnB1dC1pY29uXCIgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogZGlzYWJsZWQoKSB9XCI+e3sgaWNvbiB9fTwvbmR3LWljb24+XG59XG5AaWYgKGlucHV0U3VmZml4KCk7IGFzIGljb24pIHtcbiAgPG5kdy1pY29uIGNsYXNzPVwic3VmZml4LWlucHV0LWljb25cIiBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBkaXNhYmxlZCgpIH1cIj57eyBpY29uIH19PC9uZHctaWNvbj5cbn1cblxuQGlmIChpbnB1dCgpPy5lbGVtZW50Py50eXBlID09PSAnc2VhcmNoJyAmJiBpbnB1dCgpPy5lbGVtZW50Py52YWx1ZSAhPT0gJycpIHtcbiAgPG5kdy1pY29uXG4gICAgY2xhc3M9XCJzdWZmaXgtaW5wdXQtaWNvblwiXG4gICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogZGlzYWJsZWQoKSwgY2xpY2thYmxlOiAhZGlzYWJsZWQoKSB9XCJcbiAgICAoY2xpY2spPVwiY2xlYXJJbnB1dCgpXCJcbiAgPlxuICAgIGNsb3NlXG4gIDwvbmR3LWljb24+XG59XG5cbjxuZy1jb250ZW50IC8+XG5cbkBpZiAoaW5mbygpOyBhcyBpbmZvKSB7XG4gIDxuZHctaW5mbz57eyBpbmZvIH19PC9uZHctaW5mbz5cbn1cbkBpZiAoZXJyb3IoKTsgYXMgZXJyb3IpIHtcbiAgPG5kdy1lcnJvcj57eyBlcnJvciB9fTwvbmR3LWVycm9yPlxufVxuIl19
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZHcvc3JjL2NvbXBvbmVudHMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25kdy9zcmMvY29tcG9uZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBRTdDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEQsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUks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QUNoQixnQkFBZ0I7cUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBjb250ZW50Q2hpbGQsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vYnV0dG9uJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uJztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi90b29sdGlwJztcblxuaW1wb3J0IHsgRXJyb3JDb21wb25lbnQgfSBmcm9tICcuL2Vycm9yJztcbmltcG9ydCB7IEZvcm1GaWVsZEVsZW1lbnQgfSBmcm9tICcuL2Zvcm0tZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgSW5mb0NvbXBvbmVudCB9IGZyb20gJy4vaW5mbyc7XG5pbXBvcnQgeyBJbnB1dERpcmVjdGl2ZSwgSW5wdXRUeXBlIH0gZnJvbSAnLi9pbnB1dCc7XG5pbXBvcnQgeyBNb250aElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9tb250aC1pbnB1dCc7XG5pbXBvcnQgeyBTdWNjZXNzQ29tcG9uZW50IH0gZnJvbSAnLi9zdWNjZXNzJztcblxuY29uc3QgaW5wdXRUeXBlc1dpdGhQcmVmaXhJY29uID0gW0lucHV0VHlwZS5TZWFyY2hdO1xuY29uc3QgaW5wdXRUeXBlc1dpdGhTdWZmaXhCdXR0b24gPSBbSW5wdXRUeXBlLkRhdGUsIElucHV0VHlwZS5UaW1lXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmR3LWZvcm0tZmllbGQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQnV0dG9uRGlyZWN0aXZlLFxuICAgIEVycm9yQ29tcG9uZW50LFxuICAgIFN1Y2Nlc3NDb21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBJbmZvQ29tcG9uZW50LFxuICAgIE5nQ2xhc3MsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IG1vbnRoSW5wdXQgPSBjb250ZW50Q2hpbGQoTW9udGhJbnB1dENvbXBvbmVudCk7XG4gIHB1YmxpYyByZWFkb25seSByZWd1bGFySW5wdXQgPSBjb250ZW50Q2hpbGQoSW5wdXREaXJlY3RpdmUpO1xuICBwdWJsaWMgaW5wdXQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlZ3VsYXJJbnB1dCgpID8/IHRoaXMubW9udGhJbnB1dCgpPy5pbnB1dCgpKTtcblxuICBwdWJsaWMgbGFiZWwgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gIHB1YmxpYyBjbGVhclNlYXJjaEFyaWFMYWJlbCA9IGlucHV0PHN0cmluZz4oKTtcbiAgcHVibGljIHN1ZmZpeEJ1dHRvbkFyaWFMYWJlbCA9IGlucHV0PHN0cmluZz4oKTtcbiAgcHVibGljIGhpZGVMYWJlbCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBwdWJsaWMgZGlzYWJsZWQgPSBpbnB1dChmYWxzZSk7XG4gIHB1YmxpYyBlcnJvciA9IGlucHV0PHN0cmluZz4oKTtcbiAgcHVibGljIHN1Y2Nlc3MgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHB1YmxpYyBpbmZvID0gaW5wdXQ8c3RyaW5nPigpO1xuICBwdWJsaWMgdG9vbHRpcCA9IGlucHV0KCcnKTtcblxuICBwdWJsaWMgaW5wdXRQcmVmaXggPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNldElucHV0UHJlZml4KCkpO1xuICBwdWJsaWMgaW5wdXRTdWZmaXggPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNldElucHV0U3VmZml4KCkpO1xuXG4gIHB1YmxpYyB1dWlkID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcbiAgcHVibGljIGRlc2NyaXB0aW9uVXVpZCA9IGNyeXB0by5yYW5kb21VVUlEKCk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXQoKTtcbiAgICAgIGlmICghaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmFkZElucHV0VHlwZUJhc2VkQ2xhc3MoaW5wdXQpO1xuICAgICAgdGhpcy5zZXRJbnB1dERpc2FibGVkU3RhdGUoaW5wdXQpO1xuICAgICAgdGhpcy5zZXRJbnB1dEVycm9yU3RhdGUoaW5wdXQpO1xuICAgICAgdGhpcy5zZXRJbnB1dFN1Y2Nlc3NTdGF0ZShpbnB1dCk7XG4gICAgICB0aGlzLnNldElucHV0SWQoaW5wdXQpO1xuICAgICAgdGhpcy5zZXRBcmlhRGVzY3JpYmVkQnkoaW5wdXQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNsZWFySW5wdXQoKTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmlucHV0KCk7XG4gICAgaWYgKGlucHV0KSB7XG4gICAgICBpbnB1dC5lbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAvLyBUcmlnZ2VyICduZHctY2hhbmdlZCcgYXR0cmlidXRlIHVwZGF0ZSBvbiB0aGUgaW5wdXQgZWxlbWVudFxuICAgICAgaW5wdXQuZWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uU3VmZml4QnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gdGhpcy5pbnB1dCgpPy5lbGVtZW50O1xuICAgIGlmICghaW5wdXRFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaW5wdXRFbGVtZW50LmZvY3VzKCk7XG5cbiAgICBpZiAoJ3Nob3dQaWNrZXInIGluIGlucHV0RWxlbWVudCkge1xuICAgICAgaW5wdXRFbGVtZW50LnNob3dQaWNrZXIoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZElucHV0VHlwZUJhc2VkQ2xhc3MoaW5wdXQ6IElucHV0RGlyZWN0aXZlKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IGlucHV0LmVsZW1lbnQ7XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaW5wdXRUeXBlc1dpdGhQcmVmaXhJY29uLmluY2x1ZGVzKGVsZW1lbnQudHlwZSBhcyBJbnB1dFR5cGUpXG4gICAgICA/IGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncHJlZml4LWljb24nKVxuICAgICAgOiBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3ByZWZpeC1pY29uJyk7XG5cbiAgICBpbnB1dFR5cGVzV2l0aFN1ZmZpeEJ1dHRvbi5pbmNsdWRlcyhlbGVtZW50LnR5cGUgYXMgSW5wdXRUeXBlKVxuICAgICAgPyBlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3N1ZmZpeC1idXR0b24nKVxuICAgICAgOiBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3N1ZmZpeC1idXR0b24nKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5wdXREaXNhYmxlZFN0YXRlKGlucHV0OiBJbnB1dERpcmVjdGl2ZSk6IHZvaWQge1xuICAgIGlucHV0LmRpc2FibGVkID0gdGhpcy5kaXNhYmxlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRJbnB1dEVycm9yU3RhdGUoaW5wdXQ6IElucHV0RGlyZWN0aXZlKTogdm9pZCB7XG4gICAgaW5wdXQuZXJyb3IgPSAhIXRoaXMuZXJyb3IoKT8ubGVuZ3RoO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRJbnB1dFN1Y2Nlc3NTdGF0ZShpbnB1dDogSW5wdXREaXJlY3RpdmUpOiB2b2lkIHtcbiAgICBpbnB1dC5zdWNjZXNzID0gISF0aGlzLnN1Y2Nlc3MoKT8ubGVuZ3RoO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRJbnB1dElkKGlucHV0OiBJbnB1dERpcmVjdGl2ZSk6IHZvaWQge1xuICAgIGlucHV0LmlkID0gYGlucHV0LSR7dGhpcy51dWlkfWA7XG4gIH1cblxuICBwcml2YXRlIHNldEFyaWFEZXNjcmliZWRCeShpbnB1dDogSW5wdXREaXJlY3RpdmUpOiB2b2lkIHtcbiAgICBpbnB1dC5hcmlhRGVzY3JpYmVkQnkgPSB0aGlzLmRlc2NyaXB0aW9uVXVpZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5wdXRQcmVmaXgoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXQoKTtcbiAgICBpZiAoIWlucHV0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gU2V0IHRoZSBpbnB1dCBpY29uIGZvciBzZWFyY2ggaW5wdXRzXG4gICAgcmV0dXJuIGlucHV0VHlwZXNXaXRoUHJlZml4SWNvbi5pbmNsdWRlcyhpbnB1dC5lbGVtZW50LnR5cGUgYXMgSW5wdXRUeXBlKVxuICAgICAgPyAnc2VhcmNoJ1xuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHNldElucHV0U3VmZml4KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmlucHV0KCk7XG4gICAgaWYgKCFpbnB1dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFNldCB0aGUgaW5wdXQgaWNvbiBmb3IgZGF0ZSBpbnB1dHNcbiAgICBpZiAoaW5wdXRUeXBlc1dpdGhTdWZmaXhCdXR0b24uaW5jbHVkZXMoaW5wdXQuZWxlbWVudC50eXBlIGFzIElucHV0VHlwZSkpIHtcbiAgICAgIHJldHVybiBpbnB1dC5lbGVtZW50LnR5cGUgPT09IElucHV0VHlwZS5UaW1lID8gJ3NjaGVkdWxlJyA6ICdjYWxlbmRhcl9tb250aCc7XG4gICAgfVxuXG4gICAgLy8gU2V0IHRoZSBpbnB1dCBpY29uIGZvciBzZWxlY3QgaW5wdXRzXG4gICAgaWYgKGlucHV0LmVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gRm9ybUZpZWxkRWxlbWVudC5TZWxlY3QpIHtcbiAgICAgIHJldHVybiAna2V5Ym9hcmRfYXJyb3dfZG93bic7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiQGlmIChpbnB1dCgpID09PSB1bmRlZmluZWQpIHtcbiAgPGZpZWxkc2V0PlxuICAgIDxsZWdlbmQgbmR3TGFiZWwgW2NsYXNzLnNyLW9ubHldPVwiaGlkZUxhYmVsKClcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbFRlbXBsYXRlXCIgLz5cbiAgICA8L2xlZ2VuZD5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmllbGRUZW1wbGF0ZVwiIC8+XG4gIDwvZmllbGRzZXQ+XG59IEBlbHNlIHtcbiAgPGxhYmVsIG5kd0xhYmVsIFthdHRyLmZvcl09XCJpbnB1dCgpID8gJ2lucHV0LScgKyB1dWlkIDogbnVsbFwiIFtjbGFzcy5zci1vbmx5XT1cImhpZGVMYWJlbCgpXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsVGVtcGxhdGVcIiAvPlxuICA8L2xhYmVsPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmllbGRUZW1wbGF0ZVwiIC8+XG59XG5cbjxuZy10ZW1wbGF0ZSAjZmllbGRUZW1wbGF0ZT5cbiAgQGlmIChpbnB1dFByZWZpeCgpOyBhcyBpY29uKSB7XG4gICAgPG5kdy1pY29uIGNsYXNzPVwiaW5wdXQtcHJlZml4LWljb25cIiBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBkaXNhYmxlZCgpIH1cIj5cbiAgICAgIHt7IGljb24gfX1cbiAgICA8L25kdy1pY29uPlxuICB9XG4gIEBpZiAoaW5wdXRTdWZmaXgoKTsgYXMgaWNvbikge1xuICAgIDxidXR0b25cbiAgICAgIG5kd0J1dHRvblxuICAgICAgZXh0cmEtc21hbGxcbiAgICAgIHRlcnRpYXJ5XG4gICAgICBjbGFzcz1cImlucHV0LXN1ZmZpeC1idXR0b25cIlxuICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogZGlzYWJsZWQoKSB9XCJcbiAgICAgIFthcmlhTGFiZWxdPVwic3VmZml4QnV0dG9uQXJpYUxhYmVsKCkgPz8gJydcIlxuICAgICAgKGNsaWNrKT1cIm9uU3VmZml4QnV0dG9uQ2xpY2soKVwiXG4gICAgPlxuICAgICAgPG5kdy1pY29uPnt7IGljb24gfX08L25kdy1pY29uPlxuICAgIDwvYnV0dG9uPlxuICB9XG5cbiAgQGlmIChpbnB1dCgpPy5lbGVtZW50Py50eXBlID09PSAnc2VhcmNoJyAmJiBpbnB1dCgpPy5lbGVtZW50Py52YWx1ZSAhPT0gJycpIHtcbiAgICA8YnV0dG9uXG4gICAgICBuZHdCdXR0b25cbiAgICAgIGFsdGVybmF0aXZlXG4gICAgICBleHRyYS1zbWFsbFxuICAgICAgdGVydGlhcnlcbiAgICAgIGNsYXNzPVwiaW5wdXQtc3VmZml4LWJ1dHRvblwiXG4gICAgICBbYXJpYUxhYmVsXT1cImNsZWFyU2VhcmNoQXJpYUxhYmVsKCkgPz8gJydcIlxuICAgICAgKGNsaWNrKT1cImNsZWFySW5wdXQoKVwiXG4gICAgPlxuICAgICAgPG5kdy1pY29uPmNsb3NlPC9uZHctaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgfVxuXG4gIDxuZy1jb250ZW50IC8+XG5cbiAgQGlmIChpbmZvKCk7IGFzIGluZm8pIHtcbiAgICA8bmR3LWluZm8gW2lkXT1cImRlc2NyaXB0aW9uVXVpZFwiPnt7IGluZm8gfX08L25kdy1pbmZvPlxuICB9XG4gIEBpZiAoZXJyb3IoKTsgYXMgZXJyb3IpIHtcbiAgICA8bmR3LWVycm9yIHJvbGU9XCJhbGVydFwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPnt7IGVycm9yIH19PC9uZHctZXJyb3I+XG4gIH1cbiAgQGlmIChzdWNjZXNzKCk7IGFzIHN1Y2Nlc3MpIHtcbiAgICA8bmR3LXN1Y2Nlc3Mgcm9sZT1cImFsZXJ0XCIgYXJpYS1saXZlPVwicG9saXRlXCI+e3sgc3VjY2VzcyB9fTwvbmR3LXN1Y2Nlc3M+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbGFiZWxUZW1wbGF0ZT5cbiAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZC1sYWJlbCByZXF1aXJlZFwiPiAqIDwvc3Bhbj5cbiAge3sgbGFiZWwoKSB9fVxuICBAaWYgKHRvb2x0aXAoKTsgYXMgdG9vbHRpcCkge1xuICAgIDxuZHctaWNvbiBbbmR3VG9vbHRpcF09XCJ0b29sdGlwXCI+aW5mbzwvbmR3LWljb24+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
export * from './checkbox';
|
|
2
2
|
export * from './checkbox-group';
|
|
3
3
|
export * from './error';
|
|
4
|
+
export * from './file-upload';
|
|
4
5
|
export * from './form-field.component';
|
|
5
6
|
export * from './form-field.model';
|
|
6
7
|
export * from './info';
|
|
7
8
|
export * from './input';
|
|
9
|
+
export * from './month-input';
|
|
10
|
+
export * from './option-group';
|
|
8
11
|
export * from './radio-button';
|
|
9
12
|
export * from './radio-group';
|
|
10
|
-
|
|
13
|
+
export * from './textarea';
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZHcvc3JjL2NvbXBvbmVudHMvZm9ybS1maWVsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NoZWNrYm94JztcbmV4cG9ydCAqIGZyb20gJy4vY2hlY2tib3gtZ3JvdXAnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvcic7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtdXBsb2FkJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vaW5mbyc7XG5leHBvcnQgKiBmcm9tICcuL2lucHV0JztcbmV4cG9ydCAqIGZyb20gJy4vbW9udGgtaW5wdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9vcHRpb24tZ3JvdXAnO1xuZXhwb3J0ICogZnJvbSAnLi9yYWRpby1idXR0b24nO1xuZXhwb3J0ICogZnJvbSAnLi9yYWRpby1ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL3RleHRhcmVhJztcbiJdfQ==
|
|
@@ -2,10 +2,10 @@ import { Component } from '@angular/core';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class InfoComponent {
|
|
4
4
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: InfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: InfoComponent, isStandalone: true, selector: "ndw-info", ngImport: i0, template: "<ng-content />\n", styles: [":host{align-items:center;color:var(--ndw-color-grey-500);display:grid;font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-xs)
|
|
5
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: InfoComponent, isStandalone: true, selector: "ndw-info", ngImport: i0, template: "<ng-content />\n", styles: [":host{align-items:center;color:var(--ndw-color-grey-500);display:grid;font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-xs)}\n"] }); }
|
|
6
6
|
}
|
|
7
7
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: InfoComponent, decorators: [{
|
|
8
8
|
type: Component,
|
|
9
|
-
args: [{ selector: 'ndw-info', standalone: true, imports: [], template: "<ng-content />\n", styles: [":host{align-items:center;color:var(--ndw-color-grey-500);display:grid;font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-xs)
|
|
9
|
+
args: [{ selector: 'ndw-info', standalone: true, imports: [], template: "<ng-content />\n", styles: [":host{align-items:center;color:var(--ndw-color-grey-500);display:grid;font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-xs)}\n"] }]
|
|
10
10
|
}] });
|
|
11
11
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZHcvc3JjL2NvbXBvbmVudHMvZm9ybS1maWVsZC9pbmZvL2luZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmR3L3NyYy9jb21wb25lbnRzL2Zvcm0tZmllbGQvaW5mby9pbmZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUzFDLE1BQU0sT0FBTyxhQUFhOzhHQUFiLGFBQWE7a0dBQWIsYUFBYSxvRUNUMUIsa0JBQ0E7OzJGRFFhLGFBQWE7a0JBUHpCLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksV0FDUCxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25kdy1pbmZvJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmZvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2luZm8uY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBJbmZvQ29tcG9uZW50IHt9XG4iLCI8bmctY29udGVudCAvPlxuIl19
|
|
@@ -15,9 +15,15 @@ export class InputDirective {
|
|
|
15
15
|
set error(error) {
|
|
16
16
|
this.element.toggleAttribute('error', error);
|
|
17
17
|
}
|
|
18
|
+
set success(success) {
|
|
19
|
+
this.element.toggleAttribute('success', success);
|
|
20
|
+
}
|
|
18
21
|
set id(id) {
|
|
19
22
|
this.element.id = id;
|
|
20
23
|
}
|
|
24
|
+
set ariaDescribedBy(id) {
|
|
25
|
+
this.element.setAttribute('aria-describedby', id);
|
|
26
|
+
}
|
|
21
27
|
get element() {
|
|
22
28
|
return this.elementRef.nativeElement;
|
|
23
29
|
}
|
|
@@ -52,8 +58,7 @@ export class InputDirective {
|
|
|
52
58
|
if (this.control) {
|
|
53
59
|
// Mark element as required when the control has a 'required' validator.
|
|
54
60
|
// This will show an asterisk (*)
|
|
55
|
-
|
|
56
|
-
this.element.required = isRequired;
|
|
61
|
+
this.element.required = this.control.hasValidator(Validators.required);
|
|
57
62
|
}
|
|
58
63
|
}
|
|
59
64
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: InputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
@@ -66,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
66
71
|
standalone: true,
|
|
67
72
|
}]
|
|
68
73
|
}] });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmR3L3NyYy9jb21wb25lbnRzL2Zvcm0tZmllbGQvaW5wdXQvaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFtQixTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFNakMsTUFBTSxPQUFPLGNBQWM7SUFKM0I7UUF5Qm1CLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxjQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBbURwRTtJQXpFQyxJQUFXLFFBQVEsQ0FBQyxRQUFpQjtRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQVcsS0FBSyxDQUFDLEtBQWM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxPQUFnQjtRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQVcsRUFBRSxDQUFDLEVBQVU7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFXLGVBQWUsQ0FBQyxFQUFVO1FBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFNRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBR0EsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN4RCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBRS9CLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYTthQUN4QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3pDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDO1FBRW5ELHNFQUFzRTtRQUN0RSxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7YUFDN0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN6QyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRU8sNkJBQTZCO1FBQ25DLElBQUksSUFBSSxDQUFDLE9BQU8sWUFBWSxpQkFBaUIsRUFBRSxDQUFDO1lBQzlDLE1BQU0scUJBQXFCLEdBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxLQUFLLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQzVELElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDekUsQ0FBQztJQUNILENBQUM7SUFFTyx1QkFBdUI7UUFDN0IsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsd0VBQXdFO1lBQ3hFLGlDQUFpQztZQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekUsQ0FBQztJQUNILENBQUM7OEdBekVVLGNBQWM7a0dBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFKMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdURBQXVEO29CQUNqRSxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIE5nQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdpbnB1dFtuZHdJbnB1dF0sIHNlbGVjdFtuZHdJbnB1dF0sIHRleHRhcmVhW25kd0lucHV0XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElucHV0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIHNldCBkaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuZWxlbWVudC5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIHNldCBlcnJvcihlcnJvcjogYm9vbGVhbikge1xuICAgIHRoaXMuZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2Vycm9yJywgZXJyb3IpO1xuICB9XG5cbiAgcHVibGljIHNldCBzdWNjZXNzKHN1Y2Nlc3M6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCdzdWNjZXNzJywgc3VjY2Vzcyk7XG4gIH1cblxuICBwdWJsaWMgc2V0IGlkKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmVsZW1lbnQuaWQgPSBpZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgYXJpYURlc2NyaWJlZEJ5KGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5JywgaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgbmdDb250cm9sID0gaW5qZWN0KE5nQ29udHJvbCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBwdWJsaWMgZ2V0IGVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IEhUTUxTZWxlY3RFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzXG4gICAgICB8IEhUTUxJbnB1dEVsZW1lbnRcbiAgICAgIHwgSFRNTFNlbGVjdEVsZW1lbnRcbiAgICAgIHwgSFRNTFRleHRBcmVhRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2wgPyB0aGlzLm5nQ29udHJvbC5jb250cm9sIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVJlcXVpcmVkQXR0cmlidXRlKCk7XG5cbiAgICB0aGlzLmNvbnRyb2w/LnN0YXR1c0NoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnVwZGF0ZVJlcXVpcmVkQXR0cmlidXRlKCkpO1xuXG4gICAgLy8gQWRkIG5kdy1jaGFuZ2VkIGF0dHJpYnV0ZSB3aGVuIHRoZSBpbnB1dCBpcyBjaGFuZ2VkIGFuZCBoYXMgYSB2YWx1ZVxuICAgIGZyb21FdmVudCh0aGlzLmVsZW1lbnQsICdpbnB1dCcpXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNldENoYW5nZWRBdHRyaWJ1dGUoKTtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RQbGFjZWhvbGRlckF0dHJpYnV0ZSgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnNldFNlbGVjdFBsYWNlaG9sZGVyQXR0cmlidXRlKCk7XG4gIH1cblxuICBwcml2YXRlIHNldENoYW5nZWRBdHRyaWJ1dGUoKTogdm9pZCB7XG4gICAgdGhpcy5lbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnbmR3LWNoYW5nZWQnLCAhIXRoaXMuZWxlbWVudC52YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHNldFNlbGVjdFBsYWNlaG9sZGVyQXR0cmlidXRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MU2VsZWN0RWxlbWVudCkge1xuICAgICAgY29uc3QgaXNQbGFjZWhvbGRlclNlbGVjdGVkID1cbiAgICAgICAgdGhpcy5lbGVtZW50LnNlbGVjdGVkSW5kZXggPT09IDAgJiZcbiAgICAgICAgdGhpcy5lbGVtZW50Lm9wdGlvbnNbdGhpcy5lbGVtZW50LnNlbGVjdGVkSW5kZXhdLmRpc2FibGVkO1xuICAgICAgdGhpcy5lbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnbmR3LXBsYWNlaG9sZGVyJywgaXNQbGFjZWhvbGRlclNlbGVjdGVkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVJlcXVpcmVkQXR0cmlidXRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgIC8vIE1hcmsgZWxlbWVudCBhcyByZXF1aXJlZCB3aGVuIHRoZSBjb250cm9sIGhhcyBhICdyZXF1aXJlZCcgdmFsaWRhdG9yLlxuICAgICAgLy8gVGhpcyB3aWxsIHNob3cgYW4gYXN0ZXJpc2sgKCopXG4gICAgICB0aGlzLmVsZW1lbnQucmVxdWlyZWQgPSB0aGlzLmNvbnRyb2wuaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cbiAgfVxufVxuIl19
|