@ndwnu/design-system 1.1.1 → 2.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.
Files changed (101) hide show
  1. package/assets/images/ndw-logo-short.svg +3 -3
  2. package/assets/images/ndw-logo.svg +3 -3
  3. package/assets/images/nwb-logo-short.svg +10 -10
  4. package/assets/images/nwb-logo.svg +4 -4
  5. package/components/accordion/accordion.component.d.ts +1 -0
  6. package/components/alert/alert.component.d.ts +18 -2
  7. package/components/alert/alert.model.d.ts +1 -0
  8. package/components/badge/badge.component.d.ts +8 -1
  9. package/components/card/card-footer/card-footer.component.d.ts +0 -1
  10. package/components/card/card-header/card-header.component.d.ts +0 -3
  11. package/components/card/card.component.d.ts +2 -8
  12. package/components/card/index.d.ts +3 -1
  13. package/components/collapsible/collapsible.component.d.ts +4 -3
  14. package/components/dropdown/dropdown.component.d.ts +5 -5
  15. package/components/form-field/file-upload/file-upload-text.interface.d.ts +4 -0
  16. package/components/form-field/file-upload/file-upload.component.d.ts +44 -0
  17. package/components/form-field/file-upload/index.d.ts +2 -0
  18. package/components/form-field/form-field.component.d.ts +8 -2
  19. package/components/form-field/index.d.ts +3 -0
  20. package/components/form-field/input/input.directive.d.ts +1 -0
  21. package/components/form-field/option-group/index.d.ts +2 -0
  22. package/components/form-field/option-group/option-group.component.d.ts +18 -0
  23. package/components/form-field/option-group/option.component.d.ts +8 -0
  24. package/components/form-field/radio-group/radio-group.component.d.ts +1 -1
  25. package/components/form-field/textarea/auto-grow.directive.d.ts +19 -0
  26. package/components/form-field/textarea/index.d.ts +1 -0
  27. package/components/icon/action-icon/action-icon.component.d.ts +33 -0
  28. package/components/icon/icon.component.d.ts +4 -6
  29. package/components/icon/index.d.ts +1 -0
  30. package/components/index.d.ts +1 -0
  31. package/components/main-navigation/main-navigation.component.d.ts +2 -1
  32. package/components/modal/index.d.ts +7 -1
  33. package/components/modal/modal-content/index.d.ts +1 -0
  34. package/components/modal/modal-content/modal-content.component.d.ts +5 -0
  35. package/components/modal/modal-footer/index.d.ts +1 -0
  36. package/components/modal/modal-footer/modal-footer.component.d.ts +5 -0
  37. package/components/modal/modal-header/index.d.ts +1 -0
  38. package/components/modal/modal-header/modal-header.component.d.ts +7 -0
  39. package/components/modal/modal.component.d.ts +11 -0
  40. package/components/modal/modal.service.d.ts +0 -1
  41. package/components/multi-select/multi-select.component.d.ts +6 -5
  42. package/components/pill/pill.component.d.ts +8 -0
  43. package/components/removable-pill/removable-pill.component.d.ts +9 -2
  44. package/components/toast/index.d.ts +2 -0
  45. package/components/toast/toast.component.d.ts +18 -0
  46. package/components/toast/toast.service.d.ts +12 -0
  47. package/components/tooltip/tooltip.directive.d.ts +4 -0
  48. package/core/styles/ndw-styles.scss +99 -31
  49. package/core/styles/nwb-styles.scss +99 -31
  50. package/esm2022/components/accordion/accordion.component.mjs +9 -5
  51. package/esm2022/components/accordion/accordion.service.mjs +3 -6
  52. package/esm2022/components/alert/alert.component.mjs +28 -4
  53. package/esm2022/components/alert/alert.model.mjs +1 -1
  54. package/esm2022/components/badge/badge.component.mjs +10 -3
  55. package/esm2022/components/breadcrumb-group/breadcrumb-group.component.mjs +3 -3
  56. package/esm2022/components/card/card-footer/card-footer.component.mjs +1 -4
  57. package/esm2022/components/card/card-header/card-header.component.mjs +4 -12
  58. package/esm2022/components/card/card.component.mjs +5 -22
  59. package/esm2022/components/card/index.mjs +12 -2
  60. package/esm2022/components/collapsible/collapsible.component.mjs +6 -13
  61. package/esm2022/components/dropdown/dropdown.component.mjs +8 -9
  62. package/esm2022/components/form-field/checkbox/checkbox.component.mjs +2 -2
  63. package/esm2022/components/form-field/error/error.component.mjs +3 -3
  64. package/esm2022/components/form-field/file-upload/file-upload-text.interface.mjs +2 -0
  65. package/esm2022/components/form-field/file-upload/file-upload.component.mjs +210 -0
  66. package/esm2022/components/form-field/file-upload/index.mjs +3 -0
  67. package/esm2022/components/form-field/form-field.component.mjs +30 -5
  68. package/esm2022/components/form-field/index.mjs +4 -1
  69. package/esm2022/components/form-field/info/info.component.mjs +2 -2
  70. package/esm2022/components/form-field/input/input.directive.mjs +5 -3
  71. package/esm2022/components/form-field/option-group/index.mjs +3 -0
  72. package/esm2022/components/form-field/option-group/option-group.component.mjs +53 -0
  73. package/esm2022/components/form-field/option-group/option.component.mjs +22 -0
  74. package/esm2022/components/form-field/radio-group/radio-group.component.mjs +4 -6
  75. package/esm2022/components/form-field/textarea/auto-grow.directive.mjs +45 -0
  76. package/esm2022/components/form-field/textarea/index.mjs +2 -0
  77. package/esm2022/components/icon/action-icon/action-icon.component.mjs +39 -0
  78. package/esm2022/components/icon/icon.component.mjs +10 -24
  79. package/esm2022/components/icon/index.mjs +2 -1
  80. package/esm2022/components/index.mjs +2 -1
  81. package/esm2022/components/main-navigation/main-navigation.component.mjs +4 -3
  82. package/esm2022/components/modal/index.mjs +18 -2
  83. package/esm2022/components/modal/modal-content/index.mjs +2 -0
  84. package/esm2022/components/modal/modal-content/modal-content.component.mjs +11 -0
  85. package/esm2022/components/modal/modal-footer/index.mjs +2 -0
  86. package/esm2022/components/modal/modal-footer/modal-footer.component.mjs +11 -0
  87. package/esm2022/components/modal/modal-header/index.mjs +2 -0
  88. package/esm2022/components/modal/modal-header/modal-header.component.mjs +19 -0
  89. package/esm2022/components/modal/modal.component.mjs +32 -0
  90. package/esm2022/components/modal/modal.service.mjs +5 -10
  91. package/esm2022/components/multi-select/multi-select.component.mjs +10 -8
  92. package/esm2022/components/pill/pill.component.mjs +17 -4
  93. package/esm2022/components/removable-pill/removable-pill.component.mjs +13 -11
  94. package/esm2022/components/toast/index.mjs +3 -0
  95. package/esm2022/components/toast/toast.component.mjs +74 -0
  96. package/esm2022/components/toast/toast.service.mjs +43 -0
  97. package/esm2022/components/tooltip/tooltip.component.mjs +5 -3
  98. package/esm2022/components/tooltip/tooltip.directive.mjs +43 -18
  99. package/fesm2022/ndwnu-design-system.mjs +840 -254
  100. package/fesm2022/ndwnu-design-system.mjs.map +1 -1
  101. package/package.json +1 -1
@@ -51,7 +51,7 @@ export class CheckboxComponent {
51
51
  useExisting: CheckboxComponent,
52
52
  multi: true,
53
53
  },
54
- ], ngImport: i0, template: "<input\n type=\"checkbox\"\n [id]=\"'checkbox-' + uuid\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n aria-hidden=\"true\"\n/>\n<div\n [ngClass]=\"{ error: error(), checkbox: !switch(), switch: switch() }\"\n role=\"checkbox\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : checked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-labelledby]=\"'checkbox-label-' + uuid\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n [tabindex]=\"disabled() ? -1 : 0\"\n>\n @if (!switch()) {\n @if (checked()) {\n <ndw-icon>check</ndw-icon>\n } @else if (indeterminate()) {\n <ndw-icon>remove</ndw-icon>\n }\n } @else {\n <span class=\"switch-icon\">\n @if (checked()) {\n <ndw-icon>check</ndw-icon>\n } @else {\n <ndw-icon>close</ndw-icon>\n }\n </span>\n }\n</div>\n<label\n id=\"checkbox-label-{{ uuid }}\"\n tabindex=\"-1\"\n [for]=\"'checkbox-' + uuid\"\n [ngClass]=\"{ 'switch-text': switch() }\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content />\n</label>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400..650;1,9..40,400..650&family=Material+Symbols+Rounded:opsz,wght@20..48,400&family=Nunito+Sans:ital,opsz,wght@0,6..12,400..650;1,6..12,400..650&display=block\";.ndw-heading-xl{font-family:var(--ndw-font-family-heading);font-size:2.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-lg{font-family:var(--ndw-font-family-heading);font-size:2rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-md{font-family:var(--ndw-font-family-heading);font-size:1.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-sm{font-family:var(--ndw-font-family-heading);font-size:1.25rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-bold-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}:host{--checkable-input-size: 1.25rem;cursor:pointer;display:inline-grid;gap:var(--ndw-spacing-xs);grid-template-columns:auto 1fr;min-height:1.375rem;width:fit-content}input{display:none}div{background-color:var(--ndw-color-white);border:var(--ndw-border-size-sm) solid var(--ndw-color-grey-300);box-sizing:border-box;color:var(--ndw-color-white);display:flex;height:var(--checkable-input-size);position:relative;transition:background-color var(--ndw-animation-speed-fast) ease-out,border-color var(--ndw-animation-speed-fast) ease-out,box-shadow var(--ndw-animation-speed-fast) ease-out;width:var(--checkable-input-size)}div.error{background-color:var(--ndw-color-critical-100);border-color:var(--ndw-color-critical-500)}label{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%;align-items:center;color:var(--ndw-color-grey-600);cursor:pointer;display:flex;margin-top:var(--ndw-spacing-3xs);width:fit-content}label:focus{outline:none}:host(.checked) div,:host(.indeterminate) div{background-color:var(--ndw-color-primary-500);border-color:var(--ndw-color-primary-500)}:host(.checked) div.error,:host(.indeterminate) div.error{background-color:var(--ndw-color-critical-500);border-color:var(--ndw-color-critical-500)}:host(:focus){outline:none}:host(:focus) div{box-shadow:var(--ndw-elevation-info)}:host(:active) div,:host(:focus) div,:host(:not(.checked):active) div,:host(:not(.indeterminate):active) div{border-color:var(--ndw-color-secondary-500)}:host(.checked:focus) div,:host(.indeterminate:focus) div{background-color:var(--ndw-color-primary-700)}:host(.disabled){pointer-events:none;-webkit-user-select:none;user-select:none}:host(.disabled) div{background-color:var(--ndw-color-grey-100);border-color:var(--ndw-color-grey-200)}:host(.disabled) label{color:var(--ndw-color-grey-400)}:host(.checked.disabled) div{background-color:var(--ndw-color-grey-200);border-color:var(--ndw-color-grey-200)}\n", "div{border-radius:var(--ndw-border-radius-sm)}div.checkbox ndw-icon{font-size:1.25rem;inset:calc(var(--ndw-border-size-sm) * -1);position:absolute}div.switch{width:2.75rem;height:var(--ndw-spacing-lg);border-radius:calc(var(--ndw-spacing-lg) / 2);border:var(--ndw-border-size-sm) solid var(--ndw-color-grey-300);padding:var(--ndw-border-size-lg)}div.switch .switch-icon{background-color:var(--ndw-color-grey-400);border-radius:50%;width:var(--ndw-spacing-md);height:var(--ndw-spacing-md);display:flex;align-items:center;justify-content:center;animation:translateToLeft var(--ndw-animation-speed-fast) ease-out forwards}div.switch .switch-icon ndw-icon{color:var(--ndw-color-white);font-size:var(--ndw-spacing-sm)}div.switch.error{background-color:var(--ndw-color-white)}label.switch-text{margin-top:var(--ndw-spacing-2xs)}:host(.checked) div.switch,:host(.indeterminate) div.switch{background-color:var(--ndw-color-positive-500);border-color:var(--ndw-color-positive-500)}:host(.checked) div.switch .switch-icon,:host(.indeterminate) div.switch .switch-icon{background-color:var(--ndw-color-white);animation:translateToRight var(--ndw-animation-speed-fast) ease-out forwards}:host(.checked) div.switch .switch-icon ndw-icon,:host(.indeterminate) div.switch .switch-icon ndw-icon{color:var(--ndw-color-positive-500)}:host(.checked) div.switch.error,:host(.indeterminate) div.switch.error{background-color:var(--ndw-color-positive-500)}:host(:hover) div{background-color:var(--ndw-color-white)}:host(:hover) div.checkbox{border-color:var(--ndw-color-primary-500)}:host(:hover) div.switch{border-color:var(--ndw-color-grey-500)}:host(:hover) div.switch ndw-icon{color:var(--ndw-color-white)}:host(.checked:hover) div.checkbox,:host(.indeterminate:hover) div.checkbox{background-color:var(--ndw-color-primary-600);border-color:var(--ndw-color-primary-600)}:host(.checked:hover) div.switch,:host(.indeterminate:hover) div.switch{background-color:var(--ndw-color-positive-600);border-color:var(--ndw-color-positive-600)}:host(.checked:hover) div.switch ndw-icon,:host(.indeterminate:hover) div.switch ndw-icon{color:var(--ndw-color-positive-600)}:host(:focus) div.switch{border-color:var(--ndw-color-secondary-500)}:host(.disabled) div.switch .switch-icon{background-color:var(--ndw-color-grey-200)}:host(.disabled) div.switch .switch-icon ndw-icon{background-color:var(--ndw-color-grey-200)}:host(.checked.disabled) div.switch .switch-icon,:host(.indeterminate.disabled) div.switch .switch-icon{background-color:var(--ndw-color-white)}:host(.checked.disabled) div.switch .switch-icon ndw-icon,:host(.indeterminate.disabled) div.switch .switch-icon ndw-icon{background-color:var(--ndw-color-white);color:var(--ndw-color-grey-200)}@keyframes translateToRight{0%{transform:translate(0);background-color:var(--ndw-color-grey-300)}to{transform:translate(20px);background-color:var(--ndw-color-white)}}@keyframes translateToLeft{0%{transform:translate(20px);background-color:var(--ndw-color-white)}to{transform:translate(0);background-color:var(--ndw-color-grey-300)}}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "ndw-icon", inputs: ["interactive"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
54
+ ], ngImport: i0, template: "<input\n type=\"checkbox\"\n [id]=\"'checkbox-' + uuid\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n aria-hidden=\"true\"\n/>\n<div\n [ngClass]=\"{ error: error(), checkbox: !switch(), switch: switch() }\"\n role=\"checkbox\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : checked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-labelledby]=\"'checkbox-label-' + uuid\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n [tabindex]=\"disabled() ? -1 : 0\"\n>\n @if (!switch()) {\n @if (checked()) {\n <ndw-icon>check</ndw-icon>\n } @else if (indeterminate()) {\n <ndw-icon>remove</ndw-icon>\n }\n } @else {\n <span class=\"switch-icon\">\n @if (checked()) {\n <ndw-icon>check</ndw-icon>\n } @else {\n <ndw-icon>close</ndw-icon>\n }\n </span>\n }\n</div>\n<label\n id=\"checkbox-label-{{ uuid }}\"\n tabindex=\"-1\"\n [for]=\"'checkbox-' + uuid\"\n [ngClass]=\"{ 'switch-text': switch() }\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content />\n</label>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400..650;1,9..40,400..650&family=Material+Symbols+Rounded:opsz,wght@20..48,400&family=Nunito+Sans:ital,opsz,wght@0,6..12,400..650;1,6..12,400..650&display=block\";.ndw-heading-xl{font-family:var(--ndw-font-family-heading);font-size:2.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-lg{font-family:var(--ndw-font-family-heading);font-size:2rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-md{font-family:var(--ndw-font-family-heading);font-size:1.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-sm{font-family:var(--ndw-font-family-heading);font-size:1.25rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-bold-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}:host{--checkable-input-size: 1.25rem;cursor:pointer;display:inline-grid;gap:var(--ndw-spacing-xs);grid-template-columns:auto 1fr;min-height:1.375rem;width:fit-content}input{display:none}div{background-color:var(--ndw-color-white);border:var(--ndw-border-size-sm) solid var(--ndw-color-grey-300);box-sizing:border-box;color:var(--ndw-color-white);display:flex;height:var(--checkable-input-size);position:relative;transition:background-color var(--ndw-animation-speed-fast) ease-out,border-color var(--ndw-animation-speed-fast) ease-out,box-shadow var(--ndw-animation-speed-fast) ease-out;width:var(--checkable-input-size)}div.error{background-color:var(--ndw-color-critical-100);border-color:var(--ndw-color-critical-500)}label{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%;align-items:center;color:var(--ndw-color-grey-600);cursor:pointer;display:flex;margin-top:var(--ndw-spacing-3xs);width:fit-content}label:focus{outline:none}:host(.checked) div,:host(.indeterminate) div{background-color:var(--ndw-color-primary-500);border-color:var(--ndw-color-primary-500)}:host(.checked) div.error,:host(.indeterminate) div.error{background-color:var(--ndw-color-critical-500);border-color:var(--ndw-color-critical-500)}:host(:focus){outline:none}:host(:focus) div{box-shadow:var(--ndw-elevation-info)}:host(:active) div,:host(:focus) div,:host(:not(.checked):active) div,:host(:not(.indeterminate):active) div{border-color:var(--ndw-color-secondary-500)}:host(.checked:focus) div,:host(.indeterminate:focus) div{background-color:var(--ndw-color-primary-700)}:host(.disabled){pointer-events:none;-webkit-user-select:none;user-select:none}:host(.disabled) div{background-color:var(--ndw-color-grey-100);border-color:var(--ndw-color-grey-200)}:host(.disabled) label{color:var(--ndw-color-grey-400)}:host(.checked.disabled) div{background-color:var(--ndw-color-grey-200);border-color:var(--ndw-color-grey-200)}\n", "div{border-radius:var(--ndw-border-radius-sm)}div.checkbox ndw-icon{font-size:1.25rem;inset:calc(var(--ndw-border-size-sm) * -1);position:absolute}div.switch{width:2.75rem;height:var(--ndw-spacing-lg);border-radius:calc(var(--ndw-spacing-lg) / 2);border:var(--ndw-border-size-sm) solid var(--ndw-color-grey-300);padding:var(--ndw-border-size-lg)}div.switch .switch-icon{background-color:var(--ndw-color-grey-400);border-radius:50%;width:var(--ndw-spacing-md);height:var(--ndw-spacing-md);display:flex;align-items:center;justify-content:center;animation:translateToLeft var(--ndw-animation-speed-fast) ease-out forwards}div.switch .switch-icon ndw-icon{color:var(--ndw-color-white);font-size:var(--ndw-spacing-sm)}div.switch.error{background-color:var(--ndw-color-white)}label.switch-text{margin-top:var(--ndw-spacing-2xs)}:host(.checked) div.switch,:host(.indeterminate) div.switch{background-color:var(--ndw-color-positive-500);border-color:var(--ndw-color-positive-500)}:host(.checked) div.switch .switch-icon,:host(.indeterminate) div.switch .switch-icon{background-color:var(--ndw-color-white);animation:translateToRight var(--ndw-animation-speed-fast) ease-out forwards}:host(.checked) div.switch .switch-icon ndw-icon,:host(.indeterminate) div.switch .switch-icon ndw-icon{color:var(--ndw-color-positive-500)}:host(.checked) div.switch.error,:host(.indeterminate) div.switch.error{background-color:var(--ndw-color-positive-500)}:host(:hover) div{background-color:var(--ndw-color-white)}:host(:hover) div.checkbox{border-color:var(--ndw-color-primary-500)}:host(:hover) div.switch{border-color:var(--ndw-color-grey-500)}:host(:hover) div.switch ndw-icon{color:var(--ndw-color-white)}:host(.checked:hover) div.checkbox,:host(.indeterminate:hover) div.checkbox{background-color:var(--ndw-color-primary-600);border-color:var(--ndw-color-primary-600)}:host(.checked:hover) div.switch,:host(.indeterminate:hover) div.switch{background-color:var(--ndw-color-positive-600);border-color:var(--ndw-color-positive-600)}:host(.checked:hover) div.switch ndw-icon,:host(.indeterminate:hover) div.switch ndw-icon{color:var(--ndw-color-positive-600)}:host(:focus) div.switch{border-color:var(--ndw-color-secondary-500)}:host(.disabled) div.switch .switch-icon{background-color:var(--ndw-color-grey-200)}:host(.disabled) div.switch .switch-icon ndw-icon{background-color:var(--ndw-color-grey-200)}:host(.checked.disabled) div.switch .switch-icon,:host(.indeterminate.disabled) div.switch .switch-icon{background-color:var(--ndw-color-white)}:host(.checked.disabled) div.switch .switch-icon ndw-icon,:host(.indeterminate.disabled) div.switch .switch-icon ndw-icon{background-color:var(--ndw-color-white);color:var(--ndw-color-grey-200)}@keyframes translateToRight{0%{transform:translate(0);background-color:var(--ndw-color-grey-300)}to{transform:translate(20px);background-color:var(--ndw-color-white)}}@keyframes translateToLeft{0%{transform:translate(20px);background-color:var(--ndw-color-white)}to{transform:translate(0);background-color:var(--ndw-color-grey-300)}}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "ndw-icon", inputs: ["size"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
55
55
  }
56
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: CheckboxComponent, decorators: [{
57
57
  type: Component,
@@ -72,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
72
72
  type: HostBinding,
73
73
  args: ['class.indeterminate']
74
74
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmR3L3NyYy9jb21wb25lbnRzL2Zvcm0tZmllbGQvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmR3L3NyYy9jb21wb25lbnRzL2Zvcm0tZmllbGQvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7O0FBaUIzQyxNQUFNLE9BQU8saUJBQWlCO0lBZjlCO1FBZ0JTLFlBQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsV0FBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixhQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLFVBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsa0JBQWEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsYUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4QixTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO0tBNkNuQztJQTNDQyxJQUNXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQ1csYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFDVyxrQkFBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQW9CO1FBQ25DLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDN0MsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQWM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEVBQTRCO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsT0FBTztJQUNULENBQUM7OEdBcERVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDJnQ0FYakI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsaUJBQWlCO2dCQUM5QixLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDaEJILGdtQ0E0Q0Esc3pORG5DWSxhQUFhLDhFQUFFLE9BQU87OzJGQVlyQixpQkFBaUI7a0JBZjdCLFNBQVM7K0JBQ0UsY0FBYyxjQUNaLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsYUFDdEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxtQkFBbUI7NEJBQzlCLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQWFwQyxZQUFZO3NCQUR0QixXQUFXO3VCQUFDLGVBQWU7Z0JBTWpCLGFBQWE7c0JBRHZCLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQU1sQixrQkFBa0I7c0JBRDVCLFdBQVc7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgaW5wdXQsIG1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9pY29uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmR3LWNoZWNrYm94JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0ljb25Db21wb25lbnQsIE5nQ2xhc3NdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBDaGVja2JveENvbXBvbmVudCxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLi9jaGVja2FibGUtaW5wdXQuc2NzcycsICcuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDaGVja2JveENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcHVibGljIGNoZWNrZWQgPSBtb2RlbChmYWxzZSk7XG4gIHB1YmxpYyBzd2l0Y2ggPSBpbnB1dChmYWxzZSk7XG4gIHB1YmxpYyBkaXNhYmxlZCA9IGlucHV0KGZhbHNlKTtcbiAgcHVibGljIGVycm9yID0gaW5wdXQoZmFsc2UpO1xuICBwdWJsaWMgaW5kZXRlcm1pbmF0ZSA9IGlucHV0KGZhbHNlKTtcbiAgcHVibGljIHJlcXVpcmVkID0gaW5wdXQoZmFsc2UpO1xuXG4gIHB1YmxpYyB1dWlkID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNoZWNrZWQnKVxuICBwdWJsaWMgZ2V0IGNoZWNrZWRDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jaGVja2VkKCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRpc2FibGVkJylcbiAgcHVibGljIGdldCBkaXNhYmxlZENsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkKCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmluZGV0ZXJtaW5hdGUnKVxuICBwdWJsaWMgZ2V0IGluZGV0ZXJtaW5hdGVDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbmRldGVybWluYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgb25DbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jaGVja2VkLnNldCghdGhpcy5jaGVja2VkKCkpO1xuICB9XG5cbiAgcHVibGljIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5rZXkgIT09ICdFbnRlcicgfHwgdGhpcy5kaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jaGVja2VkLnNldCghdGhpcy5jaGVja2VkKCkpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tlZC5zZXQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tlZC5zdWJzY3JpYmUoZm4pO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKCk6IHZvaWQge1xuICAgIC8vIG5vb3BcbiAgfVxufVxuIiwiPGlucHV0XG4gIHR5cGU9XCJjaGVja2JveFwiXG4gIFtpZF09XCInY2hlY2tib3gtJyArIHV1aWRcIlxuICBbY2hlY2tlZF09XCJjaGVja2VkKClcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gIFtyZXF1aXJlZF09XCJyZXF1aXJlZCgpXCJcbiAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbi8+XG48ZGl2XG4gIFtuZ0NsYXNzXT1cInsgZXJyb3I6IGVycm9yKCksIGNoZWNrYm94OiAhc3dpdGNoKCksIHN3aXRjaDogc3dpdGNoKCkgfVwiXG4gIHJvbGU9XCJjaGVja2JveFwiXG4gIFthdHRyLmFyaWEtY2hlY2tlZF09XCJpbmRldGVybWluYXRlKCkgPyAnbWl4ZWQnIDogY2hlY2tlZCgpXCJcbiAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIidjaGVja2JveC1sYWJlbC0nICsgdXVpZFwiXG4gIChjbGljayk9XCJvbkNsaWNrKClcIlxuICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gIFt0YWJpbmRleF09XCJkaXNhYmxlZCgpID8gLTEgOiAwXCJcbj5cbiAgQGlmICghc3dpdGNoKCkpIHtcbiAgICBAaWYgKGNoZWNrZWQoKSkge1xuICAgICAgPG5kdy1pY29uPmNoZWNrPC9uZHctaWNvbj5cbiAgICB9IEBlbHNlIGlmIChpbmRldGVybWluYXRlKCkpIHtcbiAgICAgIDxuZHctaWNvbj5yZW1vdmU8L25kdy1pY29uPlxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgPHNwYW4gY2xhc3M9XCJzd2l0Y2gtaWNvblwiPlxuICAgICAgQGlmIChjaGVja2VkKCkpIHtcbiAgICAgICAgPG5kdy1pY29uPmNoZWNrPC9uZHctaWNvbj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8bmR3LWljb24+Y2xvc2U8L25kdy1pY29uPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cbiAgfVxuPC9kaXY+XG48bGFiZWxcbiAgaWQ9XCJjaGVja2JveC1sYWJlbC17eyB1dWlkIH19XCJcbiAgdGFiaW5kZXg9XCItMVwiXG4gIFtmb3JdPVwiJ2NoZWNrYm94LScgKyB1dWlkXCJcbiAgW25nQ2xhc3NdPVwieyAnc3dpdGNoLXRleHQnOiBzd2l0Y2goKSB9XCJcbiAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbj5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvbGFiZWw+XG4iXX0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmR3L3NyYy9jb21wb25lbnRzL2Zvcm0tZmllbGQvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmR3L3NyYy9jb21wb25lbnRzL2Zvcm0tZmllbGQvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7O0FBaUIzQyxNQUFNLE9BQU8saUJBQWlCO0lBZjlCO1FBZ0JTLFlBQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsV0FBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixhQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLFVBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsa0JBQWEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsYUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4QixTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO0tBNkNuQztJQTNDQyxJQUNXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQ1csYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFDVyxrQkFBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQW9CO1FBQ25DLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDN0MsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQWM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEVBQTRCO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsT0FBTztJQUNULENBQUM7OEdBcERVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDJnQ0FYakI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsaUJBQWlCO2dCQUM5QixLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDaEJILGdtQ0E0Q0Esc3pORG5DWSxhQUFhLHVFQUFFLE9BQU87OzJGQVlyQixpQkFBaUI7a0JBZjdCLFNBQVM7K0JBQ0UsY0FBYyxjQUNaLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsYUFDdEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxtQkFBbUI7NEJBQzlCLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQWFwQyxZQUFZO3NCQUR0QixXQUFXO3VCQUFDLGVBQWU7Z0JBTWpCLGFBQWE7c0JBRHZCLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQU1sQixrQkFBa0I7c0JBRDVCLFdBQVc7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgaW5wdXQsIG1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9pY29uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmR3LWNoZWNrYm94JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0ljb25Db21wb25lbnQsIE5nQ2xhc3NdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBDaGVja2JveENvbXBvbmVudCxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLi9jaGVja2FibGUtaW5wdXQuc2NzcycsICcuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDaGVja2JveENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcHVibGljIGNoZWNrZWQgPSBtb2RlbChmYWxzZSk7XG4gIHB1YmxpYyBzd2l0Y2ggPSBpbnB1dChmYWxzZSk7XG4gIHB1YmxpYyBkaXNhYmxlZCA9IGlucHV0KGZhbHNlKTtcbiAgcHVibGljIGVycm9yID0gaW5wdXQoZmFsc2UpO1xuICBwdWJsaWMgaW5kZXRlcm1pbmF0ZSA9IGlucHV0KGZhbHNlKTtcbiAgcHVibGljIHJlcXVpcmVkID0gaW5wdXQoZmFsc2UpO1xuXG4gIHB1YmxpYyB1dWlkID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNoZWNrZWQnKVxuICBwdWJsaWMgZ2V0IGNoZWNrZWRDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jaGVja2VkKCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRpc2FibGVkJylcbiAgcHVibGljIGdldCBkaXNhYmxlZENsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkKCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmluZGV0ZXJtaW5hdGUnKVxuICBwdWJsaWMgZ2V0IGluZGV0ZXJtaW5hdGVDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbmRldGVybWluYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgb25DbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jaGVja2VkLnNldCghdGhpcy5jaGVja2VkKCkpO1xuICB9XG5cbiAgcHVibGljIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5rZXkgIT09ICdFbnRlcicgfHwgdGhpcy5kaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jaGVja2VkLnNldCghdGhpcy5jaGVja2VkKCkpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tlZC5zZXQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tlZC5zdWJzY3JpYmUoZm4pO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKCk6IHZvaWQge1xuICAgIC8vIG5vb3BcbiAgfVxufVxuIiwiPGlucHV0XG4gIHR5cGU9XCJjaGVja2JveFwiXG4gIFtpZF09XCInY2hlY2tib3gtJyArIHV1aWRcIlxuICBbY2hlY2tlZF09XCJjaGVja2VkKClcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gIFtyZXF1aXJlZF09XCJyZXF1aXJlZCgpXCJcbiAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbi8+XG48ZGl2XG4gIFtuZ0NsYXNzXT1cInsgZXJyb3I6IGVycm9yKCksIGNoZWNrYm94OiAhc3dpdGNoKCksIHN3aXRjaDogc3dpdGNoKCkgfVwiXG4gIHJvbGU9XCJjaGVja2JveFwiXG4gIFthdHRyLmFyaWEtY2hlY2tlZF09XCJpbmRldGVybWluYXRlKCkgPyAnbWl4ZWQnIDogY2hlY2tlZCgpXCJcbiAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIidjaGVja2JveC1sYWJlbC0nICsgdXVpZFwiXG4gIChjbGljayk9XCJvbkNsaWNrKClcIlxuICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gIFt0YWJpbmRleF09XCJkaXNhYmxlZCgpID8gLTEgOiAwXCJcbj5cbiAgQGlmICghc3dpdGNoKCkpIHtcbiAgICBAaWYgKGNoZWNrZWQoKSkge1xuICAgICAgPG5kdy1pY29uPmNoZWNrPC9uZHctaWNvbj5cbiAgICB9IEBlbHNlIGlmIChpbmRldGVybWluYXRlKCkpIHtcbiAgICAgIDxuZHctaWNvbj5yZW1vdmU8L25kdy1pY29uPlxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgPHNwYW4gY2xhc3M9XCJzd2l0Y2gtaWNvblwiPlxuICAgICAgQGlmIChjaGVja2VkKCkpIHtcbiAgICAgICAgPG5kdy1pY29uPmNoZWNrPC9uZHctaWNvbj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8bmR3LWljb24+Y2xvc2U8L25kdy1pY29uPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cbiAgfVxuPC9kaXY+XG48bGFiZWxcbiAgaWQ9XCJjaGVja2JveC1sYWJlbC17eyB1dWlkIH19XCJcbiAgdGFiaW5kZXg9XCItMVwiXG4gIFtmb3JdPVwiJ2NoZWNrYm94LScgKyB1dWlkXCJcbiAgW25nQ2xhc3NdPVwieyAnc3dpdGNoLXRleHQnOiBzd2l0Y2goKSB9XCJcbiAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbj5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvbGFiZWw+XG4iXX0=
@@ -3,10 +3,10 @@ import { IconComponent } from '../../icon';
3
3
  import * as i0 from "@angular/core";
4
4
  export class ErrorComponent {
5
5
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: ErrorComponent, isStandalone: true, selector: "ndw-error", ngImport: i0, template: "<ndw-icon>error</ndw-icon>\n<ng-content />\n", styles: [":host{align-content:center;align-items:center;color:var(--ndw-color-critical-500);display:grid;font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-xs);gap:var(--ndw-spacing-2xs);grid-template-columns:auto 1fr;height:1rem;line-height:100%}ndw-icon{font-size:.875rem}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "ndw-icon", inputs: ["interactive"] }] }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: ErrorComponent, isStandalone: true, selector: "ndw-error", ngImport: i0, template: "<ndw-icon>warning</ndw-icon>\n<ng-content />\n", styles: [":host{align-content:center;align-items:center;color:var(--ndw-color-critical-500);display:grid;font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-xs);gap:var(--ndw-spacing-2xs);grid-template-columns:auto 1fr;align-items:start}ndw-icon{font-size:.875rem}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "ndw-icon", inputs: ["size"] }] }); }
7
7
  }
8
8
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ErrorComponent, decorators: [{
9
9
  type: Component,
10
- args: [{ selector: 'ndw-error', standalone: true, imports: [IconComponent], template: "<ndw-icon>error</ndw-icon>\n<ng-content />\n", styles: [":host{align-content:center;align-items:center;color:var(--ndw-color-critical-500);display:grid;font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-xs);gap:var(--ndw-spacing-2xs);grid-template-columns:auto 1fr;height:1rem;line-height:100%}ndw-icon{font-size:.875rem}\n"] }]
10
+ args: [{ selector: 'ndw-error', standalone: true, imports: [IconComponent], template: "<ndw-icon>warning</ndw-icon>\n<ng-content />\n", styles: [":host{align-content:center;align-items:center;color:var(--ndw-color-critical-500);display:grid;font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-xs);gap:var(--ndw-spacing-2xs);grid-template-columns:auto 1fr;align-items:start}ndw-icon{font-size:.875rem}\n"] }]
11
11
  }] });
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmR3L3NyYy9jb21wb25lbnRzL2Zvcm0tZmllbGQvZXJyb3IvZXJyb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmR3L3NyYy9jb21wb25lbnRzL2Zvcm0tZmllbGQvZXJyb3IvZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQVMzQyxNQUFNLE9BQU8sY0FBYzs4R0FBZCxjQUFjO2tHQUFkLGNBQWMscUVDWDNCLDhDQUVBLHVWREtZLGFBQWE7OzJGQUlaLGNBQWM7a0JBUDFCLFNBQVM7K0JBQ0UsV0FBVyxjQUNULElBQUksV0FDUCxDQUFDLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaWNvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25kdy1lcnJvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJY29uQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Vycm9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2Vycm9yLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRXJyb3JDb21wb25lbnQge31cbiIsIjxuZHctaWNvbj5lcnJvcjwvbmR3LWljb24+XG48bmctY29udGVudCAvPlxuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmR3L3NyYy9jb21wb25lbnRzL2Zvcm0tZmllbGQvZXJyb3IvZXJyb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmR3L3NyYy9jb21wb25lbnRzL2Zvcm0tZmllbGQvZXJyb3IvZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQVMzQyxNQUFNLE9BQU8sY0FBYzs4R0FBZCxjQUFjO2tHQUFkLGNBQWMscUVDWDNCLGdEQUVBLDRVREtZLGFBQWE7OzJGQUlaLGNBQWM7a0JBUDFCLFNBQVM7K0JBQ0UsV0FBVyxjQUNULElBQUksV0FDUCxDQUFDLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaWNvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25kdy1lcnJvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJY29uQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Vycm9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2Vycm9yLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRXJyb3JDb21wb25lbnQge31cbiIsIjxuZHctaWNvbj53YXJuaW5nPC9uZHctaWNvbj5cbjxuZy1jb250ZW50IC8+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQtdGV4dC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZHcvc3JjL2NvbXBvbmVudHMvZm9ybS1maWVsZC9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC10ZXh0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBGaWxlVXBsb2FkVGV4dCB7XG4gIGRyYWdUZXh0OiBzdHJpbmc7XG4gIGRyYWdPdmVyVGV4dDogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,210 @@
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.incorrectFileType = model(false);
18
+ this.incorrectFileSize = model(false);
19
+ this.canEdit = computed(() => !this.selectedFile() && !this.disabled() && !this.readonly());
20
+ }
21
+ get tabindexAttr() {
22
+ return !this.canEdit() ? -1 : 0;
23
+ }
24
+ get hasError() {
25
+ return this.error();
26
+ }
27
+ get isDisabled() {
28
+ return this.disabled();
29
+ }
30
+ get isReadonly() {
31
+ return this.readonly();
32
+ }
33
+ get isDragging() {
34
+ return this.draggingOver();
35
+ }
36
+ get hasSelectedFile() {
37
+ return this.selectedFile() ? true : false;
38
+ }
39
+ onKeyDown(event) {
40
+ if (event.key !== 'Enter' && event.key !== ' ') {
41
+ return;
42
+ }
43
+ const target = event.target;
44
+ if (target.tagName.toLowerCase() === 'button') {
45
+ return;
46
+ }
47
+ if (this.canEdit()) {
48
+ this.fileInputElement().nativeElement.click();
49
+ }
50
+ }
51
+ onClick() {
52
+ if (this.canEdit()) {
53
+ this.fileInputElement().nativeElement.click();
54
+ }
55
+ }
56
+ onDragLeave(event) {
57
+ event?.preventDefault();
58
+ this.draggingOver.set(false);
59
+ }
60
+ onDragOver(event) {
61
+ event?.preventDefault();
62
+ if (this.canEdit()) {
63
+ this.draggingOver.set(true);
64
+ }
65
+ }
66
+ onDragEnter(event) {
67
+ event?.preventDefault();
68
+ if (this.canEdit()) {
69
+ this.draggingOver.set(true);
70
+ }
71
+ }
72
+ onDrop(event) {
73
+ event.preventDefault();
74
+ if (this.canEdit()) {
75
+ const file = event.dataTransfer?.files[0];
76
+ if (file) {
77
+ this.selectFile(file);
78
+ }
79
+ this.draggingOver.set(false);
80
+ }
81
+ }
82
+ onDownloadFileClick() {
83
+ const url = window.URL.createObjectURL(this.selectedFile());
84
+ const linkElement = document.createElement('a');
85
+ linkElement.href = url;
86
+ linkElement.download = this.selectedFile().name;
87
+ document.body.appendChild(linkElement);
88
+ linkElement.click();
89
+ document.body.removeChild(linkElement);
90
+ window.URL.revokeObjectURL(url);
91
+ }
92
+ onDeleteClick(event) {
93
+ event?.stopPropagation();
94
+ this.resetFile();
95
+ this.incorrectFileType.set(false);
96
+ this.incorrectFileSize.set(false);
97
+ }
98
+ displayText() {
99
+ if (!this.selectedFile()) {
100
+ return this.draggingOver()
101
+ ? this.fileUploadText().dragOverText
102
+ : this.fileUploadText().dragText;
103
+ }
104
+ else {
105
+ return '';
106
+ }
107
+ }
108
+ onFileSelected(event) {
109
+ if (this.canEdit()) {
110
+ const inputElement = event.target;
111
+ if (inputElement.files) {
112
+ const file = inputElement.files[0];
113
+ this.selectFile(file);
114
+ }
115
+ }
116
+ }
117
+ selectFile(file) {
118
+ if (file) {
119
+ if (!this.correctFileType(file.type)) {
120
+ this.resetFile();
121
+ this.incorrectFileSize.set(false);
122
+ this.incorrectFileType.set(true);
123
+ return;
124
+ }
125
+ if (!this.correctFileSize(file.size)) {
126
+ this.resetFile();
127
+ this.incorrectFileType.set(false);
128
+ this.incorrectFileSize.set(true);
129
+ return;
130
+ }
131
+ this.incorrectFileSize.set(false);
132
+ this.incorrectFileType.set(false);
133
+ this.selectedFile.set(file);
134
+ }
135
+ }
136
+ resetFile() {
137
+ this.selectedFile.set(null);
138
+ this.fileInputElement().nativeElement.value = '';
139
+ }
140
+ correctFileSize(fileSize) {
141
+ return this.maxFileSizeInBytes() > fileSize;
142
+ }
143
+ correctFileType(fileType) {
144
+ return this.allowedFileTypeRegex()?.test(fileType) ? true : false;
145
+ }
146
+ writeValue(value) {
147
+ this.selectedFile.set(value);
148
+ }
149
+ registerOnChange(fn) {
150
+ this.selectedFile.subscribe(fn);
151
+ }
152
+ registerOnTouched() {
153
+ // noop
154
+ }
155
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
156
+ 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 }, 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", 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.disabled": "this.isDisabled", "class.readonly": "this.isReadonly", "class.dragging": "this.isDragging", "class.file-selected": "this.hasSelectedFile" } }, providers: [
157
+ {
158
+ provide: NG_VALUE_ACCESSOR,
159
+ useExisting: FileUploadComponent,
160
+ multi: true,
161
+ },
162
+ ], 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.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-grey-100);border:var(--ndw-border-size-sm) solid var(--ndw-color-grey-300);color:var(--ndw-color-secondary-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"] }] }); }
163
+ }
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FileUploadComponent, decorators: [{
165
+ type: Component,
166
+ args: [{ selector: 'ndw-file-upload', standalone: true, imports: [IconComponent], providers: [
167
+ {
168
+ provide: NG_VALUE_ACCESSOR,
169
+ useExisting: FileUploadComponent,
170
+ multi: true,
171
+ },
172
+ ], 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.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-grey-100);border:var(--ndw-border-size-sm) solid var(--ndw-color-grey-300);color:var(--ndw-color-secondary-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"] }]
173
+ }], propDecorators: { tabindexAttr: [{
174
+ type: HostBinding,
175
+ args: ['attr.tabindex']
176
+ }], hasError: [{
177
+ type: HostBinding,
178
+ args: ['class.error']
179
+ }], isDisabled: [{
180
+ type: HostBinding,
181
+ args: ['class.disabled']
182
+ }], isReadonly: [{
183
+ type: HostBinding,
184
+ args: ['class.readonly']
185
+ }], isDragging: [{
186
+ type: HostBinding,
187
+ args: ['class.dragging']
188
+ }], hasSelectedFile: [{
189
+ type: HostBinding,
190
+ args: ['class.file-selected']
191
+ }], onKeyDown: [{
192
+ type: HostListener,
193
+ args: ['keydown', ['$event']]
194
+ }], onClick: [{
195
+ type: HostListener,
196
+ args: ['click']
197
+ }], onDragLeave: [{
198
+ type: HostListener,
199
+ args: ['dragleave', ['$event']]
200
+ }], onDragOver: [{
201
+ type: HostListener,
202
+ args: ['dragover', ['$event']]
203
+ }], onDragEnter: [{
204
+ type: HostListener,
205
+ args: ['dragenter', ['$event']]
206
+ }], onDrop: [{
207
+ type: HostListener,
208
+ args: ['drop', ['$event']]
209
+ }] } });
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmR3L3NyYy9jb21wb25lbnRzL2Zvcm0tZmllbGQvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmR3L3NyYy9jb21wb25lbnRzL2Zvcm0tZmllbGQvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLFNBQVMsRUFDVCxLQUFLLEVBQ0wsS0FBSyxFQUVMLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFnQnpFLE1BQU0sT0FBTyxtQkFBbUI7SUFkaEM7UUFla0IscUJBQWdCLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBK0IsV0FBVyxDQUFDLENBQUM7UUFDakYseUJBQW9CLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDdkMsbUJBQWMsR0FBRyxLQUFLLENBQWlCLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzRSxlQUFVLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZCLHVCQUFrQixHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxhQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLGFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsaUJBQVksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsaUJBQVks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QzFCSCw0eUJBK0JBLHF6R0RkWSxhQUFhOzsyRkFXWixtQkFBbUI7a0JBZC9CLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsYUFBYSxDQUFDLGFBR2I7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxxQkFBcUI7NEJBQ2hDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQW9CVSxZQUFZO3NCQUR0QixXQUFXO3VCQUFDLGVBQWU7Z0JBTWpCLFFBQVE7c0JBRGxCLFdBQVc7dUJBQUMsYUFBYTtnQkFNZixVQUFVO3NCQURwQixXQUFXO3VCQUFDLGdCQUFnQjtnQkFNbEIsVUFBVTtzQkFEcEIsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBTWxCLFVBQVU7c0JBRHBCLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQU1sQixlQUFlO3NCQUR6QixXQUFXO3VCQUFDLHFCQUFxQjtnQkFNM0IsU0FBUztzQkFEZixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFpQjVCLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPO2dCQVFkLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU85QixVQUFVO3NCQURoQixZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFTN0IsV0FBVztzQkFEakIsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUzlCLE1BQU07c0JBRFosWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIHZpZXdDaGlsZCxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBFbGVtZW50UmVmLFxuICBjb21wdXRlZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkVGV4dCB9IGZyb20gJy4vZmlsZS11cGxvYWQtdGV4dC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ljb24nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZHctZmlsZS11cGxvYWQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSWNvbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuc2NzcycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IEZpbGVVcGxvYWRDb21wb25lbnQsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsZUlucHV0RWxlbWVudCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PignZmlsZUlucHV0Jyk7XG4gIHB1YmxpYyByZWFkb25seSBhbGxvd2VkRmlsZVR5cGVSZWdleCA9IGlucHV0PFJlZ0V4cD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGZpbGVVcGxvYWRUZXh0ID0gaW5wdXQ8RmlsZVVwbG9hZFRleHQ+KHsgZHJhZ1RleHQ6ICcnLCBkcmFnT3ZlclRleHQ6ICcnIH0pO1xuICBwdWJsaWMgcmVhZG9ubHkgdXBsb2FkRGF0ZSA9IGlucHV0KCcnKTtcbiAgcHVibGljIHJlYWRvbmx5IG1heEZpbGVTaXplSW5CeXRlcyA9IGlucHV0KDEwMDAwMDApO1xuICBwdWJsaWMgcmVhZG9ubHkgZGlzYWJsZWQgPSBpbnB1dChmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSByZWFkb25seSA9IGlucHV0KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGRyYWdnaW5nT3ZlciA9IG1vZGVsKGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkRmlsZSA9IG1vZGVsPEZpbGUgfCBudWxsPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgZXJyb3IgPSBtb2RlbChmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBpbmNvcnJlY3RGaWxlVHlwZSA9IG1vZGVsKGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGluY29ycmVjdEZpbGVTaXplID0gbW9kZWwoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNhbkVkaXQgPSBjb21wdXRlZChcbiAgICAoKSA9PiAhdGhpcy5zZWxlY3RlZEZpbGUoKSAmJiAhdGhpcy5kaXNhYmxlZCgpICYmICF0aGlzLnJlYWRvbmx5KCksXG4gICk7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JylcbiAgcHVibGljIGdldCB0YWJpbmRleEF0dHIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gIXRoaXMuY2FuRWRpdCgpID8gLTEgOiAwO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5lcnJvcicpXG4gIHB1YmxpYyBnZXQgaGFzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3IoKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZGlzYWJsZWQnKVxuICBwdWJsaWMgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQoKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucmVhZG9ubHknKVxuICBwdWJsaWMgZ2V0IGlzUmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVhZG9ubHkoKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZHJhZ2dpbmcnKVxuICBwdWJsaWMgZ2V0IGlzRHJhZ2dpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZHJhZ2dpbmdPdmVyKCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZpbGUtc2VsZWN0ZWQnKVxuICBwdWJsaWMgZ2V0IGhhc1NlbGVjdGVkRmlsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEZpbGUoKSA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSAhPT0gJ0VudGVyJyAmJiBldmVudC5rZXkgIT09ICcgJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAodGFyZ2V0LnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2J1dHRvbicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jYW5FZGl0KCkpIHtcbiAgICAgIHRoaXMuZmlsZUlucHV0RWxlbWVudCgpLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIHB1YmxpYyBvbkNsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhbkVkaXQoKSkge1xuICAgICAgdGhpcy5maWxlSW5wdXRFbGVtZW50KCkubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5kcmFnZ2luZ092ZXIuc2V0KGZhbHNlKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICh0aGlzLmNhbkVkaXQoKSkge1xuICAgICAgdGhpcy5kcmFnZ2luZ092ZXIuc2V0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbnRlcicsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkRyYWdFbnRlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKHRoaXMuY2FuRWRpdCgpKSB7XG4gICAgICB0aGlzLmRyYWdnaW5nT3Zlci5zZXQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKHRoaXMuY2FuRWRpdCgpKSB7XG4gICAgICBjb25zdCBmaWxlOiBGaWxlIHwgdW5kZWZpbmVkID0gZXZlbnQuZGF0YVRyYW5zZmVyPy5maWxlc1swXTtcbiAgICAgIGlmIChmaWxlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0RmlsZShmaWxlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZHJhZ2dpbmdPdmVyLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uRG93bmxvYWRGaWxlQ2xpY2soKTogdm9pZCB7XG4gICAgY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwodGhpcy5zZWxlY3RlZEZpbGUoKSEpO1xuICAgIGNvbnN0IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGxpbmtFbGVtZW50LmhyZWYgPSB1cmw7XG4gICAgbGlua0VsZW1lbnQuZG93bmxvYWQgPSB0aGlzLnNlbGVjdGVkRmlsZSgpIS5uYW1lO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGlua0VsZW1lbnQpO1xuICAgIGxpbmtFbGVtZW50LmNsaWNrKCk7XG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rRWxlbWVudCk7XG4gICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkRlbGV0ZUNsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnJlc2V0RmlsZSgpO1xuICAgIHRoaXMuaW5jb3JyZWN0RmlsZVR5cGUuc2V0KGZhbHNlKTtcbiAgICB0aGlzLmluY29ycmVjdEZpbGVTaXplLnNldChmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgZGlzcGxheVRleHQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRGaWxlKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmRyYWdnaW5nT3ZlcigpXG4gICAgICAgID8gdGhpcy5maWxlVXBsb2FkVGV4dCgpLmRyYWdPdmVyVGV4dFxuICAgICAgICA6IHRoaXMuZmlsZVVwbG9hZFRleHQoKS5kcmFnVGV4dDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkZpbGVTZWxlY3RlZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jYW5FZGl0KCkpIHtcbiAgICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgaWYgKGlucHV0RWxlbWVudC5maWxlcykge1xuICAgICAgICBjb25zdCBmaWxlOiBGaWxlID0gaW5wdXRFbGVtZW50LmZpbGVzWzBdO1xuICAgICAgICB0aGlzLnNlbGVjdEZpbGUoZmlsZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RGaWxlKGZpbGU6IEZpbGUpOiB2b2lkIHtcbiAgICBpZiAoZmlsZSkge1xuICAgICAgaWYgKCF0aGlzLmNvcnJlY3RGaWxlVHlwZShmaWxlLnR5cGUpKSB7XG4gICAgICAgIHRoaXMucmVzZXRGaWxlKCk7XG4gICAgICAgIHRoaXMuaW5jb3JyZWN0RmlsZVNpemUuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5pbmNvcnJlY3RGaWxlVHlwZS5zZXQodHJ1ZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLmNvcnJlY3RGaWxlU2l6ZShmaWxlLnNpemUpKSB7XG4gICAgICAgIHRoaXMucmVzZXRGaWxlKCk7XG4gICAgICAgIHRoaXMuaW5jb3JyZWN0RmlsZVR5cGUuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5pbmNvcnJlY3RGaWxlU2l6ZS5zZXQodHJ1ZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5pbmNvcnJlY3RGaWxlU2l6ZS5zZXQoZmFsc2UpO1xuICAgICAgdGhpcy5pbmNvcnJlY3RGaWxlVHlwZS5zZXQoZmFsc2UpO1xuXG4gICAgICB0aGlzLnNlbGVjdGVkRmlsZS5zZXQoZmlsZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNldEZpbGUoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEZpbGUuc2V0KG51bGwpO1xuICAgIHRoaXMuZmlsZUlucHV0RWxlbWVudCgpLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgfVxuXG4gIHByaXZhdGUgY29ycmVjdEZpbGVTaXplKGZpbGVTaXplOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tYXhGaWxlU2l6ZUluQnl0ZXMoKSA+IGZpbGVTaXplO1xuICB9XG5cbiAgcHJpdmF0ZSBjb3JyZWN0RmlsZVR5cGUoZmlsZVR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFsbG93ZWRGaWxlVHlwZVJlZ2V4KCk/LnRlc3QoZmlsZVR5cGUpID8gdHJ1ZSA6IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IEZpbGUpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRmlsZS5zZXQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogRmlsZSB8IG51bGwgfCB1bmRlZmluZWQpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRmlsZS5zdWJzY3JpYmUoZm4pO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKCk6IHZvaWQge1xuICAgIC8vIG5vb3BcbiAgfVxufVxuIiwiQGlmICghZHJhZ2dpbmdPdmVyKCkgJiYgIXNlbGVjdGVkRmlsZSgpKSB7XG4gIDxuZHctaWNvbj5jbG91ZF91cGxvYWQ8L25kdy1pY29uPlxufSBAZWxzZSBpZiAoZHJhZ2dpbmdPdmVyKCkgJiYgIXNlbGVjdGVkRmlsZSgpKSB7XG4gIDxuZHctaWNvbj5wYWdlbGVzczwvbmR3LWljb24+XG59XG5cbnt7IGRpc3BsYXlUZXh0KCkgfX1cblxuQGlmIChzZWxlY3RlZEZpbGUoKSkge1xuICA8ZGl2IGNsYXNzPVwiZmlsZS1uYW1lXCI+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJmaWxlLW5hbWUtdGV4dFwiXG4gICAgICAoY2xpY2spPVwib25Eb3dubG9hZEZpbGVDbGljaygpXCJcbiAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uRG93bmxvYWRGaWxlQ2xpY2soKVwiXG4gICAgPlxuICAgICAge3sgc2VsZWN0ZWRGaWxlKCk/Lm5hbWUgfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxkaXYgY2xhc3M9XCJmaWxlLWRlbGV0ZS1pY29uXCI+XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJvbkRlbGV0ZUNsaWNrKCRldmVudClcIiAoa2V5ZG93bi5lbnRlcik9XCJvbkRlbGV0ZUNsaWNrKCRldmVudClcIj5cbiAgICAgICAgPG5kdy1pY29uPmRlbGV0ZTwvbmR3LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPHAgY2xhc3M9XCJmaWxlLWRhdGVcIj5cbiAgICB7eyB1cGxvYWREYXRlKCkgfX1cbiAgPC9wPlxufVxuXG48aW5wdXQgdHlwZT1cImZpbGVcIiAjZmlsZUlucHV0IGhpZGRlbiBhcmlhLWhpZGRlbj1cInRydWVcIiAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIiAvPlxuIl19
@@ -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,6 +1,6 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { Component, computed, contentChild, effect, input } from '@angular/core';
3
- import { IconComponent } from '../icon';
3
+ import { ActionIconComponent, IconComponent } from '../icon';
4
4
  import { TooltipDirective } from '../tooltip';
5
5
  import { CheckboxGroupComponent } from './checkbox-group';
6
6
  import { ErrorComponent } from './error';
@@ -17,7 +17,10 @@ export class FormFieldComponent {
17
17
  this.input = contentChild(InputDirective);
18
18
  this.radioGroup = contentChild(RadioGroupComponent);
19
19
  this.checkboxGroup = contentChild(CheckboxGroupComponent);
20
- this.label = input();
20
+ this.label = input.required();
21
+ this.clearSearchAriaLabel = input();
22
+ this.suffixIconAriaLabel = input();
23
+ this.hideLabel = input(false);
21
24
  this.disabled = input(false);
22
25
  this.error = input();
23
26
  this.info = input();
@@ -26,6 +29,7 @@ export class FormFieldComponent {
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) {
@@ -35,6 +39,7 @@ export class FormFieldComponent {
35
39
  this.setInputDisabledState(input);
36
40
  this.setInputErrorState(input);
37
41
  this.setInputId(input);
42
+ this.setAriaDescribedBy(input);
38
43
  });
39
44
  }
40
45
  clearInput() {
@@ -45,6 +50,16 @@ export class FormFieldComponent {
45
50
  input.element.dispatchEvent(new Event('input'));
46
51
  }
47
52
  }
53
+ onSuffixIconClick() {
54
+ const inputElement = this.input()?.element;
55
+ if (!inputElement) {
56
+ return;
57
+ }
58
+ inputElement.focus();
59
+ if ('showPicker' in inputElement) {
60
+ inputElement.showPicker();
61
+ }
62
+ }
48
63
  addInputTypeBasedClass(input) {
49
64
  const element = input.element;
50
65
  if (!element) {
@@ -66,6 +81,9 @@ export class FormFieldComponent {
66
81
  setInputId(input) {
67
82
  input.id = `input-${this.uuid}`;
68
83
  }
84
+ setAriaDescribedBy(input) {
85
+ input.ariaDescribedBy = this.descriptionUuid;
86
+ }
69
87
  setInputPrefix() {
70
88
  const input = this.input();
71
89
  if (!input) {
@@ -103,10 +121,17 @@ export class FormFieldComponent {
103
121
  return requiredInput || requiredCheckboxes || requiredRadioButtons || false;
104
122
  }
105
123
  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 }, info: { classPropertyName: "info", publicName: "info", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "input", first: true, predicate: InputDirective, descendants: true, isSignal: true }, { propertyName: "radioGroup", first: true, predicate: RadioGroupComponent, descendants: true, isSignal: true }, { propertyName: "checkboxGroup", first: true, predicate: CheckboxGroupComponent, descendants: true, isSignal: true }], ngImport: i0, template: "@if (required() || label() || tooltip()) {\n <label ndwLabel [for]=\"'input-' + uuid\">\n @if (required()) {\n <span class=\"required\"> * </span>\n }\n {{ label() }}\n @if (tooltip(); as tooltip) {\n <ndw-icon [ndwTooltip]=\"tooltip\">info</ndw-icon>\n }\n </label>\n}\n@if (inputPrefix(); as icon) {\n <ndw-icon class=\"prefix-input-icon\" [ngClass]=\"{ disabled: disabled() }\">{{ icon }}</ndw-icon>\n}\n@if (inputSuffix(); as icon) {\n <ndw-icon class=\"suffix-input-icon\" [ngClass]=\"{ disabled: disabled() }\">{{ icon }}</ndw-icon>\n}\n\n@if (input()?.element?.type === 'search' && input()?.element?.value !== '') {\n <ndw-icon\n class=\"suffix-input-icon\"\n [ngClass]=\"{ disabled: disabled(), clickable: !disabled() }\"\n (click)=\"clearInput()\"\n >\n close\n </ndw-icon>\n}\n\n<ng-content />\n\n@if (info(); as info) {\n <ndw-info>{{ info }}</ndw-info>\n}\n@if (error(); as error) {\n <ndw-error>{{ error }}</ndw-error>\n}\n", styles: [":host{color:var(--ndw-color-grey-700);display:grid;font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-sm);margin-bottom:var(--ndw-spacing-md);position:relative}ndw-error,ndw-info{margin-top:var(--ndw-spacing-2xs)}.prefix-input-icon,.suffix-input-icon{pointer-events:none;position:absolute;top:.625rem;font-size:var(--ndw-font-size-lg);z-index:1}.prefix-input-icon.disabled,.suffix-input-icon.disabled{color:var(--ndw-color-grey-300)}label~.prefix-input-icon,label~.suffix-input-icon{top:2.125rem}.prefix-input-icon{color:var(--ndw-color-grey-400);left:var(--ndw-spacing-sm)}.suffix-input-icon{color:var(--ndw-color-grey-400);right:var(--ndw-spacing-xs)}.suffix-input-icon.clickable{pointer-events:initial;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ErrorComponent, selector: "ndw-error" }, { kind: "component", type: IconComponent, selector: "ndw-icon", inputs: ["interactive"] }, { kind: "component", type: InfoComponent, selector: "ndw-info" }, { kind: "directive", type: TooltipDirective, selector: "[ndwTooltip]", inputs: ["ndwTooltip"] }] }); }
124
+ 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 }, suffixIconAriaLabel: { classPropertyName: "suffixIconAriaLabel", publicName: "suffixIconAriaLabel", 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 }, info: { classPropertyName: "info", publicName: "info", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "input", first: true, predicate: InputDirective, descendants: true, isSignal: true }, { propertyName: "radioGroup", first: true, predicate: RadioGroupComponent, descendants: true, isSignal: true }, { propertyName: "checkboxGroup", first: true, predicate: CheckboxGroupComponent, 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=\"prefix-input-icon\" [ngClass]=\"{ disabled: disabled() }\">\n {{ icon }}\n </ndw-icon>\n }\n @if (inputSuffix(); as icon) {\n <ndw-action-icon\n class=\"suffix-input-icon\"\n variant=\"grey\"\n [ngClass]=\"{ disabled: disabled() }\"\n [ariaLabel]=\"suffixIconAriaLabel() ?? ''\"\n (onClick)=\"onSuffixIconClick()\"\n >\n {{ icon }}\n </ndw-action-icon>\n }\n\n @if (input()?.element?.type === 'search' && input()?.element?.value !== '') {\n <ndw-action-icon\n class=\"suffix-input-icon\"\n variant=\"grey\"\n [ariaLabel]=\"clearSearchAriaLabel() ?? ''\"\n (onClick)=\"clearInput()\"\n >\n close\n </ndw-action-icon>\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</ng-template>\n\n<ng-template #labelTemplate>\n @if (required()) {\n <span class=\"required\"> * </span>\n }\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)}fieldset{border:0;margin:0;padding:0}fieldset legend{padding-inline:0}ndw-error,ndw-info{margin-top:var(--ndw-spacing-2xs)}.prefix-input-icon,.suffix-input-icon{position:absolute;z-index:1;font-size:var(--ndw-font-size-lg)}.prefix-input-icon.disabled,.suffix-input-icon.disabled{color:var(--ndw-color-grey-300)}.prefix-input-icon{top:.625rem;left:var(--ndw-spacing-sm);color:var(--ndw-color-grey-400)}label:not(.sr-only)~.prefix-input-icon{top:2.125rem}.suffix-input-icon{top:.2rem;right:var(--ndw-spacing-xs);color:var(--ndw-color-grey-400)}label:not(.sr-only)~.suffix-input-icon{top:1.7rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ErrorComponent, selector: "ndw-error" }, { kind: "component", type: IconComponent, selector: "ndw-icon", inputs: ["size"] }, { kind: "component", type: InfoComponent, selector: "ndw-info" }, { kind: "directive", type: TooltipDirective, selector: "[ndwTooltip]", inputs: ["ndwTooltip"] }, { kind: "component", type: ActionIconComponent, selector: "ndw-action-icon", inputs: ["ariaLabel", "variant", "buttonType", "disabled", "size"], outputs: ["onClick"] }] }); }
107
125
  }
108
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FormFieldComponent, decorators: [{
109
127
  type: Component,
110
- args: [{ selector: 'ndw-form-field', standalone: true, imports: [CommonModule, ErrorComponent, IconComponent, InfoComponent, TooltipDirective], template: "@if (required() || label() || tooltip()) {\n <label ndwLabel [for]=\"'input-' + uuid\">\n @if (required()) {\n <span class=\"required\"> * </span>\n }\n {{ label() }}\n @if (tooltip(); as tooltip) {\n <ndw-icon [ndwTooltip]=\"tooltip\">info</ndw-icon>\n }\n </label>\n}\n@if (inputPrefix(); as icon) {\n <ndw-icon class=\"prefix-input-icon\" [ngClass]=\"{ disabled: disabled() }\">{{ icon }}</ndw-icon>\n}\n@if (inputSuffix(); as icon) {\n <ndw-icon class=\"suffix-input-icon\" [ngClass]=\"{ disabled: disabled() }\">{{ icon }}</ndw-icon>\n}\n\n@if (input()?.element?.type === 'search' && input()?.element?.value !== '') {\n <ndw-icon\n class=\"suffix-input-icon\"\n [ngClass]=\"{ disabled: disabled(), clickable: !disabled() }\"\n (click)=\"clearInput()\"\n >\n close\n </ndw-icon>\n}\n\n<ng-content />\n\n@if (info(); as info) {\n <ndw-info>{{ info }}</ndw-info>\n}\n@if (error(); as error) {\n <ndw-error>{{ error }}</ndw-error>\n}\n", styles: [":host{color:var(--ndw-color-grey-700);display:grid;font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-sm);margin-bottom:var(--ndw-spacing-md);position:relative}ndw-error,ndw-info{margin-top:var(--ndw-spacing-2xs)}.prefix-input-icon,.suffix-input-icon{pointer-events:none;position:absolute;top:.625rem;font-size:var(--ndw-font-size-lg);z-index:1}.prefix-input-icon.disabled,.suffix-input-icon.disabled{color:var(--ndw-color-grey-300)}label~.prefix-input-icon,label~.suffix-input-icon{top:2.125rem}.prefix-input-icon{color:var(--ndw-color-grey-400);left:var(--ndw-spacing-sm)}.suffix-input-icon{color:var(--ndw-color-grey-400);right:var(--ndw-spacing-xs)}.suffix-input-icon.clickable{pointer-events:initial;cursor:pointer}\n"] }]
128
+ args: [{ selector: 'ndw-form-field', standalone: true, imports: [
129
+ CommonModule,
130
+ ErrorComponent,
131
+ IconComponent,
132
+ InfoComponent,
133
+ TooltipDirective,
134
+ ActionIconComponent,
135
+ ], 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=\"prefix-input-icon\" [ngClass]=\"{ disabled: disabled() }\">\n {{ icon }}\n </ndw-icon>\n }\n @if (inputSuffix(); as icon) {\n <ndw-action-icon\n class=\"suffix-input-icon\"\n variant=\"grey\"\n [ngClass]=\"{ disabled: disabled() }\"\n [ariaLabel]=\"suffixIconAriaLabel() ?? ''\"\n (onClick)=\"onSuffixIconClick()\"\n >\n {{ icon }}\n </ndw-action-icon>\n }\n\n @if (input()?.element?.type === 'search' && input()?.element?.value !== '') {\n <ndw-action-icon\n class=\"suffix-input-icon\"\n variant=\"grey\"\n [ariaLabel]=\"clearSearchAriaLabel() ?? ''\"\n (onClick)=\"clearInput()\"\n >\n close\n </ndw-action-icon>\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</ng-template>\n\n<ng-template #labelTemplate>\n @if (required()) {\n <span class=\"required\"> * </span>\n }\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)}fieldset{border:0;margin:0;padding:0}fieldset legend{padding-inline:0}ndw-error,ndw-info{margin-top:var(--ndw-spacing-2xs)}.prefix-input-icon,.suffix-input-icon{position:absolute;z-index:1;font-size:var(--ndw-font-size-lg)}.prefix-input-icon.disabled,.suffix-input-icon.disabled{color:var(--ndw-color-grey-300)}.prefix-input-icon{top:.625rem;left:var(--ndw-spacing-sm);color:var(--ndw-color-grey-400)}label:not(.sr-only)~.prefix-input-icon{top:2.125rem}.suffix-input-icon{top:.2rem;right:var(--ndw-spacing-xs);color:var(--ndw-color-grey-400)}label:not(.sr-only)~.suffix-input-icon{top:1.7rem}\n"] }]
111
136
  }], 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
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZHcvc3JjL2NvbXBvbmVudHMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25kdy9zcmMvY29tcG9uZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUVwRCxNQUFNLHdCQUF3QixHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3BELE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsSUFB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QUssQ0FBQztJQUM5RSxDQUFDOzhHQXJJVSxrQkFBa0I7a0dBQWxCLGtCQUFrQix1cUNBQ0QsY0FBYyw2RkFDVCxtQkFBbUIsZ0dBQ2hCLHNCQUFzQixnRUNqQzVELDB0REE4REEsOHpCRDFDSSxZQUFZLG9TQUNaLGNBQWMsc0RBQ2QsYUFBYSx1RUFDYixhQUFhLHFEQUNiLGdCQUFnQixpRkFDaEIsbUJBQW1COzsyRkFLVixrQkFBa0I7a0JBZDlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixtQkFBbUI7cUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGNvbnRlbnRDaGlsZCwgZWZmZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBY3Rpb25JY29uQ29tcG9uZW50LCBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbic7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vdG9vbHRpcCc7XG5cbmltcG9ydCB7IENoZWNrYm94R3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94LWdyb3VwJztcbmltcG9ydCB7IEVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi9lcnJvcic7XG5pbXBvcnQgeyBGb3JtRmllbGRFbGVtZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IEluZm9Db21wb25lbnQgfSBmcm9tICcuL2luZm8nO1xuaW1wb3J0IHsgSW5wdXREaXJlY3RpdmUsIElucHV0VHlwZSB9IGZyb20gJy4vaW5wdXQnO1xuaW1wb3J0IHsgUmFkaW9Hcm91cENvbXBvbmVudCB9IGZyb20gJy4vcmFkaW8tZ3JvdXAnO1xuXG5jb25zdCBpbnB1dFR5cGVzV2l0aFByZWZpeEljb24gPSBbSW5wdXRUeXBlLlNlYXJjaF07XG5jb25zdCBpbnB1dFR5cGVzV2l0aFN1ZmZpeEljb24gPSBbSW5wdXRUeXBlLkRhdGUsIElucHV0VHlwZS5Nb250aCwgSW5wdXRUeXBlLlRpbWUsIElucHV0VHlwZS5XZWVrXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmR3LWZvcm0tZmllbGQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEVycm9yQ29tcG9uZW50LFxuICAgIEljb25Db21wb25lbnQsXG4gICAgSW5mb0NvbXBvbmVudCxcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxuICAgIEFjdGlvbkljb25Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2Zvcm0tZmllbGQuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRDb21wb25lbnQge1xuICBwdWJsaWMgaW5wdXQgPSBjb250ZW50Q2hpbGQoSW5wdXREaXJlY3RpdmUpO1xuICBwdWJsaWMgcmFkaW9Hcm91cCA9IGNvbnRlbnRDaGlsZChSYWRpb0dyb3VwQ29tcG9uZW50KTtcbiAgcHVibGljIGNoZWNrYm94R3JvdXAgPSBjb250ZW50Q2hpbGQoQ2hlY2tib3hHcm91cENvbXBvbmVudCk7XG5cbiAgcHVibGljIGxhYmVsID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICBwdWJsaWMgY2xlYXJTZWFyY2hBcmlhTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHB1YmxpYyBzdWZmaXhJY29uQXJpYUxhYmVsID0gaW5wdXQ8c3RyaW5nPigpO1xuICBwdWJsaWMgaGlkZUxhYmVsID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHB1YmxpYyBkaXNhYmxlZCA9IGlucHV0KGZhbHNlKTtcbiAgcHVibGljIGVycm9yID0gaW5wdXQ8c3RyaW5nPigpO1xuICBwdWJsaWMgaW5mbyA9IGlucHV0PHN0cmluZz4oKTtcbiAgcHVibGljIHRvb2x0aXAgPSBpbnB1dCgnJyk7XG5cbiAgcHVibGljIHJlcXVpcmVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zZXRSZXF1aXJlZFN0YXRlKCkpO1xuICBwdWJsaWMgaW5wdXRQcmVmaXggPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNldElucHV0UHJlZml4KCkpO1xuICBwdWJsaWMgaW5wdXRTdWZmaXggPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNldElucHV0U3VmZml4KCkpO1xuXG4gIHB1YmxpYyB1dWlkID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcbiAgcHVibGljIGRlc2NyaXB0aW9uVXVpZCA9IGNyeXB0by5yYW5kb21VVUlEKCk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXQoKTtcbiAgICAgIGlmICghaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmFkZElucHV0VHlwZUJhc2VkQ2xhc3MoaW5wdXQpO1xuICAgICAgdGhpcy5zZXRJbnB1dERpc2FibGVkU3RhdGUoaW5wdXQpO1xuICAgICAgdGhpcy5zZXRJbnB1dEVycm9yU3RhdGUoaW5wdXQpO1xuICAgICAgdGhpcy5zZXRJbnB1dElkKGlucHV0KTtcbiAgICAgIHRoaXMuc2V0QXJpYURlc2NyaWJlZEJ5KGlucHV0KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcklucHV0KCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5pbnB1dCgpO1xuICAgIGlmIChpbnB1dCkge1xuICAgICAgaW5wdXQuZWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgLy8gVHJpZ2dlciAnbmR3LWNoYW5nZWQnIGF0dHJpYnV0ZSB1cGRhdGUgb24gdGhlIGlucHV0IGVsZW1lbnRcbiAgICAgIGlucHV0LmVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JykpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvblN1ZmZpeEljb25DbGljaygpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSB0aGlzLmlucHV0KCk/LmVsZW1lbnQ7XG4gICAgaWYgKCFpbnB1dEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpbnB1dEVsZW1lbnQuZm9jdXMoKTtcblxuICAgIGlmICgnc2hvd1BpY2tlcicgaW4gaW5wdXRFbGVtZW50KSB7XG4gICAgICBpbnB1dEVsZW1lbnQuc2hvd1BpY2tlcigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkSW5wdXRUeXBlQmFzZWRDbGFzcyhpbnB1dDogSW5wdXREaXJlY3RpdmUpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gaW5wdXQuZWxlbWVudDtcbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpbnB1dFR5cGVzV2l0aFByZWZpeEljb24uaW5jbHVkZXMoZWxlbWVudC50eXBlIGFzIElucHV0VHlwZSlcbiAgICAgID8gZWxlbWVudC5jbGFzc0xpc3QuYWRkKCdwcmVmaXgtaWNvbicpXG4gICAgICA6IGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgncHJlZml4LWljb24nKTtcblxuICAgIGlucHV0VHlwZXNXaXRoU3VmZml4SWNvbi5pbmNsdWRlcyhlbGVtZW50LnR5cGUgYXMgSW5wdXRUeXBlKVxuICAgICAgPyBlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3N1ZmZpeC1pY29uJylcbiAgICAgIDogZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdzdWZmaXgtaWNvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRJbnB1dERpc2FibGVkU3RhdGUoaW5wdXQ6IElucHV0RGlyZWN0aXZlKTogdm9pZCB7XG4gICAgaW5wdXQuZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkKCk7XG4gIH1cblxuICBwcml2YXRlIHNldElucHV0RXJyb3JTdGF0ZShpbnB1dDogSW5wdXREaXJlY3RpdmUpOiB2b2lkIHtcbiAgICBpbnB1dC5lcnJvciA9ICEhdGhpcy5lcnJvcigpPy5sZW5ndGg7XG4gIH1cblxuICBwcml2YXRlIHNldElucHV0SWQoaW5wdXQ6IElucHV0RGlyZWN0aXZlKTogdm9pZCB7XG4gICAgaW5wdXQuaWQgPSBgaW5wdXQtJHt0aGlzLnV1aWR9YDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QXJpYURlc2NyaWJlZEJ5KGlucHV0OiBJbnB1dERpcmVjdGl2ZSk6IHZvaWQge1xuICAgIGlucHV0LmFyaWFEZXNjcmliZWRCeSA9IHRoaXMuZGVzY3JpcHRpb25VdWlkO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRJbnB1dFByZWZpeCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5pbnB1dCgpO1xuICAgIGlmICghaW5wdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBTZXQgdGhlIGlucHV0IGljb24gZm9yIHNlYXJjaCBpbnB1dHNcbiAgICByZXR1cm4gaW5wdXRUeXBlc1dpdGhQcmVmaXhJY29uLmluY2x1ZGVzKGlucHV0LmVsZW1lbnQudHlwZSBhcyBJbnB1dFR5cGUpXG4gICAgICA/ICdzZWFyY2gnXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5wdXRTdWZmaXgoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXQoKTtcbiAgICBpZiAoIWlucHV0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gU2V0IHRoZSBpbnB1dCBpY29uIGZvciBkYXRlIGlucHV0c1xuICAgIGlmIChpbnB1dFR5cGVzV2l0aFN1ZmZpeEljb24uaW5jbHVkZXMoaW5wdXQuZWxlbWVudC50eXBlIGFzIElucHV0VHlwZSkpIHtcbiAgICAgIHJldHVybiBpbnB1dC5lbGVtZW50LnR5cGUgPT09IElucHV0VHlwZS5UaW1lID8gJ3NjaGVkdWxlJyA6ICdjYWxlbmRhcl9tb250aCc7XG4gICAgfVxuXG4gICAgLy8gU2V0IHRoZSBpbnB1dCBpY29uIGZvciBzZWxlY3QgaW5wdXRzXG4gICAgaWYgKGlucHV0LmVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gRm9ybUZpZWxkRWxlbWVudC5TZWxlY3QpIHtcbiAgICAgIHJldHVybiAna2V5Ym9hcmRfYXJyb3dfZG93bic7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UmVxdWlyZWRTdGF0ZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjaGVja2JveEdyb3VwID0gdGhpcy5jaGVja2JveEdyb3VwKCk7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmlucHV0KCk7XG4gICAgY29uc3QgcmFkaW9Hcm91cCA9IHRoaXMucmFkaW9Hcm91cCgpO1xuXG4gICAgY29uc3QgcmVxdWlyZWRDaGVja2JveGVzID0gY2hlY2tib3hHcm91cD8uY2hlY2tib3hlcygpLnNvbWUoKGNoZWNrYm94KSA9PiBjaGVja2JveC5yZXF1aXJlZCgpKTtcbiAgICBjb25zdCByZXF1aXJlZElucHV0ID0gaW5wdXQ/LmVsZW1lbnQucmVxdWlyZWQ7XG4gICAgY29uc3QgcmVxdWlyZWRSYWRpb0J1dHRvbnMgPSByYWRpb0dyb3VwXG4gICAgICA/LnJhZGlvQnV0dG9ucygpXG4gICAgICAuc29tZSgocmFkaW9CdXR0b24pID0+IHJhZGlvQnV0dG9uLnJlcXVpcmVkKCkpO1xuXG4gICAgcmV0dXJuIHJlcXVpcmVkSW5wdXQgfHwgcmVxdWlyZWRDaGVja2JveGVzIHx8IHJlcXVpcmVkUmFkaW9CdXR0b25zIHx8IGZhbHNlO1xuICB9XG59XG4iLCJAaWYgKGlucHV0KCkgPT09IHVuZGVmaW5lZCkge1xuICA8ZmllbGRzZXQ+XG4gICAgPGxlZ2VuZCBuZHdMYWJlbCBbY2xhc3Muc3Itb25seV09XCJoaWRlTGFiZWwoKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsVGVtcGxhdGVcIiAvPlxuICAgIDwvbGVnZW5kPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWVsZFRlbXBsYXRlXCIgLz5cbiAgPC9maWVsZHNldD5cbn0gQGVsc2Uge1xuICA8bGFiZWwgbmR3TGFiZWwgW2F0dHIuZm9yXT1cImlucHV0KCkgPyAnaW5wdXQtJyArIHV1aWQgOiBudWxsXCIgW2NsYXNzLnNyLW9ubHldPVwiaGlkZUxhYmVsKClcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFiZWxUZW1wbGF0ZVwiIC8+XG4gIDwvbGFiZWw+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWVsZFRlbXBsYXRlXCIgLz5cbn1cblxuPG5nLXRlbXBsYXRlICNmaWVsZFRlbXBsYXRlPlxuICBAaWYgKGlucHV0UHJlZml4KCk7IGFzIGljb24pIHtcbiAgICA8bmR3LWljb24gY2xhc3M9XCJwcmVmaXgtaW5wdXQtaWNvblwiIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGRpc2FibGVkKCkgfVwiPlxuICAgICAge3sgaWNvbiB9fVxuICAgIDwvbmR3LWljb24+XG4gIH1cbiAgQGlmIChpbnB1dFN1ZmZpeCgpOyBhcyBpY29uKSB7XG4gICAgPG5kdy1hY3Rpb24taWNvblxuICAgICAgY2xhc3M9XCJzdWZmaXgtaW5wdXQtaWNvblwiXG4gICAgICB2YXJpYW50PVwiZ3JleVwiXG4gICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBkaXNhYmxlZCgpIH1cIlxuICAgICAgW2FyaWFMYWJlbF09XCJzdWZmaXhJY29uQXJpYUxhYmVsKCkgPz8gJydcIlxuICAgICAgKG9uQ2xpY2spPVwib25TdWZmaXhJY29uQ2xpY2soKVwiXG4gICAgPlxuICAgICAge3sgaWNvbiB9fVxuICAgIDwvbmR3LWFjdGlvbi1pY29uPlxuICB9XG5cbiAgQGlmIChpbnB1dCgpPy5lbGVtZW50Py50eXBlID09PSAnc2VhcmNoJyAmJiBpbnB1dCgpPy5lbGVtZW50Py52YWx1ZSAhPT0gJycpIHtcbiAgICA8bmR3LWFjdGlvbi1pY29uXG4gICAgICBjbGFzcz1cInN1ZmZpeC1pbnB1dC1pY29uXCJcbiAgICAgIHZhcmlhbnQ9XCJncmV5XCJcbiAgICAgIFthcmlhTGFiZWxdPVwiY2xlYXJTZWFyY2hBcmlhTGFiZWwoKSA/PyAnJ1wiXG4gICAgICAob25DbGljayk9XCJjbGVhcklucHV0KClcIlxuICAgID5cbiAgICAgIGNsb3NlXG4gICAgPC9uZHctYWN0aW9uLWljb24+XG4gIH1cblxuICA8bmctY29udGVudCAvPlxuXG4gIEBpZiAoaW5mbygpOyBhcyBpbmZvKSB7XG4gICAgPG5kdy1pbmZvIFtpZF09XCJkZXNjcmlwdGlvblV1aWRcIj57eyBpbmZvIH19PC9uZHctaW5mbz5cbiAgfVxuICBAaWYgKGVycm9yKCk7IGFzIGVycm9yKSB7XG4gICAgPG5kdy1lcnJvciByb2xlPVwiYWxlcnRcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj57eyBlcnJvciB9fTwvbmR3LWVycm9yPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xhYmVsVGVtcGxhdGU+XG4gIEBpZiAocmVxdWlyZWQoKSkge1xuICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4gKiA8L3NwYW4+XG4gIH1cbiAge3sgbGFiZWwoKSB9fVxuICBAaWYgKHRvb2x0aXAoKTsgYXMgdG9vbHRpcCkge1xuICAgIDxuZHctaWNvbiBbbmR3VG9vbHRpcF09XCJ0b29sdGlwXCI+aW5mbzwvbmR3LWljb24+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,10 +1,13 @@
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 './option-group';
8
10
  export * from './radio-button';
9
11
  export * from './radio-group';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZHcvc3JjL2NvbXBvbmVudHMvZm9ybS1maWVsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jaGVja2JveCc7XG5leHBvcnQgKiBmcm9tICcuL2NoZWNrYm94LWdyb3VwJztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3InO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9pbmZvJztcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9yYWRpby1idXR0b24nO1xuZXhwb3J0ICogZnJvbSAnLi9yYWRpby1ncm91cCc7XG4iXX0=
12
+ export * from './textarea';
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZHcvc3JjL2NvbXBvbmVudHMvZm9ybS1maWVsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NoZWNrYm94JztcbmV4cG9ydCAqIGZyb20gJy4vY2hlY2tib3gtZ3JvdXAnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvcic7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtdXBsb2FkJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vaW5mbyc7XG5leHBvcnQgKiBmcm9tICcuL2lucHV0JztcbmV4cG9ydCAqIGZyb20gJy4vb3B0aW9uLWdyb3VwJztcbmV4cG9ydCAqIGZyb20gJy4vcmFkaW8tYnV0dG9uJztcbmV4cG9ydCAqIGZyb20gJy4vcmFkaW8tZ3JvdXAnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0YXJlYSc7XG4iXX0=
@@ -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);height:1rem;line-height:100%}\n"] }); }
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);height:1rem;line-height:100%}\n"] }]
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