design-angular-kit 1.0.0-16 → 1.0.0-18
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/README.md +31 -6
- package/assets/i18n/en.json +4 -1
- package/assets/i18n/it.json +4 -1
- package/esm2022/lib/abstracts/abstract-form.component.mjs +186 -0
- package/esm2022/lib/abstracts/abstract.component.mjs +45 -0
- package/esm2022/lib/components/components.module.mjs +188 -0
- package/esm2022/lib/components/core/accordion/accordion.component.mjs +38 -0
- package/esm2022/lib/components/core/alert/alert.component.mjs +74 -0
- package/esm2022/lib/components/core/badge/badge.directive.mjs +38 -0
- package/esm2022/lib/components/core/button/button.directive.mjs +85 -0
- package/esm2022/lib/components/core/callout/callout.component.mjs +57 -0
- package/esm2022/lib/components/core/card/card.component.mjs +64 -0
- package/esm2022/lib/components/core/carousel/carousel/carousel.component.mjs +89 -0
- package/esm2022/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +19 -0
- package/esm2022/lib/components/core/carousel/carousel.module.mjs +23 -0
- package/esm2022/lib/components/core/chip/chip.component.mjs +96 -0
- package/esm2022/lib/components/core/collapse/collapse.component.mjs +101 -0
- package/esm2022/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +24 -0
- package/esm2022/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +11 -0
- package/esm2022/lib/components/core/dimmer/dimmer.component.mjs +59 -0
- package/esm2022/lib/components/core/dimmer/dimmer.module.mjs +27 -0
- package/esm2022/lib/components/core/dropdown/dropdown/dropdown.component.mjs +143 -0
- package/esm2022/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +68 -0
- package/esm2022/lib/components/core/dropdown/dropdown.module.mjs +18 -0
- package/esm2022/lib/components/core/forward/forward.directive.mjs +53 -0
- package/esm2022/lib/components/core/link/link.component.mjs +46 -0
- package/esm2022/lib/components/core/list/list/list.component.mjs +17 -0
- package/esm2022/lib/components/core/list/list-item/list-item.component.mjs +40 -0
- package/esm2022/lib/components/core/list/list.module.mjs +23 -0
- package/esm2022/lib/components/core/modal/modal.component.mjs +164 -0
- package/esm2022/lib/components/core/notifications/notifications.component.mjs +111 -0
- package/esm2022/lib/components/core/pagination/pagination.component.mjs +133 -0
- package/esm2022/lib/components/core/popover/popover.directive.mjs +175 -0
- package/esm2022/lib/components/core/progress-bar/progress-bar.component.mjs +35 -0
- package/esm2022/lib/components/core/progress-button/progress-button.component.mjs +27 -0
- package/esm2022/lib/components/core/spinner/spinner.component.mjs +36 -0
- package/esm2022/lib/components/core/steppers/steppers-container/steppers-container.component.mjs +138 -0
- package/esm2022/lib/components/core/steppers/steppers-item/steppers-item.component.mjs +19 -0
- package/esm2022/lib/components/core/steppers/steppers.module.mjs +23 -0
- package/esm2022/lib/components/core/tab/tab-container/tab-container.component.mjs +60 -0
- package/esm2022/lib/components/core/tab/tab-item/tab-item.component.mjs +36 -0
- package/esm2022/lib/components/core/tab/tab.module.mjs +23 -0
- package/esm2022/lib/components/core/table/table.component.mjs +57 -0
- package/esm2022/lib/components/core/tooltip/tooltip.directive.mjs +142 -0
- package/esm2022/lib/components/form/checkbox/checkbox.component.mjs +49 -0
- package/esm2022/lib/components/form/form.module.mjs +55 -0
- package/esm2022/lib/components/form/input/input.component.mjs +239 -0
- package/esm2022/lib/components/form/password-input/password-input.component.mjs +155 -0
- package/esm2022/lib/components/form/radio-button/radio-button.component.mjs +69 -0
- package/esm2022/lib/components/form/range/range.component.mjs +64 -0
- package/esm2022/lib/components/form/rating/rating.component.mjs +51 -0
- package/esm2022/lib/components/form/select/select.component.mjs +70 -0
- package/esm2022/lib/components/form/textarea/textarea.component.mjs +47 -0
- package/esm2022/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +140 -0
- package/esm2022/lib/components/form/upload-file-list/upload-file-list.component.mjs +112 -0
- package/esm2022/lib/components/navigation/back-button/back-button.component.mjs +71 -0
- package/esm2022/lib/components/navigation/back-to-top/back-to-top.component.mjs +64 -0
- package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +57 -0
- package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +23 -0
- package/esm2022/lib/components/navigation/breadcrumbs/breadcrumbs.module.mjs +18 -0
- package/esm2022/lib/components/navigation/header/header.component.mjs +58 -0
- package/esm2022/lib/components/utils/error-page/error-page.component.mjs +81 -0
- package/esm2022/lib/components/utils/icon/icon.component.mjs +55 -0
- package/esm2022/lib/components/utils/language-switcher/language-switcher.component.mjs +41 -0
- package/esm2022/lib/design-angular-kit.module.mjs +68 -0
- package/{esm2020 → esm2022}/lib/interfaces/form.mjs +1 -1
- package/esm2022/lib/interfaces/icon.mjs +165 -0
- package/esm2022/lib/pipes/mark-matching-text.pipe.mjs +37 -0
- package/esm2022/lib/services/notification/notification.service.mjs +120 -0
- package/esm2022/lib/utils/file-utils.mjs +73 -0
- package/esm2022/lib/utils/regex.mjs +31 -0
- package/esm2022/lib/validators/it-validators.mjs +153 -0
- package/esm2022/public_api.mjs +85 -0
- package/fesm2022/design-angular-kit.mjs +4615 -0
- package/fesm2022/design-angular-kit.mjs.map +1 -0
- package/lib/abstracts/abstract-form.component.d.ts +4 -4
- package/lib/abstracts/abstract.component.d.ts +3 -3
- package/lib/components/components.module.d.ts +32 -52
- package/lib/components/core/accordion/accordion.component.d.ts +6 -5
- package/lib/components/core/alert/alert.component.d.ts +5 -5
- package/lib/components/core/badge/badge.directive.d.ts +5 -5
- package/lib/components/core/button/button.directive.d.ts +11 -11
- package/lib/components/core/callout/callout.component.d.ts +7 -7
- package/lib/components/core/card/card.component.d.ts +8 -8
- package/lib/components/core/carousel/carousel/carousel.component.d.ts +10 -10
- package/lib/components/core/carousel/carousel-item/carousel-item.component.d.ts +4 -4
- package/lib/components/core/carousel/carousel.module.d.ts +8 -0
- package/lib/components/core/chip/chip.component.d.ts +6 -3
- package/lib/components/core/collapse/collapse.component.d.ts +8 -8
- package/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.d.ts +3 -3
- package/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.d.ts +3 -3
- package/lib/components/core/dimmer/dimmer.component.d.ts +4 -4
- package/lib/components/core/dimmer/dimmer.module.d.ts +9 -0
- package/lib/components/core/dropdown/dropdown/dropdown.component.d.ts +14 -9
- package/lib/components/core/dropdown/dropdown-item/dropdown-item.component.d.ts +8 -8
- package/lib/components/core/dropdown/dropdown.module.d.ts +8 -0
- package/lib/components/core/forward/forward.directive.d.ts +3 -3
- package/lib/components/core/link/link.component.d.ts +9 -8
- package/lib/components/core/list/list/list.component.d.ts +4 -4
- package/lib/components/core/list/list-item/list-item.component.d.ts +9 -9
- package/lib/components/core/list/list.module.d.ts +8 -0
- package/lib/components/core/modal/modal.component.d.ts +11 -11
- package/lib/components/core/notifications/notifications.component.d.ts +6 -6
- package/lib/components/core/pagination/pagination.component.d.ts +8 -8
- package/lib/components/core/popover/popover.directive.d.ts +3 -3
- package/lib/components/core/progress-bar/progress-bar.component.d.ts +6 -6
- package/lib/components/core/progress-button/progress-button.component.d.ts +5 -5
- package/lib/components/core/spinner/spinner.component.d.ts +5 -5
- package/lib/components/core/steppers/steppers-container/steppers-container.component.d.ts +37 -13
- package/lib/components/core/steppers/steppers-item/steppers-item.component.d.ts +5 -5
- package/lib/components/core/steppers/steppers.module.d.ts +8 -0
- package/lib/components/core/tab/tab-container/tab-container.component.d.ts +9 -9
- package/lib/components/core/tab/tab-item/tab-item.component.d.ts +8 -8
- package/lib/components/core/tab/tab.module.d.ts +8 -0
- package/lib/components/core/table/table.component.d.ts +12 -12
- package/lib/components/core/tooltip/tooltip.directive.d.ts +3 -3
- package/lib/components/form/checkbox/checkbox.component.d.ts +12 -10
- package/lib/components/form/form.module.d.ts +16 -0
- package/lib/components/form/input/input.component.d.ts +18 -13
- package/lib/components/form/password-input/password-input.component.d.ts +11 -6
- package/lib/components/form/radio-button/radio-button.component.d.ts +6 -6
- package/lib/components/form/range/range.component.d.ts +42 -0
- package/lib/components/form/rating/rating.component.d.ts +24 -0
- package/lib/components/form/select/select.component.d.ts +11 -6
- package/lib/components/form/textarea/textarea.component.d.ts +5 -5
- package/lib/components/form/upload-drag-drop/upload-drag-drop.component.d.ts +4 -4
- package/lib/components/form/upload-file-list/upload-file-list.component.d.ts +6 -6
- package/lib/components/navigation/back-button/back-button.component.d.ts +3 -3
- package/lib/components/navigation/back-to-top/back-to-top.component.d.ts +7 -7
- package/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +6 -6
- package/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.d.ts +6 -6
- package/lib/components/navigation/breadcrumbs/breadcrumbs.module.d.ts +8 -0
- package/lib/components/navigation/header/header.component.d.ts +6 -6
- package/lib/components/utils/error-page/error-page.component.d.ts +6 -6
- package/lib/components/utils/icon/icon.component.d.ts +7 -7
- package/lib/components/utils/language-switcher/language-switcher.component.d.ts +4 -4
- package/lib/design-angular-kit.module.d.ts +3 -4
- package/lib/interfaces/core.d.ts +16 -16
- package/lib/interfaces/form.d.ts +3 -3
- package/lib/interfaces/icon.d.ts +4 -4
- package/lib/pipes/mark-matching-text.pipe.d.ts +4 -4
- package/lib/services/{notifications/notifications.service.d.ts → notification/notification.service.d.ts} +3 -3
- package/lib/utils/boolean-input.d.ts +1 -1
- package/lib/utils/regex.d.ts +5 -0
- package/lib/validators/it-validators.d.ts +4 -0
- package/package.json +13 -19
- package/public_api.d.ts +13 -4
- package/esm2020/lib/abstracts/abstract-form.component.mjs +0 -188
- package/esm2020/lib/abstracts/abstract.component.mjs +0 -45
- package/esm2020/lib/components/components.module.mjs +0 -256
- package/esm2020/lib/components/core/accordion/accordion.component.mjs +0 -35
- package/esm2020/lib/components/core/alert/alert.component.mjs +0 -73
- package/esm2020/lib/components/core/badge/badge.directive.mjs +0 -37
- package/esm2020/lib/components/core/button/button.directive.mjs +0 -84
- package/esm2020/lib/components/core/callout/callout.component.mjs +0 -57
- package/esm2020/lib/components/core/card/card.component.mjs +0 -64
- package/esm2020/lib/components/core/carousel/carousel/carousel.component.mjs +0 -89
- package/esm2020/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +0 -19
- package/esm2020/lib/components/core/chip/chip.component.mjs +0 -89
- package/esm2020/lib/components/core/collapse/collapse.component.mjs +0 -101
- package/esm2020/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +0 -24
- package/esm2020/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +0 -11
- package/esm2020/lib/components/core/dimmer/dimmer.component.mjs +0 -59
- package/esm2020/lib/components/core/dropdown/dropdown/dropdown.component.mjs +0 -130
- package/esm2020/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +0 -68
- package/esm2020/lib/components/core/forward/forward.directive.mjs +0 -52
- package/esm2020/lib/components/core/link/link.component.mjs +0 -40
- package/esm2020/lib/components/core/list/list/list.component.mjs +0 -17
- package/esm2020/lib/components/core/list/list-item/list-item.component.mjs +0 -41
- package/esm2020/lib/components/core/modal/modal.component.mjs +0 -163
- package/esm2020/lib/components/core/notifications/notifications.component.mjs +0 -110
- package/esm2020/lib/components/core/pagination/pagination.component.mjs +0 -131
- package/esm2020/lib/components/core/popover/popover.directive.mjs +0 -174
- package/esm2020/lib/components/core/progress-bar/progress-bar.component.mjs +0 -34
- package/esm2020/lib/components/core/progress-button/progress-button.component.mjs +0 -27
- package/esm2020/lib/components/core/rating/rating.component.mjs +0 -49
- package/esm2020/lib/components/core/spinner/spinner.component.mjs +0 -35
- package/esm2020/lib/components/core/steppers/steppers-container/steppers-container.component.mjs +0 -127
- package/esm2020/lib/components/core/steppers/steppers-item/steppers-item.component.mjs +0 -19
- package/esm2020/lib/components/core/tab/tab-container/tab-container.component.mjs +0 -59
- package/esm2020/lib/components/core/tab/tab-item/tab-item.component.mjs +0 -36
- package/esm2020/lib/components/core/table/table.component.mjs +0 -57
- package/esm2020/lib/components/core/tooltip/tooltip.directive.mjs +0 -141
- package/esm2020/lib/components/form/checkbox/checkbox.component.mjs +0 -40
- package/esm2020/lib/components/form/input/input.component.mjs +0 -232
- package/esm2020/lib/components/form/password-input/password-input.component.mjs +0 -152
- package/esm2020/lib/components/form/radio-button/radio-button.component.mjs +0 -68
- package/esm2020/lib/components/form/select/select.component.mjs +0 -62
- package/esm2020/lib/components/form/textarea/textarea.component.mjs +0 -46
- package/esm2020/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +0 -139
- package/esm2020/lib/components/form/upload-file-list/upload-file-list.component.mjs +0 -104
- package/esm2020/lib/components/navigation/back-button/back-button.component.mjs +0 -69
- package/esm2020/lib/components/navigation/back-to-top/back-to-top.component.mjs +0 -64
- package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +0 -56
- package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +0 -23
- package/esm2020/lib/components/navigation/header/header.component.mjs +0 -57
- package/esm2020/lib/components/utils/error-page/error-page.component.mjs +0 -79
- package/esm2020/lib/components/utils/icon/icon.component.mjs +0 -55
- package/esm2020/lib/components/utils/language-switcher/language-switcher.component.mjs +0 -39
- package/esm2020/lib/design-angular-kit.module.mjs +0 -68
- package/esm2020/lib/interfaces/icon.mjs +0 -162
- package/esm2020/lib/pipes/mark-matching-text.pipe.mjs +0 -36
- package/esm2020/lib/services/notifications/notifications.service.mjs +0 -120
- package/esm2020/lib/utils/file-utils.mjs +0 -73
- package/esm2020/lib/utils/regex.mjs +0 -26
- package/esm2020/lib/validators/it-validators.mjs +0 -147
- package/esm2020/public_api.mjs +0 -74
- package/fesm2015/design-angular-kit.mjs +0 -4422
- package/fesm2015/design-angular-kit.mjs.map +0 -1
- package/fesm2020/design-angular-kit.mjs +0 -4354
- package/fesm2020/design-angular-kit.mjs.map +0 -1
- package/lib/components/core/rating/rating.component.d.ts +0 -24
- /package/{esm2020 → esm2022}/design-angular-kit.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/design-angular-kit-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/interfaces/core.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/interfaces/design-angular-kit-init.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/interfaces/utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/boolean-input.mjs +0 -0
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { AbstractFormComponent } from '../../../abstracts/abstract-form.component';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "@angular/forms";
|
|
6
|
-
export class SelectComponent extends AbstractFormComponent {
|
|
7
|
-
ngOnInit() {
|
|
8
|
-
super.ngOnInit();
|
|
9
|
-
if (this.control.value) {
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
const selectedOption = this.options?.find(this.optionIsSelected);
|
|
13
|
-
if (selectedOption) {
|
|
14
|
-
this.writeValue(selectedOption.value);
|
|
15
|
-
return this.onChange(selectedOption.value);
|
|
16
|
-
}
|
|
17
|
-
const selectedGroupOption = this.groups?.flatMap(g => g.options).find(this.optionIsSelected);
|
|
18
|
-
if (selectedGroupOption) {
|
|
19
|
-
this.writeValue(selectedGroupOption.value);
|
|
20
|
-
this.onChange(selectedGroupOption.value);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Check if the option is selected
|
|
25
|
-
* @param option the option
|
|
26
|
-
*/
|
|
27
|
-
optionIsSelected(option) {
|
|
28
|
-
if (option.selected === true) {
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
if (typeof option.selected === 'function') {
|
|
32
|
-
return option.selected(this.control.value);
|
|
33
|
-
}
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Check if the option is disabled
|
|
38
|
-
* @param option the option
|
|
39
|
-
*/
|
|
40
|
-
optionIsDisabled(option) {
|
|
41
|
-
if (option.disabled === true) {
|
|
42
|
-
return true;
|
|
43
|
-
}
|
|
44
|
-
if (typeof option.disabled === 'function') {
|
|
45
|
-
return option.disabled(this.control.value);
|
|
46
|
-
}
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: SelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
51
|
-
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: SelectComponent, selector: "it-select", inputs: { options: "options", groups: "groups", description: "description" }, usesInheritance: true, ngImport: i0, template: "<div class=\"select-wrapper\">\n <label [for]=\"id\">{{label}}</label>\n <select [id]=\"id\" [formControl]=\"control\" [attr.aria-describedby]=\"id + '-description'\">\n <ng-container *ngIf=\"options\">\n <option *ngFor=\"let option of options\" [disabled]=\"optionIsDisabled(option)\" [value]=\"option.value\">\n {{option.text ?? option.value}}\n </option>\n </ng-container>\n\n <ng-container *ngIf=\"groups\">\n <optgroup *ngFor=\"let group of groups\" [label]=\"group.label\">\n <option *ngFor=\"let option of group.options\" [disabled]=\"optionIsDisabled(option)\" [value]=\"option.value\">\n {{option.text ?? option.value}}\n </option>\n </optgroup>\n </ng-container>\n </select>\n <small *ngIf=\"description\" [id]=\"id + '-description'\" class=\"form-text\">{{description}}</small>\n</div>\n", styles: [".select-wrapper{margin-bottom:1.7rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: SelectComponent, decorators: [{
|
|
53
|
-
type: Component,
|
|
54
|
-
args: [{ selector: 'it-select', template: "<div class=\"select-wrapper\">\n <label [for]=\"id\">{{label}}</label>\n <select [id]=\"id\" [formControl]=\"control\" [attr.aria-describedby]=\"id + '-description'\">\n <ng-container *ngIf=\"options\">\n <option *ngFor=\"let option of options\" [disabled]=\"optionIsDisabled(option)\" [value]=\"option.value\">\n {{option.text ?? option.value}}\n </option>\n </ng-container>\n\n <ng-container *ngIf=\"groups\">\n <optgroup *ngFor=\"let group of groups\" [label]=\"group.label\">\n <option *ngFor=\"let option of group.options\" [disabled]=\"optionIsDisabled(option)\" [value]=\"option.value\">\n {{option.text ?? option.value}}\n </option>\n </optgroup>\n </ng-container>\n </select>\n <small *ngIf=\"description\" [id]=\"id + '-description'\" class=\"form-text\">{{description}}</small>\n</div>\n", styles: [".select-wrapper{margin-bottom:1.7rem}\n"] }]
|
|
55
|
-
}], propDecorators: { options: [{
|
|
56
|
-
type: Input
|
|
57
|
-
}], groups: [{
|
|
58
|
-
type: Input
|
|
59
|
-
}], description: [{
|
|
60
|
-
type: Input
|
|
61
|
-
}] } });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7O0FBUW5GLE1BQU0sT0FBTyxlQUFnQixTQUFRLHFCQUFxQjtJQWlCL0MsUUFBUTtRQUNmLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ3RCLE9BQU87U0FDUjtRQUNELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2pFLElBQUksY0FBYyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUM7UUFFRCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RixJQUFJLG1CQUFtQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxnQkFBZ0IsQ0FBQyxNQUEyQjtRQUMxQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFO1lBQzVCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLE9BQU8sTUFBTSxDQUFDLFFBQVEsS0FBSyxVQUFVLEVBQUU7WUFDekMsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7O09BR0c7SUFDSCxnQkFBZ0IsQ0FBQyxNQUEyQjtRQUMxQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFO1lBQzVCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLE9BQU8sTUFBTSxDQUFDLFFBQVEsS0FBSyxVQUFVLEVBQUU7WUFDekMsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OzRHQWxFVSxlQUFlO2dHQUFmLGVBQWUsc0pDVDVCLGsyQkFtQkE7MkZEVmEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxXQUFXOzhCQVNaLE9BQU87c0JBQWYsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYWJzdHJhY3RzL2Fic3RyYWN0LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdENvbnRyb2xHcm91cCwgU2VsZWN0Q29udHJvbE9wdGlvbiB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvZm9ybSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l0LXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKlxuICAgKiBUaGUgc2VsZWN0IG9wdGlvbnNcbiAgICovXG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBBcnJheTxTZWxlY3RDb250cm9sT3B0aW9uPjtcblxuICAvKipcbiAgICogVGhlIHNlbGVjdCBncm91cCBvcHRpb25zXG4gICAqL1xuICBASW5wdXQoKSBncm91cHM/OiBBcnJheTxTZWxlY3RDb250cm9sR3JvdXA+O1xuXG4gIC8qKlxuICAgKiBUaGUgc2VsZWN0IGRlc2NyaXB0aW9uXG4gICAqL1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgaWYgKHRoaXMuY29udHJvbC52YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IHRoaXMub3B0aW9ucz8uZmluZCh0aGlzLm9wdGlvbklzU2VsZWN0ZWQpO1xuICAgIGlmIChzZWxlY3RlZE9wdGlvbikge1xuICAgICAgdGhpcy53cml0ZVZhbHVlKHNlbGVjdGVkT3B0aW9uLnZhbHVlKTtcbiAgICAgIHJldHVybiB0aGlzLm9uQ2hhbmdlKHNlbGVjdGVkT3B0aW9uLnZhbHVlKTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZEdyb3VwT3B0aW9uID0gdGhpcy5ncm91cHM/LmZsYXRNYXAoZyA9PiBnLm9wdGlvbnMpLmZpbmQodGhpcy5vcHRpb25Jc1NlbGVjdGVkKTtcbiAgICBpZiAoc2VsZWN0ZWRHcm91cE9wdGlvbikge1xuICAgICAgdGhpcy53cml0ZVZhbHVlKHNlbGVjdGVkR3JvdXBPcHRpb24udmFsdWUpO1xuICAgICAgdGhpcy5vbkNoYW5nZShzZWxlY3RlZEdyb3VwT3B0aW9uLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZFxuICAgKiBAcGFyYW0gb3B0aW9uIHRoZSBvcHRpb25cbiAgICovXG4gIG9wdGlvbklzU2VsZWN0ZWQob3B0aW9uOiBTZWxlY3RDb250cm9sT3B0aW9uKTogYm9vbGVhbiB7XG4gICAgaWYgKG9wdGlvbi5zZWxlY3RlZCA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcHRpb24uc2VsZWN0ZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBvcHRpb24uc2VsZWN0ZWQodGhpcy5jb250cm9sLnZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhlIG9wdGlvbiBpcyBkaXNhYmxlZFxuICAgKiBAcGFyYW0gb3B0aW9uIHRoZSBvcHRpb25cbiAgICovXG4gIG9wdGlvbklzRGlzYWJsZWQob3B0aW9uOiBTZWxlY3RDb250cm9sT3B0aW9uKTogYm9vbGVhbiB7XG4gICAgaWYgKG9wdGlvbi5kaXNhYmxlZCA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcHRpb24uZGlzYWJsZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBvcHRpb24uZGlzYWJsZWQodGhpcy5jb250cm9sLnZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZWxlY3Qtd3JhcHBlclwiPlxuICA8bGFiZWwgW2Zvcl09XCJpZFwiPnt7bGFiZWx9fTwvbGFiZWw+XG4gIDxzZWxlY3QgW2lkXT1cImlkXCIgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIiBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImlkICsgJy1kZXNjcmlwdGlvbidcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uc1wiPlxuICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBbZGlzYWJsZWRdPVwib3B0aW9uSXNEaXNhYmxlZChvcHRpb24pXCIgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiPlxuICAgICAgICB7e29wdGlvbi50ZXh0ID8/IG9wdGlvbi52YWx1ZX19XG4gICAgICA8L29wdGlvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cHNcIj5cbiAgICAgIDxvcHRncm91cCAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgZ3JvdXBzXCIgW2xhYmVsXT1cImdyb3VwLmxhYmVsXCI+XG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBncm91cC5vcHRpb25zXCIgW2Rpc2FibGVkXT1cIm9wdGlvbklzRGlzYWJsZWQob3B0aW9uKVwiIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIj5cbiAgICAgICAgICB7e29wdGlvbi50ZXh0ID8/IG9wdGlvbi52YWx1ZX19XG4gICAgICAgIDwvb3B0aW9uPlxuICAgICAgPC9vcHRncm91cD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9zZWxlY3Q+XG4gIDxzbWFsbCAqbmdJZj1cImRlc2NyaXB0aW9uXCIgW2lkXT1cImlkICsgJy1kZXNjcmlwdGlvbidcIiBjbGFzcz1cImZvcm0tdGV4dFwiPnt7ZGVzY3JpcHRpb259fTwvc21hbGw+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import { AbstractFormComponent } from '../../../abstracts/abstract-form.component';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "@angular/forms";
|
|
6
|
-
export class TextareaComponent extends AbstractFormComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
/**
|
|
10
|
-
* Textarea Rows
|
|
11
|
-
* @default 3
|
|
12
|
-
*/
|
|
13
|
-
this.rows = 3;
|
|
14
|
-
/**
|
|
15
|
-
* The textarea placeholder
|
|
16
|
-
*/
|
|
17
|
-
this.placeholder = '';
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Return the invalid message string from TranslateService
|
|
21
|
-
*/
|
|
22
|
-
get invalidMessage() {
|
|
23
|
-
if (this.control.hasError('maxlength')) {
|
|
24
|
-
const error = this.getError('maxlength');
|
|
25
|
-
return this._translateService.get('it.errors.max-length-invalid', { max: error.requiredLength });
|
|
26
|
-
}
|
|
27
|
-
if (this.control.hasError('pattern')) {
|
|
28
|
-
const error = this.getError('pattern');
|
|
29
|
-
return this._translateService.get('it.errors.pattern-invalid', { pattern: error.requiredPattern });
|
|
30
|
-
}
|
|
31
|
-
return super.invalidMessage;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
TextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TextareaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
-
TextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: TextareaComponent, selector: "it-textarea", inputs: { rows: "rows", placeholder: "placeholder", description: "description" }, usesInheritance: true, ngImport: i0, template: "<div class=\"form-group\">\n <label *ngIf=\"label\" [for]=\"id\" [class.active]=\"!!control.value || !!placeholder\">{{label}}</label>\n <textarea\n [id]=\"id\"\n [rows]=\"rows\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n (blur)=\"markAsTouched()\"></textarea>\n\n <small *ngIf=\"description\" [id]=\"id + '-description'\" class=\"form-text\">{{description}}</small>\n <div *ngIf=\"isInvalid\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <div #customError><ng-content select=\"[error]\"></ng-content></div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n </div>\n</div>\n", styles: ["textarea.is-invalid{border-color:#cc334d}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TextareaComponent, decorators: [{
|
|
37
|
-
type: Component,
|
|
38
|
-
args: [{ selector: 'it-textarea', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group\">\n <label *ngIf=\"label\" [for]=\"id\" [class.active]=\"!!control.value || !!placeholder\">{{label}}</label>\n <textarea\n [id]=\"id\"\n [rows]=\"rows\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n (blur)=\"markAsTouched()\"></textarea>\n\n <small *ngIf=\"description\" [id]=\"id + '-description'\" class=\"form-text\">{{description}}</small>\n <div *ngIf=\"isInvalid\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <div #customError><ng-content select=\"[error]\"></ng-content></div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n </div>\n</div>\n", styles: ["textarea.is-invalid{border-color:#cc334d}\n"] }]
|
|
39
|
-
}], propDecorators: { rows: [{
|
|
40
|
-
type: Input
|
|
41
|
-
}], placeholder: [{
|
|
42
|
-
type: Input
|
|
43
|
-
}], description: [{
|
|
44
|
-
type: Input
|
|
45
|
-
}] } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9mb3JtL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7OztBQVNuRixNQUFNLE9BQU8saUJBQWtCLFNBQVEscUJBQTZCO0lBTnBFOztRQVFFOzs7V0FHRztRQUNNLFNBQUksR0FBWSxDQUFDLENBQUM7UUFFM0I7O1dBRUc7UUFDTSxnQkFBVyxHQUFXLEVBQUUsQ0FBQztLQXNCbkM7SUFmQzs7T0FFRztJQUNILElBQWEsY0FBYztRQUN6QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLDhCQUE4QixFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1NBQ2xHO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNwQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztTQUNwRztRQUVELE9BQU8sS0FBSyxDQUFDLGNBQWMsQ0FBQztJQUM5QixDQUFDOzs4R0FoQ1UsaUJBQWlCO2tHQUFqQixpQkFBaUIsNEpDVjlCLHF3QkFpQkE7MkZEUGEsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTTs4QkFRdEMsSUFBSTtzQkFBWixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9hYnN0cmFjdHMvYWJzdHJhY3QtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpdC10ZXh0YXJlYScsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0YXJlYS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RleHRhcmVhLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRleHRhcmVhQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGb3JtQ29tcG9uZW50PHN0cmluZz4ge1xuXG4gIC8qKlxuICAgKiBUZXh0YXJlYSBSb3dzXG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIEBJbnB1dCgpIHJvd3M/OiBudW1iZXIgPSAzO1xuXG4gIC8qKlxuICAgKiBUaGUgdGV4dGFyZWEgcGxhY2Vob2xkZXJcbiAgICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogVGhlIGlucHV0IGRlc2NyaXB0aW9uXG4gICAqL1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBpbnZhbGlkIG1lc3NhZ2Ugc3RyaW5nIGZyb20gVHJhbnNsYXRlU2VydmljZVxuICAgKi9cbiAgb3ZlcnJpZGUgZ2V0IGludmFsaWRNZXNzYWdlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgaWYgKHRoaXMuY29udHJvbC5oYXNFcnJvcignbWF4bGVuZ3RoJykpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gdGhpcy5nZXRFcnJvcignbWF4bGVuZ3RoJyk7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5nZXQoJ2l0LmVycm9ycy5tYXgtbGVuZ3RoLWludmFsaWQnLCB7IG1heDogZXJyb3IucmVxdWlyZWRMZW5ndGggfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbnRyb2wuaGFzRXJyb3IoJ3BhdHRlcm4nKSkge1xuICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLmdldEVycm9yKCdwYXR0ZXJuJyk7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5nZXQoJ2l0LmVycm9ycy5wYXR0ZXJuLWludmFsaWQnLCB7IHBhdHRlcm46IGVycm9yLnJlcXVpcmVkUGF0dGVybiB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXIuaW52YWxpZE1lc3NhZ2U7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gIDxsYWJlbCAqbmdJZj1cImxhYmVsXCIgW2Zvcl09XCJpZFwiIFtjbGFzcy5hY3RpdmVdPVwiISFjb250cm9sLnZhbHVlIHx8ICEhcGxhY2Vob2xkZXJcIj57e2xhYmVsfX08L2xhYmVsPlxuICA8dGV4dGFyZWFcbiAgICBbaWRdPVwiaWRcIlxuICAgIFtyb3dzXT1cInJvd3NcIlxuICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cImlzSW52YWxpZFwiXG4gICAgW2NsYXNzLmlzLXZhbGlkXT1cImlzVmFsaWRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgIChibHVyKT1cIm1hcmtBc1RvdWNoZWQoKVwiPjwvdGV4dGFyZWE+XG5cbiAgPHNtYWxsICpuZ0lmPVwiZGVzY3JpcHRpb25cIiBbaWRdPVwiaWQgKyAnLWRlc2NyaXB0aW9uJ1wiIGNsYXNzPVwiZm9ybS10ZXh0XCI+e3tkZXNjcmlwdGlvbn19PC9zbWFsbD5cbiAgPGRpdiAqbmdJZj1cImlzSW52YWxpZFwiIGNsYXNzPVwiZm9ybS1mZWVkYmFjayBqdXN0LXZhbGlkYXRlLWVycm9yLWxhYmVsXCIgW2lkXT1cImlkICsgJy1lcnJvcidcIj5cbiAgICA8ZGl2ICNjdXN0b21FcnJvcj48bmctY29udGVudCBzZWxlY3Q9XCJbZXJyb3JdXCI+PC9uZy1jb250ZW50PjwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY3VzdG9tRXJyb3IuaGFzQ2hpbGROb2RlcygpXCI+e3tpbnZhbGlkTWVzc2FnZSB8IGFzeW5jfX08L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { AbstractComponent } from '../../../abstracts/abstract.component';
|
|
3
|
-
import { FileUtils } from '../../../utils/file-utils';
|
|
4
|
-
import { ProgressDonut } from 'bootstrap-italia';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common";
|
|
7
|
-
import * as i2 from "../../utils/icon/icon.component";
|
|
8
|
-
import * as i3 from "@ngx-translate/core";
|
|
9
|
-
export class UploadDragDropComponent extends AbstractComponent {
|
|
10
|
-
constructor() {
|
|
11
|
-
super(...arguments);
|
|
12
|
-
/**
|
|
13
|
-
* The accepted file type to upload <br>
|
|
14
|
-
* Possible values: <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types">MIME Types</a> separated by comma
|
|
15
|
-
* @example application/pdf,image/png
|
|
16
|
-
* @default *
|
|
17
|
-
*/
|
|
18
|
-
this.accept = '*';
|
|
19
|
-
/**
|
|
20
|
-
* Fired when file start to upload
|
|
21
|
-
*/
|
|
22
|
-
this.fileStartUpload = new EventEmitter();
|
|
23
|
-
this.isDragover = false;
|
|
24
|
-
this.isLoading = false;
|
|
25
|
-
this.isSuccess = false;
|
|
26
|
-
}
|
|
27
|
-
ngAfterViewInit() {
|
|
28
|
-
super.ngAfterViewInit();
|
|
29
|
-
if (this.donutElement) {
|
|
30
|
-
this.donut = ProgressDonut.getOrCreateInstance(this.donutElement.nativeElement);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
// Dragover listener
|
|
34
|
-
onDragOver(evt) {
|
|
35
|
-
evt.preventDefault();
|
|
36
|
-
evt.stopPropagation();
|
|
37
|
-
this.isDragover = !this.isLoading;
|
|
38
|
-
}
|
|
39
|
-
// Dragleave listener
|
|
40
|
-
onDragLeave(evt) {
|
|
41
|
-
evt.preventDefault();
|
|
42
|
-
evt.stopPropagation();
|
|
43
|
-
this.isDragover = false;
|
|
44
|
-
}
|
|
45
|
-
// Drop leave listener
|
|
46
|
-
onDrop(evt) {
|
|
47
|
-
evt.preventDefault();
|
|
48
|
-
evt.stopPropagation();
|
|
49
|
-
this.isDragover = false;
|
|
50
|
-
const files = evt.dataTransfer?.files;
|
|
51
|
-
if (this.isLoading || !files?.length) {
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
this.start(files[0]);
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* On load file from input
|
|
58
|
-
* @param event
|
|
59
|
-
*/
|
|
60
|
-
onLoadFile(event) {
|
|
61
|
-
const files = event.target?.files;
|
|
62
|
-
if (!files?.length) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
this.start(files[0]);
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Start the upload file
|
|
69
|
-
* @param file
|
|
70
|
-
*/
|
|
71
|
-
start(file) {
|
|
72
|
-
if (this.accept !== '*' && !this.accept.includes(file.type)) {
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
this.reset();
|
|
76
|
-
this.isLoading = true;
|
|
77
|
-
const splitName = file.name.split('.');
|
|
78
|
-
this.filename = splitName[0];
|
|
79
|
-
this.extension = splitName[1]?.toUpperCase();
|
|
80
|
-
this.fileSize = FileUtils.getFileSizeString(file);
|
|
81
|
-
this.fileStartUpload.emit(file);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Percentage of upload
|
|
85
|
-
* @param value the percentage [0 - 100]
|
|
86
|
-
*/
|
|
87
|
-
progress(value) {
|
|
88
|
-
if (!this.isLoading) {
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
if (value >= 100) {
|
|
92
|
-
this.success();
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
this.donut?.set(((value < 0) ? 0 : value) / 100);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Upload success
|
|
100
|
-
*/
|
|
101
|
-
success() {
|
|
102
|
-
this.isLoading = false;
|
|
103
|
-
this.isSuccess = true;
|
|
104
|
-
this._changeDetectorRef.detectChanges();
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Reset file uploader
|
|
108
|
-
*/
|
|
109
|
-
reset() {
|
|
110
|
-
this.isLoading = false;
|
|
111
|
-
this.isSuccess = false;
|
|
112
|
-
this.filename = this.extension = this.fileSize = undefined;
|
|
113
|
-
this.donut?.set(0);
|
|
114
|
-
this._changeDetectorRef.detectChanges();
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
UploadDragDropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: UploadDragDropComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
118
|
-
UploadDragDropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: UploadDragDropComponent, selector: "it-upload-drag-drop", inputs: { accept: "accept" }, outputs: { fileStartUpload: "fileStartUpload" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" } }, viewQueries: [{ propertyName: "donutElement", first: true, predicate: ["donutElement"], descendants: true }], exportAs: ["itUploadDragDrop"], usesInheritance: true, ngImport: i0, template: "<div class=\"upload-dragdrop\" [class.dragover]=\"isDragover\" [class.loading]=\"isLoading\" [class.success]=\"isSuccess\">\n <div class=\"upload-dragdrop-image\">\n <img src=\"/bootstrap-italia/dist/assets/upload-drag-drop-icon.svg\" alt=\"drag-drop-icon\" aria-hidden=\"true\">\n <div class=\"upload-dragdrop-loading\">\n <div class=\"progress-donut\" #donutElement></div>\n </div>\n <div class=\"upload-dragdrop-success\">\n <it-icon name=\"check\"></it-icon>\n </div>\n </div>\n <div class=\"upload-dragdrop-text\">\n <p class=\"upload-dragdrop-weight\">\n <it-icon name=\"file\" size=\"xs\"></it-icon>\n {{extension}} ({{fileSize}})\n </p>\n <h5>{{filename || ('it.form.upload-drag-file'|translate)}}</h5>\n <p *ngIf=\"isLoading\">{{'it.form.upload-loading'|translate}}</p>\n <p *ngIf=\"isSuccess\">{{'it.form.upload-complete'|translate}}</p>\n <p *ngIf=\"!isLoading && !isSuccess\">{{'it.form.upload-or'|translate}}\n <input type=\"file\" [id]=\"id\" class=\"upload-dragdrop-input\" [accept]=\"accept\" (change)=\"onLoadFile($event)\"/>\n <label [for]=\"id\">{{'it.form.upload-select-device'|translate}}</label>\n </p>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "svgClass"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
119
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: UploadDragDropComponent, decorators: [{
|
|
120
|
-
type: Component,
|
|
121
|
-
args: [{ selector: 'it-upload-drag-drop', exportAs: 'itUploadDragDrop', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"upload-dragdrop\" [class.dragover]=\"isDragover\" [class.loading]=\"isLoading\" [class.success]=\"isSuccess\">\n <div class=\"upload-dragdrop-image\">\n <img src=\"/bootstrap-italia/dist/assets/upload-drag-drop-icon.svg\" alt=\"drag-drop-icon\" aria-hidden=\"true\">\n <div class=\"upload-dragdrop-loading\">\n <div class=\"progress-donut\" #donutElement></div>\n </div>\n <div class=\"upload-dragdrop-success\">\n <it-icon name=\"check\"></it-icon>\n </div>\n </div>\n <div class=\"upload-dragdrop-text\">\n <p class=\"upload-dragdrop-weight\">\n <it-icon name=\"file\" size=\"xs\"></it-icon>\n {{extension}} ({{fileSize}})\n </p>\n <h5>{{filename || ('it.form.upload-drag-file'|translate)}}</h5>\n <p *ngIf=\"isLoading\">{{'it.form.upload-loading'|translate}}</p>\n <p *ngIf=\"isSuccess\">{{'it.form.upload-complete'|translate}}</p>\n <p *ngIf=\"!isLoading && !isSuccess\">{{'it.form.upload-or'|translate}}\n <input type=\"file\" [id]=\"id\" class=\"upload-dragdrop-input\" [accept]=\"accept\" (change)=\"onLoadFile($event)\"/>\n <label [for]=\"id\">{{'it.form.upload-select-device'|translate}}</label>\n </p>\n </div>\n</div>\n" }]
|
|
122
|
-
}], propDecorators: { accept: [{
|
|
123
|
-
type: Input
|
|
124
|
-
}], fileStartUpload: [{
|
|
125
|
-
type: Output
|
|
126
|
-
}], donutElement: [{
|
|
127
|
-
type: ViewChild,
|
|
128
|
-
args: ['donutElement']
|
|
129
|
-
}], onDragOver: [{
|
|
130
|
-
type: HostListener,
|
|
131
|
-
args: ['dragover', ['$event']]
|
|
132
|
-
}], onDragLeave: [{
|
|
133
|
-
type: HostListener,
|
|
134
|
-
args: ['dragleave', ['$event']]
|
|
135
|
-
}], onDrop: [{
|
|
136
|
-
type: HostListener,
|
|
137
|
-
args: ['drop', ['$event']]
|
|
138
|
-
}] } });
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWRyYWctZHJvcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vdXBsb2FkLWRyYWctZHJvcC91cGxvYWQtZHJhZy1kcm9wLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS91cGxvYWQtZHJhZy1kcm9wL3VwbG9hZC1kcmFnLWRyb3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7OztBQVFqRCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsaUJBQWlCO0lBTjlEOztRQVFFOzs7OztXQUtHO1FBQ00sV0FBTSxHQUFXLEdBQUcsQ0FBQztRQUU5Qjs7V0FFRztRQUNPLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVyRCxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsY0FBUyxHQUFZLEtBQUssQ0FBQztLQW9INUI7SUExR1UsZUFBZTtRQUN0QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDakY7SUFDSCxDQUFDO0lBRUQsb0JBQW9CO0lBRWIsVUFBVSxDQUFDLEdBQWM7UUFDOUIsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNwQyxDQUFDO0lBR0QscUJBQXFCO0lBRWQsV0FBVyxDQUFDLEdBQWM7UUFDL0IsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsc0JBQXNCO0lBRWYsTUFBTSxDQUFDLEdBQWM7UUFDMUIsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV0QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQztRQUN0QyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFO1lBQ3BDLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxLQUFZO1FBQ3JCLE1BQU0sS0FBSyxHQUFJLEtBQUssQ0FBQyxNQUEyQixFQUFFLEtBQUssQ0FBQztRQUN4RCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUNsQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsSUFBVTtRQUNyQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzNELE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxRQUFRLENBQUMsS0FBYTtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixPQUFPO1NBQ1I7UUFFRCxJQUFJLEtBQUssSUFBSSxHQUFHLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ2hCO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQ2xEO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTztRQUNaLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLO1FBQ1YsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1FBQzNELElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQyxDQUFDOztvSEFuSVUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsd2FDckJwQywrckNBd0JBOzJGREhhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDRSxxQkFBcUIsWUFFckIsa0JBQWtCLG1CQUNYLHVCQUF1QixDQUFDLE1BQU07OEJBVXRDLE1BQU07c0JBQWQsS0FBSztnQkFLSSxlQUFlO3NCQUF4QixNQUFNO2dCQVE0QixZQUFZO3NCQUE5QyxTQUFTO3VCQUFDLGNBQWM7Z0JBZWxCLFVBQVU7c0JBRGhCLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVU3QixXQUFXO3NCQURqQixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFTOUIsTUFBTTtzQkFEWixZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Fic3RyYWN0cy9hYnN0cmFjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZVV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZmlsZS11dGlscyc7XG5pbXBvcnQgeyBQcm9ncmVzc0RvbnV0IH0gZnJvbSAnYm9vdHN0cmFwLWl0YWxpYSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l0LXVwbG9hZC1kcmFnLWRyb3AnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkLWRyYWctZHJvcC5jb21wb25lbnQuaHRtbCcsXG4gIGV4cG9ydEFzOiAnaXRVcGxvYWREcmFnRHJvcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFVwbG9hZERyYWdEcm9wQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICAvKipcbiAgICogVGhlIGFjY2VwdGVkIGZpbGUgdHlwZSB0byB1cGxvYWQgPGJyPlxuICAgKiBQb3NzaWJsZSB2YWx1ZXM6IDxhIGhyZWY9XCJodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL0Jhc2ljc19vZl9IVFRQL01JTUVfdHlwZXMvQ29tbW9uX3R5cGVzXCI+TUlNRSBUeXBlczwvYT4gc2VwYXJhdGVkIGJ5IGNvbW1hXG4gICAqIEBleGFtcGxlIGFwcGxpY2F0aW9uL3BkZixpbWFnZS9wbmdcbiAgICogQGRlZmF1bHQgKlxuICAgKi9cbiAgQElucHV0KCkgYWNjZXB0OiBzdHJpbmcgPSAnKic7XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gZmlsZSBzdGFydCB0byB1cGxvYWRcbiAgICovXG4gIEBPdXRwdXQoKSBmaWxlU3RhcnRVcGxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGU+KCk7XG5cbiAgaXNEcmFnb3ZlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNTdWNjZXNzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZG9udXQ/OiBQcm9ncmVzc0RvbnV0O1xuXG4gIEBWaWV3Q2hpbGQoJ2RvbnV0RWxlbWVudCcpIHByaXZhdGUgZG9udXRFbGVtZW50PzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgZmlsZW5hbWU/OiBzdHJpbmc7XG4gIGV4dGVuc2lvbj86IHN0cmluZztcbiAgZmlsZVNpemU/OiBzdHJpbmc7XG5cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIGlmICh0aGlzLmRvbnV0RWxlbWVudCkge1xuICAgICAgdGhpcy5kb251dCA9IFByb2dyZXNzRG9udXQuZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzLmRvbnV0RWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICAvLyBEcmFnb3ZlciBsaXN0ZW5lclxuICBASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkRyYWdPdmVyKGV2dDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaXNEcmFnb3ZlciA9ICF0aGlzLmlzTG9hZGluZztcbiAgfVxuXG5cbiAgLy8gRHJhZ2xlYXZlIGxpc3RlbmVyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkRyYWdMZWF2ZShldnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmlzRHJhZ292ZXIgPSBmYWxzZTtcbiAgfVxuXG4gIC8vIERyb3AgbGVhdmUgbGlzdGVuZXJcbiAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkRyb3AoZXZ0OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICB0aGlzLmlzRHJhZ292ZXIgPSBmYWxzZTtcbiAgICBjb25zdCBmaWxlcyA9IGV2dC5kYXRhVHJhbnNmZXI/LmZpbGVzO1xuICAgIGlmICh0aGlzLmlzTG9hZGluZyB8fCAhZmlsZXM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnN0YXJ0KGZpbGVzWzBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBsb2FkIGZpbGUgZnJvbSBpbnB1dFxuICAgKiBAcGFyYW0gZXZlbnRcbiAgICovXG4gIG9uTG9hZEZpbGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZmlsZXMgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpPy5maWxlcztcbiAgICBpZiAoIWZpbGVzPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zdGFydChmaWxlc1swXSk7XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgdGhlIHVwbG9hZCBmaWxlXG4gICAqIEBwYXJhbSBmaWxlXG4gICAqL1xuICBwdWJsaWMgc3RhcnQoZmlsZTogRmlsZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFjY2VwdCAhPT0gJyonICYmICF0aGlzLmFjY2VwdC5pbmNsdWRlcyhmaWxlLnR5cGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZXNldCgpO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgIGNvbnN0IHNwbGl0TmFtZSA9IGZpbGUubmFtZS5zcGxpdCgnLicpO1xuICAgIHRoaXMuZmlsZW5hbWUgPSBzcGxpdE5hbWVbMF07XG4gICAgdGhpcy5leHRlbnNpb24gPSBzcGxpdE5hbWVbMV0/LnRvVXBwZXJDYXNlKCk7XG4gICAgdGhpcy5maWxlU2l6ZSA9IEZpbGVVdGlscy5nZXRGaWxlU2l6ZVN0cmluZyhmaWxlKTtcblxuICAgIHRoaXMuZmlsZVN0YXJ0VXBsb2FkLmVtaXQoZmlsZSk7XG4gIH1cblxuICAvKipcbiAgICogUGVyY2VudGFnZSBvZiB1cGxvYWRcbiAgICogQHBhcmFtIHZhbHVlIHRoZSBwZXJjZW50YWdlIFswIC0gMTAwXVxuICAgKi9cbiAgcHVibGljIHByb2dyZXNzKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAoIXRoaXMuaXNMb2FkaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlID49IDEwMCkge1xuICAgICAgdGhpcy5zdWNjZXNzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZG9udXQ/LnNldCgoKHZhbHVlIDwgMCkgPyAwIDogdmFsdWUpIC8gMTAwKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBsb2FkIHN1Y2Nlc3NcbiAgICovXG4gIHB1YmxpYyBzdWNjZXNzKCk6IHZvaWQge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5pc1N1Y2Nlc3MgPSB0cnVlO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBmaWxlIHVwbG9hZGVyXG4gICAqL1xuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmlzU3VjY2VzcyA9IGZhbHNlO1xuICAgIHRoaXMuZmlsZW5hbWUgPSB0aGlzLmV4dGVuc2lvbiA9IHRoaXMuZmlsZVNpemUgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5kb251dD8uc2V0KDApO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwidXBsb2FkLWRyYWdkcm9wXCIgW2NsYXNzLmRyYWdvdmVyXT1cImlzRHJhZ292ZXJcIiBbY2xhc3MubG9hZGluZ109XCJpc0xvYWRpbmdcIiBbY2xhc3Muc3VjY2Vzc109XCJpc1N1Y2Nlc3NcIj5cbiAgPGRpdiBjbGFzcz1cInVwbG9hZC1kcmFnZHJvcC1pbWFnZVwiPlxuICAgIDxpbWcgc3JjPVwiL2Jvb3RzdHJhcC1pdGFsaWEvZGlzdC9hc3NldHMvdXBsb2FkLWRyYWctZHJvcC1pY29uLnN2Z1wiIGFsdD1cImRyYWctZHJvcC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZC1kcmFnZHJvcC1sb2FkaW5nXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtZG9udXRcIiAjZG9udXRFbGVtZW50PjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtZHJhZ2Ryb3Atc3VjY2Vzc1wiPlxuICAgICAgPGl0LWljb24gbmFtZT1cImNoZWNrXCI+PC9pdC1pY29uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInVwbG9hZC1kcmFnZHJvcC10ZXh0XCI+XG4gICAgPHAgY2xhc3M9XCJ1cGxvYWQtZHJhZ2Ryb3Atd2VpZ2h0XCI+XG4gICAgICA8aXQtaWNvbiBuYW1lPVwiZmlsZVwiIHNpemU9XCJ4c1wiPjwvaXQtaWNvbj5cbiAgICAgIHt7ZXh0ZW5zaW9ufX0gKHt7ZmlsZVNpemV9fSlcbiAgICA8L3A+XG4gICAgPGg1Pnt7ZmlsZW5hbWUgfHwgKCdpdC5mb3JtLnVwbG9hZC1kcmFnLWZpbGUnfHRyYW5zbGF0ZSl9fTwvaDU+XG4gICAgPHAgKm5nSWY9XCJpc0xvYWRpbmdcIj57eydpdC5mb3JtLnVwbG9hZC1sb2FkaW5nJ3x0cmFuc2xhdGV9fTwvcD5cbiAgICA8cCAqbmdJZj1cImlzU3VjY2Vzc1wiPnt7J2l0LmZvcm0udXBsb2FkLWNvbXBsZXRlJ3x0cmFuc2xhdGV9fTwvcD5cbiAgICA8cCAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgIWlzU3VjY2Vzc1wiPnt7J2l0LmZvcm0udXBsb2FkLW9yJ3x0cmFuc2xhdGV9fVxuICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgW2lkXT1cImlkXCIgY2xhc3M9XCJ1cGxvYWQtZHJhZ2Ryb3AtaW5wdXRcIiBbYWNjZXB0XT1cImFjY2VwdFwiIChjaGFuZ2UpPVwib25Mb2FkRmlsZSgkZXZlbnQpXCIvPlxuICAgICAgPGxhYmVsIFtmb3JdPVwiaWRcIj57eydpdC5mb3JtLnVwbG9hZC1zZWxlY3QtZGV2aWNlJ3x0cmFuc2xhdGV9fTwvbGFiZWw+XG4gICAgPC9wPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { AbstractComponent } from '../../../abstracts/abstract.component';
|
|
3
|
-
import { isTrueBooleanInput } from '../../../utils/boolean-input';
|
|
4
|
-
import { FileUtils } from '../../../utils/file-utils';
|
|
5
|
-
import { forkJoin, take, tap } from 'rxjs';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/common";
|
|
8
|
-
import * as i2 from "../../core/progress-bar/progress-bar.component";
|
|
9
|
-
import * as i3 from "../../core/tooltip/tooltip.directive";
|
|
10
|
-
import * as i4 from "../../utils/icon/icon.component";
|
|
11
|
-
import * as i5 from "@ngx-translate/core";
|
|
12
|
-
export class UploadFileListComponent extends AbstractComponent {
|
|
13
|
-
constructor() {
|
|
14
|
-
super(...arguments);
|
|
15
|
-
/**
|
|
16
|
-
* The accepted file type to upload <br>
|
|
17
|
-
* Possible values: <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types">MIME Types</a> separated by comma
|
|
18
|
-
* @example application/pdf,image/png
|
|
19
|
-
* @default *
|
|
20
|
-
*/
|
|
21
|
-
this.accept = '*';
|
|
22
|
-
/**
|
|
23
|
-
* If upload multiple files
|
|
24
|
-
*/
|
|
25
|
-
this.multiple = true;
|
|
26
|
-
/**
|
|
27
|
-
* Fired when upload new files
|
|
28
|
-
*/
|
|
29
|
-
this.uploadFiles = new EventEmitter();
|
|
30
|
-
/**
|
|
31
|
-
* Fired on delete item button click
|
|
32
|
-
*/
|
|
33
|
-
this.deleteItem = new EventEmitter();
|
|
34
|
-
/**
|
|
35
|
-
* Cache to preview image
|
|
36
|
-
*/
|
|
37
|
-
this.previewImages = new Map();
|
|
38
|
-
}
|
|
39
|
-
ngOnInit() {
|
|
40
|
-
if (this.isImageList && this.accept === '*') {
|
|
41
|
-
this.accept = 'image/*';
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
ngOnChanges(changes) {
|
|
45
|
-
if (changes['fileList'] && this.isImageList) {
|
|
46
|
-
const images$ = this.fileList.map(item => FileUtils.fileToBase64(item.file).pipe(take(1), tap(base64 => this.previewImages.set(item.id, base64))));
|
|
47
|
-
forkJoin(images$).subscribe(() => {
|
|
48
|
-
this._changeDetectorRef.detectChanges();
|
|
49
|
-
super.ngOnChanges(changes);
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
super.ngOnChanges(changes);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
get isMultipleInput() {
|
|
57
|
-
return isTrueBooleanInput(this.multiple);
|
|
58
|
-
}
|
|
59
|
-
get isImageList() {
|
|
60
|
-
return isTrueBooleanInput(this.images);
|
|
61
|
-
}
|
|
62
|
-
get isHideLoadButton() {
|
|
63
|
-
return isTrueBooleanInput(this.hideLoadButton);
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* On load file from input
|
|
67
|
-
* @param event
|
|
68
|
-
*/
|
|
69
|
-
onLoadFiles(event) {
|
|
70
|
-
const files = event.target?.files;
|
|
71
|
-
if (!files || !files.length) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
this.uploadFiles.emit(files);
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Get the file size string
|
|
78
|
-
* @param file
|
|
79
|
-
*/
|
|
80
|
-
getFileSize(file) {
|
|
81
|
-
return FileUtils.getFileSizeString(file);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
UploadFileListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: UploadFileListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
85
|
-
UploadFileListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: UploadFileListComponent, selector: "it-upload-file-list[fileList]", inputs: { fileList: "fileList", accept: "accept", multiple: "multiple", images: "images", hideLoadButton: "hideLoadButton" }, outputs: { uploadFiles: "uploadFiles", deleteItem: "deleteItem" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isHideLoadButton\">\n <input type=\"file\" [id]=\"id\" class=\"upload\" [accept]=\"accept\" [multiple]=\"isMultipleInput\"\n (change)=\"onLoadFiles($event)\" />\n <label [for]=\"id\">\n <it-icon name=\"upload\" size=\"sm\"></it-icon>\n <span>{{'it.form.upload'|translate}}</span>\n </label>\n</ng-container>\n\n<ul class=\"upload-file-list\" [class.upload-file-list-image]=\"isImageList\" *ngIf=\"fileList.length\">\n <li *ngFor=\"let item of fileList\" class=\"upload-file\"\n [class.error]=\"item.error\"\n [class.uploading]=\"!item.error && item.progress !== undefined && item.progress > 0 && item.progress < 100\"\n [class.success]=\"!item.error && (!item.progress || item.progress >= 100)\">\n\n <div class=\"upload-image\" *ngIf=\"isImageList; else icon\">\n <img [attr.src]=\"previewImages.get(item.id)\" [alt]=\"item.file.name\" />\n </div>\n <ng-template #icon>\n <it-icon name=\"file\" size=\"sm\" [color]=\"!item.error ? (item.progress ? 'secondary' : 'primary') : 'danger'\"></it-icon>\n </ng-template>\n\n <p [itTooltip]=\"item.tooltip\">\n <span class=\"visually-hidden\">{{'it.form.uploaded-file'|translate : { name: item.file.name } }}</span>\n {{item.file.name}} <span class=\"upload-file-weight\">{{getFileSize(item.file)}}</span>\n </p>\n\n <button *ngIf=\"item.removable && (!item.progress || item.progress < 100)\" type=\"button\" (click)=\"deleteItem.emit(item)\">\n <span class=\"visually-hidden\">{{'it.form.delete-file'|translate : { name: item.file.name } }}</span>\n <it-icon name=\"close\"></it-icon>\n </button>\n <button *ngIf=\"(!item.removable && !item.progress) || (item.progress !== undefined && item.progress >= 100)\" type=\"button\" disabled>\n <span class=\"visually-hidden\">{{'it.form.upload-complete'|translate}}</span>\n <it-icon name=\"check\"></it-icon>\n </button>\n\n <it-progress-bar *ngIf=\"!item.error && item.progress !== undefined && item.progress > 0 && item.progress < 100\"\n [value]=\"item.progress\"></it-progress-bar>\n </li>\n</ul>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ProgressBarComponent, selector: "it-progress-bar[value]", inputs: ["value", "showLabel", "indeterminate", "color"] }, { kind: "directive", type: i3.TooltipDirective, selector: "[itTooltip]", inputs: ["itTooltip", "tooltipPlacement", "tooltipHtml"], outputs: ["showEvent", "shownEvent", "hideEvent", "hiddenEvent", "insertedEvent"], exportAs: ["itTooltip"] }, { kind: "component", type: i4.IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "svgClass"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: UploadFileListComponent, decorators: [{
|
|
87
|
-
type: Component,
|
|
88
|
-
args: [{ selector: 'it-upload-file-list[fileList]', template: "<ng-container *ngIf=\"!isHideLoadButton\">\n <input type=\"file\" [id]=\"id\" class=\"upload\" [accept]=\"accept\" [multiple]=\"isMultipleInput\"\n (change)=\"onLoadFiles($event)\" />\n <label [for]=\"id\">\n <it-icon name=\"upload\" size=\"sm\"></it-icon>\n <span>{{'it.form.upload'|translate}}</span>\n </label>\n</ng-container>\n\n<ul class=\"upload-file-list\" [class.upload-file-list-image]=\"isImageList\" *ngIf=\"fileList.length\">\n <li *ngFor=\"let item of fileList\" class=\"upload-file\"\n [class.error]=\"item.error\"\n [class.uploading]=\"!item.error && item.progress !== undefined && item.progress > 0 && item.progress < 100\"\n [class.success]=\"!item.error && (!item.progress || item.progress >= 100)\">\n\n <div class=\"upload-image\" *ngIf=\"isImageList; else icon\">\n <img [attr.src]=\"previewImages.get(item.id)\" [alt]=\"item.file.name\" />\n </div>\n <ng-template #icon>\n <it-icon name=\"file\" size=\"sm\" [color]=\"!item.error ? (item.progress ? 'secondary' : 'primary') : 'danger'\"></it-icon>\n </ng-template>\n\n <p [itTooltip]=\"item.tooltip\">\n <span class=\"visually-hidden\">{{'it.form.uploaded-file'|translate : { name: item.file.name } }}</span>\n {{item.file.name}} <span class=\"upload-file-weight\">{{getFileSize(item.file)}}</span>\n </p>\n\n <button *ngIf=\"item.removable && (!item.progress || item.progress < 100)\" type=\"button\" (click)=\"deleteItem.emit(item)\">\n <span class=\"visually-hidden\">{{'it.form.delete-file'|translate : { name: item.file.name } }}</span>\n <it-icon name=\"close\"></it-icon>\n </button>\n <button *ngIf=\"(!item.removable && !item.progress) || (item.progress !== undefined && item.progress >= 100)\" type=\"button\" disabled>\n <span class=\"visually-hidden\">{{'it.form.upload-complete'|translate}}</span>\n <it-icon name=\"check\"></it-icon>\n </button>\n\n <it-progress-bar *ngIf=\"!item.error && item.progress !== undefined && item.progress > 0 && item.progress < 100\"\n [value]=\"item.progress\"></it-progress-bar>\n </li>\n</ul>\n" }]
|
|
89
|
-
}], propDecorators: { fileList: [{
|
|
90
|
-
type: Input
|
|
91
|
-
}], accept: [{
|
|
92
|
-
type: Input
|
|
93
|
-
}], multiple: [{
|
|
94
|
-
type: Input
|
|
95
|
-
}], images: [{
|
|
96
|
-
type: Input
|
|
97
|
-
}], hideLoadButton: [{
|
|
98
|
-
type: Input
|
|
99
|
-
}], uploadFiles: [{
|
|
100
|
-
type: Output
|
|
101
|
-
}], deleteItem: [{
|
|
102
|
-
type: Output
|
|
103
|
-
}] } });
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vdXBsb2FkLWZpbGUtbGlzdC91cGxvYWQtZmlsZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS91cGxvYWQtZmlsZS1saXN0L3VwbG9hZC1maWxlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzFFLE9BQU8sRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBTTNDLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFKOUQ7O1FBV0U7Ozs7O1dBS0c7UUFDTSxXQUFNLEdBQVcsR0FBRyxDQUFDO1FBRTlCOztXQUVHO1FBQ00sYUFBUSxHQUFpQixJQUFJLENBQUM7UUFZdkM7O1dBRUc7UUFDTyxnQkFBVyxHQUEyQixJQUFJLFlBQVksRUFBWSxDQUFDO1FBRTdFOztXQUVHO1FBQ08sZUFBVSxHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUVoRzs7V0FFRztRQUNILGtCQUFhLEdBQXdCLElBQUksR0FBRyxFQUFrQixDQUFDO0tBdURoRTtJQXJEQyxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO1lBQzNDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVRLFdBQVcsQ0FBQyxPQUFzQjtRQUN6QyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUM5RSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUN2RCxDQUFDLENBQUM7WUFDSCxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN4QyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxLQUFZO1FBQ3RCLE1BQU0sS0FBSyxHQUFJLEtBQUssQ0FBQyxNQUEyQixFQUFFLEtBQUssQ0FBQztRQUN4RCxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUMzQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLElBQVU7UUFDcEIsT0FBTyxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQzs7b0hBaEdVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLGtUQ1hwQyxnbUVBd0NBOzJGRDdCYSx1QkFBdUI7a0JBSm5DLFNBQVM7K0JBQ0UsK0JBQStCOzhCQVFoQyxRQUFRO3NCQUFoQixLQUFLO2dCQVFHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQUtJLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9hYnN0cmFjdHMvYWJzdHJhY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgaXNUcnVlQm9vbGVhbklucHV0IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYm9vbGVhbi1pbnB1dCc7XG5pbXBvcnQgeyBVcGxvYWRGaWxlTGlzdEl0ZW0gfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2Zvcm0nO1xuaW1wb3J0IHsgRmlsZVV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZmlsZS11dGlscyc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l0LXVwbG9hZC1maWxlLWxpc3RbZmlsZUxpc3RdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC1maWxlLWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFVwbG9hZEZpbGVMaXN0Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGZpbGVzIHRvIHNob3cgaW4gbGlzdFxuICAgKi9cbiAgQElucHV0KCkgZmlsZUxpc3QhOiBBcnJheTxVcGxvYWRGaWxlTGlzdEl0ZW0+O1xuXG4gIC8qKlxuICAgKiBUaGUgYWNjZXB0ZWQgZmlsZSB0eXBlIHRvIHVwbG9hZCA8YnI+XG4gICAqIFBvc3NpYmxlIHZhbHVlczogPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvQmFzaWNzX29mX0hUVFAvTUlNRV90eXBlcy9Db21tb25fdHlwZXNcIj5NSU1FIFR5cGVzPC9hPiBzZXBhcmF0ZWQgYnkgY29tbWFcbiAgICogQGV4YW1wbGUgYXBwbGljYXRpb24vcGRmLGltYWdlL3BuZ1xuICAgKiBAZGVmYXVsdCAqXG4gICAqL1xuICBASW5wdXQoKSBhY2NlcHQ6IHN0cmluZyA9ICcqJztcblxuICAvKipcbiAgICogSWYgdXBsb2FkIG11bHRpcGxlIGZpbGVzXG4gICAqL1xuICBASW5wdXQoKSBtdWx0aXBsZTogQm9vbGVhbklucHV0ID0gdHJ1ZTtcblxuICAvKipcbiAgICogSWYgaXMgZmlsZSBsaXN0IGltYWdlXG4gICAqL1xuICBASW5wdXQoKSBpbWFnZXM/OiBCb29sZWFuSW5wdXQ7XG5cbiAgLyoqXG4gICAqIEhpZGUgdGhlIGxvYWQgYnV0dG9uXG4gICAqL1xuICBASW5wdXQoKSBoaWRlTG9hZEJ1dHRvbj86IEJvb2xlYW5JbnB1dDtcblxuICAvKipcbiAgICogRmlyZWQgd2hlbiB1cGxvYWQgbmV3IGZpbGVzXG4gICAqL1xuICBAT3V0cHV0KCkgdXBsb2FkRmlsZXM6IEV2ZW50RW1pdHRlcjxGaWxlTGlzdD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVMaXN0PigpO1xuXG4gIC8qKlxuICAgKiBGaXJlZCBvbiBkZWxldGUgaXRlbSBidXR0b24gY2xpY2tcbiAgICovXG4gIEBPdXRwdXQoKSBkZWxldGVJdGVtOiBFdmVudEVtaXR0ZXI8VXBsb2FkRmlsZUxpc3RJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8VXBsb2FkRmlsZUxpc3RJdGVtPigpO1xuXG4gIC8qKlxuICAgKiBDYWNoZSB0byBwcmV2aWV3IGltYWdlXG4gICAqL1xuICBwcmV2aWV3SW1hZ2VzOiBNYXA8bnVtYmVyLCBzdHJpbmc+ID0gbmV3IE1hcDxudW1iZXIsIHN0cmluZz4oKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0ltYWdlTGlzdCAmJiB0aGlzLmFjY2VwdCA9PT0gJyonKSB7XG4gICAgICB0aGlzLmFjY2VwdCA9ICdpbWFnZS8qJztcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2ZpbGVMaXN0J10gJiYgdGhpcy5pc0ltYWdlTGlzdCkge1xuICAgICAgY29uc3QgaW1hZ2VzJCA9IHRoaXMuZmlsZUxpc3QubWFwKGl0ZW0gPT4gRmlsZVV0aWxzLmZpbGVUb0Jhc2U2NChpdGVtLmZpbGUpLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHRhcChiYXNlNjQgPT4gdGhpcy5wcmV2aWV3SW1hZ2VzLnNldChpdGVtLmlkLCBiYXNlNjQpKVxuICAgICAgKSk7XG4gICAgICBmb3JrSm9pbihpbWFnZXMkKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpc011bHRpcGxlSW5wdXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLm11bHRpcGxlKTtcbiAgfVxuXG4gIGdldCBpc0ltYWdlTGlzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuaW1hZ2VzKTtcbiAgfVxuXG4gIGdldCBpc0hpZGVMb2FkQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1RydWVCb29sZWFuSW5wdXQodGhpcy5oaWRlTG9hZEJ1dHRvbik7XG4gIH1cblxuICAvKipcbiAgICogT24gbG9hZCBmaWxlIGZyb20gaW5wdXRcbiAgICogQHBhcmFtIGV2ZW50XG4gICAqL1xuICBvbkxvYWRGaWxlcyhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBmaWxlcyA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk/LmZpbGVzO1xuICAgIGlmICghZmlsZXMgfHwgIWZpbGVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnVwbG9hZEZpbGVzLmVtaXQoZmlsZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZmlsZSBzaXplIHN0cmluZ1xuICAgKiBAcGFyYW0gZmlsZVxuICAgKi9cbiAgZ2V0RmlsZVNpemUoZmlsZTogRmlsZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEZpbGVVdGlscy5nZXRGaWxlU2l6ZVN0cmluZyhmaWxlKTtcbiAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzSGlkZUxvYWRCdXR0b25cIj5cbiAgPGlucHV0IHR5cGU9XCJmaWxlXCIgW2lkXT1cImlkXCIgY2xhc3M9XCJ1cGxvYWRcIiBbYWNjZXB0XT1cImFjY2VwdFwiIFttdWx0aXBsZV09XCJpc011bHRpcGxlSW5wdXRcIlxuICAgICAgICAgKGNoYW5nZSk9XCJvbkxvYWRGaWxlcygkZXZlbnQpXCIgLz5cbiAgPGxhYmVsIFtmb3JdPVwiaWRcIj5cbiAgICA8aXQtaWNvbiBuYW1lPVwidXBsb2FkXCIgc2l6ZT1cInNtXCI+PC9pdC1pY29uPlxuICAgIDxzcGFuPnt7J2l0LmZvcm0udXBsb2FkJ3x0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgPC9sYWJlbD5cbjwvbmctY29udGFpbmVyPlxuXG48dWwgY2xhc3M9XCJ1cGxvYWQtZmlsZS1saXN0XCIgW2NsYXNzLnVwbG9hZC1maWxlLWxpc3QtaW1hZ2VdPVwiaXNJbWFnZUxpc3RcIiAqbmdJZj1cImZpbGVMaXN0Lmxlbmd0aFwiPlxuICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsZUxpc3RcIiBjbGFzcz1cInVwbG9hZC1maWxlXCJcbiAgICAgIFtjbGFzcy5lcnJvcl09XCJpdGVtLmVycm9yXCJcbiAgICAgIFtjbGFzcy51cGxvYWRpbmddPVwiIWl0ZW0uZXJyb3IgJiYgaXRlbS5wcm9ncmVzcyAhPT0gdW5kZWZpbmVkICYmIGl0ZW0ucHJvZ3Jlc3MgPiAwICYmIGl0ZW0ucHJvZ3Jlc3MgPCAxMDBcIlxuICAgICAgW2NsYXNzLnN1Y2Nlc3NdPVwiIWl0ZW0uZXJyb3IgJiYgKCFpdGVtLnByb2dyZXNzIHx8IGl0ZW0ucHJvZ3Jlc3MgPj0gMTAwKVwiPlxuXG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZC1pbWFnZVwiICpuZ0lmPVwiaXNJbWFnZUxpc3Q7IGVsc2UgaWNvblwiPlxuICAgICAgPGltZyBbYXR0ci5zcmNdPVwicHJldmlld0ltYWdlcy5nZXQoaXRlbS5pZClcIiBbYWx0XT1cIml0ZW0uZmlsZS5uYW1lXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgI2ljb24+XG4gICAgICA8aXQtaWNvbiBuYW1lPVwiZmlsZVwiIHNpemU9XCJzbVwiIFtjb2xvcl09XCIhaXRlbS5lcnJvciA/IChpdGVtLnByb2dyZXNzID8gJ3NlY29uZGFyeScgOiAncHJpbWFyeScpIDogJ2RhbmdlcidcIj48L2l0LWljb24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxwIFtpdFRvb2x0aXBdPVwiaXRlbS50b29sdGlwXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPnt7J2l0LmZvcm0udXBsb2FkZWQtZmlsZSd8dHJhbnNsYXRlIDogeyBuYW1lOiBpdGVtLmZpbGUubmFtZSB9IH19PC9zcGFuPlxuICAgICAge3tpdGVtLmZpbGUubmFtZX19IDxzcGFuIGNsYXNzPVwidXBsb2FkLWZpbGUtd2VpZ2h0XCI+e3tnZXRGaWxlU2l6ZShpdGVtLmZpbGUpfX08L3NwYW4+XG4gICAgPC9wPlxuXG4gICAgPGJ1dHRvbiAqbmdJZj1cIml0ZW0ucmVtb3ZhYmxlICYmICghaXRlbS5wcm9ncmVzcyB8fCBpdGVtLnByb2dyZXNzIDwgMTAwKVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZGVsZXRlSXRlbS5lbWl0KGl0ZW0pXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPnt7J2l0LmZvcm0uZGVsZXRlLWZpbGUnfHRyYW5zbGF0ZSA6IHsgbmFtZTogaXRlbS5maWxlLm5hbWUgfSB9fTwvc3Bhbj5cbiAgICAgIDxpdC1pY29uIG5hbWU9XCJjbG9zZVwiPjwvaXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uICpuZ0lmPVwiKCFpdGVtLnJlbW92YWJsZSAmJiAhaXRlbS5wcm9ncmVzcykgfHwgKGl0ZW0ucHJvZ3Jlc3MgIT09IHVuZGVmaW5lZCAmJiBpdGVtLnByb2dyZXNzID49IDEwMClcIiB0eXBlPVwiYnV0dG9uXCIgZGlzYWJsZWQ+XG4gICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPnt7J2l0LmZvcm0udXBsb2FkLWNvbXBsZXRlJ3x0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgIDxpdC1pY29uIG5hbWU9XCJjaGVja1wiPjwvaXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxpdC1wcm9ncmVzcy1iYXIgKm5nSWY9XCIhaXRlbS5lcnJvciAmJiBpdGVtLnByb2dyZXNzICE9PSB1bmRlZmluZWQgJiYgaXRlbS5wcm9ncmVzcyA+IDAgJiYgaXRlbS5wcm9ncmVzcyA8IDEwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0ucHJvZ3Jlc3NcIj48L2l0LXByb2dyZXNzLWJhcj5cbiAgPC9saT5cbjwvdWw+XG4iXX0=
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import { isTrueBooleanInput } from '../../../utils/boolean-input';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "../../core/button/button.directive";
|
|
6
|
-
import * as i3 from "../../utils/icon/icon.component";
|
|
7
|
-
import * as i4 from "@ngx-translate/core";
|
|
8
|
-
export class BackButtonComponent {
|
|
9
|
-
constructor(_location) {
|
|
10
|
-
this._location = _location;
|
|
11
|
-
/**
|
|
12
|
-
* Back button style
|
|
13
|
-
* - <b>link</b>: use a link with icon and text
|
|
14
|
-
* - <b>button</b>: use a button with icon and text
|
|
15
|
-
* @default button
|
|
16
|
-
*/
|
|
17
|
-
this.buttonStyle = 'button';
|
|
18
|
-
/**
|
|
19
|
-
* Button direction
|
|
20
|
-
* - <b>left</b>: Back direction
|
|
21
|
-
* - <b>up</b>: Upper direction
|
|
22
|
-
* @default left
|
|
23
|
-
*/
|
|
24
|
-
this.direction = 'left';
|
|
25
|
-
/**
|
|
26
|
-
* Show/Hide icon
|
|
27
|
-
* @default true
|
|
28
|
-
*/
|
|
29
|
-
this.showIcon = true;
|
|
30
|
-
/**
|
|
31
|
-
* Show/Hide text
|
|
32
|
-
* @default true
|
|
33
|
-
*/
|
|
34
|
-
this.showText = true;
|
|
35
|
-
}
|
|
36
|
-
get isShowIcon() {
|
|
37
|
-
return isTrueBooleanInput(this.showIcon);
|
|
38
|
-
}
|
|
39
|
-
get isShowText() {
|
|
40
|
-
return isTrueBooleanInput(this.showText);
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Go back function
|
|
44
|
-
*/
|
|
45
|
-
goBack(event) {
|
|
46
|
-
event.preventDefault();
|
|
47
|
-
if (this.backFn) {
|
|
48
|
-
return this.backFn(this._location);
|
|
49
|
-
}
|
|
50
|
-
this._location.back();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
BackButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BackButtonComponent, deps: [{ token: i1.Location }], target: i0.ɵɵFactoryTarget.Component });
|
|
54
|
-
BackButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: BackButtonComponent, selector: "it-back-button", inputs: { buttonStyle: "buttonStyle", direction: "direction", showIcon: "showIcon", showText: "showText", backFn: "backFn" }, exportAs: ["itBackButton"], ngImport: i0, template: "<a *ngIf=\"buttonStyle === 'link'\" href=\"#\" class=\"go-back\" (click)=\"goBack($event)\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<button *ngIf=\"buttonStyle === 'button'\" itButton=\"primary\" class=\"go-back\" (click)=\"goBack($event)\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</button>\n\n<ng-template #content>\n <it-icon *ngIf=\"isShowIcon\"\n size=\"sm\"\n [name]=\"direction === 'left' ? 'arrow-left' : 'arrow-up'\"\n [color]=\"buttonStyle === 'link' ? 'primary' : 'white'\"\n [class.me-2]=\"isShowText\"></it-icon>\n\n <span [class.visually-hidden]=\"!isShowText\">\n {{(direction === 'left' ? 'it.navigation.go-back' : 'it.navigation.upper-level') | translate}}\n </span>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.ButtonDirective, selector: "[itButton]", inputs: ["itButton", "size", "block", "disabled"], exportAs: ["itButton"] }, { kind: "component", type: i3.IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "svgClass"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BackButtonComponent, decorators: [{
|
|
56
|
-
type: Component,
|
|
57
|
-
args: [{ selector: 'it-back-button', exportAs: 'itBackButton', changeDetection: ChangeDetectionStrategy.OnPush, template: "<a *ngIf=\"buttonStyle === 'link'\" href=\"#\" class=\"go-back\" (click)=\"goBack($event)\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<button *ngIf=\"buttonStyle === 'button'\" itButton=\"primary\" class=\"go-back\" (click)=\"goBack($event)\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</button>\n\n<ng-template #content>\n <it-icon *ngIf=\"isShowIcon\"\n size=\"sm\"\n [name]=\"direction === 'left' ? 'arrow-left' : 'arrow-up'\"\n [color]=\"buttonStyle === 'link' ? 'primary' : 'white'\"\n [class.me-2]=\"isShowText\"></it-icon>\n\n <span [class.visually-hidden]=\"!isShowText\">\n {{(direction === 'left' ? 'it.navigation.go-back' : 'it.navigation.upper-level') | translate}}\n </span>\n</ng-template>\n" }]
|
|
58
|
-
}], ctorParameters: function () { return [{ type: i1.Location }]; }, propDecorators: { buttonStyle: [{
|
|
59
|
-
type: Input
|
|
60
|
-
}], direction: [{
|
|
61
|
-
type: Input
|
|
62
|
-
}], showIcon: [{
|
|
63
|
-
type: Input
|
|
64
|
-
}], showText: [{
|
|
65
|
-
type: Input
|
|
66
|
-
}], backFn: [{
|
|
67
|
-
type: Input
|
|
68
|
-
}] } });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uYXZpZ2F0aW9uL2JhY2stYnV0dG9uL2JhY2stYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9iYWNrLWJ1dHRvbi9iYWNrLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7OztBQVFoRixNQUFNLE9BQU8sbUJBQW1CO0lBK0M5QixZQUNrQixTQUFtQjtRQUFuQixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBOUNyQzs7Ozs7V0FLRztRQUNNLGdCQUFXLEdBQXNCLFFBQVEsQ0FBQztRQUVuRDs7Ozs7V0FLRztRQUNNLGNBQVMsR0FBa0IsTUFBTSxDQUFDO1FBRTNDOzs7V0FHRztRQUNNLGFBQVEsR0FBaUIsSUFBSSxDQUFDO1FBRXZDOzs7V0FHRztRQUNNLGFBQVEsR0FBaUIsSUFBSSxDQUFDO0lBc0J2QyxDQUFDO0lBWEQsSUFBSSxVQUFVO1FBQ1osT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFPRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFZO1FBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3BDO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDOztnSEE5RFUsbUJBQW1CO29HQUFuQixtQkFBbUIsZ05DVmhDLHN5QkFtQkE7MkZEVGEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGdCQUFnQixZQUVoQixjQUFjLG1CQUNQLHVCQUF1QixDQUFDLE1BQU07K0ZBVXRDLFdBQVc7c0JBQW5CLEtBQUs7Z0JBUUcsU0FBUztzQkFBakIsS0FBSztnQkFNRyxRQUFRO3NCQUFoQixLQUFLO2dCQU1HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBU0csTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgaXNUcnVlQm9vbGVhbklucHV0IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYm9vbGVhbi1pbnB1dCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l0LWJhY2stYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JhY2stYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgZXhwb3J0QXM6ICdpdEJhY2tCdXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBCYWNrQnV0dG9uQ29tcG9uZW50IHtcblxuICAvKipcbiAgICogQmFjayBidXR0b24gc3R5bGVcbiAgICogLSA8Yj5saW5rPC9iPjogdXNlIGEgbGluayB3aXRoIGljb24gYW5kIHRleHRcbiAgICogLSA8Yj5idXR0b248L2I+OiB1c2UgYSBidXR0b24gd2l0aCBpY29uIGFuZCB0ZXh0XG4gICAqIEBkZWZhdWx0IGJ1dHRvblxuICAgKi9cbiAgQElucHV0KCkgYnV0dG9uU3R5bGU6ICdsaW5rJyB8ICdidXR0b24nID0gJ2J1dHRvbic7XG5cbiAgLyoqXG4gICAqIEJ1dHRvbiBkaXJlY3Rpb25cbiAgICogLSA8Yj5sZWZ0PC9iPjogQmFjayBkaXJlY3Rpb25cbiAgICogLSA8Yj51cDwvYj46IFVwcGVyIGRpcmVjdGlvblxuICAgKiBAZGVmYXVsdCBsZWZ0XG4gICAqL1xuICBASW5wdXQoKSBkaXJlY3Rpb246ICdsZWZ0JyB8ICd1cCcgPSAnbGVmdCc7XG5cbiAgLyoqXG4gICAqIFNob3cvSGlkZSBpY29uXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpIHNob3dJY29uOiBCb29sZWFuSW5wdXQgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTaG93L0hpZGUgdGV4dFxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoKSBzaG93VGV4dDogQm9vbGVhbklucHV0ID0gdHJ1ZTtcblxuICAvKipcbiAgICogQ3VzdG9tIGJhY2sgbG9naWMgPGJyLz5cbiAgICpcbiAgICogTk9URTogdG8gdXNlICd0aGlzJyBuZWVkIGJpbmQgZnVuY3Rpb24gIDxici8+XG4gICAqIEBleGFtcGxlIGJhY2tDYkZuID0gdGhpcy5lcnJvckNhbGxiYWNrLmJpbmQodGhpcyk7XG4gICAqIChlcnJvckNhbGxiYWNrIGlzIHlvdXIgZnVuY3Rpb24sIHBhc3MgYmFja0NiRm4gdG8gdGhlIGNvbXBvbmVudClcbiAgICovXG4gIEBJbnB1dCgpIGJhY2tGbj86IChsb2NhdGlvbjogTG9jYXRpb24pID0+IHZvaWQ7XG5cbiAgZ2V0IGlzU2hvd0ljb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLnNob3dJY29uKTtcbiAgfVxuXG4gIGdldCBpc1Nob3dUZXh0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1RydWVCb29sZWFuSW5wdXQodGhpcy5zaG93VGV4dCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgX2xvY2F0aW9uOiBMb2NhdGlvblxuICApIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBHbyBiYWNrIGZ1bmN0aW9uXG4gICAqL1xuICBwdWJsaWMgZ29CYWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKHRoaXMuYmFja0ZuKSB7XG4gICAgICByZXR1cm4gdGhpcy5iYWNrRm4odGhpcy5fbG9jYXRpb24pO1xuICAgIH1cblxuICAgIHRoaXMuX2xvY2F0aW9uLmJhY2soKTtcbiAgfVxufVxuIiwiPGEgKm5nSWY9XCJidXR0b25TdHlsZSA9PT0gJ2xpbmsnXCIgaHJlZj1cIiNcIiBjbGFzcz1cImdvLWJhY2tcIiAoY2xpY2spPVwiZ29CYWNrKCRldmVudClcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbjwvYT5cblxuPGJ1dHRvbiAqbmdJZj1cImJ1dHRvblN0eWxlID09PSAnYnV0dG9uJ1wiIGl0QnV0dG9uPVwicHJpbWFyeVwiIGNsYXNzPVwiZ28tYmFja1wiIChjbGljayk9XCJnb0JhY2soJGV2ZW50KVwiPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuPC9idXR0b24+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgPGl0LWljb24gKm5nSWY9XCJpc1Nob3dJY29uXCJcbiAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgW25hbWVdPVwiZGlyZWN0aW9uID09PSAnbGVmdCcgPyAnYXJyb3ctbGVmdCcgOiAnYXJyb3ctdXAnXCJcbiAgICAgICAgICAgW2NvbG9yXT1cImJ1dHRvblN0eWxlID09PSAnbGluaycgPyAncHJpbWFyeScgOiAnd2hpdGUnXCJcbiAgICAgICAgICAgW2NsYXNzLm1lLTJdPVwiaXNTaG93VGV4dFwiPjwvaXQtaWNvbj5cblxuICA8c3BhbiBbY2xhc3MudmlzdWFsbHktaGlkZGVuXT1cIiFpc1Nob3dUZXh0XCI+XG4gICAge3soZGlyZWN0aW9uID09PSAnbGVmdCcgPyAnaXQubmF2aWdhdGlvbi5nby1iYWNrJyA6ICdpdC5uYXZpZ2F0aW9uLnVwcGVyLWxldmVsJykgfCB0cmFuc2xhdGV9fVxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input, ViewChild } from '@angular/core';
|
|
2
|
-
import { isTrueBooleanInput } from '../../../utils/boolean-input';
|
|
3
|
-
import { AbstractComponent } from '../../../abstracts/abstract.component';
|
|
4
|
-
import { BackToTop } from 'bootstrap-italia';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../../utils/icon/icon.component";
|
|
7
|
-
export class BackToTopComponent extends AbstractComponent {
|
|
8
|
-
get isSmall() {
|
|
9
|
-
return isTrueBooleanInput(this.small);
|
|
10
|
-
}
|
|
11
|
-
get isShadow() {
|
|
12
|
-
return isTrueBooleanInput(this.shadow);
|
|
13
|
-
}
|
|
14
|
-
get isDark() {
|
|
15
|
-
return isTrueBooleanInput(this.dark);
|
|
16
|
-
}
|
|
17
|
-
ngAfterViewInit() {
|
|
18
|
-
super.ngAfterViewInit();
|
|
19
|
-
if (this.backToTopElement) {
|
|
20
|
-
const element = this.backToTopElement.nativeElement;
|
|
21
|
-
this.backToTop = BackToTop.getOrCreateInstance(element);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Show button
|
|
26
|
-
*/
|
|
27
|
-
show() {
|
|
28
|
-
this.backToTop?.show();
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Hide the button
|
|
32
|
-
*/
|
|
33
|
-
hide() {
|
|
34
|
-
this.backToTop?.hide();
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Activates the scroll animation towards the Y coordinate indicated by the positionTop option
|
|
38
|
-
*/
|
|
39
|
-
scrollToTop() {
|
|
40
|
-
this.backToTop?.scrollToTop();
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Eliminate component features
|
|
44
|
-
*/
|
|
45
|
-
dispose() {
|
|
46
|
-
this.backToTop?.dispose();
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
BackToTopComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BackToTopComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
50
|
-
BackToTopComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: BackToTopComponent, selector: "it-back-to-top", inputs: { small: "small", shadow: "shadow", dark: "dark" }, viewQueries: [{ propertyName: "backToTopElement", first: true, predicate: ["backToTop"], descendants: true }], exportAs: ["itBackToTop"], usesInheritance: true, ngImport: i0, template: "<a #backToTop [id]=\"id\"\n href=\"#\"\n aria-hidden=\"true\"\n class=\"back-to-top\"\n [class.back-to-top-small]=\"isSmall\"\n [class.shadow]=\"isShadow\"\n [class.dark]=\"isDark\">\n\n <it-icon name=\"arrow-up\" [color]=\"isDark ? 'secondary' : 'light'\"></it-icon>\n</a>\n", dependencies: [{ kind: "component", type: i1.IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "svgClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BackToTopComponent, decorators: [{
|
|
52
|
-
type: Component,
|
|
53
|
-
args: [{ selector: 'it-back-to-top', exportAs: 'itBackToTop', changeDetection: ChangeDetectionStrategy.OnPush, template: "<a #backToTop [id]=\"id\"\n href=\"#\"\n aria-hidden=\"true\"\n class=\"back-to-top\"\n [class.back-to-top-small]=\"isSmall\"\n [class.shadow]=\"isShadow\"\n [class.dark]=\"isDark\">\n\n <it-icon name=\"arrow-up\" [color]=\"isDark ? 'secondary' : 'light'\"></it-icon>\n</a>\n" }]
|
|
54
|
-
}], propDecorators: { small: [{
|
|
55
|
-
type: Input
|
|
56
|
-
}], shadow: [{
|
|
57
|
-
type: Input
|
|
58
|
-
}], dark: [{
|
|
59
|
-
type: Input
|
|
60
|
-
}], backToTopElement: [{
|
|
61
|
-
type: ViewChild,
|
|
62
|
-
args: ['backToTop']
|
|
63
|
-
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay10by10b3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uYXZpZ2F0aW9uL2JhY2stdG8tdG9wL2JhY2stdG8tdG9wLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9iYWNrLXRvLXRvcC9iYWNrLXRvLXRvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQVE3QyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsaUJBQWlCO0lBcUJ2RCxJQUFJLE9BQU87UUFDVCxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFUSxlQUFlO1FBQ3RCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO1lBQ3BELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3pEO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksSUFBSTtRQUNULElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksSUFBSTtRQUNULElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzVCLENBQUM7OytHQXBFVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixtUkNYL0Isa1NBVUE7MkZEQ2Esa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLGdCQUFnQixZQUVoQixhQUFhLG1CQUNOLHVCQUF1QixDQUFDLE1BQU07OEJBT3RDLEtBQUs7c0JBQWIsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0csSUFBSTtzQkFBWixLQUFLO2dCQUkwQixnQkFBZ0I7c0JBQS9DLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgaXNUcnVlQm9vbGVhbklucHV0IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYm9vbGVhbi1pbnB1dCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Fic3RyYWN0cy9hYnN0cmFjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFja1RvVG9wIH0gZnJvbSAnYm9vdHN0cmFwLWl0YWxpYSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l0LWJhY2stdG8tdG9wJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JhY2stdG8tdG9wLmNvbXBvbmVudC5odG1sJyxcbiAgZXhwb3J0QXM6ICdpdEJhY2tUb1RvcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhY2tUb1RvcENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgLyoqXG4gICAqIFNob3cgc21hbGwgYnV0dG9uXG4gICAqL1xuICBASW5wdXQoKSBzbWFsbD86IEJvb2xlYW5JbnB1dDtcblxuICAvKipcbiAgICogU2hvdyBzaGFkb3dcbiAgICovXG4gIEBJbnB1dCgpIHNoYWRvdz86IEJvb2xlYW5JbnB1dDtcblxuICAvKipcbiAgICogQnV0dG9uIHVzYWJsZSBidXR0b24gb24gYSBkYXJrIGJhY2tncm91bmRcbiAgICovXG4gIEBJbnB1dCgpIGRhcms/OiBCb29sZWFuSW5wdXQ7XG5cbiAgcHJpdmF0ZSBiYWNrVG9Ub3A/OiBCYWNrVG9Ub3A7XG5cbiAgQFZpZXdDaGlsZCgnYmFja1RvVG9wJykgcHJpdmF0ZSBiYWNrVG9Ub3BFbGVtZW50PzogRWxlbWVudFJlZjxIVE1MQW5jaG9yRWxlbWVudD47XG5cbiAgZ2V0IGlzU21hbGwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLnNtYWxsKTtcbiAgfVxuXG4gIGdldCBpc1NoYWRvdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuc2hhZG93KTtcbiAgfVxuXG4gIGdldCBpc0RhcmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLmRhcmspO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuXG4gICAgaWYgKHRoaXMuYmFja1RvVG9wRWxlbWVudCkge1xuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuYmFja1RvVG9wRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgdGhpcy5iYWNrVG9Ub3AgPSBCYWNrVG9Ub3AuZ2V0T3JDcmVhdGVJbnN0YW5jZShlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2hvdyBidXR0b25cbiAgICovXG4gIHB1YmxpYyBzaG93KCk6IHZvaWQge1xuICAgIHRoaXMuYmFja1RvVG9wPy5zaG93KCk7XG4gIH1cblxuICAvKipcbiAgICogSGlkZSB0aGUgYnV0dG9uXG4gICAqL1xuICBwdWJsaWMgaGlkZSgpOiB2b2lkIHtcbiAgICB0aGlzLmJhY2tUb1RvcD8uaGlkZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlcyB0aGUgc2Nyb2xsIGFuaW1hdGlvbiB0b3dhcmRzIHRoZSBZIGNvb3JkaW5hdGUgaW5kaWNhdGVkIGJ5IHRoZSBwb3NpdGlvblRvcCBvcHRpb25cbiAgICovXG4gIHB1YmxpYyBzY3JvbGxUb1RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLmJhY2tUb1RvcD8uc2Nyb2xsVG9Ub3AoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbGltaW5hdGUgY29tcG9uZW50IGZlYXR1cmVzXG4gICAqL1xuICBwdWJsaWMgZGlzcG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmJhY2tUb1RvcD8uZGlzcG9zZSgpO1xuICB9XG59XG4iLCI8YSAjYmFja1RvVG9wIFtpZF09XCJpZFwiXG4gICBocmVmPVwiI1wiXG4gICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgY2xhc3M9XCJiYWNrLXRvLXRvcFwiXG4gICBbY2xhc3MuYmFjay10by10b3Atc21hbGxdPVwiaXNTbWFsbFwiXG4gICBbY2xhc3Muc2hhZG93XT1cImlzU2hhZG93XCJcbiAgIFtjbGFzcy5kYXJrXT1cImlzRGFya1wiPlxuXG4gIDxpdC1pY29uIG5hbWU9XCJhcnJvdy11cFwiIFtjb2xvcl09XCJpc0RhcmsgPyAnc2Vjb25kYXJ5JyA6ICdsaWdodCdcIj48L2l0LWljb24+XG48L2E+XG4iXX0=
|