@bravobit/bb-foundation 0.42.5 → 0.42.8
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/dialog/lib/dialog.config.d.ts +1 -1
- package/elements/lib/directives/file-drop.directive.d.ts +13 -0
- package/elements/lib/elements.module.d.ts +20 -19
- package/elements/lib/file-picker/file-picker.component.d.ts +3 -8
- package/elements/lib/multi-file-control/multi-file-control.component.d.ts +5 -7
- package/elements/public_api.d.ts +1 -0
- package/esm2022/auth/lib/auth.interceptor.mjs +3 -3
- package/esm2022/auth/lib/auth.module.mjs +4 -4
- package/esm2022/auth/lib/auth.service.mjs +3 -3
- package/esm2022/auth/lib/directives/authenticated.directive.mjs +3 -3
- package/esm2022/collections/lib/collections.module.mjs +4 -4
- package/esm2022/collections/lib/components/collections-actions/collections-actions.component.mjs +3 -3
- package/esm2022/collections/lib/components/collections-grid/collections-grid.component.mjs +3 -3
- package/esm2022/collections/lib/components/collections-pager/collections-pager.component.mjs +5 -5
- package/esm2022/collections/lib/components/collections-table/collections-table.component.mjs +3 -3
- package/esm2022/collections/lib/components/collections-table-label/collections-table-label.component.mjs +3 -3
- package/esm2022/collections/lib/components/collections-table-sorting/collections-table-sorting.component.mjs +3 -3
- package/esm2022/collections/lib/components/collections-viewer/collections-viewer.component.mjs +3 -3
- package/esm2022/collections/lib/directives/collections-data-row.directive.mjs +3 -3
- package/esm2022/collections/lib/directives/collections-data.directive.mjs +3 -3
- package/esm2022/collections/lib/directives/collections-empty.directive.mjs +3 -3
- package/esm2022/collections/lib/directives/collections-error.directive.mjs +3 -3
- package/esm2022/collections/lib/directives/collections-initial.directive.mjs +3 -3
- package/esm2022/collections/lib/directives/collections-item.directive.mjs +3 -3
- package/esm2022/combobox/combobox/combobox-container.directive.mjs +3 -3
- package/esm2022/combobox/combobox/combobox.component.mjs +3 -3
- package/esm2022/combobox/combobox-label.directive.mjs +3 -3
- package/esm2022/combobox/combobox-option.directive.mjs +3 -3
- package/esm2022/combobox/combobox-panel/combobox-panel.component.mjs +3 -3
- package/esm2022/dashboard/lib/dashboard/dashboard.component.mjs +3 -3
- package/esm2022/dashboard/lib/dashboard-header/dashboard-header.component.mjs +3 -3
- package/esm2022/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +3 -3
- package/esm2022/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +3 -3
- package/esm2022/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +4 -4
- package/esm2022/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +5 -5
- package/esm2022/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +3 -3
- package/esm2022/dashboard/lib/dashboard.module.mjs +4 -4
- package/esm2022/dialog/lib/dialog-actions/dialog-actions.component.mjs +3 -3
- package/esm2022/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +3 -3
- package/esm2022/dialog/lib/dialog-container/dialog-container.component.mjs +3 -3
- package/esm2022/dialog/lib/dialog-header/dialog-header.component.mjs +3 -3
- package/esm2022/dialog/lib/dialog-link/dialog-link.component.mjs +3 -3
- package/esm2022/dialog/lib/dialog-modal/dialog-modal.component.mjs +3 -3
- package/esm2022/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +3 -3
- package/esm2022/dialog/lib/dialog.config.mjs +1 -1
- package/esm2022/dialog/lib/dialog.insertion.mjs +3 -3
- package/esm2022/dialog/lib/dialog.module.mjs +4 -4
- package/esm2022/dialog/lib/dialog.service.mjs +3 -3
- package/esm2022/dialog/lib/directives/confirm.directive.mjs +3 -3
- package/esm2022/elements/lib/avatar/avatar.component.mjs +3 -3
- package/esm2022/elements/lib/button/button.component.mjs +9 -9
- package/esm2022/elements/lib/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/elements/lib/checkbox-group/checkbox-group.component.mjs +3 -3
- package/esm2022/elements/lib/date-picker/date-picker.component.mjs +3 -3
- package/esm2022/elements/lib/directives/addon.directive.mjs +6 -6
- package/esm2022/elements/lib/directives/extra-error-controls.directive.mjs +3 -3
- package/esm2022/elements/lib/directives/file-drop.directive.mjs +62 -0
- package/esm2022/elements/lib/directives/form-submit.directive.mjs +3 -3
- package/esm2022/elements/lib/directives/form-submitter.directive.mjs +3 -3
- package/esm2022/elements/lib/directives/image-upload.directive.mjs +3 -3
- package/esm2022/elements/lib/directives/input.directive.mjs +3 -3
- package/esm2022/elements/lib/elements.config.mjs +2 -1
- package/esm2022/elements/lib/elements.module.mjs +9 -5
- package/esm2022/elements/lib/file-picker/file-picker.component.mjs +19 -72
- package/esm2022/elements/lib/form-control/form-control.component.mjs +5 -5
- package/esm2022/elements/lib/form-error/form-error.component.mjs +3 -3
- package/esm2022/elements/lib/form-group/form-group.component.mjs +3 -3
- package/esm2022/elements/lib/icon/icon.component.mjs +3 -3
- package/esm2022/elements/lib/image-picker/image-picker.component.mjs +3 -3
- package/esm2022/elements/lib/multi-file-control/multi-file-control.component.mjs +29 -49
- package/esm2022/elements/lib/pipes/date.pipe.mjs +3 -3
- package/esm2022/elements/lib/pipes/file-image.pipe.mjs +3 -3
- package/esm2022/elements/lib/pipes/file-size.pipe.mjs +3 -3
- package/esm2022/elements/lib/pipes/relative-time.pipe.mjs +3 -3
- package/esm2022/elements/lib/radio-button/radio-button.component.mjs +3 -3
- package/esm2022/elements/lib/radio-group/radio-group.component.mjs +3 -3
- package/esm2022/elements/lib/spinner/spinner.component.mjs +3 -3
- package/esm2022/elements/public_api.mjs +2 -1
- package/esm2022/http/lib/http.module.mjs +4 -4
- package/esm2022/http/lib/interceptors/base-url.interceptor.mjs +3 -3
- package/esm2022/http/lib/interceptors/error.interceptor.mjs +3 -3
- package/esm2022/lib/core/services/exif.service.mjs +3 -3
- package/esm2022/lib/core/services/file-loader.service.mjs +3 -3
- package/esm2022/lib/core/services/files.service.mjs +3 -3
- package/esm2022/lib/core/services/image-converter.service.mjs +3 -3
- package/esm2022/lib/core/services/languages.service.mjs +3 -3
- package/esm2022/lib/core/services/network.service.mjs +3 -3
- package/esm2022/lib/core/services/patch.service.mjs +3 -3
- package/esm2022/localize/lib/localizations/dutch.localization.mjs +2 -1
- package/esm2022/localize/lib/localizations/english.localization.mjs +2 -1
- package/esm2022/localize/lib/localizations/papiamento.localization.mjs +2 -1
- package/esm2022/localize/lib/localize.module.mjs +4 -4
- package/esm2022/localize/lib/localize.pipe.mjs +3 -3
- package/esm2022/localize/lib/localize.service.mjs +3 -3
- package/esm2022/localize/lib/views/localize-string/localize-string.component.mjs +3 -3
- package/esm2022/localize/lib/views/localize-template.directive.mjs +3 -3
- package/esm2022/masking/lib/directives/currency-mask.directive.mjs +3 -3
- package/esm2022/masking/lib/directives/date-mask.directive.mjs +3 -3
- package/esm2022/masking/lib/directives/input-mask.directive.mjs +3 -3
- package/esm2022/masking/lib/masking.module.mjs +4 -4
- package/esm2022/masking/lib/masking.service.mjs +3 -3
- package/esm2022/notifications/lib/notifications-item/notifications-item.component.mjs +3 -3
- package/esm2022/notifications/lib/notifications-list/notifications-list.component.mjs +3 -3
- package/esm2022/notifications/lib/notifications.module.mjs +4 -4
- package/esm2022/notifications/lib/notifications.service.mjs +3 -3
- package/esm2022/permissions/lib/directives/permission.directive.mjs +3 -3
- package/esm2022/permissions/lib/permissions.module.mjs +4 -4
- package/esm2022/permissions/lib/permissions.service.mjs +3 -3
- package/esm2022/recaptcha/lib/recaptcha/recaptcha.component.mjs +3 -3
- package/esm2022/recaptcha/lib/recaptcha-loader.service.mjs +3 -3
- package/esm2022/recaptcha/lib/recaptcha.module.mjs +4 -4
- package/esm2022/select/lib/select/select.component.mjs +14 -11
- package/esm2022/select/lib/select-label.directive.mjs +3 -3
- package/esm2022/select/lib/select-multi-label.directive.mjs +3 -3
- package/esm2022/select/lib/select-option-group.directive.mjs +3 -3
- package/esm2022/select/lib/select-option.directive.mjs +3 -3
- package/esm2022/select/lib/select.module.mjs +4 -4
- package/esm2022/storage/lib/storage.service.mjs +3 -3
- package/esm2022/table/lib/components/table/table.component.mjs +9 -9
- package/esm2022/table/lib/components/table-cell/table-cell.component.mjs +3 -3
- package/esm2022/table/lib/components/table-header-cell/table-header-cell.component.mjs +3 -3
- package/esm2022/table/lib/components/table-pager/table-pager.component.mjs +3 -3
- package/esm2022/table/lib/table.module.mjs +4 -4
- package/esm2022/tooltip/lib/tooltip-container/tooltip-container.component.mjs +3 -3
- package/esm2022/tooltip/lib/tooltip.directive.mjs +3 -3
- package/esm2022/tooltip/lib/tooltip.module.mjs +4 -4
- package/esm2022/utils/lib/directives/autosize.directive.mjs +3 -3
- package/esm2022/utils/lib/directives/focus-trap.directive.mjs +3 -3
- package/esm2022/utils/lib/directives/focus.directive.mjs +3 -3
- package/esm2022/utils/lib/directives/template.directive.mjs +3 -3
- package/esm2022/utils/lib/utils.module.mjs +4 -4
- package/fesm2022/bravobit-bb-foundation-auth.mjs +13 -13
- package/fesm2022/bravobit-bb-foundation-collections.mjs +44 -44
- package/fesm2022/bravobit-bb-foundation-collections.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-combobox.mjs +15 -15
- package/fesm2022/bravobit-bb-foundation-dashboard.mjs +27 -27
- package/fesm2022/bravobit-bb-foundation-dashboard.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-dialog.mjs +34 -34
- package/fesm2022/bravobit-bb-foundation-dialog.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-elements.mjs +189 -200
- package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-http.mjs +10 -10
- package/fesm2022/bravobit-bb-foundation-localize.mjs +19 -16
- package/fesm2022/bravobit-bb-foundation-localize.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-masking.mjs +16 -16
- package/fesm2022/bravobit-bb-foundation-notifications.mjs +13 -13
- package/fesm2022/bravobit-bb-foundation-permissions.mjs +10 -10
- package/fesm2022/bravobit-bb-foundation-recaptcha.mjs +10 -10
- package/fesm2022/bravobit-bb-foundation-select.mjs +29 -26
- package/fesm2022/bravobit-bb-foundation-select.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-storage.mjs +3 -3
- package/fesm2022/bravobit-bb-foundation-table.mjs +22 -22
- package/fesm2022/bravobit-bb-foundation-table.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-tooltip.mjs +10 -10
- package/fesm2022/bravobit-bb-foundation-utils.mjs +16 -16
- package/fesm2022/bravobit-bb-foundation.mjs +21 -21
- package/localize/lib/localizations/dutch.localization.d.ts +1 -0
- package/localize/lib/localizations/english.localization.d.ts +1 -0
- package/localize/lib/localizations/papiamento.localization.d.ts +1 -0
- package/package.json +17 -17
- package/select/lib/select/select.component.d.ts +1 -1
- package/styles/theme.scss +54 -2
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, EventEmitter, forwardRef,
|
|
1
|
+
import { booleanAttribute, ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import { BbLocalize, BbLocalizeTemplate, BbLocalizeString } from '@bravobit/bb-foundation/localize';
|
|
4
4
|
import { BbFormError } from '../form-error/form-error.component';
|
|
5
|
+
import { BbFileDrop } from '../directives/file-drop.directive';
|
|
5
6
|
import { BbTemplate } from '@bravobit/bb-foundation/utils';
|
|
6
7
|
import { BbButton } from '../button/button.component';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
@@ -27,7 +28,6 @@ export class BbMultiFileControl {
|
|
|
27
28
|
delete = new EventEmitter();
|
|
28
29
|
// State.
|
|
29
30
|
value = [];
|
|
30
|
-
dragging = false;
|
|
31
31
|
error = false;
|
|
32
32
|
// Callbacks.
|
|
33
33
|
onTouchedCallback = () => ({});
|
|
@@ -39,24 +39,6 @@ export class BbMultiFileControl {
|
|
|
39
39
|
get showList() {
|
|
40
40
|
return this.value?.length > 0 || this.items?.length > 0;
|
|
41
41
|
}
|
|
42
|
-
onDrag(event, isHovered) {
|
|
43
|
-
event.preventDefault();
|
|
44
|
-
event.stopPropagation();
|
|
45
|
-
if (this.disabled) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
this.dragging = isHovered;
|
|
49
|
-
}
|
|
50
|
-
onDrop(event) {
|
|
51
|
-
event.preventDefault();
|
|
52
|
-
event.stopPropagation();
|
|
53
|
-
if (this.disabled) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
this.dragging = false;
|
|
57
|
-
const files = event?.['dataTransfer'].files;
|
|
58
|
-
return this.addFiles(files);
|
|
59
|
-
}
|
|
60
42
|
downloadFile(file) {
|
|
61
43
|
return this._files.download(file, file?.name);
|
|
62
44
|
}
|
|
@@ -65,13 +47,9 @@ export class BbMultiFileControl {
|
|
|
65
47
|
element?.click();
|
|
66
48
|
}
|
|
67
49
|
onFileChange(event) {
|
|
68
|
-
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
const files = event.target?.['files'];
|
|
50
|
+
const files = Array.from(event.target?.['files']);
|
|
72
51
|
this.addFiles(files);
|
|
73
52
|
this.fileInput.nativeElement.value = null;
|
|
74
|
-
this.onChangeCallback?.(this.value);
|
|
75
53
|
}
|
|
76
54
|
deleteFile(index) {
|
|
77
55
|
this.value = this.value?.filter((_, i) => i !== index) ?? [];
|
|
@@ -94,31 +72,43 @@ export class BbMultiFileControl {
|
|
|
94
72
|
this.error = !!error;
|
|
95
73
|
}
|
|
96
74
|
validate({ value }) {
|
|
97
|
-
|
|
98
|
-
|
|
75
|
+
const regexString = (this.accept || '*')
|
|
76
|
+
.replace(/\*/g, '.\*')
|
|
77
|
+
.replace(/,/g, '|');
|
|
78
|
+
const mimeTypeRegex = new RegExp(regexString);
|
|
79
|
+
const errors = (value ?? []).reduce((previous, current, index) => {
|
|
80
|
+
const isValid = this.isFileLike(current) && mimeTypeRegex.test(current?.type);
|
|
81
|
+
if (isValid) {
|
|
82
|
+
return previous;
|
|
83
|
+
}
|
|
84
|
+
return { ...previous, [index]: true };
|
|
85
|
+
}, {});
|
|
86
|
+
return Object.keys(errors)?.length > 0 ? { invalidFiles: errors } : null;
|
|
99
87
|
}
|
|
100
88
|
addFiles(files) {
|
|
89
|
+
if (this.disabled) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
101
92
|
for (let index = 0; index < files?.length; index++) {
|
|
102
93
|
const file = files?.[index] ?? null;
|
|
103
|
-
if (!
|
|
94
|
+
if (!this.isFileLike(file)) {
|
|
104
95
|
continue;
|
|
105
96
|
}
|
|
106
97
|
this.value.push(file);
|
|
107
98
|
}
|
|
99
|
+
this.onChangeCallback?.(this.value);
|
|
108
100
|
}
|
|
109
|
-
|
|
110
|
-
return 'File' in window && input instanceof File
|
|
111
|
-
|
|
112
|
-
isBlob(input) {
|
|
113
|
-
return 'Blob' in window && input instanceof Blob;
|
|
101
|
+
isFileLike(input) {
|
|
102
|
+
return 'File' in window && input instanceof File
|
|
103
|
+
|| 'Blob' in window && input instanceof Blob;
|
|
114
104
|
}
|
|
115
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
116
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.
|
|
105
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BbMultiFileControl, deps: [{ token: i1.Files }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
106
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: BbMultiFileControl, isStandalone: true, selector: "bb-multi-file-control", inputs: { label: "label", hint: "hint", accept: "accept", grouped: ["grouped", "grouped", booleanAttribute], required: ["required", "required", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], hideErrors: ["hideErrors", "hideErrors", booleanAttribute], items: "items" }, outputs: { delete: "delete" }, host: { properties: { "class.required": "required", "class.disabled": "disabled", "class.grouped": "grouped", "class.error": "error" }, classAttribute: "bb-multi-file-control" }, providers: [
|
|
117
107
|
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbMultiFileControl), multi: true },
|
|
118
108
|
{ provide: NG_VALIDATORS, useExisting: BbMultiFileControl, multi: true }
|
|
119
|
-
], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, static: true }], ngImport: i0, template: "<!-- The label of the input. -->\n@if (label; as labelContent) {\n <label [for]=\"labelId\"\n class=\"bb-multi-file-control-label\">\n <ng-template [bbTemplate]=\"labelContent\">{{ labelContent }}</ng-template>\n </label>\n}\n\n<input #fileInput\n [id]=\"labelId\"\n [accept]=\"accept\"\n [disabled]=\"disabled\"\n (change)=\"onFileChange($event)\"\n class=\"bb-multi-file-control-input\"\n type=\"file\"\n tabindex=\"-1\"\n multiple>\n\n<div class=\"bb-multi-file-control-container\">\n @if (showList) {\n <ul class=\"bb-multi-file-control-list\">\n @for (item of items; track item?.id) {\n <li class=\"bb-multi-file-control-item\">\n <i class=\"bb-multi-file-control-icon attach-horizontal\"></i>\n <a [href]=\"item?.url\"\n target=\"_blank\"\n rel=\"noopener\"\n class=\"bb-multi-file-control-item-content\">{{ item?.label }}</a>\n @if (!disabled && delete?.observed) {\n <button (click)=\"delete?.emit(item)\"\n type=\"button\"\n class=\"bb-multi-file-control-item-button\">\n <i class=\"bb-multi-file-control-icon clear\"></i>\n </button>\n }\n </li>\n }\n @for (file of value; track $index) {\n <li class=\"bb-multi-file-control-item\">\n <i class=\"bb-multi-file-control-icon attach-horizontal\"></i>\n <button (click)=\"downloadFile(file)\"\n class=\"bb-multi-file-control-item-content\"\n type=\"button\">\n {{ file?.name }}\n </button>\n @if (!disabled) {\n <button (click)=\"deleteFile($index)\"\n type=\"button\"\n class=\"bb-multi-file-control-item-button\">\n <i class=\"bb-multi-file-control-icon clear\"></i>\n </button>\n }\n </li>\n }\n </ul>\n } @else if (!disabled) {\n <i class=\"bb-multi-file-control-icon attach-vertical\"></i>\n <p [bb-localize-string]=\"'multi-file-control.choose_file_text' | bbLocalize\"\n class=\"bb-multi-file-control-empty\">\n <label *bbLocalizeTemplate=\"'label'\"\n [for]=\"labelId\">{{ 'multi-file-control.choose_file' | bbLocalize }}</label>\n </p>\n }\n @if (!disabled) {\n <button (click)=\"openFileDialog()\"\n type=\"button\"\n class=\"primary small bb-multi-file-control-button\"\n bb-button>\n <i class=\"bb-multi-file-control-icon add\" suffix></i>\n {{ 'multi-file-control.choose_file' | bbLocalize }}\n </button>\n }\n</div>\n\n@if (!hideErrors) {\n <bb-form-error (errorChange)=\"onErrorChange($event)\"></bb-form-error>\n}\n\n<!-- The file picker hint. -->\n@if (hint; as hintContent) {\n <p class=\"bb-multi-file-control-hint\">\n <ng-template [bbTemplate]=\"hintContent\">{{ hintContent }}</ng-template>\n </p>\n}\n", styles: [".bb-multi-file-control{display:block}.bb-multi-file-control.grouped{margin-bottom:1.5rem}.bb-multi-file-control.required>.bb-multi-file-control-label:after{content:\"*\";font-size:.75rem;vertical-align:top;color:var(--bb-form-label-required-color)}.bb-multi-file-control.
|
|
109
|
+
], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, static: true }], ngImport: i0, template: "<!-- The label of the input. -->\n@if (label; as labelContent) {\n <label [for]=\"labelId\"\n class=\"bb-multi-file-control-label\">\n <ng-template [bbTemplate]=\"labelContent\">{{ labelContent }}</ng-template>\n </label>\n}\n\n<input #fileInput\n [id]=\"labelId\"\n [accept]=\"accept\"\n [disabled]=\"disabled\"\n (change)=\"onFileChange($event)\"\n class=\"bb-multi-file-control-input\"\n type=\"file\"\n tabindex=\"-1\"\n multiple>\n\n<div [bbFileDropDisabled]=\"disabled\"\n (bbFileDrop)=\"addFiles($event)\"\n class=\"bb-multi-file-control-container\">\n @if (showList) {\n <ul class=\"bb-multi-file-control-list\">\n @for (item of items; track item?.id) {\n <li class=\"bb-multi-file-control-item\">\n <i class=\"bb-multi-file-control-icon attach-horizontal\"></i>\n <a [href]=\"item?.url\"\n target=\"_blank\"\n rel=\"noopener\"\n class=\"bb-multi-file-control-item-content\">{{ item?.label }}</a>\n @if (!disabled && delete?.observed) {\n <button (click)=\"delete?.emit(item)\"\n type=\"button\"\n class=\"bb-multi-file-control-item-button\">\n <i class=\"bb-multi-file-control-icon clear\"></i>\n </button>\n }\n </li>\n }\n @for (file of value; track $index) {\n <li class=\"bb-multi-file-control-item\">\n <i class=\"bb-multi-file-control-icon attach-horizontal\"></i>\n <button (click)=\"downloadFile(file)\"\n class=\"bb-multi-file-control-item-content\"\n type=\"button\">\n {{ file?.name }}\n </button>\n @if (!disabled) {\n <button (click)=\"deleteFile($index)\"\n type=\"button\"\n class=\"bb-multi-file-control-item-button\">\n <i class=\"bb-multi-file-control-icon clear\"></i>\n </button>\n }\n </li>\n }\n </ul>\n } @else if (!disabled) {\n <i class=\"bb-multi-file-control-icon attach-vertical\"></i>\n <p [bb-localize-string]=\"'multi-file-control.choose_file_text' | bbLocalize\"\n class=\"bb-multi-file-control-empty\">\n <label *bbLocalizeTemplate=\"'label'\"\n [for]=\"labelId\">{{ 'multi-file-control.choose_file' | bbLocalize }}</label>\n </p>\n }\n @if (!disabled) {\n <button (click)=\"openFileDialog()\"\n type=\"button\"\n class=\"primary small bb-multi-file-control-button\"\n bb-button>\n <i class=\"bb-multi-file-control-icon add\" suffix></i>\n {{ 'multi-file-control.choose_file' | bbLocalize }}\n </button>\n }\n</div>\n\n@if (!hideErrors) {\n <bb-form-error (errorChange)=\"onErrorChange($event)\"></bb-form-error>\n}\n\n<!-- The file picker hint. -->\n@if (hint; as hintContent) {\n <p class=\"bb-multi-file-control-hint\">\n <ng-template [bbTemplate]=\"hintContent\">{{ hintContent }}</ng-template>\n </p>\n}\n", styles: [".bb-multi-file-control{display:block}.bb-multi-file-control.grouped{margin-bottom:1.5rem}.bb-multi-file-control.required>.bb-multi-file-control-label:after{content:\"*\";font-size:.75rem;vertical-align:top;color:var(--bb-form-label-required-color)}.bb-multi-file-control-container.is-hovered{border-color:#757e8a;box-shadow:0 .375rem .375rem -.375rem #0000001a,var(--bb-multi-file-control-box-shadow)}.bb-multi-file-control.disabled>.bb-multi-file-control-container{cursor:default;color:gray;background-color:#e6e6e6}.bb-multi-file-control-label{display:block;margin-bottom:.25rem;color:var(--bb-form-label-color);font-size:var(--bb-form-label-font-size);font-weight:var(--bb-form-label-font-weight)}.bb-multi-file-control-input{opacity:0;z-index:-1;width:.1px;height:.1px;overflow:hidden;position:absolute}.bb-multi-file-control-container{width:100%;display:flex;color:#111;padding:.5rem;overflow:hidden;min-height:7.5rem;align-items:center;border-radius:.5rem;flex-direction:column;justify-content:center;background-color:#fff;border:1px solid hsl(213,8%,74%);box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-multi-file-control-button{margin-top:.5rem}.bb-multi-file-control-list{flex:1;width:100%;overflow:hidden}.bb-multi-file-control-empty{flex:1;width:100%;color:#758795;display:block;font-weight:400;line-height:1.5;text-align:center;font-size:.875rem}.bb-multi-file-control-empty>label{cursor:pointer;display:inline;font-size:inherit;font-weight:inherit;text-decoration:underline;color:var(--bb-multi-file-control-color)}.bb-multi-file-control-item{height:2rem;display:flex;max-width:100%;overflow:hidden;align-items:center;white-space:nowrap;border-radius:.5rem;text-overflow:ellipsis;padding:0 .25rem 0 .5rem;border:1px solid hsl(213,8%,74%);background-color:#edf4fd}.bb-multi-file-control-item:not(:last-child){margin-bottom:.25rem}.bb-multi-file-control-item-content{flex:1;padding:0;border:none;max-width:100%;margin:0 .5rem;overflow:hidden;appearance:none;text-align:left;font-weight:400;font-size:.875rem;white-space:nowrap;text-decoration:none;text-overflow:ellipsis;background-color:transparent}.bb-multi-file-control-item-content,.bb-multi-file-control-item-content:visited{color:#0a305c}.bb-multi-file-control-item-content:hover,.bb-multi-file-control-item-content:focus{text-decoration:underline}.bb-multi-file-control-item-button{padding:0;width:1.5rem;display:flex;height:1.5rem;align-items:center;border-radius:.25rem;justify-content:center;border:1px solid hsl(0,73%,25%);background-color:#b51c1c}.bb-multi-file-control-item-button:hover,.bb-multi-file-control-item-button:focus{background-color:#a81a1a}.bb-multi-file-control-item-button:active{background-color:#9a1818}.bb-multi-file-control-hint{display:block;line-height:1.5;margin-top:.25rem;font-size:.8125rem;color:#758795}.bb-multi-file-control-icon{width:1.25rem;height:1.25rem;display:inline-flex;background-size:contain;background-repeat:no-repeat;background-position:center center}.bb-multi-file-control-icon.add{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"%23fff\" viewBox=\"0 0 24 24\"%3E%3Cpath d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/%3E%3C/svg%3E')}.bb-multi-file-control-icon.attach-vertical{width:1.5rem;height:1.5rem;margin-bottom:.5rem;background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"%23758795\" viewBox=\"0 0 24 24\"%3E%3Cpath d=\"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z\"/%3E%3C/svg%3E')}.bb-multi-file-control-icon.attach-horizontal{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"%3E%3Cpath d=\"M2 12.5C2 9.46 4.46 7 7.5 7H18c2.21 0 4 1.79 4 4s-1.79 4-4 4H9.5C8.12 15 7 13.88 7 12.5S8.12 10 9.5 10H17v2H9.41c-.55 0-.55 1 0 1H18c1.1 0 2-.9 2-2s-.9-2-2-2H7.5C5.57 9 4 10.57 4 12.5S5.57 16 7.5 16H17v2H7.5C4.46 18 2 15.54 2 12.5z\"/%3E%3C/svg%3E')}.bb-multi-file-control-icon.clear{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"%23fff\" viewBox=\"0 0 24 24\"%3E%3Cpath d=\"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/%3E%3C/svg%3E')}\n"], dependencies: [{ kind: "component", type: BbFormError, selector: "bb-form-error", inputs: ["control"], outputs: ["errorChange"] }, { kind: "directive", type: BbTemplate, selector: "[bbTemplate]", inputs: ["bbTemplate"] }, { kind: "component", type: BbButton, selector: "button[bb-button]", inputs: ["disabled", "loading"], exportAs: ["bbButton"] }, { kind: "pipe", type: BbLocalize, name: "bbLocalize" }, { kind: "directive", type: BbLocalizeTemplate, selector: "[bbLocalizeTemplate]", inputs: ["bbLocalizeTemplate"] }, { kind: "component", type: BbLocalizeString, selector: "[bb-localize-string]", inputs: ["substitutions", "bb-localize-string"] }, { kind: "directive", type: BbFileDrop, selector: "[bbFileDrop]", inputs: ["bbFileDropDisabled"], outputs: ["bbFileDrop"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
120
110
|
}
|
|
121
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
111
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BbMultiFileControl, decorators: [{
|
|
122
112
|
type: Component,
|
|
123
113
|
args: [{ selector: 'bb-multi-file-control', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
|
124
114
|
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbMultiFileControl), multi: true },
|
|
@@ -128,9 +118,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
128
118
|
'[class.required]': 'required',
|
|
129
119
|
'[class.disabled]': 'disabled',
|
|
130
120
|
'[class.grouped]': 'grouped',
|
|
131
|
-
'[class.dragging]': 'dragging',
|
|
132
121
|
'[class.error]': 'error'
|
|
133
|
-
}, preserveWhitespaces: false, standalone: true, imports: [BbFormError, BbTemplate, BbButton, BbLocalize, BbLocalizeTemplate, BbLocalizeString], template: "<!-- The label of the input. -->\n@if (label; as labelContent) {\n <label [for]=\"labelId\"\n class=\"bb-multi-file-control-label\">\n <ng-template [bbTemplate]=\"labelContent\">{{ labelContent }}</ng-template>\n </label>\n}\n\n<input #fileInput\n [id]=\"labelId\"\n [accept]=\"accept\"\n [disabled]=\"disabled\"\n (change)=\"onFileChange($event)\"\n class=\"bb-multi-file-control-input\"\n type=\"file\"\n tabindex=\"-1\"\n multiple>\n\n<div class=\"bb-multi-file-control-container\">\n @if (showList) {\n <ul class=\"bb-multi-file-control-list\">\n @for (item of items; track item?.id) {\n <li class=\"bb-multi-file-control-item\">\n <i class=\"bb-multi-file-control-icon attach-horizontal\"></i>\n <a [href]=\"item?.url\"\n target=\"_blank\"\n rel=\"noopener\"\n class=\"bb-multi-file-control-item-content\">{{ item?.label }}</a>\n @if (!disabled && delete?.observed) {\n <button (click)=\"delete?.emit(item)\"\n type=\"button\"\n class=\"bb-multi-file-control-item-button\">\n <i class=\"bb-multi-file-control-icon clear\"></i>\n </button>\n }\n </li>\n }\n @for (file of value; track $index) {\n <li class=\"bb-multi-file-control-item\">\n <i class=\"bb-multi-file-control-icon attach-horizontal\"></i>\n <button (click)=\"downloadFile(file)\"\n class=\"bb-multi-file-control-item-content\"\n type=\"button\">\n {{ file?.name }}\n </button>\n @if (!disabled) {\n <button (click)=\"deleteFile($index)\"\n type=\"button\"\n class=\"bb-multi-file-control-item-button\">\n <i class=\"bb-multi-file-control-icon clear\"></i>\n </button>\n }\n </li>\n }\n </ul>\n } @else if (!disabled) {\n <i class=\"bb-multi-file-control-icon attach-vertical\"></i>\n <p [bb-localize-string]=\"'multi-file-control.choose_file_text' | bbLocalize\"\n class=\"bb-multi-file-control-empty\">\n <label *bbLocalizeTemplate=\"'label'\"\n [for]=\"labelId\">{{ 'multi-file-control.choose_file' | bbLocalize }}</label>\n </p>\n }\n @if (!disabled) {\n <button (click)=\"openFileDialog()\"\n type=\"button\"\n class=\"primary small bb-multi-file-control-button\"\n bb-button>\n <i class=\"bb-multi-file-control-icon add\" suffix></i>\n {{ 'multi-file-control.choose_file' | bbLocalize }}\n </button>\n }\n</div>\n\n@if (!hideErrors) {\n <bb-form-error (errorChange)=\"onErrorChange($event)\"></bb-form-error>\n}\n\n<!-- The file picker hint. -->\n@if (hint; as hintContent) {\n <p class=\"bb-multi-file-control-hint\">\n <ng-template [bbTemplate]=\"hintContent\">{{ hintContent }}</ng-template>\n </p>\n}\n", styles: [".bb-multi-file-control{display:block}.bb-multi-file-control.grouped{margin-bottom:1.5rem}.bb-multi-file-control.required>.bb-multi-file-control-label:after{content:\"*\";font-size:.75rem;vertical-align:top;color:var(--bb-form-label-required-color)}.bb-multi-file-control.
|
|
122
|
+
}, preserveWhitespaces: false, standalone: true, imports: [BbFormError, BbTemplate, BbButton, BbLocalize, BbLocalizeTemplate, BbLocalizeString, BbFileDrop], template: "<!-- The label of the input. -->\n@if (label; as labelContent) {\n <label [for]=\"labelId\"\n class=\"bb-multi-file-control-label\">\n <ng-template [bbTemplate]=\"labelContent\">{{ labelContent }}</ng-template>\n </label>\n}\n\n<input #fileInput\n [id]=\"labelId\"\n [accept]=\"accept\"\n [disabled]=\"disabled\"\n (change)=\"onFileChange($event)\"\n class=\"bb-multi-file-control-input\"\n type=\"file\"\n tabindex=\"-1\"\n multiple>\n\n<div [bbFileDropDisabled]=\"disabled\"\n (bbFileDrop)=\"addFiles($event)\"\n class=\"bb-multi-file-control-container\">\n @if (showList) {\n <ul class=\"bb-multi-file-control-list\">\n @for (item of items; track item?.id) {\n <li class=\"bb-multi-file-control-item\">\n <i class=\"bb-multi-file-control-icon attach-horizontal\"></i>\n <a [href]=\"item?.url\"\n target=\"_blank\"\n rel=\"noopener\"\n class=\"bb-multi-file-control-item-content\">{{ item?.label }}</a>\n @if (!disabled && delete?.observed) {\n <button (click)=\"delete?.emit(item)\"\n type=\"button\"\n class=\"bb-multi-file-control-item-button\">\n <i class=\"bb-multi-file-control-icon clear\"></i>\n </button>\n }\n </li>\n }\n @for (file of value; track $index) {\n <li class=\"bb-multi-file-control-item\">\n <i class=\"bb-multi-file-control-icon attach-horizontal\"></i>\n <button (click)=\"downloadFile(file)\"\n class=\"bb-multi-file-control-item-content\"\n type=\"button\">\n {{ file?.name }}\n </button>\n @if (!disabled) {\n <button (click)=\"deleteFile($index)\"\n type=\"button\"\n class=\"bb-multi-file-control-item-button\">\n <i class=\"bb-multi-file-control-icon clear\"></i>\n </button>\n }\n </li>\n }\n </ul>\n } @else if (!disabled) {\n <i class=\"bb-multi-file-control-icon attach-vertical\"></i>\n <p [bb-localize-string]=\"'multi-file-control.choose_file_text' | bbLocalize\"\n class=\"bb-multi-file-control-empty\">\n <label *bbLocalizeTemplate=\"'label'\"\n [for]=\"labelId\">{{ 'multi-file-control.choose_file' | bbLocalize }}</label>\n </p>\n }\n @if (!disabled) {\n <button (click)=\"openFileDialog()\"\n type=\"button\"\n class=\"primary small bb-multi-file-control-button\"\n bb-button>\n <i class=\"bb-multi-file-control-icon add\" suffix></i>\n {{ 'multi-file-control.choose_file' | bbLocalize }}\n </button>\n }\n</div>\n\n@if (!hideErrors) {\n <bb-form-error (errorChange)=\"onErrorChange($event)\"></bb-form-error>\n}\n\n<!-- The file picker hint. -->\n@if (hint; as hintContent) {\n <p class=\"bb-multi-file-control-hint\">\n <ng-template [bbTemplate]=\"hintContent\">{{ hintContent }}</ng-template>\n </p>\n}\n", styles: [".bb-multi-file-control{display:block}.bb-multi-file-control.grouped{margin-bottom:1.5rem}.bb-multi-file-control.required>.bb-multi-file-control-label:after{content:\"*\";font-size:.75rem;vertical-align:top;color:var(--bb-form-label-required-color)}.bb-multi-file-control-container.is-hovered{border-color:#757e8a;box-shadow:0 .375rem .375rem -.375rem #0000001a,var(--bb-multi-file-control-box-shadow)}.bb-multi-file-control.disabled>.bb-multi-file-control-container{cursor:default;color:gray;background-color:#e6e6e6}.bb-multi-file-control-label{display:block;margin-bottom:.25rem;color:var(--bb-form-label-color);font-size:var(--bb-form-label-font-size);font-weight:var(--bb-form-label-font-weight)}.bb-multi-file-control-input{opacity:0;z-index:-1;width:.1px;height:.1px;overflow:hidden;position:absolute}.bb-multi-file-control-container{width:100%;display:flex;color:#111;padding:.5rem;overflow:hidden;min-height:7.5rem;align-items:center;border-radius:.5rem;flex-direction:column;justify-content:center;background-color:#fff;border:1px solid hsl(213,8%,74%);box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-multi-file-control-button{margin-top:.5rem}.bb-multi-file-control-list{flex:1;width:100%;overflow:hidden}.bb-multi-file-control-empty{flex:1;width:100%;color:#758795;display:block;font-weight:400;line-height:1.5;text-align:center;font-size:.875rem}.bb-multi-file-control-empty>label{cursor:pointer;display:inline;font-size:inherit;font-weight:inherit;text-decoration:underline;color:var(--bb-multi-file-control-color)}.bb-multi-file-control-item{height:2rem;display:flex;max-width:100%;overflow:hidden;align-items:center;white-space:nowrap;border-radius:.5rem;text-overflow:ellipsis;padding:0 .25rem 0 .5rem;border:1px solid hsl(213,8%,74%);background-color:#edf4fd}.bb-multi-file-control-item:not(:last-child){margin-bottom:.25rem}.bb-multi-file-control-item-content{flex:1;padding:0;border:none;max-width:100%;margin:0 .5rem;overflow:hidden;appearance:none;text-align:left;font-weight:400;font-size:.875rem;white-space:nowrap;text-decoration:none;text-overflow:ellipsis;background-color:transparent}.bb-multi-file-control-item-content,.bb-multi-file-control-item-content:visited{color:#0a305c}.bb-multi-file-control-item-content:hover,.bb-multi-file-control-item-content:focus{text-decoration:underline}.bb-multi-file-control-item-button{padding:0;width:1.5rem;display:flex;height:1.5rem;align-items:center;border-radius:.25rem;justify-content:center;border:1px solid hsl(0,73%,25%);background-color:#b51c1c}.bb-multi-file-control-item-button:hover,.bb-multi-file-control-item-button:focus{background-color:#a81a1a}.bb-multi-file-control-item-button:active{background-color:#9a1818}.bb-multi-file-control-hint{display:block;line-height:1.5;margin-top:.25rem;font-size:.8125rem;color:#758795}.bb-multi-file-control-icon{width:1.25rem;height:1.25rem;display:inline-flex;background-size:contain;background-repeat:no-repeat;background-position:center center}.bb-multi-file-control-icon.add{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"%23fff\" viewBox=\"0 0 24 24\"%3E%3Cpath d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/%3E%3C/svg%3E')}.bb-multi-file-control-icon.attach-vertical{width:1.5rem;height:1.5rem;margin-bottom:.5rem;background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"%23758795\" viewBox=\"0 0 24 24\"%3E%3Cpath d=\"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z\"/%3E%3C/svg%3E')}.bb-multi-file-control-icon.attach-horizontal{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"%3E%3Cpath d=\"M2 12.5C2 9.46 4.46 7 7.5 7H18c2.21 0 4 1.79 4 4s-1.79 4-4 4H9.5C8.12 15 7 13.88 7 12.5S8.12 10 9.5 10H17v2H9.41c-.55 0-.55 1 0 1H18c1.1 0 2-.9 2-2s-.9-2-2-2H7.5C5.57 9 4 10.57 4 12.5S5.57 16 7.5 16H17v2H7.5C4.46 18 2 15.54 2 12.5z\"/%3E%3C/svg%3E')}.bb-multi-file-control-icon.clear{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"%23fff\" viewBox=\"0 0 24 24\"%3E%3Cpath d=\"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/%3E%3C/svg%3E')}\n"] }]
|
|
134
123
|
}], ctorParameters: () => [{ type: i1.Files }, { type: i0.ChangeDetectorRef }], propDecorators: { fileInput: [{
|
|
135
124
|
type: ViewChild,
|
|
136
125
|
args: ['fileInput', { static: true }]
|
|
@@ -156,14 +145,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
156
145
|
type: Input
|
|
157
146
|
}], delete: [{
|
|
158
147
|
type: Output
|
|
159
|
-
}], onDrag: [{
|
|
160
|
-
type: HostListener,
|
|
161
|
-
args: ['dragover', ['$event', 'true']]
|
|
162
|
-
}, {
|
|
163
|
-
type: HostListener,
|
|
164
|
-
args: ['dragleave', ['$event', 'false']]
|
|
165
|
-
}], onDrop: [{
|
|
166
|
-
type: HostListener,
|
|
167
|
-
args: ['drop', ['$event']]
|
|
168
148
|
}] } });
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktZmlsZS1jb250cm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9tdWx0aS1maWxlLWNvbnRyb2wvbXVsdGktZmlsZS1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9tdWx0aS1maWxlLWNvbnRyb2wvbXVsdGktZmlsZS1jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFvQyxhQUFhLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRyxPQUFPLEVBQUMsVUFBVSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEcsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7OztBQUdwRCxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7QUF3QnJCLE1BQU0sT0FBTyxrQkFBa0I7SUE4QlA7SUFDQTtJQTdCcEIsaUJBQWlCO0lBQ1IsT0FBTyxHQUFXLHlCQUF5QixZQUFZLEVBQUUsRUFBRSxDQUFDO0lBRXJFLFNBQVM7SUFDK0IsU0FBUyxDQUErQjtJQUVoRixVQUFVO0lBQ0QsS0FBSyxHQUFxQyxJ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QixpQkFBaUIsRUFBRSxTQUFTO3dCQUM1QixrQkFBa0IsRUFBRSxVQUFVO3dCQUM5QixlQUFlLEVBQUUsT0FBTztxQkFDM0IsdUJBQ29CLEtBQUssY0FDZCxJQUFJLFdBQ1AsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUM7MEdBUXRELFNBQVM7c0JBQWhELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFHN0IsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ2dDLE9BQU87c0JBQTVDLEtBQUs7dUJBQUMsRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUM7Z0JBQ0UsUUFBUTtzQkFBN0MsS0FBSzt1QkFBQyxFQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQztnQkFDRSxRQUFRO3NCQUE3QyxLQUFLO3VCQUFDLEVBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFDO2dCQUNFLFVBQVU7c0JBQS9DLEtBQUs7dUJBQUMsRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUM7Z0JBQzNCLEtBQUs7c0JBQWIsS0FBSztnQkFHSSxNQUFNO3NCQUFmLE1BQU07Z0JBcUJQLE1BQU07c0JBRkwsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDOztzQkFDM0MsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDO2dCQWE5QyxNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0JiTG9jYWxpemUsIEJiTG9jYWxpemVUZW1wbGF0ZSwgQmJMb2NhbGl6ZVN0cmluZ30gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vbG9jYWxpemUnO1xuaW1wb3J0IHtCYkZvcm1FcnJvcn0gZnJvbSAnLi4vZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiVGVtcGxhdGV9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL3V0aWxzJztcbmltcG9ydCB7QmJCdXR0b259IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7RmlsZXN9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uJztcblxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmItbXVsdGktZmlsZS1jb250cm9sJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbXVsdGktZmlsZS1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9tdWx0aS1maWxlLWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJiTXVsdGlGaWxlQ29udHJvbCksIG11bHRpOiB0cnVlfSxcbiAgICAgICAge3Byb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBCYk11bHRpRmlsZUNvbnRyb2wsIG11bHRpOiB0cnVlfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnYmItbXVsdGktZmlsZS1jb250cm9sJyxcbiAgICAgICAgJ1tjbGFzcy5yZXF1aXJlZF0nOiAncmVxdWlyZWQnLFxuICAgICAgICAnW2NsYXNzLmRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgICAgICdbY2xhc3MuZ3JvdXBlZF0nOiAnZ3JvdXBlZCcsXG4gICAgICAgICdbY2xhc3MuZHJhZ2dpbmddJzogJ2RyYWdnaW5nJyxcbiAgICAgICAgJ1tjbGFzcy5lcnJvcl0nOiAnZXJyb3InXG4gICAgfSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtCYkZvcm1FcnJvciwgQmJUZW1wbGF0ZSwgQmJCdXR0b24sIEJiTG9jYWxpemUsIEJiTG9jYWxpemVUZW1wbGF0ZSwgQmJMb2NhbGl6ZVN0cmluZ11cbn0pXG5leHBvcnQgY2xhc3MgQmJNdWx0aUZpbGVDb250cm9sIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gICAgLy8gUmVhZG9ubHkgZGF0YS5cbiAgICByZWFkb25seSBsYWJlbElkOiBzdHJpbmcgPSBgYmItbXVsdGktZmlsZS1jb250cm9sLSR7bmV4dFVuaXF1ZUlkKyt9YDtcblxuICAgIC8vIFZpZXdzLlxuICAgIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcsIHtzdGF0aWM6IHRydWV9KSBmaWxlSW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBoaW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgYWNjZXB0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoe3RyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZX0pIGdyb3VwZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoe3RyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZX0pIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KHt0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGV9KSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCh7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSkgaGlkZUVycm9yczogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGl0ZW1zOiB7IGlkOiBudW1iZXIsIGxhYmVsOiBzdHJpbmcsIHVybDogc3RyaW5nIH1bXSA9IFtdO1xuXG4gICAgLy8gT3V0cHV0cy5cbiAgICBAT3V0cHV0KCkgZGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjx7IGlkOiBudW1iZXIsIGxhYmVsOiBzdHJpbmcsIHVybDogc3RyaW5nIH0+KCk7XG5cbiAgICAvLyBTdGF0ZS5cbiAgICB2YWx1ZTogRmlsZVtdID0gW107XG4gICAgZHJhZ2dpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBlcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gQ2FsbGJhY2tzLlxuICAgIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcbiAgICBvbkNoYW5nZUNhbGxiYWNrOiAoXzogRmlsZVtdIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+ICh7fSk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9maWxlczogRmlsZXMsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgfVxuXG4gICAgZ2V0IHNob3dMaXN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZT8ubGVuZ3RoID4gMCB8fCB0aGlzLml0ZW1zPy5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnLCAndHJ1ZSddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50JywgJ2ZhbHNlJ10pXG4gICAgb25EcmFnKGV2ZW50OiBFdmVudCwgaXNIb3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRyYWdnaW5nID0gaXNIb3ZlcmVkO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICAgIG9uRHJvcChldmVudDogRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZHJhZ2dpbmcgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgZmlsZXM6IEZpbGVMaXN0ID0gZXZlbnQ/LlsnZGF0YVRyYW5zZmVyJ10uZmlsZXM7XG4gICAgICAgIHJldHVybiB0aGlzLmFkZEZpbGVzKGZpbGVzKTtcbiAgICB9XG5cbiAgICBkb3dubG9hZEZpbGUoZmlsZTogRmlsZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsZXMuZG93bmxvYWQoZmlsZSwgZmlsZT8ubmFtZSk7XG4gICAgfVxuXG4gICAgb3BlbkZpbGVEaWFsb2coKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmZpbGVJbnB1dD8ubmF0aXZlRWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgICBlbGVtZW50Py5jbGljaygpO1xuICAgIH1cblxuICAgIG9uRmlsZUNoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpbGVzOiBGaWxlTGlzdCA9IGV2ZW50LnRhcmdldD8uWydmaWxlcyddO1xuICAgICAgICB0aGlzLmFkZEZpbGVzKGZpbGVzKTtcbiAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IG51bGw7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjaz8uKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIGRlbGV0ZUZpbGUoaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZT8uZmlsdGVyKChfLCBpKSA9PiBpICE9PSBpbmRleCkgPz8gW107XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjaz8uKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IEZpbGVbXSB8IG51bGwpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlID8/IFtdO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UobWV0aG9kOiAoXzogRmlsZVtdIHwgbnVsbCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBtZXRob2Q7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQobWV0aG9kOiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBtZXRob2Q7XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBvbkVycm9yQ2hhbmdlKGVycm9yOiB7IHRva2VuOiBzdHJpbmcsIGRhdGE/OiBhbnkgfSB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5lcnJvciA9ICEhZXJyb3I7XG4gICAgfVxuXG4gICAgdmFsaWRhdGUoe3ZhbHVlfTogRm9ybUNvbnRyb2w8RmlsZVtdPikge1xuICAgICAgICAvLyBUT0RPKEBTdGFuKTogZmlsZSBzaXplIHZhbGlkYXRpb24gKyBmaWxlIHR5cGUgdmFsaWRhdGlvblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZEZpbGVzKGZpbGVzOiBGaWxlTGlzdCkge1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZmlsZXM/Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgY29uc3QgZmlsZSA9IGZpbGVzPy5baW5kZXhdID8/IG51bGw7XG4gICAgICAgICAgICBpZiAoISh0aGlzLmlzRmlsZShmaWxlKSB8fCB0aGlzLmlzQmxvYihmaWxlKSkpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudmFsdWUucHVzaChmaWxlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNGaWxlKGlucHV0OiB1bmtub3duKSB7XG4gICAgICAgIHJldHVybiAnRmlsZScgaW4gd2luZG93ICYmIGlucHV0IGluc3RhbmNlb2YgRmlsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQmxvYihpbnB1dDogdW5rbm93bikge1xuICAgICAgICByZXR1cm4gJ0Jsb2InIGluIHdpbmRvdyAmJiBpbnB1dCBpbnN0YW5jZW9mIEJsb2I7XG4gICAgfVxuXG59XG4iLCI8IS0tIFRoZSBsYWJlbCBvZiB0aGUgaW5wdXQuIC0tPlxuQGlmIChsYWJlbDsgYXMgbGFiZWxDb250ZW50KSB7XG4gICAgPGxhYmVsIFtmb3JdPVwibGFiZWxJZFwiXG4gICAgICAgICAgIGNsYXNzPVwiYmItbXVsdGktZmlsZS1jb250cm9sLWxhYmVsXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbYmJUZW1wbGF0ZV09XCJsYWJlbENvbnRlbnRcIj57eyBsYWJlbENvbnRlbnQgfX08L25nLXRlbXBsYXRlPlxuICAgIDwvbGFiZWw+XG59XG5cbjxpbnB1dCAjZmlsZUlucHV0XG4gICAgICAgW2lkXT1cImxhYmVsSWRcIlxuICAgICAgIFthY2NlcHRdPVwiYWNjZXB0XCJcbiAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgIChjaGFuZ2UpPVwib25GaWxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgIGNsYXNzPVwiYmItbXVsdGktZmlsZS1jb250cm9sLWlucHV0XCJcbiAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgbXVsdGlwbGU+XG5cbjxkaXYgY2xhc3M9XCJiYi1tdWx0aS1maWxlLWNvbnRyb2wtY29udGFpbmVyXCI+XG4gICAgQGlmIChzaG93TGlzdCkge1xuICAgICAgICA8dWwgY2xhc3M9XCJiYi1tdWx0aS1maWxlLWNvbnRyb2wtbGlzdFwiPlxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBpdGVtczsgdHJhY2sgaXRlbT8uaWQpIHtcbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJiYi1tdWx0aS1maWxlLWNvbnRyb2wtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJiLW11bHRpLWZpbGUtY29udHJvbC1pY29uIGF0dGFjaC1ob3Jpem9udGFsXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJpdGVtPy51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmItbXVsdGktZmlsZS1jb250cm9sLWl0ZW0tY29udGVudFwiPnt7IGl0ZW0/LmxhYmVsIH19PC9hPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKCFkaXNhYmxlZCAmJiBkZWxldGU/Lm9ic2VydmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJkZWxldGU/LmVtaXQoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYi1tdWx0aS1maWxlLWNvbnRyb2wtaXRlbS1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJiLW11bHRpLWZpbGUtY29udHJvbC1pY29uIGNsZWFyXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGZvciAoZmlsZSBvZiB2YWx1ZTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiYmItbXVsdGktZmlsZS1jb250cm9sLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiYi1tdWx0aS1maWxlLWNvbnRyb2wtaWNvbiBhdHRhY2gtaG9yaXpvbnRhbFwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZG93bmxvYWRGaWxlKGZpbGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJiLW11bHRpLWZpbGUtY29udHJvbC1pdGVtLWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGZpbGU/Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIWRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJkZWxldGVGaWxlKCRpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYi1tdWx0aS1maWxlLWNvbnRyb2wtaXRlbS1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJiLW11bHRpLWZpbGUtY29udHJvbC1pY29uIGNsZWFyXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3VsPlxuICAgIH0gQGVsc2UgaWYgKCFkaXNhYmxlZCkge1xuICAgICAgICA8aSBjbGFzcz1cImJiLW11bHRpLWZpbGUtY29udHJvbC1pY29uIGF0dGFjaC12ZXJ0aWNhbFwiPjwvaT5cbiAgICAgICAgPHAgW2JiLWxvY2FsaXplLXN0cmluZ109XCInbXVsdGktZmlsZS1jb250cm9sLmNob29zZV9maWxlX3RleHQnIHwgYmJMb2NhbGl6ZVwiXG4gICAgICAgICAgIGNsYXNzPVwiYmItbXVsdGktZmlsZS1jb250cm9sLWVtcHR5XCI+XG4gICAgICAgICAgICA8bGFiZWwgKmJiTG9jYWxpemVUZW1wbGF0ZT1cIidsYWJlbCdcIlxuICAgICAgICAgICAgICAgICAgIFtmb3JdPVwibGFiZWxJZFwiPnt7ICdtdWx0aS1maWxlLWNvbnRyb2wuY2hvb3NlX2ZpbGUnIHwgYmJMb2NhbGl6ZSB9fTwvbGFiZWw+XG4gICAgICAgIDwvcD5cbiAgICB9XG4gICAgQGlmICghZGlzYWJsZWQpIHtcbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwib3BlbkZpbGVEaWFsb2coKVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwcmltYXJ5IHNtYWxsIGJiLW11bHRpLWZpbGUtY29udHJvbC1idXR0b25cIlxuICAgICAgICAgICAgICAgIGJiLWJ1dHRvbj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiYmItbXVsdGktZmlsZS1jb250cm9sLWljb24gYWRkXCIgc3VmZml4PjwvaT5cbiAgICAgICAgICAgIHt7ICdtdWx0aS1maWxlLWNvbnRyb2wuY2hvb3NlX2ZpbGUnIHwgYmJMb2NhbGl6ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICB9XG48L2Rpdj5cblxuQGlmICghaGlkZUVycm9ycykge1xuICAgIDxiYi1mb3JtLWVycm9yIChlcnJvckNoYW5nZSk9XCJvbkVycm9yQ2hhbmdlKCRldmVudClcIj48L2JiLWZvcm0tZXJyb3I+XG59XG5cbjwhLS0gVGhlIGZpbGUgcGlja2VyIGhpbnQuIC0tPlxuQGlmIChoaW50OyBhcyBoaW50Q29udGVudCkge1xuICAgIDxwIGNsYXNzPVwiYmItbXVsdGktZmlsZS1jb250cm9sLWhpbnRcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtiYlRlbXBsYXRlXT1cImhpbnRDb250ZW50XCI+e3sgaGludENvbnRlbnQgfX08L25nLXRlbXBsYXRlPlxuICAgIDwvcD5cbn1cbiJdfQ==
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktZmlsZS1jb250cm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9tdWx0aS1maWxlLWNvbnRyb2wvbXVsdGktZmlsZS1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9tdWx0aS1maWxlLWNvbnRyb2wvbXVsdGktZmlsZS1jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW9DLGFBQWEsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25HLE9BQU8sRUFBQyxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDL0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzdELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7OztBQUdwRCxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7QUF1QnJCLE1BQU0sT0FBTyxrQkFBa0I7SUE2QlA7SUFDQTtJQTVCcEIsaUJBQWlCO0lBQ1IsT0FBTyxHQUFXLHlCQUF5QixZQUFZLEVBQUUsRUFBRSxDQUFDO0lBRXJFLFNBQVM7SUFDK0IsU0FBUyxD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RUFBRSxJQUFJLEVBQUM7cUJBQ3pFLFFBQ0s7d0JBQ0YsT0FBTyxFQUFFLHVCQUF1Qjt3QkFDaEMsa0JBQWtCLEVBQUUsVUFBVTt3QkFDOUIsa0JBQWtCLEVBQUUsVUFBVTt3QkFDOUIsaUJBQWlCLEVBQUUsU0FBUzt3QkFDNUIsZUFBZSxFQUFFLE9BQU87cUJBQzNCLHVCQUNvQixLQUFLLGNBQ2QsSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLFVBQVUsQ0FBQzswR0FRbEUsU0FBUztzQkFBaEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUc3QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDZ0MsT0FBTztzQkFBNUMsS0FBSzt1QkFBQyxFQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQztnQkFDRSxRQUFRO3NCQUE3QyxLQUFLO3VCQUFDLEVBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFDO2dCQUNFLFFBQVE7c0JBQTdDLEtBQUs7dUJBQUMsRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUM7Z0JBQ0UsVUFBVTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQztnQkFDM0IsS0FBSztzQkFBYixLQUFLO2dCQUdJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0JiTG9jYWxpemUsIEJiTG9jYWxpemVUZW1wbGF0ZSwgQmJMb2NhbGl6ZVN0cmluZ30gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vbG9jYWxpemUnO1xuaW1wb3J0IHtCYkZvcm1FcnJvcn0gZnJvbSAnLi4vZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiRmlsZURyb3B9IGZyb20gJy4uL2RpcmVjdGl2ZXMvZmlsZS1kcm9wLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiVGVtcGxhdGV9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL3V0aWxzJztcbmltcG9ydCB7QmJCdXR0b259IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7RmlsZXN9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uJztcblxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmItbXVsdGktZmlsZS1jb250cm9sJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbXVsdGktZmlsZS1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9tdWx0aS1maWxlLWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJiTXVsdGlGaWxlQ29udHJvbCksIG11bHRpOiB0cnVlfSxcbiAgICAgICAge3Byb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBCYk11bHRpRmlsZUNvbnRyb2wsIG11bHRpOiB0cnVlfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnYmItbXVsdGktZmlsZS1jb250cm9sJyxcbiAgICAgICAgJ1tjbGFzcy5yZXF1aXJlZF0nOiAncmVxdWlyZWQnLFxuICAgICAgICAnW2NsYXNzLmRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgICAgICdbY2xhc3MuZ3JvdXBlZF0nOiAnZ3JvdXBlZCcsXG4gICAgICAgICdbY2xhc3MuZXJyb3JdJzogJ2Vycm9yJ1xuICAgIH0sXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQmJGb3JtRXJyb3IsIEJiVGVtcGxhdGUsIEJiQnV0dG9uLCBCYkxvY2FsaXplLCBCYkxvY2FsaXplVGVtcGxhdGUsIEJiTG9jYWxpemVTdHJpbmcsIEJiRmlsZURyb3BdXG59KVxuZXhwb3J0IGNsYXNzIEJiTXVsdGlGaWxlQ29udHJvbCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICAgIC8vIFJlYWRvbmx5IGRhdGEuXG4gICAgcmVhZG9ubHkgbGFiZWxJZDogc3RyaW5nID0gYGJiLW11bHRpLWZpbGUtY29udHJvbC0ke25leHRVbmlxdWVJZCsrfWA7XG5cbiAgICAvLyBWaWV3cy5cbiAgICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnLCB7c3RhdGljOiB0cnVlfSkgZmlsZUlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgaGludDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIGFjY2VwdDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KHt0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGV9KSBncm91cGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KHt0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGV9KSByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCh7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoe3RyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZX0pIGhpZGVFcnJvcnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpdGVtczogeyBpZDogbnVtYmVyLCBsYWJlbDogc3RyaW5nLCB1cmw6IHN0cmluZyB9W10gPSBbXTtcblxuICAgIC8vIE91dHB1dHMuXG4gICAgQE91dHB1dCgpIGRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBpZDogbnVtYmVyLCBsYWJlbDogc3RyaW5nLCB1cmw6IHN0cmluZyB9PigpO1xuXG4gICAgLy8gU3RhdGUuXG4gICAgdmFsdWU6IEZpbGVbXSA9IFtdO1xuICAgIGVycm9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBDYWxsYmFja3MuXG4gICAgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSAoKSA9PiAoe30pO1xuICAgIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBGaWxlW10gfCBudWxsKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ZpbGVzOiBGaWxlcyxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB9XG5cbiAgICBnZXQgc2hvd0xpc3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlPy5sZW5ndGggPiAwIHx8IHRoaXMuaXRlbXM/Lmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgZG93bmxvYWRGaWxlKGZpbGU6IEZpbGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVzLmRvd25sb2FkKGZpbGUsIGZpbGU/Lm5hbWUpO1xuICAgIH1cblxuICAgIG9wZW5GaWxlRGlhbG9nKCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5maWxlSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgZWxlbWVudD8uY2xpY2soKTtcbiAgICB9XG5cbiAgICBvbkZpbGVDaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGZpbGVzOiBGaWxlW10gPSBBcnJheS5mcm9tKGV2ZW50LnRhcmdldD8uWydmaWxlcyddKTtcbiAgICAgICAgdGhpcy5hZGRGaWxlcyhmaWxlcyk7XG4gICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xuICAgIH1cblxuICAgIGRlbGV0ZUZpbGUoaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZT8uZmlsdGVyKChfLCBpKSA9PiBpICE9PSBpbmRleCkgPz8gW107XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjaz8uKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IEZpbGVbXSB8IG51bGwpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlID8/IFtdO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UobWV0aG9kOiAoXzogRmlsZVtdIHwgbnVsbCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBtZXRob2Q7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQobWV0aG9kOiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBtZXRob2Q7XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBvbkVycm9yQ2hhbmdlKGVycm9yOiB7IHRva2VuOiBzdHJpbmcsIGRhdGE/OiBhbnkgfSB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5lcnJvciA9ICEhZXJyb3I7XG4gICAgfVxuXG4gICAgdmFsaWRhdGUoe3ZhbHVlfTogRm9ybUNvbnRyb2w8RmlsZVtdPikge1xuICAgICAgICBjb25zdCByZWdleFN0cmluZyA9ICh0aGlzLmFjY2VwdCB8fCAnKicpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFwqL2csICcuXFwqJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC8sL2csICd8Jyk7XG4gICAgICAgIGNvbnN0IG1pbWVUeXBlUmVnZXggPSBuZXcgUmVnRXhwKHJlZ2V4U3RyaW5nKTtcblxuICAgICAgICBjb25zdCBlcnJvcnMgPSAodmFsdWUgPz8gW10pLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc1ZhbGlkID0gdGhpcy5pc0ZpbGVMaWtlKGN1cnJlbnQpICYmIG1pbWVUeXBlUmVnZXgudGVzdChjdXJyZW50Py50eXBlKTtcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gey4uLnByZXZpb3VzLCBbaW5kZXhdOiB0cnVlfTtcbiAgICAgICAgfSwgPFJlY29yZDxudW1iZXIsIGJvb2xlYW4+Pnt9KTtcblxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZXJyb3JzKT8ubGVuZ3RoID4gMCA/IHtpbnZhbGlkRmlsZXM6IGVycm9yc30gOiBudWxsO1xuICAgIH1cblxuICAgIGFkZEZpbGVzKGZpbGVzOiBGaWxlW10pIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBmaWxlcz8ubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlID0gZmlsZXM/LltpbmRleF0gPz8gbnVsbDtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc0ZpbGVMaWtlKGZpbGUpKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnZhbHVlLnB1c2goZmlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrPy4odGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0ZpbGVMaWtlKGlucHV0OiB1bmtub3duKSB7XG4gICAgICAgIHJldHVybiAnRmlsZScgaW4gd2luZG93ICYmIGlucHV0IGluc3RhbmNlb2YgRmlsZVxuICAgICAgICAgICAgfHwgJ0Jsb2InIGluIHdpbmRvdyAmJiBpbnB1dCBpbnN0YW5jZW9mIEJsb2I7XG5cbiAgICB9XG5cbn1cbiIsIjwhLS0gVGhlIGxhYmVsIG9mIHRoZSBpbnB1dC4gLS0+XG5AaWYgKGxhYmVsOyBhcyBsYWJlbENvbnRlbnQpIHtcbiAgICA8bGFiZWwgW2Zvcl09XCJsYWJlbElkXCJcbiAgICAgICAgICAgY2xhc3M9XCJiYi1tdWx0aS1maWxlLWNvbnRyb2wtbGFiZWxcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtiYlRlbXBsYXRlXT1cImxhYmVsQ29udGVudFwiPnt7IGxhYmVsQ29udGVudCB9fTwvbmctdGVtcGxhdGU+XG4gICAgPC9sYWJlbD5cbn1cblxuPGlucHV0ICNmaWxlSW5wdXRcbiAgICAgICBbaWRdPVwibGFiZWxJZFwiXG4gICAgICAgW2FjY2VwdF09XCJhY2NlcHRcIlxuICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgKGNoYW5nZSk9XCJvbkZpbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgY2xhc3M9XCJiYi1tdWx0aS1maWxlLWNvbnRyb2wtaW5wdXRcIlxuICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICBtdWx0aXBsZT5cblxuPGRpdiBbYmJGaWxlRHJvcERpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgKGJiRmlsZURyb3ApPVwiYWRkRmlsZXMoJGV2ZW50KVwiXG4gICAgIGNsYXNzPVwiYmItbXVsdGktZmlsZS1jb250cm9sLWNvbnRhaW5lclwiPlxuICAgIEBpZiAoc2hvd0xpc3QpIHtcbiAgICAgICAgPHVsIGNsYXNzPVwiYmItbXVsdGktZmlsZS1jb250cm9sLWxpc3RcIj5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXM7IHRyYWNrIGl0ZW0/LmlkKSB7XG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiYmItbXVsdGktZmlsZS1jb250cm9sLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiYi1tdWx0aS1maWxlLWNvbnRyb2wtaWNvbiBhdHRhY2gtaG9yaXpvbnRhbFwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiaXRlbT8udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJiLW11bHRpLWZpbGUtY29udHJvbC1pdGVtLWNvbnRlbnRcIj57eyBpdGVtPy5sYWJlbCB9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgQGlmICghZGlzYWJsZWQgJiYgZGVsZXRlPy5vYnNlcnZlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlPy5lbWl0KGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmItbXVsdGktZmlsZS1jb250cm9sLWl0ZW0tYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiYi1tdWx0aS1maWxlLWNvbnRyb2wtaWNvbiBjbGVhclwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBmb3IgKGZpbGUgb2YgdmFsdWU7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImJiLW11bHRpLWZpbGUtY29udHJvbC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmItbXVsdGktZmlsZS1jb250cm9sLWljb24gYXR0YWNoLWhvcml6b250YWxcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRvd25sb2FkRmlsZShmaWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYi1tdWx0aS1maWxlLWNvbnRyb2wtaXRlbS1jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBmaWxlPy5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKCFkaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlRmlsZSgkaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmItbXVsdGktZmlsZS1jb250cm9sLWl0ZW0tYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiYi1tdWx0aS1maWxlLWNvbnRyb2wtaWNvbiBjbGVhclwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC91bD5cbiAgICB9IEBlbHNlIGlmICghZGlzYWJsZWQpIHtcbiAgICAgICAgPGkgY2xhc3M9XCJiYi1tdWx0aS1maWxlLWNvbnRyb2wtaWNvbiBhdHRhY2gtdmVydGljYWxcIj48L2k+XG4gICAgICAgIDxwIFtiYi1sb2NhbGl6ZS1zdHJpbmddPVwiJ211bHRpLWZpbGUtY29udHJvbC5jaG9vc2VfZmlsZV90ZXh0JyB8IGJiTG9jYWxpemVcIlxuICAgICAgICAgICBjbGFzcz1cImJiLW11bHRpLWZpbGUtY29udHJvbC1lbXB0eVwiPlxuICAgICAgICAgICAgPGxhYmVsICpiYkxvY2FsaXplVGVtcGxhdGU9XCInbGFiZWwnXCJcbiAgICAgICAgICAgICAgICAgICBbZm9yXT1cImxhYmVsSWRcIj57eyAnbXVsdGktZmlsZS1jb250cm9sLmNob29zZV9maWxlJyB8IGJiTG9jYWxpemUgfX08L2xhYmVsPlxuICAgICAgICA8L3A+XG4gICAgfVxuICAgIEBpZiAoIWRpc2FibGVkKSB7XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cIm9wZW5GaWxlRGlhbG9nKClcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicHJpbWFyeSBzbWFsbCBiYi1tdWx0aS1maWxlLWNvbnRyb2wtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBiYi1idXR0b24+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImJiLW11bHRpLWZpbGUtY29udHJvbC1pY29uIGFkZFwiIHN1ZmZpeD48L2k+XG4gICAgICAgICAgICB7eyAnbXVsdGktZmlsZS1jb250cm9sLmNob29zZV9maWxlJyB8IGJiTG9jYWxpemUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgfVxuPC9kaXY+XG5cbkBpZiAoIWhpZGVFcnJvcnMpIHtcbiAgICA8YmItZm9ybS1lcnJvciAoZXJyb3JDaGFuZ2UpPVwib25FcnJvckNoYW5nZSgkZXZlbnQpXCI+PC9iYi1mb3JtLWVycm9yPlxufVxuXG48IS0tIFRoZSBmaWxlIHBpY2tlciBoaW50LiAtLT5cbkBpZiAoaGludDsgYXMgaGludENvbnRlbnQpIHtcbiAgICA8cCBjbGFzcz1cImJiLW11bHRpLWZpbGUtY29udHJvbC1oaW50XCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbYmJUZW1wbGF0ZV09XCJoaW50Q29udGVudFwiPnt7IGhpbnRDb250ZW50IH19PC9uZy10ZW1wbGF0ZT5cbiAgICA8L3A+XG59XG4iXX0=
|
|
@@ -15,10 +15,10 @@ export class BbDate {
|
|
|
15
15
|
const locale = this._localize?.current?.locale ?? this._localeId ?? 'en-US';
|
|
16
16
|
return formatDate(date, format ?? 'mediumDate', locale);
|
|
17
17
|
}
|
|
18
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
19
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.
|
|
18
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BbDate, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
19
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: BbDate, isStandalone: true, name: "bbDate" });
|
|
20
20
|
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BbDate, decorators: [{
|
|
22
22
|
type: Pipe,
|
|
23
23
|
args: [{
|
|
24
24
|
name: 'bbDate',
|
|
@@ -35,10 +35,10 @@ export class BbFileImage {
|
|
|
35
35
|
return null;
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
39
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.
|
|
38
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BbFileImage, deps: [{ token: i1.Platform }, { token: i2.ImageConverter }, { token: i3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
39
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: BbFileImage, isStandalone: true, name: "bbFileImage" });
|
|
40
40
|
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BbFileImage, decorators: [{
|
|
42
42
|
type: Pipe,
|
|
43
43
|
args: [{
|
|
44
44
|
name: 'bbFileImage',
|
|
@@ -14,10 +14,10 @@ export class BbFileSize {
|
|
|
14
14
|
const index = Math.floor(Math.log(value) / Math.log(k));
|
|
15
15
|
return parseFloat((value / Math.pow(k, index)).toFixed(dm)) + ' ' + sizes[index];
|
|
16
16
|
};
|
|
17
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
18
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.
|
|
17
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BbFileSize, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
18
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: BbFileSize, isStandalone: true, name: "bbFileSize" });
|
|
19
19
|
}
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BbFileSize, decorators: [{
|
|
21
21
|
type: Pipe,
|
|
22
22
|
args: [{
|
|
23
23
|
name: 'bbFileSize',
|
|
@@ -81,10 +81,10 @@ export class BbRelativeTime {
|
|
|
81
81
|
date?.getMonth() === tomorrow?.getMonth() &&
|
|
82
82
|
date?.getFullYear() === tomorrow?.getFullYear();
|
|
83
83
|
};
|
|
84
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
85
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.
|
|
84
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BbRelativeTime, deps: [{ token: LOCALE_ID }, { token: i1.Localize, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
85
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: BbRelativeTime, isStandalone: true, name: "bbRelativeTime" });
|
|
86
86
|
}
|
|
87
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BbRelativeTime, decorators: [{
|
|
88
88
|
type: Pipe,
|
|
89
89
|
args: [{
|
|
90
90
|
name: 'bbRelativeTime',
|
|
@@ -29,10 +29,10 @@ export class BbRadioButton {
|
|
|
29
29
|
constructor(_radioGroup) {
|
|
30
30
|
this._radioGroup = _radioGroup;
|
|
31
31
|
}
|
|
32
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
33
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.
|
|
32
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BbRadioButton, deps: [{ token: i1.BbRadioGroup }], target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: BbRadioButton, isStandalone: true, selector: "bb-radio-button", inputs: { value: "value", hideText: ["hideText", "hideText", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute] }, host: { listeners: { "click": "onClick()", "keydown.space": "onSpacePressed()" }, properties: { "class.disabled": "disabled", "tabindex": "disabled ? -1 : 0", "class.selected": "this.selected" }, classAttribute: "bb-radio-button" }, ngImport: i0, template: "<div class=\"bb-radio-button-indicator\"></div>\n@if (!hideText) {\n <span class=\"bb-radio-button-text\"><ng-content></ng-content></span>\n}\n\n", styles: [".bb-radio-button{display:flex;cursor:pointer;align-items:center}.bb-radio-button:not(.disabled):focus>.bb-radio-button-indicator{box-shadow:0 .375rem .375rem -.375rem #0000001a,0 0 0 .1875rem var(--bb-radio-outline-color)}.bb-radio-button.selected>.bb-radio-button-indicator{border-color:var(--bb-radio-border-color)}.bb-radio-button.selected>.bb-radio-button-indicator:after{opacity:1;transform:none}.bb-radio-button.disabled{-webkit-user-select:none;user-select:none}.bb-radio-button.disabled>.bb-radio-button-indicator{border-color:gray}.bb-radio-button.disabled>.bb-radio-button-indicator:after{background-color:gray}.bb-radio-button.disabled>.bb-radio-button-text{color:gray}.bb-radio-button-indicator{display:flex;width:1.25rem;height:1.25rem;min-width:1.25rem;border-radius:50%;min-height:1.25rem;align-items:center;justify-content:center;border:1px solid hsl(213,8%,74%);transition:box-shadow .25s cubic-bezier(0,0,.2,1),border-color .25s cubic-bezier(0,0,.2,1);box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-radio-button-indicator:after{opacity:0;content:\"\";display:block;border-radius:50%;transform:scale(0);width:.625rem;height:.625rem;background-color:var(--bb-radio-indicator-color);transition:transform .12s cubic-bezier(0,0,.2,1),opacity .12s cubic-bezier(0,0,.2,1)}.bb-radio-button-text{color:#111;font-size:1rem;font-weight:400;padding-left:.5rem}.bb-radio-button-text>small{display:block;line-height:1.5;font-size:.8125rem;margin-top:.125rem;color:#758795}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
34
34
|
}
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BbRadioButton, decorators: [{
|
|
36
36
|
type: Component,
|
|
37
37
|
args: [{ selector: 'bb-radio-button', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
38
38
|
'class': 'bb-radio-button',
|
|
@@ -57,12 +57,12 @@ export class BbRadioGroup {
|
|
|
57
57
|
onErrorChange(error) {
|
|
58
58
|
this.error = !!error;
|
|
59
59
|
}
|
|
60
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
61
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.
|
|
60
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BbRadioGroup, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
61
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: BbRadioGroup, isStandalone: true, selector: "bb-radio-group", inputs: { label: "label", disabled: ["disabled", "disabled", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], required: ["required", "required", booleanAttribute], grouped: ["grouped", "grouped", booleanAttribute], inline: ["inline", "inline", booleanAttribute], hideErrors: ["hideErrors", "hideErrors", booleanAttribute], value: "value" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.disabled": "disabled", "class.readonly": "readonly", "class.grouped": "grouped", "class.required": "required", "class.inline": "inline", "class.error": "error" }, classAttribute: "bb-radio-group" }, providers: [
|
|
62
62
|
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbRadioGroup), multi: true }
|
|
63
63
|
], ngImport: i0, template: "@if (label; as labelContent) {\n <label class=\"bb-radio-group-label\">\n <ng-template [bbTemplate]=\"labelContent\">{{ labelContent }}</ng-template>\n </label>\n}\n\n<div class=\"bb-radio-group-items\">\n <ng-content select=\"bb-radio-button\"></ng-content>\n</div>\n\n<!-- The error component. -->\n@if (!hideErrors) {\n <bb-form-error (errorChange)=\"onErrorChange($event)\"></bb-form-error>\n}\n", styles: [".bb-radio-group{display:block}.bb-radio-group.grouped{margin-bottom:1.5rem}.bb-radio-group.readonly{pointer-events:none}.bb-radio-group.error>.bb-radio-group-label{color:#c23934}.bb-radio-group.required>.bb-radio-group-label:after{content:\"*\";font-size:.75rem;vertical-align:top;color:var(--bb-form-label-required-color)}.bb-radio-group-label{display:block;margin-bottom:.25rem;color:var(--bb-form-label-color, #525252);font-weight:var(--bb-form-label-font-weight, 400);font-size:var(--bb-form-label-font-size, .875rem)}.bb-radio-group-items{display:flex;flex-direction:column}.bb-radio-group-items:not(:empty){margin-bottom:.25rem}.bb-radio-group-items>*{margin-bottom:.25rem}@media only screen and (min-width: 768px){.bb-radio-group.inline>.bb-radio-group-items{flex-wrap:wrap;flex-direction:row}.bb-radio-group.inline>.bb-radio-group-items>*:not(:last-child){margin-right:.75rem}}\n"], dependencies: [{ kind: "directive", type: BbTemplate, selector: "[bbTemplate]", inputs: ["bbTemplate"] }, { kind: "component", type: BbFormError, selector: "bb-form-error", inputs: ["control"], outputs: ["errorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
64
64
|
}
|
|
65
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BbRadioGroup, decorators: [{
|
|
66
66
|
type: Component,
|
|
67
67
|
args: [{ selector: 'bb-radio-group', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
|
68
68
|
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbRadioGroup), multi: true }
|
|
@@ -5,10 +5,10 @@ export class BbSpinner {
|
|
|
5
5
|
color = 'hsla(212, 80%, 42%, 1)';
|
|
6
6
|
alt = 'Loading...';
|
|
7
7
|
disabled = false;
|
|
8
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
9
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BbSpinner, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: BbSpinner, isStandalone: true, selector: "bb-spinner", inputs: { color: "color", alt: "alt", disabled: ["disabled", "disabled", booleanAttribute] }, host: { classAttribute: "bb-spinner" }, ngImport: i0, template: "<!--\n The spinner element.\n\n This element contains a circle with a 25% bar that spins\n indefinitely. The border color can be set via the \"color\"\n property.\n-->\n<div class=\"bb-spinner-container\">\n <div [style.border-left-color]=\"color\"\n [class.disabled]=\"disabled\"\n class=\"bb-spinner-loader\"\n aria-live=\"assertive\"\n role=\"alert\">\n {{ alt }}\n </div>\n <ng-content select=\"img\"></ng-content>\n</div>\n\n<!--\n The content of the spinner.\n\n This element contains the content of the spinner. The user\n can set the content inside the tag.\n-->\n<span class=\"bb-spinner-content\">\n <ng-content></ng-content>\n</span>\n", styles: [".bb-spinner{padding:1.5rem 0;text-align:center;align-items:center;display:inline-flex;flex-direction:column;justify-content:center;color:#666}.bb-spinner.block{display:flex}.bb-spinner.inverse .bb-spinner-loader{border-color:#fff3}.bb-spinner.inverse .bb-spinner-content{color:#fff}.bb-spinner.small .bb-spinner-loader,.bb-spinner.small .bb-spinner-loader:after{width:1.5rem;height:1.5rem;min-width:1.5rem;min-height:1.5rem}.bb-spinner.small .bb-spinner-loader{border-width:.125rem}.bb-spinner.small .bb-spinner-content{font-size:.75rem}.bb-spinner.medium .bb-spinner-loader,.bb-spinner.medium .bb-spinner-loader:after{width:3rem;height:3rem;min-width:3rem;min-height:3rem}.bb-spinner.medium .bb-spinner-loader{border-width:.1875rem}.bb-spinner.medium .bb-spinner-content{font-size:.875rem}.bb-spinner.large .bb-spinner-loader,.bb-spinner.large .bb-spinner-loader:after{width:4.5rem;height:4.5rem;min-width:4.5rem;min-height:4.5rem}.bb-spinner.large .bb-spinner-loader{border-width:.25rem}.bb-spinner.large .bb-spinner-content{font-size:1rem}.bb-spinner.horizontal{text-align:left;flex-direction:row}.bb-spinner.horizontal .bb-spinner-content:not(:empty){margin-top:0;margin-left:.75rem}.bb-spinner.vertical{text-align:center;flex-direction:column}.bb-spinner.vertical .bb-spinner-content:not(:empty){margin-left:0;margin-top:.75rem}.bb-spinner-container{display:flex;position:relative}.bb-spinner-container>img{top:20%;left:20%;width:60%;height:60%;position:absolute}.bb-spinner-loader{margin:0;padding:0;overflow:hidden;text-indent:100%;color:transparent;position:relative;display:inline-block;vertical-align:middle;border:.1875rem solid #f2f4f6;animation:1s linear infinite spin}.bb-spinner-loader,.bb-spinner-loader:after{width:3rem;height:3rem;min-width:3rem;min-height:3rem;border-radius:50%}.bb-spinner-loader.disabled{cursor:default;-webkit-user-select:none;user-select:none;pointer-events:none;animation-play-state:paused}.bb-spinner-content:not(:empty){font-weight:400;font-size:.875rem;margin-top:.75rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BbSpinner, decorators: [{
|
|
12
12
|
type: Component,
|
|
13
13
|
args: [{ selector: 'bb-spinner', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-spinner' }, preserveWhitespaces: false, standalone: true, template: "<!--\n The spinner element.\n\n This element contains a circle with a 25% bar that spins\n indefinitely. The border color can be set via the \"color\"\n property.\n-->\n<div class=\"bb-spinner-container\">\n <div [style.border-left-color]=\"color\"\n [class.disabled]=\"disabled\"\n class=\"bb-spinner-loader\"\n aria-live=\"assertive\"\n role=\"alert\">\n {{ alt }}\n </div>\n <ng-content select=\"img\"></ng-content>\n</div>\n\n<!--\n The content of the spinner.\n\n This element contains the content of the spinner. The user\n can set the content inside the tag.\n-->\n<span class=\"bb-spinner-content\">\n <ng-content></ng-content>\n</span>\n", styles: [".bb-spinner{padding:1.5rem 0;text-align:center;align-items:center;display:inline-flex;flex-direction:column;justify-content:center;color:#666}.bb-spinner.block{display:flex}.bb-spinner.inverse .bb-spinner-loader{border-color:#fff3}.bb-spinner.inverse .bb-spinner-content{color:#fff}.bb-spinner.small .bb-spinner-loader,.bb-spinner.small .bb-spinner-loader:after{width:1.5rem;height:1.5rem;min-width:1.5rem;min-height:1.5rem}.bb-spinner.small .bb-spinner-loader{border-width:.125rem}.bb-spinner.small .bb-spinner-content{font-size:.75rem}.bb-spinner.medium .bb-spinner-loader,.bb-spinner.medium .bb-spinner-loader:after{width:3rem;height:3rem;min-width:3rem;min-height:3rem}.bb-spinner.medium .bb-spinner-loader{border-width:.1875rem}.bb-spinner.medium .bb-spinner-content{font-size:.875rem}.bb-spinner.large .bb-spinner-loader,.bb-spinner.large .bb-spinner-loader:after{width:4.5rem;height:4.5rem;min-width:4.5rem;min-height:4.5rem}.bb-spinner.large .bb-spinner-loader{border-width:.25rem}.bb-spinner.large .bb-spinner-content{font-size:1rem}.bb-spinner.horizontal{text-align:left;flex-direction:row}.bb-spinner.horizontal .bb-spinner-content:not(:empty){margin-top:0;margin-left:.75rem}.bb-spinner.vertical{text-align:center;flex-direction:column}.bb-spinner.vertical .bb-spinner-content:not(:empty){margin-left:0;margin-top:.75rem}.bb-spinner-container{display:flex;position:relative}.bb-spinner-container>img{top:20%;left:20%;width:60%;height:60%;position:absolute}.bb-spinner-loader{margin:0;padding:0;overflow:hidden;text-indent:100%;color:transparent;position:relative;display:inline-block;vertical-align:middle;border:.1875rem solid #f2f4f6;animation:1s linear infinite spin}.bb-spinner-loader,.bb-spinner-loader:after{width:3rem;height:3rem;min-width:3rem;min-height:3rem;border-radius:50%}.bb-spinner-loader.disabled{cursor:default;-webkit-user-select:none;user-select:none;pointer-events:none;animation-play-state:paused}.bb-spinner-content:not(:empty){font-weight:400;font-size:.875rem;margin-top:.75rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
|
|
14
14
|
}], propDecorators: { color: [{
|
|
@@ -4,6 +4,7 @@ export * from './lib/directives/input.directive';
|
|
|
4
4
|
export * from './lib/directives/addon.directive';
|
|
5
5
|
export * from './lib/directives/image-upload.directive';
|
|
6
6
|
export * from './lib/directives/extra-error-controls.directive';
|
|
7
|
+
export * from './lib/directives/file-drop.directive';
|
|
7
8
|
export * from './lib/pipes/file-size.pipe';
|
|
8
9
|
export * from './lib/pipes/file-image.pipe';
|
|
9
10
|
export * from './lib/pipes/relative-time.pipe';
|
|
@@ -26,4 +27,4 @@ export * from './lib/date-picker/date-picker.component';
|
|
|
26
27
|
export * from './lib/elements.interfaces';
|
|
27
28
|
export * from './lib/elements.config';
|
|
28
29
|
export * from './lib/elements.module';
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHlDQUF5QyxDQUFDO0FBRXhELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9mb3JtLXN1Ym1pdC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9mb3JtLXN1Ym1pdHRlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9pbnB1dC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9hZGRvbi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9pbWFnZS11cGxvYWQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZXh0cmEtZXJyb3ItY29udHJvbHMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZmlsZS1kcm9wLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9maWxlLXNpemUucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9maWxlLWltYWdlLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvcmVsYXRpdmUtdGltZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL2RhdGUucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ljb24vaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybS1jb250cm9sL2Zvcm0tY29udHJvbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jaGVja2JveC1ncm91cC9jaGVja2JveC1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmFkaW8tZ3JvdXAvcmFkaW8tZ3JvdXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JhZGlvLWJ1dHRvbi9yYWRpby1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL211bHRpLWZpbGUtY29udHJvbC9tdWx0aS1maWxlLWNvbnRyb2wuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGUtcGlja2VyL2ZpbGUtcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbWFnZS1waWNrZXIvaW1hZ2UtcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbGVtZW50cy5pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VsZW1lbnRzLmNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbGVtZW50cy5tb2R1bGUnO1xuIl19
|
|
@@ -17,11 +17,11 @@ export class HttpModule {
|
|
|
17
17
|
]
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
21
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.
|
|
22
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.
|
|
20
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: HttpModule, deps: [{ token: HttpModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
21
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: HttpModule });
|
|
22
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: HttpModule });
|
|
23
23
|
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: HttpModule, decorators: [{
|
|
25
25
|
type: NgModule
|
|
26
26
|
}], ctorParameters: () => [{ type: HttpModule, decorators: [{
|
|
27
27
|
type: Optional
|
|
@@ -51,10 +51,10 @@ export class BaseUrlInterceptor {
|
|
|
51
51
|
}
|
|
52
52
|
return null;
|
|
53
53
|
}
|
|
54
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
55
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.
|
|
54
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BaseUrlInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
55
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BaseUrlInterceptor });
|
|
56
56
|
}
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BaseUrlInterceptor, decorators: [{
|
|
58
58
|
type: Injectable
|
|
59
59
|
}] });
|
|
60
60
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS11cmwuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2h0dHAvc3JjL2xpYi9pbnRlcmNlcHRvcnMvYmFzZS11cmwuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFdBQVcsRUFBeUMsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RixPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBS2pELE1BQU0sT0FBTyxrQkFBa0I7SUFFM0IsZ0JBQWdCO0lBQ0MsT0FBTyxHQUFlLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxQyxXQUFXLEdBQVcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTNELFdBQVc7SUFDTSxRQUFRLEdBQXNCLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQ3BELE9BQU8sR0FBVyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUN2QyxhQUFhLEdBQVcsSUFBSSxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxXQUFXLENBQUMsQ0FBQztJQUVsRixTQUFTLENBQUMsT0FBNkIsRUFBRSxJQUFpQjtRQUN0RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDO1FBRXRDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsR0FBVztRQUNsQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDWCxPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDZixPQUFPLFFBQVEsQ0FBQztZQUNwQixDQUFDO1lBRUQsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsRCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRU8sa0JBQWtCLENBQUMsR0FBMEI7UUFDakQsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMxQixPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUM7UUFFRCxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDckMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLE9BQU8sSUFBSSxJQUFJO1lBQ3JDLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRU8sUUFBUSxDQUFDLEtBQWE7UUFDMUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDMUUsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sT0FBTyxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNoRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUTtpQkFDMUIsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7aUJBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQixPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsbURBQW1ELEtBQUssb0RBQW9ELFNBQVMsSUFBSSxDQUFDLENBQUM7UUFDL0ksQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7dUdBNURRLGtCQUFrQjsyR0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIVFRQX0NPTkZJRywgSHR0cENvbmZpZ0FsaWFzLCBIdHRwQ29uZmlnUGxhdGZvcm1Vcmx9IGZyb20gJy4uL2h0dHAuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0h0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge2luamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwQ29uZmlnfSBmcm9tICcuLi9jbGFzc2VzL2h0dHAuY29uZmlnJztcbmltcG9ydCB7aXNQbGF0Zm9ybVNlcnZlcn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZGVjbGFyZSBsZXQgbmdEZXZNb2RlO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQmFzZVVybEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcblxuICAgIC8vIERlcGVuZGVuY2llcy5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb25maWc6IEh0dHBDb25maWcgPSBpbmplY3QoSFRUUF9DT05GSUcpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3BsYXRmb3JtSWQ6IE9iamVjdCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgICAvLyBBbGlhc2VzLlxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2FsaWFzZXM6IEh0dHBDb25maWdBbGlhc1tdID0gdGhpcy5fY29uZmlnPy5hbGlhc2VzO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ByZWZpeDogc3RyaW5nID0gdGhpcy5fY29uZmlnPy5wcmVmaXg7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZXh0cmFjdFJlZ2V4OiBSZWdFeHAgPSBuZXcgUmVnRXhwKGBcXFxcJHt0aGlzLl9wcmVmaXh9W2EtekEtWl0rYCk7XG5cbiAgICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0VXJsQmFzZWRPbkFsaWFzKHJlcXVlc3QudXJsKTtcbiAgICAgICAgY29uc3QgbW9kaWZpZWQgPSByZXF1ZXN0LmNsb25lKHt1cmx9KTtcblxuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUobW9kaWZpZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VXJsQmFzZWRPbkFsaWFzKHVybDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IG1hdGNoZXMgPSB0aGlzLl9leHRyYWN0UmVnZXguZXhlYyh1cmwpO1xuICAgICAgICBpZiAoIW1hdGNoZXMpIHtcbiAgICAgICAgICAgIHJldHVybiB1cmw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWF0Y2hlcy5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhbGlhcyA9IHRoaXMuZ2V0QWxpYXMoY3VycmVudCk7XG4gICAgICAgICAgICBjb25zdCBzdHJpbmdBbGlhcyA9IHRoaXMuY29udmVydFVybFRvU3RyaW5nKGFsaWFzPy51cmwpO1xuICAgICAgICAgICAgaWYgKCFzdHJpbmdBbGlhcykge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzLnJlcGxhY2UoY3VycmVudCwgc3RyaW5nQWxpYXMpO1xuICAgICAgICB9LCB1cmwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29udmVydFVybFRvU3RyaW5nKHVybDogSHR0cENvbmZpZ1BsYXRmb3JtVXJsKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdXJsID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHVybDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpc1BsYXRmb3JtU2VydmVyKHRoaXMuX3BsYXRmb3JtSWQpXG4gICAgICAgICAgICA/IHVybD8uc2VydmVyID8/IHVybD8uYnJvd3NlciA/PyBudWxsXG4gICAgICAgICAgICA6IHVybD8uYnJvd3NlciA/PyBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWxpYXModmFsdWU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBhbGlhcyA9IHZhbHVlLnJlcGxhY2UodGhpcy5fcHJlZml4LCAnJyk7XG4gICAgICAgIGNvbnN0IGZldGNoZWQgPSB0aGlzLl9hbGlhc2VzPy5maW5kKGl0ZW0gPT4gaXRlbS5hbGlhcyA9PT0gYWxpYXMpID8/IG51bGw7XG4gICAgICAgIGlmIChmZXRjaGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmV0Y2hlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZSA9IHRoaXMuX2FsaWFzZXNcbiAgICAgICAgICAgICAgICAubWFwKGl0ZW0gPT4gYFxcJCR7aXRlbT8uYWxpYXN9YClcbiAgICAgICAgICAgICAgICAuam9pbignLCAnKTtcbiAgICAgICAgICAgIGNvbnNvbGU/Lndhcm4/LihgW0h0dHBNb2R1bGVdOiBVc2VkIGFuIGludmFsaWQgSFRUUC1hbGlhcyBuYW1lZCBcIiR7dmFsdWV9XCIsIHNraXBwZWQgcGFyc2luZzsgQXZhaWxhYmxlIGFsaWFzZXMgaXMgb25lIG9mICgke2F2YWlsYWJsZX0pLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG59XG4iXX0=
|
|
@@ -22,10 +22,10 @@ export class ErrorInterceptor {
|
|
|
22
22
|
return throwError(() => error);
|
|
23
23
|
}));
|
|
24
24
|
}
|
|
25
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
26
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.
|
|
25
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ErrorInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
26
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ErrorInterceptor });
|
|
27
27
|
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ErrorInterceptor, decorators: [{
|
|
29
29
|
type: Injectable
|
|
30
30
|
}] });
|
|
31
31
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2h0dHAvc3JjL2xpYi9pbnRlcmNlcHRvcnMvZXJyb3IuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUE0QyxNQUFNLHNCQUFzQixDQUFDO0FBRWxHLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDL0MsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7O0FBR2hDLE1BQU0sT0FBTyxnQkFBZ0I7SUFFekIsZ0JBQWdCO0lBQ0MsT0FBTyxHQUFlLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUzRCxTQUFTO0lBQ1EsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLElBQUksS0FBSyxDQUFDO0lBRXhFLFNBQVMsQ0FBQyxPQUE2QixFQUFFLElBQWlCO1FBQ3RELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzVCLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNmLDRDQUE0QztZQUM1QyxxREFBcUQ7WUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksS0FBSyxZQUFZLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNwQyxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQyxDQUFDO1lBRUQscURBQXFEO1lBQ3JELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO3VHQXRCUSxnQkFBZ0I7MkdBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cEVycm9yUmVzcG9uc2UsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0h0dHBDb25maWd9IGZyb20gJy4uL2NsYXNzZXMvaHR0cC5jb25maWcnO1xuaW1wb3J0IHtpbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwRXJyb3J9IGZyb20gJy4uL2NsYXNzZXMvaHR0cC5lcnJvcic7XG5pbXBvcnQge0hUVFBfQ09ORklHfSBmcm9tICcuLi9odHRwLmludGVyZmFjZXMnO1xuaW1wb3J0IHtjYXRjaEVycm9yfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge3Rocm93RXJyb3J9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRXJyb3JJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG5cbiAgICAvLyBEZXBlbmRlbmNpZXMuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY29uZmlnOiBIdHRwQ29uZmlnID0gaW5qZWN0KEhUVFBfQ09ORklHKTtcblxuICAgIC8vIFN0YXRlLlxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rpc2FibGVkID0gdGhpcy5fY29uZmlnPy5kaXNhYmxlRXJyb3JQYXJzaW5nID8/IGZhbHNlO1xuXG4gICAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBuZXh0OiBIdHRwSGFuZGxlcikge1xuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCkucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYSBtYXRjaGluZyBodHRwIGVycm9yIHJlc3BvbnNlXG4gICAgICAgICAgICAgICAgLy8gcmUtbWFwIGl0IHdpdGggb3VyIGN1c3RvbSBjbGFzcyAoaWYgbm90IGRpc2FibGVkKS5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2Rpc2FibGVkICYmIGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gbmV3IEh0dHBFcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IHBhcnNlZCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gV2UgZGlkIG5vdCBtYXRjaCBhbnl0aGluZywganVzdCByZS10cm93IHRoZSBlcnJvci5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxufVxuIl19
|
|
@@ -153,10 +153,10 @@ export class Exif {
|
|
|
153
153
|
}
|
|
154
154
|
return -1;
|
|
155
155
|
};
|
|
156
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
157
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.
|
|
156
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: Exif, deps: [{ token: i1.Platform }, { token: i2.FileLoader }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
157
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: Exif, providedIn: 'root' });
|
|
158
158
|
}
|
|
159
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
159
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: Exif, decorators: [{
|
|
160
160
|
type: Injectable,
|
|
161
161
|
args: [{
|
|
162
162
|
providedIn: 'root'
|
|
@@ -73,10 +73,10 @@ export class FileLoader {
|
|
|
73
73
|
anyBlob.name = fileName;
|
|
74
74
|
return anyBlob;
|
|
75
75
|
};
|
|
76
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
77
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.
|
|
76
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FileLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
77
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FileLoader, providedIn: 'root' });
|
|
78
78
|
}
|
|
79
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FileLoader, decorators: [{
|
|
80
80
|
type: Injectable,
|
|
81
81
|
args: [{
|
|
82
82
|
providedIn: 'root'
|