@villedemontreal/angular-ui 15.3.3 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{esm2020 → esm2022}/lib/alert/alert.component.mjs +16 -16
- package/{esm2020 → esm2022}/lib/alert/module.mjs +13 -13
- package/{esm2020 → esm2022}/lib/avatar/avatar.component.mjs +7 -7
- package/{esm2020 → esm2022}/lib/avatar/module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/badge/badge.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/badge/module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/bao.module.mjs +57 -57
- package/{esm2020 → esm2022}/lib/breadcrumb/breadcrumb.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/breadcrumb/module.mjs +5 -5
- package/esm2022/lib/button/button.component.mjs +100 -0
- package/{esm2020 → esm2022}/lib/button/module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/card/card.component.mjs +16 -16
- package/{esm2020 → esm2022}/lib/card/module.mjs +13 -13
- package/{esm2020 → esm2022}/lib/checkbox/checkbox-group.component.mjs +4 -4
- package/esm2022/lib/checkbox/checkbox.component.mjs +304 -0
- package/{esm2020 → esm2022}/lib/checkbox/module.mjs +9 -9
- package/{esm2020 → esm2022}/lib/common-components/error-text/errorText.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/common-components/guiding-text/guidingText.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/common-components/label-text/labelText.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/common-components/module.mjs +11 -11
- package/{esm2020 → esm2022}/lib/common-components/title-text/titleText.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/dropdown-menu/dropdown-menu.component.mjs +22 -22
- package/{esm2020 → esm2022}/lib/dropdown-menu/module.mjs +17 -17
- package/esm2022/lib/file/file-input.component.mjs +319 -0
- package/{esm2020 → esm2022}/lib/file/file-intl.mjs +7 -7
- package/{esm2020 → esm2022}/lib/file/file-preview.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/file/module.mjs +19 -19
- package/{esm2020 → esm2022}/lib/header-info/header-info.component.mjs +19 -19
- package/{esm2020 → esm2022}/lib/header-info/module.mjs +15 -15
- package/{esm2020 → esm2022}/lib/hyperlink/hyperlink.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/hyperlink/module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/icon/bao-icon-registry.mjs +4 -4
- package/{esm2020 → esm2022}/lib/icon/icon.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/icon/module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/list/list.component.mjs +16 -16
- package/{esm2020 → esm2022}/lib/list/module.mjs +13 -13
- package/{esm2020 → esm2022}/lib/modal/modal-container.mjs +7 -7
- package/{esm2020 → esm2022}/lib/modal/modal-directives.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modal/modal.mjs +7 -7
- package/{esm2020 → esm2022}/lib/modal/module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/radio/module.mjs +19 -19
- package/{esm2020 → esm2022}/lib/radio/radio-group.component.mjs +11 -11
- package/{esm2020 → esm2022}/lib/radio/radio.component.mjs +13 -13
- package/esm2022/lib/snack-bar/module.mjs +51 -0
- package/{esm2020 → esm2022}/lib/snack-bar/simple-snack-bar.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/snack-bar/snack-bar-container.mjs +10 -5
- package/{esm2020 → esm2022}/lib/snack-bar/snack-bar.mjs +4 -4
- package/{esm2020 → esm2022}/lib/summary/list-summary.component.mjs +7 -7
- package/{esm2020 → esm2022}/lib/summary/module.mjs +11 -11
- package/{esm2020 → esm2022}/lib/summary/summary.component.mjs +7 -7
- package/{esm2020 → esm2022}/lib/system-header/module.mjs +9 -9
- package/esm2022/lib/system-header/system-header.component.mjs +130 -0
- package/{esm2020 → esm2022}/lib/tabs/module.mjs +11 -11
- package/{esm2020 → esm2022}/lib/tabs/tabs.component.mjs +13 -13
- package/{esm2020 → esm2022}/lib/tag/module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/tag/tag.component.mjs +4 -4
- package/{fesm2020 → fesm2022}/villedemontreal-angular-ui.mjs +507 -500
- package/fesm2022/villedemontreal-angular-ui.mjs.map +1 -0
- package/lib/alert/alert.component.d.ts +1 -1
- package/lib/avatar/avatar.component.d.ts +1 -1
- package/lib/badge/badge.component.d.ts +1 -1
- package/lib/button/button.component.d.ts +4 -4
- package/lib/card/card.component.d.ts +1 -1
- package/lib/checkbox/checkbox-group.component.d.ts +1 -1
- package/lib/checkbox/checkbox.component.d.ts +1 -1
- package/lib/common-components/label-text/labelText.component.d.ts +1 -1
- package/lib/dropdown-menu/dropdown-menu.component.d.ts +2 -2
- package/lib/file/file-input.component.d.ts +1 -1
- package/lib/file/file-preview.component.d.ts +1 -1
- package/lib/header-info/header-info.component.d.ts +1 -1
- package/lib/hyperlink/hyperlink.component.d.ts +1 -1
- package/lib/icon/icon.component.d.ts +1 -1
- package/lib/modal/modal-directives.d.ts +1 -1
- package/lib/radio/radio-group.component.d.ts +1 -1
- package/lib/radio/radio.component.d.ts +1 -1
- package/lib/summary/summary.component.d.ts +1 -1
- package/lib/system-header/system-header.component.d.ts +4 -3
- package/lib/tabs/tabs.component.d.ts +1 -1
- package/lib/tag/tag.component.d.ts +1 -1
- package/package.json +13 -19
- package/esm2020/lib/button/button.component.mjs +0 -100
- package/esm2020/lib/checkbox/checkbox.component.mjs +0 -304
- package/esm2020/lib/file/file-input.component.mjs +0 -319
- package/esm2020/lib/snack-bar/module.mjs +0 -52
- package/esm2020/lib/system-header/system-header.component.mjs +0 -128
- package/fesm2015/villedemontreal-angular-ui.mjs +0 -6119
- package/fesm2015/villedemontreal-angular-ui.mjs.map +0 -1
- package/fesm2020/villedemontreal-angular-ui.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/alert/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/avatar/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/badge/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/breadcrumb/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/button/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/card/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/checkbox/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common-components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/breakpoints.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/colors.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dropdown-menu/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/file/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/header-info/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/hyperlink/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/icon/icons-dictionary.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/icon/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/list/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modal/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modal/modal-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modal/modal-ref.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/radio/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/enum/display-mode.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/snack-bar/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/snack-bar/snack-bar-animations.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/snack-bar/snack-bar-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/snack-bar/snack-bar-ref.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/summary/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/system-header/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/tabs/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/tag/index.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/villedemontreal-angular-ui.mjs +0 -0
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023 Ville de Montreal. All rights reserved.
|
|
3
|
+
* Licensed under the MIT license.
|
|
4
|
+
* See LICENSE file in the project root for full license information.
|
|
5
|
+
*/
|
|
6
|
+
import { Component, ContentChildren, Directive, EventEmitter, forwardRef, HostListener, Input, Output, ViewChild, ViewChildren, ViewEncapsulation } from '@angular/core';
|
|
7
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
8
|
+
import { BaoErrorTextComponent } from '../common-components';
|
|
9
|
+
import { BaoFilePreviewComponent } from './file-preview.component';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "./file-intl";
|
|
12
|
+
import * as i2 from "@angular/common";
|
|
13
|
+
import * as i3 from "../common-components/error-text/errorText.component";
|
|
14
|
+
import * as i4 from "../common-components/label-text/labelText.component";
|
|
15
|
+
import * as i5 from "../button/button.component";
|
|
16
|
+
/**
|
|
17
|
+
* Unique number to generate a unique ID
|
|
18
|
+
*/
|
|
19
|
+
let fileInputUniqueId = 0;
|
|
20
|
+
let fileTextUniqueId = 0;
|
|
21
|
+
export class BaoFileInputComponent {
|
|
22
|
+
constructor(intl, elementRef, renderer, cdr) {
|
|
23
|
+
this.intl = intl;
|
|
24
|
+
this.elementRef = elementRef;
|
|
25
|
+
this.renderer = renderer;
|
|
26
|
+
this.cdr = cdr;
|
|
27
|
+
/**
|
|
28
|
+
* Size of the file input label
|
|
29
|
+
*/
|
|
30
|
+
this.size = 'medium';
|
|
31
|
+
/**
|
|
32
|
+
* Maximum size accepted for uploaded files
|
|
33
|
+
*/
|
|
34
|
+
this.maximalFileSize = -1;
|
|
35
|
+
/**
|
|
36
|
+
* Accepted types of files
|
|
37
|
+
*/
|
|
38
|
+
this.acceptedMIMETypes = [];
|
|
39
|
+
/**
|
|
40
|
+
* Is field required
|
|
41
|
+
*/
|
|
42
|
+
this.required = false;
|
|
43
|
+
/**
|
|
44
|
+
* Is field disabled
|
|
45
|
+
*/
|
|
46
|
+
this.disabled = false;
|
|
47
|
+
/**
|
|
48
|
+
* File selected to be uploaded
|
|
49
|
+
*/
|
|
50
|
+
this.uploadedFile = new EventEmitter();
|
|
51
|
+
this.insertDefaultInstructions = false;
|
|
52
|
+
this.isFileTooBig = false;
|
|
53
|
+
this.isFileTypeInvalid = false;
|
|
54
|
+
/**
|
|
55
|
+
* Saves the registerOnChange function so the component can call it whenever it wants.
|
|
56
|
+
*/
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars
|
|
58
|
+
this.propagateChange = (_) => { };
|
|
59
|
+
/**
|
|
60
|
+
* Saves the registerOnTouched function so the component can call it whenever it wants.
|
|
61
|
+
*/
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
63
|
+
this.propagateTouched = () => { };
|
|
64
|
+
this._intlChanges = intl.changes.subscribe(() => this.cdr.markForCheck());
|
|
65
|
+
}
|
|
66
|
+
get nativeElement() {
|
|
67
|
+
return this.elementRef.nativeElement;
|
|
68
|
+
}
|
|
69
|
+
enterKeyEvent() {
|
|
70
|
+
if (document.activeElement.id === this.inputId) {
|
|
71
|
+
document.getElementById(this.inputId).click();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
tabKeyEvent() {
|
|
75
|
+
if (document.activeElement.id === this.inputId) {
|
|
76
|
+
this.renderer.addClass(this.dropzoneElement.nativeElement, 'dropzone-focus');
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
shiftTabKeyEvent() {
|
|
80
|
+
if (document.activeElement.id === this.inputId) {
|
|
81
|
+
this.renderer.addClass(this.dropzoneElement.nativeElement, 'dropzone-focus');
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
ngAfterContentInit() {
|
|
85
|
+
this._errorForm.changes.subscribe(() => this.setErrorTextsAttribute());
|
|
86
|
+
if (!this.inputId) {
|
|
87
|
+
this.inputId = `file-input-${fileInputUniqueId++}`;
|
|
88
|
+
}
|
|
89
|
+
// If no content was added for dropzone instructions, add default text.
|
|
90
|
+
const dropzoneElement = Array.from(this.nativeElement.children).find((el) => el.className === 'file-drop-zone');
|
|
91
|
+
if (!Array.from(dropzoneElement.children).find(el => el.localName === 'bao-file-dropzone-instructions')) {
|
|
92
|
+
this.insertDefaultInstructions = true;
|
|
93
|
+
}
|
|
94
|
+
this.setDescribedByAttribute();
|
|
95
|
+
this._files.changes.subscribe((files) => {
|
|
96
|
+
const filesList = files.map((el) => el.file);
|
|
97
|
+
this.setValue(filesList);
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
ngAfterViewInit() {
|
|
101
|
+
this._errorTexts.changes.subscribe(() => this.setErrorTextsAttribute());
|
|
102
|
+
}
|
|
103
|
+
ngOnDestroy() {
|
|
104
|
+
this._intlChanges.unsubscribe();
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Implements ControlValueAccessor interface
|
|
108
|
+
*/
|
|
109
|
+
writeValue(obj) {
|
|
110
|
+
this._value = obj;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Implements ControlValueAccessor interface
|
|
114
|
+
*/
|
|
115
|
+
registerOnChange(fn) {
|
|
116
|
+
this.propagateChange = fn;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Implements ControlValueAccessor interface
|
|
120
|
+
*/
|
|
121
|
+
registerOnTouched(fn) {
|
|
122
|
+
this.propagateTouched = fn;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Implements ControlValueAccessor interface
|
|
126
|
+
*/
|
|
127
|
+
setDisabledState(isDisabled) {
|
|
128
|
+
this.disabled = isDisabled;
|
|
129
|
+
}
|
|
130
|
+
uploadFile(file) {
|
|
131
|
+
if (!this.disabled) {
|
|
132
|
+
this.isFileTypeInvalid = false;
|
|
133
|
+
this.isFileTooBig = false;
|
|
134
|
+
this.uploader.nativeElement.value = '';
|
|
135
|
+
if (this.maximalFileSize > 0 && file.size > this.maximalFileSize) {
|
|
136
|
+
this.isFileTooBig = true;
|
|
137
|
+
}
|
|
138
|
+
if (this.acceptedMIMETypes.length > 0 &&
|
|
139
|
+
this.acceptedMIMETypes.indexOf(file.type) < 0) {
|
|
140
|
+
this.isFileTypeInvalid = true;
|
|
141
|
+
}
|
|
142
|
+
if (!this.isFileTooBig && !this.isFileTypeInvalid) {
|
|
143
|
+
this.uploadedFile.emit(file);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
setValue(value) {
|
|
148
|
+
this._value = value;
|
|
149
|
+
this.propagateChange(this._value);
|
|
150
|
+
this.propagateTouched();
|
|
151
|
+
}
|
|
152
|
+
setDescribedByAttribute() {
|
|
153
|
+
const helperText = Array.from(this.nativeElement.children).find((el) => el.localName === 'bao-guiding-text');
|
|
154
|
+
if (helperText) {
|
|
155
|
+
this._helperTextId = `bao-guiding-text-${fileTextUniqueId++}`;
|
|
156
|
+
this.renderer.setAttribute(helperText.firstElementChild, 'id', this._helperTextId);
|
|
157
|
+
const inputElement = Array.from(this.nativeElement.children)
|
|
158
|
+
.find((el) => el.className == 'file-drop-zone')
|
|
159
|
+
.children.item(1);
|
|
160
|
+
this.renderer.setAttribute(inputElement, 'aria-describedby', this._helperTextId);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
setErrorTextsAttribute() {
|
|
164
|
+
const textsIds = [];
|
|
165
|
+
const errors = Array.from(this.nativeElement.children).filter((el) => el.localName == 'bao-error');
|
|
166
|
+
errors.forEach((errorText) => {
|
|
167
|
+
const errorTextId = `bao-error-${fileTextUniqueId++}`;
|
|
168
|
+
this.renderer.setAttribute(errorText.firstElementChild, 'id', errorTextId);
|
|
169
|
+
textsIds.push(errorTextId);
|
|
170
|
+
});
|
|
171
|
+
const inputElement = Array.from(this.nativeElement.children)
|
|
172
|
+
.find((el) => el.classList.contains('file-drop-zone'))
|
|
173
|
+
.children.item(1);
|
|
174
|
+
if (this._helperTextId) {
|
|
175
|
+
textsIds.unshift(this._helperTextId);
|
|
176
|
+
}
|
|
177
|
+
this.renderer.setAttribute(inputElement, 'aria-describedby', textsIds.join(' '));
|
|
178
|
+
}
|
|
179
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoFileInputComponent, deps: [{ token: i1.BaoFileIntl }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
180
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: BaoFileInputComponent, selector: "bao-file-input, [bao-file-input]", inputs: { inputId: ["id", "inputId"], label: "label", size: "size", maximalFileSize: "maximalFileSize", acceptedMIMETypes: "acceptedMIMETypes", required: "required", disabled: "disabled" }, outputs: { uploadedFile: "uploadedFile" }, host: { listeners: { "window:keyup.enter": "enterKeyEvent()", "window:keyup.tab": "tabKeyEvent()", "window:keyup.shift.tab": "shiftTabKeyEvent()" }, properties: { "class.bao-file-label-small": "size === \"small\"", "class.bao-file-label-medium": "size === \"medium\"", "class.bao-file-input-disabled": "disabled" }, classAttribute: "bao-file-input" }, providers: [
|
|
181
|
+
{
|
|
182
|
+
provide: NG_VALUE_ACCESSOR,
|
|
183
|
+
// tslint:disable-next-line:no-forward-ref
|
|
184
|
+
useExisting: forwardRef(() => BaoFileInputComponent),
|
|
185
|
+
multi: true
|
|
186
|
+
}
|
|
187
|
+
], queries: [{ propertyName: "_files", predicate: BaoFilePreviewComponent, descendants: true }, { propertyName: "_errorForm", predicate: BaoErrorTextComponent, descendants: true }], viewQueries: [{ propertyName: "uploader", first: true, predicate: ["uploader"], descendants: true }, { propertyName: "dropzoneElement", first: true, predicate: ["dropzone"], descendants: true }, { propertyName: "_errorTexts", predicate: BaoErrorTextComponent, descendants: true }], ngImport: i0, template: "<label bao-label [required]=\"required\" [for]=\"inputId\">{{ label }}</label>\n<ng-content select=\"bao-guiding-text\"></ng-content>\n<div\n baoFileDrop\n class=\"file-drop-zone\"\n (fileDrop)=\"uploadFile($event)\"\n #dropzone\n>\n <button\n bao-button\n type=\"button\"\n displayType=\"utility\"\n level=\"secondary\"\n [disabled]=\"disabled\"\n (click)=\"uploader.click()\"\n aria-hidden=\"true\"\n tabIndex=\"-1\"\n >\n {{ intl.dropzoneButtonLabel }}\n </button>\n <input\n [id]=\"inputId\"\n type=\"file\"\n class=\"sr-only\"\n [disabled]=\"disabled\"\n (change)=\"uploadFile($event.target.files[0])\"\n #uploader\n />\n <ng-container\n ><div #ref>\n <ng-content select=\"bao-file-dropzone-instructions\"></ng-content></div\n ></ng-container>\n <ng-container *ngIf=\"ref.childNodes.length === 0\"\n ><bao-file-dropzone-instructions>{{\n intl.defaultDropzoneInstructions\n }}</bao-file-dropzone-instructions></ng-container\n >\n</div>\n<bao-error *ngIf=\"isFileTooBig\">\n {{ intl.fileTooBigErrorMessage }}\n</bao-error>\n<bao-error *ngIf=\"isFileTypeInvalid\">\n {{ intl.invalidFileTypeErrorMessage }}\n</bao-error>\n<ng-content select=\"bao-error\"></ng-content>\n<ng-content></ng-content>\n", styles: ["bao-file-input{width:100%;display:inline-flex;flex-direction:column}bao-file-input>ul{padding:0;margin:0}bao-file-input .bao-label>span{font-size:inherit;font-weight:inherit}bao-file-input.bao-file-label-small label{font-weight:700;font-size:.875rem;line-height:1.25rem}bao-file-input.bao-file-label-medium label{font-weight:700;font-size:1rem;line-height:1.5rem}bao-file-input .bao-guiding-text{margin-bottom:.5rem}bao-file-input .file-drop-zone{padding:.5rem;background-color:#fff;border-radius:.25rem;border-style:dashed;border-color:#ced4da;border-width:1px;display:inline-flex;align-items:center}bao-file-input .file-drop-zone:focus-within.dropzone-focus{box-shadow:0 0 0 .1875rem #98bcde;background-color:#eefaf8}bao-file-input .file-drop-zone>.bao-button{margin-right:.5rem}bao-file-input .file-drop-zone.drag-over{background-color:#eefaf8;border-color:#097d6c;cursor:drag}bao-file-input .file-drop-zone.drag-over>.bao-button{background-color:#eefaf8}bao-file-input.bao-file-input-disabled .file-drop-zone{background-color:#f8f9fa;border-color:#ced4da}bao-file-input.bao-file-input-disabled .file-drop-zone .bao-button{background-color:#f8f9fa}bao-file-input.bao-file-input-disabled .file-drop-zone .bao-button:hover{background-color:#f8f9fa}bao-file-input .bao-file-preview:first-child{margin-top:1rem}bao-file-input .bao-error{margin-top:.5rem}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(function () { return i3.BaoErrorTextComponent; }), selector: "bao-error, [bao-error]" }, { kind: "component", type: i0.forwardRef(function () { return i4.BaoLabelTextComponent; }), selector: "bao-label, [bao-label]", inputs: ["required"] }, { kind: "component", type: i0.forwardRef(function () { return i5.BaoButtonComponent; }), selector: "button[bao-button]", inputs: ["displayType", "level", "size", "loading", "reversed", "loadingSpinnerAriaLabel", "fullWidth"] }, { kind: "directive", type: i0.forwardRef(function () { return BaoFileDropzoneIntructions; }), selector: "bao-file-dropzone-instructions, [bao-file-dropzone-instructions]" }, { kind: "directive", type: i0.forwardRef(function () { return BaoFileDropDirective; }), selector: "[baoFileDrop]", outputs: ["fileDrop"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
188
|
+
}
|
|
189
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoFileInputComponent, decorators: [{
|
|
190
|
+
type: Component,
|
|
191
|
+
args: [{ selector: 'bao-file-input, [bao-file-input]', providers: [
|
|
192
|
+
{
|
|
193
|
+
provide: NG_VALUE_ACCESSOR,
|
|
194
|
+
// tslint:disable-next-line:no-forward-ref
|
|
195
|
+
useExisting: forwardRef(() => BaoFileInputComponent),
|
|
196
|
+
multi: true
|
|
197
|
+
}
|
|
198
|
+
], encapsulation: ViewEncapsulation.None, host: {
|
|
199
|
+
class: 'bao-file-input',
|
|
200
|
+
'[class.bao-file-label-small]': 'size === "small"',
|
|
201
|
+
'[class.bao-file-label-medium]': 'size === "medium"',
|
|
202
|
+
'[class.bao-file-input-disabled]': 'disabled'
|
|
203
|
+
}, template: "<label bao-label [required]=\"required\" [for]=\"inputId\">{{ label }}</label>\n<ng-content select=\"bao-guiding-text\"></ng-content>\n<div\n baoFileDrop\n class=\"file-drop-zone\"\n (fileDrop)=\"uploadFile($event)\"\n #dropzone\n>\n <button\n bao-button\n type=\"button\"\n displayType=\"utility\"\n level=\"secondary\"\n [disabled]=\"disabled\"\n (click)=\"uploader.click()\"\n aria-hidden=\"true\"\n tabIndex=\"-1\"\n >\n {{ intl.dropzoneButtonLabel }}\n </button>\n <input\n [id]=\"inputId\"\n type=\"file\"\n class=\"sr-only\"\n [disabled]=\"disabled\"\n (change)=\"uploadFile($event.target.files[0])\"\n #uploader\n />\n <ng-container\n ><div #ref>\n <ng-content select=\"bao-file-dropzone-instructions\"></ng-content></div\n ></ng-container>\n <ng-container *ngIf=\"ref.childNodes.length === 0\"\n ><bao-file-dropzone-instructions>{{\n intl.defaultDropzoneInstructions\n }}</bao-file-dropzone-instructions></ng-container\n >\n</div>\n<bao-error *ngIf=\"isFileTooBig\">\n {{ intl.fileTooBigErrorMessage }}\n</bao-error>\n<bao-error *ngIf=\"isFileTypeInvalid\">\n {{ intl.invalidFileTypeErrorMessage }}\n</bao-error>\n<ng-content select=\"bao-error\"></ng-content>\n<ng-content></ng-content>\n", styles: ["bao-file-input{width:100%;display:inline-flex;flex-direction:column}bao-file-input>ul{padding:0;margin:0}bao-file-input .bao-label>span{font-size:inherit;font-weight:inherit}bao-file-input.bao-file-label-small label{font-weight:700;font-size:.875rem;line-height:1.25rem}bao-file-input.bao-file-label-medium label{font-weight:700;font-size:1rem;line-height:1.5rem}bao-file-input .bao-guiding-text{margin-bottom:.5rem}bao-file-input .file-drop-zone{padding:.5rem;background-color:#fff;border-radius:.25rem;border-style:dashed;border-color:#ced4da;border-width:1px;display:inline-flex;align-items:center}bao-file-input .file-drop-zone:focus-within.dropzone-focus{box-shadow:0 0 0 .1875rem #98bcde;background-color:#eefaf8}bao-file-input .file-drop-zone>.bao-button{margin-right:.5rem}bao-file-input .file-drop-zone.drag-over{background-color:#eefaf8;border-color:#097d6c;cursor:drag}bao-file-input .file-drop-zone.drag-over>.bao-button{background-color:#eefaf8}bao-file-input.bao-file-input-disabled .file-drop-zone{background-color:#f8f9fa;border-color:#ced4da}bao-file-input.bao-file-input-disabled .file-drop-zone .bao-button{background-color:#f8f9fa}bao-file-input.bao-file-input-disabled .file-drop-zone .bao-button:hover{background-color:#f8f9fa}bao-file-input .bao-file-preview:first-child{margin-top:1rem}bao-file-input .bao-error{margin-top:.5rem}\n"] }]
|
|
204
|
+
}], ctorParameters: function () { return [{ type: i1.BaoFileIntl }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { inputId: [{
|
|
205
|
+
type: Input,
|
|
206
|
+
args: ['id']
|
|
207
|
+
}], label: [{
|
|
208
|
+
type: Input
|
|
209
|
+
}], size: [{
|
|
210
|
+
type: Input
|
|
211
|
+
}], maximalFileSize: [{
|
|
212
|
+
type: Input
|
|
213
|
+
}], acceptedMIMETypes: [{
|
|
214
|
+
type: Input
|
|
215
|
+
}], required: [{
|
|
216
|
+
type: Input
|
|
217
|
+
}], disabled: [{
|
|
218
|
+
type: Input
|
|
219
|
+
}], uploadedFile: [{
|
|
220
|
+
type: Output
|
|
221
|
+
}], _files: [{
|
|
222
|
+
type: ContentChildren,
|
|
223
|
+
args: [BaoFilePreviewComponent, { descendants: true }]
|
|
224
|
+
}], _errorForm: [{
|
|
225
|
+
type: ContentChildren,
|
|
226
|
+
args: [BaoErrorTextComponent, { descendants: true }]
|
|
227
|
+
}], _errorTexts: [{
|
|
228
|
+
type: ViewChildren,
|
|
229
|
+
args: [BaoErrorTextComponent]
|
|
230
|
+
}], uploader: [{
|
|
231
|
+
type: ViewChild,
|
|
232
|
+
args: ['uploader', { static: false }]
|
|
233
|
+
}], dropzoneElement: [{
|
|
234
|
+
type: ViewChild,
|
|
235
|
+
args: ['dropzone', { static: false }]
|
|
236
|
+
}], enterKeyEvent: [{
|
|
237
|
+
type: HostListener,
|
|
238
|
+
args: ['window:keyup.enter']
|
|
239
|
+
}], tabKeyEvent: [{
|
|
240
|
+
type: HostListener,
|
|
241
|
+
args: ['window:keyup.tab']
|
|
242
|
+
}], shiftTabKeyEvent: [{
|
|
243
|
+
type: HostListener,
|
|
244
|
+
args: ['window:keyup.shift.tab']
|
|
245
|
+
}] } });
|
|
246
|
+
export class BaoFileDropDirective {
|
|
247
|
+
constructor() {
|
|
248
|
+
this.fileDrop = new EventEmitter();
|
|
249
|
+
this._isDragOver = false;
|
|
250
|
+
}
|
|
251
|
+
onDragOver(event) {
|
|
252
|
+
this.preventAndStop(event);
|
|
253
|
+
this._isDragOver = true;
|
|
254
|
+
}
|
|
255
|
+
onDragLeave(event) {
|
|
256
|
+
this.preventAndStop(event);
|
|
257
|
+
this._isDragOver = false;
|
|
258
|
+
}
|
|
259
|
+
onDrop(event) {
|
|
260
|
+
this.preventAndStop(event);
|
|
261
|
+
this._isDragOver = false;
|
|
262
|
+
const transfer = this.getDataTransfer(event);
|
|
263
|
+
this.fileDrop.emit(transfer.files[0]);
|
|
264
|
+
}
|
|
265
|
+
preventAndStop(event) {
|
|
266
|
+
event.preventDefault();
|
|
267
|
+
event.stopPropagation();
|
|
268
|
+
}
|
|
269
|
+
getDataTransfer(event) {
|
|
270
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
271
|
+
return event.dataTransfer
|
|
272
|
+
? event.dataTransfer
|
|
273
|
+
: event.originalEvent.dataTransfer;
|
|
274
|
+
}
|
|
275
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoFileDropDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
276
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.6", type: BaoFileDropDirective, selector: "[baoFileDrop]", outputs: { fileDrop: "fileDrop" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" }, properties: { "class.drag-over": "_isDragOver == true" } }, ngImport: i0 }); }
|
|
277
|
+
}
|
|
278
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoFileDropDirective, decorators: [{
|
|
279
|
+
type: Directive,
|
|
280
|
+
args: [{
|
|
281
|
+
selector: '[baoFileDrop]',
|
|
282
|
+
host: { '[class.drag-over]': '_isDragOver == true' }
|
|
283
|
+
}]
|
|
284
|
+
}], propDecorators: { fileDrop: [{
|
|
285
|
+
type: Output
|
|
286
|
+
}], onDragOver: [{
|
|
287
|
+
type: HostListener,
|
|
288
|
+
args: ['dragover', ['$event']]
|
|
289
|
+
}], onDragLeave: [{
|
|
290
|
+
type: HostListener,
|
|
291
|
+
args: ['dragleave', ['$event']]
|
|
292
|
+
}], onDrop: [{
|
|
293
|
+
type: HostListener,
|
|
294
|
+
args: ['drop', ['$event']]
|
|
295
|
+
}] } });
|
|
296
|
+
export class BaoFileDropzoneIntructions {
|
|
297
|
+
constructor(renderer, elementRef) {
|
|
298
|
+
this.renderer = renderer;
|
|
299
|
+
this.elementRef = elementRef;
|
|
300
|
+
}
|
|
301
|
+
get nativeElement() {
|
|
302
|
+
return this.elementRef.nativeElement;
|
|
303
|
+
}
|
|
304
|
+
ngAfterContentInit() {
|
|
305
|
+
this.renderer.setAttribute(this.nativeElement, 'aria-hidden', 'true');
|
|
306
|
+
}
|
|
307
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoFileDropzoneIntructions, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
308
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.6", type: BaoFileDropzoneIntructions, selector: "bao-file-dropzone-instructions, [bao-file-dropzone-instructions]", host: { classAttribute: "bao-file-dropzone-instructions" }, ngImport: i0 }); }
|
|
309
|
+
}
|
|
310
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoFileDropzoneIntructions, decorators: [{
|
|
311
|
+
type: Directive,
|
|
312
|
+
args: [{
|
|
313
|
+
selector: 'bao-file-dropzone-instructions, [bao-file-dropzone-instructions]',
|
|
314
|
+
host: {
|
|
315
|
+
class: 'bao-file-dropzone-instructions'
|
|
316
|
+
}
|
|
317
|
+
}]
|
|
318
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; } });
|
|
319
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXVpL3NyYy9saWIvZmlsZS9maWxlLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdWkvc3JjL2xpYi9maWxlL2ZpbGUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFJTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUdOLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUc3RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQUVuRTs7R0FFRztBQUNILElBQUksaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0FBQzFCLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBc0J6QixNQUFNLE9BQU8scUJBQXFCO0lBNEVoQyxZQUNTLElBQWlCLEVBQ2hCLFVBQW1DLEVBQ25DLFFBQW1CLEVBQ25CLEdBQXNCO1FBSHZCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDaEIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQW5FaEM7O1dBRUc7UUFDYSxTQUFJLEdBQXVCLFFBQVEsQ0FBQztRQUVwRDs7V0FFRztRQUNhLG9CQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFckM7O1dBRUc7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QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrRUFBa0U7b0JBQzVFLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsZ0NBQWdDO3FCQUN4QztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjMgVmlsbGUgZGUgTW9udHJlYWwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuXG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJhb0Vycm9yVGV4dENvbXBvbmVudCB9IGZyb20gJy4uL2NvbW1vbi1jb21wb25lbnRzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFvRmlsZUludGwgfSBmcm9tICcuL2ZpbGUtaW50bCc7XG5pbXBvcnQgeyBCYW9GaWxlUHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4vZmlsZS1wcmV2aWV3LmNvbXBvbmVudCc7XG5cbi8qKlxuICogVW5pcXVlIG51bWJlciB0byBnZW5lcmF0ZSBhIHVuaXF1ZSBJRFxuICovXG5sZXQgZmlsZUlucHV0VW5pcXVlSWQgPSAwO1xubGV0IGZpbGVUZXh0VW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYW8tZmlsZS1pbnB1dCwgW2Jhby1maWxlLWlucHV0XScsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1mb3J3YXJkLXJlZlxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQmFvRmlsZUlucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdiYW8tZmlsZS1pbnB1dCcsXG4gICAgJ1tjbGFzcy5iYW8tZmlsZS1sYWJlbC1zbWFsbF0nOiAnc2l6ZSA9PT0gXCJzbWFsbFwiJyxcbiAgICAnW2NsYXNzLmJhby1maWxlLWxhYmVsLW1lZGl1bV0nOiAnc2l6ZSA9PT0gXCJtZWRpdW1cIicsXG4gICAgJ1tjbGFzcy5iYW8tZmlsZS1pbnB1dC1kaXNhYmxlZF0nOiAnZGlzYWJsZWQnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgQmFvRmlsZUlucHV0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3Nvclxue1xuICAvKipcbiAgICogSWQgb2YgdGhlIGZpbGUgaW5wdXQgZmllbGRcbiAgICovXG4gIEBJbnB1dCgnaWQnKSBwdWJsaWMgaW5wdXRJZD86IHN0cmluZztcblxuICAvKipcbiAgICogTGFiZWwgb2YgZmllbGQgdG8gYmUgZGlzcGxheWVkIGFib3ZlXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgbGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogU2l6ZSBvZiB0aGUgZmlsZSBpbnB1dCBsYWJlbFxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHNpemU6ICdzbWFsbCcgfCAnbWVkaXVtJyA9ICdtZWRpdW0nO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIHNpemUgYWNjZXB0ZWQgZm9yIHVwbG9hZGVkIGZpbGVzXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgbWF4aW1hbEZpbGVTaXplID0gLTE7XG5cbiAgLyoqXG4gICAqIEFjY2VwdGVkIHR5cGVzIG9mIGZpbGVzXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgYWNjZXB0ZWRNSU1FVHlwZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIElzIGZpZWxkIHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgcmVxdWlyZWQ/ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElzIGZpZWxkIGRpc2FibGVkXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ/ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEZpbGUgc2VsZWN0ZWQgdG8gYmUgdXBsb2FkZWRcbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgdXBsb2FkZWRGaWxlOiBFdmVudEVtaXR0ZXI8RmlsZT4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGU+KCk7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgZmlsZXMgdGhhdCBoYXZlIGJlZW4gdXBsb2FkZWQgc28gZmFyXG4gICAqL1xuICBAQ29udGVudENoaWxkcmVuKEJhb0ZpbGVQcmV2aWV3Q29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByaXZhdGUgX2ZpbGVzOiBRdWVyeUxpc3Q8QmFvRmlsZVByZXZpZXdDb21wb25lbnQ+O1xuXG4gIC8qKlxuICAgKiBGb3JtIGVycm9ycyB3aGVuIGNvbXBvbmVudCBpcyB1c2VkIGluIGEgZm9ybVxuICAgKi9cbiAgQENvbnRlbnRDaGlsZHJlbihCYW9FcnJvclRleHRDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJpdmF0ZSBfZXJyb3JGb3JtOiBRdWVyeUxpc3Q8QmFvRXJyb3JUZXh0Q29tcG9uZW50PjtcblxuICAvKipcbiAgICogRXJyb3IgdGV4dHNcbiAgICovXG4gIEBWaWV3Q2hpbGRyZW4oQmFvRXJyb3JUZXh0Q29tcG9uZW50KVxuICBwcml2YXRlIF9lcnJvclRleHRzOiBRdWVyeUxpc3Q8QmFvRXJyb3JUZXh0Q29tcG9uZW50PjtcblxuICAvKipcbiAgICogRmlsZSBpbnB1dCB0aGF0IHRyaWdnZXJzIHVwbG9hZGluZyB3aGVuIGNsaWNrZWRcbiAgICovXG4gIEBWaWV3Q2hpbGQoJ3VwbG9hZGVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIHByaXZhdGUgdXBsb2FkZXI6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnZHJvcHpvbmUnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHJpdmF0ZSBkcm9wem9uZUVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIHB1YmxpYyBpbnNlcnREZWZhdWx0SW5zdHJ1Y3Rpb25zID0gZmFsc2U7XG4gIHB1YmxpYyBpc0ZpbGVUb29CaWcgPSBmYWxzZTtcbiAgcHVibGljIGlzRmlsZVR5cGVJbnZhbGlkID0gZmFsc2U7XG4gIHByaXZhdGUgX3ZhbHVlOiBGaWxlW107XG4gIHByaXZhdGUgX2ludGxDaGFuZ2VzOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgX2hlbHBlclRleHRJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBpbnRsOiBCYW9GaWxlSW50bCxcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy5faW50bENoYW5nZXMgPSBpbnRsLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpKTtcbiAgfVxuXG4gIGdldCBuYXRpdmVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5dXAuZW50ZXInKVxuICBlbnRlcktleUV2ZW50KCkge1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50LmlkID09PSB0aGlzLmlucHV0SWQpIHtcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW5wdXRJZCkuY2xpY2soKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5dXAudGFiJylcbiAgdGFiS2V5RXZlbnQoKSB7XG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQgPT09IHRoaXMuaW5wdXRJZCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgdGhpcy5kcm9wem9uZUVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2Ryb3B6b25lLWZvY3VzJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5dXAuc2hpZnQudGFiJylcbiAgc2hpZnRUYWJLZXlFdmVudCgpIHtcbiAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCA9PT0gdGhpcy5pbnB1dElkKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICB0aGlzLmRyb3B6b25lRWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnZHJvcHpvbmUtZm9jdXMnXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZXJyb3JGb3JtLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2V0RXJyb3JUZXh0c0F0dHJpYnV0ZSgpKTtcbiAgICBpZiAoIXRoaXMuaW5wdXRJZCkge1xuICAgICAgdGhpcy5pbnB1dElkID0gYGZpbGUtaW5wdXQtJHtmaWxlSW5wdXRVbmlxdWVJZCsrfWA7XG4gICAgfVxuICAgIC8vIElmIG5vIGNvbnRlbnQgd2FzIGFkZGVkIGZvciBkcm9wem9uZSBpbnN0cnVjdGlvbnMsIGFkZCBkZWZhdWx0IHRleHQuXG4gICAgY29uc3QgZHJvcHpvbmVFbGVtZW50ID0gQXJyYXkuZnJvbSh0aGlzLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4pLmZpbmQoXG4gICAgICAoZWw6IEhUTUxFbGVtZW50KSA9PiBlbC5jbGFzc05hbWUgPT09ICdmaWxlLWRyb3Atem9uZSdcbiAgICApO1xuICAgIGlmIChcbiAgICAgICFBcnJheS5mcm9tKGRyb3B6b25lRWxlbWVudC5jaGlsZHJlbikuZmluZChcbiAgICAgICAgZWwgPT4gZWwubG9jYWxOYW1lID09PSAnYmFvLWZpbGUtZHJvcHpvbmUtaW5zdHJ1Y3Rpb25zJ1xuICAgICAgKVxuICAgICkge1xuICAgICAgdGhpcy5pbnNlcnREZWZhdWx0SW5zdHJ1Y3Rpb25zID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5zZXREZXNjcmliZWRCeUF0dHJpYnV0ZSgpO1xuICAgIHRoaXMuX2ZpbGVzLmNoYW5nZXMuc3Vic2NyaWJlKFxuICAgICAgKGZpbGVzOiBRdWVyeUxpc3Q8QmFvRmlsZVByZXZpZXdDb21wb25lbnQ+KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVzTGlzdDogRmlsZVtdID0gZmlsZXMubWFwKFxuICAgICAgICAgIChlbDogQmFvRmlsZVByZXZpZXdDb21wb25lbnQpID0+IGVsLmZpbGVcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShmaWxlc0xpc3QpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2Vycm9yVGV4dHMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zZXRFcnJvclRleHRzQXR0cmlidXRlKCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2ludGxDaGFuZ2VzLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgICovXG4gIHB1YmxpYyB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fdmFsdWUgPSBvYmo7XG4gIH1cbiAgLyoqXG4gICAqIEltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG4gIC8qKlxuICAgKiBJbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZVRvdWNoZWQgPSBmbjtcbiAgfVxuICAvKipcbiAgICogSW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgICovXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyB1cGxvYWRGaWxlKGZpbGU6IEZpbGUpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuaXNGaWxlVHlwZUludmFsaWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNGaWxlVG9vQmlnID0gZmFsc2U7XG4gICAgICB0aGlzLnVwbG9hZGVyLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgIGlmICh0aGlzLm1heGltYWxGaWxlU2l6ZSA+IDAgJiYgZmlsZS5zaXplID4gdGhpcy5tYXhpbWFsRmlsZVNpemUpIHtcbiAgICAgICAgdGhpcy5pc0ZpbGVUb29CaWcgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmFjY2VwdGVkTUlNRVR5cGVzLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgdGhpcy5hY2NlcHRlZE1JTUVUeXBlcy5pbmRleE9mKGZpbGUudHlwZSkgPCAwXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5pc0ZpbGVUeXBlSW52YWxpZCA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMuaXNGaWxlVG9vQmlnICYmICF0aGlzLmlzRmlsZVR5cGVJbnZhbGlkKSB7XG4gICAgICAgIHRoaXMudXBsb2FkZWRGaWxlLmVtaXQoZmlsZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIHRoZSByZWdpc3Rlck9uQ2hhbmdlIGZ1bmN0aW9uIHNvIHRoZSBjb21wb25lbnQgY2FuIGNhbGwgaXQgd2hlbmV2ZXIgaXQgd2FudHMuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcHVibGljIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xuXG4gIC8qKlxuICAgKiBTYXZlcyB0aGUgcmVnaXN0ZXJPblRvdWNoZWQgZnVuY3Rpb24gc28gdGhlIGNvbXBvbmVudCBjYW4gY2FsbCBpdCB3aGVuZXZlciBpdCB3YW50cy5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcHVibGljIHByb3BhZ2F0ZVRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICBwcml2YXRlIHNldFZhbHVlKHZhbHVlOiBGaWxlW10pIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICB0aGlzLnByb3BhZ2F0ZVRvdWNoZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGVzY3JpYmVkQnlBdHRyaWJ1dGUoKTogdm9pZCB7XG4gICAgY29uc3QgaGVscGVyVGV4dCA9IEFycmF5LmZyb20odGhpcy5uYXRpdmVFbGVtZW50LmNoaWxkcmVuKS5maW5kKFxuICAgICAgKGVsOiBIVE1MRWxlbWVudCkgPT4gZWwubG9jYWxOYW1lID09PSAnYmFvLWd1aWRpbmctdGV4dCdcbiAgICApO1xuICAgIGlmIChoZWxwZXJUZXh0KSB7XG4gICAgICB0aGlzLl9oZWxwZXJUZXh0SWQgPSBgYmFvLWd1aWRpbmctdGV4dC0ke2ZpbGVUZXh0VW5pcXVlSWQrK31gO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoXG4gICAgICAgIGhlbHBlclRleHQuZmlyc3RFbGVtZW50Q2hpbGQsXG4gICAgICAgICdpZCcsXG4gICAgICAgIHRoaXMuX2hlbHBlclRleHRJZFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IEFycmF5LmZyb20odGhpcy5uYXRpdmVFbGVtZW50LmNoaWxkcmVuKVxuICAgICAgICAuZmluZCgoZWw6IEhUTUxFbGVtZW50KSA9PiBlbC5jbGFzc05hbWUgPT0gJ2ZpbGUtZHJvcC16b25lJylcbiAgICAgICAgLmNoaWxkcmVuLml0ZW0oMSk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShcbiAgICAgICAgaW5wdXRFbGVtZW50LFxuICAgICAgICAnYXJpYS1kZXNjcmliZWRieScsXG4gICAgICAgIHRoaXMuX2hlbHBlclRleHRJZFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEVycm9yVGV4dHNBdHRyaWJ1dGUoKTogdm9pZCB7XG4gICAgY29uc3QgdGV4dHNJZHMgPSBbXTtcbiAgICBjb25zdCBlcnJvcnMgPSBBcnJheS5mcm9tKHRoaXMubmF0aXZlRWxlbWVudC5jaGlsZHJlbikuZmlsdGVyKFxuICAgICAgKGVsOiBIVE1MRWxlbWVudCkgPT4gZWwubG9jYWxOYW1lID09ICdiYW8tZXJyb3InXG4gICAgKTtcbiAgICBlcnJvcnMuZm9yRWFjaCgoZXJyb3JUZXh0OiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgY29uc3QgZXJyb3JUZXh0SWQgPSBgYmFvLWVycm9yLSR7ZmlsZVRleHRVbmlxdWVJZCsrfWA7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShcbiAgICAgICAgZXJyb3JUZXh0LmZpcnN0RWxlbWVudENoaWxkLFxuICAgICAgICAnaWQnLFxuICAgICAgICBlcnJvclRleHRJZFxuICAgICAgKTtcbiAgICAgIHRleHRzSWRzLnB1c2goZXJyb3JUZXh0SWQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IEFycmF5LmZyb20odGhpcy5uYXRpdmVFbGVtZW50LmNoaWxkcmVuKVxuICAgICAgLmZpbmQoKGVsOiBIVE1MRWxlbWVudCkgPT4gZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdmaWxlLWRyb3Atem9uZScpKVxuICAgICAgLmNoaWxkcmVuLml0ZW0oMSk7XG4gICAgaWYgKHRoaXMuX2hlbHBlclRleHRJZCkge1xuICAgICAgdGV4dHNJZHMudW5zaGlmdCh0aGlzLl9oZWxwZXJUZXh0SWQpO1xuICAgIH1cbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShcbiAgICAgIGlucHV0RWxlbWVudCxcbiAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JyxcbiAgICAgIHRleHRzSWRzLmpvaW4oJyAnKVxuICAgICk7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Jhb0ZpbGVEcm9wXScsXG4gIGhvc3Q6IHsgJ1tjbGFzcy5kcmFnLW92ZXJdJzogJ19pc0RyYWdPdmVyID09IHRydWUnIH1cbn0pXG5leHBvcnQgY2xhc3MgQmFvRmlsZURyb3BEaXJlY3RpdmUge1xuICBAT3V0cHV0KCkgcHVibGljIGZpbGVEcm9wOiBFdmVudEVtaXR0ZXI8RmlsZT4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGU+KCk7XG4gIHByaXZhdGUgX2lzRHJhZ092ZXIgPSBmYWxzZTtcblxuICBASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnByZXZlbnRBbmRTdG9wKGV2ZW50KTtcbiAgICB0aGlzLl9pc0RyYWdPdmVyID0gdHJ1ZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5wcmV2ZW50QW5kU3RvcChldmVudCk7XG4gICAgdGhpcy5faXNEcmFnT3ZlciA9IGZhbHNlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIHRoaXMucHJldmVudEFuZFN0b3AoZXZlbnQpO1xuICAgIHRoaXMuX2lzRHJhZ092ZXIgPSBmYWxzZTtcbiAgICBjb25zdCB0cmFuc2ZlciA9IHRoaXMuZ2V0RGF0YVRyYW5zZmVyKGV2ZW50KTtcbiAgICB0aGlzLmZpbGVEcm9wLmVtaXQodHJhbnNmZXIuZmlsZXNbMF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmV2ZW50QW5kU3RvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGF0YVRyYW5zZmVyKGV2ZW50OiBEcmFnRXZlbnQgfCBhbnkpOiBEYXRhVHJhbnNmZXIge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLXJldHVyblxuICAgIHJldHVybiBldmVudC5kYXRhVHJhbnNmZXJcbiAgICAgID8gZXZlbnQuZGF0YVRyYW5zZmVyXG4gICAgICA6IGV2ZW50Lm9yaWdpbmFsRXZlbnQuZGF0YVRyYW5zZmVyO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2Jhby1maWxlLWRyb3B6b25lLWluc3RydWN0aW9ucywgW2Jhby1maWxlLWRyb3B6b25lLWluc3RydWN0aW9uc10nLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdiYW8tZmlsZS1kcm9wem9uZS1pbnN0cnVjdGlvbnMnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgQmFvRmlsZURyb3B6b25lSW50cnVjdGlvbnMgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgKSB7fVxuXG4gIGdldCBuYXRpdmVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5uYXRpdmVFbGVtZW50LCAnYXJpYS1oaWRkZW4nLCAndHJ1ZScpO1xuICB9XG59XG4iLCI8bGFiZWwgYmFvLWxhYmVsIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIFtmb3JdPVwiaW5wdXRJZFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cbjxuZy1jb250ZW50IHNlbGVjdD1cImJhby1ndWlkaW5nLXRleHRcIj48L25nLWNvbnRlbnQ+XG48ZGl2XG4gIGJhb0ZpbGVEcm9wXG4gIGNsYXNzPVwiZmlsZS1kcm9wLXpvbmVcIlxuICAoZmlsZURyb3ApPVwidXBsb2FkRmlsZSgkZXZlbnQpXCJcbiAgI2Ryb3B6b25lXG4+XG4gIDxidXR0b25cbiAgICBiYW8tYnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgZGlzcGxheVR5cGU9XCJ1dGlsaXR5XCJcbiAgICBsZXZlbD1cInNlY29uZGFyeVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAoY2xpY2spPVwidXBsb2FkZXIuY2xpY2soKVwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICB0YWJJbmRleD1cIi0xXCJcbiAgPlxuICAgIHt7IGludGwuZHJvcHpvbmVCdXR0b25MYWJlbCB9fVxuICA8L2J1dHRvbj5cbiAgPGlucHV0XG4gICAgW2lkXT1cImlucHV0SWRcIlxuICAgIHR5cGU9XCJmaWxlXCJcbiAgICBjbGFzcz1cInNyLW9ubHlcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgKGNoYW5nZSk9XCJ1cGxvYWRGaWxlKCRldmVudC50YXJnZXQuZmlsZXNbMF0pXCJcbiAgICAjdXBsb2FkZXJcbiAgLz5cbiAgPG5nLWNvbnRhaW5lclxuICAgID48ZGl2ICNyZWY+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJiYW8tZmlsZS1kcm9wem9uZS1pbnN0cnVjdGlvbnNcIj48L25nLWNvbnRlbnQ+PC9kaXZcbiAgPjwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVmLmNoaWxkTm9kZXMubGVuZ3RoID09PSAwXCJcbiAgICA+PGJhby1maWxlLWRyb3B6b25lLWluc3RydWN0aW9ucz57e1xuICAgICAgaW50bC5kZWZhdWx0RHJvcHpvbmVJbnN0cnVjdGlvbnNcbiAgICB9fTwvYmFvLWZpbGUtZHJvcHpvbmUtaW5zdHJ1Y3Rpb25zPjwvbmctY29udGFpbmVyXG4gID5cbjwvZGl2PlxuPGJhby1lcnJvciAqbmdJZj1cImlzRmlsZVRvb0JpZ1wiPlxuICB7eyBpbnRsLmZpbGVUb29CaWdFcnJvck1lc3NhZ2UgfX1cbjwvYmFvLWVycm9yPlxuPGJhby1lcnJvciAqbmdJZj1cImlzRmlsZVR5cGVJbnZhbGlkXCI+XG4gIHt7IGludGwuaW52YWxpZEZpbGVUeXBlRXJyb3JNZXNzYWdlIH19XG48L2Jhby1lcnJvcj5cbjxuZy1jb250ZW50IHNlbGVjdD1cImJhby1lcnJvclwiPjwvbmctY29udGVudD5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
|
|
@@ -26,10 +26,10 @@ export class BaoFileIntl {
|
|
|
26
26
|
/** Error message displayed when uploaded file has an invalid type */
|
|
27
27
|
this.invalidFileTypeErrorMessage = "Ce format de fichier n'est pas autorisé";
|
|
28
28
|
}
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoFileIntl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
30
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoFileIntl, providedIn: 'root' }); }
|
|
29
31
|
}
|
|
30
|
-
|
|
31
|
-
BaoFileIntl.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: BaoFileIntl, providedIn: 'root' });
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: BaoFileIntl, decorators: [{
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoFileIntl, decorators: [{
|
|
33
33
|
type: Injectable,
|
|
34
34
|
args: [{ providedIn: 'root' }]
|
|
35
35
|
}] });
|
|
@@ -45,10 +45,10 @@ export class BaoFileIntlEnglish extends BaoFileIntl {
|
|
|
45
45
|
/** Error message displayed when uploaded file has an invalid type */
|
|
46
46
|
this.invalidFileTypeErrorMessage = 'The format of this file is unauthorized';
|
|
47
47
|
}
|
|
48
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoFileIntlEnglish, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
49
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoFileIntlEnglish }); }
|
|
48
50
|
}
|
|
49
|
-
|
|
50
|
-
BaoFileIntlEnglish.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: BaoFileIntlEnglish });
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: BaoFileIntlEnglish, decorators: [{
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoFileIntlEnglish, decorators: [{
|
|
52
52
|
type: Injectable
|
|
53
53
|
}] });
|
|
54
54
|
/** @docs-private */
|
|
@@ -62,4 +62,4 @@ export const BAO_FILE_INTL_PROVIDER = {
|
|
|
62
62
|
deps: [[new Optional(), new SkipSelf(), BaoFileIntl]],
|
|
63
63
|
useFactory: BAO_FILE_INTL_PROVIDER_FACTORY
|
|
64
64
|
};
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnRsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11aS9zcmMvbGliL2ZpbGUvZmlsZS1pbnRsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFFL0I7OztHQUdHO0FBRUgsTUFBTSxPQUFPLFdBQVc7SUFEeEI7UUFFRTs7O1dBR0c7UUFDTSxZQUFPLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFFdEQsdUNBQXVDO1FBQ3ZDLHdCQUFtQixHQUFHLFdBQVcsQ0FBQztRQUVsQyx3Q0FBd0M7UUFDeEMsZ0NBQTJCLEdBQUcsOEJBQThCLENBQUM7UUFFN0QsOERBQThEO1FBQzlELDJCQUFzQixHQUFHLHlDQUF5QyxDQUFDO1FBRW5FLHFFQUFxRTtRQUNyRSxnQ0FBMkIsR0FBRyx5Q0FBeUMsQ0FBQztLQUN6RTs4R0FsQlksV0FBVztrSEFBWCxXQUFXLGNBREUsTUFBTTs7MkZBQ25CLFdBQVc7a0JBRHZCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQXNCbEMsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFdBQVc7SUFEbkQ7O1FBRUUsdUNBQXVDO1FBQ3ZDLHdCQUFtQixHQUFHLFFBQVEsQ0FBQztRQUUvQix3Q0FBd0M7UUFDeEMsZ0NBQTJCLEdBQUcsd0JBQXdCLENBQUM7UUFFdkQsOERBQThEO1FBQzlELDJCQUFzQixHQUFHLG9DQUFvQyxDQUFDO1FBRTlELHFFQUFxRTtRQUNyRSxnQ0FBMkIsR0FBRyx5Q0FBeUMsQ0FBQztLQUN6RTs4R0FaWSxrQkFBa0I7a0hBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVTs7QUFlWCxvQkFBb0I7QUFDcEIsTUFBTSxVQUFVLDhCQUE4QixDQUFDLFVBQXVCO0lBQ3BFLE9BQU8sVUFBVSxJQUFJLElBQUksV0FBVyxFQUFFLENBQUM7QUFDekMsQ0FBQztBQUVELG9CQUFvQjtBQUNwQixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRztJQUNwQyx3RkFBd0Y7SUFDeEYsT0FBTyxFQUFFLFdBQVc7SUFDcEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDckQsVUFBVSxFQUFFLDhCQUE4QjtDQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMyBWaWxsZSBkZSBNb250cmVhbC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFRvIG1vZGlmeSB0aGUgbGFiZWxzIGFuZCB0ZXh0IGRpc3BsYXllZCwgY3JlYXRlIGEgbmV3IGluc3RhbmNlIG9mIEJhb0ZpbGVJbnRsIGFuZFxuICogaW5jbHVkZSBpdCBpbiBhIGN1c3RvbSBwcm92aWRlclxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEJhb0ZpbGVJbnRsIHtcbiAgLyoqXG4gICAqIFN0cmVhbSB0byBlbWl0IGZyb20gd2hlbiBsYWJlbHMgYXJlIGNoYW5nZWQuIFVzZSB0aGlzIHRvIG5vdGlmeSBjb21wb25lbnRzIHdoZW4gdGhlIGxhYmVscyBoYXZlXG4gICAqIGNoYW5nZWQgYWZ0ZXIgaW5pdGlhbGl6YXRpb24uXG4gICAqL1xuICByZWFkb25seSBjaGFuZ2VzOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKiogVGhlIGxhYmVsIGZvciBidXR0b24gaW4gZHJvcHpvbmUgKi9cbiAgZHJvcHpvbmVCdXR0b25MYWJlbCA9ICdQYXJjb3VyaXInO1xuXG4gIC8qKiBUaGUgZGVmYXVsdCBkcm9wem9uZSBpbnN0cnVjdGlvbnMgKi9cbiAgZGVmYXVsdERyb3B6b25lSW5zdHJ1Y3Rpb25zID0gJ291IGTDqXBvc2VyIHZvdHJlIGZpY2hpZXIgaWNpJztcblxuICAvKiogRXJyb3IgbWVzc2FnZSBkaXNwbGF5ZWQgd2hlbiB1cGxvYWRlZCBmaWxlIGlzIHRvbyBsYXJnZSAqL1xuICBmaWxlVG9vQmlnRXJyb3JNZXNzYWdlID0gJ0xhIHRhaWxsZSBkZSBjZSBmaWNoaWVyIGVzdCB0cm9wIGdyYW5kZSc7XG5cbiAgLyoqIEVycm9yIG1lc3NhZ2UgZGlzcGxheWVkIHdoZW4gdXBsb2FkZWQgZmlsZSBoYXMgYW4gaW52YWxpZCB0eXBlICovXG4gIGludmFsaWRGaWxlVHlwZUVycm9yTWVzc2FnZSA9IFwiQ2UgZm9ybWF0IGRlIGZpY2hpZXIgbidlc3QgcGFzIGF1dG9yaXPDqVwiO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQmFvRmlsZUludGxFbmdsaXNoIGV4dGVuZHMgQmFvRmlsZUludGwge1xuICAvKiogVGhlIGxhYmVsIGZvciBidXR0b24gaW4gZHJvcHpvbmUgKi9cbiAgZHJvcHpvbmVCdXR0b25MYWJlbCA9ICdCcm93c2UnO1xuXG4gIC8qKiBUaGUgZGVmYXVsdCBkcm9wem9uZSBpbnN0cnVjdGlvbnMgKi9cbiAgZGVmYXVsdERyb3B6b25lSW5zdHJ1Y3Rpb25zID0gJ29yIGRyb3AgeW91ciBmaWxlIGhlcmUnO1xuXG4gIC8qKiBFcnJvciBtZXNzYWdlIGRpc3BsYXllZCB3aGVuIHVwbG9hZGVkIGZpbGUgaXMgdG9vIGxhcmdlICovXG4gIGZpbGVUb29CaWdFcnJvck1lc3NhZ2UgPSAnVGhlIHNpemUgb2YgdGhpcyBmaWxlIGlzIHRvbyBsYXJnZSc7XG5cbiAgLyoqIEVycm9yIG1lc3NhZ2UgZGlzcGxheWVkIHdoZW4gdXBsb2FkZWQgZmlsZSBoYXMgYW4gaW52YWxpZCB0eXBlICovXG4gIGludmFsaWRGaWxlVHlwZUVycm9yTWVzc2FnZSA9ICdUaGUgZm9ybWF0IG9mIHRoaXMgZmlsZSBpcyB1bmF1dGhvcml6ZWQnO1xufVxuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIEJBT19GSUxFX0lOVExfUFJPVklERVJfRkFDVE9SWShwYXJlbnRJbnRsOiBCYW9GaWxlSW50bCkge1xuICByZXR1cm4gcGFyZW50SW50bCB8fCBuZXcgQmFvRmlsZUludGwoKTtcbn1cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBjb25zdCBCQU9fRklMRV9JTlRMX1BST1ZJREVSID0ge1xuICAvLyBJZiB0aGVyZSBpcyBhbHJlYWR5IGFuIEJhb0ZpbGVJbnRsIGF2YWlsYWJsZSwgdXNlIHRoYXQuIE90aGVyd2lzZSwgcHJvdmlkZSBhIG5ldyBvbmUuXG4gIHByb3ZpZGU6IEJhb0ZpbGVJbnRsLFxuICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgQmFvRmlsZUludGxdXSxcbiAgdXNlRmFjdG9yeTogQkFPX0ZJTEVfSU5UTF9QUk9WSURFUl9GQUNUT1JZXG59O1xuIl19
|
|
@@ -70,10 +70,10 @@ export class BaoFilePreviewComponent {
|
|
|
70
70
|
getSizeAndUnit(size, multiplicator, unit, toFixed = 0) {
|
|
71
71
|
return `${(size / multiplicator).toFixed(toFixed)} ${unit}`;
|
|
72
72
|
}
|
|
73
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoFilePreviewComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
74
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: BaoFilePreviewComponent, selector: "bao-file-preview, [bao-file-preview]", inputs: { file: "file", isLoading: "isLoading" }, host: { classAttribute: "bao-file-preview" }, ngImport: i0, template: "<div class=\"bao-file-info\">\n <ng-content select=\"bao-icon\"></ng-content>\n <bao-icon\n *ngIf=\"insertGenericIcon && !thumbnailURL\"\n class=\"bao-file-media\"\n svgIcon=\"icon-file\"\n >\n </bao-icon>\n <ng-container *ngIf=\"thumbnailURL && !isLoading\">\n <img\n class=\"bao-file-media\"\n [src]=\"thumbnailURL\"\n width=\"40px\"\n height=\"40px\"\n />\n </ng-container>\n <div class=\"bao-file-text\">\n <div class=\"bao-file-name\">{{ file.name }}</div>\n <div class=\"bao-file-size\">{{ fileSize }}</div>\n </div>\n</div>\n<ng-container *ngIf=\"!isLoading\">\n <ng-content select=\"button[bao-button]\"></ng-content>\n <ng-content select=\"baoDropdownTriggerFor\"></ng-content>\n</ng-container>\n<bao-icon\n *ngIf=\"isLoading\"\n class=\"loading-spinner\"\n svgIcon=\"icon-spinner\"\n title=\"chargement\"\n></bao-icon>\n", styles: [".bao-file-preview{display:flex;align-items:center;justify-content:space-between;padding-top:.625rem;padding-bottom:.625rem;list-style-type:none}.bao-file-preview>.bao-file-info{display:flex;align-items:center}.bao-file-preview>.bao-file-info>.bao-icon{color:#adb2bd;flex-shrink:0}.bao-file-preview>.bao-file-info>.bao-file-media{margin-right:1rem}.bao-file-preview>.bao-file-info>.bao-file-text{display:inline-flex;flex-direction:column;margin-right:1rem}.bao-file-preview>.bao-file-info>.bao-file-text>.bao-file-name{overflow:hidden;font-weight:700;font-size:.875rem;line-height:1.25rem;color:#212529}.bao-file-preview>.bao-file-info>.bao-file-text>.bao-file-size{font-weight:400;font-size:.75rem;line-height:1rem;color:#637381}.bao-file-preview .loading-spinner{color:#097d6c}.bao-file-preview .bao-dropdown-menu-container{position:absolute;margin-left:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.BaoIconComponent, selector: "bao-icon", inputs: ["color", "size", "svgIcon", "title"], exportAs: ["baoIcon"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
73
75
|
}
|
|
74
|
-
|
|
75
|
-
BaoFilePreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: BaoFilePreviewComponent, selector: "bao-file-preview, [bao-file-preview]", inputs: { file: "file", isLoading: "isLoading" }, host: { classAttribute: "bao-file-preview" }, ngImport: i0, template: "<div class=\"bao-file-info\">\n <ng-content select=\"bao-icon\"></ng-content>\n <bao-icon\n *ngIf=\"insertGenericIcon && !thumbnailURL\"\n class=\"bao-file-media\"\n svgIcon=\"icon-file\"\n >\n </bao-icon>\n <ng-container *ngIf=\"thumbnailURL && !isLoading\">\n <img\n class=\"bao-file-media\"\n [src]=\"thumbnailURL\"\n width=\"40px\"\n height=\"40px\"\n />\n </ng-container>\n <div class=\"bao-file-text\">\n <div class=\"bao-file-name\">{{ file.name }}</div>\n <div class=\"bao-file-size\">{{ fileSize }}</div>\n </div>\n</div>\n<ng-container *ngIf=\"!isLoading\">\n <ng-content select=\"button[bao-button]\"></ng-content>\n <ng-content select=\"baoDropdownTriggerFor\"></ng-content>\n</ng-container>\n<bao-icon\n *ngIf=\"isLoading\"\n class=\"loading-spinner\"\n svgIcon=\"icon-spinner\"\n title=\"chargement\"\n></bao-icon>\n", styles: [".bao-file-preview{display:flex;align-items:center;justify-content:space-between;padding-top:.625rem;padding-bottom:.625rem;list-style-type:none}.bao-file-preview>.bao-file-info{display:flex;align-items:center}.bao-file-preview>.bao-file-info>.bao-icon{color:#adb2bd;flex-shrink:0}.bao-file-preview>.bao-file-info>.bao-file-media{margin-right:1rem}.bao-file-preview>.bao-file-info>.bao-file-text{display:inline-flex;flex-direction:column;margin-right:1rem}.bao-file-preview>.bao-file-info>.bao-file-text>.bao-file-name{overflow:hidden;font-weight:700;font-size:.875rem;line-height:1.25rem;color:#212529}.bao-file-preview>.bao-file-info>.bao-file-text>.bao-file-size{font-weight:400;font-size:.75rem;line-height:1rem;color:#637381}.bao-file-preview .loading-spinner{color:#097d6c}.bao-file-preview .bao-dropdown-menu-container{position:absolute;margin-left:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.BaoIconComponent, selector: "bao-icon", inputs: ["color", "size", "svgIcon", "title"], exportAs: ["baoIcon"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
76
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: BaoFilePreviewComponent, decorators: [{
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoFilePreviewComponent, decorators: [{
|
|
77
77
|
type: Component,
|
|
78
78
|
args: [{ selector: 'bao-file-preview, [bao-file-preview]', encapsulation: ViewEncapsulation.None, host: {
|
|
79
79
|
class: 'bao-file-preview'
|
|
@@ -83,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
|
|
|
83
83
|
}], isLoading: [{
|
|
84
84
|
type: Input
|
|
85
85
|
}] } });
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdWkvc3JjL2xpYi9maWxlL2ZpbGUtcHJldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXVpL3NyYy9saWIvZmlsZS9maWxlLXByZXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFFTCxTQUFTLEVBRVQsS0FBSyxFQUVMLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQzs7OztBQUV2QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUM7QUFDNUIsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDO0FBVy9CLE1BQU0sT0FBTyx1QkFBdUI7SUFrQmxDLFlBQ1UsVUFBbUMsRUFDbkMsUUFBbUI7UUFEbkIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQWQ3Qjs7V0FFRztRQUNhLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEM7O1dBRUc7UUFDSSxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFMUIsaUJBQVksR0FBRyxFQUFFLENBQUM7SUFLdEIsQ0FBQztJQUVKLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU8sT0FBTztRQUNiLGdFQUFnRTtRQUNoRSxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUM3QyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQWUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsS0FBSyxVQUFVLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7U0FDL0I7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3ZEO0lBQ0gsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFDRSxJQUFJLENBQUMsSUFBSTtZQUNULENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxFQUNuRTtZQUNBLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFDaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQzFDLENBQUMsQ0FBQztZQUVGLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO2dCQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUN6QixDQUFDLENBQUM7WUFDRixNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFTyxVQUFVLENBQUMsSUFBWTtRQUM3QixJQUFJLElBQUksSUFBSSxjQUFjLElBQUksSUFBSSxHQUFHLGNBQWMsR0FBRyxjQUFjLEVBQUU7WUFDcEUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDeEQ7UUFDRCxNQUFNLDRCQUE0QixHQUFHLElBQUksR0FBRyxjQUFjLENBQUM7UUFDM0QsSUFBSSw0QkFBNEIsSUFBSSxjQUFjLEVBQUU7WUFDbEQsTUFBTSxPQUFPLEdBQUcsNEJBQTRCLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDakU7UUFDRCxPQUFPLEdBQUcsSUFBSSxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVPLGNBQWMsQ0FDcEIsSUFBWSxFQUNaLGFBQXFCLEVBQ3JCLElBQVksRUFDWixPQUFPLEdBQUcsQ0FBQztRQUVYLE9BQU8sR0FBRyxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7SUFDOUQsQ0FBQzs4R0FwRlUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsNEtDM0JwQyx1M0JBK0JBOzsyRkRKYSx1QkFBdUI7a0JBVG5DLFNBQVM7K0JBQ0Usc0NBQXNDLGlCQUdqQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSxrQkFBa0I7cUJBQzFCO3lIQU1lLElBQUk7c0JBQW5CLEtBQUs7Z0JBS1UsU0FBUztzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjMgVmlsbGUgZGUgTW9udHJlYWwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuXG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5jb25zdCBLSUxPX1RIUkVTSE9MRCA9IDEwMDA7XG5jb25zdCBNRUdBX1RIUkVTSE9MRCA9IDEwMDAwMDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Jhby1maWxlLXByZXZpZXcsIFtiYW8tZmlsZS1wcmV2aWV3XScsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWxlLXByZXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnYmFvLWZpbGUtcHJldmlldydcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBCYW9GaWxlUHJldmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAvKipcbiAgICogVXBsb2FkZWQgZmlsZSB0byBkaXNwbGF5IGluIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgZmlsZTogRmlsZTtcblxuICAvKipcbiAgICogSXMgZmlsZSBsb2FkaW5nXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRydWUgaWYgcHJvamVjdGVkIGNvbnRlbnQgaGFzIG5vIGljb24gYW5kIGZpbGUgZG9lcyBub3QgaGF2ZSBhIHRodW1ibmFpbC5cbiAgICovXG4gIHB1YmxpYyBpbnNlcnRHZW5lcmljSWNvbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyB0aHVtYm5haWxVUkwgPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHt9XG5cbiAgZ2V0IG5hdGl2ZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIGdldCBmaWxlU2l6ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdFNpemUodGhpcy5maWxlLnNpemUpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0VGh1bWJuYWlsKCk7XG4gICAgdGhpcy5zZXRJY29uKCk7XG4gIH1cblxuICBwcml2YXRlIHNldEljb24oKSB7XG4gICAgLy8gSWYgbm8gaWNvbiBpcyBpbiB0aGUgcHJvamVjdGVkIGNvbnRlbnQsIGdlbmVyaWMgaWNvbiBpcyBhZGRlZFxuICAgIGNvbnN0IGNvbnRlbnRJY29uID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5pdGVtKDApLmNoaWxkcmVuXG4gICAgKS5maW5kKChlbDogSFRNTEVsZW1lbnQpID0+IGVsLmxvY2FsTmFtZSA9PT0gJ2Jhby1pY29uJyk7XG4gICAgaWYgKCFjb250ZW50SWNvbikge1xuICAgICAgdGhpcy5pbnNlcnRHZW5lcmljSWNvbiA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoY29udGVudEljb24sICdiYW8tZmlsZS1tZWRpYScpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGh1bWJuYWlsKCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMuZmlsZSAmJlxuICAgICAgKHRoaXMuZmlsZS50eXBlID09PSAnaW1hZ2UvcG5nJyB8fCB0aGlzLmZpbGUudHlwZSA9PT0gJ2ltYWdlL2pwZWcnKVxuICAgICkge1xuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnRodW1ibmFpbFVSTCA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7XG4gICAgICB9O1xuXG4gICAgICByZWFkZXIub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgdGhpcy50aHVtYm5haWxVUkwgPSAnJztcbiAgICAgIH07XG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTCh0aGlzLmZpbGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0U2l6ZShzaXplOiBudW1iZXIpIHtcbiAgICBpZiAoc2l6ZSA+PSBLSUxPX1RIUkVTSE9MRCAmJiBzaXplIC8gS0lMT19USFJFU0hPTEQgPCBLSUxPX1RIUkVTSE9MRCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0U2l6ZUFuZFVuaXQoc2l6ZSwgS0lMT19USFJFU0hPTEQsICdLbycpO1xuICAgIH1cbiAgICBjb25zdCBzaXplRGl2aWRlZEJ5S29NdWx0aXBsaWNhdG9yID0gc2l6ZSAvIEtJTE9fVEhSRVNIT0xEO1xuICAgIGlmIChzaXplRGl2aWRlZEJ5S29NdWx0aXBsaWNhdG9yID49IEtJTE9fVEhSRVNIT0xEKSB7XG4gICAgICBjb25zdCB0b0ZpeGVkID0gc2l6ZURpdmlkZWRCeUtvTXVsdGlwbGljYXRvciA+IDEwID8gMCA6IDE7XG4gICAgICByZXR1cm4gdGhpcy5nZXRTaXplQW5kVW5pdChzaXplLCBNRUdBX1RIUkVTSE9MRCwgJ01vJywgdG9GaXhlZCk7XG4gICAgfVxuICAgIHJldHVybiBgJHtzaXplfSBvY3RldHNgO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTaXplQW5kVW5pdChcbiAgICBzaXplOiBudW1iZXIsXG4gICAgbXVsdGlwbGljYXRvcjogbnVtYmVyLFxuICAgIHVuaXQ6IHN0cmluZyxcbiAgICB0b0ZpeGVkID0gMFxuICApOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHsoc2l6ZSAvIG11bHRpcGxpY2F0b3IpLnRvRml4ZWQodG9GaXhlZCl9ICR7dW5pdH1gO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYmFvLWZpbGUtaW5mb1wiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJiYW8taWNvblwiPjwvbmctY29udGVudD5cbiAgPGJhby1pY29uXG4gICAgKm5nSWY9XCJpbnNlcnRHZW5lcmljSWNvbiAmJiAhdGh1bWJuYWlsVVJMXCJcbiAgICBjbGFzcz1cImJhby1maWxlLW1lZGlhXCJcbiAgICBzdmdJY29uPVwiaWNvbi1maWxlXCJcbiAgPlxuICA8L2Jhby1pY29uPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidGh1bWJuYWlsVVJMICYmICFpc0xvYWRpbmdcIj5cbiAgICA8aW1nXG4gICAgICBjbGFzcz1cImJhby1maWxlLW1lZGlhXCJcbiAgICAgIFtzcmNdPVwidGh1bWJuYWlsVVJMXCJcbiAgICAgIHdpZHRoPVwiNDBweFwiXG4gICAgICBoZWlnaHQ9XCI0MHB4XCJcbiAgICAvPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGRpdiBjbGFzcz1cImJhby1maWxlLXRleHRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYmFvLWZpbGUtbmFtZVwiPnt7IGZpbGUubmFtZSB9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJiYW8tZmlsZS1zaXplXCI+e3sgZmlsZVNpemUgfX08L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImJ1dHRvbltiYW8tYnV0dG9uXVwiPjwvbmctY29udGVudD5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYmFvRHJvcGRvd25UcmlnZ2VyRm9yXCI+PC9uZy1jb250ZW50PlxuPC9uZy1jb250YWluZXI+XG48YmFvLWljb25cbiAgKm5nSWY9XCJpc0xvYWRpbmdcIlxuICBjbGFzcz1cImxvYWRpbmctc3Bpbm5lclwiXG4gIHN2Z0ljb249XCJpY29uLXNwaW5uZXJcIlxuICB0aXRsZT1cImNoYXJnZW1lbnRcIlxuPjwvYmFvLWljb24+XG4iXX0=
|
|
@@ -20,25 +20,25 @@ const FILE_DIRECTIVES = [
|
|
|
20
20
|
BaoFilePreviewComponent
|
|
21
21
|
];
|
|
22
22
|
export class BaoFileModule {
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoFileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
24
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: BaoFileModule, declarations: [BaoFileInputComponent,
|
|
25
|
+
BaoFileDropzoneIntructions,
|
|
26
|
+
BaoFileDropDirective,
|
|
27
|
+
BaoFilePreviewComponent], imports: [CommonModule,
|
|
28
|
+
BaoDropdownMenuModule,
|
|
29
|
+
BaoCommonComponentsModule,
|
|
30
|
+
BaoIconModule,
|
|
31
|
+
BaoButtonModule], exports: [BaoFileInputComponent,
|
|
32
|
+
BaoFileDropzoneIntructions,
|
|
33
|
+
BaoFileDropDirective,
|
|
34
|
+
BaoFilePreviewComponent] }); }
|
|
35
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoFileModule, providers: [BAO_FILE_INTL_PROVIDER], imports: [CommonModule,
|
|
36
|
+
BaoDropdownMenuModule,
|
|
37
|
+
BaoCommonComponentsModule,
|
|
38
|
+
BaoIconModule,
|
|
39
|
+
BaoButtonModule] }); }
|
|
23
40
|
}
|
|
24
|
-
|
|
25
|
-
BaoFileModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.3", ngImport: i0, type: BaoFileModule, declarations: [BaoFileInputComponent,
|
|
26
|
-
BaoFileDropzoneIntructions,
|
|
27
|
-
BaoFileDropDirective,
|
|
28
|
-
BaoFilePreviewComponent], imports: [CommonModule,
|
|
29
|
-
BaoDropdownMenuModule,
|
|
30
|
-
BaoCommonComponentsModule,
|
|
31
|
-
BaoIconModule,
|
|
32
|
-
BaoButtonModule], exports: [BaoFileInputComponent,
|
|
33
|
-
BaoFileDropzoneIntructions,
|
|
34
|
-
BaoFileDropDirective,
|
|
35
|
-
BaoFilePreviewComponent] });
|
|
36
|
-
BaoFileModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: BaoFileModule, providers: [BAO_FILE_INTL_PROVIDER], imports: [CommonModule,
|
|
37
|
-
BaoDropdownMenuModule,
|
|
38
|
-
BaoCommonComponentsModule,
|
|
39
|
-
BaoIconModule,
|
|
40
|
-
BaoButtonModule] });
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: BaoFileModule, decorators: [{
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoFileModule, decorators: [{
|
|
42
42
|
type: NgModule,
|
|
43
43
|
args: [{
|
|
44
44
|
imports: [
|
|
@@ -53,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
|
|
|
53
53
|
providers: [BAO_FILE_INTL_PROVIDER]
|
|
54
54
|
}]
|
|
55
55
|
}] });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11aS9zcmMvbGliL2ZpbGUvbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQiwwQkFBMEIsRUFDM0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUVqRSxNQUFNLGVBQWUsR0FBRztJQUN0QixxQkFBcUI7SUFDckIsMEJBQTBCO0lBQzFCLG9CQUFvQjtJQUNwQix1QkFBdUI7Q0FDeEIsQ0FBQztBQWNGLE1BQU0sT0FBTyxhQUFhOzhHQUFiLGFBQWE7K0dBQWIsYUFBYSxpQkFsQnhCLHFCQUFxQjtZQUNyQiwwQkFBMEI7WUFDMUIsb0JBQW9CO1lBQ3BCLHVCQUF1QixhQUtyQixZQUFZO1lBQ1oscUJBQXFCO1lBQ3JCLHlCQUF5QjtZQUN6QixhQUFhO1lBQ2IsZUFBZSxhQVpqQixxQkFBcUI7WUFDckIsMEJBQTBCO1lBQzFCLG9CQUFvQjtZQUNwQix1QkFBdUI7K0dBZVosYUFBYSxhQUZiLENBQUMsc0JBQXNCLENBQUMsWUFSakMsWUFBWTtZQUNaLHFCQUFxQjtZQUNyQix5QkFBeUI7WUFDekIsYUFBYTtZQUNiLGVBQWU7OzJGQU1OLGFBQWE7a0JBWnpCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLGFBQWE7d0JBQ2IsZUFBZTtxQkFDaEI7b0JBQ0QsWUFBWSxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUMvQixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQzFCLFNBQVMsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjMgVmlsbGUgZGUgTW9udHJlYWwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCYW9GaWxlSW5wdXRDb21wb25lbnQsXG4gIEJhb0ZpbGVEcm9wRGlyZWN0aXZlLFxuICBCYW9GaWxlRHJvcHpvbmVJbnRydWN0aW9uc1xufSBmcm9tICcuL2ZpbGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEJhb0ZpbGVQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9maWxlLXByZXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEJBT19GSUxFX0lOVExfUFJPVklERVIgfSBmcm9tICcuL2ZpbGUtaW50bCc7XG5pbXBvcnQgeyBCYW9CdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24nO1xuaW1wb3J0IHsgQmFvSWNvbk1vZHVsZSB9IGZyb20gJy4uL2ljb24nO1xuaW1wb3J0IHsgQmFvRHJvcGRvd25NZW51TW9kdWxlIH0gZnJvbSAnLi4vZHJvcGRvd24tbWVudSc7XG5pbXBvcnQgeyBCYW9Db21tb25Db21wb25lbnRzTW9kdWxlIH0gZnJvbSAnLi4vY29tbW9uLWNvbXBvbmVudHMnO1xuXG5jb25zdCBGSUxFX0RJUkVDVElWRVMgPSBbXG4gIEJhb0ZpbGVJbnB1dENvbXBvbmVudCxcbiAgQmFvRmlsZURyb3B6b25lSW50cnVjdGlvbnMsXG4gIEJhb0ZpbGVEcm9wRGlyZWN0aXZlLFxuICBCYW9GaWxlUHJldmlld0NvbXBvbmVudFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBCYW9Ecm9wZG93bk1lbnVNb2R1bGUsXG4gICAgQmFvQ29tbW9uQ29tcG9uZW50c01vZHVsZSxcbiAgICBCYW9JY29uTW9kdWxlLFxuICAgIEJhb0J1dHRvbk1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtGSUxFX0RJUkVDVElWRVNdLFxuICBleHBvcnRzOiBbRklMRV9ESVJFQ1RJVkVTXSxcbiAgcHJvdmlkZXJzOiBbQkFPX0ZJTEVfSU5UTF9QUk9WSURFUl1cbn0pXG5leHBvcnQgY2xhc3MgQmFvRmlsZU1vZHVsZSB7fVxuIl19
|