ngx-tethys 14.2.0-next.7 → 14.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -11
- package/dialog/dialog-container.component.d.ts +1 -1
- package/esm2020/dialog/dialog-container.component.mjs +1 -1
- package/esm2020/layout/sidebar.component.mjs +10 -17
- package/esm2020/version.mjs +2 -2
- package/fesm2015/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2015/ngx-tethys-layout.mjs +7 -13
- package/fesm2015/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2015/ngx-tethys.mjs +1 -1
- package/fesm2015/ngx-tethys.mjs.map +1 -1
- package/fesm2020/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2020/ngx-tethys-layout.mjs +7 -13
- package/fesm2020/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2020/ngx-tethys.mjs +1 -1
- package/fesm2020/ngx-tethys.mjs.map +1 -1
- package/layout/sidebar.component.d.ts +2 -4
- package/package.json +1 -1
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,30 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
-
# [14.2.0
|
|
5
|
+
# [14.2.0](https://github.com/atinc/ngx-tethys/compare/14.2.0-next.6...14.2.0) (2022-12-08)
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
### Bug Fixes
|
|
9
9
|
|
|
10
|
-
*
|
|
11
|
-
* checkout ([8e96a12](https://github.com/atinc/ngx-tethys/commit/8e96a1253bf26683be72c9c87379fa2951170af7))
|
|
12
|
-
* run git config ([4b2e58b](https://github.com/atinc/ngx-tethys/commit/4b2e58b31f9a2ca562d649987efcb72b95916d67))
|
|
13
|
-
* run publish with github token ([6280be1](https://github.com/atinc/ngx-tethys/commit/6280be16af01e633dbc25fcd3dca0e592d2ec46f))
|
|
10
|
+
* run action when completed ([e2f4c34](https://github.com/atinc/ngx-tethys/commit/e2f4c3471672df81023d596916968f8e9e6310c7))
|
|
14
11
|
|
|
15
12
|
|
|
16
13
|
### Features
|
|
17
14
|
|
|
18
|
-
* 调整步骤顺序 ([70d96ed](https://github.com/atinc/ngx-tethys/commit/70d96edc5554da649ec0c1b412030f92469db47f))
|
|
19
|
-
* auto release ([7d51898](https://github.com/atinc/ngx-tethys/commit/7d51898a0e6c3be00fdb8b6026f265da7ea2519f))
|
|
20
15
|
* **cdk:** add object-producer to immutable #INFR-5526 ([01429e9](https://github.com/atinc/ngx-tethys/commit/01429e95110b25882a41d3a710f5971b21c34e72)), closes [#INFR-5526](https://github.com/atinc/ngx-tethys/issues/INFR-5526)
|
|
21
16
|
* **cdk:** add ThyHotkeyDirective and ThyHotkeyDispatcher #INFR-5572 ([#2388](https://github.com/atinc/ngx-tethys/issues/2388)) ([1b9d78d](https://github.com/atinc/ngx-tethys/commit/1b9d78d19bdf45d05e6210bdb6f9a2f0dfb6b421)), closes [#INFR-5572](https://github.com/atinc/ngx-tethys/issues/INFR-5572)
|
|
22
|
-
*
|
|
23
|
-
* checkout from base ([788a468](https://github.com/atinc/ngx-tethys/commit/788a4681a4c80e502de9aec76b5843577e234306))
|
|
17
|
+
* **cdk:** call last hotkey event when hotkey conflicted #INFR-5572 ([#2410](https://github.com/atinc/ngx-tethys/issues/2410)) ([9e042aa](https://github.com/atinc/ngx-tethys/commit/9e042aa04776c4211c7bae14bce045fc5ddc1156)), closes [#INFR-5572](https://github.com/atinc/ngx-tethys/issues/INFR-5572)
|
|
24
18
|
* **layout:** sidebar collapsible support hotkey #INFR-5570 ([59b7245](https://github.com/atinc/ngx-tethys/commit/59b7245ef43cddcc0e7fe68ea36485cd891b9561)), closes [#INFR-5570](https://github.com/atinc/ngx-tethys/issues/INFR-5570)
|
|
25
19
|
* **mention:** support contenteditable #INFR-175 ([#2382](https://github.com/atinc/ngx-tethys/issues/2382)) ([991a8de](https://github.com/atinc/ngx-tethys/commit/991a8de26133c65100e96f6d9f65301d72523b3b)), closes [#INFR-175](https://github.com/atinc/ngx-tethys/issues/INFR-175)
|
|
26
|
-
* MERGE_DELETE_BRANCH to false ([e500d84](https://github.com/atinc/ngx-tethys/commit/e500d840bb6f459f55e5ce67a98a309a27e1a626))
|
|
27
20
|
* **nav:** nav-item-icon-color change to [#999](https://github.com/atinc/ngx-tethys/issues/999) #INFR-5560 ([3667b05](https://github.com/atinc/ngx-tethys/commit/3667b057268393515db18e3b92e4602ef0009652)), closes [#INFR-5560](https://github.com/atinc/ngx-tethys/issues/INFR-5560)
|
|
28
|
-
* update release.yml ([7344abd](https://github.com/atinc/ngx-tethys/commit/7344abdab66c6a734299c8b417d2c19b96b22a56))
|
|
29
21
|
|
|
30
22
|
|
|
31
23
|
|
|
@@ -7,7 +7,7 @@ import { ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnDestroy } from '
|
|
|
7
7
|
import { ThyDialogConfig } from './dialog.config';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
export declare class ThyDialogContainerComponent extends ThyAbstractOverlayContainer implements OnDestroy {
|
|
10
|
-
elementRef
|
|
10
|
+
private elementRef;
|
|
11
11
|
private document;
|
|
12
12
|
config: ThyDialogConfig;
|
|
13
13
|
private clickPositioner;
|
|
@@ -162,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
162
162
|
type: HostBinding,
|
|
163
163
|
args: [`attr.id`]
|
|
164
164
|
}] } });
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGlhbG9nL2RpYWxvZy1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsMkJBQTJCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEMsT0FBTyxFQUFhLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7QUF5QmhFLE1BQU0sT0FBTywyQkFBNEIsU0FBUSwyQkFBMkI7SUFxR3hFLFlBQ1csVUFBc0IsRUFDSCxRQUFhLEVBQ2hDLE1BQXVCLEVBQzlCLGlCQUFvQyxFQUM1QixlQUFtQyxFQUNuQyxnQkFBa0MsRUFDbEMsTUFBYztRQUV0QixLQUFLLENBQUMsNEJBQTRCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQVJoRCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ0gsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUNoQyxXQUFNLEdBQU4s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ZXJsYXlDb250YWluZXIsIFRoeUNsaWNrUG9zaXRpb25lciB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBGb2N1c1RyYXAsIEZvY3VzVHJhcEZhY3RvcnkgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBDZGtQb3J0YWxPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgdGh5RGlhbG9nQW5pbWF0aW9ucyB9IGZyb20gJy4vZGlhbG9nLWFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgVGh5RGlhbG9nQ29uZmlnIH0gZnJvbSAnLi9kaWFsb2cuY29uZmlnJztcbmltcG9ydCB7IGRpYWxvZ0Fic3RyYWN0T3ZlcmxheU9wdGlvbnMgfSBmcm9tICcuL2RpYWxvZy5vcHRpb25zJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktZGlhbG9nLWNvbnRhaW5lcicsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLXRlbXBsYXRlIGNka1BvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPlxuICAgIGAsXG4gICAgLy8gVXNpbmcgT25QdXNoIGZvciBkaWFsb2dzIGNhdXNlZCBzb21lIHN5bmMgaXNzdWVzLCBlLmcuIGN1c3RvbSBuZ01vZGVsIGNhbid0IHRvIGRldGVjdCBjaGFuZ2VzXG4gICAgLy8gRGlzYWJsZWQgdW50aWwgd2UgY2FuIHRyYWNrIHRoZW0gZG93bi5cbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gICAgYW5pbWF0aW9uczogW3RoeURpYWxvZ0FuaW1hdGlvbnMuZGlhbG9nQ29udGFpbmVyXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGh5LWRpYWxvZy1jb250YWluZXInLFxuICAgICAgICB0YWJpbmRleDogJy0xJyxcbiAgICAgICAgJ2FyaWEtbW9kYWwnOiAndHJ1ZScsXG4gICAgICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgICAgICAnW2F0dHIucm9sZV0nOiAnY29uZmlnLnJvbGUnLFxuICAgICAgICAnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6ICdjb25maWcuYXJpYUxhYmVsID8gbnVsbCA6IGFyaWFMYWJlbGxlZEJ5JyxcbiAgICAgICAgJ1thdHRyLmFyaWEtbGFiZWxdJzogJ2NvbmZpZy5hcmlhTGFiZWwnLFxuICAgICAgICAnW2F0dHIuYXJpYS1kZXNjcmliZWRieV0nOiAnY29uZmlnLmFyaWFEZXNjcmliZWRCeSB8fCBudWxsJyxcbiAgICAgICAgJ1tAZGlhbG9nQ29udGFpbmVyXSc6ICdhbmltYXRpb25TdGF0ZScsXG4gICAgICAgICcoQGRpYWxvZ0NvbnRhaW5lci5zdGFydCknOiAnb25BbmltYXRpb25TdGFydCgkZXZlbnQpJyxcbiAgICAgICAgJyhAZGlhbG9nQ29udGFpbmVyLmRvbmUpJzogJ29uQW5pbWF0aW9uRG9uZSgkZXZlbnQpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgVGh5RGlhbG9nQ29udGFpbmVyQ29tcG9uZW50IGV4dGVuZHMgVGh5QWJzdHJhY3RPdmVybGF5Q29udGFpbmVyIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBhbmltYXRpb25PcGVuaW5nRG9uZTogT2JzZXJ2YWJsZTxBbmltYXRpb25FdmVudD47XG4gICAgYW5pbWF0aW9uQ2xvc2luZ0RvbmU6IE9ic2VydmFibGU8QW5pbWF0aW9uRXZlbnQ+O1xuXG4gICAgQFZpZXdDaGlsZChDZGtQb3J0YWxPdXRsZXQsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcG9ydGFsT3V0bGV0OiBDZGtQb3J0YWxPdXRsZXQ7XG5cbiAgICBASG9zdEJpbmRpbmcoYGF0dHIuaWRgKVxuICAgIGlkOiBzdHJpbmc7XG5cbiAgICAvKiogU3RhdGUgb2YgdGhlIGRpYWxvZyBhbmltYXRpb24uICovXG4gICAgYW5pbWF0aW9uU3RhdGU6ICd2b2lkJyB8ICdlbnRlcicgfCAnZXhpdCcgPSAndm9pZCc7XG5cbiAgICAvKiogRW1pdHMgd2hlbiBhbiBhbmltYXRpb24gc3RhdGUgY2hhbmdlcy4gKi9cbiAgICBhbmltYXRpb25TdGF0ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEFuaW1hdGlvbkV2ZW50PigpO1xuXG4gICAgLyoqIElEIG9mIHRoZSBlbGVtZW50IHRoYXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgdGhlIGRpYWxvZydzIGxhYmVsLiAqL1xuICAgIGFyaWFMYWJlbGxlZEJ5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBFbGVtZW50IHRoYXQgd2FzIGZvY3VzZWQgYmVmb3JlIHRoZSBkaWFsb2cgd2FzIG9wZW5lZC4gU2F2ZSB0aGlzIHRvIHJlc3RvcmUgdXBvbiBjbG9zZS4gKi9cbiAgICBwcml2YXRlIGVsZW1lbnRGb2N1c2VkQmVmb3JlRGlhbG9nV2FzT3BlbmVkOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIFRoZSBjbGFzcyB0aGF0IHRyYXBzIGFuZCBtYW5hZ2VzIGZvY3VzIHdpdGhpbiB0aGUgZGlhbG9nLiAqL1xuICAgIHByaXZhdGUgZm9jdXNUcmFwOiBGb2N1c1RyYXA7XG5cbiAgICBwcml2YXRlIHNhdmVQcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQoKSB7XG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRGb2N1c2VkQmVmb3JlRGlhbG9nV2FzT3BlbmVkID0gdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgICAgICAvLyBOb3RlIHRoYXQgdGhlcmUgaXMgbm8gZm9jdXMgbWV0aG9kIHdoZW4gcmVuZGVyaW5nIG9uIHRoZSBzZXJ2ZXIuXG4gICAgICAgICAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMpIHtcbiAgICAgICAgICAgICAgICAvLyBOb3RlOiB0aGlzIGlzIGJlaW5nIHJ1biBvdXRzaWRlIG9mIHRoZSBBbmd1bGFyIHpvbmUgYmVjYXVzZSBgZWxlbWVudC5mb2N1cygpYCBkb2Vzbid0IHJlcXVpcmVcbiAgICAgICAgICAgICAgICAvLyBydW5uaW5nIGNoYW5nZSBkZXRlY3Rpb24uXG4gICAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgLy8gTW92ZSBmb2N1cyBvbnRvIHRoZSBkaWFsb2cgaW1tZWRpYXRlbHkgaW4gb3JkZXIgdG8gcHJldmVudCB0aGUgdXNlciBmcm9tIGFjY2lkZW50YWxseVxuICAgICAgICAgICAgICAgICAgICAvLyBvcGVuaW5nIG11bHRpcGxlIGRpYWxvZ3MgYXQgdGhlIHNhbWUgdGltZS4gTmVlZHMgdG8gYmUgYXN5bmMsIGJlY2F1c2UgdGhlIGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgLy8gbWF5IG5vdCBiZSBmb2N1c2FibGUgaW1tZWRpYXRlbHkuXG5cbiAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTogYGVsZW1lbnQuZm9jdXMoKWAgY2F1c2VzIHJlLWxheW91dCBhbmQgdGhpcyBtYXkgbGVhZCB0byBmcmFtZSBkcm9wIG9uIHNsb3dlciBkZXZpY2VzLlxuICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9wYXVsaXJpc2gvNWQ1MmZiMDgxYjM1NzBjODFlM2Ejc2V0dGluZy1mb2N1c1xuICAgICAgICAgICAgICAgICAgICAvLyBgc2V0VGltZW91dGAgaXMgYSBtYWNyb3Rhc2sgYW5kIG1hY3JvdGFza3MgYXJlIGV4ZWN1dGVkIHdpdGhpbiB0aGUgY3VycmVudCByZW5kZXJpbmcgZnJhbWUuXG4gICAgICAgICAgICAgICAgICAgIC8vIEFuaW1hdGlvbiB0YXNrcyBhcmUgZXhlY3V0ZWQgd2l0aGluIHRoZSBuZXh0IHJlbmRlcmluZyBmcmFtZS5cbiAgICAgICAgICAgICAgICAgICAgcmVxQW5pbUZyYW1lKCgpID0+IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCkpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBNb3ZlcyB0aGUgZm9jdXMgaW5zaWRlIHRoZSBmb2N1cyB0cmFwLiAqL1xuICAgIHByaXZhdGUgdHJhcEZvY3VzKCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKCF0aGlzLmZvY3VzVHJhcCkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c1RyYXAgPSB0aGlzLmZvY3VzVHJhcEZhY3RvcnkuY3JlYXRlKGVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgd2Ugd2VyZSB0byBhdHRlbXB0IHRvIGZvY3VzIGltbWVkaWF0ZWx5LCB0aGVuIHRoZSBjb250ZW50IG9mIHRoZSBkaWFsb2cgd291bGQgbm90IHlldCBiZVxuICAgICAgICAvLyByZWFkeSBpbiBpbnN0YW5jZXMgd2hlcmUgY2hhbmdlIGRldGVjdGlvbiBoYXMgdG8gcnVuIGZpcnN0LiBUbyBkZWFsIHdpdGggdGhpcywgd2Ugc2ltcGx5XG4gICAgICAgIC8vIHdhaXQgZm9yIHRoZSBtaWNyb3Rhc2sgcXVldWUgdG8gYmUgZW1wdHkuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5hdXRvRm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNUcmFwLmZvY3VzSW5pdGlhbEVsZW1lbnRXaGVuUmVhZHkoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgICAgIC8vIE90aGVyd2lzZSBlbnN1cmUgdGhhdCBmb2N1cyBpcyBvbiB0aGUgZGlhbG9nIGNvbnRhaW5lci4gSXQncyBwb3NzaWJsZSB0aGF0IGEgZGlmZmVyZW50XG4gICAgICAgICAgICAvLyBjb21wb25lbnQgdHJpZWQgdG8gbW92ZSBmb2N1cyB3aGlsZSB0aGUgb3BlbiBhbmltYXRpb24gd2FzIHJ1bm5pbmcuIFNlZTpcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvaXNzdWVzLzE2MjE1LiBOb3RlIHRoYXQgd2Ugb25seSB3YW50IHRvIGRvIHRoaXNcbiAgICAgICAgICAgIC8vIGlmIHRoZSBmb2N1cyBpc24ndCBpbnNpZGUgdGhlIGRpYWxvZyBhbHJlYWR5LCBiZWNhdXNlIGl0J3MgcG9zc2libGUgdGhhdCB0aGUgY29uc3VtZXJcbiAgICAgICAgICAgIC8vIHR1cm5lZCBvZmYgYGF1dG9Gb2N1c2AgaW4gb3JkZXIgdG8gbW92ZSBmb2N1cyB0aGVtc2VsdmVzLlxuICAgICAgICAgICAgaWYgKGFjdGl2ZUVsZW1lbnQgIT09IGVsZW1lbnQgJiYgIWVsZW1lbnQuY29udGFpbnMoYWN0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc3RvcmVGb2N1cygpIHtcbiAgICAgICAgY29uc3QgdG9Gb2N1cyA9IHRoaXMuZWxlbWVudEZvY3VzZWRCZWZvcmVEaWFsb2dXYXNPcGVuZWQ7XG5cbiAgICAgICAgLy8gV2UgbmVlZCB0aGUgZXh0cmEgY2hlY2ssIGJlY2F1c2UgSUUgY2FuIHNldCB0aGUgYGFjdGl2ZUVsZW1lbnRgIHRvIG51bGwgaW4gc29tZSBjYXNlcy5cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLnJlc3RvcmVGb2N1cyAmJiB0b0ZvY3VzICYmIHR5cGVvZiB0b0ZvY3VzLmZvY3VzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0b0ZvY3VzLmZvY3VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb2N1c1RyYXApIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNUcmFwLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VHJhbnNmb3JtT3JpZ2luKCkge1xuICAgICAgICB0aGlzLmNsaWNrUG9zaXRpb25lci5ydW5UYXNrVXNlTGFzdFBvc2l0aW9uKGxhc3RQb3NpdGlvbiA9PiB7XG4gICAgICAgICAgICBpZiAobGFzdFBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyRWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1PcmlnaW4gPSBgJHtsYXN0UG9zaXRpb24ueCAtIGNvbnRhaW5lckVsZW1lbnQub2Zmc2V0TGVmdH1weCAke2xhc3RQb3NpdGlvbi55IC1cbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyRWxlbWVudC5vZmZzZXRUb3B9cHggMHB4YDtcbiAgICAgICAgICAgICAgICBjb250YWluZXJFbGVtZW50LnN0eWxlWyd0cmFuc2Zvcm0tb3JpZ2luJ10gPSB0cmFuc2Zvcm1PcmlnaW47XG4gICAgICAgICAgICAgICAgLy8g5omL5Yqo5L+u5pS55Yqo55S754q25oCB5Li65LuOIHZvaWQg5YiwIGVudGVyLCDlvIDlkK/liqjnlLtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSAnZW50ZXInO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcbiAgICAgICAgcHVibGljIGNvbmZpZzogVGh5RGlhbG9nQ29uZmlnLFxuICAgICAgICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgY2xpY2tQb3NpdGlvbmVyOiBUaHlDbGlja1Bvc2l0aW9uZXIsXG4gICAgICAgIHByaXZhdGUgZm9jdXNUcmFwRmFjdG9yeTogRm9jdXNUcmFwRmFjdG9yeSxcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxuICAgICkge1xuICAgICAgICBzdXBlcihkaWFsb2dBYnN0cmFjdE92ZXJsYXlPcHRpb25zLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uT3BlbmluZ0RvbmUgPSB0aGlzLmFuaW1hdGlvblN0YXRlQ2hhbmdlZC5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKChldmVudDogQW5pbWF0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQucGhhc2VOYW1lID09PSAnZG9uZScgJiYgZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5hbmltYXRpb25DbG9zaW5nRG9uZSA9IHRoaXMuYW5pbWF0aW9uU3RhdGVDaGFuZ2VkLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKGV2ZW50OiBBbmltYXRpb25FdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBldmVudC5waGFzZU5hbWUgPT09ICdkb25lJyAmJiBldmVudC50b1N0YXRlID09PSAnZXhpdCc7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGJlZm9yZUF0dGFjaFBvcnRhbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRUcmFuc2Zvcm1PcmlnaW4oKTtcbiAgICAgICAgdGhpcy5zYXZlUHJldmlvdXNseUZvY3VzZWRFbGVtZW50KCk7XG4gICAgfVxuXG4gICAgLyoqIENhbGxiYWNrLCBpbnZva2VkIHdoZW5ldmVyIGFuIGFuaW1hdGlvbiBvbiB0aGUgaG9zdCBjb21wbGV0ZXMuICovXG4gICAgb25BbmltYXRpb25Eb25lKGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnKSB7XG4gICAgICAgICAgICB0aGlzLnRyYXBGb2N1cygpO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICdleGl0Jykge1xuICAgICAgICAgICAgdGhpcy5yZXN0b3JlRm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFuaW1hdGlvblN0YXRlQ2hhbmdlZC5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKiogQ2FsbGJhY2ssIGludm9rZWQgd2hlbiBhbiBhbmltYXRpb24gb24gdGhlIGhvc3Qgc3RhcnRzLiAqL1xuICAgIG9uQW5pbWF0aW9uU3RhcnQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSB7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGVDaGFuZ2VkLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgfVxufVxuIl19
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGlhbG9nL2RpYWxvZy1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsMkJBQTJCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEMsT0FBTyxFQUFhLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7QUF5QmhFLE1BQU0sT0FBTywyQkFBNEIsU0FBUSwyQkFBMkI7SUFxR3hFLFlBQ1ksVUFBc0IsRUFDSixRQUFhLEVBQ2hDLE1BQXVCLEVBQzlCLGlCQUFvQyxFQUM1QixlQUFtQyxFQUNuQyxnQkFBa0MsRUFDbEMsTUFBYztRQUV0QixLQUFLLENBQUMsNEJBQTRCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQVIvQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ0osYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUNoQyxXQUFNLEdBQU4s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ZXJsYXlDb250YWluZXIsIFRoeUNsaWNrUG9zaXRpb25lciB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBGb2N1c1RyYXAsIEZvY3VzVHJhcEZhY3RvcnkgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBDZGtQb3J0YWxPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgdGh5RGlhbG9nQW5pbWF0aW9ucyB9IGZyb20gJy4vZGlhbG9nLWFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgVGh5RGlhbG9nQ29uZmlnIH0gZnJvbSAnLi9kaWFsb2cuY29uZmlnJztcbmltcG9ydCB7IGRpYWxvZ0Fic3RyYWN0T3ZlcmxheU9wdGlvbnMgfSBmcm9tICcuL2RpYWxvZy5vcHRpb25zJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktZGlhbG9nLWNvbnRhaW5lcicsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLXRlbXBsYXRlIGNka1BvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPlxuICAgIGAsXG4gICAgLy8gVXNpbmcgT25QdXNoIGZvciBkaWFsb2dzIGNhdXNlZCBzb21lIHN5bmMgaXNzdWVzLCBlLmcuIGN1c3RvbSBuZ01vZGVsIGNhbid0IHRvIGRldGVjdCBjaGFuZ2VzXG4gICAgLy8gRGlzYWJsZWQgdW50aWwgd2UgY2FuIHRyYWNrIHRoZW0gZG93bi5cbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gICAgYW5pbWF0aW9uczogW3RoeURpYWxvZ0FuaW1hdGlvbnMuZGlhbG9nQ29udGFpbmVyXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGh5LWRpYWxvZy1jb250YWluZXInLFxuICAgICAgICB0YWJpbmRleDogJy0xJyxcbiAgICAgICAgJ2FyaWEtbW9kYWwnOiAndHJ1ZScsXG4gICAgICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgICAgICAnW2F0dHIucm9sZV0nOiAnY29uZmlnLnJvbGUnLFxuICAgICAgICAnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6ICdjb25maWcuYXJpYUxhYmVsID8gbnVsbCA6IGFyaWFMYWJlbGxlZEJ5JyxcbiAgICAgICAgJ1thdHRyLmFyaWEtbGFiZWxdJzogJ2NvbmZpZy5hcmlhTGFiZWwnLFxuICAgICAgICAnW2F0dHIuYXJpYS1kZXNjcmliZWRieV0nOiAnY29uZmlnLmFyaWFEZXNjcmliZWRCeSB8fCBudWxsJyxcbiAgICAgICAgJ1tAZGlhbG9nQ29udGFpbmVyXSc6ICdhbmltYXRpb25TdGF0ZScsXG4gICAgICAgICcoQGRpYWxvZ0NvbnRhaW5lci5zdGFydCknOiAnb25BbmltYXRpb25TdGFydCgkZXZlbnQpJyxcbiAgICAgICAgJyhAZGlhbG9nQ29udGFpbmVyLmRvbmUpJzogJ29uQW5pbWF0aW9uRG9uZSgkZXZlbnQpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgVGh5RGlhbG9nQ29udGFpbmVyQ29tcG9uZW50IGV4dGVuZHMgVGh5QWJzdHJhY3RPdmVybGF5Q29udGFpbmVyIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBhbmltYXRpb25PcGVuaW5nRG9uZTogT2JzZXJ2YWJsZTxBbmltYXRpb25FdmVudD47XG4gICAgYW5pbWF0aW9uQ2xvc2luZ0RvbmU6IE9ic2VydmFibGU8QW5pbWF0aW9uRXZlbnQ+O1xuXG4gICAgQFZpZXdDaGlsZChDZGtQb3J0YWxPdXRsZXQsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcG9ydGFsT3V0bGV0OiBDZGtQb3J0YWxPdXRsZXQ7XG5cbiAgICBASG9zdEJpbmRpbmcoYGF0dHIuaWRgKVxuICAgIGlkOiBzdHJpbmc7XG5cbiAgICAvKiogU3RhdGUgb2YgdGhlIGRpYWxvZyBhbmltYXRpb24uICovXG4gICAgYW5pbWF0aW9uU3RhdGU6ICd2b2lkJyB8ICdlbnRlcicgfCAnZXhpdCcgPSAndm9pZCc7XG5cbiAgICAvKiogRW1pdHMgd2hlbiBhbiBhbmltYXRpb24gc3RhdGUgY2hhbmdlcy4gKi9cbiAgICBhbmltYXRpb25TdGF0ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEFuaW1hdGlvbkV2ZW50PigpO1xuXG4gICAgLyoqIElEIG9mIHRoZSBlbGVtZW50IHRoYXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgdGhlIGRpYWxvZydzIGxhYmVsLiAqL1xuICAgIGFyaWFMYWJlbGxlZEJ5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBFbGVtZW50IHRoYXQgd2FzIGZvY3VzZWQgYmVmb3JlIHRoZSBkaWFsb2cgd2FzIG9wZW5lZC4gU2F2ZSB0aGlzIHRvIHJlc3RvcmUgdXBvbiBjbG9zZS4gKi9cbiAgICBwcml2YXRlIGVsZW1lbnRGb2N1c2VkQmVmb3JlRGlhbG9nV2FzT3BlbmVkOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIFRoZSBjbGFzcyB0aGF0IHRyYXBzIGFuZCBtYW5hZ2VzIGZvY3VzIHdpdGhpbiB0aGUgZGlhbG9nLiAqL1xuICAgIHByaXZhdGUgZm9jdXNUcmFwOiBGb2N1c1RyYXA7XG5cbiAgICBwcml2YXRlIHNhdmVQcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQoKSB7XG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRGb2N1c2VkQmVmb3JlRGlhbG9nV2FzT3BlbmVkID0gdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgICAgICAvLyBOb3RlIHRoYXQgdGhlcmUgaXMgbm8gZm9jdXMgbWV0aG9kIHdoZW4gcmVuZGVyaW5nIG9uIHRoZSBzZXJ2ZXIuXG4gICAgICAgICAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMpIHtcbiAgICAgICAgICAgICAgICAvLyBOb3RlOiB0aGlzIGlzIGJlaW5nIHJ1biBvdXRzaWRlIG9mIHRoZSBBbmd1bGFyIHpvbmUgYmVjYXVzZSBgZWxlbWVudC5mb2N1cygpYCBkb2Vzbid0IHJlcXVpcmVcbiAgICAgICAgICAgICAgICAvLyBydW5uaW5nIGNoYW5nZSBkZXRlY3Rpb24uXG4gICAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgLy8gTW92ZSBmb2N1cyBvbnRvIHRoZSBkaWFsb2cgaW1tZWRpYXRlbHkgaW4gb3JkZXIgdG8gcHJldmVudCB0aGUgdXNlciBmcm9tIGFjY2lkZW50YWxseVxuICAgICAgICAgICAgICAgICAgICAvLyBvcGVuaW5nIG11bHRpcGxlIGRpYWxvZ3MgYXQgdGhlIHNhbWUgdGltZS4gTmVlZHMgdG8gYmUgYXN5bmMsIGJlY2F1c2UgdGhlIGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgLy8gbWF5IG5vdCBiZSBmb2N1c2FibGUgaW1tZWRpYXRlbHkuXG5cbiAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTogYGVsZW1lbnQuZm9jdXMoKWAgY2F1c2VzIHJlLWxheW91dCBhbmQgdGhpcyBtYXkgbGVhZCB0byBmcmFtZSBkcm9wIG9uIHNsb3dlciBkZXZpY2VzLlxuICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9wYXVsaXJpc2gvNWQ1MmZiMDgxYjM1NzBjODFlM2Ejc2V0dGluZy1mb2N1c1xuICAgICAgICAgICAgICAgICAgICAvLyBgc2V0VGltZW91dGAgaXMgYSBtYWNyb3Rhc2sgYW5kIG1hY3JvdGFza3MgYXJlIGV4ZWN1dGVkIHdpdGhpbiB0aGUgY3VycmVudCByZW5kZXJpbmcgZnJhbWUuXG4gICAgICAgICAgICAgICAgICAgIC8vIEFuaW1hdGlvbiB0YXNrcyBhcmUgZXhlY3V0ZWQgd2l0aGluIHRoZSBuZXh0IHJlbmRlcmluZyBmcmFtZS5cbiAgICAgICAgICAgICAgICAgICAgcmVxQW5pbUZyYW1lKCgpID0+IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCkpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBNb3ZlcyB0aGUgZm9jdXMgaW5zaWRlIHRoZSBmb2N1cyB0cmFwLiAqL1xuICAgIHByaXZhdGUgdHJhcEZvY3VzKCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKCF0aGlzLmZvY3VzVHJhcCkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c1RyYXAgPSB0aGlzLmZvY3VzVHJhcEZhY3RvcnkuY3JlYXRlKGVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgd2Ugd2VyZSB0byBhdHRlbXB0IHRvIGZvY3VzIGltbWVkaWF0ZWx5LCB0aGVuIHRoZSBjb250ZW50IG9mIHRoZSBkaWFsb2cgd291bGQgbm90IHlldCBiZVxuICAgICAgICAvLyByZWFkeSBpbiBpbnN0YW5jZXMgd2hlcmUgY2hhbmdlIGRldGVjdGlvbiBoYXMgdG8gcnVuIGZpcnN0LiBUbyBkZWFsIHdpdGggdGhpcywgd2Ugc2ltcGx5XG4gICAgICAgIC8vIHdhaXQgZm9yIHRoZSBtaWNyb3Rhc2sgcXVldWUgdG8gYmUgZW1wdHkuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5hdXRvRm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNUcmFwLmZvY3VzSW5pdGlhbEVsZW1lbnRXaGVuUmVhZHkoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgICAgIC8vIE90aGVyd2lzZSBlbnN1cmUgdGhhdCBmb2N1cyBpcyBvbiB0aGUgZGlhbG9nIGNvbnRhaW5lci4gSXQncyBwb3NzaWJsZSB0aGF0IGEgZGlmZmVyZW50XG4gICAgICAgICAgICAvLyBjb21wb25lbnQgdHJpZWQgdG8gbW92ZSBmb2N1cyB3aGlsZSB0aGUgb3BlbiBhbmltYXRpb24gd2FzIHJ1bm5pbmcuIFNlZTpcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvaXNzdWVzLzE2MjE1LiBOb3RlIHRoYXQgd2Ugb25seSB3YW50IHRvIGRvIHRoaXNcbiAgICAgICAgICAgIC8vIGlmIHRoZSBmb2N1cyBpc24ndCBpbnNpZGUgdGhlIGRpYWxvZyBhbHJlYWR5LCBiZWNhdXNlIGl0J3MgcG9zc2libGUgdGhhdCB0aGUgY29uc3VtZXJcbiAgICAgICAgICAgIC8vIHR1cm5lZCBvZmYgYGF1dG9Gb2N1c2AgaW4gb3JkZXIgdG8gbW92ZSBmb2N1cyB0aGVtc2VsdmVzLlxuICAgICAgICAgICAgaWYgKGFjdGl2ZUVsZW1lbnQgIT09IGVsZW1lbnQgJiYgIWVsZW1lbnQuY29udGFpbnMoYWN0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc3RvcmVGb2N1cygpIHtcbiAgICAgICAgY29uc3QgdG9Gb2N1cyA9IHRoaXMuZWxlbWVudEZvY3VzZWRCZWZvcmVEaWFsb2dXYXNPcGVuZWQ7XG5cbiAgICAgICAgLy8gV2UgbmVlZCB0aGUgZXh0cmEgY2hlY2ssIGJlY2F1c2UgSUUgY2FuIHNldCB0aGUgYGFjdGl2ZUVsZW1lbnRgIHRvIG51bGwgaW4gc29tZSBjYXNlcy5cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLnJlc3RvcmVGb2N1cyAmJiB0b0ZvY3VzICYmIHR5cGVvZiB0b0ZvY3VzLmZvY3VzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0b0ZvY3VzLmZvY3VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb2N1c1RyYXApIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNUcmFwLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VHJhbnNmb3JtT3JpZ2luKCkge1xuICAgICAgICB0aGlzLmNsaWNrUG9zaXRpb25lci5ydW5UYXNrVXNlTGFzdFBvc2l0aW9uKGxhc3RQb3NpdGlvbiA9PiB7XG4gICAgICAgICAgICBpZiAobGFzdFBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyRWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1PcmlnaW4gPSBgJHtsYXN0UG9zaXRpb24ueCAtIGNvbnRhaW5lckVsZW1lbnQub2Zmc2V0TGVmdH1weCAke2xhc3RQb3NpdGlvbi55IC1cbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyRWxlbWVudC5vZmZzZXRUb3B9cHggMHB4YDtcbiAgICAgICAgICAgICAgICBjb250YWluZXJFbGVtZW50LnN0eWxlWyd0cmFuc2Zvcm0tb3JpZ2luJ10gPSB0cmFuc2Zvcm1PcmlnaW47XG4gICAgICAgICAgICAgICAgLy8g5omL5Yqo5L+u5pS55Yqo55S754q25oCB5Li65LuOIHZvaWQg5YiwIGVudGVyLCDlvIDlkK/liqjnlLtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSAnZW50ZXInO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnksXG4gICAgICAgIHB1YmxpYyBjb25maWc6IFRoeURpYWxvZ0NvbmZpZyxcbiAgICAgICAgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGNsaWNrUG9zaXRpb25lcjogVGh5Q2xpY2tQb3NpdGlvbmVyLFxuICAgICAgICBwcml2YXRlIGZvY3VzVHJhcEZhY3Rvcnk6IEZvY3VzVHJhcEZhY3RvcnksXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZGlhbG9nQWJzdHJhY3RPdmVybGF5T3B0aW9ucywgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgICAgICB0aGlzLmFuaW1hdGlvbk9wZW5pbmdEb25lID0gdGhpcy5hbmltYXRpb25TdGF0ZUNoYW5nZWQucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50LnBoYXNlTmFtZSA9PT0gJ2RvbmUnICYmIGV2ZW50LnRvU3RhdGUgPT09ICd2b2lkJztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uQ2xvc2luZ0RvbmUgPSB0aGlzLmFuaW1hdGlvblN0YXRlQ2hhbmdlZC5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKChldmVudDogQW5pbWF0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQucGhhc2VOYW1lID09PSAnZG9uZScgJiYgZXZlbnQudG9TdGF0ZSA9PT0gJ2V4aXQnO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBiZWZvcmVBdHRhY2hQb3J0YWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0VHJhbnNmb3JtT3JpZ2luKCk7XG4gICAgICAgIHRoaXMuc2F2ZVByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCgpO1xuICAgIH1cblxuICAgIC8qKiBDYWxsYmFjaywgaW52b2tlZCB3aGVuZXZlciBhbiBhbmltYXRpb24gb24gdGhlIGhvc3QgY29tcGxldGVzLiAqL1xuICAgIG9uQW5pbWF0aW9uRG9uZShldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICd2b2lkJykge1xuICAgICAgICAgICAgdGhpcy50cmFwRm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudC50b1N0YXRlID09PSAnZXhpdCcpIHtcbiAgICAgICAgICAgIHRoaXMucmVzdG9yZUZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZUNoYW5nZWQuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIENhbGxiYWNrLCBpbnZva2VkIHdoZW4gYW4gYW5pbWF0aW9uIG9uIHRoZSBob3N0IHN0YXJ0cy4gKi9cbiAgICBvbkFuaW1hdGlvblN0YXJ0KGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgICAgICB0aGlzLmFuaW1hdGlvblN0YXRlQ2hhbmdlZC5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -3,22 +3,19 @@ import { Component, HostBinding, Host, Optional, Input, ElementRef, Output, Even
|
|
|
3
3
|
import { ThyLayoutComponent } from './layout.component';
|
|
4
4
|
import { coerceBooleanProperty } from 'ngx-tethys/util';
|
|
5
5
|
import { InputBoolean } from 'ngx-tethys/core';
|
|
6
|
-
import { ThyDialogContainerComponent } from 'ngx-tethys/dialog';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
8
7
|
import * as i1 from "./layout.component";
|
|
9
|
-
import * as i2 from "
|
|
10
|
-
import * as i3 from "
|
|
11
|
-
import * as i4 from "ngx-tethys/
|
|
12
|
-
import * as i5 from "ngx-tethys/
|
|
13
|
-
import * as i6 from "
|
|
14
|
-
import * as i7 from "@tethys/cdk/hotkey";
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
9
|
+
import * as i3 from "ngx-tethys/icon";
|
|
10
|
+
import * as i4 from "ngx-tethys/tooltip";
|
|
11
|
+
import * as i5 from "ngx-tethys/resizable";
|
|
12
|
+
import * as i6 from "@tethys/cdk/hotkey";
|
|
15
13
|
const LG_WIDTH = 300;
|
|
16
14
|
const SIDEBAR_DEFAULT_WIDTH = 240;
|
|
17
15
|
export class ThySidebarComponent {
|
|
18
|
-
constructor(thyLayoutComponent, elementRef
|
|
16
|
+
constructor(thyLayoutComponent, elementRef) {
|
|
19
17
|
this.thyLayoutComponent = thyLayoutComponent;
|
|
20
18
|
this.elementRef = elementRef;
|
|
21
|
-
this.dialogContainerComponent = dialogContainerComponent;
|
|
22
19
|
this.thyLayoutSidebarClass = true;
|
|
23
20
|
this.thyLayoutSidebarClearBorderRightClass = false;
|
|
24
21
|
this.sidebarThemeLight = false;
|
|
@@ -120,7 +117,7 @@ export class ThySidebarComponent {
|
|
|
120
117
|
this.thyCollapsedChange.emit(this.isCollapsed);
|
|
121
118
|
}
|
|
122
119
|
}
|
|
123
|
-
ThySidebarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ThySidebarComponent, deps: [{ token: i1.ThyLayoutComponent, host: true, optional: true }, { token: i0.ElementRef }
|
|
120
|
+
ThySidebarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ThySidebarComponent, deps: [{ token: i1.ThyLayoutComponent, host: true, optional: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
124
121
|
ThySidebarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: ThySidebarComponent, selector: "thy-sidebar", inputs: { thyWidth: "thyWidth", thyHasBorderRight: "thyHasBorderRight", thyIsolated: "thyIsolated", thyDraggable: "thyDraggable", thyDragMaxWidth: "thyDragMaxWidth", thyTrigger: "thyTrigger", thyCollapsible: "thyCollapsible", thyCollapsed: "thyCollapsed", thyCollapsedWidth: "thyCollapsedWidth", thyTheme: "thyTheme" }, outputs: { thyCollapsedChange: "thyCollapsedChange", thyDragWidthChange: "thyDragWidthChange" }, host: { properties: { "class.thy-layout-sidebar": "this.thyLayoutSidebarClass", "class.thy-layout-sidebar--clear-border-right": "this.thyLayoutSidebarClearBorderRightClass", "class.sidebar-theme-light": "this.sidebarThemeLight", "class.sidebar-theme-dark": "this.sidebarThemeDark", "style.width.px": "this.sidebarWidth", "class.thy-layout-sidebar-isolated": "this.sidebarIsolated", "class.sidebar-collapse-show": "this.collapseVisibility", "class.remove-transition": "this.removeTransition" } }, ngImport: i0, template: `
|
|
125
122
|
<ng-content></ng-content>
|
|
126
123
|
<div
|
|
@@ -152,7 +149,6 @@ ThySidebarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
|
|
|
152
149
|
[ngClass]="{ 'collapse-visible': collapseVisible, 'collapse-hidden': collapseHidden }"
|
|
153
150
|
(click)="toggleCollapse($event)"
|
|
154
151
|
[thyHotkey]="'Control+/,Meta+/'"
|
|
155
|
-
[thyHotkeyScope]="dialogContainerComponent && dialogContainerComponent.elementRef.nativeElement"
|
|
156
152
|
[thyTooltip]="!thyTrigger && collapseTip"
|
|
157
153
|
>
|
|
158
154
|
<ng-template [ngTemplateOutlet]="thyTrigger || defaultTrigger"></ng-template>
|
|
@@ -160,7 +156,7 @@ ThySidebarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
|
|
|
160
156
|
<thy-icon class="sidebar-collapse-icon" [thyIconName]="this.thyCollapsed ? 'indent' : 'outdent'"></thy-icon>
|
|
161
157
|
</ng-template>
|
|
162
158
|
</div>
|
|
163
|
-
`, isInline: true, dependencies: [{ kind: "directive", type:
|
|
159
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: i4.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "directive", type: i5.ThyResizableDirective, selector: "[thyResizable]", inputs: ["thyBounds", "thyMaxHeight", "thyMaxWidth", "thyMinHeight", "thyMinWidth", "thyGridColumnCount", "thyMaxColumn", "thyMinColumn", "thyLockAspectRatio", "thyPreview", "thyDisabled"], outputs: ["thyResize", "thyResizeEnd", "thyResizeStart"] }, { kind: "component", type: i5.ThyResizeHandleComponent, selector: "thy-resize-handle, [thy-resize-handle]", inputs: ["thyDirection", "thyLine"], outputs: ["thyMouseDown"], exportAs: ["thyResizeHandle"] }, { kind: "directive", type: i6.ThyHotkeyDirective, selector: "[thyHotkey]", inputs: ["thyHotkey", "thyHotkeyScope"], outputs: ["thyHotkeyListener"] }] });
|
|
164
160
|
__decorate([
|
|
165
161
|
InputBoolean(),
|
|
166
162
|
__metadata("design:type", Boolean)
|
|
@@ -210,7 +206,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
210
206
|
[ngClass]="{ 'collapse-visible': collapseVisible, 'collapse-hidden': collapseHidden }"
|
|
211
207
|
(click)="toggleCollapse($event)"
|
|
212
208
|
[thyHotkey]="'Control+/,Meta+/'"
|
|
213
|
-
[thyHotkeyScope]="dialogContainerComponent && dialogContainerComponent.elementRef.nativeElement"
|
|
214
209
|
[thyTooltip]="!thyTrigger && collapseTip"
|
|
215
210
|
>
|
|
216
211
|
<ng-template [ngTemplateOutlet]="thyTrigger || defaultTrigger"></ng-template>
|
|
@@ -224,9 +219,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
224
219
|
type: Optional
|
|
225
220
|
}, {
|
|
226
221
|
type: Host
|
|
227
|
-
}] }, { type: i0.ElementRef },
|
|
228
|
-
type: Optional
|
|
229
|
-
}] }]; }, propDecorators: { thyLayoutSidebarClass: [{
|
|
222
|
+
}] }, { type: i0.ElementRef }]; }, propDecorators: { thyLayoutSidebarClass: [{
|
|
230
223
|
type: HostBinding,
|
|
231
224
|
args: ['class.thy-layout-sidebar']
|
|
232
225
|
}], thyLayoutSidebarClearBorderRightClass: [{
|
|
@@ -278,4 +271,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
278
271
|
type: HostBinding,
|
|
279
272
|
args: ['class.remove-transition']
|
|
280
273
|
}] } });
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGF5b3V0L3NpZGViYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFVLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckksT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7QUFFaEUsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO0FBQ3JCLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO0FBK0NsQyxNQUFNLE9BQU8sbUJBQW1CO0lBOEY1QixZQUNnQyxrQkFBc0MsRUFDM0QsVUFBc0IsRUFDVix3QkFBcUQ7UUFGNUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUMzRCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ1YsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUE2QjtRQWhHbkMsMEJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBRVQsMENBQXFDLEdBQUcsS0FBSyxDQUFDO1FBRWpFLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUUzQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFZaEIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFvQmpELGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBSTlDLGVBQVUsR0FBd0MsU0FBUyxDQUFDO1FBR3JFLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7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O3NCQURyQixXQUFXO3VCQUFDLDZCQUE2QjtnQkFNdEMsZ0JBQWdCO3NCQURuQixXQUFXO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIEhvc3QsIE9wdGlvbmFsLCBPbkluaXQsIElucHV0LCBFbGVtZW50UmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeUxheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeVJlc2l6ZUV2ZW50IH0gZnJvbSAnbmd4LXRldGh5cy9yZXNpemFibGUnO1xuaW1wb3J0IHsgVGh5RGlhbG9nQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnbmd4LXRldGh5cy9kaWFsb2cnO1xuXG5jb25zdCBMR19XSURUSCA9IDMwMDtcbmNvbnN0IFNJREVCQVJfREVGQVVMVF9XSURUSCA9IDI0MDtcblxuZXhwb3J0IHR5cGUgVGh5U2lkZWJhclRoZW1lID0gJ3doaXRlJyB8ICdsaWdodCcgfCAnZGFyayc7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1zaWRlYmFyJyxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIHRoeVJlc2l6YWJsZVxuICAgICAgICAgICAgY2xhc3M9XCJzaWRlYmFyLWRyYWdcIlxuICAgICAgICAgICAgKm5nSWY9XCJ0aHlEcmFnZ2FibGVcIlxuICAgICAgICAgICAgdGh5Qm91bmRzPVwid2luZG93XCJcbiAgICAgICAgICAgIFt0aHlNYXhXaWR0aF09XCJ0aHlEcmFnTWF4V2lkdGhcIlxuICAgICAgICAgICAgW3RoeU1pbldpZHRoXT1cInRoeUNvbGxhcHNlZFdpZHRoXCJcbiAgICAgICAgICAgICh0aHlSZXNpemUpPVwicmVzaXplSGFuZGxlcigkZXZlbnQpXCJcbiAgICAgICAgICAgICh0aHlSZXNpemVTdGFydCk9XCJyZXNpemVTdGFydCgpXCJcbiAgICAgICAgICAgICh0aHlSZXNpemVFbmQpPVwicmVzaXplRW5kKClcIlxuICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiIWNvbGxhcHNlVmlzaWJsZSA/ICdjb250ZW50cycgOiBudWxsXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHRoeS1yZXNpemUtaGFuZGxlXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhdGh5Q29sbGFwc2VkXCJcbiAgICAgICAgICAgICAgICB0aHlEaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzaWRlYmFyLXJlc2l6ZS1oYW5kbGVcIlxuICAgICAgICAgICAgICAgIHRoeUxpbmU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJyZXNpemVIYW5kbGVIb3ZlcigkZXZlbnQsICdlbnRlcicpXCJcbiAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJyZXNpemVIYW5kbGVIb3ZlcigkZXZlbnQsICdsZWF2ZScpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvdGh5LXJlc2l6ZS1oYW5kbGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidGh5Q29sbGFwc2libGVcIiBjbGFzcz1cInNpZGViYXItY29sbGFwc2UtbGluZVwiPjwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cInRoeUNvbGxhcHNpYmxlICYmIHRoeVRyaWdnZXIgIT09IG51bGxcIlxuICAgICAgICAgICAgY2xhc3M9XCJzaWRlYmFyLWNvbGxhcHNlXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2NvbGxhcHNlLXZpc2libGUnOiBjb2xsYXBzZVZpc2libGUsICdjb2xsYXBzZS1oaWRkZW4nOiBjb2xsYXBzZUhpZGRlbiB9XCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDb2xsYXBzZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFt0aHlIb3RrZXldPVwiJ0NvbnRyb2wrLyxNZXRhKy8nXCJcbiAgICAgICAgICAgIFt0aHlIb3RrZXlTY29wZV09XCJkaWFsb2dDb250YWluZXJDb21wb25lbnQgJiYgZGlhbG9nQ29udGFpbmVyQ29tcG9uZW50LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFwiXG4gICAgICAgICAgICBbdGh5VG9vbHRpcF09XCIhdGh5VHJpZ2dlciAmJiBjb2xsYXBzZVRpcFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aHlUcmlnZ2VyIHx8IGRlZmF1bHRUcmlnZ2VyXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRyaWdnZXI+XG4gICAgICAgICAgICAgICAgPHRoeS1pY29uIGNsYXNzPVwic2lkZWJhci1jb2xsYXBzZS1pY29uXCIgW3RoeUljb25OYW1lXT1cInRoaXMudGh5Q29sbGFwc2VkID8gJ2luZGVudCcgOiAnb3V0ZGVudCdcIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBUaHlTaWRlYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1sYXlvdXQtc2lkZWJhcicpIHRoeUxheW91dFNpZGViYXJDbGFzcyA9IHRydWU7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1sYXlvdXQtc2lkZWJhci0tY2xlYXItYm9yZGVyLXJpZ2h0JykgdGh5TGF5b3V0U2lkZWJhckNsZWFyQm9yZGVyUmlnaHRDbGFzcyA9IGZhbHNlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zaWRlYmFyLXRoZW1lLWxpZ2h0Jykgc2lkZWJhclRoZW1lTGlnaHQgPSBmYWxzZTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3Muc2lkZWJhci10aGVtZS1kYXJrJykgc2lkZWJhclRoZW1lRGFyayA9IGZhbHNlO1xuXG4gICAgdGh5TGF5b3V0U2lkZWJhcldpZHRoOiBudW1iZXI7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoLnB4JykgZ2V0IHNpZGViYXJXaWR0aCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5Q29sbGFwc2libGUgJiYgdGhpcy50aHlDb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoeUNvbGxhcHNlZFdpZHRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGh5TGF5b3V0U2lkZWJhcldpZHRoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aHktbGF5b3V0LXNpZGViYXItaXNvbGF0ZWQnKSBzaWRlYmFySXNvbGF0ZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgndGh5V2lkdGgnKVxuICAgIHNldCB0aHlXaWR0aCh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJ2xnJykge1xuICAgICAgICAgICAgdmFsdWUgPSBMR19XSURUSDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRoeUxheW91dFNpZGViYXJXaWR0aCA9IHZhbHVlIHx8IFNJREVCQVJfREVGQVVMVF9XSURUSDtcbiAgICB9XG5cbiAgICBASW5wdXQoJ3RoeUhhc0JvcmRlclJpZ2h0JylcbiAgICBzZXQgdGh5SGFzQm9yZGVyUmlnaHQodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRoeUxheW91dFNpZGViYXJDbGVhckJvcmRlclJpZ2h0Q2xhc3MgPSAhY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoJ3RoeUlzb2xhdGVkJylcbiAgICBzZXQgdGh5SXNvbGF0ZWQodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNpZGViYXJJc29sYXRlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHRoeURyYWdnYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgdGh5RHJhZ01heFdpZHRoOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKSB0aHlUcmlnZ2VyOiBudWxsIHwgdW5kZWZpbmVkIHwgVGVtcGxhdGVSZWY8YW55PiA9IHVuZGVmaW5lZDtcblxuICAgIEBPdXRwdXQoKVxuICAgIHRoeUNvbGxhcHNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHRoeURyYWdXaWR0aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHRoeUNvbGxhcHNpYmxlID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgc2V0IHRoeUNvbGxhcHNlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzQ29sbGFwc2VkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IHRoeUNvbGxhcHNlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNDb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgQElucHV0KCkgdGh5Q29sbGFwc2VkV2lkdGggPSAyMDtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVRoZW1lKHZhbHVlOiBUaHlTaWRlYmFyVGhlbWUpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSAnbGlnaHQnKSB7XG4gICAgICAgICAgICB0aGlzLnNpZGViYXJUaGVtZUxpZ2h0ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gJ2RhcmsnKSB7XG4gICAgICAgICAgICB0aGlzLnNpZGViYXJUaGVtZURhcmsgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zaWRlYmFyLWNvbGxhcHNlLXNob3cnKVxuICAgIGdldCBjb2xsYXBzZVZpc2liaWxpdHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRoeUNvbGxhcHNlZDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJlbW92ZS10cmFuc2l0aW9uJylcbiAgICBnZXQgcmVtb3ZlVHJhbnNpdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNSZW1vdmVUcmFuc2l0aW9uO1xuICAgIH1cblxuICAgIGNvbGxhcHNlVGlwOiBzdHJpbmc7XG5cbiAgICBpc0NvbGxhcHNlZCA9IGZhbHNlO1xuXG4gICAgb3JpZ2luV2lkdGg6IG51bWJlciA9IFNJREVCQVJfREVGQVVMVF9XSURUSDtcblxuICAgIGNvbGxhcHNlVmlzaWJsZTogYm9vbGVhbjtcblxuICAgIGNvbGxhcHNlSGlkZGVuOiBib29sZWFuO1xuXG4gICAgaXNSZW1vdmVUcmFuc2l0aW9uOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgcHJpdmF0ZSB0aHlMYXlvdXRDb21wb25lbnQ6IFRoeUxheW91dENvbXBvbmVudCxcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHB1YmxpYyBkaWFsb2dDb250YWluZXJDb21wb25lbnQ6IFRoeURpYWxvZ0NvbnRhaW5lckNvbXBvbmVudFxuICAgICkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy50aHlMYXlvdXRDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudGh5TGF5b3V0Q29tcG9uZW50Lmhhc1NpZGViYXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlQ29sbGFwc2VUaXAoKTtcbiAgICB9XG5cbiAgICByZXNpemVIYW5kbGVyKHsgd2lkdGggfTogVGh5UmVzaXplRXZlbnQpIHtcbiAgICAgICAgaWYgKHdpZHRoID09PSB0aGlzLnRoeUxheW91dFNpZGViYXJXaWR0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRoeUNvbGxhcHNpYmxlICYmIHdpZHRoIDwgdGhpcy50aHlDb2xsYXBzZWRXaWR0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRoeUNvbGxhcHNpYmxlICYmIHdpZHRoID09PSB0aGlzLnRoeUNvbGxhcHNlZFdpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLnRoeUNvbGxhcHNlZCA9IHRydWU7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlQ29sbGFwc2VUaXAoKSwgMjAwKTtcbiAgICAgICAgICAgIHRoaXMudGh5Q29sbGFwc2VkQ2hhbmdlLmVtaXQodGhpcy5pc0NvbGxhcHNlZCk7XG4gICAgICAgICAgICB0aGlzLnRoeUxheW91dFNpZGViYXJXaWR0aCA9IHRoaXMub3JpZ2luV2lkdGg7XG4gICAgICAgICAgICB0aGlzLmNvbGxhcHNlVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGh5TGF5b3V0U2lkZWJhcldpZHRoID0gd2lkdGg7XG4gICAgICAgIHRoaXMudGh5RHJhZ1dpZHRoQ2hhbmdlLmVtaXQod2lkdGgpO1xuICAgIH1cblxuICAgIHJlc2l6ZVN0YXJ0KCkge1xuICAgICAgICB0aGlzLm9yaWdpbldpZHRoID0gdGhpcy50aHlMYXlvdXRTaWRlYmFyV2lkdGg7XG4gICAgICAgIHRoaXMuY29sbGFwc2VIaWRkZW4gPSB0cnVlO1xuICAgICAgICB0aGlzLmlzUmVtb3ZlVHJhbnNpdGlvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgcmVzaXplRW5kKCkge1xuICAgICAgICB0aGlzLmNvbGxhcHNlSGlkZGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNSZW1vdmVUcmFuc2l0aW9uID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmVzaXplSGFuZGxlSG92ZXIoZXZlbnQ6IE1vdXNlRXZlbnQsIHR5cGU6ICdlbnRlcicgfCAnbGVhdmUnKSB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VWaXNpYmxlID0gdHlwZSA9PT0gJ2VudGVyJyA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNvbGxhcHNlVGlwKCkge1xuICAgICAgICBjb25zdCBpc01hYyA9IC9tYWNpbnRvc2h8bWFjIG9zIHgvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgICAgICB0aGlzLmNvbGxhcHNlVGlwID0gdGhpcy50aHlDb2xsYXBzZWQgPyAn5bGV5byAJyA6ICfmlLbotbcnO1xuICAgICAgICB0aGlzLmNvbGxhcHNlVGlwID0gdGhpcy5jb2xsYXBzZVRpcCArIChpc01hYyA/IGDvvIjijJggKyAvKWAgOiBg77yIQ3RybCArIC8pYCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlQ29sbGFwc2UoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy50aHlDb2xsYXBzZWQgPSAhdGhpcy50aHlDb2xsYXBzZWQ7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVDb2xsYXBzZVRpcCgpLCAyMDApO1xuICAgICAgICB0aGlzLnRoeUNvbGxhcHNlZENoYW5nZS5lbWl0KHRoaXMuaXNDb2xsYXBzZWQpO1xuICAgIH1cbn1cbiJdfQ==
|
|
274
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGF5b3V0L3NpZGViYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFVLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckksT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7OztBQUcvQyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFDckIsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLENBQUM7QUE4Q2xDLE1BQU0sT0FBTyxtQkFBbUI7SUE4RjVCLFlBQXdDLGtCQUFzQyxFQUFTLFVBQXNCO1FBQXJFLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBN0ZwRSwwQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFFVCwwQ0FBcUMsR0FBRyxLQUFLLENBQUM7UUFFakUsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRTNCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQVloQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQW9CakQsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFJOUMsZUFBVSxHQUF3QyxTQUFTLENBQUM7UUFHckUsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUdqRCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXZCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBVXZDLHNCQUFpQixHQUFHLEVBQUUsQ0FB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SG9zdEJpbmRpbmcsIEhvc3QsIE9wdGlvbmFsLCBPbkluaXQsIElucHV0LCBFbGVtZW50UmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeUxheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeVJlc2l6ZUV2ZW50IH0gZnJvbSAnbmd4LXRldGh5cy9yZXNpemFibGUnO1xuXG5jb25zdCBMR19XSURUSCA9IDMwMDtcbmNvbnN0IFNJREVCQVJfREVGQVVMVF9XSURUSCA9IDI0MDtcblxuZXhwb3J0IHR5cGUgVGh5U2lkZWJhclRoZW1lID0gJ3doaXRlJyB8ICdsaWdodCcgfCAnZGFyayc7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1zaWRlYmFyJyxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIHRoeVJlc2l6YWJsZVxuICAgICAgICAgICAgY2xhc3M9XCJzaWRlYmFyLWRyYWdcIlxuICAgICAgICAgICAgKm5nSWY9XCJ0aHlEcmFnZ2FibGVcIlxuICAgICAgICAgICAgdGh5Qm91bmRzPVwid2luZG93XCJcbiAgICAgICAgICAgIFt0aHlNYXhXaWR0aF09XCJ0aHlEcmFnTWF4V2lkdGhcIlxuICAgICAgICAgICAgW3RoeU1pbldpZHRoXT1cInRoeUNvbGxhcHNlZFdpZHRoXCJcbiAgICAgICAgICAgICh0aHlSZXNpemUpPVwicmVzaXplSGFuZGxlcigkZXZlbnQpXCJcbiAgICAgICAgICAgICh0aHlSZXNpemVTdGFydCk9XCJyZXNpemVTdGFydCgpXCJcbiAgICAgICAgICAgICh0aHlSZXNpemVFbmQpPVwicmVzaXplRW5kKClcIlxuICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiIWNvbGxhcHNlVmlzaWJsZSA/ICdjb250ZW50cycgOiBudWxsXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHRoeS1yZXNpemUtaGFuZGxlXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhdGh5Q29sbGFwc2VkXCJcbiAgICAgICAgICAgICAgICB0aHlEaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzaWRlYmFyLXJlc2l6ZS1oYW5kbGVcIlxuICAgICAgICAgICAgICAgIHRoeUxpbmU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJyZXNpemVIYW5kbGVIb3ZlcigkZXZlbnQsICdlbnRlcicpXCJcbiAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJyZXNpemVIYW5kbGVIb3ZlcigkZXZlbnQsICdsZWF2ZScpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvdGh5LXJlc2l6ZS1oYW5kbGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidGh5Q29sbGFwc2libGVcIiBjbGFzcz1cInNpZGViYXItY29sbGFwc2UtbGluZVwiPjwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cInRoeUNvbGxhcHNpYmxlICYmIHRoeVRyaWdnZXIgIT09IG51bGxcIlxuICAgICAgICAgICAgY2xhc3M9XCJzaWRlYmFyLWNvbGxhcHNlXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2NvbGxhcHNlLXZpc2libGUnOiBjb2xsYXBzZVZpc2libGUsICdjb2xsYXBzZS1oaWRkZW4nOiBjb2xsYXBzZUhpZGRlbiB9XCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDb2xsYXBzZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFt0aHlIb3RrZXldPVwiJ0NvbnRyb2wrLyxNZXRhKy8nXCJcbiAgICAgICAgICAgIFt0aHlUb29sdGlwXT1cIiF0aHlUcmlnZ2VyICYmIGNvbGxhcHNlVGlwXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRoeVRyaWdnZXIgfHwgZGVmYXVsdFRyaWdnZXJcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VHJpZ2dlcj5cbiAgICAgICAgICAgICAgICA8dGh5LWljb24gY2xhc3M9XCJzaWRlYmFyLWNvbGxhcHNlLWljb25cIiBbdGh5SWNvbk5hbWVdPVwidGhpcy50aHlDb2xsYXBzZWQgPyAnaW5kZW50JyA6ICdvdXRkZW50J1wiPjwvdGh5LWljb24+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICBgXG59KVxuZXhwb3J0IGNsYXNzIFRoeVNpZGViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MudGh5LWxheW91dC1zaWRlYmFyJykgdGh5TGF5b3V0U2lkZWJhckNsYXNzID0gdHJ1ZTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MudGh5LWxheW91dC1zaWRlYmFyLS1jbGVhci1ib3JkZXItcmlnaHQnKSB0aHlMYXlvdXRTaWRlYmFyQ2xlYXJCb3JkZXJSaWdodENsYXNzID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNpZGViYXItdGhlbWUtbGlnaHQnKSBzaWRlYmFyVGhlbWVMaWdodCA9IGZhbHNlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zaWRlYmFyLXRoZW1lLWRhcmsnKSBzaWRlYmFyVGhlbWVEYXJrID0gZmFsc2U7XG5cbiAgICB0aHlMYXlvdXRTaWRlYmFyV2lkdGg6IG51bWJlcjtcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgucHgnKSBnZXQgc2lkZWJhcldpZHRoKCkge1xuICAgICAgICBpZiAodGhpcy50aHlDb2xsYXBzaWJsZSAmJiB0aGlzLnRoeUNvbGxhcHNlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGh5Q29sbGFwc2VkV2lkdGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50aHlMYXlvdXRTaWRlYmFyV2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1sYXlvdXQtc2lkZWJhci1pc29sYXRlZCcpIHNpZGViYXJJc29sYXRlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KCd0aHlXaWR0aCcpXG4gICAgc2V0IHRoeVdpZHRoKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSAnbGcnKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IExHX1dJRFRIO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGh5TGF5b3V0U2lkZWJhcldpZHRoID0gdmFsdWUgfHwgU0lERUJBUl9ERUZBVUxUX1dJRFRIO1xuICAgIH1cblxuICAgIEBJbnB1dCgndGh5SGFzQm9yZGVyUmlnaHQnKVxuICAgIHNldCB0aHlIYXNCb3JkZXJSaWdodCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudGh5TGF5b3V0U2lkZWJhckNsZWFyQm9yZGVyUmlnaHRDbGFzcyA9ICFjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgndGh5SXNvbGF0ZWQnKVxuICAgIHNldCB0aHlJc29sYXRlZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2lkZWJhcklzb2xhdGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgdGh5RHJhZ2dhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSB0aHlEcmFnTWF4V2lkdGg6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpIHRoeVRyaWdnZXI6IG51bGwgfCB1bmRlZmluZWQgfCBUZW1wbGF0ZVJlZjxhbnk+ID0gdW5kZWZpbmVkO1xuXG4gICAgQE91dHB1dCgpXG4gICAgdGh5Q29sbGFwc2VkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgdGh5RHJhZ1dpZHRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgdGh5Q29sbGFwc2libGUgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzZXQgdGh5Q29sbGFwc2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNDb2xsYXBzZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgdGh5Q29sbGFwc2VkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0NvbGxhcHNlZDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSB0aHlDb2xsYXBzZWRXaWR0aCA9IDIwO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5VGhlbWUodmFsdWU6IFRoeVNpZGViYXJUaGVtZSkge1xuICAgICAgICBpZiAodmFsdWUgPT09ICdsaWdodCcpIHtcbiAgICAgICAgICAgIHRoaXMuc2lkZWJhclRoZW1lTGlnaHQgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID09PSAnZGFyaycpIHtcbiAgICAgICAgICAgIHRoaXMuc2lkZWJhclRoZW1lRGFyayA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNpZGViYXItY29sbGFwc2Utc2hvdycpXG4gICAgZ2V0IGNvbGxhcHNlVmlzaWJpbGl0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGh5Q29sbGFwc2VkO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MucmVtb3ZlLXRyYW5zaXRpb24nKVxuICAgIGdldCByZW1vdmVUcmFuc2l0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1JlbW92ZVRyYW5zaXRpb247XG4gICAgfVxuXG4gICAgY29sbGFwc2VUaXA6IHN0cmluZztcblxuICAgIGlzQ29sbGFwc2VkID0gZmFsc2U7XG5cbiAgICBvcmlnaW5XaWR0aDogbnVtYmVyID0gU0lERUJBUl9ERUZBVUxUX1dJRFRIO1xuXG4gICAgY29sbGFwc2VWaXNpYmxlOiBib29sZWFuO1xuXG4gICAgY29sbGFwc2VIaWRkZW46IGJvb2xlYW47XG5cbiAgICBpc1JlbW92ZVRyYW5zaXRpb246IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgdGh5TGF5b3V0Q29tcG9uZW50OiBUaHlMYXlvdXRDb21wb25lbnQsIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLnRoeUxheW91dENvbXBvbmVudCkge1xuICAgICAgICAgICAgdGhpcy50aHlMYXlvdXRDb21wb25lbnQuaGFzU2lkZWJhciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVDb2xsYXBzZVRpcCgpO1xuICAgIH1cblxuICAgIHJlc2l6ZUhhbmRsZXIoeyB3aWR0aCB9OiBUaHlSZXNpemVFdmVudCkge1xuICAgICAgICBpZiAod2lkdGggPT09IHRoaXMudGh5TGF5b3V0U2lkZWJhcldpZHRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudGh5Q29sbGFwc2libGUgJiYgd2lkdGggPCB0aGlzLnRoeUNvbGxhcHNlZFdpZHRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudGh5Q29sbGFwc2libGUgJiYgd2lkdGggPT09IHRoaXMudGh5Q29sbGFwc2VkV2lkdGgpIHtcbiAgICAgICAgICAgIHRoaXMudGh5Q29sbGFwc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVDb2xsYXBzZVRpcCgpLCAyMDApO1xuICAgICAgICAgICAgdGhpcy50aHlDb2xsYXBzZWRDaGFuZ2UuZW1pdCh0aGlzLmlzQ29sbGFwc2VkKTtcbiAgICAgICAgICAgIHRoaXMudGh5TGF5b3V0U2lkZWJhcldpZHRoID0gdGhpcy5vcmlnaW5XaWR0aDtcbiAgICAgICAgICAgIHRoaXMuY29sbGFwc2VWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50aHlMYXlvdXRTaWRlYmFyV2lkdGggPSB3aWR0aDtcbiAgICAgICAgdGhpcy50aHlEcmFnV2lkdGhDaGFuZ2UuZW1pdCh3aWR0aCk7XG4gICAgfVxuXG4gICAgcmVzaXplU3RhcnQoKSB7XG4gICAgICAgIHRoaXMub3JpZ2luV2lkdGggPSB0aGlzLnRoeUxheW91dFNpZGViYXJXaWR0aDtcbiAgICAgICAgdGhpcy5jb2xsYXBzZUhpZGRlbiA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNSZW1vdmVUcmFuc2l0aW9uID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXNpemVFbmQoKSB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VIaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc1JlbW92ZVRyYW5zaXRpb24gPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXNpemVIYW5kbGVIb3ZlcihldmVudDogTW91c2VFdmVudCwgdHlwZTogJ2VudGVyJyB8ICdsZWF2ZScpIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzZVZpc2libGUgPSB0eXBlID09PSAnZW50ZXInID8gdHJ1ZSA6IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQ29sbGFwc2VUaXAoKSB7XG4gICAgICAgIGNvbnN0IGlzTWFjID0gL21hY2ludG9zaHxtYWMgb3MgeC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG4gICAgICAgIHRoaXMuY29sbGFwc2VUaXAgPSB0aGlzLnRoeUNvbGxhcHNlZCA/ICflsZXlvIAnIDogJ+aUtui1tyc7XG4gICAgICAgIHRoaXMuY29sbGFwc2VUaXAgPSB0aGlzLmNvbGxhcHNlVGlwICsgKGlzTWFjID8gYO+8iOKMmCArIC8pYCA6IGDvvIhDdHJsICsgLylgKTtcbiAgICB9XG5cbiAgICB0b2dnbGVDb2xsYXBzZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLnRoeUNvbGxhcHNlZCA9ICF0aGlzLnRoeUNvbGxhcHNlZDtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnVwZGF0ZUNvbGxhcHNlVGlwKCksIDIwMCk7XG4gICAgICAgIHRoaXMudGh5Q29sbGFwc2VkQ2hhbmdlLmVtaXQodGhpcy5pc0NvbGxhcHNlZCk7XG4gICAgfVxufVxuIl19
|
package/esm2020/version.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Version } from '@angular/core';
|
|
2
|
-
export const VERSION = new Version('14.2.0
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
export const VERSION = new Version('14.2.0');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcxNC4yLjAnKTtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-dialog.mjs","sources":["../../../src/dialog/confirm/token.ts","../../../src/dialog/dialog-animations.ts","../../../src/dialog/dialog.options.ts","../../../src/dialog/dialog.config.ts","../../../src/dialog/dialog-container.component.ts","../../../src/dialog/dialog-ref.ts","../../../src/dialog/dialog.service.ts","../../../src/dialog/body/dialog-body.component.ts","../../../src/dialog/confirm.config.ts","../../../src/dialog/header/dialog-header.component.ts","../../../src/dialog/header/dialog-header.component.html","../../../src/dialog/confirm/confirm.component.ts","../../../src/dialog/confirm/confirm.component.html","../../../src/dialog/footer/dialog-footer.component.ts","../../../src/dialog/footer/dialog-footer.component.html","../../../src/dialog/dialog.module.ts","../../../src/dialog/ngx-tethys-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport interface ThyConfirmAbstractComponent {\n okText: string;\n okType: string;\n cancelText: string;\n okLoadingText: string;\n}\n\nexport const THY_CONFIRM_COMPONENT_TOKEN = new InjectionToken<ThyConfirmAbstractComponent>('thy-confirm-component-token');\n","import { animate, state, style, transition, trigger, AnimationTriggerMetadata } from '@angular/animations';\n\nconst animationBody = [\n // Note: The `enter` animation transitions to `transform: none`, because for some reason\n // specifying the transform explicitly, causes IE both to blur the dialog content and\n // decimate the animation performance. Leaving it as `none` solves both issues. translate(-300px,-100px)\n state('void, exit', style({ opacity: 0, transform: 'scale(0.1)' })),\n state('enter', style({ transform: 'none' })),\n transition('* => enter', animate('200ms cubic-bezier(0, 0, 0.57, 1)', style({ transform: 'none', opacity: 1 }))),\n transition('* => exit', animate('150ms cubic-bezier(0.24, 0.18, 0.96, 0.52)', style({ transform: 'scale(0.3)', opacity: 0 })))\n];\n\n/**\n * Animations used by MatDialog.\n * @docs-private\n */\nexport const thyDialogAnimations: {\n readonly dialogContainer: AnimationTriggerMetadata;\n} = {\n dialogContainer: trigger('dialogContainer', animationBody)\n};\n\n// export const setAnimationStart\n","import { ThyAbstractOverlayOptions } from 'ngx-tethys/core';\n\nexport const dialogAbstractOverlayOptions: ThyAbstractOverlayOptions = {\n name: 'dialog',\n animationEnabled: true,\n disposeWhenClose: true\n};\n","import { ThyAbstractOverlayConfig, ThyAbstractOverlayPosition } from 'ngx-tethys/core';\n\nimport { ScrollStrategy } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\n\n/** Valid ARIA roles for a dialog element. */\nexport type ThyDialogRole = 'dialog' | 'alertdialog';\n\nexport enum ThyDialogSizes {\n lg = 'lg',\n /**\n * 已废弃,命名错误,请使用 superLg\n * @deprecated\n */\n supperLg = 'supper-lg',\n superLg = 'super-lg',\n maxLg = 'max-lg',\n md = 'md',\n sm = 'sm',\n full = 'full'\n}\n\n/**\n * Configuration for opening a modal dialog with the ThyDialog service.\n */\nexport class ThyDialogConfig<TData = unknown> extends ThyAbstractOverlayConfig<TData> {\n /** The ARIA role of the dialog element. */\n role?: ThyDialogRole = 'dialog';\n\n /** Position overrides. */\n position?: ThyAbstractOverlayPosition;\n\n /** Dialog size md, lg, sm*/\n size?: ThyDialogSizes;\n\n /** Scroll strategy to be used for the dialog. */\n scrollStrategy?: ScrollStrategy;\n}\n\n/** Injection token that can be used to specify default dialog options. */\nexport const THY_DIALOG_DEFAULT_OPTIONS = new InjectionToken<ThyDialogConfig>('thy-dialog-default-options');\n\nexport const THY_DIALOG_DEFAULT_OPTIONS_PROVIDER = {\n provide: THY_DIALOG_DEFAULT_OPTIONS,\n useValue: {\n role: 'dialog',\n hasBackdrop: true,\n backdropClass: '',\n panelClass: '',\n backdropClosable: true,\n closeOnNavigation: true,\n autoFocus: true,\n restoreFocus: true,\n hostClass: 'thy-dialog-content'\n }\n};\n\nexport type ThyDialogFooterAlign = 'left' | 'right' | 'center';\n\nexport class ThyDialogLayoutConfig {\n footerAlign?: ThyDialogFooterAlign;\n footerDivided?: boolean;\n}\n\nexport const THY_DIALOG_LAYOUT_CONFIG = new InjectionToken<ThyDialogLayoutConfig>('thy-dialog-layout-config');\n\nexport const THY_DIALOG_LAYOUT_CONFIG_PROVIDER = {\n provide: THY_DIALOG_LAYOUT_CONFIG,\n useValue: {\n footerAlign: 'left',\n footerDivided: false\n }\n};\n","import { reqAnimFrame, ThyAbstractOverlayContainer, ThyClickPositioner } from 'ngx-tethys/core';\nimport { Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { AnimationEvent } from '@angular/animations';\nimport { FocusTrap, FocusTrapFactory } from '@angular/cdk/a11y';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n NgZone,\n OnDestroy,\n ViewChild\n} from '@angular/core';\n\nimport { thyDialogAnimations } from './dialog-animations';\nimport { ThyDialogConfig } from './dialog.config';\nimport { dialogAbstractOverlayOptions } from './dialog.options';\n\n@Component({\n selector: 'thy-dialog-container',\n template: `\n <ng-template cdkPortalOutlet></ng-template>\n `,\n // Using OnPush for dialogs caused some sync issues, e.g. custom ngModel can't to detect changes\n // Disabled until we can track them down.\n changeDetection: ChangeDetectionStrategy.Default,\n animations: [thyDialogAnimations.dialogContainer],\n host: {\n class: 'thy-dialog-container',\n tabindex: '-1',\n 'aria-modal': 'true',\n '[attr.id]': 'id',\n '[attr.role]': 'config.role',\n '[attr.aria-labelledby]': 'config.ariaLabel ? null : ariaLabelledBy',\n '[attr.aria-label]': 'config.ariaLabel',\n '[attr.aria-describedby]': 'config.ariaDescribedBy || null',\n '[@dialogContainer]': 'animationState',\n '(@dialogContainer.start)': 'onAnimationStart($event)',\n '(@dialogContainer.done)': 'onAnimationDone($event)'\n }\n})\nexport class ThyDialogContainerComponent extends ThyAbstractOverlayContainer implements OnDestroy {\n animationOpeningDone: Observable<AnimationEvent>;\n animationClosingDone: Observable<AnimationEvent>;\n\n @ViewChild(CdkPortalOutlet, { static: true })\n portalOutlet: CdkPortalOutlet;\n\n @HostBinding(`attr.id`)\n id: string;\n\n /** State of the dialog animation. */\n animationState: 'void' | 'enter' | 'exit' = 'void';\n\n /** Emits when an animation state changes. */\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n /** ID of the element that should be considered as the dialog's label. */\n ariaLabelledBy: string | null = null;\n\n /** Element that was focused before the dialog was opened. Save this to restore upon close. */\n private elementFocusedBeforeDialogWasOpened: HTMLElement | null = null;\n\n /** The class that traps and manages focus within the dialog. */\n private focusTrap: FocusTrap;\n\n private savePreviouslyFocusedElement() {\n if (this.document) {\n this.elementFocusedBeforeDialogWasOpened = this.document.activeElement as HTMLElement;\n\n // Note that there is no focus method when rendering on the server.\n if (this.elementRef.nativeElement.focus) {\n // Note: this is being run outside of the Angular zone because `element.focus()` doesn't require\n // running change detection.\n this.ngZone.runOutsideAngular(() =>\n // Move focus onto the dialog immediately in order to prevent the user from accidentally\n // opening multiple dialogs at the same time. Needs to be async, because the element\n // may not be focusable immediately.\n\n // Note: `element.focus()` causes re-layout and this may lead to frame drop on slower devices.\n // https://gist.github.com/paulirish/5d52fb081b3570c81e3a#setting-focus\n // `setTimeout` is a macrotask and macrotasks are executed within the current rendering frame.\n // Animation tasks are executed within the next rendering frame.\n reqAnimFrame(() => this.elementRef.nativeElement.focus())\n );\n }\n }\n }\n\n /** Moves the focus inside the focus trap. */\n private trapFocus() {\n const element = this.elementRef.nativeElement;\n\n if (!this.focusTrap) {\n this.focusTrap = this.focusTrapFactory.create(element);\n }\n\n // If we were to attempt to focus immediately, then the content of the dialog would not yet be\n // ready in instances where change detection has to run first. To deal with this, we simply\n // wait for the microtask queue to be empty.\n if (this.config.autoFocus) {\n this.focusTrap.focusInitialElementWhenReady();\n } else {\n const activeElement = this.document.activeElement;\n\n // Otherwise ensure that focus is on the dialog container. It's possible that a different\n // component tried to move focus while the open animation was running. See:\n // https://github.com/angular/components/issues/16215. Note that we only want to do this\n // if the focus isn't inside the dialog already, because it's possible that the consumer\n // turned off `autoFocus` in order to move focus themselves.\n if (activeElement !== element && !element.contains(activeElement)) {\n element.focus();\n }\n }\n }\n\n private restoreFocus() {\n const toFocus = this.elementFocusedBeforeDialogWasOpened;\n\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (this.config.restoreFocus && toFocus && typeof toFocus.focus === 'function') {\n toFocus.focus();\n }\n\n if (this.focusTrap) {\n this.focusTrap.destroy();\n }\n }\n\n private setTransformOrigin() {\n this.clickPositioner.runTaskUseLastPosition(lastPosition => {\n if (lastPosition) {\n const containerElement: HTMLElement = this.elementRef.nativeElement;\n const transformOrigin = `${lastPosition.x - containerElement.offsetLeft}px ${lastPosition.y -\n containerElement.offsetTop}px 0px`;\n containerElement.style['transform-origin'] = transformOrigin;\n // 手动修改动画状态为从 void 到 enter, 开启动画\n }\n this.animationState = 'enter';\n });\n }\n\n constructor(\n public elementRef: ElementRef,\n @Inject(DOCUMENT) private document: any,\n public config: ThyDialogConfig,\n changeDetectorRef: ChangeDetectorRef,\n private clickPositioner: ThyClickPositioner,\n private focusTrapFactory: FocusTrapFactory,\n private ngZone: NgZone\n ) {\n super(dialogAbstractOverlayOptions, changeDetectorRef);\n this.animationOpeningDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'void';\n })\n );\n this.animationClosingDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'exit';\n })\n );\n }\n\n beforeAttachPortal(): void {\n this.setTransformOrigin();\n this.savePreviouslyFocusedElement();\n }\n\n /** Callback, invoked whenever an animation on the host completes. */\n onAnimationDone(event: AnimationEvent) {\n if (event.toState === 'void') {\n this.trapFocus();\n } else if (event.toState === 'exit') {\n this.restoreFocus();\n }\n this.animationStateChanged.emit(event);\n }\n\n /** Callback, invoked when an animation on the host starts. */\n onAnimationStart(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n ngOnDestroy() {\n super.destroy();\n }\n}\n","import { ThyAbstractInternalOverlayRef, ThyAbstractOverlayPosition, ThyAbstractOverlayRef } from 'ngx-tethys/core';\n\nimport { GlobalPositionStrategy, OverlayRef } from '@angular/cdk/overlay';\n\nimport { ThyDialogContainerComponent } from './dialog-container.component';\nimport { ThyDialogConfig } from './dialog.config';\nimport { dialogAbstractOverlayOptions } from './dialog.options';\n\nexport abstract class ThyDialogRef<T, TResult = unknown> extends ThyAbstractOverlayRef<T, ThyDialogContainerComponent, TResult> {}\n\nexport class ThyInternalDialogRef<T, TResult = unknown> extends ThyAbstractInternalOverlayRef<T, ThyDialogContainerComponent, TResult> {\n constructor(overlayRef: OverlayRef, containerInstance: ThyDialogContainerComponent, config: ThyDialogConfig<T>) {\n super(dialogAbstractOverlayOptions, overlayRef, containerInstance, config);\n }\n\n /**\n * Updates the dialog's position.\n * @param position New dialog position.\n */\n updatePosition(position?: ThyAbstractOverlayPosition): this {\n this.updateGlobalPosition(position);\n return this;\n }\n\n /**\n * Updates the dialog's width and height.\n * @param width New width of the dialog.\n * @param height New height of the dialog.\n */\n updateSizeAndPosition(width: string = '', height: string = '', position?: ThyAbstractOverlayPosition): this {\n (this.getPositionStrategy() as GlobalPositionStrategy).width(width).height(height);\n this.updatePosition(position);\n return this;\n }\n}\n","import { ThyAbstractOverlayRef, ThyAbstractOverlayService, ThyClickPositioner } from 'ngx-tethys/core';\nimport { of } from 'rxjs';\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType } from '@angular/cdk/portal';\nimport { Inject, Injectable, Injector, OnDestroy, Optional, StaticProvider, TemplateRef } from '@angular/core';\n\nimport { ThyConfirmConfig } from './confirm.config';\nimport { ThyConfirmAbstractComponent, THY_CONFIRM_COMPONENT_TOKEN } from './confirm/token';\nimport { ThyDialogContainerComponent } from './dialog-container.component';\nimport { ThyDialogRef, ThyInternalDialogRef } from './dialog-ref';\nimport { THY_DIALOG_DEFAULT_OPTIONS, ThyDialogConfig, ThyDialogSizes } from './dialog.config';\nimport { dialogAbstractOverlayOptions } from './dialog.options';\n\n@Injectable()\nexport class ThyDialog extends ThyAbstractOverlayService<ThyDialogConfig, ThyDialogContainerComponent> implements OnDestroy {\n protected buildOverlayConfig(config: ThyDialogConfig<any>): OverlayConfig {\n const size = config.size || ThyDialogSizes.md;\n const overlayConfig = this.buildBaseOverlayConfig(config, [`dialog-${size}`]);\n overlayConfig.positionStrategy = this.overlay.position().global();\n overlayConfig.scrollStrategy = config.scrollStrategy || this.overlay.scrollStrategies.block();\n return overlayConfig;\n }\n\n protected attachOverlayContainer(overlay: OverlayRef, config: ThyDialogConfig<any>): ThyDialogContainerComponent {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this.injector,\n providers: [{ provide: ThyDialogConfig, useValue: config }]\n });\n const containerPortal = new ComponentPortal(ThyDialogContainerComponent, config.viewContainerRef, injector);\n const containerRef = overlay.attach<ThyDialogContainerComponent>(containerPortal);\n\n return containerRef.instance;\n }\n\n protected createAbstractOverlayRef<T, TResult>(\n overlayRef: OverlayRef,\n containerInstance: ThyDialogContainerComponent,\n config: ThyDialogConfig<any>\n ): ThyAbstractOverlayRef<T, ThyDialogContainerComponent, TResult> {\n return new ThyInternalDialogRef(overlayRef, containerInstance, config);\n }\n\n protected createInjector<T>(\n config: ThyDialogConfig,\n dialogRef: ThyDialogRef<T>,\n dialogContainer: ThyDialogContainerComponent\n ): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n const injectionTokens: StaticProvider[] = [\n { provide: ThyDialogContainerComponent, useValue: dialogContainer },\n {\n provide: ThyDialogRef,\n useValue: dialogRef\n }\n ];\n\n if (config.direction && (!userInjector || !userInjector.get<Directionality | null>(Directionality, null))) {\n injectionTokens.push({\n provide: Directionality,\n useValue: {\n value: config.direction,\n change: of()\n }\n });\n }\n\n return Injector.create({ parent: userInjector || this.injector, providers: injectionTokens });\n }\n\n constructor(\n overlay: Overlay,\n injector: Injector,\n @Optional()\n @Inject(THY_DIALOG_DEFAULT_OPTIONS)\n defaultConfig: ThyDialogConfig,\n clickPositioner: ThyClickPositioner,\n @Inject(THY_CONFIRM_COMPONENT_TOKEN) private confirmComponentType: ComponentType<ThyConfirmAbstractComponent>\n ) {\n super(dialogAbstractOverlayOptions, overlay, injector, defaultConfig);\n clickPositioner.initialize();\n }\n\n open<T, TData = unknown, TResult = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: ThyDialogConfig<TData>\n ): ThyDialogRef<T, TResult> {\n const dialogRef = this.openOverlay(componentOrTemplateRef, config);\n const dialogRefInternal = dialogRef as ThyInternalDialogRef<T, TResult>;\n dialogRefInternal.updateSizeAndPosition(\n dialogRef.containerInstance.config.width,\n dialogRef.containerInstance.config.height,\n dialogRef.containerInstance.config.position\n );\n return dialogRef as ThyDialogRef<T, TResult>;\n }\n\n confirm(options: ThyConfirmConfig) {\n return this.open(this.confirmComponentType, {\n initialState: {\n options: options\n }\n });\n }\n\n getDialogById(id: string): ThyDialogRef<any> | undefined {\n return this.getAbstractOverlayById(id) as ThyDialogRef<any> | undefined;\n }\n\n getOpenedDialogs(): ThyDialogRef<any>[] {\n return this.getAbstractOverlays();\n }\n\n /**\n * Finds the closest ThyDialogRef to an element by looking at the DOM.\n */\n getClosestDialog(element: HTMLElement): ThyDialogRef<any> | undefined {\n let parent: HTMLElement | null = element.parentElement;\n\n while (parent && !parent.classList.contains('thy-dialog-container')) {\n parent = parent.parentElement;\n }\n if (parent && parent.id) {\n return this.getDialogById(parent.id);\n }\n return null;\n }\n\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ContentChild,\n TemplateRef,\n OnInit,\n HostBinding,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { ThyDialog } from '../dialog.service';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n@Component({\n selector: 'thy-dialog-body',\n template: '<ng-content></ng-content>',\n // changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'thyDialogBody'\n})\nexport class DialogBodyComponent implements OnInit {\n @HostBinding(`class.dialog-body`) _isDialogBody = true;\n\n @HostBinding(`class.dialog-body-clear-padding`)\n thyClearPaddingClassName = false;\n\n @Input()\n set thyClearPadding(value: string) {\n this.thyClearPaddingClassName = coerceBooleanProperty(value);\n }\n\n constructor(private dialog: ThyDialog) {}\n\n ngOnInit() {}\n}\n","import { InjectionToken } from '@angular/core';\nimport { ThyFormGroupFooterAlign } from 'ngx-tethys/form';\nimport { Observable } from 'rxjs';\n\nexport interface ThyConfirmConfig {\n title?: string;\n content: string;\n okText?: string;\n okType?: 'primary' | 'danger';\n okLoadingText?: string;\n footerAlign?: ThyFormGroupFooterAlign;\n onOk?: () => Observable<boolean> | void;\n cancelText?: string;\n onCancel?: void;\n}\n\nexport const THY_CONFIRM_DEFAULT_OPTIONS = new InjectionToken<ThyConfirmConfig>('thy-confirm-default-options');\n\nexport const THY_CONFIRM_DEFAULT_OPTIONS_VALUE = {\n title: '确认删除',\n okText: '确定',\n okType: 'danger',\n cancelText: '取消',\n footerAlign: 'left'\n};\n\nexport const THY_CONFIRM_DEFAULT_OPTIONS_PROVIDER = {\n provide: THY_CONFIRM_DEFAULT_OPTIONS,\n useValue: THY_CONFIRM_DEFAULT_OPTIONS_VALUE\n};\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ContentChild,\n TemplateRef,\n OnInit,\n HostBinding,\n ChangeDetectionStrategy,\n Optional,\n ElementRef\n} from '@angular/core';\nimport { ThyDialog } from '../dialog.service';\nimport { ThyDialogContainerComponent } from '../dialog-container.component';\nimport { InputBoolean, ThyTranslate } from 'ngx-tethys/core';\nimport { ThyInternalDialogRef } from '../dialog-ref';\n\n@Component({\n selector: 'thy-dialog-header',\n templateUrl: './dialog-header.component.html',\n // changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'thyDialogHeader',\n host: {\n class: 'dialog-header thy-dialog-header',\n '[class.thy-dialog-header-lg]': `thySize === 'lg'`,\n '[class.thy-dialog-header-divided]': `thyDivided`\n }\n})\nexport class DialogHeaderComponent implements OnInit {\n @ContentChild('dialogHeader')\n public headerTemplate: TemplateRef<any>;\n\n @Input() thyTitle: string;\n\n @Input() thySize: 'lg' | 'md';\n\n @Input() @InputBoolean() thyDivided: boolean;\n\n @Input()\n set thyTitleTranslationKey(key: string) {\n if (key && !this.thyTitle) {\n this.thyTitle = this.translate.instant(key);\n }\n }\n\n @Input() thyIcon: string;\n\n @Output() thyOnClose: EventEmitter<Event> = new EventEmitter<Event>();\n\n constructor(\n private elementRef: ElementRef,\n private dialog: ThyDialog,\n private translate: ThyTranslate,\n @Optional() private dialogContainer: ThyDialogContainerComponent\n ) {}\n\n ngOnInit() {\n if (!this.dialogContainer) {\n // When this directive is included in a dialog via TemplateRef (rather than being\n // in a Component), the ThyDialogContainerComponent isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the ThyDialogContainerComponent by\n // ID. This must occur in `onInit`, as the ID binding for the dialog container won't\n // be resolved at constructor time.\n const dialogRef = this.dialog.getClosestDialog(this.elementRef.nativeElement) as ThyInternalDialogRef<any>;\n this.dialogContainer = dialogRef ? dialogRef.containerInstance : null;\n }\n\n // change in next microtask avoid throw ExpressionChangedAfterItHasBeenCheckedError\n // because sub component change parent's HostBinding property (ariaLabelledBy)\n Promise.resolve().then(() => {\n if (this.dialogContainer) {\n this.dialogContainer.ariaLabelledBy = this.thyTitle;\n }\n });\n }\n\n close(event?: Event) {\n if (this.thyOnClose.observers.length > 0) {\n this.thyOnClose.emit(event);\n } else {\n this.dialog.close();\n }\n }\n}\n","<ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <template [ngTemplateOutlet]=\"headerTemplate\"></template>\n</ng-container>\n<ng-template #defaultHeader>\n <h3 class=\"dialog-title\"><thy-icon [thyIconName]=\"thyIcon\"></thy-icon>{{ thyTitle }}</h3>\n <button type=\"button\" class=\"close\" (click)=\"close($event)\">\n <thy-icon thyIconName=\"close-bold\"></thy-icon>\n </button>\n</ng-template>\n","import { ThyFormGroupFooterAlign } from 'ngx-tethys/form';\nimport { finalize } from 'rxjs/operators';\n\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { THY_CONFIRM_DEFAULT_OPTIONS, THY_CONFIRM_DEFAULT_OPTIONS_VALUE, ThyConfirmConfig } from '../confirm.config';\nimport { ThyDialogRef } from '../dialog-ref';\n\n@Component({\n selector: 'thy-confirm-default',\n templateUrl: './confirm.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyConfirmComponent implements OnInit, OnDestroy {\n loading: boolean;\n\n @Input() options: ThyConfirmConfig;\n\n public title: string;\n\n public content: string;\n\n public okText: string;\n\n public okType: string;\n\n public cancelText: string;\n\n public okLoadingText: string;\n\n public footerAlign: ThyFormGroupFooterAlign;\n\n constructor(\n private dialogRef: ThyDialogRef<ThyConfirmComponent>,\n private changeDetectorRef: ChangeDetectorRef,\n @Inject(THY_CONFIRM_DEFAULT_OPTIONS) private defaultConfig: ThyConfirmConfig\n ) {\n this.defaultConfig = { ...(THY_CONFIRM_DEFAULT_OPTIONS_VALUE as ThyConfirmConfig), ...this.defaultConfig };\n }\n\n ngOnInit() {\n this.defaultConfig = { ...this.defaultConfig, ...this.options };\n this.title = this.defaultConfig.title;\n this.content = this.defaultConfig.content;\n this.okText = this.defaultConfig.okText;\n this.okType = this.defaultConfig.okType;\n this.cancelText = this.defaultConfig.cancelText;\n this.okLoadingText = this.defaultConfig.okLoadingText || this.okText;\n this.footerAlign = this.defaultConfig.footerAlign;\n }\n\n confirm() {\n this.loading = true;\n const result = this.options.onOk();\n if (result && result.subscribe) {\n result\n .pipe(\n finalize(() => {\n this.loading = false;\n this.changeDetectorRef.markForCheck();\n })\n )\n .subscribe(success => {\n if (success) {\n this.close();\n }\n });\n } else {\n this.close();\n }\n }\n\n close() {\n this.dialogRef.close();\n }\n\n ngOnDestroy() {}\n}\n","<thy-dialog-header [thyTitle]=\"title || 'Install Angular'\" (thyOnClose)=\"close()\"> </thy-dialog-header>\n<thy-dialog-body class=\"thy-form\">\n <form thyForm name=\"thyConfirm\" thyLayout=\"vertical\">\n <div class=\"form-group\">\n <p [innerHTML]=\"content\"></p>\n </div>\n <thy-form-group-footer [thyAlign]=\"footerAlign\">\n <div class=\"thy-confirm-footer\" [ngClass]=\"'thy-confirm-footer-' + footerAlign\">\n <button [thyButton]=\"okType\" (click)=\"confirm()\" [thyLoading]=\"loading\" [thyLoadingText]=\"okLoadingText\">{{ okText }}</button>\n <button thyButton=\"link-secondary\" (click)=\"close()\" class=\"thy-confirm-cancel\">{{ cancelText }}</button>\n </div>\n </thy-form-group-footer>\n </form>\n</thy-dialog-body>\n","import { UpdateHostClassService } from 'ngx-tethys/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nimport { Component, ContentChild, ElementRef, Inject, Input, OnInit, TemplateRef } from '@angular/core';\n\nimport { THY_DIALOG_LAYOUT_CONFIG, ThyDialogFooterAlign, ThyDialogLayoutConfig } from '../dialog.config';\n\n@Component({\n selector: 'thy-dialog-footer',\n templateUrl: './dialog-footer.component.html',\n // changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'thyDialogFooter',\n providers: [UpdateHostClassService]\n})\nexport class DialogFooterComponent implements OnInit {\n @ContentChild('description') description: TemplateRef<any>;\n\n @Input() set thyDivided(value: boolean) {\n this.divided = coerceBooleanProperty(value);\n }\n\n @Input() thyAlign: ThyDialogFooterAlign;\n\n private divided: boolean;\n\n private get align() {\n return !!this.thyAlign ? this.thyAlign : this.dialogLayoutConfig.footerAlign;\n }\n\n constructor(\n @Inject(THY_DIALOG_LAYOUT_CONFIG) private dialogLayoutConfig: ThyDialogLayoutConfig,\n private updateHostClassService: UpdateHostClassService,\n private elementRef: ElementRef\n ) {\n this.updateHostClassService.initializeElement(this.elementRef.nativeElement);\n this.divided = this.dialogLayoutConfig.footerDivided;\n }\n\n ngOnInit() {\n this.updateHostClassService.updateClassByMap({\n 'dialog-footer': true,\n [`dialog-footer-actions-align-${this.align}`]: true,\n 'dialog-footer-border-top': this.divided\n });\n }\n}\n","<div class=\"dialog-footer-actions btn-pair\">\n <ng-content></ng-content>\n</div>\n<div class=\"dialog-footer-description\" *ngIf=\"description\">\n <ng-container [ngTemplateOutlet]=\"description\"></ng-container>\n</div>\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyFormModule } from 'ngx-tethys/form';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { DialogBodyComponent } from './body/dialog-body.component';\nimport { THY_CONFIRM_DEFAULT_OPTIONS_PROVIDER } from './confirm.config';\nimport { ThyConfirmComponent } from './confirm/confirm.component';\nimport { THY_CONFIRM_COMPONENT_TOKEN } from './confirm/token';\nimport { ThyDialogContainerComponent } from './dialog-container.component';\nimport { THY_DIALOG_DEFAULT_OPTIONS_PROVIDER, THY_DIALOG_LAYOUT_CONFIG_PROVIDER } from './dialog.config';\nimport { ThyDialog } from './dialog.service';\nimport { DialogFooterComponent } from './footer/dialog-footer.component';\nimport { DialogHeaderComponent } from './header/dialog-header.component';\n\n@NgModule({\n declarations: [ThyDialogContainerComponent, DialogHeaderComponent, DialogBodyComponent, DialogFooterComponent, ThyConfirmComponent],\n imports: [CommonModule, ThySharedModule, PortalModule, OverlayModule, ThyButtonModule, ThyIconModule, ThyFormModule, FormsModule],\n providers: [\n ThyDialog,\n THY_DIALOG_DEFAULT_OPTIONS_PROVIDER,\n THY_CONFIRM_DEFAULT_OPTIONS_PROVIDER,\n THY_DIALOG_LAYOUT_CONFIG_PROVIDER,\n {\n provide: THY_CONFIRM_COMPONENT_TOKEN,\n useValue: ThyConfirmComponent\n }\n ],\n exports: [ThyDialogContainerComponent, DialogHeaderComponent, DialogBodyComponent, DialogFooterComponent]\n})\nexport class ThyDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyDialogConfig","i1.ThyDialog","i3.ThyDialogContainerComponent","i4","i2","i3","i5","i6.DialogHeaderComponent","i7.DialogBodyComponent","i1"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AASO,MAAM,2BAA2B,GAAG,IAAI,cAAc,CAA8B,6BAA6B,CAAC;;ACPzH,MAAM,aAAa,GAAG;;;;AAIlB,IAAA,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;IACnE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,mCAAmC,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAChH,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,4CAA4C,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CACjI,CAAC;AAEF;;;AAGG;AACU,MAAA,mBAAmB,GAE5B;AACA,IAAA,eAAe,EAAE,OAAO,CAAC,iBAAiB,EAAE,aAAa,CAAC;EAC5D;AAEF;;ACpBO,MAAM,4BAA4B,GAA8B;AACnE,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,gBAAgB,EAAE,IAAI;AACtB,IAAA,gBAAgB,EAAE,IAAI;CACzB;;ACEW,IAAA,eAYX;AAZD,CAAA,UAAY,cAAc,EAAA;AACtB,IAAA,cAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT;;;AAGG;AACH,IAAA,cAAA,CAAA,UAAA,CAAA,GAAA,WAAsB,CAAA;AACtB,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;AACpB,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,QAAgB,CAAA;AAChB,IAAA,cAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,cAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACjB,CAAC,EAZW,cAAc,KAAd,cAAc,GAYzB,EAAA,CAAA,CAAA,CAAA;AAED;;AAEG;AACG,MAAO,eAAiC,SAAQ,wBAA+B,CAAA;AAArF,IAAA,WAAA,GAAA;;;AAEI,QAAA,IAAI,CAAA,IAAA,GAAmB,QAAQ,CAAC;KAUnC;AAAA,CAAA;AAED;MACa,0BAA0B,GAAG,IAAI,cAAc,CAAkB,4BAA4B,EAAE;AAE/F,MAAA,mCAAmC,GAAG;AAC/C,IAAA,OAAO,EAAE,0BAA0B;AACnC,IAAA,QAAQ,EAAE;AACN,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,WAAW,EAAE,IAAI;AACjB,QAAA,aAAa,EAAE,EAAE;AACjB,QAAA,UAAU,EAAE,EAAE;AACd,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,iBAAiB,EAAE,IAAI;AACvB,QAAA,SAAS,EAAE,IAAI;AACf,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,SAAS,EAAE,oBAAoB;AAClC,KAAA;EACH;MAIW,qBAAqB,CAAA;AAGjC,CAAA;MAEY,wBAAwB,GAAG,IAAI,cAAc,CAAwB,0BAA0B,EAAE;AAEjG,MAAA,iCAAiC,GAAG;AAC7C,IAAA,OAAO,EAAE,wBAAwB;AACjC,IAAA,QAAQ,EAAE;AACN,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,KAAK;AACvB,KAAA;;;ACvBC,MAAO,2BAA4B,SAAQ,2BAA2B,CAAA;AAqGxE,IAAA,WAAA,CACW,UAAsB,EACH,QAAa,EAChC,MAAuB,EAC9B,iBAAoC,EAC5B,eAAmC,EACnC,gBAAkC,EAClC,MAAc,EAAA;AAEtB,QAAA,KAAK,CAAC,4BAA4B,EAAE,iBAAiB,CAAC,CAAC;AARhD,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AACH,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAK;AAChC,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAiB;AAEtB,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAoB;AACnC,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAClC,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;;AAjG1B,QAAA,IAAc,CAAA,cAAA,GAA8B,MAAM,CAAC;;AAGnD,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAkB,CAAC;;AAG3D,QAAA,IAAc,CAAA,cAAA,GAAkB,IAAI,CAAC;;AAG7B,QAAA,IAAmC,CAAA,mCAAA,GAAuB,IAAI,CAAC;AA2FnE,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CACvD,MAAM,CAAC,CAAC,KAAqB,KAAI;YAC7B,OAAO,KAAK,CAAC,SAAS,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC;SACjE,CAAC,CACL,CAAC;AACF,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CACvD,MAAM,CAAC,CAAC,KAAqB,KAAI;YAC7B,OAAO,KAAK,CAAC,SAAS,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC;SACjE,CAAC,CACL,CAAC;KACL;IAhGO,4BAA4B,GAAA;QAChC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,mCAAmC,GAAG,IAAI,CAAC,QAAQ,CAAC,aAA4B,CAAC;;AAGtF,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE;;;AAGrC,gBAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;;;;;;;;AAS1B,gBAAA,YAAY,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAC5D,CAAC;AACL,aAAA;AACJ,SAAA;KACJ;;IAGO,SAAS,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAE9C,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC1D,SAAA;;;;AAKD,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AACvB,YAAA,IAAI,CAAC,SAAS,CAAC,4BAA4B,EAAE,CAAC;AACjD,SAAA;AAAM,aAAA;AACH,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;;;;;;YAOlD,IAAI,aAAa,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;gBAC/D,OAAO,CAAC,KAAK,EAAE,CAAC;AACnB,aAAA;AACJ,SAAA;KACJ;IAEO,YAAY,GAAA;AAChB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,mCAAmC,CAAC;;AAGzD,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE;YAC5E,OAAO,CAAC,KAAK,EAAE,CAAC;AACnB,SAAA;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;AAC5B,SAAA;KACJ;IAEO,kBAAkB,GAAA;AACtB,QAAA,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,YAAY,IAAG;AACvD,YAAA,IAAI,YAAY,EAAE;AACd,gBAAA,MAAM,gBAAgB,GAAgB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AACpE,gBAAA,MAAM,eAAe,GAAG,CAAG,EAAA,YAAY,CAAC,CAAC,GAAG,gBAAgB,CAAC,UAAU,CAAM,GAAA,EAAA,YAAY,CAAC,CAAC;oBACvF,gBAAgB,CAAC,SAAS,CAAA,MAAA,CAAQ,CAAC;AACvC,gBAAA,gBAAgB,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,eAAe,CAAC;;AAEhE,aAAA;AACD,YAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;AAClC,SAAC,CAAC,CAAC;KACN;IAwBD,kBAAkB,GAAA;QACd,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,4BAA4B,EAAE,CAAC;KACvC;;AAGD,IAAA,eAAe,CAAC,KAAqB,EAAA;AACjC,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;YAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;AACpB,SAAA;AAAM,aAAA,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;YACjC,IAAI,CAAC,YAAY,EAAE,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1C;;AAGD,IAAA,gBAAgB,CAAC,KAAqB,EAAA;AAClC,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1C;IAED,WAAW,GAAA;QACP,KAAK,CAAC,OAAO,EAAE,CAAC;KACnB;;AAjJQ,2BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,4CAuGxB,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4GAvGX,2BAA2B,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,0CAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gCAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAIzB,eAAe,EAzBhB,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;KAET,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAIW,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,CAAA,CAAA;2FAexC,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAvBvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,CAAA;;AAET,IAAA,CAAA;;;oBAGD,eAAe,EAAE,uBAAuB,CAAC,OAAO;AAChD,oBAAA,UAAU,EAAE,CAAC,mBAAmB,CAAC,eAAe,CAAC;AACjD,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,sBAAsB;AAC7B,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,YAAY,EAAE,MAAM;AACpB,wBAAA,WAAW,EAAE,IAAI;AACjB,wBAAA,aAAa,EAAE,aAAa;AAC5B,wBAAA,wBAAwB,EAAE,0CAA0C;AACpE,wBAAA,mBAAmB,EAAE,kBAAkB;AACvC,wBAAA,yBAAyB,EAAE,gCAAgC;AAC3D,wBAAA,oBAAoB,EAAE,gBAAgB;AACtC,wBAAA,0BAA0B,EAAE,0BAA0B;AACtD,wBAAA,yBAAyB,EAAE,yBAAyB;AACvD,qBAAA;iBACJ,CAAA;;;8BAwGQ,MAAM;+BAAC,QAAQ,CAAA;;yBAlGpB,YAAY,EAAA,CAAA;sBADX,SAAS;gBAAC,IAAA,EAAA,CAAA,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAI5C,EAAE,EAAA,CAAA;sBADD,WAAW;uBAAC,CAAA,OAAA,CAAS,CAAA;;;AC/CpB,MAAgB,YAAmC,SAAQ,qBAA8D,CAAA;AAAG,CAAA;AAE5H,MAAO,oBAA2C,SAAQ,6BAAsE,CAAA;AAClI,IAAA,WAAA,CAAY,UAAsB,EAAE,iBAA8C,EAAE,MAA0B,EAAA;QAC1G,KAAK,CAAC,4BAA4B,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;KAC9E;AAED;;;AAGG;AACH,IAAA,cAAc,CAAC,QAAqC,EAAA;AAChD,QAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACpC,QAAA,OAAO,IAAI,CAAC;KACf;AAED;;;;AAIG;IACH,qBAAqB,CAAC,KAAgB,GAAA,EAAE,EAAE,MAAiB,GAAA,EAAE,EAAE,QAAqC,EAAA;AAC/F,QAAA,IAAI,CAAC,mBAAmB,EAA6B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACnF,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC9B,QAAA,OAAO,IAAI,CAAC;KACf;AACJ;;AClBK,MAAO,SAAU,SAAQ,yBAAuE,CAAA;IAyDlG,WACI,CAAA,OAAgB,EAChB,QAAkB,EAGlB,aAA8B,EAC9B,eAAmC,EACU,oBAAgE,EAAA;QAE7G,KAAK,CAAC,4BAA4B,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAFzB,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAA4C;QAG7G,eAAe,CAAC,UAAU,EAAE,CAAC;KAChC;AAnES,IAAA,kBAAkB,CAAC,MAA4B,EAAA;QACrD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,cAAc,CAAC,EAAE,CAAC;AAC9C,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAU,OAAA,EAAA,IAAI,CAAE,CAAA,CAAC,CAAC,CAAC;AAC9E,QAAA,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;AAClE,QAAA,aAAa,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAC9F,QAAA,OAAO,aAAa,CAAC;KACxB;IAES,sBAAsB,CAAC,OAAmB,EAAE,MAA4B,EAAA;AAC9E,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AAC3F,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC7B,YAAA,MAAM,EAAE,YAAY,IAAI,IAAI,CAAC,QAAQ;YACrC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC9D,SAAA,CAAC,CAAC;AACH,QAAA,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,2BAA2B,EAAE,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAC5G,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAA8B,eAAe,CAAC,CAAC;QAElF,OAAO,YAAY,CAAC,QAAQ,CAAC;KAChC;AAES,IAAA,wBAAwB,CAC9B,UAAsB,EACtB,iBAA8C,EAC9C,MAA4B,EAAA;QAE5B,OAAO,IAAI,oBAAoB,CAAC,UAAU,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;KAC1E;AAES,IAAA,cAAc,CACpB,MAAuB,EACvB,SAA0B,EAC1B,eAA4C,EAAA;AAE5C,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AAE3F,QAAA,MAAM,eAAe,GAAqB;AACtC,YAAA,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,eAAe,EAAE;AACnE,YAAA;AACI,gBAAA,OAAO,EAAE,YAAY;AACrB,gBAAA,QAAQ,EAAE,SAAS;AACtB,aAAA;SACJ,CAAC;AAEF,QAAA,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAwB,cAAc,EAAE,IAAI,CAAC,CAAC,EAAE;YACvG,eAAe,CAAC,IAAI,CAAC;AACjB,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,QAAQ,EAAE;oBACN,KAAK,EAAE,MAAM,CAAC,SAAS;oBACvB,MAAM,EAAE,EAAE,EAAE;AACf,iBAAA;AACJ,aAAA,CAAC,CAAC;AACN,SAAA;AAED,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;KACjG;IAeD,IAAI,CACA,sBAAyD,EACzD,MAA+B,EAAA;QAE/B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;QACnE,MAAM,iBAAiB,GAAG,SAA6C,CAAC;QACxE,iBAAiB,CAAC,qBAAqB,CACnC,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EACxC,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EACzC,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAC9C,CAAC;AACF,QAAA,OAAO,SAAqC,CAAC;KAChD;AAED,IAAA,OAAO,CAAC,OAAyB,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AACxC,YAAA,YAAY,EAAE;AACV,gBAAA,OAAO,EAAE,OAAO;AACnB,aAAA;AACJ,SAAA,CAAC,CAAC;KACN;AAED,IAAA,aAAa,CAAC,EAAU,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAkC,CAAC;KAC3E;IAED,gBAAgB,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;KACrC;AAED;;AAEG;AACH,IAAA,gBAAgB,CAAC,OAAoB,EAAA;AACjC,QAAA,IAAI,MAAM,GAAuB,OAAO,CAAC,aAAa,CAAC;QAEvD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE;AACjE,YAAA,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;AACjC,SAAA;AACD,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,EAAE,EAAE;YACrB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;IAED,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;;sGArHQ,SAAS,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EA6DN,0BAA0B,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAG1B,2BAA2B,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;0GAhE9B,SAAS,EAAA,CAAA,CAAA;2FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBADrB,UAAU;;;8BA6DF,QAAQ;;8BACR,MAAM;+BAAC,0BAA0B,CAAA;;8BAGjC,MAAM;+BAAC,2BAA2B,CAAA;;;;MC5D9B,mBAAmB,CAAA;AAW5B,IAAA,WAAA,CAAoB,MAAiB,EAAA;AAAjB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;AAVH,QAAA,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;AAGvD,QAAA,IAAwB,CAAA,wBAAA,GAAG,KAAK,CAAC;KAOQ;IALzC,IACI,eAAe,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,wBAAwB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAChE;AAID,IAAA,QAAQ,MAAK;;gHAbJ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,6QAJlB,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAI5B,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,2BAA2B;;AAErC,oBAAA,QAAQ,EAAE,eAAe;iBAC5B,CAAA;6FAEqC,aAAa,EAAA,CAAA;sBAA9C,WAAW;uBAAC,CAAA,iBAAA,CAAmB,CAAA;gBAGhC,wBAAwB,EAAA,CAAA;sBADvB,WAAW;uBAAC,CAAA,+BAAA,CAAiC,CAAA;gBAI1C,eAAe,EAAA,CAAA;sBADlB,KAAK;;;MCVG,2BAA2B,GAAG,IAAI,cAAc,CAAmB,6BAA6B,EAAE;AAElG,MAAA,iCAAiC,GAAG;AAC7C,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,WAAW,EAAE,MAAM;EACrB;AAEW,MAAA,oCAAoC,GAAG;AAChD,IAAA,OAAO,EAAE,2BAA2B;AACpC,IAAA,QAAQ,EAAE,iCAAiC;;;MCClC,qBAAqB,CAAA;AAqB9B,IAAA,WAAA,CACY,UAAsB,EACtB,MAAiB,EACjB,SAAuB,EACX,eAA4C,EAAA;AAHxD,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AACtB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;AACjB,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;AACX,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAA6B;AAN1D,QAAA,IAAA,CAAA,UAAU,GAAwB,IAAI,YAAY,EAAS,CAAC;KAOlE;IAhBJ,IACI,sBAAsB,CAAC,GAAW,EAAA;AAClC,QAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC/C,SAAA;KACJ;IAaD,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;;;;;;AAMvB,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAA8B,CAAC;AAC3G,YAAA,IAAI,CAAC,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC;AACzE,SAAA;;;AAID,QAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;YACxB,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,eAAe,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC;AACvD,aAAA;AACL,SAAC,CAAC,CAAC;KACN;AAED,IAAA,KAAK,CAAC,KAAa,EAAA;QACf,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AACvB,SAAA;KACJ;;kHAtDQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,ijBC7BlC,uaASA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;AD4Bc,IAAA,YAAY,EAAE;;CAAqB,EAAA,qBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA,CAAA;2FARpC,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAXjC,SAAS;+BACI,mBAAmB,EAAA,QAAA,EAGnB,iBAAiB,EACrB,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,iCAAiC;AACxC,wBAAA,8BAA8B,EAAE,CAAkB,gBAAA,CAAA;AAClD,wBAAA,mCAAmC,EAAE,CAAY,UAAA,CAAA;AACpD,qBAAA,EAAA,QAAA,EAAA,uaAAA,EAAA,CAAA;;;8BA2BI,QAAQ;;yBAvBN,cAAc,EAAA,CAAA;sBADpB,YAAY;uBAAC,cAAc,CAAA;gBAGnB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEmB,UAAU,EAAA,CAAA;sBAAlC,KAAK;gBAGF,sBAAsB,EAAA,CAAA;sBADzB,KAAK;gBAOG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEI,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;MEnCE,mBAAmB,CAAA;AAmB5B,IAAA,WAAA,CACY,SAA4C,EAC5C,iBAAoC,EACC,aAA+B,EAAA;AAFpE,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAmC;AAC5C,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AACC,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAE5E,IAAI,CAAC,aAAa,GAAS,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,iCAAsD,GAAK,IAAI,CAAC,aAAa,CAAE,CAAC;KAC9G;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,aAAa,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAQ,IAAI,CAAC,aAAa,CAAA,EAAK,IAAI,CAAC,OAAO,CAAE,CAAC;QAChE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;AAChD,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC;QACrE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;KACrD;IAED,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACnC,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE;YAC5B,MAAM;AACD,iBAAA,IAAI,CACD,QAAQ,CAAC,MAAK;AACV,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;AAC1C,aAAC,CAAC,CACL;iBACA,SAAS,CAAC,OAAO,IAAG;AACjB,gBAAA,IAAI,OAAO,EAAE;oBACT,IAAI,CAAC,KAAK,EAAE,CAAC;AAChB,iBAAA;AACL,aAAC,CAAC,CAAC;AACV,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,KAAK,EAAE,CAAC;AAChB,SAAA;KACJ;IAED,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KAC1B;AAED,IAAA,WAAW,MAAK;;AA/DP,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,4EAsBhB,2BAA2B,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAtB9B,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,2FCbhC,6wBAcA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,wBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDDa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACI,qBAAqB,EAAA,eAAA,EAEd,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6wBAAA,EAAA,CAAA;;;8BAwB1C,MAAM;+BAAC,2BAA2B,CAAA;;yBAnB9B,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MEFG,qBAAqB,CAAA;AAe9B,IAAA,WAAA,CAC8C,kBAAyC,EAC3E,sBAA8C,EAC9C,UAAsB,EAAA;AAFY,QAAA,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAuB;AAC3E,QAAA,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;AAC9C,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAE9B,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC;KACxD;IAnBD,IAAa,UAAU,CAAC,KAAc,EAAA;AAClC,QAAA,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC/C;AAMD,IAAA,IAAY,KAAK,GAAA;AACb,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;KAChF;IAWD,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC;AACzC,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,CAAC,+BAA+B,IAAI,CAAC,KAAK,CAAE,CAAA,GAAG,IAAI;YACnD,0BAA0B,EAAE,IAAI,CAAC,OAAO;AAC3C,SAAA,CAAC,CAAC;KACN;;AA9BQ,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAgBlB,wBAAwB,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAhB3B,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAFnB,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,CAAC,sBAAsB,CAAC,iKCZvC,oOAMA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDQa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;YACI,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAGnB,QAAA,EAAA,iBAAiB,EAChB,SAAA,EAAA,CAAC,sBAAsB,CAAC,EAAA,QAAA,EAAA,oOAAA,EAAA,CAAA;;;8BAkB9B,MAAM;+BAAC,wBAAwB,CAAA;;yBAfP,WAAW,EAAA,CAAA;sBAAvC,YAAY;uBAAC,aAAa,CAAA;gBAEd,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAIG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEaG,eAAe,CAAA;;4GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAdT,YAAA,EAAA,CAAA,2BAA2B,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,mBAAmB,CAAA,EAAA,OAAA,EAAA,CACxH,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,CAAA,EAAA,OAAA,EAAA,CAWtH,2BAA2B,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAE/F,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAZb,SAAA,EAAA;QACP,SAAS;QACT,mCAAmC;QACnC,oCAAoC;QACpC,iCAAiC;AACjC,QAAA;AACI,YAAA,OAAO,EAAE,2BAA2B;AACpC,YAAA,QAAQ,EAAE,mBAAmB;AAChC,SAAA;KACJ,EAAA,OAAA,EAAA,CAVS,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,CAAA,EAAA,CAAA,CAAA;2FAavH,eAAe,EAAA,UAAA,EAAA,CAAA;kBAf3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,2BAA2B,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,mBAAmB,CAAC;AACnI,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,CAAC;AACjI,oBAAA,SAAS,EAAE;wBACP,SAAS;wBACT,mCAAmC;wBACnC,oCAAoC;wBACpC,iCAAiC;AACjC,wBAAA;AACI,4BAAA,OAAO,EAAE,2BAA2B;AACpC,4BAAA,QAAQ,EAAE,mBAAmB;AAChC,yBAAA;AACJ,qBAAA;oBACD,OAAO,EAAE,CAAC,2BAA2B,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,CAAC;iBAC5G,CAAA;;;ACjCD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-dialog.mjs","sources":["../../../src/dialog/confirm/token.ts","../../../src/dialog/dialog-animations.ts","../../../src/dialog/dialog.options.ts","../../../src/dialog/dialog.config.ts","../../../src/dialog/dialog-container.component.ts","../../../src/dialog/dialog-ref.ts","../../../src/dialog/dialog.service.ts","../../../src/dialog/body/dialog-body.component.ts","../../../src/dialog/confirm.config.ts","../../../src/dialog/header/dialog-header.component.ts","../../../src/dialog/header/dialog-header.component.html","../../../src/dialog/confirm/confirm.component.ts","../../../src/dialog/confirm/confirm.component.html","../../../src/dialog/footer/dialog-footer.component.ts","../../../src/dialog/footer/dialog-footer.component.html","../../../src/dialog/dialog.module.ts","../../../src/dialog/ngx-tethys-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport interface ThyConfirmAbstractComponent {\n okText: string;\n okType: string;\n cancelText: string;\n okLoadingText: string;\n}\n\nexport const THY_CONFIRM_COMPONENT_TOKEN = new InjectionToken<ThyConfirmAbstractComponent>('thy-confirm-component-token');\n","import { animate, state, style, transition, trigger, AnimationTriggerMetadata } from '@angular/animations';\n\nconst animationBody = [\n // Note: The `enter` animation transitions to `transform: none`, because for some reason\n // specifying the transform explicitly, causes IE both to blur the dialog content and\n // decimate the animation performance. Leaving it as `none` solves both issues. translate(-300px,-100px)\n state('void, exit', style({ opacity: 0, transform: 'scale(0.1)' })),\n state('enter', style({ transform: 'none' })),\n transition('* => enter', animate('200ms cubic-bezier(0, 0, 0.57, 1)', style({ transform: 'none', opacity: 1 }))),\n transition('* => exit', animate('150ms cubic-bezier(0.24, 0.18, 0.96, 0.52)', style({ transform: 'scale(0.3)', opacity: 0 })))\n];\n\n/**\n * Animations used by MatDialog.\n * @docs-private\n */\nexport const thyDialogAnimations: {\n readonly dialogContainer: AnimationTriggerMetadata;\n} = {\n dialogContainer: trigger('dialogContainer', animationBody)\n};\n\n// export const setAnimationStart\n","import { ThyAbstractOverlayOptions } from 'ngx-tethys/core';\n\nexport const dialogAbstractOverlayOptions: ThyAbstractOverlayOptions = {\n name: 'dialog',\n animationEnabled: true,\n disposeWhenClose: true\n};\n","import { ThyAbstractOverlayConfig, ThyAbstractOverlayPosition } from 'ngx-tethys/core';\n\nimport { ScrollStrategy } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\n\n/** Valid ARIA roles for a dialog element. */\nexport type ThyDialogRole = 'dialog' | 'alertdialog';\n\nexport enum ThyDialogSizes {\n lg = 'lg',\n /**\n * 已废弃,命名错误,请使用 superLg\n * @deprecated\n */\n supperLg = 'supper-lg',\n superLg = 'super-lg',\n maxLg = 'max-lg',\n md = 'md',\n sm = 'sm',\n full = 'full'\n}\n\n/**\n * Configuration for opening a modal dialog with the ThyDialog service.\n */\nexport class ThyDialogConfig<TData = unknown> extends ThyAbstractOverlayConfig<TData> {\n /** The ARIA role of the dialog element. */\n role?: ThyDialogRole = 'dialog';\n\n /** Position overrides. */\n position?: ThyAbstractOverlayPosition;\n\n /** Dialog size md, lg, sm*/\n size?: ThyDialogSizes;\n\n /** Scroll strategy to be used for the dialog. */\n scrollStrategy?: ScrollStrategy;\n}\n\n/** Injection token that can be used to specify default dialog options. */\nexport const THY_DIALOG_DEFAULT_OPTIONS = new InjectionToken<ThyDialogConfig>('thy-dialog-default-options');\n\nexport const THY_DIALOG_DEFAULT_OPTIONS_PROVIDER = {\n provide: THY_DIALOG_DEFAULT_OPTIONS,\n useValue: {\n role: 'dialog',\n hasBackdrop: true,\n backdropClass: '',\n panelClass: '',\n backdropClosable: true,\n closeOnNavigation: true,\n autoFocus: true,\n restoreFocus: true,\n hostClass: 'thy-dialog-content'\n }\n};\n\nexport type ThyDialogFooterAlign = 'left' | 'right' | 'center';\n\nexport class ThyDialogLayoutConfig {\n footerAlign?: ThyDialogFooterAlign;\n footerDivided?: boolean;\n}\n\nexport const THY_DIALOG_LAYOUT_CONFIG = new InjectionToken<ThyDialogLayoutConfig>('thy-dialog-layout-config');\n\nexport const THY_DIALOG_LAYOUT_CONFIG_PROVIDER = {\n provide: THY_DIALOG_LAYOUT_CONFIG,\n useValue: {\n footerAlign: 'left',\n footerDivided: false\n }\n};\n","import { reqAnimFrame, ThyAbstractOverlayContainer, ThyClickPositioner } from 'ngx-tethys/core';\nimport { Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { AnimationEvent } from '@angular/animations';\nimport { FocusTrap, FocusTrapFactory } from '@angular/cdk/a11y';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n NgZone,\n OnDestroy,\n ViewChild\n} from '@angular/core';\n\nimport { thyDialogAnimations } from './dialog-animations';\nimport { ThyDialogConfig } from './dialog.config';\nimport { dialogAbstractOverlayOptions } from './dialog.options';\n\n@Component({\n selector: 'thy-dialog-container',\n template: `\n <ng-template cdkPortalOutlet></ng-template>\n `,\n // Using OnPush for dialogs caused some sync issues, e.g. custom ngModel can't to detect changes\n // Disabled until we can track them down.\n changeDetection: ChangeDetectionStrategy.Default,\n animations: [thyDialogAnimations.dialogContainer],\n host: {\n class: 'thy-dialog-container',\n tabindex: '-1',\n 'aria-modal': 'true',\n '[attr.id]': 'id',\n '[attr.role]': 'config.role',\n '[attr.aria-labelledby]': 'config.ariaLabel ? null : ariaLabelledBy',\n '[attr.aria-label]': 'config.ariaLabel',\n '[attr.aria-describedby]': 'config.ariaDescribedBy || null',\n '[@dialogContainer]': 'animationState',\n '(@dialogContainer.start)': 'onAnimationStart($event)',\n '(@dialogContainer.done)': 'onAnimationDone($event)'\n }\n})\nexport class ThyDialogContainerComponent extends ThyAbstractOverlayContainer implements OnDestroy {\n animationOpeningDone: Observable<AnimationEvent>;\n animationClosingDone: Observable<AnimationEvent>;\n\n @ViewChild(CdkPortalOutlet, { static: true })\n portalOutlet: CdkPortalOutlet;\n\n @HostBinding(`attr.id`)\n id: string;\n\n /** State of the dialog animation. */\n animationState: 'void' | 'enter' | 'exit' = 'void';\n\n /** Emits when an animation state changes. */\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n /** ID of the element that should be considered as the dialog's label. */\n ariaLabelledBy: string | null = null;\n\n /** Element that was focused before the dialog was opened. Save this to restore upon close. */\n private elementFocusedBeforeDialogWasOpened: HTMLElement | null = null;\n\n /** The class that traps and manages focus within the dialog. */\n private focusTrap: FocusTrap;\n\n private savePreviouslyFocusedElement() {\n if (this.document) {\n this.elementFocusedBeforeDialogWasOpened = this.document.activeElement as HTMLElement;\n\n // Note that there is no focus method when rendering on the server.\n if (this.elementRef.nativeElement.focus) {\n // Note: this is being run outside of the Angular zone because `element.focus()` doesn't require\n // running change detection.\n this.ngZone.runOutsideAngular(() =>\n // Move focus onto the dialog immediately in order to prevent the user from accidentally\n // opening multiple dialogs at the same time. Needs to be async, because the element\n // may not be focusable immediately.\n\n // Note: `element.focus()` causes re-layout and this may lead to frame drop on slower devices.\n // https://gist.github.com/paulirish/5d52fb081b3570c81e3a#setting-focus\n // `setTimeout` is a macrotask and macrotasks are executed within the current rendering frame.\n // Animation tasks are executed within the next rendering frame.\n reqAnimFrame(() => this.elementRef.nativeElement.focus())\n );\n }\n }\n }\n\n /** Moves the focus inside the focus trap. */\n private trapFocus() {\n const element = this.elementRef.nativeElement;\n\n if (!this.focusTrap) {\n this.focusTrap = this.focusTrapFactory.create(element);\n }\n\n // If we were to attempt to focus immediately, then the content of the dialog would not yet be\n // ready in instances where change detection has to run first. To deal with this, we simply\n // wait for the microtask queue to be empty.\n if (this.config.autoFocus) {\n this.focusTrap.focusInitialElementWhenReady();\n } else {\n const activeElement = this.document.activeElement;\n\n // Otherwise ensure that focus is on the dialog container. It's possible that a different\n // component tried to move focus while the open animation was running. See:\n // https://github.com/angular/components/issues/16215. Note that we only want to do this\n // if the focus isn't inside the dialog already, because it's possible that the consumer\n // turned off `autoFocus` in order to move focus themselves.\n if (activeElement !== element && !element.contains(activeElement)) {\n element.focus();\n }\n }\n }\n\n private restoreFocus() {\n const toFocus = this.elementFocusedBeforeDialogWasOpened;\n\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (this.config.restoreFocus && toFocus && typeof toFocus.focus === 'function') {\n toFocus.focus();\n }\n\n if (this.focusTrap) {\n this.focusTrap.destroy();\n }\n }\n\n private setTransformOrigin() {\n this.clickPositioner.runTaskUseLastPosition(lastPosition => {\n if (lastPosition) {\n const containerElement: HTMLElement = this.elementRef.nativeElement;\n const transformOrigin = `${lastPosition.x - containerElement.offsetLeft}px ${lastPosition.y -\n containerElement.offsetTop}px 0px`;\n containerElement.style['transform-origin'] = transformOrigin;\n // 手动修改动画状态为从 void 到 enter, 开启动画\n }\n this.animationState = 'enter';\n });\n }\n\n constructor(\n private elementRef: ElementRef,\n @Inject(DOCUMENT) private document: any,\n public config: ThyDialogConfig,\n changeDetectorRef: ChangeDetectorRef,\n private clickPositioner: ThyClickPositioner,\n private focusTrapFactory: FocusTrapFactory,\n private ngZone: NgZone\n ) {\n super(dialogAbstractOverlayOptions, changeDetectorRef);\n this.animationOpeningDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'void';\n })\n );\n this.animationClosingDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'exit';\n })\n );\n }\n\n beforeAttachPortal(): void {\n this.setTransformOrigin();\n this.savePreviouslyFocusedElement();\n }\n\n /** Callback, invoked whenever an animation on the host completes. */\n onAnimationDone(event: AnimationEvent) {\n if (event.toState === 'void') {\n this.trapFocus();\n } else if (event.toState === 'exit') {\n this.restoreFocus();\n }\n this.animationStateChanged.emit(event);\n }\n\n /** Callback, invoked when an animation on the host starts. */\n onAnimationStart(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n ngOnDestroy() {\n super.destroy();\n }\n}\n","import { ThyAbstractInternalOverlayRef, ThyAbstractOverlayPosition, ThyAbstractOverlayRef } from 'ngx-tethys/core';\n\nimport { GlobalPositionStrategy, OverlayRef } from '@angular/cdk/overlay';\n\nimport { ThyDialogContainerComponent } from './dialog-container.component';\nimport { ThyDialogConfig } from './dialog.config';\nimport { dialogAbstractOverlayOptions } from './dialog.options';\n\nexport abstract class ThyDialogRef<T, TResult = unknown> extends ThyAbstractOverlayRef<T, ThyDialogContainerComponent, TResult> {}\n\nexport class ThyInternalDialogRef<T, TResult = unknown> extends ThyAbstractInternalOverlayRef<T, ThyDialogContainerComponent, TResult> {\n constructor(overlayRef: OverlayRef, containerInstance: ThyDialogContainerComponent, config: ThyDialogConfig<T>) {\n super(dialogAbstractOverlayOptions, overlayRef, containerInstance, config);\n }\n\n /**\n * Updates the dialog's position.\n * @param position New dialog position.\n */\n updatePosition(position?: ThyAbstractOverlayPosition): this {\n this.updateGlobalPosition(position);\n return this;\n }\n\n /**\n * Updates the dialog's width and height.\n * @param width New width of the dialog.\n * @param height New height of the dialog.\n */\n updateSizeAndPosition(width: string = '', height: string = '', position?: ThyAbstractOverlayPosition): this {\n (this.getPositionStrategy() as GlobalPositionStrategy).width(width).height(height);\n this.updatePosition(position);\n return this;\n }\n}\n","import { ThyAbstractOverlayRef, ThyAbstractOverlayService, ThyClickPositioner } from 'ngx-tethys/core';\nimport { of } from 'rxjs';\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType } from '@angular/cdk/portal';\nimport { Inject, Injectable, Injector, OnDestroy, Optional, StaticProvider, TemplateRef } from '@angular/core';\n\nimport { ThyConfirmConfig } from './confirm.config';\nimport { ThyConfirmAbstractComponent, THY_CONFIRM_COMPONENT_TOKEN } from './confirm/token';\nimport { ThyDialogContainerComponent } from './dialog-container.component';\nimport { ThyDialogRef, ThyInternalDialogRef } from './dialog-ref';\nimport { THY_DIALOG_DEFAULT_OPTIONS, ThyDialogConfig, ThyDialogSizes } from './dialog.config';\nimport { dialogAbstractOverlayOptions } from './dialog.options';\n\n@Injectable()\nexport class ThyDialog extends ThyAbstractOverlayService<ThyDialogConfig, ThyDialogContainerComponent> implements OnDestroy {\n protected buildOverlayConfig(config: ThyDialogConfig<any>): OverlayConfig {\n const size = config.size || ThyDialogSizes.md;\n const overlayConfig = this.buildBaseOverlayConfig(config, [`dialog-${size}`]);\n overlayConfig.positionStrategy = this.overlay.position().global();\n overlayConfig.scrollStrategy = config.scrollStrategy || this.overlay.scrollStrategies.block();\n return overlayConfig;\n }\n\n protected attachOverlayContainer(overlay: OverlayRef, config: ThyDialogConfig<any>): ThyDialogContainerComponent {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this.injector,\n providers: [{ provide: ThyDialogConfig, useValue: config }]\n });\n const containerPortal = new ComponentPortal(ThyDialogContainerComponent, config.viewContainerRef, injector);\n const containerRef = overlay.attach<ThyDialogContainerComponent>(containerPortal);\n\n return containerRef.instance;\n }\n\n protected createAbstractOverlayRef<T, TResult>(\n overlayRef: OverlayRef,\n containerInstance: ThyDialogContainerComponent,\n config: ThyDialogConfig<any>\n ): ThyAbstractOverlayRef<T, ThyDialogContainerComponent, TResult> {\n return new ThyInternalDialogRef(overlayRef, containerInstance, config);\n }\n\n protected createInjector<T>(\n config: ThyDialogConfig,\n dialogRef: ThyDialogRef<T>,\n dialogContainer: ThyDialogContainerComponent\n ): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n const injectionTokens: StaticProvider[] = [\n { provide: ThyDialogContainerComponent, useValue: dialogContainer },\n {\n provide: ThyDialogRef,\n useValue: dialogRef\n }\n ];\n\n if (config.direction && (!userInjector || !userInjector.get<Directionality | null>(Directionality, null))) {\n injectionTokens.push({\n provide: Directionality,\n useValue: {\n value: config.direction,\n change: of()\n }\n });\n }\n\n return Injector.create({ parent: userInjector || this.injector, providers: injectionTokens });\n }\n\n constructor(\n overlay: Overlay,\n injector: Injector,\n @Optional()\n @Inject(THY_DIALOG_DEFAULT_OPTIONS)\n defaultConfig: ThyDialogConfig,\n clickPositioner: ThyClickPositioner,\n @Inject(THY_CONFIRM_COMPONENT_TOKEN) private confirmComponentType: ComponentType<ThyConfirmAbstractComponent>\n ) {\n super(dialogAbstractOverlayOptions, overlay, injector, defaultConfig);\n clickPositioner.initialize();\n }\n\n open<T, TData = unknown, TResult = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: ThyDialogConfig<TData>\n ): ThyDialogRef<T, TResult> {\n const dialogRef = this.openOverlay(componentOrTemplateRef, config);\n const dialogRefInternal = dialogRef as ThyInternalDialogRef<T, TResult>;\n dialogRefInternal.updateSizeAndPosition(\n dialogRef.containerInstance.config.width,\n dialogRef.containerInstance.config.height,\n dialogRef.containerInstance.config.position\n );\n return dialogRef as ThyDialogRef<T, TResult>;\n }\n\n confirm(options: ThyConfirmConfig) {\n return this.open(this.confirmComponentType, {\n initialState: {\n options: options\n }\n });\n }\n\n getDialogById(id: string): ThyDialogRef<any> | undefined {\n return this.getAbstractOverlayById(id) as ThyDialogRef<any> | undefined;\n }\n\n getOpenedDialogs(): ThyDialogRef<any>[] {\n return this.getAbstractOverlays();\n }\n\n /**\n * Finds the closest ThyDialogRef to an element by looking at the DOM.\n */\n getClosestDialog(element: HTMLElement): ThyDialogRef<any> | undefined {\n let parent: HTMLElement | null = element.parentElement;\n\n while (parent && !parent.classList.contains('thy-dialog-container')) {\n parent = parent.parentElement;\n }\n if (parent && parent.id) {\n return this.getDialogById(parent.id);\n }\n return null;\n }\n\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ContentChild,\n TemplateRef,\n OnInit,\n HostBinding,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { ThyDialog } from '../dialog.service';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n@Component({\n selector: 'thy-dialog-body',\n template: '<ng-content></ng-content>',\n // changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'thyDialogBody'\n})\nexport class DialogBodyComponent implements OnInit {\n @HostBinding(`class.dialog-body`) _isDialogBody = true;\n\n @HostBinding(`class.dialog-body-clear-padding`)\n thyClearPaddingClassName = false;\n\n @Input()\n set thyClearPadding(value: string) {\n this.thyClearPaddingClassName = coerceBooleanProperty(value);\n }\n\n constructor(private dialog: ThyDialog) {}\n\n ngOnInit() {}\n}\n","import { InjectionToken } from '@angular/core';\nimport { ThyFormGroupFooterAlign } from 'ngx-tethys/form';\nimport { Observable } from 'rxjs';\n\nexport interface ThyConfirmConfig {\n title?: string;\n content: string;\n okText?: string;\n okType?: 'primary' | 'danger';\n okLoadingText?: string;\n footerAlign?: ThyFormGroupFooterAlign;\n onOk?: () => Observable<boolean> | void;\n cancelText?: string;\n onCancel?: void;\n}\n\nexport const THY_CONFIRM_DEFAULT_OPTIONS = new InjectionToken<ThyConfirmConfig>('thy-confirm-default-options');\n\nexport const THY_CONFIRM_DEFAULT_OPTIONS_VALUE = {\n title: '确认删除',\n okText: '确定',\n okType: 'danger',\n cancelText: '取消',\n footerAlign: 'left'\n};\n\nexport const THY_CONFIRM_DEFAULT_OPTIONS_PROVIDER = {\n provide: THY_CONFIRM_DEFAULT_OPTIONS,\n useValue: THY_CONFIRM_DEFAULT_OPTIONS_VALUE\n};\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ContentChild,\n TemplateRef,\n OnInit,\n HostBinding,\n ChangeDetectionStrategy,\n Optional,\n ElementRef\n} from '@angular/core';\nimport { ThyDialog } from '../dialog.service';\nimport { ThyDialogContainerComponent } from '../dialog-container.component';\nimport { InputBoolean, ThyTranslate } from 'ngx-tethys/core';\nimport { ThyInternalDialogRef } from '../dialog-ref';\n\n@Component({\n selector: 'thy-dialog-header',\n templateUrl: './dialog-header.component.html',\n // changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'thyDialogHeader',\n host: {\n class: 'dialog-header thy-dialog-header',\n '[class.thy-dialog-header-lg]': `thySize === 'lg'`,\n '[class.thy-dialog-header-divided]': `thyDivided`\n }\n})\nexport class DialogHeaderComponent implements OnInit {\n @ContentChild('dialogHeader')\n public headerTemplate: TemplateRef<any>;\n\n @Input() thyTitle: string;\n\n @Input() thySize: 'lg' | 'md';\n\n @Input() @InputBoolean() thyDivided: boolean;\n\n @Input()\n set thyTitleTranslationKey(key: string) {\n if (key && !this.thyTitle) {\n this.thyTitle = this.translate.instant(key);\n }\n }\n\n @Input() thyIcon: string;\n\n @Output() thyOnClose: EventEmitter<Event> = new EventEmitter<Event>();\n\n constructor(\n private elementRef: ElementRef,\n private dialog: ThyDialog,\n private translate: ThyTranslate,\n @Optional() private dialogContainer: ThyDialogContainerComponent\n ) {}\n\n ngOnInit() {\n if (!this.dialogContainer) {\n // When this directive is included in a dialog via TemplateRef (rather than being\n // in a Component), the ThyDialogContainerComponent isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the ThyDialogContainerComponent by\n // ID. This must occur in `onInit`, as the ID binding for the dialog container won't\n // be resolved at constructor time.\n const dialogRef = this.dialog.getClosestDialog(this.elementRef.nativeElement) as ThyInternalDialogRef<any>;\n this.dialogContainer = dialogRef ? dialogRef.containerInstance : null;\n }\n\n // change in next microtask avoid throw ExpressionChangedAfterItHasBeenCheckedError\n // because sub component change parent's HostBinding property (ariaLabelledBy)\n Promise.resolve().then(() => {\n if (this.dialogContainer) {\n this.dialogContainer.ariaLabelledBy = this.thyTitle;\n }\n });\n }\n\n close(event?: Event) {\n if (this.thyOnClose.observers.length > 0) {\n this.thyOnClose.emit(event);\n } else {\n this.dialog.close();\n }\n }\n}\n","<ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <template [ngTemplateOutlet]=\"headerTemplate\"></template>\n</ng-container>\n<ng-template #defaultHeader>\n <h3 class=\"dialog-title\"><thy-icon [thyIconName]=\"thyIcon\"></thy-icon>{{ thyTitle }}</h3>\n <button type=\"button\" class=\"close\" (click)=\"close($event)\">\n <thy-icon thyIconName=\"close-bold\"></thy-icon>\n </button>\n</ng-template>\n","import { ThyFormGroupFooterAlign } from 'ngx-tethys/form';\nimport { finalize } from 'rxjs/operators';\n\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { THY_CONFIRM_DEFAULT_OPTIONS, THY_CONFIRM_DEFAULT_OPTIONS_VALUE, ThyConfirmConfig } from '../confirm.config';\nimport { ThyDialogRef } from '../dialog-ref';\n\n@Component({\n selector: 'thy-confirm-default',\n templateUrl: './confirm.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyConfirmComponent implements OnInit, OnDestroy {\n loading: boolean;\n\n @Input() options: ThyConfirmConfig;\n\n public title: string;\n\n public content: string;\n\n public okText: string;\n\n public okType: string;\n\n public cancelText: string;\n\n public okLoadingText: string;\n\n public footerAlign: ThyFormGroupFooterAlign;\n\n constructor(\n private dialogRef: ThyDialogRef<ThyConfirmComponent>,\n private changeDetectorRef: ChangeDetectorRef,\n @Inject(THY_CONFIRM_DEFAULT_OPTIONS) private defaultConfig: ThyConfirmConfig\n ) {\n this.defaultConfig = { ...(THY_CONFIRM_DEFAULT_OPTIONS_VALUE as ThyConfirmConfig), ...this.defaultConfig };\n }\n\n ngOnInit() {\n this.defaultConfig = { ...this.defaultConfig, ...this.options };\n this.title = this.defaultConfig.title;\n this.content = this.defaultConfig.content;\n this.okText = this.defaultConfig.okText;\n this.okType = this.defaultConfig.okType;\n this.cancelText = this.defaultConfig.cancelText;\n this.okLoadingText = this.defaultConfig.okLoadingText || this.okText;\n this.footerAlign = this.defaultConfig.footerAlign;\n }\n\n confirm() {\n this.loading = true;\n const result = this.options.onOk();\n if (result && result.subscribe) {\n result\n .pipe(\n finalize(() => {\n this.loading = false;\n this.changeDetectorRef.markForCheck();\n })\n )\n .subscribe(success => {\n if (success) {\n this.close();\n }\n });\n } else {\n this.close();\n }\n }\n\n close() {\n this.dialogRef.close();\n }\n\n ngOnDestroy() {}\n}\n","<thy-dialog-header [thyTitle]=\"title || 'Install Angular'\" (thyOnClose)=\"close()\"> </thy-dialog-header>\n<thy-dialog-body class=\"thy-form\">\n <form thyForm name=\"thyConfirm\" thyLayout=\"vertical\">\n <div class=\"form-group\">\n <p [innerHTML]=\"content\"></p>\n </div>\n <thy-form-group-footer [thyAlign]=\"footerAlign\">\n <div class=\"thy-confirm-footer\" [ngClass]=\"'thy-confirm-footer-' + footerAlign\">\n <button [thyButton]=\"okType\" (click)=\"confirm()\" [thyLoading]=\"loading\" [thyLoadingText]=\"okLoadingText\">{{ okText }}</button>\n <button thyButton=\"link-secondary\" (click)=\"close()\" class=\"thy-confirm-cancel\">{{ cancelText }}</button>\n </div>\n </thy-form-group-footer>\n </form>\n</thy-dialog-body>\n","import { UpdateHostClassService } from 'ngx-tethys/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nimport { Component, ContentChild, ElementRef, Inject, Input, OnInit, TemplateRef } from '@angular/core';\n\nimport { THY_DIALOG_LAYOUT_CONFIG, ThyDialogFooterAlign, ThyDialogLayoutConfig } from '../dialog.config';\n\n@Component({\n selector: 'thy-dialog-footer',\n templateUrl: './dialog-footer.component.html',\n // changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'thyDialogFooter',\n providers: [UpdateHostClassService]\n})\nexport class DialogFooterComponent implements OnInit {\n @ContentChild('description') description: TemplateRef<any>;\n\n @Input() set thyDivided(value: boolean) {\n this.divided = coerceBooleanProperty(value);\n }\n\n @Input() thyAlign: ThyDialogFooterAlign;\n\n private divided: boolean;\n\n private get align() {\n return !!this.thyAlign ? this.thyAlign : this.dialogLayoutConfig.footerAlign;\n }\n\n constructor(\n @Inject(THY_DIALOG_LAYOUT_CONFIG) private dialogLayoutConfig: ThyDialogLayoutConfig,\n private updateHostClassService: UpdateHostClassService,\n private elementRef: ElementRef\n ) {\n this.updateHostClassService.initializeElement(this.elementRef.nativeElement);\n this.divided = this.dialogLayoutConfig.footerDivided;\n }\n\n ngOnInit() {\n this.updateHostClassService.updateClassByMap({\n 'dialog-footer': true,\n [`dialog-footer-actions-align-${this.align}`]: true,\n 'dialog-footer-border-top': this.divided\n });\n }\n}\n","<div class=\"dialog-footer-actions btn-pair\">\n <ng-content></ng-content>\n</div>\n<div class=\"dialog-footer-description\" *ngIf=\"description\">\n <ng-container [ngTemplateOutlet]=\"description\"></ng-container>\n</div>\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyFormModule } from 'ngx-tethys/form';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { DialogBodyComponent } from './body/dialog-body.component';\nimport { THY_CONFIRM_DEFAULT_OPTIONS_PROVIDER } from './confirm.config';\nimport { ThyConfirmComponent } from './confirm/confirm.component';\nimport { THY_CONFIRM_COMPONENT_TOKEN } from './confirm/token';\nimport { ThyDialogContainerComponent } from './dialog-container.component';\nimport { THY_DIALOG_DEFAULT_OPTIONS_PROVIDER, THY_DIALOG_LAYOUT_CONFIG_PROVIDER } from './dialog.config';\nimport { ThyDialog } from './dialog.service';\nimport { DialogFooterComponent } from './footer/dialog-footer.component';\nimport { DialogHeaderComponent } from './header/dialog-header.component';\n\n@NgModule({\n declarations: [ThyDialogContainerComponent, DialogHeaderComponent, DialogBodyComponent, DialogFooterComponent, ThyConfirmComponent],\n imports: [CommonModule, ThySharedModule, PortalModule, OverlayModule, ThyButtonModule, ThyIconModule, ThyFormModule, FormsModule],\n providers: [\n ThyDialog,\n THY_DIALOG_DEFAULT_OPTIONS_PROVIDER,\n THY_CONFIRM_DEFAULT_OPTIONS_PROVIDER,\n THY_DIALOG_LAYOUT_CONFIG_PROVIDER,\n {\n provide: THY_CONFIRM_COMPONENT_TOKEN,\n useValue: ThyConfirmComponent\n }\n ],\n exports: [ThyDialogContainerComponent, DialogHeaderComponent, DialogBodyComponent, DialogFooterComponent]\n})\nexport class ThyDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyDialogConfig","i1.ThyDialog","i3.ThyDialogContainerComponent","i4","i2","i3","i5","i6.DialogHeaderComponent","i7.DialogBodyComponent","i1"],"mappings":"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"}
|