@impartner/design-components 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +11 -0
- package/README.md +22 -0
- package/constants/fontawesome-icons.d.ts +6 -0
- package/constants/index.d.ts +1 -0
- package/esm2020/constants/fontawesome-icons.mjs +3012 -0
- package/esm2020/constants/index.mjs +2 -0
- package/esm2020/impartner-design-components.mjs +5 -0
- package/esm2020/lib/alert/alert.component.mjs +57 -0
- package/esm2020/lib/alert/alert.module.mjs +18 -0
- package/esm2020/lib/alert/index.mjs +4 -0
- package/esm2020/lib/alert/theme/alert-theme.mjs +2 -0
- package/esm2020/lib/alert/theme/index.mjs +2 -0
- package/esm2020/lib/avatar/avatar.component.mjs +47 -0
- package/esm2020/lib/avatar/avatar.module.mjs +18 -0
- package/esm2020/lib/avatar/index.mjs +3 -0
- package/esm2020/lib/avatar-group/avatar-group.component.mjs +16 -0
- package/esm2020/lib/avatar-group/avatar-group.module.mjs +19 -0
- package/esm2020/lib/avatar-group/index.mjs +3 -0
- package/esm2020/lib/backdrop/backdrop.component.mjs +34 -0
- package/esm2020/lib/backdrop/backdrop.module.mjs +19 -0
- package/esm2020/lib/backdrop/index.mjs +3 -0
- package/esm2020/lib/badge/badge.component.mjs +98 -0
- package/esm2020/lib/badge/badge.module.mjs +19 -0
- package/esm2020/lib/badge/index.mjs +4 -0
- package/esm2020/lib/badge/types/badge-icon.mjs +2 -0
- package/esm2020/lib/badge/types/badge-size.mjs +7 -0
- package/esm2020/lib/badge/types/index.mjs +2 -0
- package/esm2020/lib/branding/branded.directive.mjs +19 -0
- package/esm2020/lib/branding/branding.module.mjs +19 -0
- package/esm2020/lib/branding/index.mjs +3 -0
- package/esm2020/lib/breadcrumb/breadcrumb-item.component.mjs +25 -0
- package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +33 -0
- package/esm2020/lib/breadcrumb/breadcrumb.module.mjs +19 -0
- package/esm2020/lib/breadcrumb/index.mjs +4 -0
- package/esm2020/lib/button/button.component.mjs +116 -0
- package/esm2020/lib/button/button.module.mjs +21 -0
- package/esm2020/lib/button/index.mjs +4 -0
- package/esm2020/lib/button/themes/button-theme.mjs +2 -0
- package/esm2020/lib/button/themes/index.mjs +2 -0
- package/esm2020/lib/button-group/button-group.component.mjs +52 -0
- package/esm2020/lib/button-group/button-group.module.mjs +20 -0
- package/esm2020/lib/button-group/index.mjs +3 -0
- package/esm2020/lib/card-heading/card-heading.component.mjs +30 -0
- package/esm2020/lib/card-heading/card-heading.module.mjs +19 -0
- package/esm2020/lib/card-heading/index.mjs +3 -0
- package/esm2020/lib/design-components.module.mjs +119 -0
- package/esm2020/lib/dropdown/components/dropdown-item/dropdown-item.component.mjs +22 -0
- package/esm2020/lib/dropdown/components/index.mjs +2 -0
- package/esm2020/lib/dropdown/dropdown.component.mjs +140 -0
- package/esm2020/lib/dropdown/dropdown.module.mjs +21 -0
- package/esm2020/lib/dropdown/index.mjs +5 -0
- package/esm2020/lib/dropdown/types/dropdown-position.mjs +2 -0
- package/esm2020/lib/dropdown/types/index.mjs +2 -0
- package/esm2020/lib/file-upload/directives/file-drop.directive.mjs +50 -0
- package/esm2020/lib/file-upload/directives/index.mjs +2 -0
- package/esm2020/lib/file-upload/file-upload.component.mjs +334 -0
- package/esm2020/lib/file-upload/file-upload.module.mjs +29 -0
- package/esm2020/lib/file-upload/index.mjs +5 -0
- package/esm2020/lib/file-upload/pipes/human-readable-byte-size.pipe.mjs +23 -0
- package/esm2020/lib/file-upload/pipes/index.mjs +2 -0
- package/esm2020/lib/form-field/controls/checkbox/checkbox.component.mjs +337 -0
- package/esm2020/lib/form-field/controls/checkbox/checkbox.module.mjs +19 -0
- package/esm2020/lib/form-field/controls/checkbox/index.mjs +3 -0
- package/esm2020/lib/form-field/controls/index.mjs +5 -0
- package/esm2020/lib/form-field/controls/input/index.mjs +2 -0
- package/esm2020/lib/form-field/controls/input/input.directive.mjs +233 -0
- package/esm2020/lib/form-field/controls/radio/index.mjs +6 -0
- package/esm2020/lib/form-field/controls/radio/injection-tokens.mjs +4 -0
- package/esm2020/lib/form-field/controls/radio/interfaces/index.mjs +4 -0
- package/esm2020/lib/form-field/controls/radio/interfaces/radio-button.interface.mjs +2 -0
- package/esm2020/lib/form-field/controls/radio/interfaces/radio-change-event.interface.mjs +11 -0
- package/esm2020/lib/form-field/controls/radio/interfaces/radio-group.interface.mjs +2 -0
- package/esm2020/lib/form-field/controls/radio/radio-button/radio-button.component.mjs +260 -0
- package/esm2020/lib/form-field/controls/radio/radio-group/radio-group.directive.mjs +288 -0
- package/esm2020/lib/form-field/controls/radio/radio.module.mjs +20 -0
- package/esm2020/lib/form-field/controls/select/index.mjs +6 -0
- package/esm2020/lib/form-field/controls/select/option/index.mjs +2 -0
- package/esm2020/lib/form-field/controls/select/option/select-option.component.mjs +138 -0
- package/esm2020/lib/form-field/controls/select/option-parent.mjs +3 -0
- package/esm2020/lib/form-field/controls/select/select-model.mjs +149 -0
- package/esm2020/lib/form-field/controls/select/select.component.mjs +522 -0
- package/esm2020/lib/form-field/controls/select/select.module.mjs +20 -0
- package/esm2020/lib/form-field/controls/shared/index.mjs +2 -0
- package/esm2020/lib/form-field/controls/shared/toggle/components/index.mjs +2 -0
- package/esm2020/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.mjs +17 -0
- package/esm2020/lib/form-field/controls/shared/toggle/index.mjs +4 -0
- package/esm2020/lib/form-field/controls/shared/toggle/toggle.component.mjs +96 -0
- package/esm2020/lib/form-field/controls/shared/toggle/toggle.module.mjs +20 -0
- package/esm2020/lib/form-field/directives/corner-hint.directive.mjs +14 -0
- package/esm2020/lib/form-field/directives/error.directive.mjs +26 -0
- package/esm2020/lib/form-field/directives/form-root.directive.mjs +91 -0
- package/esm2020/lib/form-field/directives/hint.directive.mjs +24 -0
- package/esm2020/lib/form-field/directives/index.mjs +8 -0
- package/esm2020/lib/form-field/directives/label.directive.mjs +14 -0
- package/esm2020/lib/form-field/directives/prefix.directive.mjs +24 -0
- package/esm2020/lib/form-field/directives/suffix.directive.mjs +24 -0
- package/esm2020/lib/form-field/form-field-errors.mjs +5 -0
- package/esm2020/lib/form-field/form-field.component.mjs +132 -0
- package/esm2020/lib/form-field/impdc-forms.mjs +8 -0
- package/esm2020/lib/form-field/impdc-forms.module.mjs +68 -0
- package/esm2020/lib/form-field/index.mjs +2 -0
- package/esm2020/lib/form-field/services/error-state-matcher.service.mjs +28 -0
- package/esm2020/lib/form-field/services/index.mjs +3 -0
- package/esm2020/lib/form-field/services/unique-selection-dispatcher.service.mjs +48 -0
- package/esm2020/lib/form-field/shared/constructors.type.mjs +2 -0
- package/esm2020/lib/form-field/shared/disabled.mixin.mjs +15 -0
- package/esm2020/lib/form-field/shared/error-state.mixin.mjs +24 -0
- package/esm2020/lib/form-field/shared/form-field-control.mjs +10 -0
- package/esm2020/lib/form-field/shared/index.mjs +5 -0
- package/esm2020/lib/form-field/shared/tab-index.mixin.mjs +19 -0
- package/esm2020/lib/icon/icon.component.mjs +70 -0
- package/esm2020/lib/icon/icon.module.mjs +19 -0
- package/esm2020/lib/icon/index.mjs +3 -0
- package/esm2020/lib/index.mjs +26 -0
- package/esm2020/lib/modal/index.mjs +4 -0
- package/esm2020/lib/modal/modal.component.mjs +141 -0
- package/esm2020/lib/modal/modal.module.mjs +37 -0
- package/esm2020/lib/modal/types/index.mjs +3 -0
- package/esm2020/lib/modal/types/modal-component-sizes.mjs +9 -0
- package/esm2020/lib/modal/types/modal-theme.mjs +12 -0
- package/esm2020/lib/pagination/index.mjs +3 -0
- package/esm2020/lib/pagination/pagination.component.mjs +134 -0
- package/esm2020/lib/pagination/pagination.module.mjs +21 -0
- package/esm2020/lib/progress-bar/index.mjs +3 -0
- package/esm2020/lib/progress-bar/progress-bar.component.mjs +35 -0
- package/esm2020/lib/progress-bar/progress-bar.module.mjs +18 -0
- package/esm2020/lib/scrollable/index.mjs +3 -0
- package/esm2020/lib/scrollable/scrollable.component.mjs +193 -0
- package/esm2020/lib/scrollable/scrollable.module.mjs +21 -0
- package/esm2020/lib/select-icon/index.mjs +3 -0
- package/esm2020/lib/select-icon/select-icon.component.mjs +307 -0
- package/esm2020/lib/select-icon/select-icon.module.mjs +35 -0
- package/esm2020/lib/size-detection/directive/element-size.interface.mjs +2 -0
- package/esm2020/lib/size-detection/directive/index.mjs +3 -0
- package/esm2020/lib/size-detection/directive/size-detector.directive.mjs +43 -0
- package/esm2020/lib/size-detection/index.mjs +3 -0
- package/esm2020/lib/size-detection/size-detection.module.mjs +18 -0
- package/esm2020/lib/spinner/index.mjs +3 -0
- package/esm2020/lib/spinner/spinner.component.mjs +24 -0
- package/esm2020/lib/spinner/spinner.module.mjs +18 -0
- package/esm2020/lib/table/index.mjs +3 -0
- package/esm2020/lib/table/table.component.mjs +33 -0
- package/esm2020/lib/table/table.module.mjs +19 -0
- package/esm2020/lib/text-highlight/index.mjs +3 -0
- package/esm2020/lib/text-highlight/text-highlight.component.mjs +81 -0
- package/esm2020/lib/text-highlight/text-highlight.module.mjs +19 -0
- package/esm2020/public-api.mjs +9 -0
- package/esm2020/services/index.mjs +2 -0
- package/esm2020/services/interaction.service.mjs +54 -0
- package/esm2020/types/component-size.mjs +12 -0
- package/esm2020/types/component-theme.mjs +22 -0
- package/esm2020/types/index.mjs +3 -0
- package/esm2020/utilities/boolean-props.mjs +7 -0
- package/esm2020/utilities/dc.mjs +9 -0
- package/esm2020/utilities/index.mjs +6 -0
- package/esm2020/utilities/lc.mjs +9 -0
- package/esm2020/utilities/number-props.mjs +18 -0
- package/esm2020/utilities/sanitize.mjs +7 -0
- package/fesm2015/impartner-design-components.mjs +8295 -0
- package/fesm2015/impartner-design-components.mjs.map +1 -0
- package/fesm2020/impartner-design-components.mjs +8264 -0
- package/fesm2020/impartner-design-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/alert/alert.component.d.ts +29 -0
- package/lib/alert/alert.module.d.ts +8 -0
- package/lib/alert/index.d.ts +3 -0
- package/lib/alert/theme/alert-theme.d.ts +1 -0
- package/lib/alert/theme/index.d.ts +1 -0
- package/lib/avatar/avatar.component.d.ts +28 -0
- package/lib/avatar/avatar.module.d.ts +8 -0
- package/lib/avatar/index.d.ts +2 -0
- package/lib/avatar-group/avatar-group.component.d.ts +10 -0
- package/lib/avatar-group/avatar-group.module.d.ts +9 -0
- package/lib/avatar-group/index.d.ts +2 -0
- package/lib/backdrop/backdrop.component.d.ts +19 -0
- package/lib/backdrop/backdrop.module.d.ts +9 -0
- package/lib/backdrop/index.d.ts +2 -0
- package/lib/badge/badge.component.d.ts +48 -0
- package/lib/badge/badge.module.d.ts +9 -0
- package/lib/badge/index.d.ts +3 -0
- package/lib/badge/types/badge-icon.d.ts +1 -0
- package/lib/badge/types/badge-size.d.ts +6 -0
- package/lib/badge/types/index.d.ts +2 -0
- package/lib/branding/branded.directive.d.ts +6 -0
- package/lib/branding/branding.module.d.ts +9 -0
- package/lib/branding/index.d.ts +2 -0
- package/lib/breadcrumb/breadcrumb-item.component.d.ts +7 -0
- package/lib/breadcrumb/breadcrumb.component.d.ts +18 -0
- package/lib/breadcrumb/breadcrumb.module.d.ts +9 -0
- package/lib/breadcrumb/index.d.ts +3 -0
- package/lib/button/button.component.d.ts +47 -0
- package/lib/button/button.module.d.ts +11 -0
- package/lib/button/index.d.ts +3 -0
- package/lib/button/themes/button-theme.d.ts +1 -0
- package/lib/button/themes/index.d.ts +1 -0
- package/lib/button-group/button-group.component.d.ts +22 -0
- package/lib/button-group/button-group.module.d.ts +10 -0
- package/lib/button-group/index.d.ts +2 -0
- package/lib/card-heading/card-heading.component.d.ts +18 -0
- package/lib/card-heading/card-heading.module.d.ts +9 -0
- package/lib/card-heading/index.d.ts +2 -0
- package/lib/design-components.module.d.ts +22 -0
- package/lib/dropdown/components/dropdown-item/dropdown-item.component.d.ts +11 -0
- package/lib/dropdown/components/index.d.ts +1 -0
- package/lib/dropdown/dropdown.component.d.ts +65 -0
- package/lib/dropdown/dropdown.module.d.ts +11 -0
- package/lib/dropdown/index.d.ts +4 -0
- package/lib/dropdown/types/dropdown-position.d.ts +1 -0
- package/lib/dropdown/types/index.d.ts +1 -0
- package/lib/file-upload/directives/file-drop.directive.d.ts +11 -0
- package/lib/file-upload/directives/index.d.ts +1 -0
- package/lib/file-upload/file-upload.component.d.ts +105 -0
- package/lib/file-upload/file-upload.module.d.ts +13 -0
- package/lib/file-upload/index.d.ts +4 -0
- package/lib/file-upload/pipes/human-readable-byte-size.pipe.d.ts +7 -0
- package/lib/file-upload/pipes/index.d.ts +1 -0
- package/lib/form-field/controls/checkbox/checkbox.component.d.ts +133 -0
- package/lib/form-field/controls/checkbox/checkbox.module.d.ts +9 -0
- package/lib/form-field/controls/checkbox/index.d.ts +2 -0
- package/lib/form-field/controls/index.d.ts +4 -0
- package/lib/form-field/controls/input/index.d.ts +1 -0
- package/lib/form-field/controls/input/input.directive.d.ts +84 -0
- package/lib/form-field/controls/radio/index.d.ts +5 -0
- package/lib/form-field/controls/radio/injection-tokens.d.ts +4 -0
- package/lib/form-field/controls/radio/interfaces/index.d.ts +3 -0
- package/lib/form-field/controls/radio/interfaces/radio-button.interface.d.ts +6 -0
- package/lib/form-field/controls/radio/interfaces/radio-change-event.interface.d.ts +12 -0
- package/lib/form-field/controls/radio/interfaces/radio-group.interface.d.ts +13 -0
- package/lib/form-field/controls/radio/radio-button/radio-button.component.d.ts +98 -0
- package/lib/form-field/controls/radio/radio-group/radio-group.directive.d.ts +104 -0
- package/lib/form-field/controls/radio/radio.module.d.ts +10 -0
- package/lib/form-field/controls/select/index.d.ts +5 -0
- package/lib/form-field/controls/select/option/index.d.ts +1 -0
- package/lib/form-field/controls/select/option/select-option.component.d.ts +60 -0
- package/lib/form-field/controls/select/option-parent.d.ts +5 -0
- package/lib/form-field/controls/select/select-model.d.ts +36 -0
- package/lib/form-field/controls/select/select.component.d.ts +170 -0
- package/lib/form-field/controls/select/select.module.d.ts +10 -0
- package/lib/form-field/controls/shared/index.d.ts +1 -0
- package/lib/form-field/controls/shared/toggle/components/index.d.ts +1 -0
- package/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.d.ts +6 -0
- package/lib/form-field/controls/shared/toggle/index.d.ts +3 -0
- package/lib/form-field/controls/shared/toggle/toggle.component.d.ts +26 -0
- package/lib/form-field/controls/shared/toggle/toggle.module.d.ts +10 -0
- package/lib/form-field/directives/corner-hint.directive.d.ts +5 -0
- package/lib/form-field/directives/error.directive.d.ts +8 -0
- package/lib/form-field/directives/form-root.directive.d.ts +26 -0
- package/lib/form-field/directives/hint.directive.d.ts +6 -0
- package/lib/form-field/directives/index.d.ts +7 -0
- package/lib/form-field/directives/label.directive.d.ts +5 -0
- package/lib/form-field/directives/prefix.directive.d.ts +9 -0
- package/lib/form-field/directives/suffix.directive.d.ts +9 -0
- package/lib/form-field/form-field-errors.d.ts +2 -0
- package/lib/form-field/form-field.component.d.ts +39 -0
- package/lib/form-field/impdc-forms.d.ts +7 -0
- package/lib/form-field/impdc-forms.module.d.ts +19 -0
- package/lib/form-field/index.d.ts +1 -0
- package/lib/form-field/services/error-state-matcher.service.d.ts +12 -0
- package/lib/form-field/services/index.d.ts +2 -0
- package/lib/form-field/services/unique-selection-dispatcher.service.d.ts +29 -0
- package/lib/form-field/shared/constructors.type.d.ts +7 -0
- package/lib/form-field/shared/disabled.mixin.d.ts +10 -0
- package/lib/form-field/shared/error-state.mixin.d.ts +31 -0
- package/lib/form-field/shared/form-field-control.d.ts +24 -0
- package/lib/form-field/shared/index.d.ts +5 -0
- package/lib/form-field/shared/tab-index.mixin.d.ts +13 -0
- package/lib/icon/icon.component.d.ts +30 -0
- package/lib/icon/icon.module.d.ts +9 -0
- package/lib/icon/index.d.ts +2 -0
- package/lib/index.d.ts +25 -0
- package/lib/modal/index.d.ts +3 -0
- package/lib/modal/modal.component.d.ts +80 -0
- package/lib/modal/modal.module.d.ts +13 -0
- package/lib/modal/types/index.d.ts +2 -0
- package/lib/modal/types/modal-component-sizes.d.ts +3 -0
- package/lib/modal/types/modal-theme.d.ts +7 -0
- package/lib/pagination/index.d.ts +2 -0
- package/lib/pagination/pagination.component.d.ts +41 -0
- package/lib/pagination/pagination.module.d.ts +11 -0
- package/lib/progress-bar/index.d.ts +2 -0
- package/lib/progress-bar/progress-bar.component.d.ts +22 -0
- package/lib/progress-bar/progress-bar.module.d.ts +8 -0
- package/lib/scrollable/index.d.ts +2 -0
- package/lib/scrollable/scrollable.component.d.ts +39 -0
- package/lib/scrollable/scrollable.module.d.ts +11 -0
- package/lib/select-icon/index.d.ts +2 -0
- package/lib/select-icon/select-icon.component.d.ts +123 -0
- package/lib/select-icon/select-icon.module.d.ts +11 -0
- package/lib/size-detection/directive/element-size.interface.d.ts +4 -0
- package/lib/size-detection/directive/index.d.ts +2 -0
- package/lib/size-detection/directive/size-detector.directive.d.ts +14 -0
- package/lib/size-detection/index.d.ts +3 -0
- package/lib/size-detection/size-detection.module.d.ts +8 -0
- package/lib/spinner/index.d.ts +2 -0
- package/lib/spinner/spinner.component.d.ts +13 -0
- package/lib/spinner/spinner.module.d.ts +8 -0
- package/lib/table/index.d.ts +2 -0
- package/lib/table/table.component.d.ts +15 -0
- package/lib/table/table.module.d.ts +9 -0
- package/lib/text-highlight/index.d.ts +2 -0
- package/lib/text-highlight/text-highlight.component.d.ts +31 -0
- package/lib/text-highlight/text-highlight.module.d.ts +9 -0
- package/package.json +51 -0
- package/public-api.d.ts +4 -0
- package/services/index.d.ts +1 -0
- package/services/interaction.service.d.ts +14 -0
- package/types/component-size.d.ts +12 -0
- package/types/component-theme.d.ts +12 -0
- package/types/index.d.ts +2 -0
- package/utilities/boolean-props.d.ts +8 -0
- package/utilities/dc.d.ts +6 -0
- package/utilities/index.d.ts +5 -0
- package/utilities/lc.d.ts +6 -0
- package/utilities/number-props.d.ts +15 -0
- package/utilities/sanitize.d.ts +1 -0
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, Inject, Input, Optional, Self, ViewChild } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { nanoid } from 'nanoid';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
5
|
+
import { coerceBooleanPropertyValue } from '../../utilities';
|
|
6
|
+
import { ImpdcFormFieldControl, IMPDC_FORM_ROOT, mixinDisabled, mixinErrorState, mixinTabIndex } from '../form-field';
|
|
7
|
+
import { FileDropDirective } from './directives';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../form-field";
|
|
10
|
+
import * as i2 from "@angular/forms";
|
|
11
|
+
import * as i3 from "@angular/common";
|
|
12
|
+
import * as i4 from "../button/button.component";
|
|
13
|
+
import * as i5 from "./directives/file-drop.directive";
|
|
14
|
+
import * as i6 from "./pipes/human-readable-byte-size.pipe";
|
|
15
|
+
const _FileUploadComponentBase = mixinTabIndex(mixinDisabled(mixinErrorState(class {
|
|
16
|
+
constructor(_defaultErrorStateMatcher, _formRoot, _parentForm, _parentFormGroup, ngControl) {
|
|
17
|
+
this._defaultErrorStateMatcher = _defaultErrorStateMatcher;
|
|
18
|
+
this._formRoot = _formRoot;
|
|
19
|
+
this._parentForm = _parentForm;
|
|
20
|
+
this._parentFormGroup = _parentFormGroup;
|
|
21
|
+
this.ngControl = ngControl;
|
|
22
|
+
this.stateChanges = new Subject();
|
|
23
|
+
}
|
|
24
|
+
})));
|
|
25
|
+
/**
|
|
26
|
+
* The `FileUploadComponent` (`<impdc-file-upload` or `<any impdc-file-upload`) is a file selector that supports drag and drop.
|
|
27
|
+
* To use, import `FileUploadModule` or another module that imports and exports that module from `@impartner/design-components`.
|
|
28
|
+
*/
|
|
29
|
+
export class FileUploadComponent extends _FileUploadComponentBase {
|
|
30
|
+
constructor(_changeDetector, _defaultErrorStateMatcher, _formRoot, _parentForm, _parentFormGroup, ngControl) {
|
|
31
|
+
super(_defaultErrorStateMatcher, _formRoot, _parentForm, _parentFormGroup, ngControl);
|
|
32
|
+
this._changeDetector = _changeDetector;
|
|
33
|
+
/**
|
|
34
|
+
* Whether the control supports uploading multiple files.
|
|
35
|
+
*/
|
|
36
|
+
this.multiple = false;
|
|
37
|
+
/**
|
|
38
|
+
* The instructional text to display in the file upload dropzone.
|
|
39
|
+
*/
|
|
40
|
+
this.uploadText = 'Drag and drop files here or click to upload';
|
|
41
|
+
/**
|
|
42
|
+
* The comma-delimited list of file types that are accepted by the control.
|
|
43
|
+
*/
|
|
44
|
+
this.accept = '';
|
|
45
|
+
this._uid = `impdc-file-upload-${nanoid()}`;
|
|
46
|
+
this._value = [];
|
|
47
|
+
this._focused = false;
|
|
48
|
+
this.controlType = 'impdc-file-upload';
|
|
49
|
+
this.supportsAffixes = false;
|
|
50
|
+
if (this.ngControl) {
|
|
51
|
+
this.ngControl.valueAccessor = this;
|
|
52
|
+
this.ngControl.control?.addValidators(() => {
|
|
53
|
+
return this.validate();
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
this.id = this.id;
|
|
57
|
+
}
|
|
58
|
+
get canUpload() {
|
|
59
|
+
return this.multiple || this._value.length === 0;
|
|
60
|
+
}
|
|
61
|
+
get acceptTypes() {
|
|
62
|
+
if (!this.accept || !this.accept.length) {
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
return this.accept
|
|
66
|
+
.split(',')
|
|
67
|
+
.map(a => a.trim())
|
|
68
|
+
.filter(a => !!a);
|
|
69
|
+
}
|
|
70
|
+
get empty() {
|
|
71
|
+
return this._value.length === 0;
|
|
72
|
+
}
|
|
73
|
+
get filesForDisplay() {
|
|
74
|
+
return this._value || [];
|
|
75
|
+
}
|
|
76
|
+
/** @ignore */
|
|
77
|
+
handleChange(event) {
|
|
78
|
+
const fileList = (event.target || {})
|
|
79
|
+
.files;
|
|
80
|
+
if (!fileList) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
this._mergeNewFilesWithExistingFiles(fileList);
|
|
84
|
+
}
|
|
85
|
+
/** @ignore */
|
|
86
|
+
handleDrop(event) {
|
|
87
|
+
if (this.disabled || !event) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
this._mergeNewFilesWithExistingFiles(event);
|
|
91
|
+
}
|
|
92
|
+
/** @ignore */
|
|
93
|
+
removeFile(fileIndex) {
|
|
94
|
+
const newFilesArr = [...this._value];
|
|
95
|
+
newFilesArr.splice(fileIndex, 1);
|
|
96
|
+
this._updateValueFromInteraction(newFilesArr);
|
|
97
|
+
}
|
|
98
|
+
/** @ignore */
|
|
99
|
+
focus(options) {
|
|
100
|
+
this.fileDropElementRef.nativeElement.focus(options);
|
|
101
|
+
}
|
|
102
|
+
/* Lifecycle Hooks */
|
|
103
|
+
/** @ignore */
|
|
104
|
+
ngDoCheck() {
|
|
105
|
+
this.updateErrorState();
|
|
106
|
+
}
|
|
107
|
+
/** @ignore */
|
|
108
|
+
ngOnDestroy() {
|
|
109
|
+
this.stateChanges.complete();
|
|
110
|
+
}
|
|
111
|
+
/* ImpdcFormFieldControl */
|
|
112
|
+
/**
|
|
113
|
+
* The file(s) currently uploaded into the control. Returns `File | null` when `multiple` is `false`,
|
|
114
|
+
* and `File[]` when `multiple` is `true`.
|
|
115
|
+
*/
|
|
116
|
+
get value() {
|
|
117
|
+
return this.multiple ? [...this._value] : this._value[0];
|
|
118
|
+
}
|
|
119
|
+
set value(newValue) {
|
|
120
|
+
if (newValue !== this._value) {
|
|
121
|
+
if (Array.isArray(newValue)) {
|
|
122
|
+
this._value = newValue ? [...newValue] : [];
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
this._value = newValue ? [newValue] : [];
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
const fileList = this._getFileList(this._value);
|
|
129
|
+
if (this.fileUploadInputEltRef &&
|
|
130
|
+
this.fileUploadInputEltRef.nativeElement) {
|
|
131
|
+
this.fileUploadInputEltRef.nativeElement.files = fileList;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/** @ignore */
|
|
135
|
+
get id() {
|
|
136
|
+
return this._id;
|
|
137
|
+
}
|
|
138
|
+
set id(value) {
|
|
139
|
+
this._id = value || this._uid;
|
|
140
|
+
this.stateChanges.next();
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Used to set requiredness of control in a template-based manner;
|
|
144
|
+
* not necessary when using the Angular reactive forms API and `required` validator.
|
|
145
|
+
*
|
|
146
|
+
* @default false
|
|
147
|
+
*/
|
|
148
|
+
get required() {
|
|
149
|
+
return (this._required ??
|
|
150
|
+
this.ngControl?.control?.hasValidator(Validators.required) ??
|
|
151
|
+
false);
|
|
152
|
+
}
|
|
153
|
+
set required(value) {
|
|
154
|
+
this._required = coerceBooleanPropertyValue(value);
|
|
155
|
+
this.stateChanges.next();
|
|
156
|
+
}
|
|
157
|
+
get focused() {
|
|
158
|
+
return this._focused;
|
|
159
|
+
}
|
|
160
|
+
/* ControlValueAccessor */
|
|
161
|
+
/** @ignore */
|
|
162
|
+
writeValue(value) {
|
|
163
|
+
this.value = value;
|
|
164
|
+
this._changeDetector.markForCheck();
|
|
165
|
+
}
|
|
166
|
+
/** @ignore */
|
|
167
|
+
registerOnChange(fn) {
|
|
168
|
+
this._cvaOnChange = fn;
|
|
169
|
+
}
|
|
170
|
+
/** @ignore */
|
|
171
|
+
registerOnTouched(fn) {
|
|
172
|
+
this._cvaOnTouched = fn;
|
|
173
|
+
this._changeDetector.markForCheck();
|
|
174
|
+
}
|
|
175
|
+
/** @ignore */
|
|
176
|
+
setDisabledState(isDisabled) {
|
|
177
|
+
this.disabled = isDisabled;
|
|
178
|
+
}
|
|
179
|
+
/* Validator */
|
|
180
|
+
/**
|
|
181
|
+
* @ignore
|
|
182
|
+
*/
|
|
183
|
+
validate() {
|
|
184
|
+
return !this.disabled && this.required && this._value.length === 0
|
|
185
|
+
? { required: true }
|
|
186
|
+
: null;
|
|
187
|
+
}
|
|
188
|
+
/* Internals */
|
|
189
|
+
_onFocus() {
|
|
190
|
+
if (!this.disabled) {
|
|
191
|
+
this._focused = true;
|
|
192
|
+
this.stateChanges.next();
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
_onBlur() {
|
|
196
|
+
this._focused = false;
|
|
197
|
+
if (!this.disabled) {
|
|
198
|
+
this._cvaOnTouched && this._cvaOnTouched();
|
|
199
|
+
this._changeDetector.markForCheck();
|
|
200
|
+
this.stateChanges.next();
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
_updateValueFromInteraction(newValue) {
|
|
204
|
+
this.value = newValue;
|
|
205
|
+
this._cvaOnChange && this._cvaOnChange(this.value);
|
|
206
|
+
this._cvaOnTouched && this._cvaOnTouched();
|
|
207
|
+
this.stateChanges.next();
|
|
208
|
+
}
|
|
209
|
+
_mergeNewFilesWithExistingFiles(fileList) {
|
|
210
|
+
if (!fileList) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
if (this._value && this._value.length == 1 && !this.multiple) {
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
const tempFiles = [...this._value];
|
|
217
|
+
Array.from(fileList).forEach(newFile => {
|
|
218
|
+
if (!this.multiple && tempFiles.length > 0) {
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
const existingFile = tempFiles.find(existing => existing.name === newFile.name &&
|
|
222
|
+
existing.lastModified === newFile.lastModified &&
|
|
223
|
+
existing.size === newFile.size);
|
|
224
|
+
if (existingFile) {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
if (this._acceptedFileType(newFile.type, newFile.name)) {
|
|
228
|
+
tempFiles.push(newFile);
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
this._updateValueFromInteraction(tempFiles);
|
|
232
|
+
}
|
|
233
|
+
_getFileList(files) {
|
|
234
|
+
const dataTransfer = new DataTransfer();
|
|
235
|
+
files.forEach(file => {
|
|
236
|
+
dataTransfer.items.add(file);
|
|
237
|
+
});
|
|
238
|
+
return dataTransfer.files;
|
|
239
|
+
}
|
|
240
|
+
_getExtensions(fileName) {
|
|
241
|
+
const nameSegments = fileName.split('.');
|
|
242
|
+
let extensions = [];
|
|
243
|
+
if (nameSegments.length < 2) {
|
|
244
|
+
return extensions;
|
|
245
|
+
}
|
|
246
|
+
const extension = `.${nameSegments.slice(1).join('.')}`;
|
|
247
|
+
extensions.push(extension);
|
|
248
|
+
if (nameSegments.length === 2) {
|
|
249
|
+
return extensions;
|
|
250
|
+
}
|
|
251
|
+
const sub = `.${nameSegments.slice(2).join('.')}`;
|
|
252
|
+
const subExtensions = this._getExtensions(sub);
|
|
253
|
+
extensions = [...extensions, ...subExtensions];
|
|
254
|
+
return extensions;
|
|
255
|
+
}
|
|
256
|
+
_acceptedFileType(type, fileName) {
|
|
257
|
+
if (!this.acceptTypes || this.acceptTypes.length === 0) {
|
|
258
|
+
return true;
|
|
259
|
+
}
|
|
260
|
+
const acceptedByType = this.acceptTypes.includes(type);
|
|
261
|
+
if (acceptedByType) {
|
|
262
|
+
return true;
|
|
263
|
+
}
|
|
264
|
+
const fileExtensions = this._getExtensions(fileName);
|
|
265
|
+
if (!fileExtensions || fileExtensions.length === 0) {
|
|
266
|
+
return false;
|
|
267
|
+
}
|
|
268
|
+
const acceptedByExtension = this.acceptTypes.some(type => fileExtensions.includes(type));
|
|
269
|
+
return acceptedByExtension;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
FileUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileUploadComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ErrorStateMatcher }, { token: IMPDC_FORM_ROOT, optional: true }, { token: i2.NgForm, optional: true }, { token: i2.FormGroupDirective, optional: true }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
273
|
+
FileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: FileUploadComponent, selector: "impdc-file-upload, [impdc-file-upload]", inputs: { disabled: "disabled", tabIndex: "tabIndex", multiple: "multiple", uploadText: "uploadText", accept: "accept", errorStateMatcher: "errorStateMatcher", value: "value", id: "id", required: "required" }, host: { listeners: { "focus": "_onFocus(); focus()" }, properties: { "attr.id": "id", "attr.tabindex": "tabIndex", "attr.aria-required": "required.toString()", "attr.aria-disabled": "disabled.toString()", "attr.aria-invalid": "errorState", "class.impdc-file-upload--required": "required", "class.impdc-file-upload--disabled": "disabled", "class.impdc-file-upload--invalid": "errorState", "class.impdc-file-upload--multiple": "multiple", "class.impdc-file-upload--empty": "empty" }, classAttribute: "impdc-file-upload" }, providers: [
|
|
274
|
+
{
|
|
275
|
+
provide: ImpdcFormFieldControl,
|
|
276
|
+
useExisting: FileUploadComponent
|
|
277
|
+
}
|
|
278
|
+
], viewQueries: [{ propertyName: "fileDropElementRef", first: true, predicate: FileDropDirective, descendants: true, read: ElementRef }, { propertyName: "fileUploadInputEltRef", first: true, predicate: ["fileUploadInputElt"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"impdc-file-upload-container\">\n <div\n class=\"impdc-file-upload-dropzone\"\n [ngClass]=\"{\n 'hide-upload': !canUpload\n }\"\n impdcFileDrop\n (filesDropped)=\"handleDrop($event)\"\n (keyup.enter)=\"fileUploadInputElt.click()\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur()\"\n [tabindex]=\"disabled ? '-1' : '0'\">\n <input\n class=\"file-upload-input\"\n type=\"file\"\n #fileUploadInputElt\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n [accept]=\"accept\"\n (change)=\"handleChange($event)\"\n tabindex=\"-1\" />\n <span class=\"fas fa-cloud-upload-alt upload-icon\"></span>\n <p class=\"upload-text\">{{ uploadText }}</p>\n </div>\n <div class=\"current-files\" *ngIf=\"filesForDisplay.length\">\n <ng-container *ngFor=\"let file of filesForDisplay; let idx = index\">\n <div class=\"current-file\">\n <div class=\"current-file-details\">\n <div class=\"name\">{{ file.name }}</div>\n <div class=\"size\">{{ file.size | humanReadableByteSize }}</div>\n </div>\n <div *ngIf=\"!disabled\" class=\"current-file-actions\">\n <button\n impdcButton\n theme=\"close\"\n tabindex=\"0\"\n (keyup.enter)=\"removeFile(idx)\"\n (click)=\"removeFile(idx)\"></button>\n </div>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:block}:host.impdc-file-upload--invalid .impdc-file-upload-dropzone{color:var(--impd-color-red-500);border-color:var(--impd-color-red-500)}:host.impdc-file-upload--invalid .impdc-file-upload-dropzone .upload-text{color:var(--impd-color-red-900)}:host.impdc-file-upload--invalid .impdc-file-upload-container .current-files .current-file{border-color:var(--impd-color-red-500)}:host.impdc-file-upload--disabled .impdc-file-upload-dropzone{color:var(--impd-color-gray-300);background-color:var(--impd-color-gray-50)}:host:not(.impdc-file-upload--disabled) .impdc-file-upload-dropzone:focus,:host:not(.impdc-file-upload--disabled) .impdc-file-upload-dropzone:has(label > button:focus){background-color:var(--impd-color-gray-50);border:2px solid var(--impd-color-motion-blue-500);border-radius:var(--impd-border-radius-md);outline:none}.impdc-file-upload-container{display:flex;flex-direction:column;gap:var(--impd-size-2);width:100%}.impdc-file-upload-container .file-hover:not(.disabled){background-color:var(--impd-color-gray-50);border:2px solid var(--impd-color-motion-blue-500);border-radius:var(--impd-border-radius-md);outline:none}.impdc-file-upload-container .current-files{display:flex;flex-direction:column;gap:var(--impd-size-2)}.impdc-file-upload-container .current-files .current-file{display:inline-flex;background-color:var(--impd-color-gray-50);padding:var(--impd-size-4);gap:var(--impd-size-4);border-radius:var(--impd-border-radius-md);border:1px solid var(--impd-color-gray-200);justify-content:space-between;align-items:center;color:var(--impd-color-gray-600)}.impdc-file-upload-container .current-files .current-file .current-file-details{display:flex;flex-direction:column}.impdc-file-upload-container .current-files .current-file .current-file-details .name{color:var(--impd-color-gray-900);font-size:1.4rem;font-weight:500}.impdc-file-upload-container .current-files .current-file .current-file-details .size{font-size:1.4rem}.impdc-file-upload-container .current-files .current-file .current-file-actions .btn.btn-close-fa{color:var(--impd-color-gray-600)}.impdc-file-upload-dropzone{position:relative;display:flex;flex-direction:column;width:100%;min-height:10rem;padding:3.2rem 1.6rem;gap:2rem;align-items:center;justify-content:center;text-align:center;border:2px dashed var(--impd-color-gray-200);color:var(--impd-color-motion-blue-600);border-radius:5px}.impdc-file-upload-dropzone.hide-upload{display:none}.impdc-file-upload-dropzone .upload-icon{font-size:33px;color:inherit}.impdc-file-upload-dropzone .upload-text{margin:0;font-size:14px;line-height:20px;color:inherit}.impdc-file-upload-dropzone .button-text{border-color:var(--impd-color-motion-blue-600);background-color:var(--impd-color-motion-blue-600);color:#fff}.impdc-file-upload-dropzone input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;z-index:2;cursor:pointer}.impdc-file-upload-dropzone input:disabled{cursor:default}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[impdcButton]", inputs: ["type", "theme", "text", "disabled", "titleText", "ariaLabel"] }, { kind: "directive", type: i5.FileDropDirective, selector: "[impdcFileDrop]", outputs: ["filesDropped"] }, { kind: "pipe", type: i6.HumanReadableByteSizePipe, name: "humanReadableByteSize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
279
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileUploadComponent, decorators: [{
|
|
280
|
+
type: Component,
|
|
281
|
+
args: [{ selector: 'impdc-file-upload, [impdc-file-upload]', inputs: ['disabled', 'tabIndex'], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
282
|
+
class: 'impdc-file-upload',
|
|
283
|
+
'[attr.id]': 'id',
|
|
284
|
+
'[attr.tabindex]': 'tabIndex',
|
|
285
|
+
'[attr.aria-required]': 'required.toString()',
|
|
286
|
+
'[attr.aria-disabled]': 'disabled.toString()',
|
|
287
|
+
'[attr.aria-invalid]': 'errorState',
|
|
288
|
+
'[class.impdc-file-upload--required]': 'required',
|
|
289
|
+
'[class.impdc-file-upload--disabled]': 'disabled',
|
|
290
|
+
'[class.impdc-file-upload--invalid]': 'errorState',
|
|
291
|
+
'[class.impdc-file-upload--multiple]': 'multiple',
|
|
292
|
+
'[class.impdc-file-upload--empty]': 'empty',
|
|
293
|
+
'(focus)': '_onFocus(); focus()'
|
|
294
|
+
}, providers: [
|
|
295
|
+
{
|
|
296
|
+
provide: ImpdcFormFieldControl,
|
|
297
|
+
useExisting: FileUploadComponent
|
|
298
|
+
}
|
|
299
|
+
], template: "<div class=\"impdc-file-upload-container\">\n <div\n class=\"impdc-file-upload-dropzone\"\n [ngClass]=\"{\n 'hide-upload': !canUpload\n }\"\n impdcFileDrop\n (filesDropped)=\"handleDrop($event)\"\n (keyup.enter)=\"fileUploadInputElt.click()\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur()\"\n [tabindex]=\"disabled ? '-1' : '0'\">\n <input\n class=\"file-upload-input\"\n type=\"file\"\n #fileUploadInputElt\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n [accept]=\"accept\"\n (change)=\"handleChange($event)\"\n tabindex=\"-1\" />\n <span class=\"fas fa-cloud-upload-alt upload-icon\"></span>\n <p class=\"upload-text\">{{ uploadText }}</p>\n </div>\n <div class=\"current-files\" *ngIf=\"filesForDisplay.length\">\n <ng-container *ngFor=\"let file of filesForDisplay; let idx = index\">\n <div class=\"current-file\">\n <div class=\"current-file-details\">\n <div class=\"name\">{{ file.name }}</div>\n <div class=\"size\">{{ file.size | humanReadableByteSize }}</div>\n </div>\n <div *ngIf=\"!disabled\" class=\"current-file-actions\">\n <button\n impdcButton\n theme=\"close\"\n tabindex=\"0\"\n (keyup.enter)=\"removeFile(idx)\"\n (click)=\"removeFile(idx)\"></button>\n </div>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:block}:host.impdc-file-upload--invalid .impdc-file-upload-dropzone{color:var(--impd-color-red-500);border-color:var(--impd-color-red-500)}:host.impdc-file-upload--invalid .impdc-file-upload-dropzone .upload-text{color:var(--impd-color-red-900)}:host.impdc-file-upload--invalid .impdc-file-upload-container .current-files .current-file{border-color:var(--impd-color-red-500)}:host.impdc-file-upload--disabled .impdc-file-upload-dropzone{color:var(--impd-color-gray-300);background-color:var(--impd-color-gray-50)}:host:not(.impdc-file-upload--disabled) .impdc-file-upload-dropzone:focus,:host:not(.impdc-file-upload--disabled) .impdc-file-upload-dropzone:has(label > button:focus){background-color:var(--impd-color-gray-50);border:2px solid var(--impd-color-motion-blue-500);border-radius:var(--impd-border-radius-md);outline:none}.impdc-file-upload-container{display:flex;flex-direction:column;gap:var(--impd-size-2);width:100%}.impdc-file-upload-container .file-hover:not(.disabled){background-color:var(--impd-color-gray-50);border:2px solid var(--impd-color-motion-blue-500);border-radius:var(--impd-border-radius-md);outline:none}.impdc-file-upload-container .current-files{display:flex;flex-direction:column;gap:var(--impd-size-2)}.impdc-file-upload-container .current-files .current-file{display:inline-flex;background-color:var(--impd-color-gray-50);padding:var(--impd-size-4);gap:var(--impd-size-4);border-radius:var(--impd-border-radius-md);border:1px solid var(--impd-color-gray-200);justify-content:space-between;align-items:center;color:var(--impd-color-gray-600)}.impdc-file-upload-container .current-files .current-file .current-file-details{display:flex;flex-direction:column}.impdc-file-upload-container .current-files .current-file .current-file-details .name{color:var(--impd-color-gray-900);font-size:1.4rem;font-weight:500}.impdc-file-upload-container .current-files .current-file .current-file-details .size{font-size:1.4rem}.impdc-file-upload-container .current-files .current-file .current-file-actions .btn.btn-close-fa{color:var(--impd-color-gray-600)}.impdc-file-upload-dropzone{position:relative;display:flex;flex-direction:column;width:100%;min-height:10rem;padding:3.2rem 1.6rem;gap:2rem;align-items:center;justify-content:center;text-align:center;border:2px dashed var(--impd-color-gray-200);color:var(--impd-color-motion-blue-600);border-radius:5px}.impdc-file-upload-dropzone.hide-upload{display:none}.impdc-file-upload-dropzone .upload-icon{font-size:33px;color:inherit}.impdc-file-upload-dropzone .upload-text{margin:0;font-size:14px;line-height:20px;color:inherit}.impdc-file-upload-dropzone .button-text{border-color:var(--impd-color-motion-blue-600);background-color:var(--impd-color-motion-blue-600);color:#fff}.impdc-file-upload-dropzone input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;z-index:2;cursor:pointer}.impdc-file-upload-dropzone input:disabled{cursor:default}\n"] }]
|
|
300
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.ErrorStateMatcher }, { type: undefined, decorators: [{
|
|
301
|
+
type: Optional
|
|
302
|
+
}, {
|
|
303
|
+
type: Inject,
|
|
304
|
+
args: [IMPDC_FORM_ROOT]
|
|
305
|
+
}] }, { type: i2.NgForm, decorators: [{
|
|
306
|
+
type: Optional
|
|
307
|
+
}] }, { type: i2.FormGroupDirective, decorators: [{
|
|
308
|
+
type: Optional
|
|
309
|
+
}] }, { type: i2.NgControl, decorators: [{
|
|
310
|
+
type: Self
|
|
311
|
+
}, {
|
|
312
|
+
type: Optional
|
|
313
|
+
}] }]; }, propDecorators: { fileDropElementRef: [{
|
|
314
|
+
type: ViewChild,
|
|
315
|
+
args: [FileDropDirective, { read: ElementRef }]
|
|
316
|
+
}], fileUploadInputEltRef: [{
|
|
317
|
+
type: ViewChild,
|
|
318
|
+
args: ['fileUploadInputElt', { static: false }]
|
|
319
|
+
}], multiple: [{
|
|
320
|
+
type: Input
|
|
321
|
+
}], uploadText: [{
|
|
322
|
+
type: Input
|
|
323
|
+
}], accept: [{
|
|
324
|
+
type: Input
|
|
325
|
+
}], errorStateMatcher: [{
|
|
326
|
+
type: Input
|
|
327
|
+
}], value: [{
|
|
328
|
+
type: Input
|
|
329
|
+
}], id: [{
|
|
330
|
+
type: Input
|
|
331
|
+
}], required: [{
|
|
332
|
+
type: Input
|
|
333
|
+
}] } });
|
|
334
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFPTCxVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFnQiwwQkFBMEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFJTCxxQkFBcUIsRUFFckIsZUFBZSxFQUNmLGFBQWEsRUFDYixlQUFlLEVBQ2YsYUFBYSxFQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7QUFFakQsTUFBTSx3QkFBd0IsR0FBRyxhQUFhLENBQzVDLGFBQWEsQ0FDWCxlQUFlLENBQ2I7SUFHRSxZQUNTLHlCQUE0QyxFQUM1QyxTQUF3QixFQUN4QixXQUFtQixFQUNuQixnQkFBb0MsRUFDcEMsU0FBMkI7UUFKM0IsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUFtQjtRQUM1QyxjQUFTLEdBQVQsU0FBUyxDQUFlO1FBQ3hCLGdCQUFXLEdBQVgsV0FB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QUM3QyxxQkFBcUIsRUFBRSxZQUFZO3dCQUNuQyxxQ0FBcUMsRUFBRSxVQUFVO3dCQUNqRCxxQ0FBcUMsRUFBRSxVQUFVO3dCQUNqRCxvQ0FBb0MsRUFBRSxZQUFZO3dCQUNsRCxxQ0FBcUMsRUFBRSxVQUFVO3dCQUNqRCxrQ0FBa0MsRUFBRSxPQUFPO3dCQUMzQyxTQUFTLEVBQUUscUJBQXFCO3FCQUNqQyxhQUNVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFdBQVcscUJBQXFCO3lCQUNqQztxQkFDRjs7MEJBdUVFLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZTs7MEJBQ2xDLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUNSLElBQUk7OzBCQUFJLFFBQVE7NENBNURULGtCQUFrQjtzQkFEM0IsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSzNDLHFCQUFxQjtzQkFEM0IsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBT2xELFFBQVE7c0JBRFAsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUs7Z0JBT04sTUFBTTtzQkFETCxLQUFLO2dCQUlVLGlCQUFpQjtzQkFEaEMsS0FBSztnQkE2R0ssS0FBSztzQkFEZixLQUFLO2dCQTBCSyxFQUFFO3NCQURaLEtBQUs7Z0JBaUJLLFFBQVE7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRG9DaGVjayxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgU2VsZixcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgTmdDb250cm9sLFxuICBOZ0Zvcm0sXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbiAgVmFsaWRhdG9yc1xufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBuYW5vaWQgfSBmcm9tICduYW5vaWQnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHlWYWx1ZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcyc7XG5pbXBvcnQge1xuICBFcnJvclN0YXRlTWF0Y2hlcixcbiAgSUNhblVwZGF0ZUVycm9yU3RhdGUsXG4gIElIYXNFcnJvclN0YXRlLFxuICBJbXBkY0Zvcm1GaWVsZENvbnRyb2wsXG4gIEltcGRjRm9ybVJvb3QsXG4gIElNUERDX0ZPUk1fUk9PVCxcbiAgbWl4aW5EaXNhYmxlZCxcbiAgbWl4aW5FcnJvclN0YXRlLFxuICBtaXhpblRhYkluZGV4XG59IGZyb20gJy4uL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgRmlsZURyb3BEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuXG5jb25zdCBfRmlsZVVwbG9hZENvbXBvbmVudEJhc2UgPSBtaXhpblRhYkluZGV4KFxuICBtaXhpbkRpc2FibGVkKFxuICAgIG1peGluRXJyb3JTdGF0ZShcbiAgICAgIGNsYXNzIHtcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAgICAgY29uc3RydWN0b3IoXG4gICAgICAgICAgcHVibGljIF9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyLFxuICAgICAgICAgIHB1YmxpYyBfZm9ybVJvb3Q6IEltcGRjRm9ybVJvb3QsXG4gICAgICAgICAgcHVibGljIF9wYXJlbnRGb3JtOiBOZ0Zvcm0sXG4gICAgICAgICAgcHVibGljIF9wYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICAgICAgICBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsXG4gICAgICAgICkge31cbiAgICAgIH1cbiAgICApXG4gIClcbik7XG5cbi8qKlxuICogVGhlIGBGaWxlVXBsb2FkQ29tcG9uZW50YCAoYDxpbXBkYy1maWxlLXVwbG9hZGAgb3IgYDxhbnkgaW1wZGMtZmlsZS11cGxvYWRgKSBpcyBhIGZpbGUgc2VsZWN0b3IgdGhhdCBzdXBwb3J0cyBkcmFnIGFuZCBkcm9wLlxuICogVG8gdXNlLCBpbXBvcnQgYEZpbGVVcGxvYWRNb2R1bGVgIG9yIGFub3RoZXIgbW9kdWxlIHRoYXQgaW1wb3J0cyBhbmQgZXhwb3J0cyB0aGF0IG1vZHVsZSBmcm9tIGBAaW1wYXJ0bmVyL2Rlc2lnbi1jb21wb25lbnRzYC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1wZGMtZmlsZS11cGxvYWQsIFtpbXBkYy1maWxlLXVwbG9hZF0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuc2NzcyddLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAndGFiSW5kZXgnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taG9zdC1tZXRhZGF0YS1wcm9wZXJ0eVxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdpbXBkYy1maWxlLXVwbG9hZCcsXG4gICAgJ1thdHRyLmlkXSc6ICdpZCcsXG4gICAgJ1thdHRyLnRhYmluZGV4XSc6ICd0YWJJbmRleCcsXG4gICAgJ1thdHRyLmFyaWEtcmVxdWlyZWRdJzogJ3JlcXVpcmVkLnRvU3RyaW5nKCknLFxuICAgICdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdkaXNhYmxlZC50b1N0cmluZygpJyxcbiAgICAnW2F0dHIuYXJpYS1pbnZhbGlkXSc6ICdlcnJvclN0YXRlJyxcbiAgICAnW2NsYXNzLmltcGRjLWZpbGUtdXBsb2FkLS1yZXF1aXJlZF0nOiAncmVxdWlyZWQnLFxuICAgICdbY2xhc3MuaW1wZGMtZmlsZS11cGxvYWQtLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5pbXBkYy1maWxlLXVwbG9hZC0taW52YWxpZF0nOiAnZXJyb3JTdGF0ZScsXG4gICAgJ1tjbGFzcy5pbXBkYy1maWxlLXVwbG9hZC0tbXVsdGlwbGVdJzogJ211bHRpcGxlJyxcbiAgICAnW2NsYXNzLmltcGRjLWZpbGUtdXBsb2FkLS1lbXB0eV0nOiAnZW1wdHknLFxuICAgICcoZm9jdXMpJzogJ19vbkZvY3VzKCk7IGZvY3VzKCknXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEltcGRjRm9ybUZpZWxkQ29udHJvbCxcbiAgICAgIHVzZUV4aXN0aW5nOiBGaWxlVXBsb2FkQ29tcG9uZW50XG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnRcbiAgZXh0ZW5kcyBfRmlsZVVwbG9hZENvbXBvbmVudEJhc2VcbiAgaW1wbGVtZW50c1xuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIFZhbGlkYXRvcixcbiAgICBJbXBkY0Zvcm1GaWVsZENvbnRyb2w8RmlsZSB8IEZpbGVbXT4sXG4gICAgSUNhblVwZGF0ZUVycm9yU3RhdGUsXG4gICAgSUhhc0Vycm9yU3RhdGUsXG4gICAgRG9DaGVjayxcbiAgICBPbkRlc3Ryb3lcbntcbiAgQFZpZXdDaGlsZChGaWxlRHJvcERpcmVjdGl2ZSwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHByb3RlY3RlZCBmaWxlRHJvcEVsZW1lbnRSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAvKiogQGlnbm9yZSAqL1xuICBAVmlld0NoaWxkKCdmaWxlVXBsb2FkSW5wdXRFbHQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIGZpbGVVcGxvYWRJbnB1dEVsdFJlZiE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNvbnRyb2wgc3VwcG9ydHMgdXBsb2FkaW5nIG11bHRpcGxlIGZpbGVzLlxuICAgKi9cbiAgQElucHV0KClcbiAgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIGluc3RydWN0aW9uYWwgdGV4dCB0byBkaXNwbGF5IGluIHRoZSBmaWxlIHVwbG9hZCBkcm9wem9uZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHVwbG9hZFRleHQ6IHN0cmluZyA9ICdEcmFnIGFuZCBkcm9wIGZpbGVzIGhlcmUgb3IgY2xpY2sgdG8gdXBsb2FkJztcblxuICAvKipcbiAgICogVGhlIGNvbW1hLWRlbGltaXRlZCBsaXN0IG9mIGZpbGUgdHlwZXMgdGhhdCBhcmUgYWNjZXB0ZWQgYnkgdGhlIGNvbnRyb2wuXG4gICAqL1xuICBASW5wdXQoKVxuICBhY2NlcHQ6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBlcnJvclN0YXRlTWF0Y2hlciE6IEVycm9yU3RhdGVNYXRjaGVyO1xuXG4gIHB1YmxpYyBnZXQgY2FuVXBsb2FkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGxlIHx8IHRoaXMuX3ZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGFjY2VwdFR5cGVzKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIXRoaXMuYWNjZXB0IHx8ICF0aGlzLmFjY2VwdC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hY2NlcHRcbiAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAubWFwKGEgPT4gYS50cmltKCkpXG4gICAgICAuZmlsdGVyKGEgPT4gISFhKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgZmlsZXNGb3JEaXNwbGF5KCk6IHJlYWRvbmx5IEZpbGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlIHx8IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3ZhT25DaGFuZ2U6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9jdmFPblRvdWNoZWQ6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF91aWQgPSBgaW1wZGMtZmlsZS11cGxvYWQtJHtuYW5vaWQoKX1gO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBfZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KElNUERDX0ZPUk1fUk9PVCkgX2Zvcm1Sb290OiBJbXBkY0Zvcm1Sb290LFxuICAgIEBPcHRpb25hbCgpIF9wYXJlbnRGb3JtOiBOZ0Zvcm0sXG4gICAgQE9wdGlvbmFsKCkgX3BhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcixcbiAgICAgIF9mb3JtUm9vdCxcbiAgICAgIF9wYXJlbnRGb3JtLFxuICAgICAgX3BhcmVudEZvcm1Hcm91cCxcbiAgICAgIG5nQ29udHJvbFxuICAgICk7XG5cbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbD8uYWRkVmFsaWRhdG9ycygoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlKCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmlkID0gdGhpcy5pZDtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyBoYW5kbGVDaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgZmlsZUxpc3Q6IEZpbGVMaXN0IHwgbnVsbCA9ICgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpIHx8IHt9KVxuICAgICAgLmZpbGVzO1xuXG4gICAgaWYgKCFmaWxlTGlzdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX21lcmdlTmV3RmlsZXNXaXRoRXhpc3RpbmdGaWxlcyhmaWxlTGlzdCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgaGFuZGxlRHJvcChldmVudDogRmlsZUxpc3QpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCAhZXZlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9tZXJnZU5ld0ZpbGVzV2l0aEV4aXN0aW5nRmlsZXMoZXZlbnQpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHJlbW92ZUZpbGUoZmlsZUluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdGaWxlc0FyciA9IFsuLi50aGlzLl92YWx1ZV07XG4gICAgbmV3RmlsZXNBcnIuc3BsaWNlKGZpbGVJbmRleCwgMSk7XG5cbiAgICB0aGlzLl91cGRhdGVWYWx1ZUZyb21JbnRlcmFjdGlvbihuZXdGaWxlc0Fycik7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMuZmlsZURyb3BFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMob3B0aW9ucyk7XG4gIH1cblxuICAvKiBMaWZlY3ljbGUgSG9va3MgKi9cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlRXJyb3JTdGF0ZSgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKiBJbXBkY0Zvcm1GaWVsZENvbnRyb2wgKi9cblxuICAvKipcbiAgICogVGhlIGZpbGUocykgY3VycmVudGx5IHVwbG9hZGVkIGludG8gdGhlIGNvbnRyb2wuIFJldHVybnMgYEZpbGUgfCBudWxsYCB3aGVuIGBtdWx0aXBsZWAgaXMgYGZhbHNlYCxcbiAgICogYW5kIGBGaWxlW11gIHdoZW4gYG11bHRpcGxlYCBpcyBgdHJ1ZWAuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IEZpbGUgfCBGaWxlW10gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aXBsZSA/IFsuLi50aGlzLl92YWx1ZV0gOiB0aGlzLl92YWx1ZVswXTtcbiAgfVxuICBwdWJsaWMgc2V0IHZhbHVlKG5ld1ZhbHVlOiBGaWxlIHwgRmlsZVtdIHwgbnVsbCkge1xuICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IG5ld1ZhbHVlID8gWy4uLm5ld1ZhbHVlXSA6IFtdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBuZXdWYWx1ZSA/IFtuZXdWYWx1ZV0gOiBbXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBmaWxlTGlzdCA9IHRoaXMuX2dldEZpbGVMaXN0KHRoaXMuX3ZhbHVlKTtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuZmlsZVVwbG9hZElucHV0RWx0UmVmICYmXG4gICAgICB0aGlzLmZpbGVVcGxvYWRJbnB1dEVsdFJlZi5uYXRpdmVFbGVtZW50XG4gICAgKSB7XG4gICAgICB0aGlzLmZpbGVVcGxvYWRJbnB1dEVsdFJlZi5uYXRpdmVFbGVtZW50LmZpbGVzID0gZmlsZUxpc3Q7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX3ZhbHVlOiByZWFkb25seSBGaWxlW10gPSBbXTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2lkO1xuICB9XG4gIHB1YmxpYyBzZXQgaWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2lkID0gdmFsdWUgfHwgdGhpcy5fdWlkO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuICBwcml2YXRlIF9pZCE6IHN0cmluZztcblxuICAvKipcbiAgICogVXNlZCB0byBzZXQgcmVxdWlyZWRuZXNzIG9mIGNvbnRyb2wgaW4gYSB0ZW1wbGF0ZS1iYXNlZCBtYW5uZXI7XG4gICAqIG5vdCBuZWNlc3Nhcnkgd2hlbiB1c2luZyB0aGUgQW5ndWxhciByZWFjdGl2ZSBmb3JtcyBBUEkgYW5kIGByZXF1aXJlZGAgdmFsaWRhdG9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fcmVxdWlyZWQgPz9cbiAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCkgPz9cbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eVZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cbiAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mb2N1c2VkO1xuICB9XG4gIHByaXZhdGUgX2ZvY3VzZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29udHJvbFR5cGU6IHN0cmluZyA9ICdpbXBkYy1maWxlLXVwbG9hZCc7XG4gIHB1YmxpYyByZWFkb25seSBzdXBwb3J0c0FmZml4ZXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiBDb250cm9sVmFsdWVBY2Nlc3NvciAqL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBGaWxlW10pOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl9jdmFPbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX2N2YU9uVG91Y2hlZCA9IGZuO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIC8qIFZhbGlkYXRvciAqL1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwdWJsaWMgdmFsaWRhdGUoKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLnJlcXVpcmVkICYmIHRoaXMuX3ZhbHVlLmxlbmd0aCA9PT0gMFxuICAgICAgPyB7IHJlcXVpcmVkOiB0cnVlIH1cbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIC8qIEludGVybmFscyAqL1xuXG4gIHByb3RlY3RlZCBfb25Gb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX2ZvY3VzZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZvY3VzZWQgPSBmYWxzZTtcblxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5fY3ZhT25Ub3VjaGVkICYmIHRoaXMuX2N2YU9uVG91Y2hlZCgpO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlVmFsdWVGcm9tSW50ZXJhY3Rpb24obmV3VmFsdWU6IEZpbGVbXSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBuZXdWYWx1ZTtcblxuICAgIHRoaXMuX2N2YU9uQ2hhbmdlICYmIHRoaXMuX2N2YU9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMuX2N2YU9uVG91Y2hlZCAmJiB0aGlzLl9jdmFPblRvdWNoZWQoKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIF9tZXJnZU5ld0ZpbGVzV2l0aEV4aXN0aW5nRmlsZXMoZmlsZUxpc3Q6IEZpbGVMaXN0IHwgbnVsbCkge1xuICAgIGlmICghZmlsZUxpc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fdmFsdWUgJiYgdGhpcy5fdmFsdWUubGVuZ3RoID09IDEgJiYgIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0ZW1wRmlsZXMgPSBbLi4udGhpcy5fdmFsdWVdO1xuXG4gICAgQXJyYXkuZnJvbShmaWxlTGlzdCkuZm9yRWFjaChuZXdGaWxlID0+IHtcbiAgICAgIGlmICghdGhpcy5tdWx0aXBsZSAmJiB0ZW1wRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBleGlzdGluZ0ZpbGUgPSB0ZW1wRmlsZXMuZmluZChcbiAgICAgICAgZXhpc3RpbmcgPT5cbiAgICAgICAgICBleGlzdGluZy5uYW1lID09PSBuZXdGaWxlLm5hbWUgJiZcbiAgICAgICAgICBleGlzdGluZy5sYXN0TW9kaWZpZWQgPT09IG5ld0ZpbGUubGFzdE1vZGlmaWVkICYmXG4gICAgICAgICAgZXhpc3Rpbmcuc2l6ZSA9PT0gbmV3RmlsZS5zaXplXG4gICAgICApO1xuXG4gICAgICBpZiAoZXhpc3RpbmdGaWxlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2FjY2VwdGVkRmlsZVR5cGUobmV3RmlsZS50eXBlLCBuZXdGaWxlLm5hbWUpKSB7XG4gICAgICAgIHRlbXBGaWxlcy5wdXNoKG5ld0ZpbGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5fdXBkYXRlVmFsdWVGcm9tSW50ZXJhY3Rpb24odGVtcEZpbGVzKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEZpbGVMaXN0KGZpbGVzOiByZWFkb25seSBGaWxlW10pOiBGaWxlTGlzdCB7XG4gICAgY29uc3QgZGF0YVRyYW5zZmVyID0gbmV3IERhdGFUcmFuc2ZlcigpO1xuXG4gICAgZmlsZXMuZm9yRWFjaChmaWxlID0+IHtcbiAgICAgIGRhdGFUcmFuc2Zlci5pdGVtcy5hZGQoZmlsZSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGF0YVRyYW5zZmVyLmZpbGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RXh0ZW5zaW9ucyhmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IG5hbWVTZWdtZW50cyA9IGZpbGVOYW1lLnNwbGl0KCcuJyk7XG4gICAgbGV0IGV4dGVuc2lvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAobmFtZVNlZ21lbnRzLmxlbmd0aCA8IDIpIHtcbiAgICAgIHJldHVybiBleHRlbnNpb25zO1xuICAgIH1cblxuICAgIGNvbnN0IGV4dGVuc2lvbiA9IGAuJHtuYW1lU2VnbWVudHMuc2xpY2UoMSkuam9pbignLicpfWA7XG4gICAgZXh0ZW5zaW9ucy5wdXNoKGV4dGVuc2lvbik7XG5cbiAgICBpZiAobmFtZVNlZ21lbnRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgcmV0dXJuIGV4dGVuc2lvbnM7XG4gICAgfVxuXG4gICAgY29uc3Qgc3ViID0gYC4ke25hbWVTZWdtZW50cy5zbGljZSgyKS5qb2luKCcuJyl9YDtcbiAgICBjb25zdCBzdWJFeHRlbnNpb25zID0gdGhpcy5fZ2V0RXh0ZW5zaW9ucyhzdWIpO1xuICAgIGV4dGVuc2lvbnMgPSBbLi4uZXh0ZW5zaW9ucywgLi4uc3ViRXh0ZW5zaW9uc107XG5cbiAgICByZXR1cm4gZXh0ZW5zaW9ucztcbiAgfVxuXG4gIHByaXZhdGUgX2FjY2VwdGVkRmlsZVR5cGUodHlwZTogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmFjY2VwdFR5cGVzIHx8IHRoaXMuYWNjZXB0VHlwZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBhY2NlcHRlZEJ5VHlwZSA9IHRoaXMuYWNjZXB0VHlwZXMuaW5jbHVkZXModHlwZSk7XG5cbiAgICBpZiAoYWNjZXB0ZWRCeVR5cGUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbGVFeHRlbnNpb25zID0gdGhpcy5fZ2V0RXh0ZW5zaW9ucyhmaWxlTmFtZSk7XG5cbiAgICBpZiAoIWZpbGVFeHRlbnNpb25zIHx8IGZpbGVFeHRlbnNpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGFjY2VwdGVkQnlFeHRlbnNpb24gPSB0aGlzLmFjY2VwdFR5cGVzLnNvbWUodHlwZSA9PlxuICAgICAgZmlsZUV4dGVuc2lvbnMuaW5jbHVkZXModHlwZSlcbiAgICApO1xuXG4gICAgcmV0dXJuIGFjY2VwdGVkQnlFeHRlbnNpb247XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbXBkYy1maWxlLXVwbG9hZC1jb250YWluZXJcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiaW1wZGMtZmlsZS11cGxvYWQtZHJvcHpvbmVcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdoaWRlLXVwbG9hZCc6ICFjYW5VcGxvYWRcbiAgICB9XCJcbiAgICBpbXBkY0ZpbGVEcm9wXG4gICAgKGZpbGVzRHJvcHBlZCk9XCJoYW5kbGVEcm9wKCRldmVudClcIlxuICAgIChrZXl1cC5lbnRlcik9XCJmaWxlVXBsb2FkSW5wdXRFbHQuY2xpY2soKVwiXG4gICAgKGZvY3VzKT1cIl9vbkZvY3VzKClcIlxuICAgIChibHVyKT1cIl9vbkJsdXIoKVwiXG4gICAgW3RhYmluZGV4XT1cImRpc2FibGVkID8gJy0xJyA6ICcwJ1wiPlxuICAgIDxpbnB1dFxuICAgICAgY2xhc3M9XCJmaWxlLXVwbG9hZC1pbnB1dFwiXG4gICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAjZmlsZVVwbG9hZElucHV0RWx0XG4gICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFthY2NlcHRdPVwiYWNjZXB0XCJcbiAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgdGFiaW5kZXg9XCItMVwiIC8+XG4gICAgPHNwYW4gY2xhc3M9XCJmYXMgZmEtY2xvdWQtdXBsb2FkLWFsdCB1cGxvYWQtaWNvblwiPjwvc3Bhbj5cbiAgICA8cCBjbGFzcz1cInVwbG9hZC10ZXh0XCI+e3sgdXBsb2FkVGV4dCB9fTwvcD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjdXJyZW50LWZpbGVzXCIgKm5nSWY9XCJmaWxlc0ZvckRpc3BsYXkubGVuZ3RoXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlc0ZvckRpc3BsYXk7IGxldCBpZHggPSBpbmRleFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImN1cnJlbnQtZmlsZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3VycmVudC1maWxlLWRldGFpbHNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPnt7IGZpbGUubmFtZSB9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaXplXCI+e3sgZmlsZS5zaXplIHwgaHVtYW5SZWFkYWJsZUJ5dGVTaXplIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWRpc2FibGVkXCIgY2xhc3M9XCJjdXJyZW50LWZpbGUtYWN0aW9uc1wiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGltcGRjQnV0dG9uXG4gICAgICAgICAgICB0aGVtZT1cImNsb3NlXCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwicmVtb3ZlRmlsZShpZHgpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVGaWxlKGlkeClcIj48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { FormsModule } from '@angular/forms';
|
|
3
|
+
import { FileDropDirective } from './directives';
|
|
4
|
+
import { FileUploadComponent } from './file-upload.component';
|
|
5
|
+
import { ButtonModule } from '../button';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
import { HumanReadableByteSizePipe } from './pipes';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class FileUploadModule {
|
|
10
|
+
constructor() { }
|
|
11
|
+
}
|
|
12
|
+
FileUploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
13
|
+
FileUploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: FileUploadModule, declarations: [FileDropDirective,
|
|
14
|
+
FileUploadComponent,
|
|
15
|
+
HumanReadableByteSizePipe], imports: [CommonModule, FormsModule, ButtonModule], exports: [FileDropDirective, FileUploadComponent] });
|
|
16
|
+
FileUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileUploadModule, imports: [CommonModule, FormsModule, ButtonModule] });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileUploadModule, decorators: [{
|
|
18
|
+
type: NgModule,
|
|
19
|
+
args: [{
|
|
20
|
+
imports: [CommonModule, FormsModule, ButtonModule],
|
|
21
|
+
declarations: [
|
|
22
|
+
FileDropDirective,
|
|
23
|
+
FileUploadComponent,
|
|
24
|
+
HumanReadableByteSizePipe
|
|
25
|
+
],
|
|
26
|
+
exports: [FileDropDirective, FileUploadComponent]
|
|
27
|
+
}]
|
|
28
|
+
}], ctorParameters: function () { return []; } });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFXcEQsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixnQkFBZSxDQUFDOzs4R0FETCxnQkFBZ0I7K0dBQWhCLGdCQUFnQixpQkFOekIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQix5QkFBeUIsYUFKakIsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLGFBTXZDLGlCQUFpQixFQUFFLG1CQUFtQjsrR0FFckMsZ0JBQWdCLFlBUmpCLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWTs0RkFRdEMsZ0JBQWdCO2tCQVQ1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDO29CQUNsRCxZQUFZLEVBQUU7d0JBQ1osaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLHlCQUF5QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsbUJBQW1CLENBQUM7aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmlsZURyb3BEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4vZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHVtYW5SZWFkYWJsZUJ5dGVTaXplUGlwZSB9IGZyb20gJy4vcGlwZXMnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgQnV0dG9uTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRmlsZURyb3BEaXJlY3RpdmUsXG4gICAgRmlsZVVwbG9hZENvbXBvbmVudCxcbiAgICBIdW1hblJlYWRhYmxlQnl0ZVNpemVQaXBlXG4gIF0sXG4gIGV4cG9ydHM6IFtGaWxlRHJvcERpcmVjdGl2ZSwgRmlsZVVwbG9hZENvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZE1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKCkge31cbn1cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './directives';
|
|
2
|
+
export * from './pipes';
|
|
3
|
+
export { FileUploadComponent } from './file-upload.component';
|
|
4
|
+
export { FileUploadModule } from './file-upload.module';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2ZpbGUtdXBsb2FkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMnO1xuZXhwb3J0IHsgRmlsZVVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4vZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmV4cG9ydCB7IEZpbGVVcGxvYWRNb2R1bGUgfSBmcm9tICcuL2ZpbGUtdXBsb2FkLm1vZHVsZSc7XG4iXX0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class HumanReadableByteSizePipe {
|
|
4
|
+
transform(bytes) {
|
|
5
|
+
if (bytes < 1024) {
|
|
6
|
+
return `${bytes}B`;
|
|
7
|
+
}
|
|
8
|
+
const i = Math.floor(Math.log(bytes) / Math.log(1024));
|
|
9
|
+
const num = bytes / Math.pow(1024, i);
|
|
10
|
+
const round = Math.round(num);
|
|
11
|
+
const display = round < 10 ? num.toFixed(2) : round < 100 ? num.toFixed(1) : round;
|
|
12
|
+
return `${display}${'KMGTPEZY'[i - 1]}B`;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
HumanReadableByteSizePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: HumanReadableByteSizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
16
|
+
HumanReadableByteSizePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: HumanReadableByteSizePipe, name: "humanReadableByteSize" });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: HumanReadableByteSizePipe, decorators: [{
|
|
18
|
+
type: Pipe,
|
|
19
|
+
args: [{
|
|
20
|
+
name: 'humanReadableByteSize'
|
|
21
|
+
}]
|
|
22
|
+
}] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVtYW4tcmVhZGFibGUtYnl0ZS1zaXplLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2ZpbGUtdXBsb2FkL3BpcGVzL2h1bWFuLXJlYWRhYmxlLWJ5dGUtc2l6ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLElBQUksS0FBSyxHQUFHLElBQUksRUFBRTtZQUNoQixPQUFPLEdBQUcsS0FBSyxHQUFHLENBQUM7U0FDcEI7UUFFRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sR0FBRyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLE1BQU0sT0FBTyxHQUNYLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUVyRSxPQUFPLEdBQUcsT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUMzQyxDQUFDOzt1SEFiVSx5QkFBeUI7cUhBQXpCLHlCQUF5Qjs0RkFBekIseUJBQXlCO2tCQUhyQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSx1QkFBdUI7aUJBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdodW1hblJlYWRhYmxlQnl0ZVNpemUnXG59KVxuZXhwb3J0IGNsYXNzIEh1bWFuUmVhZGFibGVCeXRlU2l6ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKGJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmIChieXRlcyA8IDEwMjQpIHtcbiAgICAgIHJldHVybiBgJHtieXRlc31CYDtcbiAgICB9XG5cbiAgICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZygxMDI0KSk7XG4gICAgY29uc3QgbnVtID0gYnl0ZXMgLyBNYXRoLnBvdygxMDI0LCBpKTtcbiAgICBjb25zdCByb3VuZCA9IE1hdGgucm91bmQobnVtKTtcbiAgICBjb25zdCBkaXNwbGF5ID1cbiAgICAgIHJvdW5kIDwgMTAgPyBudW0udG9GaXhlZCgyKSA6IHJvdW5kIDwgMTAwID8gbnVtLnRvRml4ZWQoMSkgOiByb3VuZDtcblxuICAgIHJldHVybiBgJHtkaXNwbGF5fSR7J0tNR1RQRVpZJ1tpIC0gMV19QmA7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './human-readable-byte-size.pipe';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2ZpbGUtdXBsb2FkL3BpcGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2h1bWFuLXJlYWRhYmxlLWJ5dGUtc2l6ZS5waXBlJztcbiJdfQ==
|