@ardium-ui/ui 4.4.1 → 4.4.2
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/esm2022/lib/_internal/ngmodel-component.mjs +3 -1
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.component.mjs +3 -3
- package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +3 -3
- package/esm2022/lib/file-inputs/file-input-base.mjs +38 -15
- package/esm2022/lib/inputs/number-input/number-input.component.mjs +6 -1
- package/fesm2022/ardium-ui-ui.mjs +47 -17
- package/fesm2022/ardium-ui-ui.mjs.map +1 -1
- package/lib/_internal/ngmodel-component.d.ts +1 -1
- package/lib/file-inputs/file-input-base.d.ts +7 -3
- package/lib/inputs/number-input/number-input.component.d.ts +1 -0
- package/package.json +1 -1
- package/prebuilt-themes/default/inputs/file-input.css +9 -4
- package/prebuilt-themes/default/inputs/file-input.css.map +1 -1
- package/themes/default/inputs/file-input.scss +10 -2
|
@@ -60,6 +60,8 @@ export class _NgModelComponentBase extends _FocusableComponentBase {
|
|
|
60
60
|
this._shouldEmitTouched = true;
|
|
61
61
|
super.onBlur(event);
|
|
62
62
|
setTimeout(() => {
|
|
63
|
+
// if the component is immediately focused back (i.e. when changing focus between elements within the component)
|
|
64
|
+
// the touched event will not be fired
|
|
63
65
|
if (!this._shouldEmitTouched)
|
|
64
66
|
return;
|
|
65
67
|
this.wasTouched.set(true);
|
|
@@ -96,4 +98,4 @@ export class _NgModelComponentBase extends _FocusableComponentBase {
|
|
|
96
98
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: _NgModelComponentBase, decorators: [{
|
|
97
99
|
type: Directive
|
|
98
100
|
}] });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdtb2RlbC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL19pbnRlcm5hbC9uZ21vZGVsLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFHTCxxQkFBcUIsRUFFckIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQXdCLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxHQUFHLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLElBQUksTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSwyQkFBMkIsRUFBK0IsTUFBTSx1QkFBdUIsQ0FBQzs7QUFLMUgsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQThCO0lBQ2xFLEdBQUcsMkJBQTJCO0NBQy9CLENBQUM7QUFFRjs7OztHQUlHO0FBRUgsTUFBTSxPQUFnQixxQkFBc0IsU0FBUSx1QkFBdUI7SUFEM0U7O1FBMkNFLGtCQUFrQjtRQUNULGVBQVUsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7UUFPckMsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBWW5DLHNCQUFzQjtRQUNILGNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUE4QnRDLGVBQVUsR0FBcUIsSUFBSSxDQUFDO1FBRXJDLFdBQU0sR0FBRyxLQUFLLENBQVMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFcEMsY0FBUyxHQUFH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LFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUM3RyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FDdkIsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFZRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3hDLENBQUM7K0dBMUdtQixxQkFBcUI7bUdBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFEMUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgY29tcHV0ZWQsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIGluamVjdCxcclxuICBJbmplY3RvcixcclxuICBpbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIHJ1bkluSW5qZWN0aW9uQ29udGV4dCxcclxuICBTaWduYWwsXHJcbiAgc2lnbmFsLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcclxuaW1wb3J0IHsgbWFwLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVGFrZUNoYW5jZSBhcyBSYW5kb20gfSBmcm9tICd0YWtlLWNoYW5jZSc7XHJcbmltcG9ydCB7IF9Gb2N1c2FibGVDb21wb25lbnRCYXNlLCBfZm9jdXNhYmxlQ29tcG9uZW50RGVmYXVsdHMsIF9Gb2N1c2FibGVDb21wb25lbnREZWZhdWx0cyB9IGZyb20gJy4vZm9jdXNhYmxlLWNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIF9OZ01vZGVsQ29tcG9uZW50RGVmYXVsdHMgZXh0ZW5kcyBfRm9jdXNhYmxlQ29tcG9uZW50RGVmYXVsdHMge1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgX25nTW9kZWxDb21wb25lbnREZWZhdWx0czogX05nTW9kZWxDb21wb25lbnREZWZhdWx0cyA9IHtcclxuICAuLi5fZm9jdXNhYmxlQ29tcG9uZW50RGVmYXVsdHMsXHJcbn07XHJcblxyXG4vKipcclxuICogQ29tbW9uIGNvZGUgZm9yIGNvbXBvbmVudHMgd2hpY2ggaW1wbGVtZW50IHRoZSBDb250cm9sVmFsdWVBY2Nlc3Nvci5cclxuICpcclxuICogKipXYXJuaW5nKio6IGB3cml0ZVZhbHVlYCBmdW5jdGlvbiBzaG91bGQgYmUgaW1wbGVtZW50ZWQgb24gdGhlIGNoaWxkIGNvbXBvbmVudCFcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgX05nTW9kZWxDb21wb25lbnRCYXNlIGV4dGVuZHMgX0ZvY3VzYWJsZUNvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfREVGQVVMVFMhOiBfTmdNb2RlbENvbXBvbmVudERlZmF1bHRzO1xyXG5cclxuICAvLyEgY29udHJvbCB2YWx1ZSBhY2Nlc3NvclxyXG4gIHByb3RlY3RlZCBfb25DaGFuZ2VSZWdpc3RlcmVkITogKF86IGFueSkgPT4gdm9pZDtcclxuICBwcm90ZWN0ZWQgX29uVG91Y2hlZFJlZ2lzdGVyZWQhOiAoKSA9PiB2b2lkO1xyXG4gIC8qKlxyXG4gICAqIFJlZ2lzdGVycyBhIGZ1bmN0aW9uIHRvIGhhbmRsZSB0b3VjaGVkIHN0YXRlLiBSZXF1aXJlZCBieSBDb250cm9sVmFsdWVBY2Nlc3Nvci5cclxuICAgKiBAcGFyYW0gZm4gVGhlIGZ1bmN0aW9uIHRvIHJlZ2lzdGVyLlxyXG4gICAqL1xyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLl9vblRvdWNoZWRSZWdpc3RlcmVkID0gZm47XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJlZ2lzdGVycyBhIGZ1bmN0aW9uIHRvIGhhbmRsZSB2YWx1ZSBjaGFuZ2UuIFJlcXVpcmVkIGJ5IENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxyXG4gICAqIEBwYXJhbSBmbiBUaGUgZnVuY3Rpb24gdG8gcmVnaXN0ZXIuXHJcbiAgICovXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25DaGFuZ2VSZWdpc3RlcmVkID0gZm47XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGNvbXBvbmVudCdzIGRpc2FibGVkIHN0YXRlLiBSZXF1aXJlZCBieSBDb250cm9sVmFsdWVBY2Nlc3Nvci5cclxuICAgKiBAcGFyYW0gaXNEaXNhYmxlZCB0aGUgbmV3IGRpc2FibGVkIHN0YXRlLlxyXG4gICAqL1xyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZC5zZXQoaXNEaXNhYmxlZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXcml0ZXMgdGhlIGEgbmV3IHZhbHVlIGludG8gdGhlIGNvbXBvbmVudC4gUmVxdWlyZWQgYnkgQ29udHJvbFZhbHVlQWNjZXNzb3IuXHJcbiAgICogQGFic3RyYWN0XHJcbiAgICogQHBhcmFtIHYgVGhlIG5ldyB2YWx1ZSB0byB3cml0ZS5cclxuICAgKi9cclxuICBhYnN0cmFjdCB3cml0ZVZhbHVlKHY6IGFueSk6IHZvaWQ7IC8vKiBhYnN0cmFjdFxyXG5cclxuICAvKipcclxuICAgKiBXcml0ZXMgdGhlIGEgbmV3IHZhbHVlIGludG8gdGhlIGNvbXBvbmVudC4gUmVxdWlyZWQgYnkgQ29udHJvbFZhbHVlQWNjZXNzb3IuXHJcbiAgICogQGFic3RyYWN0XHJcbiAgICogQHBhcmFtIHYgVGhlIG5ldyB2YWx1ZSB0byB3cml0ZS5cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgX2VtaXRDaGFuZ2UoKTogdm9pZDsgLy8qIGFic3RyYWN0XHJcblxyXG4gIC8vISBldmVudCBoYW5kbGVyc1xyXG4gIHJlYWRvbmx5IHdhc1RvdWNoZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBvdmVycmlkZSBvbkZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XHJcbiAgICBzdXBlci5vbkZvY3VzKGV2ZW50KTtcclxuICAgIHRoaXMuX3Nob3VsZEVtaXRUb3VjaGVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zaG91bGRFbWl0VG91Y2hlZCA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlIG9uQmx1cihldmVudDogRm9jdXNFdmVudCkge1xyXG4gICAgdGhpcy5fc2hvdWxkRW1pdFRvdWNoZWQgPSB0cnVlO1xyXG4gICAgc3VwZXIub25CbHVyKGV2ZW50KTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLl9zaG91bGRFbWl0VG91Y2hlZCkgcmV0dXJuO1xyXG4gICAgICB0aGlzLndhc1RvdWNoZWQuc2V0KHRydWUpO1xyXG4gICAgICB0aGlzLl9vblRvdWNoZWRSZWdpc3RlcmVkPy4oKTtcclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgLy8hIGZvcm0gZmllbGQgcmVsYXRlZFxyXG4gIHByb3RlY3RlZCByZWFkb25seSBfaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xyXG5cclxuICBwcml2YXRlIF9zdGF0dXNDaGFuZ2VzU3ViPzogU3Vic2NyaXB0aW9uO1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fbmdDb250cm9sID0gdGhpcy5faW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCk7XHJcblxyXG4gICAgaWYgKHRoaXMuX25nQ29udHJvbCkge1xyXG4gICAgICBpZiAoIXRoaXMuX25nQ29udHJvbC52YWx1ZUFjY2Vzc29yIHx8ICh0aGlzICYmIHRoaXMgaW5zdGFuY2VvZiAodGhpcy5fbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgYXMgYW55KS5jb25zdHJ1Y3RvcikpIHtcclxuICAgICAgICB0aGlzLl9uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuX2hhc0Vycm9ySW5Db250cm9sLnNldCh0aGlzLl9uZ0NvbnRyb2wuc3RhdHVzID09PSAnSU5WQUxJRCcpO1xyXG5cclxuICAgICAgdGhpcy5fc3RhdHVzQ2hhbmdlc1N1YiA9IHRoaXMuX25nQ29udHJvbC5zdGF0dXNDaGFuZ2VzXHJcbiAgICAgICAgPy5waXBlKG1hcCh2ID0+IHYgPT09ICdJTlZBTElEJykpXHJcbiAgICAgICAgLnN1YnNjcmliZSh2ID0+IHRoaXMuX2hhc0Vycm9ySW5Db250cm9sLnNldCh2KSk7XHJcblxyXG4gICAgICBpZiAoIXRoaXMuX25nQ29udHJvbC5jb250cm9sKSByZXR1cm47XHJcblxyXG4gICAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5faW5qZWN0b3IsICgpID0+IHtcclxuICAgICAgICAvLyBkbyBub3QgcmVhZCB0aGUgbmV4dCBsaW5lIG9mIGNvZGUgaWYgeW91IGFyZSBlYXNpbHkgZnJpZ2h0ZW5lZFxyXG4gICAgICAgIC8vIEknbSBub3QgcHJvdWQgb2YgdGhpcyBwYXJ0LCBidXQgaXQgaGFkIHRvIGJlIGRvbmUuIEdvZCBwbGVhc2UgZm9yZ2l2ZSBtZVxyXG4gICAgICAgIC8vIEkgZGlkbid0IGZpbmQgYW55IG90aGVyIGZlYXNpYmxlIHdheSB0byBkZXRlY3Qgd2hlbiB0aGUgY29udHJvbCBjaGFuZ2VzIGl0cyB0b3VjaGVkIHN0YXRlXHJcbiAgICAgICAgLy8gc28gaXQgaGFkIHRvIGJlIGhhY2tlZCBsaWtlIHRoaXNcclxuICAgICAgICB0b09ic2VydmFibGUoKHRoaXMuX25nQ29udHJvbD8uY29udHJvbCBhcyBhbnkgfCB1bmRlZmluZWQpPy50b3VjaGVkUmVhY3RpdmUgYXMgU2lnbmFsPGJvb2xlYW4+KT8uc3Vic2NyaWJlKHYgPT5cclxuICAgICAgICAgIHRoaXMud2FzVG91Y2hlZC5zZXQodilcclxuICAgICAgICApO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJvdGVjdGVkIF9uZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwgPSBudWxsO1xyXG5cclxuICByZWFkb25seSBodG1sSWQgPSBpbnB1dDxzdHJpbmc+KFJhbmRvbS5pZCgpKTtcclxuXHJcbiAgcmVhZG9ubHkgX2hhc0Vycm9yID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZCwgYW55Pih1bmRlZmluZWQsIHtcclxuICAgIHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodiksXHJcbiAgICBhbGlhczogJ2hhc0Vycm9yJyxcclxuICB9KTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9oYXNFcnJvckluQ29udHJvbCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgcmVhZG9ubHkgaGFzRXJyb3IgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLl9oYXNFcnJvcigpID8/ICh0aGlzLndhc1RvdWNoZWQoKSAmJiB0aGlzLl9oYXNFcnJvckluQ29udHJvbCgpKSk7XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RhdHVzQ2hhbmdlc1N1Yj8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdtb2RlbC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL19pbnRlcm5hbC9uZ21vZGVsLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFHTCxxQkFBcUIsRUFFckIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQXdCLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxHQUFHLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLElBQUksTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSwyQkFBMkIsRUFBK0IsTUFBTSx1QkFBdUIsQ0FBQzs7QUFLMUgsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQThCO0lBQ2xFLEdBQUcsMkJBQTJCO0NBQy9CLENBQUM7QUFFRjs7OztHQUlHO0FBRUgsTUFBTSxPQUFnQixxQkFBc0IsU0FBUSx1QkFBdUI7SUFEM0U7O1FBMkNFLGtCQUFrQjtRQUNULGVBQVUsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7UUFPbkMsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBY3JDLHNCQUFzQjtRQUNILGNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUE4QnRDLGVBQVUsR0FBcUIsSUFBSSxDQUFDO1FBRXJDLFdBQU0sR0FBRyxLQUFLLENBQVMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFcEMsY0FBUyxHQUFHLEtBQUssQ0FBMkIsU0FBUyxFQUFFO1lBQzlELFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztZQUN4QyxLQUFLLEVBQUUsVUFBVTtTQUNsQixDQUFDLENBQUM7UUFDYyx1QkFBa0IsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDcEQsYUFBUSxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDO0tBS25IO0lBdkdDOzs7T0FHRztJQUNILGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsZ0JBQWdCLENBQUMsRUFBb0I7UUFDbkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQW1CUSxPQUFPLENBQUMsS0FBaUI7UUFDaEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFHUSxNQUFNLENBQUMsS0FBaUI7UUFDL0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUMvQixLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxnSEFBZ0g7WUFDaEgsc0NBQXNDO1lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCO2dCQUFFLE9BQU87WUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FBQztRQUNoQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBTUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXRELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLFlBQWEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFxQixDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQ25ILElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztZQUN2QyxDQUFDO1lBRUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQztZQUVsRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhO2dCQUNwRCxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7aUJBQ2hDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVsRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPO2dCQUFFLE9BQU87WUFFckMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7Z0JBQ3pDLGlFQUFpRTtnQkFDakUsMkVBQTJFO2dCQUMzRSw0RkFBNEY7Z0JBQzVGLG1DQUFtQztnQkFDbkMsWUFBWSxDQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBMkIsRUFBRSxlQUFrQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzdHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUN2QixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQVlELFdBQVc7UUFDVCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDeEMsQ0FBQzsrR0E1R21CLHFCQUFxQjttR0FBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUQxQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBjb21wdXRlZCxcclxuICBEaXJlY3RpdmUsXHJcbiAgaW5qZWN0LFxyXG4gIEluamVjdG9yLFxyXG4gIGlucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgcnVuSW5JbmplY3Rpb25Db250ZXh0LFxyXG4gIFNpZ25hbCxcclxuICBzaWduYWwsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xyXG5pbXBvcnQgeyBtYXAsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUYWtlQ2hhbmNlIGFzIFJhbmRvbSB9IGZyb20gJ3Rha2UtY2hhbmNlJztcclxuaW1wb3J0IHsgX0ZvY3VzYWJsZUNvbXBvbmVudEJhc2UsIF9mb2N1c2FibGVDb21wb25lbnREZWZhdWx0cywgX0ZvY3VzYWJsZUNvbXBvbmVudERlZmF1bHRzIH0gZnJvbSAnLi9mb2N1c2FibGUtY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgX05nTW9kZWxDb21wb25lbnREZWZhdWx0cyBleHRlbmRzIF9Gb2N1c2FibGVDb21wb25lbnREZWZhdWx0cyB7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBfbmdNb2RlbENvbXBvbmVudERlZmF1bHRzOiBfTmdNb2RlbENvbXBvbmVudERlZmF1bHRzID0ge1xyXG4gIC4uLl9mb2N1c2FibGVDb21wb25lbnREZWZhdWx0cyxcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDb21tb24gY29kZSBmb3IgY29tcG9uZW50cyB3aGljaCBpbXBsZW1lbnQgdGhlIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxyXG4gKlxyXG4gKiAqKldhcm5pbmcqKjogYHdyaXRlVmFsdWVgIGZ1bmN0aW9uIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBvbiB0aGUgY2hpbGQgY29tcG9uZW50IVxyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBfTmdNb2RlbENvbXBvbmVudEJhc2UgZXh0ZW5kcyBfRm9jdXNhYmxlQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9ERUZBVUxUUyE6IF9OZ01vZGVsQ29tcG9uZW50RGVmYXVsdHM7XHJcblxyXG4gIC8vISBjb250cm9sIHZhbHVlIGFjY2Vzc29yXHJcbiAgcHJvdGVjdGVkIF9vbkNoYW5nZVJlZ2lzdGVyZWQhOiAoXzogYW55KSA9PiB2b2lkO1xyXG4gIHByb3RlY3RlZCBfb25Ub3VjaGVkUmVnaXN0ZXJlZCE6ICgpID0+IHZvaWQ7XHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXJzIGEgZnVuY3Rpb24gdG8gaGFuZGxlIHRvdWNoZWQgc3RhdGUuIFJlcXVpcmVkIGJ5IENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxyXG4gICAqIEBwYXJhbSBmbiBUaGUgZnVuY3Rpb24gdG8gcmVnaXN0ZXIuXHJcbiAgICovXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMuX29uVG91Y2hlZFJlZ2lzdGVyZWQgPSBmbjtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXJzIGEgZnVuY3Rpb24gdG8gaGFuZGxlIHZhbHVlIGNoYW5nZS4gUmVxdWlyZWQgYnkgQ29udHJvbFZhbHVlQWNjZXNzb3IuXHJcbiAgICogQHBhcmFtIGZuIFRoZSBmdW5jdGlvbiB0byByZWdpc3Rlci5cclxuICAgKi9cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLl9vbkNoYW5nZVJlZ2lzdGVyZWQgPSBmbjtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgY29tcG9uZW50J3MgZGlzYWJsZWQgc3RhdGUuIFJlcXVpcmVkIGJ5IENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxyXG4gICAqIEBwYXJhbSBpc0Rpc2FibGVkIHRoZSBuZXcgZGlzYWJsZWQgc3RhdGUuXHJcbiAgICovXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkLnNldChpc0Rpc2FibGVkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdyaXRlcyB0aGUgYSBuZXcgdmFsdWUgaW50byB0aGUgY29tcG9uZW50LiBSZXF1aXJlZCBieSBDb250cm9sVmFsdWVBY2Nlc3Nvci5cclxuICAgKiBAYWJzdHJhY3RcclxuICAgKiBAcGFyYW0gdiBUaGUgbmV3IHZhbHVlIHRvIHdyaXRlLlxyXG4gICAqL1xyXG4gIGFic3RyYWN0IHdyaXRlVmFsdWUodjogYW55KTogdm9pZDsgLy8qIGFic3RyYWN0XHJcblxyXG4gIC8qKlxyXG4gICAqIFdyaXRlcyB0aGUgYSBuZXcgdmFsdWUgaW50byB0aGUgY29tcG9uZW50LiBSZXF1aXJlZCBieSBDb250cm9sVmFsdWVBY2Nlc3Nvci5cclxuICAgKiBAYWJzdHJhY3RcclxuICAgKiBAcGFyYW0gdiBUaGUgbmV3IHZhbHVlIHRvIHdyaXRlLlxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfZW1pdENoYW5nZSgpOiB2b2lkOyAvLyogYWJzdHJhY3RcclxuXHJcbiAgLy8hIGV2ZW50IGhhbmRsZXJzXHJcbiAgcmVhZG9ubHkgd2FzVG91Y2hlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIG92ZXJyaWRlIG9uRm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcclxuICAgIHN1cGVyLm9uRm9jdXMoZXZlbnQpO1xyXG4gICAgdGhpcy5fc2hvdWxkRW1pdFRvdWNoZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfc2hvdWxkRW1pdFRvdWNoZWQgPSBmYWxzZTtcclxuICBvdmVycmlkZSBvbkJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcclxuICAgIHRoaXMuX3Nob3VsZEVtaXRUb3VjaGVkID0gdHJ1ZTtcclxuICAgIHN1cGVyLm9uQmx1cihldmVudCk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIC8vIGlmIHRoZSBjb21wb25lbnQgaXMgaW1tZWRpYXRlbHkgZm9jdXNlZCBiYWNrIChpLmUuIHdoZW4gY2hhbmdpbmcgZm9jdXMgYmV0d2VlbiBlbGVtZW50cyB3aXRoaW4gdGhlIGNvbXBvbmVudClcclxuICAgICAgLy8gdGhlIHRvdWNoZWQgZXZlbnQgd2lsbCBub3QgYmUgZmlyZWRcclxuICAgICAgaWYgKCF0aGlzLl9zaG91bGRFbWl0VG91Y2hlZCkgcmV0dXJuO1xyXG4gICAgICB0aGlzLndhc1RvdWNoZWQuc2V0KHRydWUpO1xyXG4gICAgICB0aGlzLl9vblRvdWNoZWRSZWdpc3RlcmVkPy4oKTtcclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgLy8hIGZvcm0gZmllbGQgcmVsYXRlZFxyXG4gIHByb3RlY3RlZCByZWFkb25seSBfaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xyXG5cclxuICBwcml2YXRlIF9zdGF0dXNDaGFuZ2VzU3ViPzogU3Vic2NyaXB0aW9uO1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fbmdDb250cm9sID0gdGhpcy5faW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCk7XHJcblxyXG4gICAgaWYgKHRoaXMuX25nQ29udHJvbCkge1xyXG4gICAgICBpZiAoIXRoaXMuX25nQ29udHJvbC52YWx1ZUFjY2Vzc29yIHx8ICh0aGlzICYmIHRoaXMgaW5zdGFuY2VvZiAodGhpcy5fbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgYXMgYW55KS5jb25zdHJ1Y3RvcikpIHtcclxuICAgICAgICB0aGlzLl9uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuX2hhc0Vycm9ySW5Db250cm9sLnNldCh0aGlzLl9uZ0NvbnRyb2wuc3RhdHVzID09PSAnSU5WQUxJRCcpO1xyXG5cclxuICAgICAgdGhpcy5fc3RhdHVzQ2hhbmdlc1N1YiA9IHRoaXMuX25nQ29udHJvbC5zdGF0dXNDaGFuZ2VzXHJcbiAgICAgICAgPy5waXBlKG1hcCh2ID0+IHYgPT09ICdJTlZBTElEJykpXHJcbiAgICAgICAgLnN1YnNjcmliZSh2ID0+IHRoaXMuX2hhc0Vycm9ySW5Db250cm9sLnNldCh2KSk7XHJcblxyXG4gICAgICBpZiAoIXRoaXMuX25nQ29udHJvbC5jb250cm9sKSByZXR1cm47XHJcblxyXG4gICAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5faW5qZWN0b3IsICgpID0+IHtcclxuICAgICAgICAvLyBkbyBub3QgcmVhZCB0aGUgbmV4dCBsaW5lIG9mIGNvZGUgaWYgeW91IGFyZSBlYXNpbHkgZnJpZ2h0ZW5lZFxyXG4gICAgICAgIC8vIEknbSBub3QgcHJvdWQgb2YgdGhpcyBwYXJ0LCBidXQgaXQgaGFkIHRvIGJlIGRvbmUuIEdvZCBwbGVhc2UgZm9yZ2l2ZSBtZVxyXG4gICAgICAgIC8vIEkgZGlkbid0IGZpbmQgYW55IG90aGVyIGZlYXNpYmxlIHdheSB0byBkZXRlY3Qgd2hlbiB0aGUgY29udHJvbCBjaGFuZ2VzIGl0cyB0b3VjaGVkIHN0YXRlXHJcbiAgICAgICAgLy8gc28gaXQgaGFkIHRvIGJlIGhhY2tlZCBsaWtlIHRoaXNcclxuICAgICAgICB0b09ic2VydmFibGUoKHRoaXMuX25nQ29udHJvbD8uY29udHJvbCBhcyBhbnkgfCB1bmRlZmluZWQpPy50b3VjaGVkUmVhY3RpdmUgYXMgU2lnbmFsPGJvb2xlYW4+KT8uc3Vic2NyaWJlKHYgPT5cclxuICAgICAgICAgIHRoaXMud2FzVG91Y2hlZC5zZXQodilcclxuICAgICAgICApO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJvdGVjdGVkIF9uZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwgPSBudWxsO1xyXG5cclxuICByZWFkb25seSBodG1sSWQgPSBpbnB1dDxzdHJpbmc+KFJhbmRvbS5pZCgpKTtcclxuXHJcbiAgcmVhZG9ubHkgX2hhc0Vycm9yID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZCwgYW55Pih1bmRlZmluZWQsIHtcclxuICAgIHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodiksXHJcbiAgICBhbGlhczogJ2hhc0Vycm9yJyxcclxuICB9KTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9oYXNFcnJvckluQ29udHJvbCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgcmVhZG9ubHkgaGFzRXJyb3IgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLl9oYXNFcnJvcigpID8/ICh0aGlzLndhc1RvdWNoZWQoKSAmJiB0aGlzLl9oYXNFcnJvckluQ29udHJvbCgpKSk7XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RhdHVzQ2hhbmdlc1N1Yj8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -58,13 +58,13 @@ export class ArdiumFileDropAreaComponent extends _FileInputComponentBase {
|
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
60
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFileDropAreaComponent, deps: [{ token: ARD_FILE_DROP_AREA_DEFAULTS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
61
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ArdiumFileDropAreaComponent, selector: "ard-file-drop-area", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "idleTemplate", first: true, predicate: ArdiumFileDropAreaIdleContentTemplateDirective, descendants: true, isSignal: true }, { propertyName: "dragoverTemplate", first: true, predicate: ArdiumFileDropAreaDragoverContentTemplateDirective, descendants: true, isSignal: true }, { propertyName: "uploadedTemplate", first: true, predicate: ArdiumFileDropAreaUploadedContentTemplateDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"ard-file-drop-area\"\r\n (ardClickOutside)=\"onDragleave()\"\r\n (dragleave)=\"onDragleave()\"\r\n (dragover)=\"onDragover($event)\"\r\n (drop)=\"onDrop($event)\"\r\n [ngClass]=\"ngClasses\"\r\n>\r\n <div class=\"ard-file-drop-area-outline\">\r\n <div class=\"ard-file-drop-area-content\">\r\n @if (currentViewState() === 'idle') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"idleTemplate()?.template ?? defaultIdleTemplate\"\r\n [ngTemplateOutletContext]=\"getIdleContext()\"\r\n />\r\n } @if (currentViewState() === 'dragover') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"dragoverTemplate()?.template ?? defaultDragoverTemplate\"\r\n [ngTemplateOutletContext]=\"getDragoverContext()\"\r\n />\r\n } @if (currentViewState() === 'uploaded') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"uploadedTemplate()?.template ?? defaultUploadedTemplate\"\r\n [ngTemplateOutletContext]=\"getUploadedContext()\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n<input\r\n #fileInput\r\n class=\"ard-file-drop-area-input-element\"\r\n type=\"file\"\r\n [name]=\"name()\"\r\n [multiple]=\"multiple()\"\r\n [id]=\"htmlId()\"\r\n (change)=\"
|
|
61
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ArdiumFileDropAreaComponent, selector: "ard-file-drop-area", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "idleTemplate", first: true, predicate: ArdiumFileDropAreaIdleContentTemplateDirective, descendants: true, isSignal: true }, { propertyName: "dragoverTemplate", first: true, predicate: ArdiumFileDropAreaDragoverContentTemplateDirective, descendants: true, isSignal: true }, { propertyName: "uploadedTemplate", first: true, predicate: ArdiumFileDropAreaUploadedContentTemplateDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"ard-file-drop-area\"\r\n (ardClickOutside)=\"onDragleave()\"\r\n (dragleave)=\"onDragleave()\"\r\n (dragover)=\"onDragover($event)\"\r\n (drop)=\"onDrop($event)\"\r\n [ngClass]=\"ngClasses\"\r\n>\r\n <div class=\"ard-file-drop-area-outline\">\r\n <div class=\"ard-file-drop-area-content\">\r\n @if (currentViewState() === 'idle') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"idleTemplate()?.template ?? defaultIdleTemplate\"\r\n [ngTemplateOutletContext]=\"getIdleContext()\"\r\n />\r\n } @if (currentViewState() === 'dragover') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"dragoverTemplate()?.template ?? defaultDragoverTemplate\"\r\n [ngTemplateOutletContext]=\"getDragoverContext()\"\r\n />\r\n } @if (currentViewState() === 'uploaded') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"uploadedTemplate()?.template ?? defaultUploadedTemplate\"\r\n [ngTemplateOutletContext]=\"getUploadedContext()\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n<input\r\n #fileInput\r\n class=\"ard-file-drop-area-input-element\"\r\n type=\"file\"\r\n [name]=\"name()\"\r\n [multiple]=\"multiple()\"\r\n [id]=\"htmlId()\"\r\n (change)=\"onFileInputChange()\"\r\n/>\r\n\r\n<ng-template\r\n #defaultIdleTemplate\r\n let-browse=\"browse\"\r\n>\r\n <ard-icon class=\"ard-file-drop-area-icon\">upload</ard-icon>\r\n <strong class=\"ard-file-drop-area-drop-text\">\r\n @if (!multiple) {\r\n <span>Drag & Drop a file</span>\r\n } @else {\r\n <span>Drag & Drop files</span>\r\n } here\r\n </strong>\r\n <span class=\"ard-file-drop-area-or-text\">or</span>\r\n <ard-button\r\n class=\"ard-file-drop-area-browse-button\"\r\n appearance=\"transparent\"\r\n [compact]=\"compact()\"\r\n [variant]=\"variant()\"\r\n [color]=\"color()\"\r\n (click)=\"browse()\"\r\n >\r\n Browse files\r\n </ard-button>\r\n</ng-template>\r\n\r\n<ng-template\r\n #defaultDragoverTemplate\r\n let-amount=\"amount\"\r\n>\r\n <span class=\"ard-file-drop-area-dragover-text\">Drop </span>\r\n <span class=\"ard-file-drop-area-dragover-amount\">\r\n {{ amount }}\r\n <ng-container [ngPlural]=\"amount\">\r\n <ng-template ngPluralCase=\"=1\">file</ng-template>\r\n <ng-template ngPluralCase=\"other\">files</ng-template>\r\n </ng-container>\r\n </span>\r\n <span class=\"ard-file-drop-area-dragover-text\"> here to upload. </span>\r\n @if (amount > 1 && !multiple()) {\r\n <strong class=\"ard-file-drop-area-dragover-warning\"> Only the first file will be uploaded! </strong>\r\n }\r\n</ng-template>\r\n\r\n<ng-template\r\n #defaultUploadedTemplate\r\n let-amount=\"amount\"\r\n let-files=\"files\"\r\n>\r\n <div class=\"ard-file-drop-area-uploaded-container\">\r\n <div class=\"ard-file-drop-area-uploaded-message\">\r\n <span class=\"ard-file-drop-area-uploaded-amount\">\r\n {{ amount }}\r\n <ng-container [ngPlural]=\"amount\">\r\n <ng-template ngPluralCase=\"=1\">file</ng-template>\r\n <ng-template ngPluralCase=\"other\">files</ng-template>\r\n </ng-container>\r\n </span>\r\n <span class=\"ard-file-drop-area-uploaded-text\"> uploaded.</span>\r\n </div>\r\n <div class=\"ard-file-drop-area-uploaded-files\">\r\n @for (file of files; track $index) {\r\n <div class=\"ard-file-drop-area-file\">\r\n <ard-icon>draft</ard-icon>\r\n <div class=\"ard-file-drop-area-file-info\">\r\n <span class=\"ard-file-drop-area-filename\">\r\n <span class=\"ard-file-drop-area-filename-name\">{{ file | filename }}</span>\r\n <span class=\"ard-file-drop-area-filename-ext\">{{ file | fileext : true }}</span>\r\n </span>\r\n <span class=\"ard-file-drop-area-filesize\">{{ file.size | filesize }}</span>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".ard-file-drop-area-input-element{position:absolute;appearance:none;opacity:0;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgPlural, selector: "[ngPlural]", inputs: ["ngPlural"] }, { kind: "directive", type: i1.NgPluralCase, selector: "[ngPluralCase]" }, { kind: "component", type: i2.ArdiumButtonComponent, selector: "ard-button", inputs: ["icon", "variant", "alignIcon", "vertical"] }, { kind: "component", type: i3.ArdiumIconComponent, selector: "ard-icon", inputs: ["ariaLabel", "icon", "filled", "weight", "grade", "opticalSize"] }, { kind: "directive", type: i4.ArdiumClickOutsideDirective, selector: "[ardClickOutside]", outputs: ["ardClickOutside"] }, { kind: "pipe", type: i4.ArdiumFileExtensionPipe, name: "fileext" }, { kind: "pipe", type: i4.ArdiumFileNamePipe, name: "filename" }, { kind: "pipe", type: i4.ArdiumFileSizePipe, name: "filesize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
62
62
|
}
|
|
63
63
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFileDropAreaComponent, decorators: [{
|
|
64
64
|
type: Component,
|
|
65
|
-
args: [{ selector: 'ard-file-drop-area', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"ard-file-drop-area\"\r\n (ardClickOutside)=\"onDragleave()\"\r\n (dragleave)=\"onDragleave()\"\r\n (dragover)=\"onDragover($event)\"\r\n (drop)=\"onDrop($event)\"\r\n [ngClass]=\"ngClasses\"\r\n>\r\n <div class=\"ard-file-drop-area-outline\">\r\n <div class=\"ard-file-drop-area-content\">\r\n @if (currentViewState() === 'idle') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"idleTemplate()?.template ?? defaultIdleTemplate\"\r\n [ngTemplateOutletContext]=\"getIdleContext()\"\r\n />\r\n } @if (currentViewState() === 'dragover') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"dragoverTemplate()?.template ?? defaultDragoverTemplate\"\r\n [ngTemplateOutletContext]=\"getDragoverContext()\"\r\n />\r\n } @if (currentViewState() === 'uploaded') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"uploadedTemplate()?.template ?? defaultUploadedTemplate\"\r\n [ngTemplateOutletContext]=\"getUploadedContext()\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n<input\r\n #fileInput\r\n class=\"ard-file-drop-area-input-element\"\r\n type=\"file\"\r\n [name]=\"name()\"\r\n [multiple]=\"multiple()\"\r\n [id]=\"htmlId()\"\r\n (change)=\"
|
|
65
|
+
args: [{ selector: 'ard-file-drop-area', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"ard-file-drop-area\"\r\n (ardClickOutside)=\"onDragleave()\"\r\n (dragleave)=\"onDragleave()\"\r\n (dragover)=\"onDragover($event)\"\r\n (drop)=\"onDrop($event)\"\r\n [ngClass]=\"ngClasses\"\r\n>\r\n <div class=\"ard-file-drop-area-outline\">\r\n <div class=\"ard-file-drop-area-content\">\r\n @if (currentViewState() === 'idle') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"idleTemplate()?.template ?? defaultIdleTemplate\"\r\n [ngTemplateOutletContext]=\"getIdleContext()\"\r\n />\r\n } @if (currentViewState() === 'dragover') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"dragoverTemplate()?.template ?? defaultDragoverTemplate\"\r\n [ngTemplateOutletContext]=\"getDragoverContext()\"\r\n />\r\n } @if (currentViewState() === 'uploaded') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"uploadedTemplate()?.template ?? defaultUploadedTemplate\"\r\n [ngTemplateOutletContext]=\"getUploadedContext()\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n<input\r\n #fileInput\r\n class=\"ard-file-drop-area-input-element\"\r\n type=\"file\"\r\n [name]=\"name()\"\r\n [multiple]=\"multiple()\"\r\n [id]=\"htmlId()\"\r\n (change)=\"onFileInputChange()\"\r\n/>\r\n\r\n<ng-template\r\n #defaultIdleTemplate\r\n let-browse=\"browse\"\r\n>\r\n <ard-icon class=\"ard-file-drop-area-icon\">upload</ard-icon>\r\n <strong class=\"ard-file-drop-area-drop-text\">\r\n @if (!multiple) {\r\n <span>Drag & Drop a file</span>\r\n } @else {\r\n <span>Drag & Drop files</span>\r\n } here\r\n </strong>\r\n <span class=\"ard-file-drop-area-or-text\">or</span>\r\n <ard-button\r\n class=\"ard-file-drop-area-browse-button\"\r\n appearance=\"transparent\"\r\n [compact]=\"compact()\"\r\n [variant]=\"variant()\"\r\n [color]=\"color()\"\r\n (click)=\"browse()\"\r\n >\r\n Browse files\r\n </ard-button>\r\n</ng-template>\r\n\r\n<ng-template\r\n #defaultDragoverTemplate\r\n let-amount=\"amount\"\r\n>\r\n <span class=\"ard-file-drop-area-dragover-text\">Drop </span>\r\n <span class=\"ard-file-drop-area-dragover-amount\">\r\n {{ amount }}\r\n <ng-container [ngPlural]=\"amount\">\r\n <ng-template ngPluralCase=\"=1\">file</ng-template>\r\n <ng-template ngPluralCase=\"other\">files</ng-template>\r\n </ng-container>\r\n </span>\r\n <span class=\"ard-file-drop-area-dragover-text\"> here to upload. </span>\r\n @if (amount > 1 && !multiple()) {\r\n <strong class=\"ard-file-drop-area-dragover-warning\"> Only the first file will be uploaded! </strong>\r\n }\r\n</ng-template>\r\n\r\n<ng-template\r\n #defaultUploadedTemplate\r\n let-amount=\"amount\"\r\n let-files=\"files\"\r\n>\r\n <div class=\"ard-file-drop-area-uploaded-container\">\r\n <div class=\"ard-file-drop-area-uploaded-message\">\r\n <span class=\"ard-file-drop-area-uploaded-amount\">\r\n {{ amount }}\r\n <ng-container [ngPlural]=\"amount\">\r\n <ng-template ngPluralCase=\"=1\">file</ng-template>\r\n <ng-template ngPluralCase=\"other\">files</ng-template>\r\n </ng-container>\r\n </span>\r\n <span class=\"ard-file-drop-area-uploaded-text\"> uploaded.</span>\r\n </div>\r\n <div class=\"ard-file-drop-area-uploaded-files\">\r\n @for (file of files; track $index) {\r\n <div class=\"ard-file-drop-area-file\">\r\n <ard-icon>draft</ard-icon>\r\n <div class=\"ard-file-drop-area-file-info\">\r\n <span class=\"ard-file-drop-area-filename\">\r\n <span class=\"ard-file-drop-area-filename-name\">{{ file | filename }}</span>\r\n <span class=\"ard-file-drop-area-filename-ext\">{{ file | fileext : true }}</span>\r\n </span>\r\n <span class=\"ard-file-drop-area-filesize\">{{ file.size | filesize }}</span>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".ard-file-drop-area-input-element{position:absolute;appearance:none;opacity:0;pointer-events:none}\n"] }]
|
|
66
66
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
67
67
|
type: Inject,
|
|
68
68
|
args: [ARD_FILE_DROP_AREA_DEFAULTS]
|
|
69
69
|
}] }] });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLWFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9maWxlLWlucHV0cy9maWxlLWRyb3AtYXJlYS9maWxlLWRyb3AtYXJlYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2ZpbGUtaW5wdXRzL2ZpbGUtZHJvcC1hcmVhL2ZpbGUtZHJvcC1hcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixpQkFBaUIsRUFDakIsUUFBUSxFQUNSLFlBQVksRUFDWixLQUFLLEVBQ04sTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFN0QsT0FBTyxFQUFFLDJCQUEyQixFQUEyQixNQUFNLDJCQUEyQixDQUFDO0FBQ2pHLE9BQU8sRUFDTCxrREFBa0QsRUFDbEQsOENBQThDLEVBQzlDLGtEQUFrRCxHQUNuRCxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7QUFTckMsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHVCQUF1QjtJQUV0RSxZQUFpRCxRQUFpQztRQUNoRixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFHVCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUU3QixjQUFjO1FBQ0wsWUFBTyxHQUFHLEtBQUssQ0FBcUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1RCxVQUFLLEdBQUcsS0FBSyxDQUFpQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBELGNBQVMsR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFLENBQ3pDLENBQUMsZUFBZSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxhQUFhLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQzlHLENBQUM7UUFFRiwwQkFBMEI7UUFDaEIsMkJBQXNCLEdBQWdCLElBQUksQ0FBQztRQVdyRCxhQUFhO1FBQ0osaUJBQVksR0FBRyxZQUFZLENBQUMsOENBQThDLENBQUMsQ0FBQztRQUM1RSxxQkFBZ0IsR0FBRyxZQUFZLENBQUMsa0RBQWtELENBQUMsQ0FBQztRQUNwRixxQkFBZ0IsR0FBRyxZQUFZLENBQUMsa0RBQWtELENBQUMsQ0FBQztJQTNCN0YsQ0FBQztJQWNELFdBQVc7UUFDVCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0I7WUFBRSxPQUFPO1FBQ3pDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFFbkMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQU9ELGNBQWM7UUFDWixPQUFPO1lBQ0wsTUFBTSxFQUFFLEdBQUcsRUFBRTtnQkFDWCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxrQkFBa0I7UUFDaEIsT0FBTztZQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYztZQUMzQixNQUFNLEVBQUUsR0FBRyxFQUFFO2dCQUNYLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELGtCQUFrQjtRQUNoQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBTSxDQUFDO1FBQzFCLE9BQU87WUFDTCxTQUFTLEVBQUUsS0FBSztZQUNoQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07WUFDcEIsS0FBSztZQUNMLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDMUIsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDOytHQTFEVSwyQkFBMkIsa0JBRWxCLDJCQUEyQjttR0FGcEMsMkJBQTJCLHNXQTZCRCw4Q0FBOEMsbUdBQzFDLGtEQUFrRCxtR0FDbEQsa0RBQWtELHVGQzFEN0YsaTRIQWtIQTs7NEZEdkZhLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDRSxvQkFBb0IsaUJBR2YsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs7MEJBSWxDLE1BQU07MkJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgSW5qZWN0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIGNvbXB1dGVkLFxyXG4gIGNvbnRlbnRDaGlsZCxcclxuICBpbnB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRDb2xvciB9IGZyb20gJy4uLy4uL3R5cGVzL2NvbG9ycy50eXBlcyc7XHJcbmltcG9ydCB7IEZvcm1FbGVtZW50VmFyaWFudCB9IGZyb20gJy4uLy4uL3R5cGVzL3RoZW1pbmcudHlwZXMnO1xyXG5pbXBvcnQgeyBfRmlsZUlucHV0Q29tcG9uZW50QmFzZSB9IGZyb20gJy4uL2ZpbGUtaW5wdXQtYmFzZSc7XHJcbmltcG9ydCB7IEZpbGVJbnB1dEJyb3dzZUNvbnRleHQsIEZpbGVJbnB1dEZpbGVBbW91bnRDb250ZXh0LCBGaWxlSW5wdXRGaWxlc0NvbnRleHQgfSBmcm9tICcuLi9maWxlLWlucHV0LXR5cGVzJztcclxuaW1wb3J0IHsgQVJEX0ZJTEVfRFJPUF9BUkVBX0RFRkFVTFRTLCBBcmRGaWxlRHJvcEFyZWFEZWZhdWx0cyB9IGZyb20gJy4vZmlsZS1kcm9wLWFyZWEuZGVmYXVsdHMnO1xyXG5pbXBvcnQge1xyXG4gIEFyZGl1bUZpbGVEcm9wQXJlYURyYWdvdmVyQ29udGVudFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZGl1bUZpbGVEcm9wQXJlYUlkbGVDb250ZW50VGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgQXJkaXVtRmlsZURyb3BBcmVhVXBsb2FkZWRDb250ZW50VGVtcGxhdGVEaXJlY3RpdmUsXHJcbn0gZnJvbSAnLi9maWxlLWRyb3AtYXJlYS5kaXJlY3RpdmVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXJkLWZpbGUtZHJvcC1hcmVhJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1kcm9wLWFyZWEuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtZHJvcC1hcmVhLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFyZGl1bUZpbGVEcm9wQXJlYUNvbXBvbmVudCBleHRlbmRzIF9GaWxlSW5wdXRDb21wb25lbnRCYXNlIHtcclxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgX0RFRkFVTFRTITogQXJkRmlsZURyb3BBcmVhRGVmYXVsdHM7XHJcbiAgY29uc3RydWN0b3IoQEluamVjdChBUkRfRklMRV9EUk9QX0FSRUFfREVGQVVMVFMpIGRlZmF1bHRzOiBBcmRGaWxlRHJvcEFyZWFEZWZhdWx0cykge1xyXG4gICAgc3VwZXIoZGVmYXVsdHMpO1xyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgY29tcG9uZW50SWQgPSAnMDEwJztcclxuXHJcbiAgLy8hIGFwcGVhcmFuY2VcclxuICByZWFkb25seSB2YXJpYW50ID0gaW5wdXQ8Rm9ybUVsZW1lbnRWYXJpYW50Pih0aGlzLl9ERUZBVUxUUy52YXJpYW50KTtcclxuICByZWFkb25seSBjb2xvciA9IGlucHV0PENvbXBvbmVudENvbG9yPih0aGlzLl9ERUZBVUxUUy5jb2xvcik7XHJcblxyXG4gIHJlYWRvbmx5IG5nQ2xhc3NlcyA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT5cclxuICAgIFtgYXJkLXZhcmlhbnQtJHt0aGlzLnZhcmlhbnQoKX1gLCBgYXJkLWNvbG9yLSR7dGhpcy5jb2xvcigpfWAsIHRoaXMuY29tcGFjdCgpID8gJ2FyZC1jb21wYWN0JyA6ICcnXS5qb2luKCcgJylcclxuICApO1xyXG5cclxuICAvLyEgdHJpZ2dlcmluZyBmaWxlIGRpYWxvZ1xyXG4gIHByb3RlY3RlZCBfd2FzTW91c2Vkb3duT25FbGVtZW50OiB0cnVlIHwgbnVsbCA9IG51bGw7XHJcbiAgb25Nb3VzZWRvd24oKTogdm9pZCB7XHJcbiAgICB0aGlzLl93YXNNb3VzZWRvd25PbkVsZW1lbnQgPSB0cnVlO1xyXG4gIH1cclxuICBvbk1vdXNldXAoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX3dhc01vdXNlZG93bk9uRWxlbWVudCkgcmV0dXJuO1xyXG4gICAgdGhpcy5fd2FzTW91c2Vkb3duT25FbGVtZW50ID0gbnVsbDtcclxuXHJcbiAgICB0aGlzLm9wZW5Ccm93c2VEaWFsb2coKTtcclxuICB9XHJcblxyXG4gIC8vISB0ZW1wbGF0ZXNcclxuICByZWFkb25seSBpZGxlVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkaXVtRmlsZURyb3BBcmVhSWRsZUNvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSk7XHJcbiAgcmVhZG9ubHkgZHJhZ292ZXJUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRpdW1GaWxlRHJvcEFyZWFEcmFnb3ZlckNvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSk7XHJcbiAgcmVhZG9ubHkgdXBsb2FkZWRUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRpdW1GaWxlRHJvcEFyZWFVcGxvYWRlZENvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSk7XHJcblxyXG4gIGdldElkbGVDb250ZXh0KCk6IEZpbGVJbnB1dEJyb3dzZUNvbnRleHQge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYnJvd3NlOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vcGVuQnJvd3NlRGlhbG9nKCk7XHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gIH1cclxuICBnZXREcmFnb3ZlckNvbnRleHQoKTogRmlsZUlucHV0RmlsZUFtb3VudENvbnRleHQge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYW1vdW50OiB0aGlzLl9kcmFnZ2VkRmlsZXMhLFxyXG4gICAgICBicm93c2U6ICgpID0+IHtcclxuICAgICAgICB0aGlzLm9wZW5Ccm93c2VEaWFsb2coKTtcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgfVxyXG4gIGdldFVwbG9hZGVkQ29udGV4dCgpOiBGaWxlSW5wdXRGaWxlc0NvbnRleHQge1xyXG4gICAgY29uc3QgZmlsZXMgPSB0aGlzLnZhbHVlITtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICRpbXBsaWNpdDogZmlsZXMsXHJcbiAgICAgIGFtb3VudDogZmlsZXMubGVuZ3RoLFxyXG4gICAgICBmaWxlcyxcclxuICAgICAgYnJvd3NlOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vcGVuQnJvd3NlRGlhbG9nKCk7XHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJhcmQtZmlsZS1kcm9wLWFyZWFcIlxyXG4gIChhcmRDbGlja091dHNpZGUpPVwib25EcmFnbGVhdmUoKVwiXHJcbiAgKGRyYWdsZWF2ZSk9XCJvbkRyYWdsZWF2ZSgpXCJcclxuICAoZHJhZ292ZXIpPVwib25EcmFnb3ZlcigkZXZlbnQpXCJcclxuICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXHJcbiAgW25nQ2xhc3NdPVwibmdDbGFzc2VzXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJhcmQtZmlsZS1kcm9wLWFyZWEtb3V0bGluZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1maWxlLWRyb3AtYXJlYS1jb250ZW50XCI+XHJcbiAgICAgIEBpZiAoY3VycmVudFZpZXdTdGF0ZSgpID09PSAnaWRsZScpIHtcclxuICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaWRsZVRlbXBsYXRlKCk/LnRlbXBsYXRlID8/IGRlZmF1bHRJZGxlVGVtcGxhdGVcIlxyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRJZGxlQ29udGV4dCgpXCJcclxuICAgICAgLz5cclxuICAgICAgfSBAaWYgKGN1cnJlbnRWaWV3U3RhdGUoKSA9PT0gJ2RyYWdvdmVyJykge1xyXG4gICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkcmFnb3ZlclRlbXBsYXRlKCk/LnRlbXBsYXRlID8/IGRlZmF1bHREcmFnb3ZlclRlbXBsYXRlXCJcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0RHJhZ292ZXJDb250ZXh0KClcIlxyXG4gICAgICAvPlxyXG4gICAgICB9IEBpZiAoY3VycmVudFZpZXdTdGF0ZSgpID09PSAndXBsb2FkZWQnKSB7XHJcbiAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInVwbG9hZGVkVGVtcGxhdGUoKT8udGVtcGxhdGUgPz8gZGVmYXVsdFVwbG9hZGVkVGVtcGxhdGVcIlxyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRVcGxvYWRlZENvbnRleHQoKVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPGlucHV0XHJcbiAgI2ZpbGVJbnB1dFxyXG4gIGNsYXNzPVwiYXJkLWZpbGUtZHJvcC1hcmVhLWlucHV0LWVsZW1lbnRcIlxyXG4gIHR5cGU9XCJmaWxlXCJcclxuICBbbmFtZV09XCJuYW1lKClcIlxyXG4gIFttdWx0aXBsZV09XCJtdWx0aXBsZSgpXCJcclxuICBbaWRdPVwiaHRtbElkKClcIlxyXG4gIChjaGFuZ2UpPVwib25JbnB1dENoYW5nZSgpXCJcclxuLz5cclxuXHJcbjxuZy10ZW1wbGF0ZVxyXG4gICNkZWZhdWx0SWRsZVRlbXBsYXRlXHJcbiAgbGV0LWJyb3dzZT1cImJyb3dzZVwiXHJcbj5cclxuICA8YXJkLWljb24gY2xhc3M9XCJhcmQtZmlsZS1kcm9wLWFyZWEtaWNvblwiPnVwbG9hZDwvYXJkLWljb24+XHJcbiAgPHN0cm9uZyBjbGFzcz1cImFyZC1maWxlLWRyb3AtYXJlYS1kcm9wLXRleHRcIj5cclxuICAgIEBpZiAoIW11bHRpcGxlKSB7XHJcbiAgICA8c3Bhbj5EcmFnICYgRHJvcCBhIGZpbGU8L3NwYW4+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgIDxzcGFuPkRyYWcgJiBEcm9wIGZpbGVzPC9zcGFuPlxyXG4gICAgfSBoZXJlXHJcbiAgPC9zdHJvbmc+XHJcbiAgPHNwYW4gY2xhc3M9XCJhcmQtZmlsZS1kcm9wLWFyZWEtb3ItdGV4dFwiPm9yPC9zcGFuPlxyXG4gIDxhcmQtYnV0dG9uXHJcbiAgICBjbGFzcz1cImFyZC1maWxlLWRyb3AtYXJlYS1icm93c2UtYnV0dG9uXCJcclxuICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICBbY29tcGFjdF09XCJjb21wYWN0KClcIlxyXG4gICAgW3ZhcmlhbnRdPVwidmFyaWFudCgpXCJcclxuICAgIFtjb2xvcl09XCJjb2xvcigpXCJcclxuICAgIChjbGljayk9XCJicm93c2UoKVwiXHJcbiAgPlxyXG4gICAgQnJvd3NlIGZpbGVzXHJcbiAgPC9hcmQtYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlXHJcbiAgI2RlZmF1bHREcmFnb3ZlclRlbXBsYXRlXHJcbiAgbGV0LWFtb3VudD1cImFtb3VudFwiXHJcbj5cclxuICA8c3BhbiBjbGFzcz1cImFyZC1maWxlLWRyb3AtYXJlYS1kcmFnb3Zlci10ZXh0XCI+RHJvcCA8L3NwYW4+XHJcbiAgPHNwYW4gY2xhc3M9XCJhcmQtZmlsZS1kcm9wLWFyZWEtZHJhZ292ZXItYW1vdW50XCI+XHJcbiAgICB7eyBhbW91bnQgfX1cclxuICAgIDxuZy1jb250YWluZXIgW25nUGx1cmFsXT1cImFtb3VudFwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgbmdQbHVyYWxDYXNlPVwiPTFcIj5maWxlPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPG5nLXRlbXBsYXRlIG5nUGx1cmFsQ2FzZT1cIm90aGVyXCI+ZmlsZXM8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9zcGFuPlxyXG4gIDxzcGFuIGNsYXNzPVwiYXJkLWZpbGUtZHJvcC1hcmVhLWRyYWdvdmVyLXRleHRcIj4gaGVyZSB0byB1cGxvYWQuIDwvc3Bhbj5cclxuICBAaWYgKGFtb3VudCA+IDEgJiYgIW11bHRpcGxlKCkpIHtcclxuICA8c3Ryb25nIGNsYXNzPVwiYXJkLWZpbGUtZHJvcC1hcmVhLWRyYWdvdmVyLXdhcm5pbmdcIj4gT25seSB0aGUgZmlyc3QgZmlsZSB3aWxsIGJlIHVwbG9hZGVkISA8L3N0cm9uZz5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGVcclxuICAjZGVmYXVsdFVwbG9hZGVkVGVtcGxhdGVcclxuICBsZXQtYW1vdW50PVwiYW1vdW50XCJcclxuICBsZXQtZmlsZXM9XCJmaWxlc1wiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwiYXJkLWZpbGUtZHJvcC1hcmVhLXVwbG9hZGVkLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1maWxlLWRyb3AtYXJlYS11cGxvYWRlZC1tZXNzYWdlXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiYXJkLWZpbGUtZHJvcC1hcmVhLXVwbG9hZGVkLWFtb3VudFwiPlxyXG4gICAgICAgIHt7IGFtb3VudCB9fVxyXG4gICAgICAgIDxuZy1jb250YWluZXIgW25nUGx1cmFsXT1cImFtb3VudFwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG5nUGx1cmFsQ2FzZT1cIj0xXCI+ZmlsZTwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbmdQbHVyYWxDYXNlPVwib3RoZXJcIj5maWxlczwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJhcmQtZmlsZS1kcm9wLWFyZWEtdXBsb2FkZWQtdGV4dFwiPiB1cGxvYWRlZC48L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtZmlsZS1kcm9wLWFyZWEtdXBsb2FkZWQtZmlsZXNcIj5cclxuICAgICAgQGZvciAoZmlsZSBvZiBmaWxlczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcmQtZmlsZS1kcm9wLWFyZWEtZmlsZVwiPlxyXG4gICAgICAgIDxhcmQtaWNvbj5kcmFmdDwvYXJkLWljb24+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1maWxlLWRyb3AtYXJlYS1maWxlLWluZm9cIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXJkLWZpbGUtZHJvcC1hcmVhLWZpbGVuYW1lXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXJkLWZpbGUtZHJvcC1hcmVhLWZpbGVuYW1lLW5hbWVcIj57eyBmaWxlIHwgZmlsZW5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXJkLWZpbGUtZHJvcC1hcmVhLWZpbGVuYW1lLWV4dFwiPnt7IGZpbGUgfCBmaWxlZXh0IDogdHJ1ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXJkLWZpbGUtZHJvcC1hcmVhLWZpbGVzaXplXCI+e3sgZmlsZS5zaXplIHwgZmlsZXNpemUgfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLWFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9maWxlLWlucHV0cy9maWxlLWRyb3AtYXJlYS9maWxlLWRyb3AtYXJlYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2ZpbGUtaW5wdXRzL2ZpbGUtZHJvcC1hcmVhL2ZpbGUtZHJvcC1hcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixpQkFBaUIsRUFDakIsUUFBUSxFQUNSLFlBQVksRUFDWixLQUFLLEVBQ04sTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFN0QsT0FBTyxFQUFFLDJCQUEyQixFQUEyQixNQUFNLDJCQUEyQixDQUFDO0FBQ2pHLE9BQU8sRUFDTCxrREFBa0QsRUFDbEQsOENBQThDLEVBQzlDLGtEQUFrRCxHQUNuRCxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7QUFTckMsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHVCQUF1QjtJQUV0RSxZQUFpRCxRQUFpQztRQUNoRixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFHVCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUU3QixjQUFjO1FBQ0wsWUFBTyxHQUFHLEtBQUssQ0FBcUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1RCxVQUFLLEdBQUcsS0FBSyxDQUFpQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBELGNBQVMsR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFLENBQ3pDLENBQUMsZUFBZSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxhQUFhLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQzlHLENBQUM7UUFFRiwwQkFBMEI7UUFDaEIsMkJBQXNCLEdBQWdCLElBQUksQ0FBQztRQVdyRCxhQUFhO1FBQ0osaUJBQVksR0FBRyxZQUFZLENBQUMsOENBQThDLENBQUMsQ0FBQztRQUM1RSxxQkFBZ0IsR0FBRyxZQUFZLENBQUMsa0RBQWtELENBQUMsQ0FBQztRQUNwRixxQkFBZ0IsR0FBRyxZQUFZLENBQUMsa0RBQWtELENBQUMsQ0FBQztJQTNCN0YsQ0FBQztJQWNELFdBQVc7UUFDVCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0I7WUFBRSxPQUFPO1FBQ3pDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFFbkMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQU9ELGNBQWM7UUFDWixPQUFPO1lBQ0wsTUFBTSxFQUFFLEdBQUcsRUFBRTtnQkFDWCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxrQkFBa0I7UUFDaEIsT0FBTztZQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYztZQUMzQixNQUFNLEVBQUUsR0FBRyxFQUFFO2dCQUNYLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELGtCQUFrQjtRQUNoQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBTSxDQUFDO1FBQzFCLE9BQU87WUFDTCxTQUFTLEVBQUUsS0FBSztZQUNoQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07WUFDcEIsS0FBSztZQUNMLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDMUIsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDOytHQTFEVSwyQkFBMkIsa0JBRWxCLDJCQUEyQjttR0FGcEMsMkJBQTJCLHNXQTZCRCw4Q0FBOEMsbUdBQzFDLGtEQUFrRCxtR0FDbEQsa0RBQWtELHVGQzFEN0YscTRIQWtIQTs7NEZEdkZhLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDRSxvQkFBb0IsaUJBR2YsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs7MEJBSWxDLE1BQU07MkJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgSW5qZWN0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIGNvbXB1dGVkLFxyXG4gIGNvbnRlbnRDaGlsZCxcclxuICBpbnB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRDb2xvciB9IGZyb20gJy4uLy4uL3R5cGVzL2NvbG9ycy50eXBlcyc7XHJcbmltcG9ydCB7IEZvcm1FbGVtZW50VmFyaWFudCB9IGZyb20gJy4uLy4uL3R5cGVzL3RoZW1pbmcudHlwZXMnO1xyXG5pbXBvcnQgeyBfRmlsZUlucHV0Q29tcG9uZW50QmFzZSB9IGZyb20gJy4uL2ZpbGUtaW5wdXQtYmFzZSc7XHJcbmltcG9ydCB7IEZpbGVJbnB1dEJyb3dzZUNvbnRleHQsIEZpbGVJbnB1dEZpbGVBbW91bnRDb250ZXh0LCBGaWxlSW5wdXRGaWxlc0NvbnRleHQgfSBmcm9tICcuLi9maWxlLWlucHV0LXR5cGVzJztcclxuaW1wb3J0IHsgQVJEX0ZJTEVfRFJPUF9BUkVBX0RFRkFVTFRTLCBBcmRGaWxlRHJvcEFyZWFEZWZhdWx0cyB9IGZyb20gJy4vZmlsZS1kcm9wLWFyZWEuZGVmYXVsdHMnO1xyXG5pbXBvcnQge1xyXG4gIEFyZGl1bUZpbGVEcm9wQXJlYURyYWdvdmVyQ29udGVudFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZGl1bUZpbGVEcm9wQXJlYUlkbGVDb250ZW50VGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgQXJkaXVtRmlsZURyb3BBcmVhVXBsb2FkZWRDb250ZW50VGVtcGxhdGVEaXJlY3RpdmUsXHJcbn0gZnJvbSAnLi9maWxlLWRyb3AtYXJlYS5kaXJlY3RpdmVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXJkLWZpbGUtZHJvcC1hcmVhJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1kcm9wLWFyZWEuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtZHJvcC1hcmVhLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFyZGl1bUZpbGVEcm9wQXJlYUNvbXBvbmVudCBleHRlbmRzIF9GaWxlSW5wdXRDb21wb25lbnRCYXNlIHtcclxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgX0RFRkFVTFRTITogQXJkRmlsZURyb3BBcmVhRGVmYXVsdHM7XHJcbiAgY29uc3RydWN0b3IoQEluamVjdChBUkRfRklMRV9EUk9QX0FSRUFfREVGQVVMVFMpIGRlZmF1bHRzOiBBcmRGaWxlRHJvcEFyZWFEZWZhdWx0cykge1xyXG4gICAgc3VwZXIoZGVmYXVsdHMpO1xyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgY29tcG9uZW50SWQgPSAnMDEwJztcclxuXHJcbiAgLy8hIGFwcGVhcmFuY2VcclxuICByZWFkb25seSB2YXJpYW50ID0gaW5wdXQ8Rm9ybUVsZW1lbnRWYXJpYW50Pih0aGlzLl9ERUZBVUxUUy52YXJpYW50KTtcclxuICByZWFkb25seSBjb2xvciA9IGlucHV0PENvbXBvbmVudENvbG9yPih0aGlzLl9ERUZBVUxUUy5jb2xvcik7XHJcblxyXG4gIHJlYWRvbmx5IG5nQ2xhc3NlcyA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT5cclxuICAgIFtgYXJkLXZhcmlhbnQtJHt0aGlzLnZhcmlhbnQoKX1gLCBgYXJkLWNvbG9yLSR7dGhpcy5jb2xvcigpfWAsIHRoaXMuY29tcGFjdCgpID8gJ2FyZC1jb21wYWN0JyA6ICcnXS5qb2luKCcgJylcclxuICApO1xyXG5cclxuICAvLyEgdHJpZ2dlcmluZyBmaWxlIGRpYWxvZ1xyXG4gIHByb3RlY3RlZCBfd2FzTW91c2Vkb3duT25FbGVtZW50OiB0cnVlIHwgbnVsbCA9IG51bGw7XHJcbiAgb25Nb3VzZWRvd24oKTogdm9pZCB7XHJcbiAgICB0aGlzLl93YXNNb3VzZWRvd25PbkVsZW1lbnQgPSB0cnVlO1xyXG4gIH1cclxuICBvbk1vdXNldXAoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX3dhc01vdXNlZG93bk9uRWxlbWVudCkgcmV0dXJuO1xyXG4gICAgdGhpcy5fd2FzTW91c2Vkb3duT25FbGVtZW50ID0gbnVsbDtcclxuXHJcbiAgICB0aGlzLm9wZW5Ccm93c2VEaWFsb2coKTtcclxuICB9XHJcblxyXG4gIC8vISB0ZW1wbGF0ZXNcclxuICByZWFkb25seSBpZGxlVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkaXVtRmlsZURyb3BBcmVhSWRsZUNvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSk7XHJcbiAgcmVhZG9ubHkgZHJhZ292ZXJUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRpdW1GaWxlRHJvcEFyZWFEcmFnb3ZlckNvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSk7XHJcbiAgcmVhZG9ubHkgdXBsb2FkZWRUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRpdW1GaWxlRHJvcEFyZWFVcGxvYWRlZENvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSk7XHJcblxyXG4gIGdldElkbGVDb250ZXh0KCk6IEZpbGVJbnB1dEJyb3dzZUNvbnRleHQge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYnJvd3NlOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vcGVuQnJvd3NlRGlhbG9nKCk7XHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gIH1cclxuICBnZXREcmFnb3ZlckNvbnRleHQoKTogRmlsZUlucHV0RmlsZUFtb3VudENvbnRleHQge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYW1vdW50OiB0aGlzLl9kcmFnZ2VkRmlsZXMhLFxyXG4gICAgICBicm93c2U6ICgpID0+IHtcclxuICAgICAgICB0aGlzLm9wZW5Ccm93c2VEaWFsb2coKTtcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgfVxyXG4gIGdldFVwbG9hZGVkQ29udGV4dCgpOiBGaWxlSW5wdXRGaWxlc0NvbnRleHQge1xyXG4gICAgY29uc3QgZmlsZXMgPSB0aGlzLnZhbHVlITtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICRpbXBsaWNpdDogZmlsZXMsXHJcbiAgICAgIGFtb3VudDogZmlsZXMubGVuZ3RoLFxyXG4gICAgICBmaWxlcyxcclxuICAgICAgYnJvd3NlOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vcGVuQnJvd3NlRGlhbG9nKCk7XHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJhcmQtZmlsZS1kcm9wLWFyZWFcIlxyXG4gIChhcmRDbGlja091dHNpZGUpPVwib25EcmFnbGVhdmUoKVwiXHJcbiAgKGRyYWdsZWF2ZSk9XCJvbkRyYWdsZWF2ZSgpXCJcclxuICAoZHJhZ292ZXIpPVwib25EcmFnb3ZlcigkZXZlbnQpXCJcclxuICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXHJcbiAgW25nQ2xhc3NdPVwibmdDbGFzc2VzXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJhcmQtZmlsZS1kcm9wLWFyZWEtb3V0bGluZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1maWxlLWRyb3AtYXJlYS1jb250ZW50XCI+XHJcbiAgICAgIEBpZiAoY3VycmVudFZpZXdTdGF0ZSgpID09PSAnaWRsZScpIHtcclxuICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaWRsZVRlbXBsYXRlKCk/LnRlbXBsYXRlID8/IGRlZmF1bHRJZGxlVGVtcGxhdGVcIlxyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRJZGxlQ29udGV4dCgpXCJcclxuICAgICAgLz5cclxuICAgICAgfSBAaWYgKGN1cnJlbnRWaWV3U3RhdGUoKSA9PT0gJ2RyYWdvdmVyJykge1xyXG4gICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkcmFnb3ZlclRlbXBsYXRlKCk/LnRlbXBsYXRlID8/IGRlZmF1bHREcmFnb3ZlclRlbXBsYXRlXCJcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0RHJhZ292ZXJDb250ZXh0KClcIlxyXG4gICAgICAvPlxyXG4gICAgICB9IEBpZiAoY3VycmVudFZpZXdTdGF0ZSgpID09PSAndXBsb2FkZWQnKSB7XHJcbiAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInVwbG9hZGVkVGVtcGxhdGUoKT8udGVtcGxhdGUgPz8gZGVmYXVsdFVwbG9hZGVkVGVtcGxhdGVcIlxyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRVcGxvYWRlZENvbnRleHQoKVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPGlucHV0XHJcbiAgI2ZpbGVJbnB1dFxyXG4gIGNsYXNzPVwiYXJkLWZpbGUtZHJvcC1hcmVhLWlucHV0LWVsZW1lbnRcIlxyXG4gIHR5cGU9XCJmaWxlXCJcclxuICBbbmFtZV09XCJuYW1lKClcIlxyXG4gIFttdWx0aXBsZV09XCJtdWx0aXBsZSgpXCJcclxuICBbaWRdPVwiaHRtbElkKClcIlxyXG4gIChjaGFuZ2UpPVwib25GaWxlSW5wdXRDaGFuZ2UoKVwiXHJcbi8+XHJcblxyXG48bmctdGVtcGxhdGVcclxuICAjZGVmYXVsdElkbGVUZW1wbGF0ZVxyXG4gIGxldC1icm93c2U9XCJicm93c2VcIlxyXG4+XHJcbiAgPGFyZC1pY29uIGNsYXNzPVwiYXJkLWZpbGUtZHJvcC1hcmVhLWljb25cIj51cGxvYWQ8L2FyZC1pY29uPlxyXG4gIDxzdHJvbmcgY2xhc3M9XCJhcmQtZmlsZS1kcm9wLWFyZWEtZHJvcC10ZXh0XCI+XHJcbiAgICBAaWYgKCFtdWx0aXBsZSkge1xyXG4gICAgPHNwYW4+RHJhZyAmIERyb3AgYSBmaWxlPC9zcGFuPlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICA8c3Bhbj5EcmFnICYgRHJvcCBmaWxlczwvc3Bhbj5cclxuICAgIH0gaGVyZVxyXG4gIDwvc3Ryb25nPlxyXG4gIDxzcGFuIGNsYXNzPVwiYXJkLWZpbGUtZHJvcC1hcmVhLW9yLXRleHRcIj5vcjwvc3Bhbj5cclxuICA8YXJkLWJ1dHRvblxyXG4gICAgY2xhc3M9XCJhcmQtZmlsZS1kcm9wLWFyZWEtYnJvd3NlLWJ1dHRvblwiXHJcbiAgICBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgW2NvbXBhY3RdPVwiY29tcGFjdCgpXCJcclxuICAgIFt2YXJpYW50XT1cInZhcmlhbnQoKVwiXHJcbiAgICBbY29sb3JdPVwiY29sb3IoKVwiXHJcbiAgICAoY2xpY2spPVwiYnJvd3NlKClcIlxyXG4gID5cclxuICAgIEJyb3dzZSBmaWxlc1xyXG4gIDwvYXJkLWJ1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZVxyXG4gICNkZWZhdWx0RHJhZ292ZXJUZW1wbGF0ZVxyXG4gIGxldC1hbW91bnQ9XCJhbW91bnRcIlxyXG4+XHJcbiAgPHNwYW4gY2xhc3M9XCJhcmQtZmlsZS1kcm9wLWFyZWEtZHJhZ292ZXItdGV4dFwiPkRyb3AgPC9zcGFuPlxyXG4gIDxzcGFuIGNsYXNzPVwiYXJkLWZpbGUtZHJvcC1hcmVhLWRyYWdvdmVyLWFtb3VudFwiPlxyXG4gICAge3sgYW1vdW50IH19XHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1BsdXJhbF09XCJhbW91bnRcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlIG5nUGx1cmFsQ2FzZT1cIj0xXCI+ZmlsZTwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBuZ1BsdXJhbENhc2U9XCJvdGhlclwiPmZpbGVzPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cImFyZC1maWxlLWRyb3AtYXJlYS1kcmFnb3Zlci10ZXh0XCI+IGhlcmUgdG8gdXBsb2FkLiA8L3NwYW4+XHJcbiAgQGlmIChhbW91bnQgPiAxICYmICFtdWx0aXBsZSgpKSB7XHJcbiAgPHN0cm9uZyBjbGFzcz1cImFyZC1maWxlLWRyb3AtYXJlYS1kcmFnb3Zlci13YXJuaW5nXCI+IE9ubHkgdGhlIGZpcnN0IGZpbGUgd2lsbCBiZSB1cGxvYWRlZCEgPC9zdHJvbmc+XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlXHJcbiAgI2RlZmF1bHRVcGxvYWRlZFRlbXBsYXRlXHJcbiAgbGV0LWFtb3VudD1cImFtb3VudFwiXHJcbiAgbGV0LWZpbGVzPVwiZmlsZXNcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cImFyZC1maWxlLWRyb3AtYXJlYS11cGxvYWRlZC1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtZmlsZS1kcm9wLWFyZWEtdXBsb2FkZWQtbWVzc2FnZVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImFyZC1maWxlLWRyb3AtYXJlYS11cGxvYWRlZC1hbW91bnRcIj5cclxuICAgICAgICB7eyBhbW91bnQgfX1cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1BsdXJhbF09XCJhbW91bnRcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ1BsdXJhbENhc2U9XCI9MVwiPmZpbGU8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG5nUGx1cmFsQ2FzZT1cIm90aGVyXCI+ZmlsZXM8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiYXJkLWZpbGUtZHJvcC1hcmVhLXVwbG9hZGVkLXRleHRcIj4gdXBsb2FkZWQuPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXJkLWZpbGUtZHJvcC1hcmVhLXVwbG9hZGVkLWZpbGVzXCI+XHJcbiAgICAgIEBmb3IgKGZpbGUgb2YgZmlsZXM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXJkLWZpbGUtZHJvcC1hcmVhLWZpbGVcIj5cclxuICAgICAgICA8YXJkLWljb24+ZHJhZnQ8L2FyZC1pY29uPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtZmlsZS1kcm9wLWFyZWEtZmlsZS1pbmZvXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFyZC1maWxlLWRyb3AtYXJlYS1maWxlbmFtZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFyZC1maWxlLWRyb3AtYXJlYS1maWxlbmFtZS1uYW1lXCI+e3sgZmlsZSB8IGZpbGVuYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFyZC1maWxlLWRyb3AtYXJlYS1maWxlbmFtZS1leHRcIj57eyBmaWxlIHwgZmlsZWV4dCA6IHRydWUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFyZC1maWxlLWRyb3AtYXJlYS1maWxlc2l6ZVwiPnt7IGZpbGUuc2l6ZSB8IGZpbGVzaXplIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -98,7 +98,7 @@ export class ArdiumFileInputComponent extends _FileInputComponentBase {
|
|
|
98
98
|
provide: ARD_FORM_FIELD_CONTROL,
|
|
99
99
|
useExisting: forwardRef(() => ArdiumFileInputComponent),
|
|
100
100
|
},
|
|
101
|
-
], queries: [{ propertyName: "placeholderTemplate", first: true, predicate: ArdFileInputPlaceholderTemplateDirective, descendants: true, isSignal: true }, { propertyName: "prefixTemplate", first: true, predicate: ArdFileInputPrefixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suffixTemplate", first: true, predicate: ArdFileInputSuffixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "idleTemplate", first: true, predicate: ArdiumFileInputIdleContentTemplateDirective, descendants: true, isSignal: true }, { propertyName: "dragoverTemplate", first: true, predicate: ArdiumFileInputDragoverContentTemplateDirective, descendants: true, isSignal: true }, { propertyName: "uploadedTemplate", first: true, predicate: ArdiumFileInputUploadedContentTemplateDirective, descendants: true, isSignal: true }, { propertyName: "folderIconTemplate", first: true, predicate: ArdiumFileInputFolderIconTemplateDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ard-form-field-frame\r\n class=\"ard-file-input-form-field-frame\"\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [isFocused]=\"isFocused()\"\r\n [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n (dragover)=\"onDragover($event)\"\r\n (dragleave)=\"onDragleave()\"\r\n (drop)=\"onDrop($event)\"\r\n (ardClickOutside)=\"onDragleave()\"\r\n>\r\n <div\r\n class=\"ard-file-input\"\r\n [ngClass]=\"ngClasses()\"\r\n >\r\n <div class=\"ard-input-container\">\r\n @if (shouldDisplayPlaceholder) {\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\" />\r\n }\r\n\r\n <div class=\"ard-file-input__value\">\r\n @if (currentViewState() === 'idle') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"idleTemplate()?.template ?? defaultIdleTemplate\"\r\n [ngTemplateOutletContext]=\"getIdleContext()\"\r\n />\r\n } @if (currentViewState() === 'dragover') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"dragoverTemplate()?.template ?? defaultDragoverTemplate\"\r\n [ngTemplateOutletContext]=\"getDragoverContext()\"\r\n />\r\n } @if (currentViewState() === 'uploaded') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"uploadedTemplate()?.template ?? defaultUploadedTemplate\"\r\n [ngTemplateOutletContext]=\"getUploadedContext()\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n\r\n @if (shouldShowClearButton) {\r\n <ard-clear-button\r\n #focusableElement\r\n [title]=\"clearButtonTitle()\"\r\n (mouseup)=\"onClearButtonClick($event)\"\r\n />\r\n } @if (!shouldBeBlocked) {\r\n <button\r\n #focusableElement\r\n type=\"button\"\r\n class=\"ard-browse-button\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (click)=\"openBrowseDialog()\"\r\n >\r\n <div class=\"ard-focus-overlay\"></div>\r\n <ard-icon>folder</ard-icon>\r\n </button>\r\n }\r\n </div>\r\n</ard-form-field-frame>\r\n\r\n<input\r\n #fileInput\r\n class=\"ard-file-input__input\"\r\n type=\"file\"\r\n [name]=\"name()\"\r\n [multiple]=\"multiple()\"\r\n [attr.id]=\"htmlId()\"\r\n [accept]=\"acceptString()\"\r\n (change)=\"
|
|
101
|
+
], queries: [{ propertyName: "placeholderTemplate", first: true, predicate: ArdFileInputPlaceholderTemplateDirective, descendants: true, isSignal: true }, { propertyName: "prefixTemplate", first: true, predicate: ArdFileInputPrefixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suffixTemplate", first: true, predicate: ArdFileInputSuffixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "idleTemplate", first: true, predicate: ArdiumFileInputIdleContentTemplateDirective, descendants: true, isSignal: true }, { propertyName: "dragoverTemplate", first: true, predicate: ArdiumFileInputDragoverContentTemplateDirective, descendants: true, isSignal: true }, { propertyName: "uploadedTemplate", first: true, predicate: ArdiumFileInputUploadedContentTemplateDirective, descendants: true, isSignal: true }, { propertyName: "folderIconTemplate", first: true, predicate: ArdiumFileInputFolderIconTemplateDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ard-form-field-frame\r\n class=\"ard-file-input-form-field-frame\"\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [isFocused]=\"isFocused()\"\r\n [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n (dragover)=\"onDragover($event)\"\r\n (dragleave)=\"onDragleave()\"\r\n (drop)=\"onDrop($event)\"\r\n (ardClickOutside)=\"onDragleave()\"\r\n>\r\n <div\r\n class=\"ard-file-input\"\r\n [ngClass]=\"ngClasses()\"\r\n >\r\n <div class=\"ard-input-container\">\r\n @if (shouldDisplayPlaceholder) {\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\" />\r\n }\r\n\r\n <div class=\"ard-file-input__value\">\r\n @if (currentViewState() === 'idle') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"idleTemplate()?.template ?? defaultIdleTemplate\"\r\n [ngTemplateOutletContext]=\"getIdleContext()\"\r\n />\r\n } @if (currentViewState() === 'dragover') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"dragoverTemplate()?.template ?? defaultDragoverTemplate\"\r\n [ngTemplateOutletContext]=\"getDragoverContext()\"\r\n />\r\n } @if (currentViewState() === 'uploaded') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"uploadedTemplate()?.template ?? defaultUploadedTemplate\"\r\n [ngTemplateOutletContext]=\"getUploadedContext()\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n\r\n @if (shouldShowClearButton) {\r\n <ard-clear-button\r\n #focusableElement\r\n [title]=\"clearButtonTitle()\"\r\n (mouseup)=\"onClearButtonClick($event)\"\r\n />\r\n } @if (!shouldBeBlocked) {\r\n <button\r\n #focusableElement\r\n type=\"button\"\r\n class=\"ard-browse-button\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (click)=\"openBrowseDialog()\"\r\n >\r\n <div class=\"ard-focus-overlay\"></div>\r\n <ard-icon>folder</ard-icon>\r\n </button>\r\n }\r\n </div>\r\n</ard-form-field-frame>\r\n\r\n<input\r\n #fileInput\r\n class=\"ard-file-input__input\"\r\n type=\"file\"\r\n [name]=\"name()\"\r\n [multiple]=\"multiple()\"\r\n [attr.id]=\"htmlId()\"\r\n [accept]=\"acceptString()\"\r\n (change)=\"onFileInputChange()\"\r\n/>\r\n\r\n<ng-template\r\n #defaultIdleTemplate\r\n let-browse=\"browse\"\r\n>\r\n <span class=\"ard-file-input__idle\">\r\n @if (multiple()) {\r\n <span>Upload a file</span>\r\n } @else {\r\n <span>Upload files</span>\r\n }\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template\r\n #defaultDragoverTemplate\r\n let-amount=\"amount\"\r\n>\r\n <span class=\"ard-file-input__dragover-text\">Drop </span>\r\n @if (multiple()) {\r\n <span class=\"ard-file-input__dragover-amount\">\r\n {{ amount }}\r\n <ng-container [ngPlural]=\"amount\">\r\n <ng-template ngPluralCase=\"=1\">file</ng-template>\r\n <ng-template ngPluralCase=\"other\">files</ng-template>\r\n </ng-container>\r\n </span>\r\n } @else {\r\n <span class=\"ard-file-input__dragover-amount\"> a file </span>\r\n }\r\n <span class=\"ard-file-input__dragover-text\"> here to upload </span>\r\n</ng-template>\r\n\r\n<ng-template\r\n #defaultUploadedTemplate\r\n let-amount=\"amount\"\r\n let-files=\"files\"\r\n>\r\n <div class=\"ard-file-input__uploaded\">\r\n @if (amount === 1) {\r\n <div class=\"ard-file-input__full-file-name\">\r\n <span class=\"ard-file-input__file-name\">\r\n {{ files?.[0]?.name | filename }}\r\n </span>\r\n <span class=\"ard-file-input__file-ext\">\r\n {{ files?.[0]?.name | fileext:true }}\r\n </span>\r\n </div>\r\n } @else {\r\n <span class=\"ard-file-input__uploaded-amount\">\r\n {{ amount }}\r\n <ng-container [ngPlural]=\"amount\">\r\n <ng-template ngPluralCase=\"=1\">file</ng-template>\r\n <ng-template ngPluralCase=\"other\">files</ng-template>\r\n </ng-container>\r\n </span>\r\n <span class=\"ard-file-input__uploaded-text\"> uploaded.</span>\r\n }\r\n </div>\r\n</ng-template>\r\n", styles: [".ard-file-input__input{position:absolute;appearance:none;opacity:0;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgPlural, selector: "[ngPlural]", inputs: ["ngPlural"] }, { kind: "directive", type: i1.NgPluralCase, selector: "[ngPluralCase]" }, { kind: "component", type: i2.ArdiumFormFieldFrameComponent, selector: "ard-form-field-frame", inputs: ["hasError", "isSuccess", "isFocused", "appearance", "variant", "compact", "prefixTemplate", "suffixTemplate"] }, { kind: "component", type: i3._ClearButtonComponent, selector: "ard-clear-button" }, { kind: "component", type: i4.ArdiumIconComponent, selector: "ard-icon", inputs: ["ariaLabel", "icon", "filled", "weight", "grade", "opticalSize"] }, { kind: "pipe", type: i5.ArdiumFileExtensionPipe, name: "fileext" }, { kind: "pipe", type: i5.ArdiumFileNamePipe, name: "filename" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
102
102
|
}
|
|
103
103
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFileInputComponent, decorators: [{
|
|
104
104
|
type: Component,
|
|
@@ -112,9 +112,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
112
112
|
provide: ARD_FORM_FIELD_CONTROL,
|
|
113
113
|
useExisting: forwardRef(() => ArdiumFileInputComponent),
|
|
114
114
|
},
|
|
115
|
-
], template: "<ard-form-field-frame\r\n class=\"ard-file-input-form-field-frame\"\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [isFocused]=\"isFocused()\"\r\n [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n (dragover)=\"onDragover($event)\"\r\n (dragleave)=\"onDragleave()\"\r\n (drop)=\"onDrop($event)\"\r\n (ardClickOutside)=\"onDragleave()\"\r\n>\r\n <div\r\n class=\"ard-file-input\"\r\n [ngClass]=\"ngClasses()\"\r\n >\r\n <div class=\"ard-input-container\">\r\n @if (shouldDisplayPlaceholder) {\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\" />\r\n }\r\n\r\n <div class=\"ard-file-input__value\">\r\n @if (currentViewState() === 'idle') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"idleTemplate()?.template ?? defaultIdleTemplate\"\r\n [ngTemplateOutletContext]=\"getIdleContext()\"\r\n />\r\n } @if (currentViewState() === 'dragover') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"dragoverTemplate()?.template ?? defaultDragoverTemplate\"\r\n [ngTemplateOutletContext]=\"getDragoverContext()\"\r\n />\r\n } @if (currentViewState() === 'uploaded') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"uploadedTemplate()?.template ?? defaultUploadedTemplate\"\r\n [ngTemplateOutletContext]=\"getUploadedContext()\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n\r\n @if (shouldShowClearButton) {\r\n <ard-clear-button\r\n #focusableElement\r\n [title]=\"clearButtonTitle()\"\r\n (mouseup)=\"onClearButtonClick($event)\"\r\n />\r\n } @if (!shouldBeBlocked) {\r\n <button\r\n #focusableElement\r\n type=\"button\"\r\n class=\"ard-browse-button\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (click)=\"openBrowseDialog()\"\r\n >\r\n <div class=\"ard-focus-overlay\"></div>\r\n <ard-icon>folder</ard-icon>\r\n </button>\r\n }\r\n </div>\r\n</ard-form-field-frame>\r\n\r\n<input\r\n #fileInput\r\n class=\"ard-file-input__input\"\r\n type=\"file\"\r\n [name]=\"name()\"\r\n [multiple]=\"multiple()\"\r\n [attr.id]=\"htmlId()\"\r\n [accept]=\"acceptString()\"\r\n (change)=\"
|
|
115
|
+
], template: "<ard-form-field-frame\r\n class=\"ard-file-input-form-field-frame\"\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [isFocused]=\"isFocused()\"\r\n [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n (dragover)=\"onDragover($event)\"\r\n (dragleave)=\"onDragleave()\"\r\n (drop)=\"onDrop($event)\"\r\n (ardClickOutside)=\"onDragleave()\"\r\n>\r\n <div\r\n class=\"ard-file-input\"\r\n [ngClass]=\"ngClasses()\"\r\n >\r\n <div class=\"ard-input-container\">\r\n @if (shouldDisplayPlaceholder) {\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\" />\r\n }\r\n\r\n <div class=\"ard-file-input__value\">\r\n @if (currentViewState() === 'idle') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"idleTemplate()?.template ?? defaultIdleTemplate\"\r\n [ngTemplateOutletContext]=\"getIdleContext()\"\r\n />\r\n } @if (currentViewState() === 'dragover') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"dragoverTemplate()?.template ?? defaultDragoverTemplate\"\r\n [ngTemplateOutletContext]=\"getDragoverContext()\"\r\n />\r\n } @if (currentViewState() === 'uploaded') {\r\n <ng-template\r\n [ngTemplateOutlet]=\"uploadedTemplate()?.template ?? defaultUploadedTemplate\"\r\n [ngTemplateOutletContext]=\"getUploadedContext()\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n\r\n @if (shouldShowClearButton) {\r\n <ard-clear-button\r\n #focusableElement\r\n [title]=\"clearButtonTitle()\"\r\n (mouseup)=\"onClearButtonClick($event)\"\r\n />\r\n } @if (!shouldBeBlocked) {\r\n <button\r\n #focusableElement\r\n type=\"button\"\r\n class=\"ard-browse-button\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (click)=\"openBrowseDialog()\"\r\n >\r\n <div class=\"ard-focus-overlay\"></div>\r\n <ard-icon>folder</ard-icon>\r\n </button>\r\n }\r\n </div>\r\n</ard-form-field-frame>\r\n\r\n<input\r\n #fileInput\r\n class=\"ard-file-input__input\"\r\n type=\"file\"\r\n [name]=\"name()\"\r\n [multiple]=\"multiple()\"\r\n [attr.id]=\"htmlId()\"\r\n [accept]=\"acceptString()\"\r\n (change)=\"onFileInputChange()\"\r\n/>\r\n\r\n<ng-template\r\n #defaultIdleTemplate\r\n let-browse=\"browse\"\r\n>\r\n <span class=\"ard-file-input__idle\">\r\n @if (multiple()) {\r\n <span>Upload a file</span>\r\n } @else {\r\n <span>Upload files</span>\r\n }\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template\r\n #defaultDragoverTemplate\r\n let-amount=\"amount\"\r\n>\r\n <span class=\"ard-file-input__dragover-text\">Drop </span>\r\n @if (multiple()) {\r\n <span class=\"ard-file-input__dragover-amount\">\r\n {{ amount }}\r\n <ng-container [ngPlural]=\"amount\">\r\n <ng-template ngPluralCase=\"=1\">file</ng-template>\r\n <ng-template ngPluralCase=\"other\">files</ng-template>\r\n </ng-container>\r\n </span>\r\n } @else {\r\n <span class=\"ard-file-input__dragover-amount\"> a file </span>\r\n }\r\n <span class=\"ard-file-input__dragover-text\"> here to upload </span>\r\n</ng-template>\r\n\r\n<ng-template\r\n #defaultUploadedTemplate\r\n let-amount=\"amount\"\r\n let-files=\"files\"\r\n>\r\n <div class=\"ard-file-input__uploaded\">\r\n @if (amount === 1) {\r\n <div class=\"ard-file-input__full-file-name\">\r\n <span class=\"ard-file-input__file-name\">\r\n {{ files?.[0]?.name | filename }}\r\n </span>\r\n <span class=\"ard-file-input__file-ext\">\r\n {{ files?.[0]?.name | fileext:true }}\r\n </span>\r\n </div>\r\n } @else {\r\n <span class=\"ard-file-input__uploaded-amount\">\r\n {{ amount }}\r\n <ng-container [ngPlural]=\"amount\">\r\n <ng-template ngPluralCase=\"=1\">file</ng-template>\r\n <ng-template ngPluralCase=\"other\">files</ng-template>\r\n </ng-container>\r\n </span>\r\n <span class=\"ard-file-input__uploaded-text\"> uploaded.</span>\r\n }\r\n </div>\r\n</ng-template>\r\n", styles: [".ard-file-input__input{position:absolute;appearance:none;opacity:0;pointer-events:none}\n"] }]
|
|
116
116
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
117
117
|
type: Inject,
|
|
118
118
|
args: [ARD_FILE_INPUT_DEFAULTS]
|
|
119
119
|
}] }] });
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2ZpbGUtaW5wdXRzL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2ZpbGUtaW5wdXRzL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBR2pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTdELE9BQU8sRUFBRSx1QkFBdUIsRUFBd0IsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RixPQUFPLEVBQ0wsd0NBQXdDLEVBQ3hDLG1DQUFtQyxFQUNuQyxtQ0FBbUMsRUFDbkMsK0NBQStDLEVBQy9DLDBDQUEwQyxFQUMxQywyQ0FBMkMsRUFDM0MsK0NBQStDLEVBQ2hELE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7QUFvQmpDLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSx1QkFBdUI7SUFFbkUsWUFBNkMsUUFBOEI7UUFDekUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBR1QsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFN0IsY0FBYztRQUNkLCtDQUErQztR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VDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQzs0QkFDdkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHNCQUFzQjs0QkFDL0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUseUJBQXlCLENBQUM7eUJBQ3hEO3FCQUNGOzswQkFJWSxNQUFNOzJCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEluamVjdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBjb21wdXRlZCxcclxuICBjb250ZW50Q2hpbGQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBpbnB1dCxcclxuICBvdXRwdXQsXHJcbiAgc2lnbmFsLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xyXG5pbXBvcnQgeyBBUkRfRk9STV9GSUVMRF9DT05UUk9MIH0gZnJvbSAnLi4vLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkLWNoaWxkLnRva2VuJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29sb3IgfSBmcm9tICcuLi8uLi90eXBlcy9jb2xvcnMudHlwZXMnO1xyXG5pbXBvcnQgeyBGb3JtRWxlbWVudEFwcGVhcmFuY2UsIEZvcm1FbGVtZW50VmFyaWFudCB9IGZyb20gJy4uLy4uL3R5cGVzL3RoZW1pbmcudHlwZXMnO1xyXG5pbXBvcnQgeyBfRmlsZUlucHV0Q29tcG9uZW50QmFzZSB9IGZyb20gJy4uL2ZpbGUtaW5wdXQtYmFzZSc7XHJcbmltcG9ydCB7IEZpbGVJbnB1dEJyb3dzZUNvbnRleHQsIEZpbGVJbnB1dEZpbGVBbW91bnRDb250ZXh0LCBGaWxlSW5wdXRGaWxlc0NvbnRleHQgfSBmcm9tICcuLi9maWxlLWlucHV0LXR5cGVzJztcclxuaW1wb3J0IHsgQVJEX0ZJTEVfSU5QVVRfREVGQVVMVFMsIEFyZEZpbGVJbnB1dERlZmF1bHRzIH0gZnJvbSAnLi9maWxlLWlucHV0LmRlZmF1bHRzJztcclxuaW1wb3J0IHtcclxuICBBcmRGaWxlSW5wdXRQbGFjZWhvbGRlclRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZEZpbGVJbnB1dFByZWZpeFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZEZpbGVJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZGl1bUZpbGVJbnB1dERyYWdvdmVyQ29udGVudFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZGl1bUZpbGVJbnB1dEZvbGRlckljb25UZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBcmRpdW1GaWxlSW5wdXRJZGxlQ29udGVudFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZGl1bUZpbGVJbnB1dFVwbG9hZGVkQ29udGVudFRlbXBsYXRlRGlyZWN0aXZlXHJcbn0gZnJvbSAnLi9maWxlLWlucHV0LmRpcmVjdGl2ZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcmQtZmlsZS1pbnB1dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXJkaXVtRmlsZUlucHV0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBBUkRfRk9STV9GSUVMRF9DT05UUk9MLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBcmRpdW1GaWxlSW5wdXRDb21wb25lbnQpLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJkaXVtRmlsZUlucHV0Q29tcG9uZW50IGV4dGVuZHMgX0ZpbGVJbnB1dENvbXBvbmVudEJhc2Uge1xyXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfREVGQVVMVFMhOiBBcmRGaWxlSW5wdXREZWZhdWx0cztcclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFSRF9GSUxFX0lOUFVUX0RFRkFVTFRTKSBkZWZhdWx0czogQXJkRmlsZUlucHV0RGVmYXVsdHMpIHtcclxuICAgIHN1cGVyKGRlZmF1bHRzKTtcclxuICB9XHJcblxyXG4gIHJlYWRvbmx5IGNvbXBvbmVudElkID0gJzAxMSc7XHJcblxyXG4gIC8vISBhcHBlYXJhbmNlXHJcbiAgLy9hbGwgaGFuZGxlZCBpbiBhcmQtZm9ybS1maWVsZC1mcmFtZSBjb21wb25lbnRcclxuICByZWFkb25seSBhcHBlYXJhbmNlID0gaW5wdXQ8Rm9ybUVsZW1lbnRBcHBlYXJhbmNlPih0aGlzLl9ERUZBVUxUUy5hcHBlYXJhbmNlKTtcclxuICByZWFkb25seSB2YXJpYW50ID0gaW5wdXQ8Rm9ybUVsZW1lbnRWYXJpYW50Pih0aGlzLl9ERUZBVUxUUy52YXJpYW50KTtcclxuICByZWFkb25seSBjb2xvciA9IGlucHV0PENvbXBvbmVudENvbG9yPih0aGlzLl9ERUZBVUxUUy5jb2xvcik7XHJcblxyXG4gIC8vISBvdGhlciBpbnB1dHNcclxuICByZWFkb25seSBpbnB1dEF0dHJzID0gaW5wdXQ8UmVjb3JkPHN0cmluZywgYW55Pj4odGhpcy5fREVGQVVMVFMuaW5wdXRBdHRycyk7XHJcblxyXG4gIC8vISBwbGFjZWhvbGRlclxyXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPih0aGlzLl9ERUZBVUxUUy5wbGFjZWhvbGRlcik7XHJcblxyXG4gIC8vISByb290IGVsZW1lbnQgY2xhc3Nlc1xyXG4gIHJlYWRvbmx5IG5nQ2xhc3NlcyA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT5cclxuICAgIFtgYXJkLWNvbG9yLSR7dGhpcy5jb2xvcigpfWAsIGBhcmQtc3RhdGUtJHt0aGlzLmN1cnJlbnRWaWV3U3RhdGUoKX1gLCB0aGlzLnZhbHVlID8gJ2FyZC1oYXMtdmFsdWUnIDogJyddLmpvaW4oJyAnKVxyXG4gICk7XHJcblxyXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkRmlsZUlucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSk7XHJcblxyXG4gIGdldCBzaG91bGREaXNwbGF5UGxhY2Vob2xkZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLnBsYWNlaG9sZGVyKCkgJiYgIXRoaXMudmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLyEgY2xlYXIgYnV0dG9uXHJcbiAgcmVhZG9ubHkgY2xlYXJhYmxlID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5jbGVhcmFibGUsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgY2xlYXJCdXR0b25UaXRsZSA9IGlucHV0PHN0cmluZz4odGhpcy5fREVGQVVMVFMuY2xlYXJCdXR0b25UaXRsZSk7XHJcblxyXG4gIGdldCBzaG91bGRTaG93Q2xlYXJCdXR0b24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jbGVhcmFibGUoKSAmJiAhdGhpcy5kaXNhYmxlZCgpICYmIEJvb2xlYW4odGhpcy52YWx1ZSk7XHJcbiAgfVxyXG4gIG9uQ2xlYXJCdXR0b25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICB0aGlzLmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICAvLyEgY2xlYXIgZnVuY3Rpb25cclxuICBjbGVhcigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jbGVhcmFibGUoKSkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMud3JpdGVWYWx1ZShudWxsKTtcclxuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICAgIHRoaXMuY2xlYXJFdmVudC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICByZWFkb25seSBjbGVhckV2ZW50ID0gb3V0cHV0KHsgYWxpYXM6ICdjbGVhcicgfSk7XHJcblxyXG4gIC8vISBzdGF0ZVxyXG4gIHJlYWRvbmx5IHRvdWNoZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvLyEgcHJlZml4ICYgc3VmZml4XHJcbiAgcmVhZG9ubHkgcHJlZml4VGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkRmlsZUlucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG4gIHJlYWRvbmx5IHN1ZmZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZEZpbGVJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlKTtcclxuICAvLyEgdGVtcGxhdGVzXHJcbiAgcmVhZG9ubHkgaWRsZVRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZGl1bUZpbGVJbnB1dElkbGVDb250ZW50VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG4gIHJlYWRvbmx5IGRyYWdvdmVyVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkaXVtRmlsZUlucHV0RHJhZ292ZXJDb250ZW50VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG4gIHJlYWRvbmx5IHVwbG9hZGVkVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkaXVtRmlsZUlucHV0VXBsb2FkZWRDb250ZW50VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG4gIHJlYWRvbmx5IGZvbGRlckljb25UZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRpdW1GaWxlSW5wdXRGb2xkZXJJY29uVGVtcGxhdGVEaXJlY3RpdmUpO1xyXG5cclxuICBnZXRJZGxlQ29udGV4dCgpOiBGaWxlSW5wdXRCcm93c2VDb250ZXh0IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGJyb3dzZTogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMub3BlbkJyb3dzZURpYWxvZygpO1xyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcbiAgZ2V0RHJhZ292ZXJDb250ZXh0KCk6IEZpbGVJbnB1dEZpbGVBbW91bnRDb250ZXh0IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFtb3VudDogdGhpcy5fZHJhZ2dlZEZpbGVzISxcclxuICAgICAgYnJvd3NlOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vcGVuQnJvd3NlRGlhbG9nKCk7XHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gIH1cclxuICBnZXRVcGxvYWRlZENvbnRleHQoKTogRmlsZUlucHV0RmlsZXNDb250ZXh0IHtcclxuICAgIGNvbnN0IGZpbGVzID0gdGhpcy52YWx1ZSE7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAkaW1wbGljaXQ6IGZpbGVzLFxyXG4gICAgICBhbW91bnQ6IGZpbGVzLmxlbmd0aCxcclxuICAgICAgZmlsZXMsXHJcbiAgICAgIGJyb3dzZTogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMub3BlbkJyb3dzZURpYWxvZygpO1xyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIiwiPGFyZC1mb3JtLWZpZWxkLWZyYW1lXHJcbiAgY2xhc3M9XCJhcmQtZmlsZS1pbnB1dC1mb3JtLWZpZWxkLWZyYW1lXCJcclxuICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlKClcIlxyXG4gIFt2YXJpYW50XT1cInZhcmlhbnQoKVwiXHJcbiAgW2NvbXBhY3RdPVwiY29tcGFjdCgpXCJcclxuICBbaXNGb2N1c2VkXT1cImlzRm9jdXNlZCgpXCJcclxuICBbaGFzRXJyb3JdPVwiaGFzRXJyb3IoKVwiXHJcbiAgW2lzU3VjY2Vzc109XCJpc1N1Y2Nlc3MoKVwiXHJcbiAgW3ByZWZpeFRlbXBsYXRlXT1cInByZWZpeFRlbXBsYXRlKCk/LnRlbXBsYXRlXCJcclxuICBbc3VmZml4VGVtcGxhdGVdPVwic3VmZml4VGVtcGxhdGUoKT8udGVtcGxhdGVcIlxyXG4gIChkcmFnb3Zlcik9XCJvbkRyYWdvdmVyKCRldmVudClcIlxyXG4gIChkcmFnbGVhdmUpPVwib25EcmFnbGVhdmUoKVwiXHJcbiAgKGRyb3ApPVwib25Ecm9wKCRldmVudClcIlxyXG4gIChhcmRDbGlja091dHNpZGUpPVwib25EcmFnbGVhdmUoKVwiXHJcbj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImFyZC1maWxlLWlucHV0XCJcclxuICAgIFtuZ0NsYXNzXT1cIm5nQ2xhc3NlcygpXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXJkLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgICBAaWYgKHNob3VsZERpc3BsYXlQbGFjZWhvbGRlcikge1xyXG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRQbGFjZWhvbGRlclRlbXBsYXRlPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtcGxhY2Vob2xkZXJcIj57eyBwbGFjZWhvbGRlcigpIH19PC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwicGxhY2Vob2xkZXJUZW1wbGF0ZSgpPy50ZW1wbGF0ZSB8fCBkZWZhdWx0UGxhY2Vob2xkZXJUZW1wbGF0ZVwiIC8+XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcmQtZmlsZS1pbnB1dF9fdmFsdWVcIj5cclxuICAgICAgICBAaWYgKGN1cnJlbnRWaWV3U3RhdGUoKSA9PT0gJ2lkbGUnKSB7XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpZGxlVGVtcGxhdGUoKT8udGVtcGxhdGUgPz8gZGVmYXVsdElkbGVUZW1wbGF0ZVwiXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0SWRsZUNvbnRleHQoKVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICB9IEBpZiAoY3VycmVudFZpZXdTdGF0ZSgpID09PSAnZHJhZ292ZXInKSB7XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkcmFnb3ZlclRlbXBsYXRlKCk/LnRlbXBsYXRlID8/IGRlZmF1bHREcmFnb3ZlclRlbXBsYXRlXCJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXREcmFnb3ZlckNvbnRleHQoKVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICB9IEBpZiAoY3VycmVudFZpZXdTdGF0ZSgpID09PSAndXBsb2FkZWQnKSB7XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ1cGxvYWRlZFRlbXBsYXRlKCk/LnRlbXBsYXRlID8/IGRlZmF1bHRVcGxvYWRlZFRlbXBsYXRlXCJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRVcGxvYWRlZENvbnRleHQoKVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgQGlmIChzaG91bGRTaG93Q2xlYXJCdXR0b24pIHtcclxuICAgIDxhcmQtY2xlYXItYnV0dG9uXHJcbiAgICAgICNmb2N1c2FibGVFbGVtZW50XHJcbiAgICAgIFt0aXRsZV09XCJjbGVhckJ1dHRvblRpdGxlKClcIlxyXG4gICAgICAobW91c2V1cCk9XCJvbkNsZWFyQnV0dG9uQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAvPlxyXG4gICAgfSBAaWYgKCFzaG91bGRCZUJsb2NrZWQpIHtcclxuICAgIDxidXR0b25cclxuICAgICAgI2ZvY3VzYWJsZUVsZW1lbnRcclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIGNsYXNzPVwiYXJkLWJyb3dzZS1idXR0b25cIlxyXG4gICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4gICAgICAoY2xpY2spPVwib3BlbkJyb3dzZURpYWxvZygpXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cImFyZC1mb2N1cy1vdmVybGF5XCI+PC9kaXY+XHJcbiAgICAgIDxhcmQtaWNvbj5mb2xkZXI8L2FyZC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbjwvYXJkLWZvcm0tZmllbGQtZnJhbWU+XHJcblxyXG48aW5wdXRcclxuICAjZmlsZUlucHV0XHJcbiAgY2xhc3M9XCJhcmQtZmlsZS1pbnB1dF9faW5wdXRcIlxyXG4gIHR5cGU9XCJmaWxlXCJcclxuICBbbmFtZV09XCJuYW1lKClcIlxyXG4gIFttdWx0aXBsZV09XCJtdWx0aXBsZSgpXCJcclxuICBbYXR0ci5pZF09XCJodG1sSWQoKVwiXHJcbiAgW2FjY2VwdF09XCJhY2NlcHRTdHJpbmcoKVwiXHJcbiAgKGNoYW5nZSk9XCJvbklucHV0Q2hhbmdlKClcIlxyXG4vPlxyXG5cclxuPG5nLXRlbXBsYXRlXHJcbiAgI2RlZmF1bHRJZGxlVGVtcGxhdGVcclxuICBsZXQtYnJvd3NlPVwiYnJvd3NlXCJcclxuPlxyXG4gIDxzcGFuIGNsYXNzPVwiYXJkLWZpbGUtaW5wdXRfX2lkbGVcIj5cclxuICAgIEBpZiAobXVsdGlwbGUoKSkge1xyXG4gICAgPHNwYW4+VXBsb2FkIGEgZmlsZTwvc3Bhbj5cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgPHNwYW4+VXBsb2FkIGZpbGVzPC9zcGFuPlxyXG4gICAgfVxyXG4gIDwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZVxyXG4gICNkZWZhdWx0RHJhZ292ZXJUZW1wbGF0ZVxyXG4gIGxldC1hbW91bnQ9XCJhbW91bnRcIlxyXG4+XHJcbiAgPHNwYW4gY2xhc3M9XCJhcmQtZmlsZS1pbnB1dF9fZHJhZ292ZXItdGV4dFwiPkRyb3AgPC9zcGFuPlxyXG4gIEBpZiAobXVsdGlwbGUoKSkge1xyXG4gIDxzcGFuIGNsYXNzPVwiYXJkLWZpbGUtaW5wdXRfX2RyYWdvdmVyLWFtb3VudFwiPlxyXG4gICAge3sgYW1vdW50IH19XHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1BsdXJhbF09XCJhbW91bnRcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlIG5nUGx1cmFsQ2FzZT1cIj0xXCI+ZmlsZTwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBuZ1BsdXJhbENhc2U9XCJvdGhlclwiPmZpbGVzPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvc3Bhbj5cclxuICB9IEBlbHNlIHtcclxuICA8c3BhbiBjbGFzcz1cImFyZC1maWxlLWlucHV0X19kcmFnb3Zlci1hbW91bnRcIj4gYSBmaWxlIDwvc3Bhbj5cclxuICB9XHJcbiAgPHNwYW4gY2xhc3M9XCJhcmQtZmlsZS1pbnB1dF9fZHJhZ292ZXItdGV4dFwiPiBoZXJlIHRvIHVwbG9hZCA8L3NwYW4+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGVcclxuICAjZGVmYXVsdFVwbG9hZGVkVGVtcGxhdGVcclxuICBsZXQtYW1vdW50PVwiYW1vdW50XCJcclxuICBsZXQtZmlsZXM9XCJmaWxlc1wiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwiYXJkLWZpbGUtaW5wdXRfX3VwbG9hZGVkXCI+XHJcbiAgICBAaWYgKGFtb3VudCA9PT0gMSkge1xyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1maWxlLWlucHV0X19mdWxsLWZpbGUtbmFtZVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImFyZC1maWxlLWlucHV0X19maWxlLW5hbWVcIj5cclxuICAgICAgICB7eyBmaWxlcz8uWzBdPy5uYW1lIHwgZmlsZW5hbWUgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImFyZC1maWxlLWlucHV0X19maWxlLWV4dFwiPlxyXG4gICAgICAgIHt7IGZpbGVzPy5bMF0/Lm5hbWUgfCBmaWxlZXh0OnRydWUgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgIDxzcGFuIGNsYXNzPVwiYXJkLWZpbGUtaW5wdXRfX3VwbG9hZGVkLWFtb3VudFwiPlxyXG4gICAgICB7eyBhbW91bnQgfX1cclxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdQbHVyYWxdPVwiYW1vdW50XCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nUGx1cmFsQ2FzZT1cIj0xXCI+ZmlsZTwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nUGx1cmFsQ2FzZT1cIm90aGVyXCI+ZmlsZXM8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwiYXJkLWZpbGUtaW5wdXRfX3VwbG9hZGVkLXRleHRcIj4gdXBsb2FkZWQuPC9zcGFuPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2ZpbGUtaW5wdXRzL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2ZpbGUtaW5wdXRzL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBR2pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTdELE9BQU8sRUFBRSx1QkFBdUIsRUFBd0IsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RixPQUFPLEVBQ0wsd0NBQXdDLEVBQ3hDLG1DQUFtQyxFQUNuQyxtQ0FBbUMsRUFDbkMsK0NBQStDLEVBQy9DLDBDQUEwQyxFQUMxQywyQ0FBMkMsRUFDM0MsK0NBQStDLEVBQ2hELE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7QUFvQmpDLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSx1QkFBdUI7SUFFbkUsWUFBNkMsUUFBOEI7UUFDekUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBR1QsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFN0IsY0FBYztRQUNkLCtDQUErQztR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VDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQzs0QkFDdkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHNCQUFzQjs0QkFDL0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUseUJBQXlCLENBQUM7eUJBQ3hEO3FCQUNGOzswQkFJWSxNQUFNOzJCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEluamVjdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBjb21wdXRlZCxcclxuICBjb250ZW50Q2hpbGQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBpbnB1dCxcclxuICBvdXRwdXQsXHJcbiAgc2lnbmFsLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xyXG5pbXBvcnQgeyBBUkRfRk9STV9GSUVMRF9DT05UUk9MIH0gZnJvbSAnLi4vLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkLWNoaWxkLnRva2VuJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29sb3IgfSBmcm9tICcuLi8uLi90eXBlcy9jb2xvcnMudHlwZXMnO1xyXG5pbXBvcnQgeyBGb3JtRWxlbWVudEFwcGVhcmFuY2UsIEZvcm1FbGVtZW50VmFyaWFudCB9IGZyb20gJy4uLy4uL3R5cGVzL3RoZW1pbmcudHlwZXMnO1xyXG5pbXBvcnQgeyBfRmlsZUlucHV0Q29tcG9uZW50QmFzZSB9IGZyb20gJy4uL2ZpbGUtaW5wdXQtYmFzZSc7XHJcbmltcG9ydCB7IEZpbGVJbnB1dEJyb3dzZUNvbnRleHQsIEZpbGVJbnB1dEZpbGVBbW91bnRDb250ZXh0LCBGaWxlSW5wdXRGaWxlc0NvbnRleHQgfSBmcm9tICcuLi9maWxlLWlucHV0LXR5cGVzJztcclxuaW1wb3J0IHsgQVJEX0ZJTEVfSU5QVVRfREVGQVVMVFMsIEFyZEZpbGVJbnB1dERlZmF1bHRzIH0gZnJvbSAnLi9maWxlLWlucHV0LmRlZmF1bHRzJztcclxuaW1wb3J0IHtcclxuICBBcmRGaWxlSW5wdXRQbGFjZWhvbGRlclRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZEZpbGVJbnB1dFByZWZpeFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZEZpbGVJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZGl1bUZpbGVJbnB1dERyYWdvdmVyQ29udGVudFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZGl1bUZpbGVJbnB1dEZvbGRlckljb25UZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBcmRpdW1GaWxlSW5wdXRJZGxlQ29udGVudFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZGl1bUZpbGVJbnB1dFVwbG9hZGVkQ29udGVudFRlbXBsYXRlRGlyZWN0aXZlXHJcbn0gZnJvbSAnLi9maWxlLWlucHV0LmRpcmVjdGl2ZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcmQtZmlsZS1pbnB1dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXJkaXVtRmlsZUlucHV0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBBUkRfRk9STV9GSUVMRF9DT05UUk9MLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBcmRpdW1GaWxlSW5wdXRDb21wb25lbnQpLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJkaXVtRmlsZUlucHV0Q29tcG9uZW50IGV4dGVuZHMgX0ZpbGVJbnB1dENvbXBvbmVudEJhc2Uge1xyXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfREVGQVVMVFMhOiBBcmRGaWxlSW5wdXREZWZhdWx0cztcclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFSRF9GSUxFX0lOUFVUX0RFRkFVTFRTKSBkZWZhdWx0czogQXJkRmlsZUlucHV0RGVmYXVsdHMpIHtcclxuICAgIHN1cGVyKGRlZmF1bHRzKTtcclxuICB9XHJcblxyXG4gIHJlYWRvbmx5IGNvbXBvbmVudElkID0gJzAxMSc7XHJcblxyXG4gIC8vISBhcHBlYXJhbmNlXHJcbiAgLy9hbGwgaGFuZGxlZCBpbiBhcmQtZm9ybS1maWVsZC1mcmFtZSBjb21wb25lbnRcclxuICByZWFkb25seSBhcHBlYXJhbmNlID0gaW5wdXQ8Rm9ybUVsZW1lbnRBcHBlYXJhbmNlPih0aGlzLl9ERUZBVUxUUy5hcHBlYXJhbmNlKTtcclxuICByZWFkb25seSB2YXJpYW50ID0gaW5wdXQ8Rm9ybUVsZW1lbnRWYXJpYW50Pih0aGlzLl9ERUZBVUxUUy52YXJpYW50KTtcclxuICByZWFkb25seSBjb2xvciA9IGlucHV0PENvbXBvbmVudENvbG9yPih0aGlzLl9ERUZBVUxUUy5jb2xvcik7XHJcblxyXG4gIC8vISBvdGhlciBpbnB1dHNcclxuICByZWFkb25seSBpbnB1dEF0dHJzID0gaW5wdXQ8UmVjb3JkPHN0cmluZywgYW55Pj4odGhpcy5fREVGQVVMVFMuaW5wdXRBdHRycyk7XHJcblxyXG4gIC8vISBwbGFjZWhvbGRlclxyXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPih0aGlzLl9ERUZBVUxUUy5wbGFjZWhvbGRlcik7XHJcblxyXG4gIC8vISByb290IGVsZW1lbnQgY2xhc3Nlc1xyXG4gIHJlYWRvbmx5IG5nQ2xhc3NlcyA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT5cclxuICAgIFtgYXJkLWNvbG9yLSR7dGhpcy5jb2xvcigpfWAsIGBhcmQtc3RhdGUtJHt0aGlzLmN1cnJlbnRWaWV3U3RhdGUoKX1gLCB0aGlzLnZhbHVlID8gJ2FyZC1oYXMtdmFsdWUnIDogJyddLmpvaW4oJyAnKVxyXG4gICk7XHJcblxyXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkRmlsZUlucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSk7XHJcblxyXG4gIGdldCBzaG91bGREaXNwbGF5UGxhY2Vob2xkZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLnBsYWNlaG9sZGVyKCkgJiYgIXRoaXMudmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLyEgY2xlYXIgYnV0dG9uXHJcbiAgcmVhZG9ubHkgY2xlYXJhYmxlID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5jbGVhcmFibGUsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgY2xlYXJCdXR0b25UaXRsZSA9IGlucHV0PHN0cmluZz4odGhpcy5fREVGQVVMVFMuY2xlYXJCdXR0b25UaXRsZSk7XHJcblxyXG4gIGdldCBzaG91bGRTaG93Q2xlYXJCdXR0b24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jbGVhcmFibGUoKSAmJiAhdGhpcy5kaXNhYmxlZCgpICYmIEJvb2xlYW4odGhpcy52YWx1ZSk7XHJcbiAgfVxyXG4gIG9uQ2xlYXJCdXR0b25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICB0aGlzLmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICAvLyEgY2xlYXIgZnVuY3Rpb25cclxuICBjbGVhcigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jbGVhcmFibGUoKSkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMud3JpdGVWYWx1ZShudWxsKTtcclxuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICAgIHRoaXMuY2xlYXJFdmVudC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICByZWFkb25seSBjbGVhckV2ZW50ID0gb3V0cHV0KHsgYWxpYXM6ICdjbGVhcicgfSk7XHJcblxyXG4gIC8vISBzdGF0ZVxyXG4gIHJlYWRvbmx5IHRvdWNoZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvLyEgcHJlZml4ICYgc3VmZml4XHJcbiAgcmVhZG9ubHkgcHJlZml4VGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkRmlsZUlucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG4gIHJlYWRvbmx5IHN1ZmZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZEZpbGVJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlKTtcclxuICAvLyEgdGVtcGxhdGVzXHJcbiAgcmVhZG9ubHkgaWRsZVRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZGl1bUZpbGVJbnB1dElkbGVDb250ZW50VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG4gIHJlYWRvbmx5IGRyYWdvdmVyVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkaXVtRmlsZUlucHV0RHJhZ292ZXJDb250ZW50VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG4gIHJlYWRvbmx5IHVwbG9hZGVkVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkaXVtRmlsZUlucHV0VXBsb2FkZWRDb250ZW50VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG4gIHJlYWRvbmx5IGZvbGRlckljb25UZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRpdW1GaWxlSW5wdXRGb2xkZXJJY29uVGVtcGxhdGVEaXJlY3RpdmUpO1xyXG5cclxuICBnZXRJZGxlQ29udGV4dCgpOiBGaWxlSW5wdXRCcm93c2VDb250ZXh0IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGJyb3dzZTogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMub3BlbkJyb3dzZURpYWxvZygpO1xyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcbiAgZ2V0RHJhZ292ZXJDb250ZXh0KCk6IEZpbGVJbnB1dEZpbGVBbW91bnRDb250ZXh0IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFtb3VudDogdGhpcy5fZHJhZ2dlZEZpbGVzISxcclxuICAgICAgYnJvd3NlOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vcGVuQnJvd3NlRGlhbG9nKCk7XHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gIH1cclxuICBnZXRVcGxvYWRlZENvbnRleHQoKTogRmlsZUlucHV0RmlsZXNDb250ZXh0IHtcclxuICAgIGNvbnN0IGZpbGVzID0gdGhpcy52YWx1ZSE7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAkaW1wbGljaXQ6IGZpbGVzLFxyXG4gICAgICBhbW91bnQ6IGZpbGVzLmxlbmd0aCxcclxuICAgICAgZmlsZXMsXHJcbiAgICAgIGJyb3dzZTogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMub3BlbkJyb3dzZURpYWxvZygpO1xyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIiwiPGFyZC1mb3JtLWZpZWxkLWZyYW1lXHJcbiAgY2xhc3M9XCJhcmQtZmlsZS1pbnB1dC1mb3JtLWZpZWxkLWZyYW1lXCJcclxuICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlKClcIlxyXG4gIFt2YXJpYW50XT1cInZhcmlhbnQoKVwiXHJcbiAgW2NvbXBhY3RdPVwiY29tcGFjdCgpXCJcclxuICBbaXNGb2N1c2VkXT1cImlzRm9jdXNlZCgpXCJcclxuICBbaGFzRXJyb3JdPVwiaGFzRXJyb3IoKVwiXHJcbiAgW2lzU3VjY2Vzc109XCJpc1N1Y2Nlc3MoKVwiXHJcbiAgW3ByZWZpeFRlbXBsYXRlXT1cInByZWZpeFRlbXBsYXRlKCk/LnRlbXBsYXRlXCJcclxuICBbc3VmZml4VGVtcGxhdGVdPVwic3VmZml4VGVtcGxhdGUoKT8udGVtcGxhdGVcIlxyXG4gIChkcmFnb3Zlcik9XCJvbkRyYWdvdmVyKCRldmVudClcIlxyXG4gIChkcmFnbGVhdmUpPVwib25EcmFnbGVhdmUoKVwiXHJcbiAgKGRyb3ApPVwib25Ecm9wKCRldmVudClcIlxyXG4gIChhcmRDbGlja091dHNpZGUpPVwib25EcmFnbGVhdmUoKVwiXHJcbj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImFyZC1maWxlLWlucHV0XCJcclxuICAgIFtuZ0NsYXNzXT1cIm5nQ2xhc3NlcygpXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXJkLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgICBAaWYgKHNob3VsZERpc3BsYXlQbGFjZWhvbGRlcikge1xyXG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRQbGFjZWhvbGRlclRlbXBsYXRlPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtcGxhY2Vob2xkZXJcIj57eyBwbGFjZWhvbGRlcigpIH19PC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwicGxhY2Vob2xkZXJUZW1wbGF0ZSgpPy50ZW1wbGF0ZSB8fCBkZWZhdWx0UGxhY2Vob2xkZXJUZW1wbGF0ZVwiIC8+XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcmQtZmlsZS1pbnB1dF9fdmFsdWVcIj5cclxuICAgICAgICBAaWYgKGN1cnJlbnRWaWV3U3RhdGUoKSA9PT0gJ2lkbGUnKSB7XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpZGxlVGVtcGxhdGUoKT8udGVtcGxhdGUgPz8gZGVmYXVsdElkbGVUZW1wbGF0ZVwiXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0SWRsZUNvbnRleHQoKVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICB9IEBpZiAoY3VycmVudFZpZXdTdGF0ZSgpID09PSAnZHJhZ292ZXInKSB7XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkcmFnb3ZlclRlbXBsYXRlKCk/LnRlbXBsYXRlID8/IGRlZmF1bHREcmFnb3ZlclRlbXBsYXRlXCJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXREcmFnb3ZlckNvbnRleHQoKVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICB9IEBpZiAoY3VycmVudFZpZXdTdGF0ZSgpID09PSAndXBsb2FkZWQnKSB7XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ1cGxvYWRlZFRlbXBsYXRlKCk/LnRlbXBsYXRlID8/IGRlZmF1bHRVcGxvYWRlZFRlbXBsYXRlXCJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRVcGxvYWRlZENvbnRleHQoKVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgQGlmIChzaG91bGRTaG93Q2xlYXJCdXR0b24pIHtcclxuICAgIDxhcmQtY2xlYXItYnV0dG9uXHJcbiAgICAgICNmb2N1c2FibGVFbGVtZW50XHJcbiAgICAgIFt0aXRsZV09XCJjbGVhckJ1dHRvblRpdGxlKClcIlxyXG4gICAgICAobW91c2V1cCk9XCJvbkNsZWFyQnV0dG9uQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAvPlxyXG4gICAgfSBAaWYgKCFzaG91bGRCZUJsb2NrZWQpIHtcclxuICAgIDxidXR0b25cclxuICAgICAgI2ZvY3VzYWJsZUVsZW1lbnRcclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIGNsYXNzPVwiYXJkLWJyb3dzZS1idXR0b25cIlxyXG4gICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4gICAgICAoY2xpY2spPVwib3BlbkJyb3dzZURpYWxvZygpXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cImFyZC1mb2N1cy1vdmVybGF5XCI+PC9kaXY+XHJcbiAgICAgIDxhcmQtaWNvbj5mb2xkZXI8L2FyZC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbjwvYXJkLWZvcm0tZmllbGQtZnJhbWU+XHJcblxyXG48aW5wdXRcclxuICAjZmlsZUlucHV0XHJcbiAgY2xhc3M9XCJhcmQtZmlsZS1pbnB1dF9faW5wdXRcIlxyXG4gIHR5cGU9XCJmaWxlXCJcclxuICBbbmFtZV09XCJuYW1lKClcIlxyXG4gIFttdWx0aXBsZV09XCJtdWx0aXBsZSgpXCJcclxuICBbYXR0ci5pZF09XCJodG1sSWQoKVwiXHJcbiAgW2FjY2VwdF09XCJhY2NlcHRTdHJpbmcoKVwiXHJcbiAgKGNoYW5nZSk9XCJvbkZpbGVJbnB1dENoYW5nZSgpXCJcclxuLz5cclxuXHJcbjxuZy10ZW1wbGF0ZVxyXG4gICNkZWZhdWx0SWRsZVRlbXBsYXRlXHJcbiAgbGV0LWJyb3dzZT1cImJyb3dzZVwiXHJcbj5cclxuICA8c3BhbiBjbGFzcz1cImFyZC1maWxlLWlucHV0X19pZGxlXCI+XHJcbiAgICBAaWYgKG11bHRpcGxlKCkpIHtcclxuICAgIDxzcGFuPlVwbG9hZCBhIGZpbGU8L3NwYW4+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgIDxzcGFuPlVwbG9hZCBmaWxlczwvc3Bhbj5cclxuICAgIH1cclxuICA8L3NwYW4+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGVcclxuICAjZGVmYXVsdERyYWdvdmVyVGVtcGxhdGVcclxuICBsZXQtYW1vdW50PVwiYW1vdW50XCJcclxuPlxyXG4gIDxzcGFuIGNsYXNzPVwiYXJkLWZpbGUtaW5wdXRfX2RyYWdvdmVyLXRleHRcIj5Ecm9wIDwvc3Bhbj5cclxuICBAaWYgKG11bHRpcGxlKCkpIHtcclxuICA8c3BhbiBjbGFzcz1cImFyZC1maWxlLWlucHV0X19kcmFnb3Zlci1hbW91bnRcIj5cclxuICAgIHt7IGFtb3VudCB9fVxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdQbHVyYWxdPVwiYW1vdW50XCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBuZ1BsdXJhbENhc2U9XCI9MVwiPmZpbGU8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgbmdQbHVyYWxDYXNlPVwib3RoZXJcIj5maWxlczwvbmctdGVtcGxhdGU+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L3NwYW4+XHJcbiAgfSBAZWxzZSB7XHJcbiAgPHNwYW4gY2xhc3M9XCJhcmQtZmlsZS1pbnB1dF9fZHJhZ292ZXItYW1vdW50XCI+IGEgZmlsZSA8L3NwYW4+XHJcbiAgfVxyXG4gIDxzcGFuIGNsYXNzPVwiYXJkLWZpbGUtaW5wdXRfX2RyYWdvdmVyLXRleHRcIj4gaGVyZSB0byB1cGxvYWQgPC9zcGFuPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlXHJcbiAgI2RlZmF1bHRVcGxvYWRlZFRlbXBsYXRlXHJcbiAgbGV0LWFtb3VudD1cImFtb3VudFwiXHJcbiAgbGV0LWZpbGVzPVwiZmlsZXNcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cImFyZC1maWxlLWlucHV0X191cGxvYWRlZFwiPlxyXG4gICAgQGlmIChhbW91bnQgPT09IDEpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtZmlsZS1pbnB1dF9fZnVsbC1maWxlLW5hbWVcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJhcmQtZmlsZS1pbnB1dF9fZmlsZS1uYW1lXCI+XHJcbiAgICAgICAge3sgZmlsZXM/LlswXT8ubmFtZSB8IGZpbGVuYW1lIH19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJhcmQtZmlsZS1pbnB1dF9fZmlsZS1leHRcIj5cclxuICAgICAgICB7eyBmaWxlcz8uWzBdPy5uYW1lIHwgZmlsZWV4dDp0cnVlIH19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICA8c3BhbiBjbGFzcz1cImFyZC1maWxlLWlucHV0X191cGxvYWRlZC1hbW91bnRcIj5cclxuICAgICAge3sgYW1vdW50IH19XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nUGx1cmFsXT1cImFtb3VudFwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBuZ1BsdXJhbENhc2U9XCI9MVwiPmZpbGU8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBuZ1BsdXJhbENhc2U9XCJvdGhlclwiPmZpbGVzPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8c3BhbiBjbGFzcz1cImFyZC1maWxlLWlucHV0X191cGxvYWRlZC10ZXh0XCI+IHVwbG9hZGVkLjwvc3Bhbj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|