@ifsworld/granite-components 14.2.2 → 15.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/date-picker/lib/date-picker-base.d.ts +3 -3
- package/date-picker/lib/date-picker.module.d.ts +2 -2
- package/fesm2022/ifsworld-granite-components-carousel.mjs +15 -13
- package/fesm2022/ifsworld-granite-components-carousel.mjs.map +1 -1
- package/fesm2022/ifsworld-granite-components-date-picker.mjs +34 -30
- package/fesm2022/ifsworld-granite-components-date-picker.mjs.map +1 -1
- package/fesm2022/ifsworld-granite-components-file-upload.mjs +13 -12
- package/fesm2022/ifsworld-granite-components-file-upload.mjs.map +1 -1
- package/fesm2022/ifsworld-granite-components-table.mjs +32 -29
- package/fesm2022/ifsworld-granite-components-table.mjs.map +1 -1
- package/fesm2022/ifsworld-granite-components-tooltip.mjs +16 -15
- package/fesm2022/ifsworld-granite-components-tooltip.mjs.map +1 -1
- package/fesm2022/ifsworld-granite-components.mjs +340 -322
- package/fesm2022/ifsworld-granite-components.mjs.map +1 -1
- package/lib/contacts/contacts-trigger/contacts-trigger-data.d.ts +1 -1
- package/lib/core/overlay-base.d.ts +1 -1
- package/lib/core/radio-checkbox-base.d.ts +1 -1
- package/lib/menu/menu-base.d.ts +1 -1
- package/lib/progress-bar/progress-bar-legend-base.d.ts +1 -1
- package/package.json +9 -21
- package/src/lib/core/style/_mixins.scss +16 -11
- package/src/lib/core/style/_range-functions.scss +6 -4
- package/src/lib/core/style/_z-index.scss +6 -4
- package/table/lib/cell/cell.d.ts +1 -1
- package/esm2022/carousel/ifsworld-granite-components-carousel.mjs +0 -5
- package/esm2022/carousel/index.mjs +0 -3
- package/esm2022/carousel/lib/carousel.component.mjs +0 -154
- package/esm2022/carousel/lib/carousel.module.mjs +0 -31
- package/esm2022/date-picker/ifsworld-granite-components-date-picker.mjs +0 -5
- package/esm2022/date-picker/index.mjs +0 -5
- package/esm2022/date-picker/lib/date-picker-base.mjs +0 -53
- package/esm2022/date-picker/lib/date-picker-trigger-for.directive.mjs +0 -228
- package/esm2022/date-picker/lib/date-picker.component.mjs +0 -30
- package/esm2022/date-picker/lib/date-picker.module.mjs +0 -58
- package/esm2022/date-picker/lib/date-range-picker.component.mjs +0 -46
- package/esm2022/file-upload/ifsworld-granite-components-file-upload.mjs +0 -5
- package/esm2022/file-upload/index.mjs +0 -3
- package/esm2022/file-upload/lib/directives/file-drag-and-drop.directive.mjs +0 -102
- package/esm2022/file-upload/lib/file-upload.component.mjs +0 -182
- package/esm2022/file-upload/lib/file-upload.constants.mjs +0 -45
- package/esm2022/file-upload/lib/file-upload.module.mjs +0 -32
- package/esm2022/file-upload/lib/file-upload.utils.mjs +0 -13
- package/esm2022/ifsworld-granite-components.mjs +0 -5
- package/esm2022/index.mjs +0 -90
- package/esm2022/lib/arrange-grid/arrange-grid-item.component.mjs +0 -44
- package/esm2022/lib/arrange-grid/arrange-grid.component.mjs +0 -125
- package/esm2022/lib/arrange-grid/arrange-grid.module.mjs +0 -19
- package/esm2022/lib/avatar/avatar-default-status/avatar-default-status.component.mjs +0 -36
- package/esm2022/lib/avatar/avatar.component.mjs +0 -68
- package/esm2022/lib/avatar/avatar.component.public-types.mjs +0 -7
- package/esm2022/lib/avatar/avatar.module.mjs +0 -37
- package/esm2022/lib/avatar/custom-avatar-status.directive.mjs +0 -18
- package/esm2022/lib/avatar/empty-avatar/empty-avatar.component.mjs +0 -37
- package/esm2022/lib/badge/badge.component.mjs +0 -39
- package/esm2022/lib/badge/badge.module.mjs +0 -18
- package/esm2022/lib/badge/testing/badge.harness.mjs +0 -25
- package/esm2022/lib/button/button.component.mjs +0 -87
- package/esm2022/lib/button/button.module.mjs +0 -16
- package/esm2022/lib/card-list/card/card-avatar.component.mjs +0 -11
- package/esm2022/lib/card-list/card/card-content/card-actions.component.mjs +0 -11
- package/esm2022/lib/card-list/card/card-content/card-body.component.mjs +0 -11
- package/esm2022/lib/card-list/card/card-content/card-content.component.mjs +0 -11
- package/esm2022/lib/card-list/card/card-content/card-footer.component.mjs +0 -11
- package/esm2022/lib/card-list/card/card-content/card-header-subtitle.component.mjs +0 -11
- package/esm2022/lib/card-list/card/card-content/card-header-title.component.mjs +0 -11
- package/esm2022/lib/card-list/card/card-content/card-header.component.mjs +0 -11
- package/esm2022/lib/card-list/card/card.component.mjs +0 -11
- package/esm2022/lib/card-list/card-list.component.mjs +0 -24
- package/esm2022/lib/card-list/card-list.module.mjs +0 -68
- package/esm2022/lib/checkbox/checkbox-group.component.mjs +0 -17
- package/esm2022/lib/checkbox/checkbox.component.mjs +0 -99
- package/esm2022/lib/checkbox/checkbox.module.mjs +0 -17
- package/esm2022/lib/chips/chip-input.mjs +0 -195
- package/esm2022/lib/chips/chip-list.component.mjs +0 -567
- package/esm2022/lib/chips/chip.component.mjs +0 -287
- package/esm2022/lib/chips/chips.module.mjs +0 -31
- package/esm2022/lib/collapsible-group/collapsible-group-body.directive.mjs +0 -17
- package/esm2022/lib/collapsible-group/collapsible-group-header.directive.mjs +0 -17
- package/esm2022/lib/collapsible-group/collapsible-group.component.mjs +0 -46
- package/esm2022/lib/collapsible-group/collapsible-group.module.mjs +0 -33
- package/esm2022/lib/contacts/contact-item/contact-item.component.mjs +0 -27
- package/esm2022/lib/contacts/contact-item-default-status/contact-item-default-status.component.mjs +0 -20
- package/esm2022/lib/contacts/contact-item-title/contact-item-title.component.mjs +0 -15
- package/esm2022/lib/contacts/contacts-profile/contacts-profile.component.mjs +0 -18
- package/esm2022/lib/contacts/contacts-trigger/contacts-trigger-data.mjs +0 -24
- package/esm2022/lib/contacts/contacts-trigger/contacts-trigger-for.directive.mjs +0 -231
- package/esm2022/lib/contacts/contacts-types/contacts.component.private-types.mjs +0 -2
- package/esm2022/lib/contacts/contacts-types/contacts.component.public-types.mjs +0 -9
- package/esm2022/lib/contacts/contacts.component.mjs +0 -92
- package/esm2022/lib/contacts/contacts.module.mjs +0 -53
- package/esm2022/lib/contacts/custom-profile.directive.mjs +0 -16
- package/esm2022/lib/contacts/custom-status.directive.mjs +0 -18
- package/esm2022/lib/core/animation.mjs +0 -34
- package/esm2022/lib/core/client-environment.mjs +0 -20
- package/esm2022/lib/core/common-behaviors/disabled.mjs +0 -27
- package/esm2022/lib/core/core.module.mjs +0 -44
- package/esm2022/lib/core/devices/client-input-desktop.directive.mjs +0 -29
- package/esm2022/lib/core/devices/client-input-touch.directive.mjs +0 -29
- package/esm2022/lib/core/devices/client-output-desktop.directive.mjs +0 -29
- package/esm2022/lib/core/devices/client-output-touch.directive.mjs +0 -29
- package/esm2022/lib/core/hide-on-overflow.directive.mjs +0 -83
- package/esm2022/lib/core/overlay-base.mjs +0 -18
- package/esm2022/lib/core/overlay-position-config.mjs +0 -2
- package/esm2022/lib/core/overlay-trigger-for-base.directive.mjs +0 -121
- package/esm2022/lib/core/overlay.service.mjs +0 -90
- package/esm2022/lib/core/pipes/pure-pipes.module.mjs +0 -16
- package/esm2022/lib/core/pipes/title.pipe.mjs +0 -21
- package/esm2022/lib/core/radio-checkbox-base.mjs +0 -19
- package/esm2022/lib/core/services/names-utils-service.mjs +0 -51
- package/esm2022/lib/core/theme.library.mjs +0 -59
- package/esm2022/lib/core/types.mjs +0 -2
- package/esm2022/lib/grid/grid.component.mjs +0 -128
- package/esm2022/lib/grid/grid.module.mjs +0 -18
- package/esm2022/lib/icon/icon.component.mjs +0 -43
- package/esm2022/lib/icon/icon.module.mjs +0 -16
- package/esm2022/lib/input-field/input-field.component.mjs +0 -167
- package/esm2022/lib/input-field/input-field.module.mjs +0 -20
- package/esm2022/lib/label/label.component.mjs +0 -31
- package/esm2022/lib/label/label.module.mjs +0 -18
- package/esm2022/lib/menu/divider.directive.mjs +0 -23
- package/esm2022/lib/menu/menu-base.mjs +0 -354
- package/esm2022/lib/menu/menu-desktop-animations.mjs +0 -23
- package/esm2022/lib/menu/menu-errors.mjs +0 -37
- package/esm2022/lib/menu/menu-item.component.mjs +0 -89
- package/esm2022/lib/menu/menu-panel.mjs +0 -7
- package/esm2022/lib/menu/menu-positions.mjs +0 -9
- package/esm2022/lib/menu/menu-touch-animations.mjs +0 -137
- package/esm2022/lib/menu/menu-touch-close.component.mjs +0 -13
- package/esm2022/lib/menu/menu-touch-title.component.mjs +0 -59
- package/esm2022/lib/menu/menu-trigger-for.directive.mjs +0 -738
- package/esm2022/lib/menu/menu.component.mjs +0 -30
- package/esm2022/lib/menu/menu.module.mjs +0 -55
- package/esm2022/lib/menu/testing/menu.harness.mjs +0 -109
- package/esm2022/lib/menu/title.directive.mjs +0 -17
- package/esm2022/lib/progress-bar/progress-bar-legend/progress-bar-legend.component.mjs +0 -19
- package/esm2022/lib/progress-bar/progress-bar-legend-base.mjs +0 -17
- package/esm2022/lib/progress-bar/progress-bar-legend-trigger-for.directive.mjs +0 -54
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +0 -92
- package/esm2022/lib/progress-bar/progress-bar.model.mjs +0 -2
- package/esm2022/lib/progress-bar/progress-bar.module.mjs +0 -44
- package/esm2022/lib/radio-button/radio-button.component.mjs +0 -119
- package/esm2022/lib/radio-button/radio-button.module.mjs +0 -17
- package/esm2022/lib/radio-button/radio-group.component.mjs +0 -17
- package/esm2022/lib/toggle-switch/toggle-switch.component.mjs +0 -100
- package/esm2022/lib/toggle-switch/toggle-switch.module.mjs +0 -16
- package/esm2022/table/ifsworld-granite-components-table.mjs +0 -5
- package/esm2022/table/index.mjs +0 -5
- package/esm2022/table/lib/cell/cell-align/cell-align-classes.directive.mjs +0 -26
- package/esm2022/table/lib/cell/cell.mjs +0 -15
- package/esm2022/table/lib/cell/table-data-cell.component.mjs +0 -25
- package/esm2022/table/lib/cell/table-header-cell.component.mjs +0 -14
- package/esm2022/table/lib/column/table-column.directive.mjs +0 -33
- package/esm2022/table/lib/column-size/column-size.directive.mjs +0 -34
- package/esm2022/table/lib/table-constants.library.mjs +0 -7
- package/esm2022/table/lib/table.component.mjs +0 -62
- package/esm2022/table/lib/table.model.mjs +0 -2
- package/esm2022/table/lib/table.module.mjs +0 -38
- package/esm2022/tooltip/ifsworld-granite-components-tooltip.mjs +0 -5
- package/esm2022/tooltip/index.mjs +0 -4
- package/esm2022/tooltip/lib/Services/granite-tooltip.service.mjs +0 -28
- package/esm2022/tooltip/lib/tooltip-constants.library.mjs +0 -4
- package/esm2022/tooltip/lib/tooltip-trigger-for.directive.mjs +0 -147
- package/esm2022/tooltip/lib/tooltip.component.mjs +0 -14
- package/esm2022/tooltip/lib/tooltip.module.mjs +0 -19
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZzd29ybGQtZ3Jhbml0ZS1jb21wb25lbnRzLWZpbGUtdXBsb2FkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvZmlsZS11cGxvYWQvc3JjL2lmc3dvcmxkLWdyYW5pdGUtY29tcG9uZW50cy1maWxlLXVwbG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './lib/file-upload.module';
|
|
2
|
-
export * from './lib/file-upload.component';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy9maWxlLXVwbG9hZC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZmlsZS11cGxvYWQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGUtdXBsb2FkLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { Directive, EventEmitter, HostBinding, HostListener, Input, Output, } from '@angular/core';
|
|
2
|
-
import { FilUploadErrorTypes } from '../file-upload.constants';
|
|
3
|
-
import { validFileTypes } from '../file-upload.utils';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class GraniteFileDragAndDropDirective {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.currentFiles = [];
|
|
8
|
-
this.droppedFiles = new EventEmitter();
|
|
9
|
-
this.isFileOver = new EventEmitter();
|
|
10
|
-
this.fileUploadValidation = new EventEmitter();
|
|
11
|
-
}
|
|
12
|
-
onDragOver(event) {
|
|
13
|
-
event.preventDefault();
|
|
14
|
-
event.stopPropagation();
|
|
15
|
-
const transferFiles = event.dataTransfer?.items ?? [];
|
|
16
|
-
if (!validFileTypes(this.accept, Array.from(transferFiles))) {
|
|
17
|
-
this.fileBrowseError = true;
|
|
18
|
-
this.fileUploadValidation.emit({
|
|
19
|
-
isError: this.fileBrowseError,
|
|
20
|
-
type: FilUploadErrorTypes.ExtensionNotSupported,
|
|
21
|
-
});
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
if (!this.multiFileUploadEnabled &&
|
|
25
|
-
(transferFiles.length > 1 || this.currentFiles.length >= 1)) {
|
|
26
|
-
this.fileBrowseError = true;
|
|
27
|
-
this.fileUploadValidation.emit({
|
|
28
|
-
isError: this.fileBrowseError,
|
|
29
|
-
type: FilUploadErrorTypes.MultipleFilesNotSupported,
|
|
30
|
-
});
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
this.fileOver = true;
|
|
34
|
-
this.isFileOver.emit(this.fileOver);
|
|
35
|
-
}
|
|
36
|
-
onDragLeave(event) {
|
|
37
|
-
event.preventDefault();
|
|
38
|
-
event.stopPropagation();
|
|
39
|
-
this.fileOver = false;
|
|
40
|
-
this.fileBrowseError = false;
|
|
41
|
-
this.fileUploadValidation.emit({ isError: false, type: null });
|
|
42
|
-
this.isFileOver.emit(this.fileOver);
|
|
43
|
-
}
|
|
44
|
-
onDrop(event) {
|
|
45
|
-
event.preventDefault();
|
|
46
|
-
event.stopPropagation();
|
|
47
|
-
if (this.fileBrowseError) {
|
|
48
|
-
this.fileBrowseError = false;
|
|
49
|
-
this.fileUploadValidation.emit({
|
|
50
|
-
isError: this.fileBrowseError,
|
|
51
|
-
type: null,
|
|
52
|
-
});
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
this.currentFiles = [
|
|
56
|
-
...this.currentFiles,
|
|
57
|
-
...Array.from(event.dataTransfer.files),
|
|
58
|
-
];
|
|
59
|
-
this.fileOver = false;
|
|
60
|
-
this.isFileOver.emit(this.fileOver);
|
|
61
|
-
if (this.currentFiles.length > 0) {
|
|
62
|
-
this.droppedFiles.emit(this.currentFiles);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteFileDragAndDropDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
66
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: GraniteFileDragAndDropDirective, selector: "[graniteFileDragAndDrop]", inputs: { multiFileUploadEnabled: "multiFileUploadEnabled", accept: "accept", currentFiles: "currentFiles" }, outputs: { droppedFiles: "droppedFiles", isFileOver: "isFileOver", fileUploadValidation: "fileUploadValidation" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" }, properties: { "class.file-over": "this.fileOver", "class.file-error": "this.fileBrowseError" } }, exportAs: ["graniteFileDragAndDrop"], ngImport: i0 }); }
|
|
67
|
-
}
|
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteFileDragAndDropDirective, decorators: [{
|
|
69
|
-
type: Directive,
|
|
70
|
-
args: [{
|
|
71
|
-
selector: '[graniteFileDragAndDrop]',
|
|
72
|
-
exportAs: 'graniteFileDragAndDrop',
|
|
73
|
-
}]
|
|
74
|
-
}], propDecorators: { fileOver: [{
|
|
75
|
-
type: HostBinding,
|
|
76
|
-
args: ['class.file-over']
|
|
77
|
-
}], fileBrowseError: [{
|
|
78
|
-
type: HostBinding,
|
|
79
|
-
args: ['class.file-error']
|
|
80
|
-
}], multiFileUploadEnabled: [{
|
|
81
|
-
type: Input
|
|
82
|
-
}], accept: [{
|
|
83
|
-
type: Input
|
|
84
|
-
}], currentFiles: [{
|
|
85
|
-
type: Input
|
|
86
|
-
}], droppedFiles: [{
|
|
87
|
-
type: Output
|
|
88
|
-
}], isFileOver: [{
|
|
89
|
-
type: Output
|
|
90
|
-
}], fileUploadValidation: [{
|
|
91
|
-
type: Output
|
|
92
|
-
}], onDragOver: [{
|
|
93
|
-
type: HostListener,
|
|
94
|
-
args: ['dragover', ['$event']]
|
|
95
|
-
}], onDragLeave: [{
|
|
96
|
-
type: HostListener,
|
|
97
|
-
args: ['dragleave', ['$event']]
|
|
98
|
-
}], onDrop: [{
|
|
99
|
-
type: HostListener,
|
|
100
|
-
args: ['drop', ['$event']]
|
|
101
|
-
}] } });
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcmFnLWFuZC1kcm9wLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZ3Jhbml0ZS1jb21wb25lbnRzL2ZpbGUtdXBsb2FkL3NyYy9saWIvZGlyZWN0aXZlcy9maWxlLWRyYWctYW5kLWRyb3AuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1CLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQU10RCxNQUFNLE9BQU8sK0JBQStCO0lBSjVDO1FBa0JFLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBRzFCLGlCQUFZLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFHaEUsZUFBVSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBR2hFLHlCQUFvQixHQUNsQixJQUFJLFlBQVksRUFBbUIsQ0FBQztLQXVFdkM7SUFwRUMsVUFBVSxDQUFDLEtBQWdCO1FBQ3pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1FBRXRELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM1RCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDO2dCQUM3QixPQUFPLEVBQUUs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O3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFpQ3BDLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBWXJDLE1BQU07c0JBREwsWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkRXJyb3IsIEZpbFVwbG9hZEVycm9yVHlwZXMgfSBmcm9tICcuLi9maWxlLXVwbG9hZC5jb25zdGFudHMnO1xuaW1wb3J0IHsgdmFsaWRGaWxlVHlwZXMgfSBmcm9tICcuLi9maWxlLXVwbG9hZC51dGlscyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tncmFuaXRlRmlsZURyYWdBbmREcm9wXScsXG4gIGV4cG9ydEFzOiAnZ3Jhbml0ZUZpbGVEcmFnQW5kRHJvcCcsXG59KVxuZXhwb3J0IGNsYXNzIEdyYW5pdGVGaWxlRHJhZ0FuZERyb3BEaXJlY3RpdmUge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZpbGUtb3ZlcicpXG4gIGZpbGVPdmVyOiBib29sZWFuO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmlsZS1lcnJvcicpXG4gIGZpbGVCcm93c2VFcnJvcjogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBtdWx0aUZpbGVVcGxvYWRFbmFibGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIGFjY2VwdDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGN1cnJlbnRGaWxlczogRmlsZVtdID0gW107XG5cbiAgQE91dHB1dCgpXG4gIGRyb3BwZWRGaWxlczogRXZlbnRFbWl0dGVyPEZpbGVbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVbXT4oKTtcblxuICBAT3V0cHV0KClcbiAgaXNGaWxlT3ZlcjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBPdXRwdXQoKVxuICBmaWxlVXBsb2FkVmFsaWRhdGlvbjogRXZlbnRFbWl0dGVyPEZpbGVVcGxvYWRFcnJvcj4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8RmlsZVVwbG9hZEVycm9yPigpO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSlcbiAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGNvbnN0IHRyYW5zZmVyRmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXI/Lml0ZW1zID8/IFtdO1xuXG4gICAgaWYgKCF2YWxpZEZpbGVUeXBlcyh0aGlzLmFjY2VwdCwgQXJyYXkuZnJvbSh0cmFuc2ZlckZpbGVzKSkpIHtcbiAgICAgIHRoaXMuZmlsZUJyb3dzZUVycm9yID0gdHJ1ZTtcbiAgICAgIHRoaXMuZmlsZVVwbG9hZFZhbGlkYXRpb24uZW1pdCh7XG4gICAgICAgIGlzRXJyb3I6IHRoaXMuZmlsZUJyb3dzZUVycm9yLFxuICAgICAgICB0eXBlOiBGaWxVcGxvYWRFcnJvclR5cGVzLkV4dGVuc2lvbk5vdFN1cHBvcnRlZCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICF0aGlzLm11bHRpRmlsZVVwbG9hZEVuYWJsZWQgJiZcbiAgICAgICh0cmFuc2ZlckZpbGVzLmxlbmd0aCA+IDEgfHwgdGhpcy5jdXJyZW50RmlsZXMubGVuZ3RoID49IDEpXG4gICAgKSB7XG4gICAgICB0aGlzLmZpbGVCcm93c2VFcnJvciA9IHRydWU7XG4gICAgICB0aGlzLmZpbGVVcGxvYWRWYWxpZGF0aW9uLmVtaXQoe1xuICAgICAgICBpc0Vycm9yOiB0aGlzLmZpbGVCcm93c2VFcnJvcixcbiAgICAgICAgdHlwZTogRmlsVXBsb2FkRXJyb3JUeXBlcy5NdWx0aXBsZUZpbGVzTm90U3VwcG9ydGVkLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5maWxlT3ZlciA9IHRydWU7XG4gICAgdGhpcy5pc0ZpbGVPdmVyLmVtaXQodGhpcy5maWxlT3Zlcik7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbJyRldmVudCddKVxuICBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIHRoaXMuZmlsZU92ZXIgPSBmYWxzZTtcbiAgICB0aGlzLmZpbGVCcm93c2VFcnJvciA9IGZhbHNlO1xuICAgIHRoaXMuZmlsZVVwbG9hZFZhbGlkYXRpb24uZW1pdCh7IGlzRXJyb3I6IGZhbHNlLCB0eXBlOiBudWxsIH0pO1xuICAgIHRoaXMuaXNGaWxlT3Zlci5lbWl0KHRoaXMuZmlsZU92ZXIpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pXG4gIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICh0aGlzLmZpbGVCcm93c2VFcnJvcikge1xuICAgICAgdGhpcy5maWxlQnJvd3NlRXJyb3IgPSBmYWxzZTtcbiAgICAgIHRoaXMuZmlsZVVwbG9hZFZhbGlkYXRpb24uZW1pdCh7XG4gICAgICAgIGlzRXJyb3I6IHRoaXMuZmlsZUJyb3dzZUVycm9yLFxuICAgICAgICB0eXBlOiBudWxsLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50RmlsZXMgPSBbXG4gICAgICAuLi50aGlzLmN1cnJlbnRGaWxlcyxcbiAgICAgIC4uLkFycmF5LmZyb20oZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKSxcbiAgICBdO1xuXG4gICAgdGhpcy5maWxlT3ZlciA9IGZhbHNlO1xuICAgIHRoaXMuaXNGaWxlT3Zlci5lbWl0KHRoaXMuZmlsZU92ZXIpO1xuXG4gICAgaWYgKHRoaXMuY3VycmVudEZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuZHJvcHBlZEZpbGVzLmVtaXQodGhpcy5jdXJyZW50RmlsZXMpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
import { Component, ElementRef, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
2
|
-
import { DEFAULT_BROWSE_BUTTON_TEXT, DEFAULT_CANCEL_BUTTON_TEXT, DEFAULT_DROP_PLACEHOLDER_TEXT, DEFAULT_DROPZONE_HINT, DEFAULT_DROPZONE_TEXT, DEFAULT_FILE_BROWSE_BUTTON_ICON, DEFAULT_ACCEPT_TYPE, DEFAULT_MULTI_FILE_SUPPORT, DEFAULT_REMOVE_BUTTON_TEXT, DEFAULT_RETRY_BUTTON_TEXT, DEFAULT_UPLOAD_BUTTON_TEXT, DEFAULT_UPLOAD_ICON, DEFAULT_UPLOAD_TITLE, fileSizes, FileUploadStatus, FilUploadErrorTypes, DEFAULT_RESPONSIVE_OPTIONS, DEFAULT_VISIBLE_FILES, } from './file-upload.constants';
|
|
3
|
-
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
|
-
import { validFileTypes } from './file-upload.utils';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common";
|
|
7
|
-
import * as i2 from "@ifsworld/granite-components";
|
|
8
|
-
import * as i3 from "@ifsworld/granite-components/carousel";
|
|
9
|
-
import * as i4 from "./directives/file-drag-and-drop.directive";
|
|
10
|
-
export class GraniteFileUploadComponent {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.accept = DEFAULT_ACCEPT_TYPE;
|
|
13
|
-
this.uploadTitle = DEFAULT_UPLOAD_TITLE;
|
|
14
|
-
this.uploadIcon = DEFAULT_UPLOAD_ICON;
|
|
15
|
-
this.browseIcon = DEFAULT_FILE_BROWSE_BUTTON_ICON;
|
|
16
|
-
this.dropZoneText = DEFAULT_DROPZONE_TEXT;
|
|
17
|
-
this.browseButtonText = DEFAULT_BROWSE_BUTTON_TEXT;
|
|
18
|
-
this.dropPlaceholderText = DEFAULT_DROP_PLACEHOLDER_TEXT;
|
|
19
|
-
this.dropZoneHint = DEFAULT_DROPZONE_HINT;
|
|
20
|
-
this.removeButtonText = DEFAULT_REMOVE_BUTTON_TEXT;
|
|
21
|
-
this.uploadButtonText = DEFAULT_UPLOAD_BUTTON_TEXT;
|
|
22
|
-
this.retryButtonText = DEFAULT_RETRY_BUTTON_TEXT;
|
|
23
|
-
this.cancelButtonText = DEFAULT_CANCEL_BUTTON_TEXT;
|
|
24
|
-
this.multiFileUpload = DEFAULT_MULTI_FILE_SUPPORT;
|
|
25
|
-
this.responsiveOptions = DEFAULT_RESPONSIVE_OPTIONS;
|
|
26
|
-
this.browseOrDragFiles = new EventEmitter();
|
|
27
|
-
this.removeFiles = new EventEmitter();
|
|
28
|
-
this.filesUpload = new EventEmitter();
|
|
29
|
-
this.fileUploadValidation = new EventEmitter();
|
|
30
|
-
this.selectedFiles = [];
|
|
31
|
-
this.previewReadyFiles = [];
|
|
32
|
-
this.isFileOnDropzone = false;
|
|
33
|
-
this.FileUploadStatus = FileUploadStatus;
|
|
34
|
-
this.fileError = false;
|
|
35
|
-
this.numVisible = DEFAULT_VISIBLE_FILES;
|
|
36
|
-
this._uploadStatus = FileUploadStatus.NotStarted;
|
|
37
|
-
this._autoUpload = true;
|
|
38
|
-
}
|
|
39
|
-
get uploadStatus() {
|
|
40
|
-
return this._uploadStatus;
|
|
41
|
-
}
|
|
42
|
-
set uploadStatus(status) {
|
|
43
|
-
this._uploadStatus = status;
|
|
44
|
-
}
|
|
45
|
-
get autoUpload() {
|
|
46
|
-
return this._autoUpload;
|
|
47
|
-
}
|
|
48
|
-
set autoUpload(value) {
|
|
49
|
-
this._autoUpload = coerceBooleanProperty(value);
|
|
50
|
-
}
|
|
51
|
-
fileBrowseHandler(event) {
|
|
52
|
-
const target = event.target;
|
|
53
|
-
const files = Array.from(target.files);
|
|
54
|
-
if (!validFileTypes(this.accept, files)) {
|
|
55
|
-
this.fileUploadValidation.emit({
|
|
56
|
-
isError: true,
|
|
57
|
-
type: FilUploadErrorTypes.ExtensionNotSupported,
|
|
58
|
-
});
|
|
59
|
-
this.fileDropRef.nativeElement.value = null;
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
this.selectedFiles = [...this.selectedFiles, ...files];
|
|
63
|
-
this.previewReadyFiles = this.prepareSelectedFiles(this.selectedFiles);
|
|
64
|
-
this.browseOrDragFiles.emit(this.previewReadyFiles);
|
|
65
|
-
}
|
|
66
|
-
fileRemoveHandler(fileToRemove) {
|
|
67
|
-
const index = this.previewReadyFiles.findIndex((file) => file.imageUrl === fileToRemove.imageUrl &&
|
|
68
|
-
file.file?.name === fileToRemove.file?.name &&
|
|
69
|
-
file.readableSize === fileToRemove.readableSize);
|
|
70
|
-
this.selectedFiles.splice(index, 1);
|
|
71
|
-
this.previewReadyFiles.splice(index, 1);
|
|
72
|
-
if (this.selectedFiles.length === 0 &&
|
|
73
|
-
this.previewReadyFiles.length === 0) {
|
|
74
|
-
this.fileDropRef.nativeElement.value = null;
|
|
75
|
-
this.uploadStatus = FileUploadStatus.NotStarted;
|
|
76
|
-
}
|
|
77
|
-
this.removeFiles.emit(this.previewReadyFiles);
|
|
78
|
-
}
|
|
79
|
-
onFilesDropHandler(files) {
|
|
80
|
-
if (!this.multiFileUpload &&
|
|
81
|
-
(this.selectedFiles.length === 1 || files.length !== 1)) {
|
|
82
|
-
this.fileError = true;
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
this.selectedFiles = files;
|
|
86
|
-
this.previewReadyFiles = this.prepareSelectedFiles(this.selectedFiles);
|
|
87
|
-
this.browseOrDragFiles.emit(this.previewReadyFiles);
|
|
88
|
-
}
|
|
89
|
-
onFileOverDropzone(isFileOver) {
|
|
90
|
-
this.isFileOnDropzone = isFileOver;
|
|
91
|
-
}
|
|
92
|
-
onFileDropError(validation) {
|
|
93
|
-
this.fileError = validation.isError;
|
|
94
|
-
this.fileDropErrorType = validation.type;
|
|
95
|
-
}
|
|
96
|
-
prepareSelectedFiles(files) {
|
|
97
|
-
return files.map((file) => ({
|
|
98
|
-
file,
|
|
99
|
-
readableSize: this.formatBytesToReadableSize(file.size, 2),
|
|
100
|
-
imageUrl: file.type.startsWith('image/')
|
|
101
|
-
? URL.createObjectURL(file)
|
|
102
|
-
: null,
|
|
103
|
-
}));
|
|
104
|
-
}
|
|
105
|
-
uploadFiles() {
|
|
106
|
-
this.filesUpload.emit();
|
|
107
|
-
}
|
|
108
|
-
retryUpload() {
|
|
109
|
-
this.filesUpload.emit();
|
|
110
|
-
}
|
|
111
|
-
cancelUpload() {
|
|
112
|
-
this.resetFileUpload();
|
|
113
|
-
this.removeFiles.emit(this.previewReadyFiles);
|
|
114
|
-
}
|
|
115
|
-
resetFileUpload() {
|
|
116
|
-
this.fileDropRef.nativeElement.value = null;
|
|
117
|
-
this.fileError = false;
|
|
118
|
-
this.fileDropErrorType = '';
|
|
119
|
-
this.selectedFiles = [];
|
|
120
|
-
this.previewReadyFiles = [];
|
|
121
|
-
this.uploadStatus = FileUploadStatus.NotStarted;
|
|
122
|
-
}
|
|
123
|
-
formatBytesToReadableSize(bytes, decimals) {
|
|
124
|
-
if (bytes === 0) {
|
|
125
|
-
return `0 ${fileSizes[0]}`;
|
|
126
|
-
}
|
|
127
|
-
const bytesPerKB = 1024;
|
|
128
|
-
const decimalPoints = decimals <= 0 ? 0 : decimals || 2;
|
|
129
|
-
const exp = Math.floor(Math.log(bytes) / Math.log(bytesPerKB));
|
|
130
|
-
return `${parseFloat((bytes / Math.pow(bytesPerKB, exp)).toFixed(decimalPoints))} ${fileSizes[exp]}`;
|
|
131
|
-
}
|
|
132
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteFileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
133
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: GraniteFileUploadComponent, selector: "granite-file-upload", inputs: { accept: "accept", uploadTitle: "uploadTitle", uploadIcon: "uploadIcon", browseIcon: "browseIcon", dropZoneText: "dropZoneText", browseButtonText: "browseButtonText", dropPlaceholderText: "dropPlaceholderText", dropZoneHint: "dropZoneHint", removeButtonText: "removeButtonText", uploadButtonText: "uploadButtonText", retryButtonText: "retryButtonText", cancelButtonText: "cancelButtonText", multiFileUpload: "multiFileUpload", responsiveOptions: "responsiveOptions", uploadStatus: "uploadStatus", autoUpload: "autoUpload" }, outputs: { browseOrDragFiles: "browseOrDragFiles", removeFiles: "removeFiles", filesUpload: "filesUpload", fileUploadValidation: "fileUploadValidation" }, viewQueries: [{ propertyName: "fileDropRef", first: true, predicate: ["fileDropRef"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"file-upload-wrapper\">\n <h2 class=\"file-upload-title\">{{ uploadTitle }}</h2>\n <div\n class=\"file-dropzone\"\n [ngClass]=\"{ 'upload-failed': uploadStatus === FileUploadStatus.Failed }\"\n graniteFileDragAndDrop\n (droppedFiles)=\"onFilesDropHandler($event)\"\n (isFileOver)=\"onFileOverDropzone($event)\"\n (fileUploadValidation)=\"onFileDropError($event)\"\n [multiFileUploadEnabled]=\"multiFileUpload\"\n [accept]=\"accept\"\n [currentFiles]=\"selectedFiles\"\n >\n <input\n class=\"file-input\"\n #fileDropRef\n type=\"file\"\n title=\"fileUpload\"\n (change)=\"fileBrowseHandler($event)\"\n [multiple]=\"multiFileUpload\"\n [accept]=\"accept\"\n />\n <div class=\"file-upload-body\">\n @if (!isFileOnDropzone && !fileError) {\n @switch (previewReadyFiles.length) {\n @case (0) {\n <div class=\"file-upload-browse\">\n <granite-icon\n class=\"file-upload-icon\"\n [fontIcon]=\"uploadIcon\"\n ></granite-icon>\n <div class=\"file-selection\">\n <h2 class=\"file-upload-body-text\">{{ dropZoneText }}</h2>\n <button\n class=\"file-select-button\"\n graniteButton\n (click)=\"fileDropRef.click()\"\n >\n <granite-icon\n class=\"browse-button-icon\"\n [fontIcon]=\"browseIcon\"\n ></granite-icon>\n <div class=\"browse-button-text\">{{ browseButtonText }}</div>\n </button>\n </div>\n <p *ngIf=\"dropZoneHint\" class=\"file-upload-hint\">\n {{ dropZoneHint }}\n </p>\n </div>\n }\n @case (1) {\n <ng-container\n *ngTemplateOutlet=\"\n filePreviewTemplate;\n context: { previewFile: previewReadyFiles[0] }\n \"\n ></ng-container>\n }\n @default {\n <granite-carousel\n [items]=\"previewReadyFiles\"\n [numVisible]=\"numVisible\"\n [responsiveOptions]=\"responsiveOptions\"\n >\n <ng-template let-previewFile #itemTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n filePreviewTemplate;\n context: { previewFile: previewFile }\n \"\n ></ng-container>\n </ng-template>\n </granite-carousel>\n }\n }\n } @else {\n <p class=\"drop-area-placeholder\">\n {{ dropPlaceholderText }}\n </p>\n }\n </div>\n </div>\n <div class=\"file-upload-footer\">\n <div class=\"footer-container\" *ngIf=\"previewReadyFiles.length > 0\">\n <button\n *ngIf=\"!autoUpload && uploadStatus === FileUploadStatus.NotStarted\"\n granitePrimaryButton\n (click)=\"uploadFiles()\"\n >\n {{ uploadButtonText }}\n </button>\n <ng-container *ngIf=\"uploadStatus === FileUploadStatus.Failed\">\n <button graniteButton (click)=\"cancelUpload()\">\n {{ cancelButtonText }}\n </button>\n <button\n class=\"retry-upload-button\"\n granitePrimaryButton\n (click)=\"retryUpload()\"\n >\n {{ retryButtonText }}\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #uploadingOverlay>\n <div class=\"file-preview-overlay\"></div>\n <div class=\"loading-container\">\n <div class=\"uploading-spinner\"></div>\n </div>\n</ng-template>\n\n<ng-template #uploadFailedOverlay>\n <div class=\"file-preview-overlay\"></div>\n</ng-template>\n\n<ng-template #filePreviewTemplate let-previewFile=\"previewFile\">\n <div class=\"file-preview-container\">\n @if (previewFile?.imageUrl) {\n <a\n class=\"file-preview-link\"\n [ngClass]=\"{\n 'uploading-in-progress': uploadStatus === FileUploadStatus.InProgress,\n 'upload-failed': uploadStatus === FileUploadStatus.Failed\n }\"\n [href]=\"previewFile?.imageUrl\"\n target=\"_blank\"\n >\n <div class=\"file-preview-holder\">\n <img\n role=\"presentation\"\n [src]=\"previewFile?.imageUrl\"\n [alt]=\"previewFile?.file?.name\"\n />\n <ng-container\n *ngIf=\"uploadStatus === FileUploadStatus.InProgress\"\n [ngTemplateOutlet]=\"uploadingOverlay\"\n ></ng-container>\n <ng-container\n *ngIf=\"uploadStatus === FileUploadStatus.Failed\"\n [ngTemplateOutlet]=\"uploadFailedOverlay\"\n >\n </ng-container>\n </div>\n <p class=\"file-name\" [title]=\"previewFile?.file?.name\">\n {{ previewFile?.file?.name }}\n </p>\n <p class=\"file-size\">{{ previewFile?.readableSize }}</p>\n </a>\n } @else {\n <div\n class=\"document-preview-link\"\n [ngClass]=\"{\n 'uploading-in-progress': uploadStatus === FileUploadStatus.InProgress,\n 'upload-failed': uploadStatus === FileUploadStatus.Failed\n }\"\n >\n <div class=\"document-preview-holder\">\n <granite-icon\n class=\"document-file-preview\"\n [class.upload-failed]=\"uploadStatus === FileUploadStatus.Failed\"\n [fontIcon]=\"'icon-document-alt'\"\n ></granite-icon>\n <ng-container\n *ngIf=\"uploadStatus === FileUploadStatus.InProgress\"\n [ngTemplateOutlet]=\"uploadingOverlay\"\n ></ng-container>\n </div>\n <p class=\"file-name\" [title]=\"previewFile?.file?.name\">\n {{ previewFile?.file?.name }}\n </p>\n <p class=\"file-size\">{{ previewFile?.readableSize }}</p>\n </div>\n }\n <button\n graniteButton\n *ngIf=\"\n [FileUploadStatus.Completed, FileUploadStatus.NotStarted].includes(\n uploadStatus\n )\n \"\n (click)=\"fileRemoveHandler(previewFile)\"\n >\n {{ removeButtonText }}\n </button>\n </div>\n</ng-template>\n", styles: [":host{width:100%}.file-upload-wrapper{display:flex;flex-direction:column;background-color:var(--granite-color-background);box-shadow:var(--granite-shadow-s);height:100%;width:100%}.file-upload-wrapper .file-upload-title{font-family:var(--granite-font-family-default);font-size:var(--granite-font-size-body-medium);font-weight:var(--granite-font-weight-bold);line-height:var(--granite-line-height-base-rem);color:var(--granite-color-text-weak);margin:0;padding:var(--granite-spacing-8) calc(var(--granite-spacing-16) * .813)}.file-upload-wrapper .file-dropzone{display:flex;flex-direction:column;border-width:var(--granite-border-width-focus);border-style:dashed;border-color:var(--granite-color-background-selected);border-radius:var(--granite-radius-m);margin:var(--granite-spacing-8);height:100%}.file-upload-wrapper .file-dropzone.upload-failed{border-color:var(--granite-color-categorical-4)}.file-upload-wrapper .file-dropzone.file-error{font-family:var(--granite-font-family-default);font-size:var(--granite-font-size-body-small);font-weight:var(--granite-font-weight-regular);line-height:var(--granite-line-height-flowing);color:var(--granite-color-text);text-align:center;background-color:var(--granite-color-background-lobby-failure);border-color:var(--granite-color-state-error);transition:background .15s ease}.file-upload-wrapper .file-dropzone.file-error .drop-area-placeholder{margin:0}.file-upload-wrapper .file-dropzone.file-over{font-family:var(--granite-font-family-default);font-size:var(--granite-font-size-body-small);font-weight:var(--granite-font-weight-regular);line-height:var(--granite-line-height-flowing);color:var(--granite-color-text);text-align:center;background-color:var(--granite-color-background-lobby-info);border-color:var(--granite-color-background-active);transition:background .15s ease}.file-upload-wrapper .file-dropzone.file-over .drop-area-placeholder{margin:0}.file-upload-wrapper .file-dropzone .file-input{opacity:0;position:absolute;width:0}.file-upload-wrapper .file-dropzone .file-upload-body{display:flex;align-items:center;justify-content:center;height:100%}.file-upload-wrapper .file-dropzone .file-upload-body .file-upload-browse{display:flex;flex-direction:column;gap:var(--granite-spacing-4);justify-content:center;align-items:center;padding:0 var(--granite-spacing-16)}.file-upload-wrapper .file-dropzone .file-upload-body .file-upload-browse .file-upload-icon{font-size:var(--granite-font-size-display-small);color:var(--granite-color-text)}.file-upload-wrapper .file-dropzone .file-upload-body .file-upload-browse .file-selection{display:flex;justify-content:space-between;align-items:center}.file-upload-wrapper .file-dropzone .file-upload-body .file-upload-browse .file-selection .file-upload-body-text{font-family:var(--granite-font-family-default);font-size:var(--granite-font-size-body-small);font-weight:var(--granite-font-weight-regular);line-height:var(--granite-line-height-flowing);color:var(--granite-color-text);text-align:center;width:100%;margin-inline-end:var(--granite-spacing-4)}.file-upload-wrapper .file-dropzone .file-upload-body .file-upload-browse .file-selection .file-select-button{display:flex;justify-content:space-between;align-items:center;color:var(--granite-color-text-link);padding-top:calc(var(--granite-spacing-24) / 4)}.file-upload-wrapper .file-dropzone .file-upload-body .file-upload-browse .file-selection .file-select-button .browse-button-icon{font-size:var(--granite-font-size-body);color:var(--granite-color-text-link);margin-inline-end:var(--granite-spacing-4);padding:0}.file-upload-wrapper .file-dropzone .file-upload-body .file-upload-browse .file-selection .file-select-button .browse-button-text{font-family:var(--granite-font-family-default);font-size:var(--granite-font-size-body-small);font-weight:var(--granite-font-weight-regular);line-height:calc(var(--granite-line-height-flowing) / 2);margin-top:var(--granite-spacing-4)}.file-upload-wrapper .file-dropzone .file-upload-body .file-upload-browse .file-selection .file-select-button:hover .browse-button-icon,.file-upload-wrapper .file-dropzone .file-upload-body .file-upload-browse .file-selection .file-select-button:hover .browse-button-text{color:var(--granite-color-text-inverse)}.file-upload-wrapper .file-dropzone .file-upload-body .file-upload-browse .file-upload-hint{font-family:var(--granite-font-family-default);font-size:var(--granite-font-size-body-small);font-weight:var(--granite-font-weight-regular);line-height:calc(var(--granite-line-height-base-rem) * 1.125);text-align:center;color:var(--granite-color-text-hint);margin:calc(var(--granite-spacing-base-rem) * .625) 0 0}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container{display:flex;flex-direction:column;align-items:center;width:100%;max-height:100%;padding:calc(var(--granite-spacing-base-rem) * .375)}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link{display:flex;flex-direction:column;align-items:center;max-width:50%;padding:0 var(--granite-spacing-8);text-decoration:none}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link:hover .file-name,.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link:hover .file-size{text-decoration:underline}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link .file-preview-holder{display:flex;justify-content:center;align-items:flex-end;position:relative;width:80px;height:114px}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link .file-preview-holder img{width:100%;height:100%;object-fit:cover;object-position:center;filter:brightness(250%)}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link .file-preview-holder .file-preview-overlay{position:absolute;top:0;inset-inline-start:0;width:100%;height:100%;pointer-events:none}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link .file-preview-holder .loading-container{position:absolute;top:50%;inset-inline-start:50%;transform:translate(-50%,-50%)}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link .file-preview-holder .loading-container .uploading-spinner{width:50px;height:50px;border-radius:50%;border:6px solid;border-color:var(--granite-color-background-page);border-right-color:var(--granite-color-background-active);animation:loading-keyframe 1s infinite linear}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link.upload-failed{pointer-events:none}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link.upload-failed .file-preview-holder img{opacity:.4}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link.upload-failed .file-preview-holder .file-preview-overlay{background-color:var(--granite-color-signal-failure);opacity:.2}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link.upload-failed .file-name,.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link.upload-failed .file-size{color:var(--granite-color-signal-failure);opacity:.4}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link.uploading-in-progress{pointer-events:none}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link.uploading-in-progress .file-preview-holder img,.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link.uploading-in-progress .file-preview-holder .file-preview-overlay,.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link.uploading-in-progress .file-name,.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link.uploading-in-progress .file-size{opacity:.4}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link .file-name{font-family:var(--granite-font-family-default);font-size:var(--granite-font-size-micro);font-weight:var(--granite-font-weight-regular);line-height:var(--granite-line-height-flowing);color:var(--granite-color-text-link);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:calc(var(--granite-spacing-base-rem) * .375) 0 0;width:100%;text-align:center}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link .file-size{font-family:var(--granite-font-family-default);font-size:var(--granite-font-size-micro);font-weight:var(--granite-font-weight-regular);line-height:calc(var(--granite-line-height-base-rem) * .625);color:var(--granite-color-text-link);margin:0 0 calc(var(--granite-spacing-base-rem) * .875)}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link{display:flex;flex-direction:column;align-items:center;max-width:50%;padding:0 var(--granite-spacing-8);text-decoration:none}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link .document-preview-holder{display:flex;justify-content:center;align-items:flex-end;position:relative;width:60px;height:60px}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link .document-preview-holder .document-file-preview{font-size:calc(var(--granite-font-size-body) * 3);color:var(--granite-color-text-hint);padding:calc(var(--granite-spacing-4) * 3) 0}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link .document-preview-holder .document-file-preview.upload-failed{color:var(--granite-color-background-failure)}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link .document-preview-holder .loading-container{position:absolute;top:50%;inset-inline-start:50%;transform:translate(-50%,-10%)}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link .document-preview-holder .loading-container .uploading-spinner{width:50px;height:50px;border-radius:50%;border:6px solid;border-color:var(--granite-color-background-page);border-right-color:var(--granite-color-background-active);animation:loading-keyframe 1s infinite linear}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link.upload-failed{pointer-events:none}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link.upload-failed .document-preview-holder .file-preview-overlay{background-color:var(--granite-color-signal-failure);opacity:.4}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link.upload-failed .file-name,.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link.upload-failed .file-size{color:var(--granite-color-signal-failure);opacity:.4}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link.uploading-in-progress{pointer-events:none}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link.uploading-in-progress .document-preview-holder .document-file-preview,.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link.uploading-in-progress .document-preview-holder .file-preview-overlay,.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link.uploading-in-progress .file-name,.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link.uploading-in-progress .file-size{opacity:.4}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link .file-name{font-family:var(--granite-font-family-default);font-size:var(--granite-font-size-micro);font-weight:var(--granite-font-weight-regular);line-height:var(--granite-line-height-flowing);color:var(--granite-color-text-weak);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:calc(var(--granite-spacing-base-rem) * .375) 0 0;width:100%;text-align:center}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link .file-size{font-family:var(--granite-font-family-default);font-size:var(--granite-font-size-micro);font-weight:var(--granite-font-weight-regular);line-height:calc(var(--granite-line-height-base-rem) * .625);color:var(--granite-color-text-week);margin:0 0 calc(var(--granite-spacing-base-rem) * .875)}.file-upload-wrapper .file-upload-footer{margin-inline:var(--granite-spacing-8);margin-bottom:var(--granite-spacing-8)}.file-upload-wrapper .file-upload-footer .footer-container{display:flex;justify-content:flex-end;align-items:center}.file-upload-wrapper .file-upload-footer .footer-container .retry-upload-button{margin-inline-start:var(--granite-spacing-8)}@keyframes loading-keyframe{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.GraniteButtonComponent, selector: "button[graniteButton], button[granitePrimaryButton], button[graniteFlatButton], button[graniteToolbarButton] ", inputs: ["disabled", "toggled"], exportAs: ["graniteButton"] }, { kind: "component", type: i2.GraniteIconComponent, selector: "granite-icon", inputs: ["fontIcon"] }, { kind: "component", type: i3.GraniteCarouselComponent, selector: "granite-carousel", inputs: ["items", "responsiveOptions", "numVisible", "numScroll", "circular", "prevButtonAriaLabel", "nextButtonAriaLabel", "shrinkToContent"] }, { kind: "directive", type: i4.GraniteFileDragAndDropDirective, selector: "[graniteFileDragAndDrop]", inputs: ["multiFileUploadEnabled", "accept", "currentFiles"], outputs: ["droppedFiles", "isFileOver", "fileUploadValidation"], exportAs: ["graniteFileDragAndDrop"] }] }); }
|
|
134
|
-
}
|
|
135
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteFileUploadComponent, decorators: [{
|
|
136
|
-
type: Component,
|
|
137
|
-
args: [{ selector: 'granite-file-upload', template: "<div class=\"file-upload-wrapper\">\n <h2 class=\"file-upload-title\">{{ uploadTitle }}</h2>\n <div\n class=\"file-dropzone\"\n [ngClass]=\"{ 'upload-failed': uploadStatus === FileUploadStatus.Failed }\"\n graniteFileDragAndDrop\n (droppedFiles)=\"onFilesDropHandler($event)\"\n (isFileOver)=\"onFileOverDropzone($event)\"\n (fileUploadValidation)=\"onFileDropError($event)\"\n [multiFileUploadEnabled]=\"multiFileUpload\"\n [accept]=\"accept\"\n [currentFiles]=\"selectedFiles\"\n >\n <input\n class=\"file-input\"\n #fileDropRef\n type=\"file\"\n title=\"fileUpload\"\n (change)=\"fileBrowseHandler($event)\"\n [multiple]=\"multiFileUpload\"\n [accept]=\"accept\"\n />\n <div class=\"file-upload-body\">\n @if (!isFileOnDropzone && !fileError) {\n @switch (previewReadyFiles.length) {\n @case (0) {\n <div class=\"file-upload-browse\">\n <granite-icon\n class=\"file-upload-icon\"\n [fontIcon]=\"uploadIcon\"\n ></granite-icon>\n <div class=\"file-selection\">\n <h2 class=\"file-upload-body-text\">{{ dropZoneText }}</h2>\n <button\n class=\"file-select-button\"\n graniteButton\n (click)=\"fileDropRef.click()\"\n >\n <granite-icon\n class=\"browse-button-icon\"\n [fontIcon]=\"browseIcon\"\n ></granite-icon>\n <div class=\"browse-button-text\">{{ browseButtonText }}</div>\n </button>\n </div>\n <p *ngIf=\"dropZoneHint\" class=\"file-upload-hint\">\n {{ dropZoneHint }}\n </p>\n </div>\n }\n @case (1) {\n <ng-container\n *ngTemplateOutlet=\"\n filePreviewTemplate;\n context: { previewFile: previewReadyFiles[0] }\n \"\n ></ng-container>\n }\n @default {\n <granite-carousel\n [items]=\"previewReadyFiles\"\n [numVisible]=\"numVisible\"\n [responsiveOptions]=\"responsiveOptions\"\n >\n <ng-template let-previewFile #itemTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n filePreviewTemplate;\n context: { previewFile: previewFile }\n \"\n ></ng-container>\n </ng-template>\n </granite-carousel>\n }\n }\n } @else {\n <p class=\"drop-area-placeholder\">\n {{ dropPlaceholderText }}\n </p>\n }\n </div>\n </div>\n <div class=\"file-upload-footer\">\n <div class=\"footer-container\" *ngIf=\"previewReadyFiles.length > 0\">\n <button\n *ngIf=\"!autoUpload && uploadStatus === FileUploadStatus.NotStarted\"\n granitePrimaryButton\n (click)=\"uploadFiles()\"\n >\n {{ uploadButtonText }}\n </button>\n <ng-container *ngIf=\"uploadStatus === FileUploadStatus.Failed\">\n <button graniteButton (click)=\"cancelUpload()\">\n {{ cancelButtonText }}\n </button>\n <button\n class=\"retry-upload-button\"\n granitePrimaryButton\n (click)=\"retryUpload()\"\n >\n {{ retryButtonText }}\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #uploadingOverlay>\n <div class=\"file-preview-overlay\"></div>\n <div class=\"loading-container\">\n <div class=\"uploading-spinner\"></div>\n </div>\n</ng-template>\n\n<ng-template #uploadFailedOverlay>\n <div class=\"file-preview-overlay\"></div>\n</ng-template>\n\n<ng-template #filePreviewTemplate let-previewFile=\"previewFile\">\n <div class=\"file-preview-container\">\n @if (previewFile?.imageUrl) {\n <a\n class=\"file-preview-link\"\n [ngClass]=\"{\n 'uploading-in-progress': uploadStatus === FileUploadStatus.InProgress,\n 'upload-failed': uploadStatus === FileUploadStatus.Failed\n }\"\n [href]=\"previewFile?.imageUrl\"\n target=\"_blank\"\n >\n <div class=\"file-preview-holder\">\n <img\n role=\"presentation\"\n [src]=\"previewFile?.imageUrl\"\n [alt]=\"previewFile?.file?.name\"\n />\n <ng-container\n *ngIf=\"uploadStatus === FileUploadStatus.InProgress\"\n [ngTemplateOutlet]=\"uploadingOverlay\"\n ></ng-container>\n <ng-container\n *ngIf=\"uploadStatus === FileUploadStatus.Failed\"\n [ngTemplateOutlet]=\"uploadFailedOverlay\"\n >\n </ng-container>\n </div>\n <p class=\"file-name\" [title]=\"previewFile?.file?.name\">\n {{ previewFile?.file?.name }}\n </p>\n <p class=\"file-size\">{{ previewFile?.readableSize }}</p>\n </a>\n } @else {\n <div\n class=\"document-preview-link\"\n [ngClass]=\"{\n 'uploading-in-progress': uploadStatus === FileUploadStatus.InProgress,\n 'upload-failed': uploadStatus === FileUploadStatus.Failed\n }\"\n >\n <div class=\"document-preview-holder\">\n <granite-icon\n class=\"document-file-preview\"\n [class.upload-failed]=\"uploadStatus === FileUploadStatus.Failed\"\n [fontIcon]=\"'icon-document-alt'\"\n ></granite-icon>\n <ng-container\n *ngIf=\"uploadStatus === FileUploadStatus.InProgress\"\n [ngTemplateOutlet]=\"uploadingOverlay\"\n ></ng-container>\n </div>\n <p class=\"file-name\" [title]=\"previewFile?.file?.name\">\n {{ previewFile?.file?.name }}\n </p>\n <p class=\"file-size\">{{ previewFile?.readableSize }}</p>\n </div>\n }\n <button\n graniteButton\n *ngIf=\"\n [FileUploadStatus.Completed, FileUploadStatus.NotStarted].includes(\n uploadStatus\n )\n \"\n (click)=\"fileRemoveHandler(previewFile)\"\n >\n {{ removeButtonText }}\n </button>\n </div>\n</ng-template>\n", styles: [":host{width:100%}.file-upload-wrapper{display:flex;flex-direction:column;background-color:var(--granite-color-background);box-shadow:var(--granite-shadow-s);height:100%;width:100%}.file-upload-wrapper .file-upload-title{font-family:var(--granite-font-family-default);font-size:var(--granite-font-size-body-medium);font-weight:var(--granite-font-weight-bold);line-height:var(--granite-line-height-base-rem);color:var(--granite-color-text-weak);margin:0;padding:var(--granite-spacing-8) calc(var(--granite-spacing-16) * .813)}.file-upload-wrapper .file-dropzone{display:flex;flex-direction:column;border-width:var(--granite-border-width-focus);border-style:dashed;border-color:var(--granite-color-background-selected);border-radius:var(--granite-radius-m);margin:var(--granite-spacing-8);height:100%}.file-upload-wrapper .file-dropzone.upload-failed{border-color:var(--granite-color-categorical-4)}.file-upload-wrapper .file-dropzone.file-error{font-family:var(--granite-font-family-default);font-size:var(--granite-font-size-body-small);font-weight:var(--granite-font-weight-regular);line-height:var(--granite-line-height-flowing);color:var(--granite-color-text);text-align:center;background-color:var(--granite-color-background-lobby-failure);border-color:var(--granite-color-state-error);transition:background .15s ease}.file-upload-wrapper .file-dropzone.file-error .drop-area-placeholder{margin:0}.file-upload-wrapper .file-dropzone.file-over{font-family:var(--granite-font-family-default);font-size:var(--granite-font-size-body-small);font-weight:var(--granite-font-weight-regular);line-height:var(--granite-line-height-flowing);color:var(--granite-color-text);text-align:center;background-color:var(--granite-color-background-lobby-info);border-color:var(--granite-color-background-active);transition:background .15s ease}.file-upload-wrapper .file-dropzone.file-over .drop-area-placeholder{margin:0}.file-upload-wrapper .file-dropzone .file-input{opacity:0;position:absolute;width:0}.file-upload-wrapper .file-dropzone .file-upload-body{display:flex;align-items:center;justify-content:center;height:100%}.file-upload-wrapper .file-dropzone .file-upload-body .file-upload-browse{display:flex;flex-direction:column;gap:var(--granite-spacing-4);justify-content:center;align-items:center;padding:0 var(--granite-spacing-16)}.file-upload-wrapper .file-dropzone .file-upload-body .file-upload-browse .file-upload-icon{font-size:var(--granite-font-size-display-small);color:var(--granite-color-text)}.file-upload-wrapper .file-dropzone .file-upload-body .file-upload-browse .file-selection{display:flex;justify-content:space-between;align-items:center}.file-upload-wrapper .file-dropzone .file-upload-body .file-upload-browse .file-selection .file-upload-body-text{font-family:var(--granite-font-family-default);font-size:var(--granite-font-size-body-small);font-weight:var(--granite-font-weight-regular);line-height:var(--granite-line-height-flowing);color:var(--granite-color-text);text-align:center;width:100%;margin-inline-end:var(--granite-spacing-4)}.file-upload-wrapper .file-dropzone .file-upload-body .file-upload-browse .file-selection .file-select-button{display:flex;justify-content:space-between;align-items:center;color:var(--granite-color-text-link);padding-top:calc(var(--granite-spacing-24) / 4)}.file-upload-wrapper .file-dropzone .file-upload-body .file-upload-browse .file-selection .file-select-button .browse-button-icon{font-size:var(--granite-font-size-body);color:var(--granite-color-text-link);margin-inline-end:var(--granite-spacing-4);padding:0}.file-upload-wrapper .file-dropzone .file-upload-body .file-upload-browse .file-selection .file-select-button .browse-button-text{font-family:var(--granite-font-family-default);font-size:var(--granite-font-size-body-small);font-weight:var(--granite-font-weight-regular);line-height:calc(var(--granite-line-height-flowing) / 2);margin-top:var(--granite-spacing-4)}.file-upload-wrapper .file-dropzone .file-upload-body .file-upload-browse .file-selection .file-select-button:hover .browse-button-icon,.file-upload-wrapper .file-dropzone .file-upload-body .file-upload-browse .file-selection .file-select-button:hover .browse-button-text{color:var(--granite-color-text-inverse)}.file-upload-wrapper .file-dropzone .file-upload-body .file-upload-browse .file-upload-hint{font-family:var(--granite-font-family-default);font-size:var(--granite-font-size-body-small);font-weight:var(--granite-font-weight-regular);line-height:calc(var(--granite-line-height-base-rem) * 1.125);text-align:center;color:var(--granite-color-text-hint);margin:calc(var(--granite-spacing-base-rem) * .625) 0 0}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container{display:flex;flex-direction:column;align-items:center;width:100%;max-height:100%;padding:calc(var(--granite-spacing-base-rem) * .375)}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link{display:flex;flex-direction:column;align-items:center;max-width:50%;padding:0 var(--granite-spacing-8);text-decoration:none}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link:hover .file-name,.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link:hover .file-size{text-decoration:underline}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link .file-preview-holder{display:flex;justify-content:center;align-items:flex-end;position:relative;width:80px;height:114px}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link .file-preview-holder img{width:100%;height:100%;object-fit:cover;object-position:center;filter:brightness(250%)}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link .file-preview-holder .file-preview-overlay{position:absolute;top:0;inset-inline-start:0;width:100%;height:100%;pointer-events:none}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link .file-preview-holder .loading-container{position:absolute;top:50%;inset-inline-start:50%;transform:translate(-50%,-50%)}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link .file-preview-holder .loading-container .uploading-spinner{width:50px;height:50px;border-radius:50%;border:6px solid;border-color:var(--granite-color-background-page);border-right-color:var(--granite-color-background-active);animation:loading-keyframe 1s infinite linear}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link.upload-failed{pointer-events:none}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link.upload-failed .file-preview-holder img{opacity:.4}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link.upload-failed .file-preview-holder .file-preview-overlay{background-color:var(--granite-color-signal-failure);opacity:.2}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link.upload-failed .file-name,.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link.upload-failed .file-size{color:var(--granite-color-signal-failure);opacity:.4}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link.uploading-in-progress{pointer-events:none}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link.uploading-in-progress .file-preview-holder img,.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link.uploading-in-progress .file-preview-holder .file-preview-overlay,.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link.uploading-in-progress .file-name,.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link.uploading-in-progress .file-size{opacity:.4}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link .file-name{font-family:var(--granite-font-family-default);font-size:var(--granite-font-size-micro);font-weight:var(--granite-font-weight-regular);line-height:var(--granite-line-height-flowing);color:var(--granite-color-text-link);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:calc(var(--granite-spacing-base-rem) * .375) 0 0;width:100%;text-align:center}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .file-preview-link .file-size{font-family:var(--granite-font-family-default);font-size:var(--granite-font-size-micro);font-weight:var(--granite-font-weight-regular);line-height:calc(var(--granite-line-height-base-rem) * .625);color:var(--granite-color-text-link);margin:0 0 calc(var(--granite-spacing-base-rem) * .875)}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link{display:flex;flex-direction:column;align-items:center;max-width:50%;padding:0 var(--granite-spacing-8);text-decoration:none}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link .document-preview-holder{display:flex;justify-content:center;align-items:flex-end;position:relative;width:60px;height:60px}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link .document-preview-holder .document-file-preview{font-size:calc(var(--granite-font-size-body) * 3);color:var(--granite-color-text-hint);padding:calc(var(--granite-spacing-4) * 3) 0}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link .document-preview-holder .document-file-preview.upload-failed{color:var(--granite-color-background-failure)}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link .document-preview-holder .loading-container{position:absolute;top:50%;inset-inline-start:50%;transform:translate(-50%,-10%)}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link .document-preview-holder .loading-container .uploading-spinner{width:50px;height:50px;border-radius:50%;border:6px solid;border-color:var(--granite-color-background-page);border-right-color:var(--granite-color-background-active);animation:loading-keyframe 1s infinite linear}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link.upload-failed{pointer-events:none}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link.upload-failed .document-preview-holder .file-preview-overlay{background-color:var(--granite-color-signal-failure);opacity:.4}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link.upload-failed .file-name,.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link.upload-failed .file-size{color:var(--granite-color-signal-failure);opacity:.4}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link.uploading-in-progress{pointer-events:none}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link.uploading-in-progress .document-preview-holder .document-file-preview,.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link.uploading-in-progress .document-preview-holder .file-preview-overlay,.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link.uploading-in-progress .file-name,.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link.uploading-in-progress .file-size{opacity:.4}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link .file-name{font-family:var(--granite-font-family-default);font-size:var(--granite-font-size-micro);font-weight:var(--granite-font-weight-regular);line-height:var(--granite-line-height-flowing);color:var(--granite-color-text-weak);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:calc(var(--granite-spacing-base-rem) * .375) 0 0;width:100%;text-align:center}.file-upload-wrapper .file-dropzone .file-upload-body .file-preview-container .document-preview-link .file-size{font-family:var(--granite-font-family-default);font-size:var(--granite-font-size-micro);font-weight:var(--granite-font-weight-regular);line-height:calc(var(--granite-line-height-base-rem) * .625);color:var(--granite-color-text-week);margin:0 0 calc(var(--granite-spacing-base-rem) * .875)}.file-upload-wrapper .file-upload-footer{margin-inline:var(--granite-spacing-8);margin-bottom:var(--granite-spacing-8)}.file-upload-wrapper .file-upload-footer .footer-container{display:flex;justify-content:flex-end;align-items:center}.file-upload-wrapper .file-upload-footer .footer-container .retry-upload-button{margin-inline-start:var(--granite-spacing-8)}@keyframes loading-keyframe{to{transform:rotate(360deg)}}\n"] }]
|
|
138
|
-
}], propDecorators: { fileDropRef: [{
|
|
139
|
-
type: ViewChild,
|
|
140
|
-
args: ['fileDropRef', { read: ElementRef }]
|
|
141
|
-
}], accept: [{
|
|
142
|
-
type: Input
|
|
143
|
-
}], uploadTitle: [{
|
|
144
|
-
type: Input
|
|
145
|
-
}], uploadIcon: [{
|
|
146
|
-
type: Input
|
|
147
|
-
}], browseIcon: [{
|
|
148
|
-
type: Input
|
|
149
|
-
}], dropZoneText: [{
|
|
150
|
-
type: Input
|
|
151
|
-
}], browseButtonText: [{
|
|
152
|
-
type: Input
|
|
153
|
-
}], dropPlaceholderText: [{
|
|
154
|
-
type: Input
|
|
155
|
-
}], dropZoneHint: [{
|
|
156
|
-
type: Input
|
|
157
|
-
}], removeButtonText: [{
|
|
158
|
-
type: Input
|
|
159
|
-
}], uploadButtonText: [{
|
|
160
|
-
type: Input
|
|
161
|
-
}], retryButtonText: [{
|
|
162
|
-
type: Input
|
|
163
|
-
}], cancelButtonText: [{
|
|
164
|
-
type: Input
|
|
165
|
-
}], multiFileUpload: [{
|
|
166
|
-
type: Input
|
|
167
|
-
}], responsiveOptions: [{
|
|
168
|
-
type: Input
|
|
169
|
-
}], browseOrDragFiles: [{
|
|
170
|
-
type: Output
|
|
171
|
-
}], removeFiles: [{
|
|
172
|
-
type: Output
|
|
173
|
-
}], filesUpload: [{
|
|
174
|
-
type: Output
|
|
175
|
-
}], fileUploadValidation: [{
|
|
176
|
-
type: Output
|
|
177
|
-
}], uploadStatus: [{
|
|
178
|
-
type: Input
|
|
179
|
-
}], autoUpload: [{
|
|
180
|
-
type: Input
|
|
181
|
-
}] } });
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvZmlsZS11cGxvYWQvc3JjL2xpYi9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy9maWxlLXVwbG9hZC9zcmMvbGliL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLDBCQUEwQixFQUMxQiw2QkFBNkIsRUFDN0IscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQiwrQkFBK0IsRUFDL0IsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUMxQiwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLFNBQVMsRUFFVCxnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBRW5CLDBCQUEwQixFQUMxQixxQkFBcUIsR0FDdEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQVFyRCxNQUFNLE9BQU8sMEJBQTBCO0lBTHZDO1FBVUUsV0FBTSxHQUFXLG1CQUFtQixDQUFDO1FBR3JDLGdCQUFXLEdBQVcsb0JBQW9CLENBQUM7UUFHM0MsZUFBVSxHQUFXLG1CQUFtQixDQUFDO1FBR3pDLGVBQVUsR0FBVywrQkFBK0IsQ0FBQztRQUdyRCxpQkFBWSxHQUFXLHFCQUFxQixDQUFDO1FBRzdD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LEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixNQUFNO2dCQU1QLFdBQVc7c0JBRFYsTUFBTTtnQkFNUCxXQUFXO3NCQURWLE1BQU07Z0JBSVAsb0JBQW9CO3NCQURuQixNQUFNO2dCQWVILFlBQVk7c0JBRGYsS0FBSztnQkFZRixVQUFVO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIERFRkFVTFRfQlJPV1NFX0JVVFRPTl9URVhULFxuICBERUZBVUxUX0NBTkNFTF9CVVRUT05fVEVYVCxcbiAgREVGQVVMVF9EUk9QX1BMQUNFSE9MREVSX1RFWFQsXG4gIERFRkFVTFRfRFJPUFpPTkVfSElOVCxcbiAgREVGQVVMVF9EUk9QWk9ORV9URVhULFxuICBERUZBVUxUX0ZJTEVfQlJPV1NFX0JVVFRPTl9JQ09OLFxuICBERUZBVUxUX0FDQ0VQVF9UWVBFLFxuICBERUZBVUxUX01VTFRJX0ZJTEVfU1VQUE9SVCxcbiAgREVGQVVMVF9SRU1PVkVfQlVUVE9OX1RFWFQsXG4gIERFRkFVTFRfUkVUUllfQlVUVE9OX1RFWFQsXG4gIERFRkFVTFRfVVBMT0FEX0JVVFRPTl9URVhULFxuICBERUZBVUxUX1VQTE9BRF9JQ09OLFxuICBERUZBVUxUX1VQTE9BRF9USVRMRSxcbiAgZmlsZVNpemVzLFxuICBGaWxlVXBsb2FkRXJyb3IsXG4gIEZpbGVVcGxvYWRTdGF0dXMsXG4gIEZpbFVwbG9hZEVycm9yVHlwZXMsXG4gIFNlbGVjdGVkRmlsZSxcbiAgREVGQVVMVF9SRVNQT05TSVZFX09QVElPTlMsXG4gIERFRkFVTFRfVklTSUJMRV9GSUxFUyxcbn0gZnJvbSAnLi9maWxlLXVwbG9hZC5jb25zdGFudHMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IHZhbGlkRmlsZVR5cGVzIH0gZnJvbSAnLi9maWxlLXVwbG9hZC51dGlscyc7XG5pbXBvcnQgeyBDYXJvdXNlbFJlc3BvbnNpdmVPcHRpb25zIH0gZnJvbSAncHJpbWVuZy9jYXJvdXNlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dyYW5pdGUtZmlsZS11cGxvYWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBHcmFuaXRlRmlsZVVwbG9hZENvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoJ2ZpbGVEcm9wUmVmJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIGZpbGVEcm9wUmVmITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBASW5wdXQoKVxuICBhY2NlcHQ6IHN0cmluZyA9IERFRkFVTFRfQUNDRVBUX1RZUEU7XG5cbiAgQElucHV0KClcbiAgdXBsb2FkVGl0bGU6IHN0cmluZyA9IERFRkFVTFRfVVBMT0FEX1RJVExFO1xuXG4gIEBJbnB1dCgpXG4gIHVwbG9hZEljb246IHN0cmluZyA9IERFRkFVTFRfVVBMT0FEX0lDT047XG5cbiAgQElucHV0KClcbiAgYnJvd3NlSWNvbjogc3RyaW5nID0gREVGQVVMVF9GSUxFX0JST1dTRV9CVVRUT05fSUNPTjtcblxuICBASW5wdXQoKVxuICBkcm9wWm9uZVRleHQ6IHN0cmluZyA9IERFRkFVTFRfRFJPUFpPTkVfVEVYVDtcblxuICBASW5wdXQoKVxuICBicm93c2VCdXR0b25UZXh0OiBzdHJpbmcgPSBERUZBVUxUX0JST1dTRV9CVVRUT05fVEVYVDtcblxuICBASW5wdXQoKVxuICBkcm9wUGxhY2Vob2xkZXJUZXh0OiBzdHJpbmcgPSBERUZBVUxUX0RST1BfUExBQ0VIT0xERVJfVEVYVDtcblxuICBASW5wdXQoKVxuICBkcm9wWm9uZUhpbnQ6IHN0cmluZyA9IERFRkFVTFRfRFJPUFpPTkVfSElOVDtcblxuICBASW5wdXQoKVxuICByZW1vdmVCdXR0b25UZXh0OiBzdHJpbmcgPSBERUZBVUxUX1JFTU9WRV9CVVRUT05fVEVYVDtcblxuICBASW5wdXQoKVxuICB1cGxvYWRCdXR0b25UZXh0OiBzdHJpbmcgPSBERUZBVUxUX1VQTE9BRF9CVVRUT05fVEVYVDtcblxuICBASW5wdXQoKVxuICByZXRyeUJ1dHRvblRleHQ6IHN0cmluZyA9IERFRkFVTFRfUkVUUllfQlVUVE9OX1RFWFQ7XG5cbiAgQElucHV0KClcbiAgY2FuY2VsQnV0dG9uVGV4dDogc3RyaW5nID0gREVGQVVMVF9DQU5DRUxfQlVUVE9OX1RFWFQ7XG5cbiAgQElucHV0KClcbiAgbXVsdGlGaWxlVXBsb2FkOiBib29sZWFuID0gREVGQVVMVF9NVUxUSV9GSUxFX1NVUFBPUlQ7XG5cbiAgQElucHV0KClcbiAgcmVzcG9uc2l2ZU9wdGlvbnM6IENhcm91c2VsUmVzcG9uc2l2ZU9wdGlvbnNbXSA9IERFRkFVTFRfUkVTUE9OU0lWRV9PUFRJT05TO1xuXG4gIEBPdXRwdXQoKVxuICBicm93c2VPckRyYWdGaWxlczogRXZlbnRFbWl0dGVyPFNlbGVjdGVkRmlsZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgU2VsZWN0ZWRGaWxlW11cbiAgPigpO1xuXG4gIEBPdXRwdXQoKVxuICByZW1vdmVGaWxlczogRXZlbnRFbWl0dGVyPFNlbGVjdGVkRmlsZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgU2VsZWN0ZWRGaWxlW11cbiAgPigpO1xuXG4gIEBPdXRwdXQoKVxuICBmaWxlc1VwbG9hZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBmaWxlVXBsb2FkVmFsaWRhdGlvbjogRXZlbnRFbWl0dGVyPEZpbGVVcGxvYWRFcnJvcj4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8RmlsZVVwbG9hZEVycm9yPigpO1xuXG4gIHNlbGVjdGVkRmlsZXM6IEZpbGVbXSA9IFtdO1xuICBwcmV2aWV3UmVhZHlGaWxlczogU2VsZWN0ZWRGaWxlW10gPSBbXTtcbiAgaXNGaWxlT25Ecm9wem9uZTogYm9vbGVhbiA9IGZhbHNlO1xuICBGaWxlVXBsb2FkU3RhdHVzID0gRmlsZVVwbG9hZFN0YXR1cztcbiAgZmlsZUVycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGZpbGVEcm9wRXJyb3JUeXBlOiBzdHJpbmc7XG4gIG51bVZpc2libGU6IG51bWJlciA9IERFRkFVTFRfVklTSUJMRV9GSUxFUztcblxuICBwcm90ZWN0ZWQgX3VwbG9hZFN0YXR1czogRmlsZVVwbG9hZFN0YXR1cyA9IEZpbGVVcGxvYWRTdGF0dXMuTm90U3RhcnRlZDtcblxuICBASW5wdXQoKVxuICBnZXQgdXBsb2FkU3RhdHVzKCk6IEZpbGVVcGxvYWRTdGF0dXMge1xuICAgIHJldHVybiB0aGlzLl91cGxvYWRTdGF0dXM7XG4gIH1cblxuICBzZXQgdXBsb2FkU3RhdHVzKHN0YXR1czogRmlsZVVwbG9hZFN0YXR1cykge1xuICAgIHRoaXMuX3VwbG9hZFN0YXR1cyA9IHN0YXR1cztcbiAgfVxuXG4gIHByb3RlY3RlZCBfYXV0b1VwbG9hZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgZ2V0IGF1dG9VcGxvYWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dG9VcGxvYWQ7XG4gIH1cblxuICBzZXQgYXV0b1VwbG9hZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2F1dG9VcGxvYWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgZmlsZUJyb3dzZUhhbmRsZXIoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgZmlsZXM6IEZpbGVbXSA9IEFycmF5LmZyb20odGFyZ2V0LmZpbGVzKTtcblxuICAgIGlmICghdmFsaWRGaWxlVHlwZXModGhpcy5hY2NlcHQsIGZpbGVzKSkge1xuICAgICAgdGhpcy5maWxlVXBsb2FkVmFsaWRhdGlvbi5lbWl0KHtcbiAgICAgICAgaXNFcnJvcjogdHJ1ZSxcbiAgICAgICAgdHlwZTogRmlsVXBsb2FkRXJyb3JUeXBlcy5FeHRlbnNpb25Ob3RTdXBwb3J0ZWQsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZmlsZURyb3BSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZEZpbGVzID0gWy4uLnRoaXMuc2VsZWN0ZWRGaWxlcywgLi4uZmlsZXNdO1xuICAgIHRoaXMucHJldmlld1JlYWR5RmlsZXMgPSB0aGlzLnByZXBhcmVTZWxlY3RlZEZpbGVzKHRoaXMuc2VsZWN0ZWRGaWxlcyk7XG4gICAgdGhpcy5icm93c2VPckRyYWdGaWxlcy5lbWl0KHRoaXMucHJldmlld1JlYWR5RmlsZXMpO1xuICB9XG5cbiAgZmlsZVJlbW92ZUhhbmRsZXIoZmlsZVRvUmVtb3ZlOiBTZWxlY3RlZEZpbGUpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMucHJldmlld1JlYWR5RmlsZXMuZmluZEluZGV4KFxuICAgICAgKGZpbGUpID0+XG4gICAgICAgIGZpbGUuaW1hZ2VVcmwgPT09IGZpbGVUb1JlbW92ZS5pbWFnZVVybCAmJlxuICAgICAgICBmaWxlLmZpbGU/Lm5hbWUgPT09IGZpbGVUb1JlbW92ZS5maWxlPy5uYW1lICYmXG4gICAgICAgIGZpbGUucmVhZGFibGVTaXplID09PSBmaWxlVG9SZW1vdmUucmVhZGFibGVTaXplXG4gICAgKTtcbiAgICB0aGlzLnNlbGVjdGVkRmlsZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLnByZXZpZXdSZWFkeUZpbGVzLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLnNlbGVjdGVkRmlsZXMubGVuZ3RoID09PSAwICYmXG4gICAgICB0aGlzLnByZXZpZXdSZWFkeUZpbGVzLmxlbmd0aCA9PT0gMFxuICAgICkge1xuICAgICAgdGhpcy5maWxlRHJvcFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMudXBsb2FkU3RhdHVzID0gRmlsZVVwbG9hZFN0YXR1cy5Ob3RTdGFydGVkO1xuICAgIH1cblxuICAgIHRoaXMucmVtb3ZlRmlsZXMuZW1pdCh0aGlzLnByZXZpZXdSZWFkeUZpbGVzKTtcbiAgfVxuXG4gIG9uRmlsZXNEcm9wSGFuZGxlcihmaWxlczogRmlsZVtdKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMubXVsdGlGaWxlVXBsb2FkICYmXG4gICAgICAodGhpcy5zZWxlY3RlZEZpbGVzLmxlbmd0aCA9PT0gMSB8fCBmaWxlcy5sZW5ndGggIT09IDEpXG4gICAgKSB7XG4gICAgICB0aGlzLmZpbGVFcnJvciA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZEZpbGVzID0gZmlsZXM7XG5cbiAgICB0aGlzLnByZXZpZXdSZWFkeUZpbGVzID0gdGhpcy5wcmVwYXJlU2VsZWN0ZWRGaWxlcyh0aGlzLnNlbGVjdGVkRmlsZXMpO1xuICAgIHRoaXMuYnJvd3NlT3JEcmFnRmlsZXMuZW1pdCh0aGlzLnByZXZpZXdSZWFkeUZpbGVzKTtcbiAgfVxuXG4gIG9uRmlsZU92ZXJEcm9wem9uZShpc0ZpbGVPdmVyOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0ZpbGVPbkRyb3B6b25lID0gaXNGaWxlT3ZlcjtcbiAgfVxuXG4gIG9uRmlsZURyb3BFcnJvcih2YWxpZGF0aW9uOiBGaWxlVXBsb2FkRXJyb3IpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVFcnJvciA9IHZhbGlkYXRpb24uaXNFcnJvcjtcbiAgICB0aGlzLmZpbGVEcm9wRXJyb3JUeXBlID0gdmFsaWRhdGlvbi50eXBlO1xuICB9XG5cbiAgcHJlcGFyZVNlbGVjdGVkRmlsZXMoZmlsZXM6IEZpbGVbXSk6IFNlbGVjdGVkRmlsZVtdIHtcbiAgICByZXR1cm4gZmlsZXMubWFwKChmaWxlOiBGaWxlKSA9PiAoe1xuICAgICAgZmlsZSxcbiAgICAgIHJlYWRhYmxlU2l6ZTogdGhpcy5mb3JtYXRCeXRlc1RvUmVhZGFibGVTaXplKGZpbGUuc2l6ZSwgMiksXG4gICAgICBpbWFnZVVybDogZmlsZS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpXG4gICAgICAgID8gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKVxuICAgICAgICA6IG51bGwsXG4gICAgfSkpO1xuICB9XG5cbiAgdXBsb2FkRmlsZXMoKTogdm9pZCB7XG4gICAgdGhpcy5maWxlc1VwbG9hZC5lbWl0KCk7XG4gIH1cblxuICByZXRyeVVwbG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVzVXBsb2FkLmVtaXQoKTtcbiAgfVxuXG4gIGNhbmNlbFVwbG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0RmlsZVVwbG9hZCgpO1xuICAgIHRoaXMucmVtb3ZlRmlsZXMuZW1pdCh0aGlzLnByZXZpZXdSZWFkeUZpbGVzKTtcbiAgfVxuXG4gIHJlc2V0RmlsZVVwbG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVEcm9wUmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xuICAgIHRoaXMuZmlsZUVycm9yID0gZmFsc2U7XG4gICAgdGhpcy5maWxlRHJvcEVycm9yVHlwZSA9ICcnO1xuICAgIHRoaXMuc2VsZWN0ZWRGaWxlcyA9IFtdO1xuICAgIHRoaXMucHJldmlld1JlYWR5RmlsZXMgPSBbXTtcbiAgICB0aGlzLnVwbG9hZFN0YXR1cyA9IEZpbGVVcGxvYWRTdGF0dXMuTm90U3RhcnRlZDtcbiAgfVxuXG4gIGZvcm1hdEJ5dGVzVG9SZWFkYWJsZVNpemUoYnl0ZXM6IG51bWJlciwgZGVjaW1hbHM6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKGJ5dGVzID09PSAwKSB7XG4gICAgICByZXR1cm4gYDAgJHtmaWxlU2l6ZXNbMF19YDtcbiAgICB9XG5cbiAgICBjb25zdCBieXRlc1BlcktCID0gMTAyNDtcbiAgICBjb25zdCBkZWNpbWFsUG9pbnRzID0gZGVjaW1hbHMgPD0gMCA/IDAgOiBkZWNpbWFscyB8fCAyO1xuICAgIGNvbnN0IGV4cCA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coYnl0ZXNQZXJLQikpO1xuICAgIHJldHVybiBgJHtwYXJzZUZsb2F0KFxuICAgICAgKGJ5dGVzIC8gTWF0aC5wb3coYnl0ZXNQZXJLQiwgZXhwKSkudG9GaXhlZChkZWNpbWFsUG9pbnRzKVxuICAgICl9ICR7ZmlsZVNpemVzW2V4cF19YDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZpbGUtdXBsb2FkLXdyYXBwZXJcIj5cbiAgPGgyIGNsYXNzPVwiZmlsZS11cGxvYWQtdGl0bGVcIj57eyB1cGxvYWRUaXRsZSB9fTwvaDI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImZpbGUtZHJvcHpvbmVcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ3VwbG9hZC1mYWlsZWQnOiB1cGxvYWRTdGF0dXMgPT09IEZpbGVVcGxvYWRTdGF0dXMuRmFpbGVkIH1cIlxuICAgIGdyYW5pdGVGaWxlRHJhZ0FuZERyb3BcbiAgICAoZHJvcHBlZEZpbGVzKT1cIm9uRmlsZXNEcm9wSGFuZGxlcigkZXZlbnQpXCJcbiAgICAoaXNGaWxlT3Zlcik9XCJvbkZpbGVPdmVyRHJvcHpvbmUoJGV2ZW50KVwiXG4gICAgKGZpbGVVcGxvYWRWYWxpZGF0aW9uKT1cIm9uRmlsZURyb3BFcnJvcigkZXZlbnQpXCJcbiAgICBbbXVsdGlGaWxlVXBsb2FkRW5hYmxlZF09XCJtdWx0aUZpbGVVcGxvYWRcIlxuICAgIFthY2NlcHRdPVwiYWNjZXB0XCJcbiAgICBbY3VycmVudEZpbGVzXT1cInNlbGVjdGVkRmlsZXNcIlxuICA+XG4gICAgPGlucHV0XG4gICAgICBjbGFzcz1cImZpbGUtaW5wdXRcIlxuICAgICAgI2ZpbGVEcm9wUmVmXG4gICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICB0aXRsZT1cImZpbGVVcGxvYWRcIlxuICAgICAgKGNoYW5nZSk9XCJmaWxlQnJvd3NlSGFuZGxlcigkZXZlbnQpXCJcbiAgICAgIFttdWx0aXBsZV09XCJtdWx0aUZpbGVVcGxvYWRcIlxuICAgICAgW2FjY2VwdF09XCJhY2NlcHRcIlxuICAgIC8+XG4gICAgPGRpdiBjbGFzcz1cImZpbGUtdXBsb2FkLWJvZHlcIj5cbiAgICAgIEBpZiAoIWlzRmlsZU9uRHJvcHpvbmUgJiYgIWZpbGVFcnJvcikge1xuICAgICAgICBAc3dpdGNoIChwcmV2aWV3UmVhZHlGaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICBAY2FzZSAoMCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtdXBsb2FkLWJyb3dzZVwiPlxuICAgICAgICAgICAgICA8Z3Jhbml0ZS1pY29uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmaWxlLXVwbG9hZC1pY29uXCJcbiAgICAgICAgICAgICAgICBbZm9udEljb25dPVwidXBsb2FkSWNvblwiXG4gICAgICAgICAgICAgID48L2dyYW5pdGUtaWNvbj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtc2VsZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZmlsZS11cGxvYWQtYm9keS10ZXh0XCI+e3sgZHJvcFpvbmVUZXh0IH19PC9oMj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZpbGUtc2VsZWN0LWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBncmFuaXRlQnV0dG9uXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZmlsZURyb3BSZWYuY2xpY2soKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGdyYW5pdGUtaWNvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJyb3dzZS1idXR0b24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtmb250SWNvbl09XCJicm93c2VJY29uXCJcbiAgICAgICAgICAgICAgICAgID48L2dyYW5pdGUtaWNvbj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJicm93c2UtYnV0dG9uLXRleHRcIj57eyBicm93c2VCdXR0b25UZXh0IH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8cCAqbmdJZj1cImRyb3Bab25lSGludFwiIGNsYXNzPVwiZmlsZS11cGxvYWQtaGludFwiPlxuICAgICAgICAgICAgICAgIHt7IGRyb3Bab25lSGludCB9fVxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGNhc2UgKDEpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICBmaWxlUHJldmlld1RlbXBsYXRlO1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgcHJldmlld0ZpbGU6IHByZXZpZXdSZWFkeUZpbGVzWzBdIH1cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgPGdyYW5pdGUtY2Fyb3VzZWxcbiAgICAgICAgICAgICAgW2l0ZW1zXT1cInByZXZpZXdSZWFkeUZpbGVzXCJcbiAgICAgICAgICAgICAgW251bVZpc2libGVdPVwibnVtVmlzaWJsZVwiXG4gICAgICAgICAgICAgIFtyZXNwb25zaXZlT3B0aW9uc109XCJyZXNwb25zaXZlT3B0aW9uc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcHJldmlld0ZpbGUgI2l0ZW1UZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBmaWxlUHJldmlld1RlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7IHByZXZpZXdGaWxlOiBwcmV2aWV3RmlsZSB9XG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZ3Jhbml0ZS1jYXJvdXNlbD5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8cCBjbGFzcz1cImRyb3AtYXJlYS1wbGFjZWhvbGRlclwiPlxuICAgICAgICAgIHt7IGRyb3BQbGFjZWhvbGRlclRleHQgfX1cbiAgICAgICAgPC9wPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZpbGUtdXBsb2FkLWZvb3RlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJmb290ZXItY29udGFpbmVyXCIgKm5nSWY9XCJwcmV2aWV3UmVhZHlGaWxlcy5sZW5ndGggPiAwXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiIWF1dG9VcGxvYWQgJiYgdXBsb2FkU3RhdHVzID09PSBGaWxlVXBsb2FkU3RhdHVzLk5vdFN0YXJ0ZWRcIlxuICAgICAgICBncmFuaXRlUHJpbWFyeUJ1dHRvblxuICAgICAgICAoY2xpY2spPVwidXBsb2FkRmlsZXMoKVwiXG4gICAgICA+XG4gICAgICAgIHt7IHVwbG9hZEJ1dHRvblRleHQgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVwbG9hZFN0YXR1cyA9PT0gRmlsZVVwbG9hZFN0YXR1cy5GYWlsZWRcIj5cbiAgICAgICAgPGJ1dHRvbiBncmFuaXRlQnV0dG9uIChjbGljayk9XCJjYW5jZWxVcGxvYWQoKVwiPlxuICAgICAgICAgIHt7IGNhbmNlbEJ1dHRvblRleHQgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cInJldHJ5LXVwbG9hZC1idXR0b25cIlxuICAgICAgICAgIGdyYW5pdGVQcmltYXJ5QnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cInJldHJ5VXBsb2FkKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcmV0cnlCdXR0b25UZXh0IH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdXBsb2FkaW5nT3ZlcmxheT5cbiAgPGRpdiBjbGFzcz1cImZpbGUtcHJldmlldy1vdmVybGF5XCI+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJsb2FkaW5nLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWRpbmctc3Bpbm5lclwiPjwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdXBsb2FkRmFpbGVkT3ZlcmxheT5cbiAgPGRpdiBjbGFzcz1cImZpbGUtcHJldmlldy1vdmVybGF5XCI+PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ZpbGVQcmV2aWV3VGVtcGxhdGUgbGV0LXByZXZpZXdGaWxlPVwicHJldmlld0ZpbGVcIj5cbiAgPGRpdiBjbGFzcz1cImZpbGUtcHJldmlldy1jb250YWluZXJcIj5cbiAgICBAaWYgKHByZXZpZXdGaWxlPy5pbWFnZVVybCkge1xuICAgICAgPGFcbiAgICAgICAgY2xhc3M9XCJmaWxlLXByZXZpZXctbGlua1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAndXBsb2FkaW5nLWluLXByb2dyZXNzJzogdXBsb2FkU3RhdHVzID09PSBGaWxlVXBsb2FkU3RhdHVzLkluUHJvZ3Jlc3MsXG4gICAgICAgICAgJ3VwbG9hZC1mYWlsZWQnOiB1cGxvYWRTdGF0dXMgPT09IEZpbGVVcGxvYWRTdGF0dXMuRmFpbGVkXG4gICAgICAgIH1cIlxuICAgICAgICBbaHJlZl09XCJwcmV2aWV3RmlsZT8uaW1hZ2VVcmxcIlxuICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1wcmV2aWV3LWhvbGRlclwiPlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAgICAgW3NyY109XCJwcmV2aWV3RmlsZT8uaW1hZ2VVcmxcIlxuICAgICAgICAgICAgW2FsdF09XCJwcmV2aWV3RmlsZT8uZmlsZT8ubmFtZVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdJZj1cInVwbG9hZFN0YXR1cyA9PT0gRmlsZVVwbG9hZFN0YXR1cy5JblByb2dyZXNzXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInVwbG9hZGluZ092ZXJsYXlcIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdJZj1cInVwbG9hZFN0YXR1cyA9PT0gRmlsZVVwbG9hZFN0YXR1cy5GYWlsZWRcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidXBsb2FkRmFpbGVkT3ZlcmxheVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHAgY2xhc3M9XCJmaWxlLW5hbWVcIiBbdGl0bGVdPVwicHJldmlld0ZpbGU/LmZpbGU/Lm5hbWVcIj5cbiAgICAgICAgICB7eyBwcmV2aWV3RmlsZT8uZmlsZT8ubmFtZSB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxwIGNsYXNzPVwiZmlsZS1zaXplXCI+e3sgcHJldmlld0ZpbGU/LnJlYWRhYmxlU2l6ZSB9fTwvcD5cbiAgICAgIDwvYT5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkb2N1bWVudC1wcmV2aWV3LWxpbmtcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ3VwbG9hZGluZy1pbi1wcm9ncmVzcyc6IHVwbG9hZFN0YXR1cyA9PT0gRmlsZVVwbG9hZFN0YXR1cy5JblByb2dyZXNzLFxuICAgICAgICAgICd1cGxvYWQtZmFpbGVkJzogdXBsb2FkU3RhdHVzID09PSBGaWxlVXBsb2FkU3RhdHVzLkZhaWxlZFxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRvY3VtZW50LXByZXZpZXctaG9sZGVyXCI+XG4gICAgICAgICAgPGdyYW5pdGUtaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJkb2N1bWVudC1maWxlLXByZXZpZXdcIlxuICAgICAgICAgICAgW2NsYXNzLnVwbG9hZC1mYWlsZWRdPVwidXBsb2FkU3RhdHVzID09PSBGaWxlVXBsb2FkU3RhdHVzLkZhaWxlZFwiXG4gICAgICAgICAgICBbZm9udEljb25dPVwiJ2ljb24tZG9jdW1lbnQtYWx0J1wiXG4gICAgICAgICAgPjwvZ3Jhbml0ZS1pY29uPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwidXBsb2FkU3RhdHVzID09PSBGaWxlVXBsb2FkU3RhdHVzLkluUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidXBsb2FkaW5nT3ZlcmxheVwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHAgY2xhc3M9XCJmaWxlLW5hbWVcIiBbdGl0bGVdPVwicHJldmlld0ZpbGU/LmZpbGU/Lm5hbWVcIj5cbiAgICAgICAgICB7eyBwcmV2aWV3RmlsZT8uZmlsZT8ubmFtZSB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxwIGNsYXNzPVwiZmlsZS1zaXplXCI+e3sgcHJldmlld0ZpbGU/LnJlYWRhYmxlU2l6ZSB9fTwvcD5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICA8YnV0dG9uXG4gICAgICBncmFuaXRlQnV0dG9uXG4gICAgICAqbmdJZj1cIlxuICAgICAgICBbRmlsZVVwbG9hZFN0YXR1cy5Db21wbGV0ZWQsIEZpbGVVcGxvYWRTdGF0dXMuTm90U3RhcnRlZF0uaW5jbHVkZXMoXG4gICAgICAgICAgdXBsb2FkU3RhdHVzXG4gICAgICAgIClcbiAgICAgIFwiXG4gICAgICAoY2xpY2spPVwiZmlsZVJlbW92ZUhhbmRsZXIocHJldmlld0ZpbGUpXCJcbiAgICA+XG4gICAgICB7eyByZW1vdmVCdXR0b25UZXh0IH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
export const fileSizes = [
|
|
2
|
-
'Bytes',
|
|
3
|
-
'KB',
|
|
4
|
-
'MB',
|
|
5
|
-
'GB',
|
|
6
|
-
'TB',
|
|
7
|
-
'PB',
|
|
8
|
-
'EB',
|
|
9
|
-
'ZB',
|
|
10
|
-
'YB',
|
|
11
|
-
];
|
|
12
|
-
export var FileUploadStatus;
|
|
13
|
-
(function (FileUploadStatus) {
|
|
14
|
-
FileUploadStatus["NotStarted"] = "NotStarted";
|
|
15
|
-
FileUploadStatus["InProgress"] = "InProgress";
|
|
16
|
-
FileUploadStatus["Completed"] = "Completed";
|
|
17
|
-
FileUploadStatus["Failed"] = "Failed";
|
|
18
|
-
FileUploadStatus["Cancelled"] = "Cancelled";
|
|
19
|
-
})(FileUploadStatus || (FileUploadStatus = {}));
|
|
20
|
-
export var FilUploadErrorTypes;
|
|
21
|
-
(function (FilUploadErrorTypes) {
|
|
22
|
-
FilUploadErrorTypes["ExtensionNotSupported"] = "ExtensionNotSupported";
|
|
23
|
-
FilUploadErrorTypes["MultipleFilesNotSupported"] = "MultipleFilesNotSupported";
|
|
24
|
-
})(FilUploadErrorTypes || (FilUploadErrorTypes = {}));
|
|
25
|
-
export const DEFAULT_MULTI_FILE_SUPPORT = false;
|
|
26
|
-
export const DEFAULT_ACCEPT_TYPE = '*.*';
|
|
27
|
-
export const DEFAULT_UPLOAD_TITLE = 'Upload Files';
|
|
28
|
-
export const DEFAULT_UPLOAD_ICON = 'icon-upload';
|
|
29
|
-
export const DEFAULT_FILE_BROWSE_BUTTON_ICON = 'icon-folder-alt';
|
|
30
|
-
export const DEFAULT_DROPZONE_TEXT = 'Drop here or';
|
|
31
|
-
export const DEFAULT_BROWSE_BUTTON_TEXT = 'Browse';
|
|
32
|
-
export const DEFAULT_DROP_PLACEHOLDER_TEXT = 'Drop files here';
|
|
33
|
-
export const DEFAULT_DROPZONE_HINT = '';
|
|
34
|
-
export const DEFAULT_REMOVE_BUTTON_TEXT = 'Remove';
|
|
35
|
-
export const DEFAULT_UPLOAD_BUTTON_TEXT = 'Upload Files';
|
|
36
|
-
export const DEFAULT_RETRY_BUTTON_TEXT = 'Retry';
|
|
37
|
-
export const DEFAULT_CANCEL_BUTTON_TEXT = 'Cancel';
|
|
38
|
-
export const DEFAULT_RESPONSIVE_OPTIONS = [
|
|
39
|
-
{ breakpoint: '1200px', numVisible: 4, numScroll: 1 },
|
|
40
|
-
{ breakpoint: '992px', numVisible: 3, numScroll: 1 },
|
|
41
|
-
{ breakpoint: '768px', numVisible: 2, numScroll: 1 },
|
|
42
|
-
{ breakpoint: '576px', numVisible: 1, numScroll: 1 },
|
|
43
|
-
];
|
|
44
|
-
export const DEFAULT_VISIBLE_FILES = 10;
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvZmlsZS11cGxvYWQvc3JjL2xpYi9maWxlLXVwbG9hZC5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFhO0lBQ2pDLE9BQU87SUFDUCxJQUFJO0lBQ0osSUFBSTtJQUNKLElBQUk7SUFDSixJQUFJO0lBQ0osSUFBSTtJQUNKLElBQUk7SUFDSixJQUFJO0lBQ0osSUFBSTtDQUNMLENBQUM7QUFFRixNQUFNLENBQU4sSUFBWSxnQkFNWDtBQU5ELFdBQVksZ0JBQWdCO0lBQzFCLDZDQUF5QixDQUFBO0lBQ3pCLDZDQUF5QixDQUFBO0lBQ3pCLDJDQUF1QixDQUFBO0lBQ3ZCLHFDQUFpQixDQUFBO0lBQ2pCLDJDQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFOVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBTTNCO0FBRUQsTUFBTSxDQUFOLElBQVksbUJBR1g7QUFIRCxXQUFZLG1CQUFtQjtJQUM3QixzRUFBK0MsQ0FBQTtJQUMvQyw4RUFBdUQsQ0FBQTtBQUN6RCxDQUFDLEVBSFcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUc5QjtBQUVELE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLEtBQUssQ0FBQztBQUNoRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBVyxLQUFLLENBQUM7QUFDakQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQVcsY0FBYyxDQUFDO0FBQzNELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFXLGFBQWEsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBVyxpQkFBaUIsQ0FBQztBQUN6RSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBVyxjQUFjLENBQUM7QUFDNUQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQVcsUUFBUSxDQUFDO0FBQzNELE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFXLGlCQUFpQixDQUFDO0FBQ3ZFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFXLEVBQUUsQ0FBQztBQUNoRCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBVyxRQUFRLENBQUM7QUFDM0QsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQVcsY0FBYyxDQUFDO0FBQ2pFLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFXLE9BQU8sQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBVyxRQUFRLENBQUM7QUFDM0QsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQWdDO0lBQ3JFLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUU7SUFDckQsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRTtJQUNwRCxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFO0lBQ3BELEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUU7Q0FDckQsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFXLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhcm91c2VsUmVzcG9uc2l2ZU9wdGlvbnMgfSBmcm9tICdwcmltZW5nL2Nhcm91c2VsJztcblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RlZEZpbGUge1xuICBmaWxlOiBGaWxlO1xuICByZWFkYWJsZVNpemU/OiBzdHJpbmc7XG4gIGltYWdlVXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVVcGxvYWRFcnJvciB7XG4gIGlzRXJyb3I6IGJvb2xlYW47XG4gIHR5cGU6IEZpbFVwbG9hZEVycm9yVHlwZXM7XG59XG5cbmV4cG9ydCBjb25zdCBmaWxlU2l6ZXM6IHN0cmluZ1tdID0gW1xuICAnQnl0ZXMnLFxuICAnS0InLFxuICAnTUInLFxuICAnR0InLFxuICAnVEInLFxuICAnUEInLFxuICAnRUInLFxuICAnWkInLFxuICAnWUInLFxuXTtcblxuZXhwb3J0IGVudW0gRmlsZVVwbG9hZFN0YXR1cyB7XG4gIE5vdFN0YXJ0ZWQgPSAnTm90U3RhcnRlZCcsXG4gIEluUHJvZ3Jlc3MgPSAnSW5Qcm9ncmVzcycsXG4gIENvbXBsZXRlZCA9ICdDb21wbGV0ZWQnLFxuICBGYWlsZWQgPSAnRmFpbGVkJyxcbiAgQ2FuY2VsbGVkID0gJ0NhbmNlbGxlZCcsXG59XG5cbmV4cG9ydCBlbnVtIEZpbFVwbG9hZEVycm9yVHlwZXMge1xuICBFeHRlbnNpb25Ob3RTdXBwb3J0ZWQgPSAnRXh0ZW5zaW9uTm90U3VwcG9ydGVkJyxcbiAgTXVsdGlwbGVGaWxlc05vdFN1cHBvcnRlZCA9ICdNdWx0aXBsZUZpbGVzTm90U3VwcG9ydGVkJyxcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTVVMVElfRklMRV9TVVBQT1JUID0gZmFsc2U7XG5leHBvcnQgY29uc3QgREVGQVVMVF9BQ0NFUFRfVFlQRTogc3RyaW5nID0gJyouKic7XG5leHBvcnQgY29uc3QgREVGQVVMVF9VUExPQURfVElUTEU6IHN0cmluZyA9ICdVcGxvYWQgRmlsZXMnO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVVBMT0FEX0lDT046IHN0cmluZyA9ICdpY29uLXVwbG9hZCc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9GSUxFX0JST1dTRV9CVVRUT05fSUNPTjogc3RyaW5nID0gJ2ljb24tZm9sZGVyLWFsdCc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9EUk9QWk9ORV9URVhUOiBzdHJpbmcgPSAnRHJvcCBoZXJlIG9yJztcbmV4cG9ydCBjb25zdCBERUZBVUxUX0JST1dTRV9CVVRUT05fVEVYVDogc3RyaW5nID0gJ0Jyb3dzZSc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9EUk9QX1BMQUNFSE9MREVSX1RFWFQ6IHN0cmluZyA9ICdEcm9wIGZpbGVzIGhlcmUnO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRFJPUFpPTkVfSElOVDogc3RyaW5nID0gJyc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9SRU1PVkVfQlVUVE9OX1RFWFQ6IHN0cmluZyA9ICdSZW1vdmUnO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVVBMT0FEX0JVVFRPTl9URVhUOiBzdHJpbmcgPSAnVXBsb2FkIEZpbGVzJztcbmV4cG9ydCBjb25zdCBERUZBVUxUX1JFVFJZX0JVVFRPTl9URVhUOiBzdHJpbmcgPSAnUmV0cnknO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ0FOQ0VMX0JVVFRPTl9URVhUOiBzdHJpbmcgPSAnQ2FuY2VsJztcbmV4cG9ydCBjb25zdCBERUZBVUxUX1JFU1BPTlNJVkVfT1BUSU9OUzogQ2Fyb3VzZWxSZXNwb25zaXZlT3B0aW9uc1tdID0gW1xuICB7IGJyZWFrcG9pbnQ6ICcxMjAwcHgnLCBudW1WaXNpYmxlOiA0LCBudW1TY3JvbGw6IDEgfSxcbiAgeyBicmVha3BvaW50OiAnOTkycHgnLCBudW1WaXNpYmxlOiAzLCBudW1TY3JvbGw6IDEgfSxcbiAgeyBicmVha3BvaW50OiAnNzY4cHgnLCBudW1WaXNpYmxlOiAyLCBudW1TY3JvbGw6IDEgfSxcbiAgeyBicmVha3BvaW50OiAnNTc2cHgnLCBudW1WaXNpYmxlOiAxLCBudW1TY3JvbGw6IDEgfSxcbl07XG5leHBvcnQgY29uc3QgREVGQVVMVF9WSVNJQkxFX0ZJTEVTOiBudW1iZXIgPSAxMDtcbiJdfQ==
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { GraniteFileUploadComponent } from './file-upload.component';
|
|
4
|
-
import { GraniteFileDragAndDropDirective } from './directives/file-drag-and-drop.directive';
|
|
5
|
-
import { GraniteCarouselModule } from '@ifsworld/granite-components/carousel';
|
|
6
|
-
import { GraniteButtonModule, GraniteIconModule, } from '@ifsworld/granite-components';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class GraniteFileUploadModule {
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteFileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: GraniteFileUploadModule, declarations: [GraniteFileUploadComponent, GraniteFileDragAndDropDirective], imports: [CommonModule,
|
|
11
|
-
GraniteButtonModule,
|
|
12
|
-
GraniteIconModule,
|
|
13
|
-
GraniteCarouselModule], exports: [GraniteFileUploadComponent] }); }
|
|
14
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteFileUploadModule, imports: [CommonModule,
|
|
15
|
-
GraniteButtonModule,
|
|
16
|
-
GraniteIconModule,
|
|
17
|
-
GraniteCarouselModule] }); }
|
|
18
|
-
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteFileUploadModule, decorators: [{
|
|
20
|
-
type: NgModule,
|
|
21
|
-
args: [{
|
|
22
|
-
declarations: [GraniteFileUploadComponent, GraniteFileDragAndDropDirective],
|
|
23
|
-
exports: [GraniteFileUploadComponent],
|
|
24
|
-
imports: [
|
|
25
|
-
CommonModule,
|
|
26
|
-
GraniteButtonModule,
|
|
27
|
-
GraniteIconModule,
|
|
28
|
-
GraniteCarouselModule,
|
|
29
|
-
],
|
|
30
|
-
}]
|
|
31
|
-
}] });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvZmlsZS11cGxvYWQvc3JjL2xpYi9maWxlLXVwbG9hZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDNUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixpQkFBaUIsR0FDbEIsTUFBTSw4QkFBOEIsQ0FBQzs7QUFZdEMsTUFBTSxPQUFPLHVCQUF1QjsrR0FBdkIsdUJBQXVCO2dIQUF2Qix1QkFBdUIsaUJBVG5CLDBCQUEwQixFQUFFLCtCQUErQixhQUd4RSxZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQixxQkFBcUIsYUFMYiwwQkFBMEI7Z0hBUXpCLHVCQUF1QixZQU5oQyxZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQixxQkFBcUI7OzRGQUdaLHVCQUF1QjtrQkFWbkMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSwrQkFBK0IsQ0FBQztvQkFDM0UsT0FBTyxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQ3JDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixxQkFBcUI7cUJBQ3RCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBHcmFuaXRlRmlsZVVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4vZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7IEdyYW5pdGVGaWxlRHJhZ0FuZERyb3BEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZmlsZS1kcmFnLWFuZC1kcm9wLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBHcmFuaXRlQ2Fyb3VzZWxNb2R1bGUgfSBmcm9tICdAaWZzd29ybGQvZ3Jhbml0ZS1jb21wb25lbnRzL2Nhcm91c2VsJztcbmltcG9ydCB7XG4gIEdyYW5pdGVCdXR0b25Nb2R1bGUsXG4gIEdyYW5pdGVJY29uTW9kdWxlLFxufSBmcm9tICdAaWZzd29ybGQvZ3Jhbml0ZS1jb21wb25lbnRzJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbR3Jhbml0ZUZpbGVVcGxvYWRDb21wb25lbnQsIEdyYW5pdGVGaWxlRHJhZ0FuZERyb3BEaXJlY3RpdmVdLFxuICBleHBvcnRzOiBbR3Jhbml0ZUZpbGVVcGxvYWRDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEdyYW5pdGVCdXR0b25Nb2R1bGUsXG4gICAgR3Jhbml0ZUljb25Nb2R1bGUsXG4gICAgR3Jhbml0ZUNhcm91c2VsTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBHcmFuaXRlRmlsZVVwbG9hZE1vZHVsZSB7fVxuIl19
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export function validFileTypes(mimeTypesStringToCheck, files) {
|
|
2
|
-
const supportedFileMimeTypes = mimeTypesStringToCheck
|
|
3
|
-
.split(',')
|
|
4
|
-
.map((ext) => ext.trim());
|
|
5
|
-
if (!files || files.length === 0) {
|
|
6
|
-
return false;
|
|
7
|
-
}
|
|
8
|
-
return files.every((file) => {
|
|
9
|
-
const fileType = file['type'];
|
|
10
|
-
return fileType && supportedFileMimeTypes.includes(fileType);
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy9maWxlLXVwbG9hZC9zcmMvbGliL2ZpbGUtdXBsb2FkLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxjQUFjLENBQzVCLHNCQUE4QixFQUM5QixLQUFVO0lBRVYsTUFBTSxzQkFBc0IsR0FBRyxzQkFBc0I7U0FDbEQsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUNWLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFFNUIsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQU8sRUFBRSxFQUFFO1FBQzdCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixPQUFPLFFBQVEsSUFBSSxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0QsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHZhbGlkRmlsZVR5cGVzPFQ+KFxuICBtaW1lVHlwZXNTdHJpbmdUb0NoZWNrOiBzdHJpbmcsXG4gIGZpbGVzOiBUW11cbik6IGJvb2xlYW4ge1xuICBjb25zdCBzdXBwb3J0ZWRGaWxlTWltZVR5cGVzID0gbWltZVR5cGVzU3RyaW5nVG9DaGVja1xuICAgIC5zcGxpdCgnLCcpXG4gICAgLm1hcCgoZXh0KSA9PiBleHQudHJpbSgpKTtcblxuICBpZiAoIWZpbGVzIHx8IGZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBmaWxlcy5ldmVyeSgoZmlsZTogVCkgPT4ge1xuICAgIGNvbnN0IGZpbGVUeXBlID0gZmlsZVsndHlwZSddO1xuICAgIHJldHVybiBmaWxlVHlwZSAmJiBzdXBwb3J0ZWRGaWxlTWltZVR5cGVzLmluY2x1ZGVzKGZpbGVUeXBlKTtcbiAgfSk7XG59XG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZzd29ybGQtZ3Jhbml0ZS1jb21wb25lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvc3JjL2lmc3dvcmxkLWdyYW5pdGUtY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|