@fundamental-ngx/core 0.43.54 → 0.43.55
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/file-uploader/file-uploader.component.mjs +23 -6
- package/fesm2015/fundamental-ngx-core-file-uploader.mjs +22 -5
- package/fesm2015/fundamental-ngx-core-file-uploader.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-file-uploader.mjs +22 -5
- package/fesm2020/fundamental-ngx-core-file-uploader.mjs.map +1 -1
- package/file-uploader/file-uploader.component.d.ts +4 -0
- package/fundamental-ngx-core-v0.43.55.tgz +0 -0
- package/package.json +3 -3
- package/schematics/add-dependencies/index.js +4 -4
- package/fundamental-ngx-core-v0.43.54.tgz +0 -0
|
@@ -153,9 +153,20 @@ export class FileUploaderComponent {
|
|
|
153
153
|
* Clears the files from the input.
|
|
154
154
|
*/
|
|
155
155
|
clear() {
|
|
156
|
-
|
|
157
|
-
this.
|
|
158
|
-
|
|
156
|
+
let shouldPropagate = false;
|
|
157
|
+
if (this.validFiles.length) {
|
|
158
|
+
this.validFiles = [];
|
|
159
|
+
shouldPropagate = true;
|
|
160
|
+
}
|
|
161
|
+
if (this.invalidFiles.length) {
|
|
162
|
+
this.invalidFiles = [];
|
|
163
|
+
shouldPropagate = true;
|
|
164
|
+
}
|
|
165
|
+
// Clears selection in file uploader input.
|
|
166
|
+
this.inputRef.nativeElement.value = '';
|
|
167
|
+
if (shouldPropagate) {
|
|
168
|
+
this._propagateFiles();
|
|
169
|
+
}
|
|
159
170
|
}
|
|
160
171
|
/** @hidden */
|
|
161
172
|
_isEmpty() {
|
|
@@ -165,8 +176,14 @@ export class FileUploaderComponent {
|
|
|
165
176
|
_propagateFiles() {
|
|
166
177
|
this.setInputValue(this.validFiles);
|
|
167
178
|
this.onChange(this.validFiles);
|
|
168
|
-
this.
|
|
169
|
-
|
|
179
|
+
if (this._previousValidFiles !== this.validFiles) {
|
|
180
|
+
this._previousValidFiles = this.validFiles;
|
|
181
|
+
this.selectedFilesChanged.emit(this.validFiles);
|
|
182
|
+
}
|
|
183
|
+
if (this._previousInvalidFiles !== this.invalidFiles) {
|
|
184
|
+
this._previousInvalidFiles = this.invalidFiles;
|
|
185
|
+
this.selectedInvalidFiles.emit(this.invalidFiles);
|
|
186
|
+
}
|
|
170
187
|
}
|
|
171
188
|
}
|
|
172
189
|
FileUploaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FileUploaderComponent, deps: [{ token: i1.FileUploaderService }, { token: i0.ChangeDetectorRef }, { token: i2.ContentDensityObserver }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -242,4 +259,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
242
259
|
}], onDragLeave: [{
|
|
243
260
|
type: Output
|
|
244
261
|
}] } });
|
|
245
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9maWxlLXVwbG9hZGVyL2ZpbGUtdXBsb2FkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZmlsZS11cGxvYWRlci9maWxlLXVwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxtQkFBbUIsRUFBb0IsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRCxPQUFPLEVBQW1CLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEYsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7QUFFaEgsSUFBSSx5QkFBeUIsR0FBRyxDQUFDLENBQUM7QUFFbEM7Ozs7R0FJRztBQXFCSCxNQUFNLE9BQU8scUJBQXFCO0lBMkc5QixjQUFjO0lBQ2QsWUFDWSxrQkFBdUMsRUFDdkMsYUFBZ0MsRUFDL0IsdUJBQStDO1FBRmhELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBcUI7UUFD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S04sV0FBVztzQkFEVixLQUFLO2dCQUtOLFdBQVc7c0JBRFYsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBUU4sS0FBSztzQkFESixLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixXQUFXO3NCQURWLEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQVdHLG9CQUFvQjtzQkFENUIsTUFBTTtnQkFLRSxvQkFBb0I7c0JBRDVCLE1BQU07Z0JBTUUsV0FBVztzQkFGbkIsTUFBTTtnQkFPRSxXQUFXO3NCQUZuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHN0YXRlVHlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9yYWRpbyc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkZXJTZXJ2aWNlLCBGaWxlVXBsb2FkT3V0cHV0IH0gZnJvbSAnLi9maWxlLXVwbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBLZXlVdGlsIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRm9ybUl0ZW1Db250cm9sLCByZWdpc3RlckZvcm1JdGVtQ29udHJvbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9mb3JtJztcbmltcG9ydCB7IEVOVEVSLCBTUEFDRSwgVEFCIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlPYnNlcnZlciwgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuXG5sZXQgZmlsZVVwbG9hZGVySW5wdXRVbmlxdWVJZCA9IDA7XG5cbi8qKlxuICogVG9vbCB0byBmYWNpbGl0YXRlIHRoZSBpbnB1dCBvZiBmaWxlcyBmcm9tIHRoZSB1c2VyLlxuICogSXQgc3VwcG9ydHMgZHJhZyBhbmQgZHJvcCwgbXVsdGlwbGUgaW5wdXQsIG1heCBmaWxlIHNpemUgYW5kIG1vcmUuXG4gKiBUaGUgZHJhZyBldmVudHMgbWFrZSBpdCB2ZXJ5IGVhc3kgdG8gY3JlYXRlIGFuZCBzdHlsZSBlbGVtZW50cyBsaWtlIGEgZHJvcHpvbmUuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtZmlsZS11cGxvYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZpbGUtdXBsb2FkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoYmx1ciknOiAnb25Ub3VjaGVkKCknLFxuICAgICAgICBjbGFzczogJ2ZkLWZpbGUtdXBsb2FkZXInXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGaWxlVXBsb2FkZXJDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2woRmlsZVVwbG9hZGVyQ29tcG9uZW50KSxcbiAgICAgICAgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycygpXG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3ksIEZvcm1JdGVtQ29udHJvbCB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKVxuICAgIGlucHV0UmVmOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCd0ZXh0SW5wdXQnKVxuICAgIGlucHV0UmVmVGV4dDogRWxlbWVudFJlZjtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBmaWxlIGlucHV0IGlzIGRpc2FibGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKiBJZiBpdCBpcyBtYW5kYXRvcnkgZmllbGQgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgZmlsZSBpbnB1dCBzaG91bGQgYWNjZXB0IG11bHRpcGxlIGZpbGVzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbXVsdGlwbGUgPSB0cnVlO1xuXG4gICAgLyoqIEFjY2VwdGVkIGZpbGUgZXh0ZW5zaW9ucy4gRm9ybWF0OiBgJy5wbmcsLmpwZydgLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWNjZXB0OiBzdHJpbmc7XG5cbiAgICAvKiogV2hldGhlciB0aGUgZmlsZSBpbnB1dCBhY2NlcHRzIGRyYWcgYW5kIGRyb3BwZWQgZmlsZXMuICovXG4gICAgQElucHV0KClcbiAgICBkcmFnbmRyb3AgPSB0cnVlO1xuXG4gICAgLyoqIE1heCBmaWxlIHNpemUgaW4gYnl0ZXMgdGhhdCB0aGUgaW5wdXQgd2lsbCBhY2NlcHQuICovXG4gICAgQElucHV0KClcbiAgICBtYXhGaWxlU2l6ZSA9ICcnO1xuXG4gICAgLyoqIE1pbiBmaWxlIHNpemUgaW4gYnl0ZXMgdGhhdCB0aGUgaW5wdXQgd2lsbCBhY2NlcHQuICovXG4gICAgQElucHV0KClcbiAgICBtaW5GaWxlU2l6ZSA9ICcnO1xuXG4gICAgLyoqIElkIGZvciB0aGUgaW5wdXQgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlkOiBzdHJpbmcgPSAnZmQtZmlsZS11cGxvYWRlci1pbnB1dCcgKyBmaWxlVXBsb2FkZXJJbnB1dFVuaXF1ZUlkKys7XG5cbiAgICAvKiogYXJpYS1sYWJlbCB2YWx1ZSBmb3IgaW5wdXQgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBhcmlhLWxhYmVsLWJ5IHZhbHVlIGZvciBpbnB1dCBlbGVtZW50LiovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWxsZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBwbGFjZWhvbGRlciBmb3IgaW5wdXQgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICAvKiogYnV0dG9uIHZhbHVlICovXG4gICAgQElucHV0KClcbiAgICBidXR0b25MYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqIHZhbHVlIGZvciBpbnB1dCBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYnV0dG9uQXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFRoZSBmaWVsZCB0byBzZXQgc3RhdGUgb2YgcmFkaW8gYnV0dG9uIHVzaW5nOlxuICAgICAqICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnd2FybmluZycgfCAnZGVmYXVsdCcgfCAnaW5mb3JtYXRpb24nXG4gICAgICogYnkgZGVmYXVsdCB2YWx1ZSBpcyBzZXQgdG8gJ2RlZmF1bHQnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGF0ZTogc3RhdGVUeXBlID0gJ2RlZmF1bHQnO1xuXG4gICAgLyoqIHNwZWNpZmllcyBudW1iZXIgb2YgZmlsZXMgdG8gYWxsb3cgdG8gc2VsZWN0ICovXG4gICAgQElucHV0KClcbiAgICBmaWxlTGltaXQ6IG51bWJlcjtcblxuICAgIC8qKiBXaGV0aGVyIG9yIG5vdCB0byBoaWRlIHRoZSBpbnB1dCwgbGVhdmluZyBvbmx5IHRoZSB1cGxvYWQvYnJvd3NlIGJ1dHRvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlucHV0SGlkZGVuID0gZmFsc2U7XG5cbiAgICAvKiogV2lkdGggb2YgdGhlIGZpbGUgdXBsb2FkZXIgKi9cbiAgICBASW5wdXQoKVxuICAgIHdpZHRoOiBzdHJpbmc7XG5cbiAgICAvKiogKiBJdCBzdG9yZXMgdGhlIHZhbGlkIGZpbGVzICAqL1xuICAgIHZhbGlkRmlsZXM6IEZpbGVbXSA9IFtdO1xuXG4gICAgLyoqICogSXQgc3RvcmVzIHRoZSBpbnZhbGlkIGZpbGVzICAqL1xuICAgIGludmFsaWRGaWxlczogRmlsZVtdID0gW107XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiBmaWxlcyBhcmUgc2VsZWN0ZWQuIFBhc3NlZCBvYmplY3QgaXMgdGhlIGFycmF5IG9mIGZpbGVzIHNlbGVjdGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkRmlsZXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlW10+KCk7XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiBzb21lIGludmFsaWQgZmlsZXMgYXJlIHNlbGVjdGVkLiBQYXNzZWQgb2JqZWN0IGlzIHRoZSBhcnJheSBvZiBpbnZhbGlkIGZpbGVzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkSW52YWxpZEZpbGVzID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlW10+KCk7XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiB0aGUgZHJhZ2dlZCBmaWxlIGVudGVycyB0aGUgY29tcG9uZW50IGJvdW5kYXJpZXMuICovXG4gICAgQE91dHB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gICAgcmVhZG9ubHkgb25EcmFnRW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiB0aGUgZHJhZ2dlZCBmaWxlIGV4aXRzIHRoZSBjb21wb25lbnQgYm91bmRhcmllcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICByZWFkb25seSBvbkRyYWdMZWF2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2ZpbGVVcGxvYWRTZXJ2aWNlOiBGaWxlVXBsb2FkZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICByZWFkb25seSBfY29udGVudERlbnNpdHlPYnNlcnZlcjogQ29udGVudERlbnNpdHlPYnNlcnZlclxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uQ2hhbmdlOiAodmFsdWVzOiBGaWxlW10pID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB3cml0ZVZhbHVlKGZpbGVzOiBGaWxlW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKGZpbGVzICYmIGZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2lzRW1wdHkoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fcHJvcGFnYXRlRmlsZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaGFuZGxlRHJvcChmaWxlczogRmlsZVVwbG9hZE91dHB1dCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbGlkRmlsZXMgPSBmaWxlcy52YWxpZEZpbGVzID8/IFtdO1xuICAgICAgICB0aGlzLmludmFsaWRGaWxlcyA9IGZpbGVzLmludmFsaWRGaWxlcyA/PyBbXTtcbiAgICAgICAgdGhpcy5fcHJvcGFnYXRlRmlsZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNlbGVjdEhhbmRsZXIoZXZlbnQ6IEZpbGVbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbGlkYXRlRmlsZXMoZXZlbnQpO1xuICAgICAgICB0aGlzLl9wcm9wYWdhdGVGaWxlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdmFsaWRhdGVGaWxlcyhldmVudDogRmlsZVtdKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZpbGVMaW1pdCAmJiBldmVudC5sZW5ndGggPiB0aGlzLmZpbGVMaW1pdCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGaWxlTGltaXRFcnJvciAtIFNlbGVjdGVkIGZpbGVzIGNvdW50IGlzIG1vcmUgdGhhbiBzcGVjaWZpZWQgbGltaXQgJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWxlT3V0cHV0OiBGaWxlVXBsb2FkT3V0cHV0ID0gdGhpcy5fZmlsZVVwbG9hZFNlcnZpY2UudmFsaWRhdGVGaWxlcyhcbiAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgdGhpcy5taW5GaWxlU2l6ZSxcbiAgICAgICAgICAgIHRoaXMubWF4RmlsZVNpemUsXG4gICAgICAgICAgICB0aGlzLmFjY2VwdFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMudmFsaWRGaWxlcyA9IGZpbGVPdXRwdXQudmFsaWRGaWxlcyA/PyBbXTtcbiAgICAgICAgdGhpcy5pbnZhbGlkRmlsZXMgPSBmaWxlT3V0cHV0LmludmFsaWRGaWxlcyA/PyBbXTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldElucHV0VmFsdWUoc2VsZWN0ZWRGaWxlczogRmlsZVtdLCBmcm9tQ2xlYXIgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBsZXQgZmlsZU5hbWUgPSAnJztcbiAgICAgICAgc2VsZWN0ZWRGaWxlcy5mb3JFYWNoKChmaWxlKSA9PiAoZmlsZU5hbWUgPSBmaWxlTmFtZS5jb25jYXQoJyAnICsgZmlsZS5uYW1lKSkpO1xuICAgICAgICBpZiAoIXRoaXMuaW5wdXRSZWZUZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnB1dFJlZlRleHQubmF0aXZlRWxlbWVudC52YWx1ZSA9IGZpbGVOYW1lO1xuICAgICAgICB0aGlzLmlucHV0UmVmVGV4dC5uYXRpdmVFbGVtZW50LnRpdGxlID0gZmlsZU5hbWU7XG4gICAgICAgIGlmIChmaWxlTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFJlZlRleHQubmF0aXZlRWxlbWVudC5wbGFjZWhvbGRlciA9IGZpbGVOYW1lO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFJlZlRleHQubmF0aXZlRWxlbWVudC5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXI7XG4gICAgICAgICAgICB0aGlzLmlucHV0UmVmVGV4dC5uYXRpdmVFbGVtZW50LnRpdGxlID0gdGhpcy5wbGFjZWhvbGRlcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWZyb21DbGVhcikge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFJlZlRleHQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBrZXlEb3duSGFuZGxlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW1RBQl0pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVucyB0aGUgZmlsZSBzZWxlY3Rvci5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xlYXJzIHRoZSBmaWxlcyBmcm9tIHRoZSBpbnB1dC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsaWRGaWxlcyA9IFtdO1xuICAgICAgICB0aGlzLmludmFsaWRGaWxlcyA9IFtdO1xuICAgICAgICB0aGlzLl9wcm9wYWdhdGVGaWxlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRGaWxlcy5sZW5ndGggPT09IDAgJiYgdGhpcy5pbnZhbGlkRmlsZXMubGVuZ3RoID09PSAwO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcHJvcGFnYXRlRmlsZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0SW5wdXRWYWx1ZSh0aGlzLnZhbGlkRmlsZXMpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsaWRGaWxlcyk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlc0NoYW5nZWQuZW1pdCh0aGlzLnZhbGlkRmlsZXMpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW52YWxpZEZpbGVzLmVtaXQodGhpcy5pbnZhbGlkRmlsZXMpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImZkLWZpbGUtdXBsb2FkZXJfX2NvbnRhaW5lclwiXG4gICAgZmRGaWxlRHJhZ25Ecm9wXG4gICAgW2FjY2VwdF09XCJhY2NlcHRcIlxuICAgIFttYXhGaWxlU2l6ZV09XCJtYXhGaWxlU2l6ZVwiXG4gICAgW21pbkZpbGVTaXplXT1cIm1pbkZpbGVTaXplXCJcbiAgICBbZHJhZ25kcm9wXT1cImRyYWduZHJvcFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgIChmaWxlQ2hhbmdlZCk9XCJoYW5kbGVEcm9wKCRldmVudClcIlxuICAgIChkcmFnRW50ZXJlZCk9XCJvbkRyYWdFbnRlci5lbWl0KClcIlxuICAgIChkcmFnTGVhdmUpPVwib25EcmFnTGVhdmUuZW1pdCgpXCJcbj5cbiAgICA8aW5wdXRcbiAgICAgICAgI3RleHRJbnB1dFxuICAgICAgICBjbGFzcz1cImZkLWlucHV0IGZkLWZpbGUtdXBsb2FkZXJfX2lucHV0XCJcbiAgICAgICAgW2NsYXNzXT1cInN0YXRlID8gJyBpcy0nICsgc3RhdGUgOiAnJ1wiXG4gICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW3RpdGxlXT1cImFyaWFMYWJlbFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFt2YWx1ZV09XCJcIlxuICAgICAgICBbc3R5bGUud2lkdGhdPVwid2lkdGhcIlxuICAgICAgICBbaGlkZGVuXT1cImlucHV0SGlkZGVuXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW4oKVwiXG4gICAgICAgIChrZXlkb3duKT1cImtleURvd25IYW5kbGUoJGV2ZW50KVwiXG4gICAgLz5cblxuICAgIDxidXR0b25cbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgIGNsYXNzPVwiZmlsZS11cGxvYWRlcl9fYnV0dG9uXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCJidXR0b25BcmlhTGFiZWxcIlxuICAgICAgICBbbGFiZWxdPVwiYnV0dG9uTGFiZWxcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwib3BlbigpXCJcbiAgICA+PC9idXR0b24+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZkLWZvcm0tY29udHJvbF1cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPGlucHV0XG4gICAgI2ZpbGVJbnB1dFxuICAgIGZkRmlsZVNlbGVjdFxuICAgIGNsYXNzPVwiZmQtZmlsZS11cGxvYWRlcl9faGlkZGVuXCJcbiAgICB0eXBlPVwiZmlsZVwiXG4gICAgW2F0dHIuYWNjZXB0XT1cImFjY2VwdFwiXG4gICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIChmaWxlU2VsZWN0ZWQpPVwic2VsZWN0SGFuZGxlcigkZXZlbnQpXCJcbi8+XG4iXX0=
|
|
262
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9maWxlLXVwbG9hZGVyL2ZpbGUtdXBsb2FkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZmlsZS11cGxvYWRlci9maWxlLXVwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxtQkFBbUIsRUFBb0IsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRCxPQUFPLEVBQW1CLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEYsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7QUFFaEgsSUFBSSx5QkFBeUIsR0FBRyxDQUFDLENBQUM7QUFFbEM7Ozs7R0FJRztBQXFCSCxNQUFNLE9BQU8scUJBQXFCO0lBaUg5QixjQUFjO0lBQ2QsWUFDWSxrQkFBdUMsRUFDdkMsYUFBZ0MsRUFDL0IsdUJBQStDO1FBRmhELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBcUI7UUFD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QUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHNCQUFzQixDQUFDOzRCQUNwRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDt3QkFDRCx1QkFBdUIsdUJBQXVCO3dCQUM5QywrQkFBK0IsRUFBRTtxQkFDcEMsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTsrS0FLL0MsUUFBUTtzQkFEUCxTQUFTO3VCQUFDLFdBQVc7Z0JBS3RCLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxXQUFXO2dCQUt0QixRQUFRO3NCQURQLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixNQUFNO3NCQURMLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLFdBQVc7c0JBRFYsS0FBSztnQkFLTixXQUFXO3NCQURWLEtBQUs7Z0JBS04sRUFBRTtzQkFERCxLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixjQUFjO3NCQURiLEtBQUs7Z0JBS04sV0FBVztzQkFEVixLQUFLO2dCQUtOLFdBQVc7c0JBRFYsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBUU4sS0FBSztzQkFESixLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixXQUFXO3NCQURWLEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQVdHLG9CQUFvQjtzQkFENUIsTUFBTTtnQkFLRSxvQkFBb0I7c0JBRDVCLE1BQU07Z0JBTUUsV0FBVztzQkFGbkIsTUFBTTtnQkFPRSxXQUFXO3NCQUZuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHN0YXRlVHlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9yYWRpbyc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkZXJTZXJ2aWNlLCBGaWxlVXBsb2FkT3V0cHV0IH0gZnJvbSAnLi9maWxlLXVwbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBLZXlVdGlsIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRm9ybUl0ZW1Db250cm9sLCByZWdpc3RlckZvcm1JdGVtQ29udHJvbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9mb3JtJztcbmltcG9ydCB7IEVOVEVSLCBTUEFDRSwgVEFCIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlPYnNlcnZlciwgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuXG5sZXQgZmlsZVVwbG9hZGVySW5wdXRVbmlxdWVJZCA9IDA7XG5cbi8qKlxuICogVG9vbCB0byBmYWNpbGl0YXRlIHRoZSBpbnB1dCBvZiBmaWxlcyBmcm9tIHRoZSB1c2VyLlxuICogSXQgc3VwcG9ydHMgZHJhZyBhbmQgZHJvcCwgbXVsdGlwbGUgaW5wdXQsIG1heCBmaWxlIHNpemUgYW5kIG1vcmUuXG4gKiBUaGUgZHJhZyBldmVudHMgbWFrZSBpdCB2ZXJ5IGVhc3kgdG8gY3JlYXRlIGFuZCBzdHlsZSBlbGVtZW50cyBsaWtlIGEgZHJvcHpvbmUuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtZmlsZS11cGxvYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZpbGUtdXBsb2FkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoYmx1ciknOiAnb25Ub3VjaGVkKCknLFxuICAgICAgICBjbGFzczogJ2ZkLWZpbGUtdXBsb2FkZXInXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGaWxlVXBsb2FkZXJDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2woRmlsZVVwbG9hZGVyQ29tcG9uZW50KSxcbiAgICAgICAgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycygpXG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3ksIEZvcm1JdGVtQ29udHJvbCB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKVxuICAgIGlucHV0UmVmOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCd0ZXh0SW5wdXQnKVxuICAgIGlucHV0UmVmVGV4dDogRWxlbWVudFJlZjtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBmaWxlIGlucHV0IGlzIGRpc2FibGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKiBJZiBpdCBpcyBtYW5kYXRvcnkgZmllbGQgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgZmlsZSBpbnB1dCBzaG91bGQgYWNjZXB0IG11bHRpcGxlIGZpbGVzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbXVsdGlwbGUgPSB0cnVlO1xuXG4gICAgLyoqIEFjY2VwdGVkIGZpbGUgZXh0ZW5zaW9ucy4gRm9ybWF0OiBgJy5wbmcsLmpwZydgLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWNjZXB0OiBzdHJpbmc7XG5cbiAgICAvKiogV2hldGhlciB0aGUgZmlsZSBpbnB1dCBhY2NlcHRzIGRyYWcgYW5kIGRyb3BwZWQgZmlsZXMuICovXG4gICAgQElucHV0KClcbiAgICBkcmFnbmRyb3AgPSB0cnVlO1xuXG4gICAgLyoqIE1heCBmaWxlIHNpemUgaW4gYnl0ZXMgdGhhdCB0aGUgaW5wdXQgd2lsbCBhY2NlcHQuICovXG4gICAgQElucHV0KClcbiAgICBtYXhGaWxlU2l6ZSA9ICcnO1xuXG4gICAgLyoqIE1pbiBmaWxlIHNpemUgaW4gYnl0ZXMgdGhhdCB0aGUgaW5wdXQgd2lsbCBhY2NlcHQuICovXG4gICAgQElucHV0KClcbiAgICBtaW5GaWxlU2l6ZSA9ICcnO1xuXG4gICAgLyoqIElkIGZvciB0aGUgaW5wdXQgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlkOiBzdHJpbmcgPSAnZmQtZmlsZS11cGxvYWRlci1pbnB1dCcgKyBmaWxlVXBsb2FkZXJJbnB1dFVuaXF1ZUlkKys7XG5cbiAgICAvKiogYXJpYS1sYWJlbCB2YWx1ZSBmb3IgaW5wdXQgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBhcmlhLWxhYmVsLWJ5IHZhbHVlIGZvciBpbnB1dCBlbGVtZW50LiovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWxsZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBwbGFjZWhvbGRlciBmb3IgaW5wdXQgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICAvKiogYnV0dG9uIHZhbHVlICovXG4gICAgQElucHV0KClcbiAgICBidXR0b25MYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqIHZhbHVlIGZvciBpbnB1dCBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYnV0dG9uQXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFRoZSBmaWVsZCB0byBzZXQgc3RhdGUgb2YgcmFkaW8gYnV0dG9uIHVzaW5nOlxuICAgICAqICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnd2FybmluZycgfCAnZGVmYXVsdCcgfCAnaW5mb3JtYXRpb24nXG4gICAgICogYnkgZGVmYXVsdCB2YWx1ZSBpcyBzZXQgdG8gJ2RlZmF1bHQnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGF0ZTogc3RhdGVUeXBlID0gJ2RlZmF1bHQnO1xuXG4gICAgLyoqIHNwZWNpZmllcyBudW1iZXIgb2YgZmlsZXMgdG8gYWxsb3cgdG8gc2VsZWN0ICovXG4gICAgQElucHV0KClcbiAgICBmaWxlTGltaXQ6IG51bWJlcjtcblxuICAgIC8qKiBXaGV0aGVyIG9yIG5vdCB0byBoaWRlIHRoZSBpbnB1dCwgbGVhdmluZyBvbmx5IHRoZSB1cGxvYWQvYnJvd3NlIGJ1dHRvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlucHV0SGlkZGVuID0gZmFsc2U7XG5cbiAgICAvKiogV2lkdGggb2YgdGhlIGZpbGUgdXBsb2FkZXIgKi9cbiAgICBASW5wdXQoKVxuICAgIHdpZHRoOiBzdHJpbmc7XG5cbiAgICAvKiogKiBJdCBzdG9yZXMgdGhlIHZhbGlkIGZpbGVzICAqL1xuICAgIHZhbGlkRmlsZXM6IEZpbGVbXSA9IFtdO1xuXG4gICAgLyoqICogSXQgc3RvcmVzIHRoZSBpbnZhbGlkIGZpbGVzICAqL1xuICAgIGludmFsaWRGaWxlczogRmlsZVtdID0gW107XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiBmaWxlcyBhcmUgc2VsZWN0ZWQuIFBhc3NlZCBvYmplY3QgaXMgdGhlIGFycmF5IG9mIGZpbGVzIHNlbGVjdGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkRmlsZXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlW10+KCk7XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiBzb21lIGludmFsaWQgZmlsZXMgYXJlIHNlbGVjdGVkLiBQYXNzZWQgb2JqZWN0IGlzIHRoZSBhcnJheSBvZiBpbnZhbGlkIGZpbGVzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkSW52YWxpZEZpbGVzID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlW10+KCk7XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiB0aGUgZHJhZ2dlZCBmaWxlIGVudGVycyB0aGUgY29tcG9uZW50IGJvdW5kYXJpZXMuICovXG4gICAgQE91dHB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gICAgcmVhZG9ubHkgb25EcmFnRW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiB0aGUgZHJhZ2dlZCBmaWxlIGV4aXRzIHRoZSBjb21wb25lbnQgYm91bmRhcmllcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICByZWFkb25seSBvbkRyYWdMZWF2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcHJldmlvdXNWYWxpZEZpbGVzO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wcmV2aW91c0ludmFsaWRGaWxlcztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2ZpbGVVcGxvYWRTZXJ2aWNlOiBGaWxlVXBsb2FkZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICByZWFkb25seSBfY29udGVudERlbnNpdHlPYnNlcnZlcjogQ29udGVudERlbnNpdHlPYnNlcnZlclxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uQ2hhbmdlOiAodmFsdWVzOiBGaWxlW10pID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB3cml0ZVZhbHVlKGZpbGVzOiBGaWxlW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKGZpbGVzICYmIGZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2lzRW1wdHkoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fcHJvcGFnYXRlRmlsZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaGFuZGxlRHJvcChmaWxlczogRmlsZVVwbG9hZE91dHB1dCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbGlkRmlsZXMgPSBmaWxlcy52YWxpZEZpbGVzID8/IFtdO1xuICAgICAgICB0aGlzLmludmFsaWRGaWxlcyA9IGZpbGVzLmludmFsaWRGaWxlcyA/PyBbXTtcbiAgICAgICAgdGhpcy5fcHJvcGFnYXRlRmlsZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNlbGVjdEhhbmRsZXIoZXZlbnQ6IEZpbGVbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbGlkYXRlRmlsZXMoZXZlbnQpO1xuICAgICAgICB0aGlzLl9wcm9wYWdhdGVGaWxlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdmFsaWRhdGVGaWxlcyhldmVudDogRmlsZVtdKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZpbGVMaW1pdCAmJiBldmVudC5sZW5ndGggPiB0aGlzLmZpbGVMaW1pdCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGaWxlTGltaXRFcnJvciAtIFNlbGVjdGVkIGZpbGVzIGNvdW50IGlzIG1vcmUgdGhhbiBzcGVjaWZpZWQgbGltaXQgJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWxlT3V0cHV0OiBGaWxlVXBsb2FkT3V0cHV0ID0gdGhpcy5fZmlsZVVwbG9hZFNlcnZpY2UudmFsaWRhdGVGaWxlcyhcbiAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgdGhpcy5taW5GaWxlU2l6ZSxcbiAgICAgICAgICAgIHRoaXMubWF4RmlsZVNpemUsXG4gICAgICAgICAgICB0aGlzLmFjY2VwdFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMudmFsaWRGaWxlcyA9IGZpbGVPdXRwdXQudmFsaWRGaWxlcyA/PyBbXTtcbiAgICAgICAgdGhpcy5pbnZhbGlkRmlsZXMgPSBmaWxlT3V0cHV0LmludmFsaWRGaWxlcyA/PyBbXTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldElucHV0VmFsdWUoc2VsZWN0ZWRGaWxlczogRmlsZVtdLCBmcm9tQ2xlYXIgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBsZXQgZmlsZU5hbWUgPSAnJztcbiAgICAgICAgc2VsZWN0ZWRGaWxlcy5mb3JFYWNoKChmaWxlKSA9PiAoZmlsZU5hbWUgPSBmaWxlTmFtZS5jb25jYXQoJyAnICsgZmlsZS5uYW1lKSkpO1xuICAgICAgICBpZiAoIXRoaXMuaW5wdXRSZWZUZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnB1dFJlZlRleHQubmF0aXZlRWxlbWVudC52YWx1ZSA9IGZpbGVOYW1lO1xuICAgICAgICB0aGlzLmlucHV0UmVmVGV4dC5uYXRpdmVFbGVtZW50LnRpdGxlID0gZmlsZU5hbWU7XG4gICAgICAgIGlmIChmaWxlTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFJlZlRleHQubmF0aXZlRWxlbWVudC5wbGFjZWhvbGRlciA9IGZpbGVOYW1lO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFJlZlRleHQubmF0aXZlRWxlbWVudC5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXI7XG4gICAgICAgICAgICB0aGlzLmlucHV0UmVmVGV4dC5uYXRpdmVFbGVtZW50LnRpdGxlID0gdGhpcy5wbGFjZWhvbGRlcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWZyb21DbGVhcikge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFJlZlRleHQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBrZXlEb3duSGFuZGxlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW1RBQl0pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVucyB0aGUgZmlsZSBzZWxlY3Rvci5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xlYXJzIHRoZSBmaWxlcyBmcm9tIHRoZSBpbnB1dC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIGxldCBzaG91bGRQcm9wYWdhdGUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMudmFsaWRGaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRGaWxlcyA9IFtdO1xuICAgICAgICAgICAgc2hvdWxkUHJvcGFnYXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pbnZhbGlkRmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmludmFsaWRGaWxlcyA9IFtdO1xuICAgICAgICAgICAgc2hvdWxkUHJvcGFnYXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBDbGVhcnMgc2VsZWN0aW9uIGluIGZpbGUgdXBsb2FkZXIgaW5wdXQuXG4gICAgICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICBpZiAoc2hvdWxkUHJvcGFnYXRlKSB7XG4gICAgICAgICAgICB0aGlzLl9wcm9wYWdhdGVGaWxlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWxpZEZpbGVzLmxlbmd0aCA9PT0gMCAmJiB0aGlzLmludmFsaWRGaWxlcy5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wcm9wYWdhdGVGaWxlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRJbnB1dFZhbHVlKHRoaXMudmFsaWRGaWxlcyk7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWxpZEZpbGVzKTtcbiAgICAgICAgaWYgKHRoaXMuX3ByZXZpb3VzVmFsaWRGaWxlcyAhPT0gdGhpcy52YWxpZEZpbGVzKSB7XG4gICAgICAgICAgICB0aGlzLl9wcmV2aW91c1ZhbGlkRmlsZXMgPSB0aGlzLnZhbGlkRmlsZXM7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsZXNDaGFuZ2VkLmVtaXQodGhpcy52YWxpZEZpbGVzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fcHJldmlvdXNJbnZhbGlkRmlsZXMgIT09IHRoaXMuaW52YWxpZEZpbGVzKSB7XG4gICAgICAgICAgICB0aGlzLl9wcmV2aW91c0ludmFsaWRGaWxlcyA9IHRoaXMuaW52YWxpZEZpbGVzO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEludmFsaWRGaWxlcy5lbWl0KHRoaXMuaW52YWxpZEZpbGVzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImZkLWZpbGUtdXBsb2FkZXJfX2NvbnRhaW5lclwiXG4gICAgZmRGaWxlRHJhZ25Ecm9wXG4gICAgW2FjY2VwdF09XCJhY2NlcHRcIlxuICAgIFttYXhGaWxlU2l6ZV09XCJtYXhGaWxlU2l6ZVwiXG4gICAgW21pbkZpbGVTaXplXT1cIm1pbkZpbGVTaXplXCJcbiAgICBbZHJhZ25kcm9wXT1cImRyYWduZHJvcFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgIChmaWxlQ2hhbmdlZCk9XCJoYW5kbGVEcm9wKCRldmVudClcIlxuICAgIChkcmFnRW50ZXJlZCk9XCJvbkRyYWdFbnRlci5lbWl0KClcIlxuICAgIChkcmFnTGVhdmUpPVwib25EcmFnTGVhdmUuZW1pdCgpXCJcbj5cbiAgICA8aW5wdXRcbiAgICAgICAgI3RleHRJbnB1dFxuICAgICAgICBjbGFzcz1cImZkLWlucHV0IGZkLWZpbGUtdXBsb2FkZXJfX2lucHV0XCJcbiAgICAgICAgW2NsYXNzXT1cInN0YXRlID8gJyBpcy0nICsgc3RhdGUgOiAnJ1wiXG4gICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW3RpdGxlXT1cImFyaWFMYWJlbFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFt2YWx1ZV09XCJcIlxuICAgICAgICBbc3R5bGUud2lkdGhdPVwid2lkdGhcIlxuICAgICAgICBbaGlkZGVuXT1cImlucHV0SGlkZGVuXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW4oKVwiXG4gICAgICAgIChrZXlkb3duKT1cImtleURvd25IYW5kbGUoJGV2ZW50KVwiXG4gICAgLz5cblxuICAgIDxidXR0b25cbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgIGNsYXNzPVwiZmlsZS11cGxvYWRlcl9fYnV0dG9uXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCJidXR0b25BcmlhTGFiZWxcIlxuICAgICAgICBbbGFiZWxdPVwiYnV0dG9uTGFiZWxcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwib3BlbigpXCJcbiAgICA+PC9idXR0b24+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZkLWZvcm0tY29udHJvbF1cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPGlucHV0XG4gICAgI2ZpbGVJbnB1dFxuICAgIGZkRmlsZVNlbGVjdFxuICAgIGNsYXNzPVwiZmQtZmlsZS11cGxvYWRlcl9faGlkZGVuXCJcbiAgICB0eXBlPVwiZmlsZVwiXG4gICAgW2F0dHIuYWNjZXB0XT1cImFjY2VwdFwiXG4gICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIChmaWxlU2VsZWN0ZWQpPVwic2VsZWN0SGFuZGxlcigkZXZlbnQpXCJcbi8+XG4iXX0=
|
|
@@ -356,9 +356,20 @@ class FileUploaderComponent {
|
|
|
356
356
|
* Clears the files from the input.
|
|
357
357
|
*/
|
|
358
358
|
clear() {
|
|
359
|
-
|
|
360
|
-
this.
|
|
361
|
-
|
|
359
|
+
let shouldPropagate = false;
|
|
360
|
+
if (this.validFiles.length) {
|
|
361
|
+
this.validFiles = [];
|
|
362
|
+
shouldPropagate = true;
|
|
363
|
+
}
|
|
364
|
+
if (this.invalidFiles.length) {
|
|
365
|
+
this.invalidFiles = [];
|
|
366
|
+
shouldPropagate = true;
|
|
367
|
+
}
|
|
368
|
+
// Clears selection in file uploader input.
|
|
369
|
+
this.inputRef.nativeElement.value = '';
|
|
370
|
+
if (shouldPropagate) {
|
|
371
|
+
this._propagateFiles();
|
|
372
|
+
}
|
|
362
373
|
}
|
|
363
374
|
/** @hidden */
|
|
364
375
|
_isEmpty() {
|
|
@@ -368,8 +379,14 @@ class FileUploaderComponent {
|
|
|
368
379
|
_propagateFiles() {
|
|
369
380
|
this.setInputValue(this.validFiles);
|
|
370
381
|
this.onChange(this.validFiles);
|
|
371
|
-
this.
|
|
372
|
-
|
|
382
|
+
if (this._previousValidFiles !== this.validFiles) {
|
|
383
|
+
this._previousValidFiles = this.validFiles;
|
|
384
|
+
this.selectedFilesChanged.emit(this.validFiles);
|
|
385
|
+
}
|
|
386
|
+
if (this._previousInvalidFiles !== this.invalidFiles) {
|
|
387
|
+
this._previousInvalidFiles = this.invalidFiles;
|
|
388
|
+
this.selectedInvalidFiles.emit(this.invalidFiles);
|
|
389
|
+
}
|
|
373
390
|
}
|
|
374
391
|
}
|
|
375
392
|
FileUploaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FileUploaderComponent, deps: [{ token: FileUploaderService }, { token: i0.ChangeDetectorRef }, { token: i2.ContentDensityObserver }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-file-uploader.mjs","sources":["../../../../libs/core/src/lib/file-uploader/file-uploader.service.ts","../../../../libs/core/src/lib/file-uploader/directives/file-uploader-select.directive.ts","../../../../libs/core/src/lib/file-uploader/directives/file-uploader-dragndrop.directive.ts","../../../../libs/core/src/lib/file-uploader/file-uploader.component.ts","../../../../libs/core/src/lib/file-uploader/file-uploader.component.html","../../../../libs/core/src/lib/file-uploader/deprecated-file-uploader-content-density.directive.ts","../../../../libs/core/src/lib/file-uploader/file-uploader.module.ts","../../../../libs/core/src/lib/file-uploader/fundamental-ngx-core-file-uploader.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { parserFileSize } from '@fundamental-ngx/cdk/utils';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nexport interface FileUploadOutput {\n validFiles?: File[];\n invalidFiles?: File[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FileUploaderService {\n /**\n * Method that validates files passed. It is based on\n * @param files File[]\n * @param minFileSize string\n * @param maxFileSize string\n * @param acceptedExtensions string\n */\n validateFiles(\n files: File[],\n minFileSize: string,\n maxFileSize: string,\n acceptedExtensions: Nullable<string>\n ): FileUploadOutput {\n const maxSize = parserFileSize(maxFileSize);\n const minSize = parserFileSize(minFileSize);\n\n let allowedExtensions: string[] | null = null;\n if (acceptedExtensions) {\n allowedExtensions = acceptedExtensions.toLocaleLowerCase().replace(/[\\s.]/g, '').split(',');\n }\n\n const fileUploadOutput: FileUploadOutput = {};\n\n fileUploadOutput.validFiles = files.filter(\n (file) => this._checkSize(file.size, maxSize, minSize) && this._checkExtension(file, allowedExtensions)\n );\n fileUploadOutput.invalidFiles = files.filter(\n (file) => !this._checkSize(file.size, maxSize, minSize) || !this._checkExtension(file, allowedExtensions)\n );\n\n return fileUploadOutput;\n }\n\n /** @hidden */\n private _checkExtension(file: File, allowedExtensions: string[] | null): boolean {\n if (!allowedExtensions) {\n return true;\n }\n const extension = file.name.split('.')[file.name.split('.').length - 1].toLocaleLowerCase();\n return allowedExtensions.lastIndexOf(extension) !== -1;\n }\n\n /** @hidden */\n private _checkSize(fileSize: number, maxSize: number, minSize: number): boolean {\n if (maxSize && fileSize > maxSize) {\n return false;\n }\n if (minSize && fileSize < minSize) {\n return false;\n }\n return true;\n }\n}\n","import { Directive, Input, Output, EventEmitter } from '@angular/core';\nimport { HostListener, HostBinding } from '@angular/core';\n\n/**\n * Directive tool to facilitate interacting with a native file input element.\n */\n@Directive({\n selector: '[fdFileSelect]'\n})\nexport class FileUploaderSelectDirective {\n /** Whether the input should accept multiple file selections. */\n @Input()\n private multiple = true;\n\n /** Event emitted when files are selected. */\n @Output()\n readonly fileSelected = new EventEmitter<File[]>();\n\n /** @hidden */\n @HostBinding('attr.multiple')\n get multipleBinding(): boolean | undefined {\n return this.multiple ? true : undefined;\n }\n\n /** @hidden */\n @HostListener('change', ['$event'])\n onChange(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n const elRef = <HTMLInputElement>event.target;\n const files = elRef.files;\n if (files?.length) {\n const fileArray = Array.from(files);\n this.fileSelected.emit(fileArray);\n }\n }\n }\n}\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { FileUploaderService, FileUploadOutput } from '../file-uploader.service';\n\n/**\n * Directive that handles the drag and drop feature of the file input.\n */\n@Directive({\n selector: '[fdFileDragnDrop], [fd-file-drag-n-drop]'\n})\nexport class FileUploaderDragndropDirective {\n /** Whether multiple files can be dropped at once. */\n @Input()\n multiple = true;\n\n /** Accepted file extensions. Format: `'.png,.jpg'`. */\n @Input()\n accept: string;\n\n /** Max file size in bytes that the input will accept. */\n @Input()\n maxFileSize = '';\n\n /** Min file size in bytes that the input will accept. */\n @Input()\n minFileSize = '';\n\n /** Whether selecting of new files is disabled. */\n @Input()\n disabled = false;\n\n /** Whether drag and drop is enabled. Disables this directive. */\n @Input()\n dragndrop = true;\n\n /** Event emitted when files are dropped. Passes back an array of files. */\n @Output()\n readonly fileChanged = new EventEmitter<FileUploadOutput>();\n\n /** Event emitted when the dragged file enters the dropzone. */\n @Output()\n readonly dragEntered = new EventEmitter<void>();\n\n /** Event emitted when the dragged file exits the dropzone. */\n @Output()\n readonly dragLeave = new EventEmitter<void>();\n\n /** @hidden */\n private elementStateCounter = 0;\n\n /** @hidden */\n constructor(private _fileUploadService: FileUploaderService) {}\n\n /** @hidden */\n @HostListener('dragover', ['$event'])\n public onDragover(event: Event): void {\n if (this.dragndrop) {\n this._muteEvent(event);\n }\n }\n\n /** @hidden */\n @HostListener('dragenter', [])\n public onDragenter(): void {\n ++this.elementStateCounter;\n if (this.dragndrop && this.elementStateCounter === 1) {\n this.dragEntered.emit();\n }\n }\n\n /** @hidden */\n @HostListener('dragleave', ['$event'])\n public onDragleave(event: Event): void {\n --this.elementStateCounter;\n if (this.dragndrop && this.elementStateCounter === 0) {\n this._muteEvent(event);\n this.dragLeave.emit();\n }\n }\n\n /** @hidden */\n @HostListener('drop', ['$event'])\n public onDrop(event: any): void {\n this.elementStateCounter = 0;\n\n if (!this.dragndrop || this.disabled) {\n return;\n }\n this._muteEvent(event);\n const rawFiles = event.dataTransfer.files;\n const files: File[] = Array.from(rawFiles);\n\n if (!this.multiple && files.length > 1) {\n this.fileChanged.emit({\n validFiles: [],\n invalidFiles: files\n });\n return;\n }\n\n const fileOutput: FileUploadOutput = this._fileUploadService.validateFiles(\n files,\n this.minFileSize,\n this.maxFileSize,\n this.accept\n );\n\n this.fileChanged.emit(fileOutput);\n }\n\n /** @hidden */\n private _muteEvent(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { stateType } from '@fundamental-ngx/core/radio';\nimport { FileUploaderService, FileUploadOutput } from './file-uploader.service';\nimport { Subscription } from 'rxjs';\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { FormItemControl, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport { ENTER, SPACE, TAB } from '@angular/cdk/keycodes';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\n\nlet fileUploaderInputUniqueId = 0;\n\n/**\n * Tool to facilitate the input of files from the user.\n * It supports drag and drop, multiple input, max file size and more.\n * The drag events make it very easy to create and style elements like a dropzone.\n */\n@Component({\n selector: 'fd-file-uploader',\n templateUrl: './file-uploader.component.html',\n styleUrls: ['./file-uploader.component.scss'],\n host: {\n '(blur)': 'onTouched()',\n class: 'fd-file-uploader'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FileUploaderComponent),\n multi: true\n },\n registerFormItemControl(FileUploaderComponent),\n contentDensityObserverProviders()\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FileUploaderComponent implements ControlValueAccessor, OnDestroy, FormItemControl {\n /** @hidden */\n @ViewChild('fileInput')\n inputRef: ElementRef;\n\n /** @hidden */\n @ViewChild('textInput')\n inputRefText: ElementRef;\n\n /** Whether the file input is disabled. */\n @Input()\n disabled = false;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Whether the file input should accept multiple files. */\n @Input()\n multiple = true;\n\n /** Accepted file extensions. Format: `'.png,.jpg'`. */\n @Input()\n accept: string;\n\n /** Whether the file input accepts drag and dropped files. */\n @Input()\n dragndrop = true;\n\n /** Max file size in bytes that the input will accept. */\n @Input()\n maxFileSize = '';\n\n /** Min file size in bytes that the input will accept. */\n @Input()\n minFileSize = '';\n\n /** Id for the input element. */\n @Input()\n id: string = 'fd-file-uploader-input' + fileUploaderInputUniqueId++;\n\n /** aria-label value for input element. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** aria-label-by value for input element.*/\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** placeholder for input element. */\n @Input()\n placeholder: string;\n\n /** button value */\n @Input()\n buttonLabel: string;\n\n /** value for input element. */\n @Input()\n buttonAriaLabel: Nullable<string>;\n\n /** The field to set state of radio button using:\n * 'success' | 'error' | 'warning' | 'default' | 'information'\n * by default value is set to 'default'\n */\n @Input()\n state: stateType = 'default';\n\n /** specifies number of files to allow to select */\n @Input()\n fileLimit: number;\n\n /** Whether or not to hide the input, leaving only the upload/browse button. */\n @Input()\n inputHidden = false;\n\n /** Width of the file uploader */\n @Input()\n width: string;\n\n /** * It stores the valid files */\n validFiles: File[] = [];\n\n /** * It stores the invalid files */\n invalidFiles: File[] = [];\n\n /** Event fired when files are selected. Passed object is the array of files selected. */\n @Output()\n readonly selectedFilesChanged = new EventEmitter<File[]>();\n\n /** Event fired when some invalid files are selected. Passed object is the array of invalid files. */\n @Output()\n readonly selectedInvalidFiles = new EventEmitter<File[]>();\n\n /** Event fired when the dragged file enters the component boundaries. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onDragEnter = new EventEmitter<void>();\n\n /** Event fired when the dragged file exits the component boundaries. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onDragLeave = new EventEmitter<void>();\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n constructor(\n private _fileUploadService: FileUploaderService,\n private _changeDetRef: ChangeDetectorRef,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n onChange: (values: File[]) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /** @hidden */\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /** @hidden */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._changeDetRef.detectChanges();\n }\n\n /** @hidden */\n writeValue(files: File[]): void {\n if (files && files.length === 0) {\n this.clear();\n } else if (this._isEmpty()) {\n return;\n } else {\n this._propagateFiles();\n }\n }\n\n /** @hidden */\n handleDrop(files: FileUploadOutput): void {\n this.validFiles = files.validFiles ?? [];\n this.invalidFiles = files.invalidFiles ?? [];\n this._propagateFiles();\n }\n\n /** @hidden */\n selectHandler(event: File[]): void {\n this.validateFiles(event);\n this._propagateFiles();\n }\n\n /** @hidden */\n validateFiles(event: File[]): void {\n if (this.fileLimit && event.length > this.fileLimit) {\n throw new Error('FileLimitError - Selected files count is more than specified limit ');\n }\n\n const fileOutput: FileUploadOutput = this._fileUploadService.validateFiles(\n event,\n this.minFileSize,\n this.maxFileSize,\n this.accept\n );\n\n this.validFiles = fileOutput.validFiles ?? [];\n this.invalidFiles = fileOutput.invalidFiles ?? [];\n }\n\n /** @hidden */\n setInputValue(selectedFiles: File[], fromClear = false): void {\n let fileName = '';\n selectedFiles.forEach((file) => (fileName = fileName.concat(' ' + file.name)));\n if (!this.inputRefText) {\n return;\n }\n this.inputRefText.nativeElement.value = fileName;\n this.inputRefText.nativeElement.title = fileName;\n if (fileName) {\n this.inputRefText.nativeElement.placeholder = fileName;\n } else {\n this.inputRefText.nativeElement.placeholder = this.placeholder;\n this.inputRefText.nativeElement.title = this.placeholder;\n }\n if (!fromClear) {\n this.inputRefText.nativeElement.focus();\n }\n }\n\n /** @hidden */\n keyDownHandle(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this.open();\n } else if (KeyUtil.isKeyCode(event, [TAB])) {\n return;\n }\n event.preventDefault();\n }\n\n /**\n * Opens the file selector.\n */\n public open(): void {\n this.inputRef.nativeElement.click();\n }\n\n /**\n * Clears the files from the input.\n */\n public clear(): void {\n this.validFiles = [];\n this.invalidFiles = [];\n this._propagateFiles();\n }\n\n /** @hidden */\n private _isEmpty(): boolean {\n return this.validFiles.length === 0 && this.invalidFiles.length === 0;\n }\n\n /** @hidden */\n private _propagateFiles(): void {\n this.setInputValue(this.validFiles);\n this.onChange(this.validFiles);\n this.selectedFilesChanged.emit(this.validFiles);\n this.selectedInvalidFiles.emit(this.invalidFiles);\n }\n}\n","<div\n class=\"fd-file-uploader__container\"\n fdFileDragnDrop\n [accept]=\"accept\"\n [maxFileSize]=\"maxFileSize\"\n [minFileSize]=\"minFileSize\"\n [dragndrop]=\"dragndrop\"\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n (fileChanged)=\"handleDrop($event)\"\n (dragEntered)=\"onDragEnter.emit()\"\n (dragLeave)=\"onDragLeave.emit()\"\n>\n <input\n #textInput\n class=\"fd-input fd-file-uploader__input\"\n [class]=\"state ? ' is-' + state : ''\"\n aria-live=\"polite\"\n autocomplete=\"off\"\n type=\"text\"\n tabindex=\"0\"\n [id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required\"\n [title]=\"ariaLabel\"\n [placeholder]=\"placeholder\"\n [value]=\"\"\n [style.width]=\"width\"\n [hidden]=\"inputHidden\"\n [disabled]=\"disabled\"\n (click)=\"open()\"\n (keydown)=\"keyDownHandle($event)\"\n />\n\n <button\n fd-button\n class=\"file-uploader__button\"\n [ariaLabel]=\"buttonAriaLabel\"\n [label]=\"buttonLabel\"\n [disabled]=\"disabled\"\n (click)=\"open()\"\n ></button>\n <ng-content select=\"[fd-form-control]\"></ng-content>\n</div>\n\n<input\n #fileInput\n fdFileSelect\n class=\"fd-file-uploader__hidden\"\n type=\"file\"\n [attr.accept]=\"accept\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n (fileSelected)=\"selectHandler($event)\"\n/>\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-file-uploader[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedFileUploaderContentDensityDirective)\n }\n ]\n})\nexport class DeprecatedFileUploaderContentDensityDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('fd-file-uploader');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FileUploaderComponent } from './file-uploader.component';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { FileUploaderSelectDirective } from './directives/file-uploader-select.directive';\nimport { FileUploaderDragndropDirective } from './directives/file-uploader-dragndrop.directive';\nimport { DeprecatedFileUploaderContentDensityDirective } from './deprecated-file-uploader-content-density.directive';\nimport { FormControlModule } from '@fundamental-ngx/core/form';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ButtonModule, FormControlModule, ContentDensityModule],\n exports: [\n FileUploaderComponent,\n FileUploaderSelectDirective,\n FileUploaderDragndropDirective,\n DeprecatedFileUploaderContentDensityDirective,\n ContentDensityModule\n ],\n declarations: [\n FileUploaderComponent,\n FileUploaderSelectDirective,\n FileUploaderDragndropDirective,\n DeprecatedFileUploaderContentDensityDirective\n ]\n})\nexport class FileUploaderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.FileUploaderService","i4.FileUploaderSelectDirective","i5.FileUploaderDragndropDirective"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-file-uploader.mjs","sources":["../../../../libs/core/src/lib/file-uploader/file-uploader.service.ts","../../../../libs/core/src/lib/file-uploader/directives/file-uploader-select.directive.ts","../../../../libs/core/src/lib/file-uploader/directives/file-uploader-dragndrop.directive.ts","../../../../libs/core/src/lib/file-uploader/file-uploader.component.ts","../../../../libs/core/src/lib/file-uploader/file-uploader.component.html","../../../../libs/core/src/lib/file-uploader/deprecated-file-uploader-content-density.directive.ts","../../../../libs/core/src/lib/file-uploader/file-uploader.module.ts","../../../../libs/core/src/lib/file-uploader/fundamental-ngx-core-file-uploader.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { parserFileSize } from '@fundamental-ngx/cdk/utils';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nexport interface FileUploadOutput {\n validFiles?: File[];\n invalidFiles?: File[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FileUploaderService {\n /**\n * Method that validates files passed. It is based on\n * @param files File[]\n * @param minFileSize string\n * @param maxFileSize string\n * @param acceptedExtensions string\n */\n validateFiles(\n files: File[],\n minFileSize: string,\n maxFileSize: string,\n acceptedExtensions: Nullable<string>\n ): FileUploadOutput {\n const maxSize = parserFileSize(maxFileSize);\n const minSize = parserFileSize(minFileSize);\n\n let allowedExtensions: string[] | null = null;\n if (acceptedExtensions) {\n allowedExtensions = acceptedExtensions.toLocaleLowerCase().replace(/[\\s.]/g, '').split(',');\n }\n\n const fileUploadOutput: FileUploadOutput = {};\n\n fileUploadOutput.validFiles = files.filter(\n (file) => this._checkSize(file.size, maxSize, minSize) && this._checkExtension(file, allowedExtensions)\n );\n fileUploadOutput.invalidFiles = files.filter(\n (file) => !this._checkSize(file.size, maxSize, minSize) || !this._checkExtension(file, allowedExtensions)\n );\n\n return fileUploadOutput;\n }\n\n /** @hidden */\n private _checkExtension(file: File, allowedExtensions: string[] | null): boolean {\n if (!allowedExtensions) {\n return true;\n }\n const extension = file.name.split('.')[file.name.split('.').length - 1].toLocaleLowerCase();\n return allowedExtensions.lastIndexOf(extension) !== -1;\n }\n\n /** @hidden */\n private _checkSize(fileSize: number, maxSize: number, minSize: number): boolean {\n if (maxSize && fileSize > maxSize) {\n return false;\n }\n if (minSize && fileSize < minSize) {\n return false;\n }\n return true;\n }\n}\n","import { Directive, Input, Output, EventEmitter } from '@angular/core';\nimport { HostListener, HostBinding } from '@angular/core';\n\n/**\n * Directive tool to facilitate interacting with a native file input element.\n */\n@Directive({\n selector: '[fdFileSelect]'\n})\nexport class FileUploaderSelectDirective {\n /** Whether the input should accept multiple file selections. */\n @Input()\n private multiple = true;\n\n /** Event emitted when files are selected. */\n @Output()\n readonly fileSelected = new EventEmitter<File[]>();\n\n /** @hidden */\n @HostBinding('attr.multiple')\n get multipleBinding(): boolean | undefined {\n return this.multiple ? true : undefined;\n }\n\n /** @hidden */\n @HostListener('change', ['$event'])\n onChange(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n const elRef = <HTMLInputElement>event.target;\n const files = elRef.files;\n if (files?.length) {\n const fileArray = Array.from(files);\n this.fileSelected.emit(fileArray);\n }\n }\n }\n}\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { FileUploaderService, FileUploadOutput } from '../file-uploader.service';\n\n/**\n * Directive that handles the drag and drop feature of the file input.\n */\n@Directive({\n selector: '[fdFileDragnDrop], [fd-file-drag-n-drop]'\n})\nexport class FileUploaderDragndropDirective {\n /** Whether multiple files can be dropped at once. */\n @Input()\n multiple = true;\n\n /** Accepted file extensions. Format: `'.png,.jpg'`. */\n @Input()\n accept: string;\n\n /** Max file size in bytes that the input will accept. */\n @Input()\n maxFileSize = '';\n\n /** Min file size in bytes that the input will accept. */\n @Input()\n minFileSize = '';\n\n /** Whether selecting of new files is disabled. */\n @Input()\n disabled = false;\n\n /** Whether drag and drop is enabled. Disables this directive. */\n @Input()\n dragndrop = true;\n\n /** Event emitted when files are dropped. Passes back an array of files. */\n @Output()\n readonly fileChanged = new EventEmitter<FileUploadOutput>();\n\n /** Event emitted when the dragged file enters the dropzone. */\n @Output()\n readonly dragEntered = new EventEmitter<void>();\n\n /** Event emitted when the dragged file exits the dropzone. */\n @Output()\n readonly dragLeave = new EventEmitter<void>();\n\n /** @hidden */\n private elementStateCounter = 0;\n\n /** @hidden */\n constructor(private _fileUploadService: FileUploaderService) {}\n\n /** @hidden */\n @HostListener('dragover', ['$event'])\n public onDragover(event: Event): void {\n if (this.dragndrop) {\n this._muteEvent(event);\n }\n }\n\n /** @hidden */\n @HostListener('dragenter', [])\n public onDragenter(): void {\n ++this.elementStateCounter;\n if (this.dragndrop && this.elementStateCounter === 1) {\n this.dragEntered.emit();\n }\n }\n\n /** @hidden */\n @HostListener('dragleave', ['$event'])\n public onDragleave(event: Event): void {\n --this.elementStateCounter;\n if (this.dragndrop && this.elementStateCounter === 0) {\n this._muteEvent(event);\n this.dragLeave.emit();\n }\n }\n\n /** @hidden */\n @HostListener('drop', ['$event'])\n public onDrop(event: any): void {\n this.elementStateCounter = 0;\n\n if (!this.dragndrop || this.disabled) {\n return;\n }\n this._muteEvent(event);\n const rawFiles = event.dataTransfer.files;\n const files: File[] = Array.from(rawFiles);\n\n if (!this.multiple && files.length > 1) {\n this.fileChanged.emit({\n validFiles: [],\n invalidFiles: files\n });\n return;\n }\n\n const fileOutput: FileUploadOutput = this._fileUploadService.validateFiles(\n files,\n this.minFileSize,\n this.maxFileSize,\n this.accept\n );\n\n this.fileChanged.emit(fileOutput);\n }\n\n /** @hidden */\n private _muteEvent(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { stateType } from '@fundamental-ngx/core/radio';\nimport { FileUploaderService, FileUploadOutput } from './file-uploader.service';\nimport { Subscription } from 'rxjs';\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { FormItemControl, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport { ENTER, SPACE, TAB } from '@angular/cdk/keycodes';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\n\nlet fileUploaderInputUniqueId = 0;\n\n/**\n * Tool to facilitate the input of files from the user.\n * It supports drag and drop, multiple input, max file size and more.\n * The drag events make it very easy to create and style elements like a dropzone.\n */\n@Component({\n selector: 'fd-file-uploader',\n templateUrl: './file-uploader.component.html',\n styleUrls: ['./file-uploader.component.scss'],\n host: {\n '(blur)': 'onTouched()',\n class: 'fd-file-uploader'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FileUploaderComponent),\n multi: true\n },\n registerFormItemControl(FileUploaderComponent),\n contentDensityObserverProviders()\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FileUploaderComponent implements ControlValueAccessor, OnDestroy, FormItemControl {\n /** @hidden */\n @ViewChild('fileInput')\n inputRef: ElementRef;\n\n /** @hidden */\n @ViewChild('textInput')\n inputRefText: ElementRef;\n\n /** Whether the file input is disabled. */\n @Input()\n disabled = false;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Whether the file input should accept multiple files. */\n @Input()\n multiple = true;\n\n /** Accepted file extensions. Format: `'.png,.jpg'`. */\n @Input()\n accept: string;\n\n /** Whether the file input accepts drag and dropped files. */\n @Input()\n dragndrop = true;\n\n /** Max file size in bytes that the input will accept. */\n @Input()\n maxFileSize = '';\n\n /** Min file size in bytes that the input will accept. */\n @Input()\n minFileSize = '';\n\n /** Id for the input element. */\n @Input()\n id: string = 'fd-file-uploader-input' + fileUploaderInputUniqueId++;\n\n /** aria-label value for input element. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** aria-label-by value for input element.*/\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** placeholder for input element. */\n @Input()\n placeholder: string;\n\n /** button value */\n @Input()\n buttonLabel: string;\n\n /** value for input element. */\n @Input()\n buttonAriaLabel: Nullable<string>;\n\n /** The field to set state of radio button using:\n * 'success' | 'error' | 'warning' | 'default' | 'information'\n * by default value is set to 'default'\n */\n @Input()\n state: stateType = 'default';\n\n /** specifies number of files to allow to select */\n @Input()\n fileLimit: number;\n\n /** Whether or not to hide the input, leaving only the upload/browse button. */\n @Input()\n inputHidden = false;\n\n /** Width of the file uploader */\n @Input()\n width: string;\n\n /** * It stores the valid files */\n validFiles: File[] = [];\n\n /** * It stores the invalid files */\n invalidFiles: File[] = [];\n\n /** Event fired when files are selected. Passed object is the array of files selected. */\n @Output()\n readonly selectedFilesChanged = new EventEmitter<File[]>();\n\n /** Event fired when some invalid files are selected. Passed object is the array of invalid files. */\n @Output()\n readonly selectedInvalidFiles = new EventEmitter<File[]>();\n\n /** Event fired when the dragged file enters the component boundaries. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onDragEnter = new EventEmitter<void>();\n\n /** Event fired when the dragged file exits the component boundaries. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onDragLeave = new EventEmitter<void>();\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _previousValidFiles;\n\n /** @hidden */\n private _previousInvalidFiles;\n\n /** @hidden */\n constructor(\n private _fileUploadService: FileUploaderService,\n private _changeDetRef: ChangeDetectorRef,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n onChange: (values: File[]) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /** @hidden */\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /** @hidden */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._changeDetRef.detectChanges();\n }\n\n /** @hidden */\n writeValue(files: File[]): void {\n if (files && files.length === 0) {\n this.clear();\n } else if (this._isEmpty()) {\n return;\n } else {\n this._propagateFiles();\n }\n }\n\n /** @hidden */\n handleDrop(files: FileUploadOutput): void {\n this.validFiles = files.validFiles ?? [];\n this.invalidFiles = files.invalidFiles ?? [];\n this._propagateFiles();\n }\n\n /** @hidden */\n selectHandler(event: File[]): void {\n this.validateFiles(event);\n this._propagateFiles();\n }\n\n /** @hidden */\n validateFiles(event: File[]): void {\n if (this.fileLimit && event.length > this.fileLimit) {\n throw new Error('FileLimitError - Selected files count is more than specified limit ');\n }\n\n const fileOutput: FileUploadOutput = this._fileUploadService.validateFiles(\n event,\n this.minFileSize,\n this.maxFileSize,\n this.accept\n );\n\n this.validFiles = fileOutput.validFiles ?? [];\n this.invalidFiles = fileOutput.invalidFiles ?? [];\n }\n\n /** @hidden */\n setInputValue(selectedFiles: File[], fromClear = false): void {\n let fileName = '';\n selectedFiles.forEach((file) => (fileName = fileName.concat(' ' + file.name)));\n if (!this.inputRefText) {\n return;\n }\n this.inputRefText.nativeElement.value = fileName;\n this.inputRefText.nativeElement.title = fileName;\n if (fileName) {\n this.inputRefText.nativeElement.placeholder = fileName;\n } else {\n this.inputRefText.nativeElement.placeholder = this.placeholder;\n this.inputRefText.nativeElement.title = this.placeholder;\n }\n if (!fromClear) {\n this.inputRefText.nativeElement.focus();\n }\n }\n\n /** @hidden */\n keyDownHandle(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this.open();\n } else if (KeyUtil.isKeyCode(event, [TAB])) {\n return;\n }\n event.preventDefault();\n }\n\n /**\n * Opens the file selector.\n */\n public open(): void {\n this.inputRef.nativeElement.click();\n }\n\n /**\n * Clears the files from the input.\n */\n public clear(): void {\n let shouldPropagate = false;\n if (this.validFiles.length) {\n this.validFiles = [];\n shouldPropagate = true;\n }\n if (this.invalidFiles.length) {\n this.invalidFiles = [];\n shouldPropagate = true;\n }\n // Clears selection in file uploader input.\n this.inputRef.nativeElement.value = '';\n if (shouldPropagate) {\n this._propagateFiles();\n }\n }\n\n /** @hidden */\n private _isEmpty(): boolean {\n return this.validFiles.length === 0 && this.invalidFiles.length === 0;\n }\n\n /** @hidden */\n private _propagateFiles(): void {\n this.setInputValue(this.validFiles);\n this.onChange(this.validFiles);\n if (this._previousValidFiles !== this.validFiles) {\n this._previousValidFiles = this.validFiles;\n this.selectedFilesChanged.emit(this.validFiles);\n }\n if (this._previousInvalidFiles !== this.invalidFiles) {\n this._previousInvalidFiles = this.invalidFiles;\n this.selectedInvalidFiles.emit(this.invalidFiles);\n }\n }\n}\n","<div\n class=\"fd-file-uploader__container\"\n fdFileDragnDrop\n [accept]=\"accept\"\n [maxFileSize]=\"maxFileSize\"\n [minFileSize]=\"minFileSize\"\n [dragndrop]=\"dragndrop\"\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n (fileChanged)=\"handleDrop($event)\"\n (dragEntered)=\"onDragEnter.emit()\"\n (dragLeave)=\"onDragLeave.emit()\"\n>\n <input\n #textInput\n class=\"fd-input fd-file-uploader__input\"\n [class]=\"state ? ' is-' + state : ''\"\n aria-live=\"polite\"\n autocomplete=\"off\"\n type=\"text\"\n tabindex=\"0\"\n [id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required\"\n [title]=\"ariaLabel\"\n [placeholder]=\"placeholder\"\n [value]=\"\"\n [style.width]=\"width\"\n [hidden]=\"inputHidden\"\n [disabled]=\"disabled\"\n (click)=\"open()\"\n (keydown)=\"keyDownHandle($event)\"\n />\n\n <button\n fd-button\n class=\"file-uploader__button\"\n [ariaLabel]=\"buttonAriaLabel\"\n [label]=\"buttonLabel\"\n [disabled]=\"disabled\"\n (click)=\"open()\"\n ></button>\n <ng-content select=\"[fd-form-control]\"></ng-content>\n</div>\n\n<input\n #fileInput\n fdFileSelect\n class=\"fd-file-uploader__hidden\"\n type=\"file\"\n [attr.accept]=\"accept\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n (fileSelected)=\"selectHandler($event)\"\n/>\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-file-uploader[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedFileUploaderContentDensityDirective)\n }\n ]\n})\nexport class DeprecatedFileUploaderContentDensityDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('fd-file-uploader');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FileUploaderComponent } from './file-uploader.component';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { FileUploaderSelectDirective } from './directives/file-uploader-select.directive';\nimport { FileUploaderDragndropDirective } from './directives/file-uploader-dragndrop.directive';\nimport { DeprecatedFileUploaderContentDensityDirective } from './deprecated-file-uploader-content-density.directive';\nimport { FormControlModule } from '@fundamental-ngx/core/form';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ButtonModule, FormControlModule, ContentDensityModule],\n exports: [\n FileUploaderComponent,\n FileUploaderSelectDirective,\n FileUploaderDragndropDirective,\n DeprecatedFileUploaderContentDensityDirective,\n ContentDensityModule\n ],\n declarations: [\n FileUploaderComponent,\n FileUploaderSelectDirective,\n FileUploaderDragndropDirective,\n DeprecatedFileUploaderContentDensityDirective\n ]\n})\nexport class FileUploaderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.FileUploaderService","i4.FileUploaderSelectDirective","i5.FileUploaderDragndropDirective"],"mappings":"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"}
|
|
@@ -354,9 +354,20 @@ class FileUploaderComponent {
|
|
|
354
354
|
* Clears the files from the input.
|
|
355
355
|
*/
|
|
356
356
|
clear() {
|
|
357
|
-
|
|
358
|
-
this.
|
|
359
|
-
|
|
357
|
+
let shouldPropagate = false;
|
|
358
|
+
if (this.validFiles.length) {
|
|
359
|
+
this.validFiles = [];
|
|
360
|
+
shouldPropagate = true;
|
|
361
|
+
}
|
|
362
|
+
if (this.invalidFiles.length) {
|
|
363
|
+
this.invalidFiles = [];
|
|
364
|
+
shouldPropagate = true;
|
|
365
|
+
}
|
|
366
|
+
// Clears selection in file uploader input.
|
|
367
|
+
this.inputRef.nativeElement.value = '';
|
|
368
|
+
if (shouldPropagate) {
|
|
369
|
+
this._propagateFiles();
|
|
370
|
+
}
|
|
360
371
|
}
|
|
361
372
|
/** @hidden */
|
|
362
373
|
_isEmpty() {
|
|
@@ -366,8 +377,14 @@ class FileUploaderComponent {
|
|
|
366
377
|
_propagateFiles() {
|
|
367
378
|
this.setInputValue(this.validFiles);
|
|
368
379
|
this.onChange(this.validFiles);
|
|
369
|
-
this.
|
|
370
|
-
|
|
380
|
+
if (this._previousValidFiles !== this.validFiles) {
|
|
381
|
+
this._previousValidFiles = this.validFiles;
|
|
382
|
+
this.selectedFilesChanged.emit(this.validFiles);
|
|
383
|
+
}
|
|
384
|
+
if (this._previousInvalidFiles !== this.invalidFiles) {
|
|
385
|
+
this._previousInvalidFiles = this.invalidFiles;
|
|
386
|
+
this.selectedInvalidFiles.emit(this.invalidFiles);
|
|
387
|
+
}
|
|
371
388
|
}
|
|
372
389
|
}
|
|
373
390
|
FileUploaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FileUploaderComponent, deps: [{ token: FileUploaderService }, { token: i0.ChangeDetectorRef }, { token: i2.ContentDensityObserver }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-file-uploader.mjs","sources":["../../../../libs/core/src/lib/file-uploader/file-uploader.service.ts","../../../../libs/core/src/lib/file-uploader/directives/file-uploader-select.directive.ts","../../../../libs/core/src/lib/file-uploader/directives/file-uploader-dragndrop.directive.ts","../../../../libs/core/src/lib/file-uploader/file-uploader.component.ts","../../../../libs/core/src/lib/file-uploader/file-uploader.component.html","../../../../libs/core/src/lib/file-uploader/deprecated-file-uploader-content-density.directive.ts","../../../../libs/core/src/lib/file-uploader/file-uploader.module.ts","../../../../libs/core/src/lib/file-uploader/fundamental-ngx-core-file-uploader.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { parserFileSize } from '@fundamental-ngx/cdk/utils';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nexport interface FileUploadOutput {\n validFiles?: File[];\n invalidFiles?: File[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FileUploaderService {\n /**\n * Method that validates files passed. It is based on\n * @param files File[]\n * @param minFileSize string\n * @param maxFileSize string\n * @param acceptedExtensions string\n */\n validateFiles(\n files: File[],\n minFileSize: string,\n maxFileSize: string,\n acceptedExtensions: Nullable<string>\n ): FileUploadOutput {\n const maxSize = parserFileSize(maxFileSize);\n const minSize = parserFileSize(minFileSize);\n\n let allowedExtensions: string[] | null = null;\n if (acceptedExtensions) {\n allowedExtensions = acceptedExtensions.toLocaleLowerCase().replace(/[\\s.]/g, '').split(',');\n }\n\n const fileUploadOutput: FileUploadOutput = {};\n\n fileUploadOutput.validFiles = files.filter(\n (file) => this._checkSize(file.size, maxSize, minSize) && this._checkExtension(file, allowedExtensions)\n );\n fileUploadOutput.invalidFiles = files.filter(\n (file) => !this._checkSize(file.size, maxSize, minSize) || !this._checkExtension(file, allowedExtensions)\n );\n\n return fileUploadOutput;\n }\n\n /** @hidden */\n private _checkExtension(file: File, allowedExtensions: string[] | null): boolean {\n if (!allowedExtensions) {\n return true;\n }\n const extension = file.name.split('.')[file.name.split('.').length - 1].toLocaleLowerCase();\n return allowedExtensions.lastIndexOf(extension) !== -1;\n }\n\n /** @hidden */\n private _checkSize(fileSize: number, maxSize: number, minSize: number): boolean {\n if (maxSize && fileSize > maxSize) {\n return false;\n }\n if (minSize && fileSize < minSize) {\n return false;\n }\n return true;\n }\n}\n","import { Directive, Input, Output, EventEmitter } from '@angular/core';\nimport { HostListener, HostBinding } from '@angular/core';\n\n/**\n * Directive tool to facilitate interacting with a native file input element.\n */\n@Directive({\n selector: '[fdFileSelect]'\n})\nexport class FileUploaderSelectDirective {\n /** Whether the input should accept multiple file selections. */\n @Input()\n private multiple = true;\n\n /** Event emitted when files are selected. */\n @Output()\n readonly fileSelected = new EventEmitter<File[]>();\n\n /** @hidden */\n @HostBinding('attr.multiple')\n get multipleBinding(): boolean | undefined {\n return this.multiple ? true : undefined;\n }\n\n /** @hidden */\n @HostListener('change', ['$event'])\n onChange(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n const elRef = <HTMLInputElement>event.target;\n const files = elRef.files;\n if (files?.length) {\n const fileArray = Array.from(files);\n this.fileSelected.emit(fileArray);\n }\n }\n }\n}\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { FileUploaderService, FileUploadOutput } from '../file-uploader.service';\n\n/**\n * Directive that handles the drag and drop feature of the file input.\n */\n@Directive({\n selector: '[fdFileDragnDrop], [fd-file-drag-n-drop]'\n})\nexport class FileUploaderDragndropDirective {\n /** Whether multiple files can be dropped at once. */\n @Input()\n multiple = true;\n\n /** Accepted file extensions. Format: `'.png,.jpg'`. */\n @Input()\n accept: string;\n\n /** Max file size in bytes that the input will accept. */\n @Input()\n maxFileSize = '';\n\n /** Min file size in bytes that the input will accept. */\n @Input()\n minFileSize = '';\n\n /** Whether selecting of new files is disabled. */\n @Input()\n disabled = false;\n\n /** Whether drag and drop is enabled. Disables this directive. */\n @Input()\n dragndrop = true;\n\n /** Event emitted when files are dropped. Passes back an array of files. */\n @Output()\n readonly fileChanged = new EventEmitter<FileUploadOutput>();\n\n /** Event emitted when the dragged file enters the dropzone. */\n @Output()\n readonly dragEntered = new EventEmitter<void>();\n\n /** Event emitted when the dragged file exits the dropzone. */\n @Output()\n readonly dragLeave = new EventEmitter<void>();\n\n /** @hidden */\n private elementStateCounter = 0;\n\n /** @hidden */\n constructor(private _fileUploadService: FileUploaderService) {}\n\n /** @hidden */\n @HostListener('dragover', ['$event'])\n public onDragover(event: Event): void {\n if (this.dragndrop) {\n this._muteEvent(event);\n }\n }\n\n /** @hidden */\n @HostListener('dragenter', [])\n public onDragenter(): void {\n ++this.elementStateCounter;\n if (this.dragndrop && this.elementStateCounter === 1) {\n this.dragEntered.emit();\n }\n }\n\n /** @hidden */\n @HostListener('dragleave', ['$event'])\n public onDragleave(event: Event): void {\n --this.elementStateCounter;\n if (this.dragndrop && this.elementStateCounter === 0) {\n this._muteEvent(event);\n this.dragLeave.emit();\n }\n }\n\n /** @hidden */\n @HostListener('drop', ['$event'])\n public onDrop(event: any): void {\n this.elementStateCounter = 0;\n\n if (!this.dragndrop || this.disabled) {\n return;\n }\n this._muteEvent(event);\n const rawFiles = event.dataTransfer.files;\n const files: File[] = Array.from(rawFiles);\n\n if (!this.multiple && files.length > 1) {\n this.fileChanged.emit({\n validFiles: [],\n invalidFiles: files\n });\n return;\n }\n\n const fileOutput: FileUploadOutput = this._fileUploadService.validateFiles(\n files,\n this.minFileSize,\n this.maxFileSize,\n this.accept\n );\n\n this.fileChanged.emit(fileOutput);\n }\n\n /** @hidden */\n private _muteEvent(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { stateType } from '@fundamental-ngx/core/radio';\nimport { FileUploaderService, FileUploadOutput } from './file-uploader.service';\nimport { Subscription } from 'rxjs';\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { FormItemControl, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport { ENTER, SPACE, TAB } from '@angular/cdk/keycodes';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\n\nlet fileUploaderInputUniqueId = 0;\n\n/**\n * Tool to facilitate the input of files from the user.\n * It supports drag and drop, multiple input, max file size and more.\n * The drag events make it very easy to create and style elements like a dropzone.\n */\n@Component({\n selector: 'fd-file-uploader',\n templateUrl: './file-uploader.component.html',\n styleUrls: ['./file-uploader.component.scss'],\n host: {\n '(blur)': 'onTouched()',\n class: 'fd-file-uploader'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FileUploaderComponent),\n multi: true\n },\n registerFormItemControl(FileUploaderComponent),\n contentDensityObserverProviders()\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FileUploaderComponent implements ControlValueAccessor, OnDestroy, FormItemControl {\n /** @hidden */\n @ViewChild('fileInput')\n inputRef: ElementRef;\n\n /** @hidden */\n @ViewChild('textInput')\n inputRefText: ElementRef;\n\n /** Whether the file input is disabled. */\n @Input()\n disabled = false;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Whether the file input should accept multiple files. */\n @Input()\n multiple = true;\n\n /** Accepted file extensions. Format: `'.png,.jpg'`. */\n @Input()\n accept: string;\n\n /** Whether the file input accepts drag and dropped files. */\n @Input()\n dragndrop = true;\n\n /** Max file size in bytes that the input will accept. */\n @Input()\n maxFileSize = '';\n\n /** Min file size in bytes that the input will accept. */\n @Input()\n minFileSize = '';\n\n /** Id for the input element. */\n @Input()\n id: string = 'fd-file-uploader-input' + fileUploaderInputUniqueId++;\n\n /** aria-label value for input element. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** aria-label-by value for input element.*/\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** placeholder for input element. */\n @Input()\n placeholder: string;\n\n /** button value */\n @Input()\n buttonLabel: string;\n\n /** value for input element. */\n @Input()\n buttonAriaLabel: Nullable<string>;\n\n /** The field to set state of radio button using:\n * 'success' | 'error' | 'warning' | 'default' | 'information'\n * by default value is set to 'default'\n */\n @Input()\n state: stateType = 'default';\n\n /** specifies number of files to allow to select */\n @Input()\n fileLimit: number;\n\n /** Whether or not to hide the input, leaving only the upload/browse button. */\n @Input()\n inputHidden = false;\n\n /** Width of the file uploader */\n @Input()\n width: string;\n\n /** * It stores the valid files */\n validFiles: File[] = [];\n\n /** * It stores the invalid files */\n invalidFiles: File[] = [];\n\n /** Event fired when files are selected. Passed object is the array of files selected. */\n @Output()\n readonly selectedFilesChanged = new EventEmitter<File[]>();\n\n /** Event fired when some invalid files are selected. Passed object is the array of invalid files. */\n @Output()\n readonly selectedInvalidFiles = new EventEmitter<File[]>();\n\n /** Event fired when the dragged file enters the component boundaries. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onDragEnter = new EventEmitter<void>();\n\n /** Event fired when the dragged file exits the component boundaries. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onDragLeave = new EventEmitter<void>();\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n constructor(\n private _fileUploadService: FileUploaderService,\n private _changeDetRef: ChangeDetectorRef,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n onChange: (values: File[]) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /** @hidden */\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /** @hidden */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._changeDetRef.detectChanges();\n }\n\n /** @hidden */\n writeValue(files: File[]): void {\n if (files && files.length === 0) {\n this.clear();\n } else if (this._isEmpty()) {\n return;\n } else {\n this._propagateFiles();\n }\n }\n\n /** @hidden */\n handleDrop(files: FileUploadOutput): void {\n this.validFiles = files.validFiles ?? [];\n this.invalidFiles = files.invalidFiles ?? [];\n this._propagateFiles();\n }\n\n /** @hidden */\n selectHandler(event: File[]): void {\n this.validateFiles(event);\n this._propagateFiles();\n }\n\n /** @hidden */\n validateFiles(event: File[]): void {\n if (this.fileLimit && event.length > this.fileLimit) {\n throw new Error('FileLimitError - Selected files count is more than specified limit ');\n }\n\n const fileOutput: FileUploadOutput = this._fileUploadService.validateFiles(\n event,\n this.minFileSize,\n this.maxFileSize,\n this.accept\n );\n\n this.validFiles = fileOutput.validFiles ?? [];\n this.invalidFiles = fileOutput.invalidFiles ?? [];\n }\n\n /** @hidden */\n setInputValue(selectedFiles: File[], fromClear = false): void {\n let fileName = '';\n selectedFiles.forEach((file) => (fileName = fileName.concat(' ' + file.name)));\n if (!this.inputRefText) {\n return;\n }\n this.inputRefText.nativeElement.value = fileName;\n this.inputRefText.nativeElement.title = fileName;\n if (fileName) {\n this.inputRefText.nativeElement.placeholder = fileName;\n } else {\n this.inputRefText.nativeElement.placeholder = this.placeholder;\n this.inputRefText.nativeElement.title = this.placeholder;\n }\n if (!fromClear) {\n this.inputRefText.nativeElement.focus();\n }\n }\n\n /** @hidden */\n keyDownHandle(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this.open();\n } else if (KeyUtil.isKeyCode(event, [TAB])) {\n return;\n }\n event.preventDefault();\n }\n\n /**\n * Opens the file selector.\n */\n public open(): void {\n this.inputRef.nativeElement.click();\n }\n\n /**\n * Clears the files from the input.\n */\n public clear(): void {\n this.validFiles = [];\n this.invalidFiles = [];\n this._propagateFiles();\n }\n\n /** @hidden */\n private _isEmpty(): boolean {\n return this.validFiles.length === 0 && this.invalidFiles.length === 0;\n }\n\n /** @hidden */\n private _propagateFiles(): void {\n this.setInputValue(this.validFiles);\n this.onChange(this.validFiles);\n this.selectedFilesChanged.emit(this.validFiles);\n this.selectedInvalidFiles.emit(this.invalidFiles);\n }\n}\n","<div\n class=\"fd-file-uploader__container\"\n fdFileDragnDrop\n [accept]=\"accept\"\n [maxFileSize]=\"maxFileSize\"\n [minFileSize]=\"minFileSize\"\n [dragndrop]=\"dragndrop\"\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n (fileChanged)=\"handleDrop($event)\"\n (dragEntered)=\"onDragEnter.emit()\"\n (dragLeave)=\"onDragLeave.emit()\"\n>\n <input\n #textInput\n class=\"fd-input fd-file-uploader__input\"\n [class]=\"state ? ' is-' + state : ''\"\n aria-live=\"polite\"\n autocomplete=\"off\"\n type=\"text\"\n tabindex=\"0\"\n [id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required\"\n [title]=\"ariaLabel\"\n [placeholder]=\"placeholder\"\n [value]=\"\"\n [style.width]=\"width\"\n [hidden]=\"inputHidden\"\n [disabled]=\"disabled\"\n (click)=\"open()\"\n (keydown)=\"keyDownHandle($event)\"\n />\n\n <button\n fd-button\n class=\"file-uploader__button\"\n [ariaLabel]=\"buttonAriaLabel\"\n [label]=\"buttonLabel\"\n [disabled]=\"disabled\"\n (click)=\"open()\"\n ></button>\n <ng-content select=\"[fd-form-control]\"></ng-content>\n</div>\n\n<input\n #fileInput\n fdFileSelect\n class=\"fd-file-uploader__hidden\"\n type=\"file\"\n [attr.accept]=\"accept\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n (fileSelected)=\"selectHandler($event)\"\n/>\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-file-uploader[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedFileUploaderContentDensityDirective)\n }\n ]\n})\nexport class DeprecatedFileUploaderContentDensityDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('fd-file-uploader');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FileUploaderComponent } from './file-uploader.component';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { FileUploaderSelectDirective } from './directives/file-uploader-select.directive';\nimport { FileUploaderDragndropDirective } from './directives/file-uploader-dragndrop.directive';\nimport { DeprecatedFileUploaderContentDensityDirective } from './deprecated-file-uploader-content-density.directive';\nimport { FormControlModule } from '@fundamental-ngx/core/form';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ButtonModule, FormControlModule, ContentDensityModule],\n exports: [\n FileUploaderComponent,\n FileUploaderSelectDirective,\n FileUploaderDragndropDirective,\n DeprecatedFileUploaderContentDensityDirective,\n ContentDensityModule\n ],\n declarations: [\n FileUploaderComponent,\n FileUploaderSelectDirective,\n FileUploaderDragndropDirective,\n DeprecatedFileUploaderContentDensityDirective\n ]\n})\nexport class FileUploaderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.FileUploaderService","i4.FileUploaderSelectDirective","i5.FileUploaderDragndropDirective"],"mappings":";;;;;;;;;;;;;MAWa,mBAAmB,CAAA;AAC5B;;;;;;AAMG;AACH,IAAA,aAAa,CACT,KAAa,EACb,WAAmB,EACnB,WAAmB,EACnB,kBAAoC,EAAA;AAEpC,QAAA,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;AAC5C,QAAA,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;QAE5C,IAAI,iBAAiB,GAAoB,IAAI,CAAC;AAC9C,QAAA,IAAI,kBAAkB,EAAE;AACpB,YAAA,iBAAiB,GAAG,kBAAkB,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/F,SAAA;QAED,MAAM,gBAAgB,GAAqB,EAAE,CAAC;AAE9C,QAAA,gBAAgB,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CACtC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAC1G,CAAC;AACF,QAAA,gBAAgB,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CACxC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAC5G,CAAC;AAEF,QAAA,OAAO,gBAAgB,CAAC;KAC3B;;IAGO,eAAe,CAAC,IAAU,EAAE,iBAAkC,EAAA;QAClE,IAAI,CAAC,iBAAiB,EAAE;AACpB,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAC5F,OAAO,iBAAiB,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KAC1D;;AAGO,IAAA,UAAU,CAAC,QAAgB,EAAE,OAAe,EAAE,OAAe,EAAA;AACjE,QAAA,IAAI,OAAO,IAAI,QAAQ,GAAG,OAAO,EAAE;AAC/B,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,IAAI,OAAO,IAAI,QAAQ,GAAG,OAAO,EAAE;AAC/B,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;;gHApDQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADN,MAAM,EAAA,CAAA,CAAA;2FACnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACPlC;;AAEG;MAIU,2BAA2B,CAAA;AAHxC,IAAA,WAAA,GAAA;;QAMY,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;;AAIf,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU,CAAC;AAoBtD,KAAA;;AAjBG,IAAA,IACI,eAAe,GAAA;QACf,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;KAC3C;;AAID,IAAA,QAAQ,CAAC,KAAY,EAAA;AACjB,QAAA,IAAI,KAAK,CAAC,MAAM,YAAY,gBAAgB,EAAE;AAC1C,YAAA,MAAM,KAAK,GAAqB,KAAK,CAAC,MAAM,CAAC;AAC7C,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1B,IAAI,KAAK,EAAE,MAAM,EAAE;gBACf,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpC,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACrC,aAAA;AACJ,SAAA;KACJ;;wHA1BQ,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4GAA3B,2BAA2B,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC7B,iBAAA,CAAA;8BAIW,QAAQ,EAAA,CAAA;sBADf,KAAK;gBAKG,YAAY,EAAA,CAAA;sBADpB,MAAM;gBAKH,eAAe,EAAA,CAAA;sBADlB,WAAW;uBAAC,eAAe,CAAA;gBAO5B,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ACtBtC;;AAEG;MAIU,8BAA8B,CAAA;;AAyCvC,IAAA,WAAA,CAAoB,kBAAuC,EAAA;QAAvC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAqB;;QAtC3D,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;;QAQhB,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;;QAIjB,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;;QAIjB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;QAIjB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;;AAIR,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAoB,CAAC;;AAInD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ,CAAC;;AAIvC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAQ,CAAC;;QAGtC,IAAmB,CAAA,mBAAA,GAAG,CAAC,CAAC;KAG+B;;AAIxD,IAAA,UAAU,CAAC,KAAY,EAAA;QAC1B,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC1B,SAAA;KACJ;;IAIM,WAAW,GAAA;QACd,EAAE,IAAI,CAAC,mBAAmB,CAAC;QAC3B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,mBAAmB,KAAK,CAAC,EAAE;AAClD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AAC3B,SAAA;KACJ;;AAIM,IAAA,WAAW,CAAC,KAAY,EAAA;QAC3B,EAAE,IAAI,CAAC,mBAAmB,CAAC;QAC3B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,mBAAmB,KAAK,CAAC,EAAE;AAClD,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACzB,SAAA;KACJ;;AAIM,IAAA,MAAM,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClC,OAAO;AACV,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvB,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC;QAC1C,MAAM,KAAK,GAAW,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE3C,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAClB,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,YAAY,EAAE,KAAK;AACtB,aAAA,CAAC,CAAC;YACH,OAAO;AACV,SAAA;QAED,MAAM,UAAU,GAAqB,IAAI,CAAC,kBAAkB,CAAC,aAAa,CACtE,KAAK,EACL,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,MAAM,CACd,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACrC;;AAGO,IAAA,UAAU,CAAC,KAAY,EAAA;QAC3B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;KAC3B;;2HAxGQ,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;+GAA9B,8BAA8B,EAAA,QAAA,EAAA,0CAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAH1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,0CAA0C;AACvD,iBAAA,CAAA;uGAIG,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAKN,MAAM,EAAA,CAAA;sBADL,KAAK;gBAKN,WAAW,EAAA,CAAA;sBADV,KAAK;gBAKN,WAAW,EAAA,CAAA;sBADV,KAAK;gBAKN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAKN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAKG,WAAW,EAAA,CAAA;sBADnB,MAAM;gBAKE,WAAW,EAAA,CAAA;sBADnB,MAAM;gBAKE,SAAS,EAAA,CAAA;sBADjB,MAAM;gBAWA,UAAU,EAAA,CAAA;sBADhB,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAS7B,WAAW,EAAA,CAAA;sBADjB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,CAAA;gBAUtB,WAAW,EAAA,CAAA;sBADjB,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAW9B,MAAM,EAAA,CAAA;sBADZ,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ACzDpC,IAAI,yBAAyB,GAAG,CAAC,CAAC;AAElC;;;;AAIG;MAqBU,qBAAqB,CAAA;;AA4G9B,IAAA,WAAA,CACY,kBAAuC,EACvC,aAAgC,EAC/B,uBAA+C,EAAA;QAFhD,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAqB;QACvC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAmB;QAC/B,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAwB;;QApG5D,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;QAIjB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;QAIjB,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;;QAQhB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;;QAIjB,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;;QAIjB,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;;AAIjB,QAAA,IAAA,CAAA,EAAE,GAAW,wBAAwB,GAAG,yBAAyB,EAAE,CAAC;AAsBpE;;;AAGG;QAEH,IAAK,CAAA,KAAA,GAAc,SAAS,CAAC;;QAQ7B,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;;QAOpB,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;;QAGxB,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;;AAIjB,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAU,CAAC;;AAIlD,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAU,CAAC;;AAKlD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ,CAAC;;AAKvC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ,CAAC;;AAGxC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;;AAe5C,QAAA,IAAA,CAAA,QAAQ,GAA6B,MAAK,GAAG,CAAC;;AAG9C,QAAA,IAAA,CAAA,SAAS,GAAG,MAAW,GAAG,CAAC;KAXvB;;IAGJ,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;KACrC;;AASD,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACtB;;AAGD,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;;AAGD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;AAC3B,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;KACtC;;AAGD,IAAA,UAAU,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;AAChB,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACxB,OAAO;AACV,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,eAAe,EAAE,CAAC;AAC1B,SAAA;KACJ;;AAGD,IAAA,UAAU,CAAC,KAAuB,EAAA;QAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;;AAGD,IAAA,aAAa,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;;AAGD,IAAA,aAAa,CAAC,KAAa,EAAA;QACvB,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AACjD,YAAA,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;AAC1F,SAAA;QAED,MAAM,UAAU,GAAqB,IAAI,CAAC,kBAAkB,CAAC,aAAa,CACtE,KAAK,EACL,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,MAAM,CACd,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,IAAI,EAAE,CAAC;KACrD;;AAGD,IAAA,aAAa,CAAC,aAAqB,EAAE,SAAS,GAAG,KAAK,EAAA;QAClD,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/E,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,OAAO;AACV,SAAA;QACD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,GAAG,QAAQ,CAAC;QACjD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,GAAG,QAAQ,CAAC;AACjD,QAAA,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,GAAG,QAAQ,CAAC;AAC1D,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC/D,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;AAC5D,SAAA;QACD,IAAI,CAAC,SAAS,EAAE;AACZ,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC3C,SAAA;KACJ;;AAGD,IAAA,aAAa,CAAC,KAAoB,EAAA;AAC9B,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE;YAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;AACf,SAAA;aAAM,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;YACxC,OAAO;AACV,SAAA;QACD,KAAK,CAAC,cAAc,EAAE,CAAC;KAC1B;AAED;;AAEG;IACI,IAAI,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KACvC;AAED;;AAEG;IACI,KAAK,GAAA;AACR,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;;IAGO,QAAQ,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC;KACzE;;IAGO,eAAe,GAAA;AACnB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACrD;;kHA/OQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAZnB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,MAAA,EAAA,aAAA,EAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACpD,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;QACD,uBAAuB,CAAC,qBAAqB,CAAC;AAC9C,QAAA,+BAA+B,EAAE;AACpC,KAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9CL,mjDAwDA,EAAA,MAAA,EAAA,CAAA,s4ZAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,8BAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDNa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBApBjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAGtB,IAAA,EAAA;AACF,wBAAA,QAAQ,EAAE,aAAa;AACvB,wBAAA,KAAK,EAAE,kBAAkB;qBAC5B,EACU,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC;AACpD,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACD,wBAAA,uBAAuB,CAAuB,qBAAA,CAAA;AAC9C,wBAAA,+BAA+B,EAAE;AACpC,qBAAA,EAAA,aAAA,EACc,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,mjDAAA,EAAA,MAAA,EAAA,CAAA,s4ZAAA,CAAA,EAAA,CAAA;4KAK/C,QAAQ,EAAA,CAAA;sBADP,SAAS;uBAAC,WAAW,CAAA;gBAKtB,YAAY,EAAA,CAAA;sBADX,SAAS;uBAAC,WAAW,CAAA;gBAKtB,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAKN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAKN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAKN,MAAM,EAAA,CAAA;sBADL,KAAK;gBAKN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAKN,WAAW,EAAA,CAAA;sBADV,KAAK;gBAKN,WAAW,EAAA,CAAA;sBADV,KAAK;gBAKN,EAAE,EAAA,CAAA;sBADD,KAAK;gBAKN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAKN,cAAc,EAAA,CAAA;sBADb,KAAK;gBAKN,WAAW,EAAA,CAAA;sBADV,KAAK;gBAKN,WAAW,EAAA,CAAA;sBADV,KAAK;gBAKN,eAAe,EAAA,CAAA;sBADd,KAAK;gBAQN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAKN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAKN,WAAW,EAAA,CAAA;sBADV,KAAK;gBAKN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAWG,oBAAoB,EAAA,CAAA;sBAD5B,MAAM;gBAKE,oBAAoB,EAAA,CAAA;sBAD5B,MAAM;gBAME,WAAW,EAAA,CAAA;sBAFnB,MAAM;gBAOE,WAAW,EAAA,CAAA;sBAFnB,MAAM;;;AEzIL,MAAO,6CAA8C,SAAQ,0BAA0B,CAAA;;AAEzF,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KAC7B;;0IAJQ,6CAA6C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7C,6CAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6CAA6C,EAP3C,QAAA,EAAA,2BAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,6CAA6C,CAAC;AAC/E,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,6CAA6C,EAAA,UAAA,EAAA,CAAA;kBAVzD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,WAAW,EAAE,UAAU,CAAC,mDAAmD,CAAC;AAC/E,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;;MCeY,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,iBANvB,qBAAqB;QACrB,2BAA2B;QAC3B,8BAA8B;QAC9B,6CAA6C,CAAA,EAAA,OAAA,EAAA,CAZvC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAEtF,qBAAqB;QACrB,2BAA2B;QAC3B,8BAA8B;QAC9B,6CAA6C;QAC7C,oBAAoB,CAAA,EAAA,CAAA,CAAA;gHASf,kBAAkB,EAAA,OAAA,EAAA,CAfjB,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAMtF,oBAAoB,CAAA,EAAA,CAAA,CAAA;2FASf,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAhB9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,CAAC;AAC3F,oBAAA,OAAO,EAAE;wBACL,qBAAqB;wBACrB,2BAA2B;wBAC3B,8BAA8B;wBAC9B,6CAA6C;wBAC7C,oBAAoB;AACvB,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,qBAAqB;wBACrB,2BAA2B;wBAC3B,8BAA8B;wBAC9B,6CAA6C;AAChD,qBAAA;AACJ,iBAAA,CAAA;;;AC1BD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-file-uploader.mjs","sources":["../../../../libs/core/src/lib/file-uploader/file-uploader.service.ts","../../../../libs/core/src/lib/file-uploader/directives/file-uploader-select.directive.ts","../../../../libs/core/src/lib/file-uploader/directives/file-uploader-dragndrop.directive.ts","../../../../libs/core/src/lib/file-uploader/file-uploader.component.ts","../../../../libs/core/src/lib/file-uploader/file-uploader.component.html","../../../../libs/core/src/lib/file-uploader/deprecated-file-uploader-content-density.directive.ts","../../../../libs/core/src/lib/file-uploader/file-uploader.module.ts","../../../../libs/core/src/lib/file-uploader/fundamental-ngx-core-file-uploader.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { parserFileSize } from '@fundamental-ngx/cdk/utils';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nexport interface FileUploadOutput {\n validFiles?: File[];\n invalidFiles?: File[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FileUploaderService {\n /**\n * Method that validates files passed. It is based on\n * @param files File[]\n * @param minFileSize string\n * @param maxFileSize string\n * @param acceptedExtensions string\n */\n validateFiles(\n files: File[],\n minFileSize: string,\n maxFileSize: string,\n acceptedExtensions: Nullable<string>\n ): FileUploadOutput {\n const maxSize = parserFileSize(maxFileSize);\n const minSize = parserFileSize(minFileSize);\n\n let allowedExtensions: string[] | null = null;\n if (acceptedExtensions) {\n allowedExtensions = acceptedExtensions.toLocaleLowerCase().replace(/[\\s.]/g, '').split(',');\n }\n\n const fileUploadOutput: FileUploadOutput = {};\n\n fileUploadOutput.validFiles = files.filter(\n (file) => this._checkSize(file.size, maxSize, minSize) && this._checkExtension(file, allowedExtensions)\n );\n fileUploadOutput.invalidFiles = files.filter(\n (file) => !this._checkSize(file.size, maxSize, minSize) || !this._checkExtension(file, allowedExtensions)\n );\n\n return fileUploadOutput;\n }\n\n /** @hidden */\n private _checkExtension(file: File, allowedExtensions: string[] | null): boolean {\n if (!allowedExtensions) {\n return true;\n }\n const extension = file.name.split('.')[file.name.split('.').length - 1].toLocaleLowerCase();\n return allowedExtensions.lastIndexOf(extension) !== -1;\n }\n\n /** @hidden */\n private _checkSize(fileSize: number, maxSize: number, minSize: number): boolean {\n if (maxSize && fileSize > maxSize) {\n return false;\n }\n if (minSize && fileSize < minSize) {\n return false;\n }\n return true;\n }\n}\n","import { Directive, Input, Output, EventEmitter } from '@angular/core';\nimport { HostListener, HostBinding } from '@angular/core';\n\n/**\n * Directive tool to facilitate interacting with a native file input element.\n */\n@Directive({\n selector: '[fdFileSelect]'\n})\nexport class FileUploaderSelectDirective {\n /** Whether the input should accept multiple file selections. */\n @Input()\n private multiple = true;\n\n /** Event emitted when files are selected. */\n @Output()\n readonly fileSelected = new EventEmitter<File[]>();\n\n /** @hidden */\n @HostBinding('attr.multiple')\n get multipleBinding(): boolean | undefined {\n return this.multiple ? true : undefined;\n }\n\n /** @hidden */\n @HostListener('change', ['$event'])\n onChange(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n const elRef = <HTMLInputElement>event.target;\n const files = elRef.files;\n if (files?.length) {\n const fileArray = Array.from(files);\n this.fileSelected.emit(fileArray);\n }\n }\n }\n}\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { FileUploaderService, FileUploadOutput } from '../file-uploader.service';\n\n/**\n * Directive that handles the drag and drop feature of the file input.\n */\n@Directive({\n selector: '[fdFileDragnDrop], [fd-file-drag-n-drop]'\n})\nexport class FileUploaderDragndropDirective {\n /** Whether multiple files can be dropped at once. */\n @Input()\n multiple = true;\n\n /** Accepted file extensions. Format: `'.png,.jpg'`. */\n @Input()\n accept: string;\n\n /** Max file size in bytes that the input will accept. */\n @Input()\n maxFileSize = '';\n\n /** Min file size in bytes that the input will accept. */\n @Input()\n minFileSize = '';\n\n /** Whether selecting of new files is disabled. */\n @Input()\n disabled = false;\n\n /** Whether drag and drop is enabled. Disables this directive. */\n @Input()\n dragndrop = true;\n\n /** Event emitted when files are dropped. Passes back an array of files. */\n @Output()\n readonly fileChanged = new EventEmitter<FileUploadOutput>();\n\n /** Event emitted when the dragged file enters the dropzone. */\n @Output()\n readonly dragEntered = new EventEmitter<void>();\n\n /** Event emitted when the dragged file exits the dropzone. */\n @Output()\n readonly dragLeave = new EventEmitter<void>();\n\n /** @hidden */\n private elementStateCounter = 0;\n\n /** @hidden */\n constructor(private _fileUploadService: FileUploaderService) {}\n\n /** @hidden */\n @HostListener('dragover', ['$event'])\n public onDragover(event: Event): void {\n if (this.dragndrop) {\n this._muteEvent(event);\n }\n }\n\n /** @hidden */\n @HostListener('dragenter', [])\n public onDragenter(): void {\n ++this.elementStateCounter;\n if (this.dragndrop && this.elementStateCounter === 1) {\n this.dragEntered.emit();\n }\n }\n\n /** @hidden */\n @HostListener('dragleave', ['$event'])\n public onDragleave(event: Event): void {\n --this.elementStateCounter;\n if (this.dragndrop && this.elementStateCounter === 0) {\n this._muteEvent(event);\n this.dragLeave.emit();\n }\n }\n\n /** @hidden */\n @HostListener('drop', ['$event'])\n public onDrop(event: any): void {\n this.elementStateCounter = 0;\n\n if (!this.dragndrop || this.disabled) {\n return;\n }\n this._muteEvent(event);\n const rawFiles = event.dataTransfer.files;\n const files: File[] = Array.from(rawFiles);\n\n if (!this.multiple && files.length > 1) {\n this.fileChanged.emit({\n validFiles: [],\n invalidFiles: files\n });\n return;\n }\n\n const fileOutput: FileUploadOutput = this._fileUploadService.validateFiles(\n files,\n this.minFileSize,\n this.maxFileSize,\n this.accept\n );\n\n this.fileChanged.emit(fileOutput);\n }\n\n /** @hidden */\n private _muteEvent(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { stateType } from '@fundamental-ngx/core/radio';\nimport { FileUploaderService, FileUploadOutput } from './file-uploader.service';\nimport { Subscription } from 'rxjs';\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { FormItemControl, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport { ENTER, SPACE, TAB } from '@angular/cdk/keycodes';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\n\nlet fileUploaderInputUniqueId = 0;\n\n/**\n * Tool to facilitate the input of files from the user.\n * It supports drag and drop, multiple input, max file size and more.\n * The drag events make it very easy to create and style elements like a dropzone.\n */\n@Component({\n selector: 'fd-file-uploader',\n templateUrl: './file-uploader.component.html',\n styleUrls: ['./file-uploader.component.scss'],\n host: {\n '(blur)': 'onTouched()',\n class: 'fd-file-uploader'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FileUploaderComponent),\n multi: true\n },\n registerFormItemControl(FileUploaderComponent),\n contentDensityObserverProviders()\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FileUploaderComponent implements ControlValueAccessor, OnDestroy, FormItemControl {\n /** @hidden */\n @ViewChild('fileInput')\n inputRef: ElementRef;\n\n /** @hidden */\n @ViewChild('textInput')\n inputRefText: ElementRef;\n\n /** Whether the file input is disabled. */\n @Input()\n disabled = false;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Whether the file input should accept multiple files. */\n @Input()\n multiple = true;\n\n /** Accepted file extensions. Format: `'.png,.jpg'`. */\n @Input()\n accept: string;\n\n /** Whether the file input accepts drag and dropped files. */\n @Input()\n dragndrop = true;\n\n /** Max file size in bytes that the input will accept. */\n @Input()\n maxFileSize = '';\n\n /** Min file size in bytes that the input will accept. */\n @Input()\n minFileSize = '';\n\n /** Id for the input element. */\n @Input()\n id: string = 'fd-file-uploader-input' + fileUploaderInputUniqueId++;\n\n /** aria-label value for input element. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** aria-label-by value for input element.*/\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** placeholder for input element. */\n @Input()\n placeholder: string;\n\n /** button value */\n @Input()\n buttonLabel: string;\n\n /** value for input element. */\n @Input()\n buttonAriaLabel: Nullable<string>;\n\n /** The field to set state of radio button using:\n * 'success' | 'error' | 'warning' | 'default' | 'information'\n * by default value is set to 'default'\n */\n @Input()\n state: stateType = 'default';\n\n /** specifies number of files to allow to select */\n @Input()\n fileLimit: number;\n\n /** Whether or not to hide the input, leaving only the upload/browse button. */\n @Input()\n inputHidden = false;\n\n /** Width of the file uploader */\n @Input()\n width: string;\n\n /** * It stores the valid files */\n validFiles: File[] = [];\n\n /** * It stores the invalid files */\n invalidFiles: File[] = [];\n\n /** Event fired when files are selected. Passed object is the array of files selected. */\n @Output()\n readonly selectedFilesChanged = new EventEmitter<File[]>();\n\n /** Event fired when some invalid files are selected. Passed object is the array of invalid files. */\n @Output()\n readonly selectedInvalidFiles = new EventEmitter<File[]>();\n\n /** Event fired when the dragged file enters the component boundaries. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onDragEnter = new EventEmitter<void>();\n\n /** Event fired when the dragged file exits the component boundaries. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onDragLeave = new EventEmitter<void>();\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _previousValidFiles;\n\n /** @hidden */\n private _previousInvalidFiles;\n\n /** @hidden */\n constructor(\n private _fileUploadService: FileUploaderService,\n private _changeDetRef: ChangeDetectorRef,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n onChange: (values: File[]) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /** @hidden */\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /** @hidden */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._changeDetRef.detectChanges();\n }\n\n /** @hidden */\n writeValue(files: File[]): void {\n if (files && files.length === 0) {\n this.clear();\n } else if (this._isEmpty()) {\n return;\n } else {\n this._propagateFiles();\n }\n }\n\n /** @hidden */\n handleDrop(files: FileUploadOutput): void {\n this.validFiles = files.validFiles ?? [];\n this.invalidFiles = files.invalidFiles ?? [];\n this._propagateFiles();\n }\n\n /** @hidden */\n selectHandler(event: File[]): void {\n this.validateFiles(event);\n this._propagateFiles();\n }\n\n /** @hidden */\n validateFiles(event: File[]): void {\n if (this.fileLimit && event.length > this.fileLimit) {\n throw new Error('FileLimitError - Selected files count is more than specified limit ');\n }\n\n const fileOutput: FileUploadOutput = this._fileUploadService.validateFiles(\n event,\n this.minFileSize,\n this.maxFileSize,\n this.accept\n );\n\n this.validFiles = fileOutput.validFiles ?? [];\n this.invalidFiles = fileOutput.invalidFiles ?? [];\n }\n\n /** @hidden */\n setInputValue(selectedFiles: File[], fromClear = false): void {\n let fileName = '';\n selectedFiles.forEach((file) => (fileName = fileName.concat(' ' + file.name)));\n if (!this.inputRefText) {\n return;\n }\n this.inputRefText.nativeElement.value = fileName;\n this.inputRefText.nativeElement.title = fileName;\n if (fileName) {\n this.inputRefText.nativeElement.placeholder = fileName;\n } else {\n this.inputRefText.nativeElement.placeholder = this.placeholder;\n this.inputRefText.nativeElement.title = this.placeholder;\n }\n if (!fromClear) {\n this.inputRefText.nativeElement.focus();\n }\n }\n\n /** @hidden */\n keyDownHandle(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this.open();\n } else if (KeyUtil.isKeyCode(event, [TAB])) {\n return;\n }\n event.preventDefault();\n }\n\n /**\n * Opens the file selector.\n */\n public open(): void {\n this.inputRef.nativeElement.click();\n }\n\n /**\n * Clears the files from the input.\n */\n public clear(): void {\n let shouldPropagate = false;\n if (this.validFiles.length) {\n this.validFiles = [];\n shouldPropagate = true;\n }\n if (this.invalidFiles.length) {\n this.invalidFiles = [];\n shouldPropagate = true;\n }\n // Clears selection in file uploader input.\n this.inputRef.nativeElement.value = '';\n if (shouldPropagate) {\n this._propagateFiles();\n }\n }\n\n /** @hidden */\n private _isEmpty(): boolean {\n return this.validFiles.length === 0 && this.invalidFiles.length === 0;\n }\n\n /** @hidden */\n private _propagateFiles(): void {\n this.setInputValue(this.validFiles);\n this.onChange(this.validFiles);\n if (this._previousValidFiles !== this.validFiles) {\n this._previousValidFiles = this.validFiles;\n this.selectedFilesChanged.emit(this.validFiles);\n }\n if (this._previousInvalidFiles !== this.invalidFiles) {\n this._previousInvalidFiles = this.invalidFiles;\n this.selectedInvalidFiles.emit(this.invalidFiles);\n }\n }\n}\n","<div\n class=\"fd-file-uploader__container\"\n fdFileDragnDrop\n [accept]=\"accept\"\n [maxFileSize]=\"maxFileSize\"\n [minFileSize]=\"minFileSize\"\n [dragndrop]=\"dragndrop\"\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n (fileChanged)=\"handleDrop($event)\"\n (dragEntered)=\"onDragEnter.emit()\"\n (dragLeave)=\"onDragLeave.emit()\"\n>\n <input\n #textInput\n class=\"fd-input fd-file-uploader__input\"\n [class]=\"state ? ' is-' + state : ''\"\n aria-live=\"polite\"\n autocomplete=\"off\"\n type=\"text\"\n tabindex=\"0\"\n [id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required\"\n [title]=\"ariaLabel\"\n [placeholder]=\"placeholder\"\n [value]=\"\"\n [style.width]=\"width\"\n [hidden]=\"inputHidden\"\n [disabled]=\"disabled\"\n (click)=\"open()\"\n (keydown)=\"keyDownHandle($event)\"\n />\n\n <button\n fd-button\n class=\"file-uploader__button\"\n [ariaLabel]=\"buttonAriaLabel\"\n [label]=\"buttonLabel\"\n [disabled]=\"disabled\"\n (click)=\"open()\"\n ></button>\n <ng-content select=\"[fd-form-control]\"></ng-content>\n</div>\n\n<input\n #fileInput\n fdFileSelect\n class=\"fd-file-uploader__hidden\"\n type=\"file\"\n [attr.accept]=\"accept\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n (fileSelected)=\"selectHandler($event)\"\n/>\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-file-uploader[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedFileUploaderContentDensityDirective)\n }\n ]\n})\nexport class DeprecatedFileUploaderContentDensityDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('fd-file-uploader');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FileUploaderComponent } from './file-uploader.component';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { FileUploaderSelectDirective } from './directives/file-uploader-select.directive';\nimport { FileUploaderDragndropDirective } from './directives/file-uploader-dragndrop.directive';\nimport { DeprecatedFileUploaderContentDensityDirective } from './deprecated-file-uploader-content-density.directive';\nimport { FormControlModule } from '@fundamental-ngx/core/form';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ButtonModule, FormControlModule, ContentDensityModule],\n exports: [\n FileUploaderComponent,\n FileUploaderSelectDirective,\n FileUploaderDragndropDirective,\n DeprecatedFileUploaderContentDensityDirective,\n ContentDensityModule\n ],\n declarations: [\n FileUploaderComponent,\n FileUploaderSelectDirective,\n FileUploaderDragndropDirective,\n DeprecatedFileUploaderContentDensityDirective\n ]\n})\nexport class FileUploaderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.FileUploaderService","i4.FileUploaderSelectDirective","i5.FileUploaderDragndropDirective"],"mappings":"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"}
|
|
@@ -71,6 +71,10 @@ export declare class FileUploaderComponent implements ControlValueAccessor, OnDe
|
|
|
71
71
|
/** @hidden */
|
|
72
72
|
private _subscriptions;
|
|
73
73
|
/** @hidden */
|
|
74
|
+
private _previousValidFiles;
|
|
75
|
+
/** @hidden */
|
|
76
|
+
private _previousInvalidFiles;
|
|
77
|
+
/** @hidden */
|
|
74
78
|
constructor(_fileUploadService: FileUploaderService, _changeDetRef: ChangeDetectorRef, _contentDensityObserver: ContentDensityObserver);
|
|
75
79
|
/** @hidden */
|
|
76
80
|
ngOnDestroy(): void;
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fundamental-ngx/core",
|
|
3
|
-
"version": "0.43.
|
|
3
|
+
"version": "0.43.55",
|
|
4
4
|
"schematics": "./schematics/collection.json",
|
|
5
5
|
"ng-update": {
|
|
6
6
|
"migrations": "./schematics/migrations.json"
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"rxjs": "^7.8.0"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@fundamental-ngx/cdk": "0.43.
|
|
32
|
-
"@fundamental-ngx/i18n": "0.43.
|
|
31
|
+
"@fundamental-ngx/cdk": "0.43.55",
|
|
32
|
+
"@fundamental-ngx/i18n": "0.43.55",
|
|
33
33
|
"compare-versions": "^5.0.0",
|
|
34
34
|
"fast-deep-equal": "3.1.3",
|
|
35
35
|
"focus-trap": "^7.1.0",
|
|
@@ -54,21 +54,21 @@ function addExternalLibraries(options) {
|
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
56
|
if (!(0, package_utils_1.hasPackage)(tree, '@fundamental-ngx/i18n') ||
|
|
57
|
-
(0, package_utils_1.checkPackageVersion)(tree, '@fundamental-ngx/i18n', '0.43.
|
|
57
|
+
(0, package_utils_1.checkPackageVersion)(tree, '@fundamental-ngx/i18n', '0.43.55', '<')) {
|
|
58
58
|
dependencies.push({
|
|
59
59
|
type: dependencies_1.NodeDependencyType.Default,
|
|
60
60
|
// Will be replaced with the real version during sync-version script run
|
|
61
|
-
version: `0.43.
|
|
61
|
+
version: `0.43.55`,
|
|
62
62
|
name: '@fundamental-ngx/i18n',
|
|
63
63
|
overwrite: true
|
|
64
64
|
});
|
|
65
65
|
}
|
|
66
66
|
if (!(0, package_utils_1.hasPackage)(tree, '@fundamental-ngx/cdk') ||
|
|
67
|
-
(0, package_utils_1.checkPackageVersion)(tree, '@fundamental-ngx/cdk', '0.43.
|
|
67
|
+
(0, package_utils_1.checkPackageVersion)(tree, '@fundamental-ngx/cdk', '0.43.55', '<')) {
|
|
68
68
|
dependencies.push({
|
|
69
69
|
type: dependencies_1.NodeDependencyType.Default,
|
|
70
70
|
// Will be replaced with the real version during sync-version script run
|
|
71
|
-
version: `0.43.
|
|
71
|
+
version: `0.43.55`,
|
|
72
72
|
name: '@fundamental-ngx/cdk',
|
|
73
73
|
overwrite: true
|
|
74
74
|
});
|
|
Binary file
|