valtech-components 2.0.449 → 2.0.451
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/atoms/fab/fab.component.mjs +4 -5
- package/esm2022/lib/components/templates/page-template/page-template.component.mjs +5 -3
- package/esm2022/lib/services/link-processor.service.mjs +43 -61
- package/esm2022/lib/services/modal/modal.service.mjs +9 -8
- package/esm2022/public-api.mjs +4 -24
- package/fesm2022/valtech-components-simple-modal-content.component-DQhEgUmS.mjs +136 -0
- package/fesm2022/valtech-components-simple-modal-content.component-DQhEgUmS.mjs.map +1 -0
- package/fesm2022/valtech-components.mjs +59 -3093
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/fab/fab.component.d.ts +1 -2
- package/lib/services/modal/modal.service.d.ts +0 -2
- package/package.json +1 -3
- package/public-api.d.ts +0 -8
- package/esm2022/lib/components/organisms/tabbed-content/tabbed-content.component.mjs +0 -170
- package/esm2022/lib/components/organisms/tabbed-content/types.mjs +0 -2
- package/esm2022/lib/services/firebase/config.mjs +0 -108
- package/esm2022/lib/services/firebase/firebase.service.mjs +0 -285
- package/esm2022/lib/services/firebase/firestore-collection.mjs +0 -254
- package/esm2022/lib/services/firebase/firestore.service.mjs +0 -508
- package/esm2022/lib/services/firebase/index.mjs +0 -49
- package/esm2022/lib/services/firebase/messaging.service.mjs +0 -503
- package/esm2022/lib/services/firebase/shared-config.mjs +0 -138
- package/esm2022/lib/services/firebase/storage.service.mjs +0 -421
- package/esm2022/lib/services/firebase/types.mjs +0 -8
- package/esm2022/lib/services/firebase/utils/path-builder.mjs +0 -195
- package/esm2022/lib/services/firebase/utils/query-builder.mjs +0 -302
- package/lib/components/organisms/tabbed-content/tabbed-content.component.d.ts +0 -65
- package/lib/components/organisms/tabbed-content/types.d.ts +0 -53
- package/lib/services/firebase/config.d.ts +0 -49
- package/lib/services/firebase/firebase.service.d.ts +0 -140
- package/lib/services/firebase/firestore-collection.d.ts +0 -174
- package/lib/services/firebase/firestore.service.d.ts +0 -303
- package/lib/services/firebase/index.d.ts +0 -39
- package/lib/services/firebase/messaging.service.d.ts +0 -254
- package/lib/services/firebase/shared-config.d.ts +0 -126
- package/lib/services/firebase/storage.service.d.ts +0 -204
- package/lib/services/firebase/types.d.ts +0 -281
- package/lib/services/firebase/utils/path-builder.d.ts +0 -132
- package/lib/services/firebase/utils/query-builder.d.ts +0 -210
|
@@ -4,7 +4,6 @@ import { CommonModule } from '@angular/common';
|
|
|
4
4
|
import { addIcons } from 'ionicons';
|
|
5
5
|
import { add, close, share, create, trash, heart, star, camera, mic, send } from 'ionicons/icons';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../../../services/icons.service";
|
|
8
7
|
addIcons({ add, close, share, create, trash, heart, star, camera, mic, send });
|
|
9
8
|
/**
|
|
10
9
|
* val-fab
|
|
@@ -36,7 +35,7 @@ addIcons({ add, close, share, create, trash, heart, star, camera, mic, send });
|
|
|
36
35
|
* @output actionClick: FabActionMetadata - Emits when an action is clicked
|
|
37
36
|
*/
|
|
38
37
|
export class FabComponent {
|
|
39
|
-
constructor(
|
|
38
|
+
constructor() {
|
|
40
39
|
this.fabClick = new EventEmitter();
|
|
41
40
|
this.actionClick = new EventEmitter();
|
|
42
41
|
this.isActivated = false;
|
|
@@ -77,7 +76,7 @@ export class FabComponent {
|
|
|
77
76
|
this.isActivated = false;
|
|
78
77
|
}
|
|
79
78
|
}
|
|
80
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FabComponent, deps: [
|
|
79
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
81
80
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FabComponent, isStandalone: true, selector: "val-fab", inputs: { props: "props" }, outputs: { fabClick: "fabClick", actionClick: "actionClick" }, ngImport: i0, template: `
|
|
82
81
|
<ion-fab
|
|
83
82
|
[vertical]="getVertical()"
|
|
@@ -143,11 +142,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
143
142
|
}
|
|
144
143
|
</ion-fab>
|
|
145
144
|
`, styles: [":host{display:block}ion-fab{position:relative}ion-fab-button{--box-shadow: 0 4px 12px rgba(0, 0, 0, .15);transition:transform .2s}ion-fab-button:hover:not([disabled]){transform:scale(1.05)}ion-fab-button:active:not([disabled]){transform:scale(.95)}ion-fab-list ion-fab-button{--box-shadow: 0 2px 8px rgba(0, 0, 0, .1)}\n"] }]
|
|
146
|
-
}], ctorParameters: () => [
|
|
145
|
+
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
147
146
|
type: Input
|
|
148
147
|
}], fabClick: [{
|
|
149
148
|
type: Output
|
|
150
149
|
}], actionClick: [{
|
|
151
150
|
type: Output
|
|
152
151
|
}] } });
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hdG9tcy9mYWIvZmFiLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUdsRyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBdUMvRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBUXZCO1FBTFUsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDcEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUU5RCxnQkFBVyxHQUFHLEtBQUssQ0FBQztJQUVMLENBQUM7SUFFaEIsV0FBVztRQUNULE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLFlBQVksQ0FBQztRQUNoRCxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDeEMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUFFLE9BQU8sUUFBUSxDQUFDO1FBQzlDLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxhQUFhO1FBQ1gsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksWUFBWSxDQUFDO1FBQ2hELElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFBRSxPQUFPLE9BQU8sQ0FBQztRQUMxQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQUUsT0FBTyxRQUFRLENBQUM7UUFDNUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDbEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUN2QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsTUFBeUI7UUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQzsrR0E1Q1UsWUFBWTttR0FBWixZQUFZLDhKQTlEYjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJULHlZQS9CUyxZQUFZLCtCQUFFLE1BQU0sNkdBQUUsWUFBWSw4T0FBRSxVQUFVLHdGQUFFLE9BQU87OzRGQStEdEQsWUFBWTtrQkFsRXhCLFNBQVM7K0JBQ0UsU0FBUyxjQUNQLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLFlBQ2xFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4QlQ7d0RBaUNRLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uRmFiLCBJb25GYWJCdXR0b24sIElvbkZhYkxpc3QsIElvbkljb24sIElvbkxhYmVsIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRmFiTWV0YWRhdGEsIEZhYkFjdGlvbk1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGFkZCwgY2xvc2UsIHNoYXJlLCBjcmVhdGUsIHRyYXNoLCBoZWFydCwgc3RhciwgY2FtZXJhLCBtaWMsIHNlbmQgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBJY29uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ljb25zLnNlcnZpY2UnO1xuXG5hZGRJY29ucyh7IGFkZCwgY2xvc2UsIHNoYXJlLCBjcmVhdGUsIHRyYXNoLCBoZWFydCwgc3RhciwgY2FtZXJhLCBtaWMsIHNlbmQgfSk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1mYWInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25GYWIsIElvbkZhYkJ1dHRvbiwgSW9uRmFiTGlzdCwgSW9uSWNvbiwgSW9uTGFiZWxdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tZmFiXG4gICAgICBbdmVydGljYWxdPVwiZ2V0VmVydGljYWwoKVwiXG4gICAgICBbaG9yaXpvbnRhbF09XCJnZXRIb3Jpem9udGFsKClcIlxuICAgICAgW2FjdGl2YXRlZF09XCJpc0FjdGl2YXRlZFwiXG4gICAgPlxuICAgICAgPGlvbi1mYWItYnV0dG9uXG4gICAgICAgIFtjb2xvcl09XCJwcm9wcy5jb2xvciB8fCAncHJpbWFyeSdcIlxuICAgICAgICBbc2l6ZV09XCJwcm9wcy5zaXplXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInByb3BzLmRpc2FibGVkXCJcbiAgICAgICAgW3RyYW5zbHVjZW50XT1cInByb3BzLnRyYW5zbHVjZW50XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uTWFpbkNsaWNrKClcIlxuICAgICAgPlxuICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiZ2V0TWFpbkljb24oKVwiPjwvaW9uLWljb24+XG4gICAgICA8L2lvbi1mYWItYnV0dG9uPlxuXG4gICAgICBAaWYgKHByb3BzLmFjdGlvbnMgJiYgcHJvcHMuYWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIDxpb24tZmFiLWxpc3QgW3NpZGVdPVwicHJvcHMuc2lkZSB8fCAndG9wJ1wiPlxuICAgICAgICAgIEBmb3IgKGFjdGlvbiBvZiBwcm9wcy5hY3Rpb25zOyB0cmFjayBhY3Rpb24udG9rZW4gfHwgJGluZGV4KSB7XG4gICAgICAgICAgICA8aW9uLWZhYi1idXR0b25cbiAgICAgICAgICAgICAgW2NvbG9yXT1cImFjdGlvbi5jb2xvciB8fCAnbGlnaHQnXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbi5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkFjdGlvbkNsaWNrKGFjdGlvbilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiYWN0aW9uLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tZmFiLWJ1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvaW9uLWZhYi1saXN0PlxuICAgICAgfVxuICAgIDwvaW9uLWZhYj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZmFiLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtZmFiXG4gKlxuICogQSBGbG9hdGluZyBBY3Rpb24gQnV0dG9uIGNvbXBvbmVudCB3aXRoIG9wdGlvbmFsIHNwZWVkIGRpYWwgYWN0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZSBTaW1wbGUgRkFCXG4gKiA8dmFsLWZhYiBbcHJvcHNdPVwie1xuICogICBpY29uOiAnYWRkJyxcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgcG9zaXRpb246ICdib3R0b20tZW5kJ1xuICogfVwiIChmYWJDbGljayk9XCJvbkNyZWF0ZSgpXCI+PC92YWwtZmFiPlxuICpcbiAqIEBleGFtcGxlIFNwZWVkIGRpYWwgRkFCXG4gKiA8dmFsLWZhYiBbcHJvcHNdPVwie1xuICogICBpY29uOiAnYWRkJyxcbiAqICAgaWNvbkFjdGl2YXRlZDogJ2Nsb3NlJyxcbiAqICAgcG9zaXRpb246ICdib3R0b20tZW5kJyxcbiAqICAgYWN0aW9uczogW1xuICogICAgIHsgaWNvbjogJ2NhbWVyYScsIGxhYmVsOiAnUGhvdG8nLCB0b2tlbjogJ3Bob3RvJyB9LFxuICogICAgIHsgaWNvbjogJ21pYycsIGxhYmVsOiAnQXVkaW8nLCB0b2tlbjogJ2F1ZGlvJyB9LFxuICogICAgIHsgaWNvbjogJ2NyZWF0ZScsIGxhYmVsOiAnTm90ZScsIHRva2VuOiAnbm90ZScgfVxuICogICBdLFxuICogICBzaWRlOiAndG9wJ1xuICogfVwiIChhY3Rpb25DbGljayk9XCJvbkFjdGlvbigkZXZlbnQpXCI+PC92YWwtZmFiPlxuICpcbiAqIEBpbnB1dCBwcm9wczogRmFiTWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgRkFCXG4gKiBAb3V0cHV0IGZhYkNsaWNrOiB2b2lkIC0gRW1pdHMgd2hlbiBtYWluIEZBQiBpcyBjbGlja2VkICh3aXRob3V0IGFjdGlvbnMpXG4gKiBAb3V0cHV0IGFjdGlvbkNsaWNrOiBGYWJBY3Rpb25NZXRhZGF0YSAtIEVtaXRzIHdoZW4gYW4gYWN0aW9uIGlzIGNsaWNrZWRcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHByb3BzOiBGYWJNZXRhZGF0YTtcblxuICBAT3V0cHV0KCkgZmFiQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBhY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RmFiQWN0aW9uTWV0YWRhdGE+KCk7XG5cbiAgaXNBY3RpdmF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgZ2V0VmVydGljYWwoKTogJ3RvcCcgfCAnYm90dG9tJyB8ICdjZW50ZXInIHtcbiAgICBjb25zdCBwb3MgPSB0aGlzLnByb3BzLnBvc2l0aW9uIHx8ICdib3R0b20tZW5kJztcbiAgICBpZiAocG9zLnN0YXJ0c1dpdGgoJ3RvcCcpKSByZXR1cm4gJ3RvcCc7XG4gICAgaWYgKHBvcy5zdGFydHNXaXRoKCdjZW50ZXInKSkgcmV0dXJuICdjZW50ZXInO1xuICAgIHJldHVybiAnYm90dG9tJztcbiAgfVxuXG4gIGdldEhvcml6b250YWwoKTogJ3N0YXJ0JyB8ICdlbmQnIHwgJ2NlbnRlcicge1xuICAgIGNvbnN0IHBvcyA9IHRoaXMucHJvcHMucG9zaXRpb24gfHwgJ2JvdHRvbS1lbmQnO1xuICAgIGlmIChwb3MuZW5kc1dpdGgoJ3N0YXJ0JykpIHJldHVybiAnc3RhcnQnO1xuICAgIGlmIChwb3MuZW5kc1dpdGgoJ2NlbnRlcicpKSByZXR1cm4gJ2NlbnRlcic7XG4gICAgcmV0dXJuICdlbmQnO1xuICB9XG5cbiAgZ2V0TWFpbkljb24oKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc0FjdGl2YXRlZCAmJiB0aGlzLnByb3BzLmljb25BY3RpdmF0ZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLmljb25BY3RpdmF0ZWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByb3BzLmljb247XG4gIH1cblxuICBvbk1haW5DbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy5hY3Rpb25zICYmIHRoaXMucHJvcHMuYWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmlzQWN0aXZhdGVkID0gIXRoaXMuaXNBY3RpdmF0ZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmFiQ2xpY2suZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uQWN0aW9uQ2xpY2soYWN0aW9uOiBGYWJBY3Rpb25NZXRhZGF0YSk6IHZvaWQge1xuICAgIHRoaXMuYWN0aW9uQ2xpY2suZW1pdChhY3Rpb24pO1xuICAgIGlmICh0aGlzLnByb3BzLmNsb3NlT25BY3Rpb24gIT09IGZhbHNlKSB7XG4gICAgICB0aGlzLmlzQWN0aXZhdGVkID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -72,6 +72,7 @@ export class PageTemplateComponent {
|
|
|
72
72
|
limit: props.descriptionLimit || 180,
|
|
73
73
|
content: props.pageDescription,
|
|
74
74
|
color: props.descriptionColor || 'dark',
|
|
75
|
+
expandText: 'more'
|
|
75
76
|
}"
|
|
76
77
|
/>
|
|
77
78
|
</div>
|
|
@@ -87,7 +88,7 @@ export class PageTemplateComponent {
|
|
|
87
88
|
<val-button
|
|
88
89
|
class="back-button"
|
|
89
90
|
[props]="{
|
|
90
|
-
text: props.backButtonText || '
|
|
91
|
+
text: props.backButtonText || 'Back',
|
|
91
92
|
color: 'dark',
|
|
92
93
|
size: 'small',
|
|
93
94
|
type: 'button',
|
|
@@ -137,6 +138,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
137
138
|
limit: props.descriptionLimit || 180,
|
|
138
139
|
content: props.pageDescription,
|
|
139
140
|
color: props.descriptionColor || 'dark',
|
|
141
|
+
expandText: 'more'
|
|
140
142
|
}"
|
|
141
143
|
/>
|
|
142
144
|
</div>
|
|
@@ -152,7 +154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
152
154
|
<val-button
|
|
153
155
|
class="back-button"
|
|
154
156
|
[props]="{
|
|
155
|
-
text: props.backButtonText || '
|
|
157
|
+
text: props.backButtonText || 'Back',
|
|
156
158
|
color: 'dark',
|
|
157
159
|
size: 'small',
|
|
158
160
|
type: 'button',
|
|
@@ -176,4 +178,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
176
178
|
}], onBack: [{
|
|
177
179
|
type: Output
|
|
178
180
|
}] } });
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL3BhZ2UtdGVtcGxhdGUvcGFnZS10ZW1wbGF0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBR3RFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJHO0FBOEZILE1BQU0sT0FBTyxxQkFBcUI7SUE3RmxDO1FBOEZVLFFBQUcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFcEM7O1dBRUc7UUFDTSxVQUFLLEdBQXlCLEVBQUUsQ0FBQztRQUUxQzs7V0FFRztRQUNPLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBUzdDO0lBUEM7O09BRUc7SUFDSCxVQUFVO1FBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xCLENBQUM7K0dBbkJVLHFCQUFxQjttR0FBckIscUJBQXFCLHdJQS9FdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvRFQsb1NBOURDLFlBQVksK0JBQ1osU0FBUyxvR0FDVCxVQUFVLG1GQUNWLFFBQVEsaUZBQ1IsdUJBQXVCLG1GQUN2QixPQUFPLHdFQUNQLE1BQU0sb0RBQ04sTUFBTSxrVEFDTixlQUFlOzs0RkFpRk4scUJBQXFCO2tCQTdGakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osU0FBUzt3QkFDVCxVQUFVO3dCQUNWLFFBQVE7d0JBQ1IsdUJBQXVCO3dCQUN2QixPQUFPO3dCQUNQLE1BQU07d0JBQ04sTUFBTTt3QkFDTixlQUFlO3FCQUNoQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RUOzhCQWlDUSxLQUFLO3NCQUFiLEtBQUs7Z0JBS0ksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBJb25Db2wsIElvbkdyaWQsIElvbkhlYWRlciwgSW9uUm93LCBJb25UaXRsZSwgSW9uVG9vbGJhciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgRXhwYW5kYWJsZVRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZXhwYW5kYWJsZS10ZXh0L2V4cGFuZGFibGUtdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnZVRlbXBsYXRlTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiB2YWwtcGFnZS10ZW1wbGF0ZVxuICpcbiAqIEEgcGFnZSB0ZW1wbGF0ZSBjb21wb25lbnQgd2l0aCB0aXRsZSwgZXhwYW5kYWJsZSBkZXNjcmlwdGlvbixcbiAqIGNvbnRlbnQgcHJvamVjdGlvbiwgYW5kIG9wdGlvbmFsIGJhY2sgbmF2aWdhdGlvbiBidXR0b24uXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtcGFnZS10ZW1wbGF0ZVxuICogICBbcHJvcHNdPVwie1xuICogICAgIHBhZ2VUaXRsZTogJ0dldHRpbmcgU3RhcnRlZCcsXG4gKiAgICAgcGFnZURlc2NyaXB0aW9uOiAnTGVhcm4gaG93IHRvIHVzZSBvdXIgY29tcG9uZW50cy4uLicsXG4gKiAgICAgc2hvd0JhY2tCdXR0b246IHRydWVcbiAqICAgfVwiXG4gKiA+XG4gKiAgIDxkaXYgZXh0cmEtZGVzY3JpcHRpb24+XG4gKiAgICAgPHA+QWRkaXRpb25hbCBpbmZvIGhlcmU8L3A+XG4gKiAgIDwvZGl2PlxuICpcbiAqICAgPCEtLSBNYWluIGNvbnRlbnQgLS0+XG4gKiAgIDxteS1jb250ZW50PjwvbXktY29udGVudD5cbiAqXG4gKiAgIDxkaXYgZXh0cmEtZm9vdGVyPlxuICogICAgIDxwPkZvb3RlciBjb250ZW50PC9wPlxuICogICA8L2Rpdj5cbiAqIDwvdmFsLXBhZ2UtdGVtcGxhdGU+XG4gKlxuICogQGlucHV0IHByb3BzIC0gUGFnZSB0ZW1wbGF0ZSBjb25maWd1cmF0aW9uXG4gKiBAb3V0cHV0IG9uQmFjayAtIEVtaXRzIHdoZW4gYmFjayBidXR0b24gaXMgY2xpY2tlZFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcGFnZS10ZW1wbGF0ZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uVGl0bGUsXG4gICAgRXhwYW5kYWJsZVRleHRDb21wb25lbnQsXG4gICAgSW9uR3JpZCxcbiAgICBJb25Sb3csXG4gICAgSW9uQ29sLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKHByb3BzLnBhZ2VUaXRsZSkge1xuICAgICAgPGlvbi1oZWFkZXIgW2NsYXNzLmlvbi1uby1ib3JkZXJdPVwidHJ1ZVwiPlxuICAgICAgICA8aW9uLXRvb2xiYXIgc3R5bGU9XCItLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1wiPlxuICAgICAgICAgIDxpb24tdGl0bGUgY2xhc3M9XCJwYWdlLXRpdGxlXCIgc2l6ZT1cImxhcmdlXCI+e3sgcHJvcHMucGFnZVRpdGxlIH19PC9pb24tdGl0bGU+XG4gICAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgICA8L2lvbi1oZWFkZXI+XG4gICAgfVxuICAgIDxpb24tZ3JpZD5cbiAgICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLWp1c3RpZnktY29udGVudC1jZW50ZXIgZGVzY3JpcHRpb24tcm93XCI+XG4gICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIHNpemUtbWQ9XCIxMFwiIHNpemUtbGc9XCI4XCI+XG4gICAgICAgICAgQGlmIChwcm9wcy5wYWdlRGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvbi1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgPHZhbC1leHBhbmRhYmxlLXRleHRcbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgbGltaXQ6IHByb3BzLmRlc2NyaXB0aW9uTGltaXQgfHwgMTgwLFxuICAgICAgICAgICAgICAgICAgY29udGVudDogcHJvcHMucGFnZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgY29sb3I6IHByb3BzLmRlc2NyaXB0aW9uQ29sb3IgfHwgJ2RhcmsnLFxuICAgICAgICAgICAgICAgICAgZXhwYW5kVGV4dDogJ21vcmUnXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2V4dHJhLWRlc2NyaXB0aW9uXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgPC9pb24tcm93PlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2V4dHJhLWZvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICBAaWYgKHByb3BzLnNob3dCYWNrQnV0dG9uKSB7XG4gICAgICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLWp1c3RpZnktY29udGVudC1jZW50ZXIgYmFjay1yb3dcIj5cbiAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIiBzaXplLW1kPVwiMTBcIiBzaXplLWxnPVwiOFwiPlxuICAgICAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJiYWNrLWJ1dHRvblwiXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgdGV4dDogcHJvcHMuYmFja0J1dHRvblRleHQgfHwgJ0JhY2snLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICBzdGF0ZTogJ0VOQUJMRUQnLFxuICAgICAgICAgICAgICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgICAgICAgICAgICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgICAgICAgICAgICBpY29uOiB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAnYXJyb3ctYmFjay1vdXRsaW5lJyxcbiAgICAgICAgICAgICAgICAgIHNsb3Q6ICdzdGFydCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVCYWNrKClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgIDwvaW9uLXJvdz5cbiAgICAgIH1cbiAgICA8L2lvbi1ncmlkPlxuICBgLFxuICBzdHlsZXM6IGBcbiAgICAucGFnZS10aXRsZSB7XG4gICAgICBtYXJnaW4tbGVmdDogLTRweDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgfVxuXG4gICAgLmRlc2NyaXB0aW9uLXJvdyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIH1cblxuICAgIC5kZXNjcmlwdGlvbi1jb250YWluZXIge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG5cbiAgICAuYmFjay1yb3cge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICB9XG5cbiAgICAuYmFjay1idXR0b24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDFyZW0gMDtcbiAgICB9XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VUZW1wbGF0ZUNvbXBvbmVudCB7XG4gIHByaXZhdGUgbmF2ID0gaW5qZWN0KE5hdkNvbnRyb2xsZXIpO1xuXG4gIC8qKlxuICAgKiBQYWdlIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogUGFnZVRlbXBsYXRlTWV0YWRhdGEgPSB7fTtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgYmFjayBidXR0b24gaXMgY2xpY2tlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBvbkJhY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgYmFjayBuYXZpZ2F0aW9uLlxuICAgKi9cbiAgaGFuZGxlQmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLm9uQmFjay5lbWl0KCk7XG4gICAgdGhpcy5uYXYuYmFjaygpO1xuICB9XG59XG4iXX0=
|
|
@@ -76,41 +76,29 @@ export class LinkProcessorService {
|
|
|
76
76
|
let processedText = text;
|
|
77
77
|
// 1. Procesar enlaces estilo Markdown [texto](url) primero
|
|
78
78
|
if (processMarkdownLinks) {
|
|
79
|
-
|
|
80
|
-
// const markdownMatches: RegExpExecArray[] = [];
|
|
81
|
-
// this.markdownLinkRegex.lastIndex = 0;
|
|
82
|
-
// let mdMatch: RegExpExecArray | null;
|
|
83
|
-
// while ((mdMatch = this.markdownLinkRegex.exec(processedText)) !== null) {
|
|
84
|
-
// markdownMatches.push(mdMatch);
|
|
85
|
-
// }
|
|
79
|
+
const markdownMatches = Array.from(processedText.matchAll(this.markdownLinkRegex));
|
|
86
80
|
// Procesar de atrás hacia adelante para mantener las posiciones
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
81
|
+
for (let i = markdownMatches.length - 1; i >= 0; i--) {
|
|
82
|
+
const match = markdownMatches[i];
|
|
83
|
+
const [fullMatch, linkText, url] = match;
|
|
84
|
+
const startIndex = match.index;
|
|
85
|
+
const endIndex = startIndex + fullMatch.length;
|
|
86
|
+
hasLinks = true;
|
|
87
|
+
const isExternal = /^https?:\/\//.test(url);
|
|
88
|
+
const target = (isExternal ? openExternalInNewTab : openInternalInNewTab)
|
|
89
|
+
? isExternal
|
|
90
|
+
? ' target="_blank" rel="noopener noreferrer"'
|
|
91
|
+
: ' target="_blank"'
|
|
92
|
+
: '';
|
|
93
|
+
const typeClass = isExternal ? externalLinkClass : internalLinkClass;
|
|
94
|
+
const classes = `${linkClass} ${typeClass}`.trim();
|
|
95
|
+
const linkHtml = `<a href="${url}"${target} class="${classes}">${linkText}</a>`;
|
|
96
|
+
processedText =
|
|
97
|
+
processedText.substring(0, startIndex) + linkHtml + processedText.substring(endIndex);
|
|
98
|
+
}
|
|
105
99
|
}
|
|
106
100
|
// 2. Procesar URLs externas directas
|
|
107
|
-
|
|
108
|
-
const urlMatches = [];
|
|
109
|
-
this.urlRegex.lastIndex = 0;
|
|
110
|
-
let urlMatch;
|
|
111
|
-
while ((urlMatch = this.urlRegex.exec(processedText)) !== null) {
|
|
112
|
-
urlMatches.push(urlMatch);
|
|
113
|
-
}
|
|
101
|
+
const urlMatches = Array.from(processedText.matchAll(this.urlRegex));
|
|
114
102
|
// Procesar de atrás hacia adelante para mantener las posiciones
|
|
115
103
|
for (let i = urlMatches.length - 1; i >= 0; i--) {
|
|
116
104
|
const match = urlMatches[i];
|
|
@@ -139,35 +127,29 @@ export class LinkProcessorService {
|
|
|
139
127
|
processedText.substring(0, startIndex) + replacement + processedText.substring(endIndex);
|
|
140
128
|
}
|
|
141
129
|
// 3. Procesar rutas internas
|
|
142
|
-
|
|
143
|
-
// const internalMatches: RegExpExecArray[] = [];
|
|
144
|
-
// this.internalRouteRegex.lastIndex = 0;
|
|
145
|
-
// let internalMatch: RegExpExecArray | null;
|
|
146
|
-
// while ((internalMatch = this.internalRouteRegex.exec(processedText)) !== null) {
|
|
147
|
-
// internalMatches.push(internalMatch);
|
|
148
|
-
// }
|
|
130
|
+
const internalMatches = Array.from(processedText.matchAll(this.internalRouteRegex));
|
|
149
131
|
// Procesar de atrás hacia adelante para mantener las posiciones
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
132
|
+
for (let i = internalMatches.length - 1; i >= 0; i--) {
|
|
133
|
+
const match = internalMatches[i];
|
|
134
|
+
const [fullMatch, prefix, route] = match;
|
|
135
|
+
const startIndex = match.index;
|
|
136
|
+
const endIndex = startIndex + fullMatch.length;
|
|
137
|
+
// Verificar que no esté ya dentro de un enlace HTML existente
|
|
138
|
+
const textBefore = processedText.substring(0, startIndex);
|
|
139
|
+
const lastOpenTag = textBefore.lastIndexOf('<a ');
|
|
140
|
+
const lastCloseTag = textBefore.lastIndexOf('</a>');
|
|
141
|
+
// Si hay un tag <a abierto sin cerrar, no procesamos
|
|
142
|
+
if (lastOpenTag > lastCloseTag) {
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
hasLinks = true;
|
|
146
|
+
const target = openInternalInNewTab ? ' target="_blank"' : '';
|
|
147
|
+
const classes = `${linkClass} ${internalLinkClass}`.trim();
|
|
148
|
+
const linkHtml = `<a href="${route}"${target} class="${classes}">${route}</a>`;
|
|
149
|
+
const replacement = `${prefix}${linkHtml}`;
|
|
150
|
+
processedText =
|
|
151
|
+
processedText.substring(0, startIndex) + replacement + processedText.substring(endIndex);
|
|
152
|
+
}
|
|
171
153
|
// Si hay enlaces, sanitizar el HTML
|
|
172
154
|
if (hasLinks) {
|
|
173
155
|
return this.sanitizer.bypassSecurityTrustHtml(processedText);
|
|
@@ -256,4 +238,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
256
238
|
providedIn: 'root',
|
|
257
239
|
}]
|
|
258
240
|
}], ctorParameters: () => [{ type: i1.DomSanitizer }] });
|
|
259
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1wcm9jZXNzb3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvbGluay1wcm9jZXNzb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFrQjNDOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBSUgsTUFBTSxPQUFPLG9CQUFvQjtJQVUvQixZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBVDNDLHFHQUFxRztRQUNwRixhQUFRLEdBQUcsc0JBQXNCLENBQUM7UUFFbkQseUZBQXlGO1FBQ3hFLHVCQUFrQixHQUFHLG1CQUFtQixDQUFDO1FBRTFELDJEQUEyRDtRQUMxQyxzQkFBaUIsR0FBRywwQkFBMEIsQ0FBQztJQUVsQixDQUFDO0lBRS9DOzs7O09BSUc7SUFDSyxtQkFBbUIsQ0FBQyxHQUFXO1FBQ3JDLG9GQUFvRjtRQUNwRixvRkFBb0Y7UUFDcEYsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQUM7UUFFekMsMEZBQTBGO1FBQzFGLG9EQUFvRDtRQUNwRCxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUvQyxJQUFJLG9CQUFvQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDN0MsNERBQTREO1lBQzVELEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FvQkc7SUFDSCxZ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LENBQUMsQ0FBQztZQUNuRCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzsrR0EvUVUsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuZXhwb3J0IGludGVyZmFjZSBMaW5rUHJvY2Vzc29yQ29uZmlnIHtcbiAgLyoqIFdoZXRoZXIgdG8gb3BlbiBleHRlcm5hbCBsaW5rcyBpbiBuZXcgdGFiIChkZWZhdWx0OiB0cnVlKSAqL1xuICBvcGVuRXh0ZXJuYWxJbk5ld1RhYj86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRvIG9wZW4gaW50ZXJuYWwgbGlua3MgaW4gbmV3IHRhYiAoZGVmYXVsdDogZmFsc2UpICovXG4gIG9wZW5JbnRlcm5hbEluTmV3VGFiPzogYm9vbGVhbjtcbiAgLyoqIEN1c3RvbSBDU1MgY2xhc3NlcyBmb3IgbGlua3MgKi9cbiAgbGlua0NsYXNzPzogc3RyaW5nO1xuICAvKiogQ3VzdG9tIENTUyBjbGFzc2VzIGZvciBleHRlcm5hbCBsaW5rcyAqL1xuICBleHRlcm5hbExpbmtDbGFzcz86IHN0cmluZztcbiAgLyoqIEN1c3RvbSBDU1MgY2xhc3NlcyBmb3IgaW50ZXJuYWwgbGlua3MgKi9cbiAgaW50ZXJuYWxMaW5rQ2xhc3M/OiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRvIHByb2Nlc3MgTWFya2Rvd24tc3R5bGUgbGlua3MgW3RleHRdKHVybCkgKGRlZmF1bHQ6IHRydWUpICovXG4gIHByb2Nlc3NNYXJrZG93bkxpbmtzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBMaW5rUHJvY2Vzc29yU2VydmljZSAtIFNlcnZpY2UgZm9yIHByb2Nlc3NpbmcgdGV4dCBjb250ZW50IHRvIGNvbnZlcnQgVVJMcyBhbmQgaW50ZXJuYWwgcm91dGVzIGludG8gY2xpY2thYmxlIGxpbmtzLlxuICpcbiAqIFRoaXMgc2VydmljZSBhdXRvbWF0aWNhbGx5IGRldGVjdHMgZXh0ZXJuYWwgVVJMcyAoaHR0cC9odHRwcyksIGludGVybmFsIHJvdXRlcyAoc3RhcnRpbmcgd2l0aCAvKSxcbiAqIGFuZCBNYXJrZG93bi1zdHlsZSBsaW5rcyBbdGV4dF0odXJsKSBhbmQgY29udmVydHMgdGhlbSBpbnRvIEhUTUwgYW5jaG9yIGVsZW1lbnRzIHdpdGggYXBwcm9wcmlhdGUgYXR0cmlidXRlcy5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0cnVjdG9yKHByaXZhdGUgbGlua1Byb2Nlc3NvcjogTGlua1Byb2Nlc3NvclNlcnZpY2UpIHt9XG4gKlxuICogcHJvY2Vzc1RleHQoKSB7XG4gKiAgIGNvbnN0IHRleHQgPSAnVmlzaXQgaHR0cHM6Ly9leGFtcGxlLmNvbSwgZ28gdG8gL3Byb2ZpbGUsIG9yIFtjaGVjayBkb2NzXShodHRwczovL2RvY3MuZXhhbXBsZS5jb20pJztcbiAqICAgY29uc3QgcHJvY2Vzc2VkID0gdGhpcy5saW5rUHJvY2Vzc29yLnByb2Nlc3NMaW5rcyh0ZXh0KTtcbiAqICAgLy8gUmV0dXJucyBTYWZlSHRtbCB3aXRoIGNsaWNrYWJsZSBsaW5rc1xuICogfVxuICogYGBgXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMaW5rUHJvY2Vzc29yU2VydmljZSB7XG4gIC8vIFJlZ2V4IHBhcmEgZGV0ZWN0YXIgVVJMcyBjb21wbGV0YXMgKGh0dHAvaHR0cHMpIC0gY2FwdHVyYSB0b2RhIGxhIFVSTCB5IGx1ZWdvIGxpbXBpYW1vcyBwdW50dWFjacOzblxuICBwcml2YXRlIHJlYWRvbmx5IHVybFJlZ2V4ID0gLyhodHRwcz86XFwvXFwvW15cXHNdKykvZztcblxuICAvLyBSZWdleCBwYXJhIGRldGVjdGFyIHJ1dGFzIGludGVybmFzIC0gY2FwdHVyYSB0b2RhIGxhIHJ1dGEgeSBsdWVnbyBsaW1waWFtb3MgcHVudHVhY2nDs25cbiAgcHJpdmF0ZSByZWFkb25seSBpbnRlcm5hbFJvdXRlUmVnZXggPSAvKFxcc3xeKShcXC9bXlxcc10qKS9nO1xuXG4gIC8vIFJlZ2V4IHBhcmEgZGV0ZWN0YXIgZW5sYWNlcyBlc3RpbG8gTWFya2Rvd24gW3RleHRvXSh1cmwpXG4gIHByaXZhdGUgcmVhZG9ubHkgbWFya2Rvd25MaW5rUmVnZXggPSAvXFxbKFteXFxdXSspXFxdXFwoKFteKV0rKVxcKS9nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XG5cbiAgLyoqXG4gICAqIExpbXBpYSBsYSBwdW50dWFjacOzbiBkZWwgZmluYWwgZGUgdW5hIFVSTC5cbiAgICogTWFudGllbmUgY2FyYWN0ZXJlcyB2w6FsaWRvcyBkZSBVUkwgcGVybyByZW11ZXZlIHNpZ25vcyBkZSBwdW50dWFjacOzbiBjb211bmVzIGFsIGZpbmFsLlxuICAgKiBQcmVzZXJ2YSBwYXLDoW1ldHJvcyBkZSBjb25zdWx0YSwgZnJhZ21lbnRvcyB5IGNhcmFjdGVyZXMgdsOhbGlkb3MgZW4gVVJMcy5cbiAgICovXG4gIHByaXZhdGUgY2xlYW5VcmxQdW5jdHVhdGlvbih1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gQ2FyYWN0ZXJlcyBxdWUgY29uc2lkZXJhbW9zIHB1bnR1YWNpw7NuIGFsIGZpbmFsIGRlIG9yYWNpw7NuLCBwZXJvIE5PIHBhcnRlIGRlIFVSTHNcbiAgICAvLyBObyBpbmNsdWltb3MgJiBvID0gcXVlIHNvbiBwYXJ0ZSBkZSBxdWVyeSBwYXJhbXMsIG5pICMgcXVlIGVzIHBhcnRlIGRlIGZyYWdtZW50b3NcbiAgICBjb25zdCB0cmFpbGluZ1B1bmN0dWF0aW9uID0gL1suLDshPyldKyQvO1xuXG4gICAgLy8gQ2Fzb3MgZXNwZWNpYWxlczogc2kgbGEgVVJMIHRlcm1pbmEgY29uIHBhcsOpbnRlc2lzIHBlcm8gbm8gdGllbmUgcGFyw6ludGVzaXMgZGUgYXBlcnR1cmFcbiAgICAvLyBwcm9iYWJsZW1lbnRlIGVsIHBhcsOpbnRlc2lzIG5vIGVzIHBhcnRlIGRlIGxhIFVSTFxuICAgIGNvbnN0IGhhc09wZW5pbmdQYXJlbiA9IHVybC5pbmNsdWRlcygnKCcpO1xuICAgIGNvbnN0IGVuZHNXaXRoQ2xvc2luZ1BhcmVuID0gdXJsLmVuZHNXaXRoKCcpJyk7XG5cbiAgICBpZiAoZW5kc1dpdGhDbG9zaW5nUGFyZW4gJiYgIWhhc09wZW5pbmdQYXJlbikge1xuICAgICAgLy8gUmVtb3ZlciBlbCBwYXLDqW50ZXNpcyBkZSBjaWVycmUgc2kgbm8gaGF5IHVubyBkZSBhcGVydHVyYVxuICAgICAgdXJsID0gdXJsLnJlcGxhY2UoL1xcKSQvLCAnJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVybC5yZXBsYWNlKHRyYWlsaW5nUHVuY3R1YXRpb24sICcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNhIHRleHRvIHBhcmEgY29udmVydGlyIGVubGFjZXMgZW4gZWxlbWVudG9zIDxhPiBjbGlja2VhYmxlcy5cbiAgICogRGV0ZWN0YSBhdXRvbcOhdGljYW1lbnRlIFVSTHMgZXh0ZXJuYXMsIHJ1dGFzIGludGVybmFzIHkgZW5sYWNlcyBlc3RpbG8gTWFya2Rvd24uXG4gICAqXG4gICAqIEBwYXJhbSB0ZXh0IC0gVGV4dG8gYSBwcm9jZXNhclxuICAgKiBAcGFyYW0gY29uZmlnIC0gQ29uZmlndXJhY2nDs24gZGVsIHByb2Nlc2FtaWVudG9cbiAgICogQHJldHVybnMgU2FmZUh0bWwgY29uIGVubGFjZXMgcHJvY2VzYWRvcyBvIHN0cmluZyBvcmlnaW5hbFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHJlc3VsdCA9IHRoaXMubGlua1Byb2Nlc3Nvci5wcm9jZXNzTGlua3MoXG4gICAqICAgJ1Zpc2l0IGh0dHBzOi8vZXhhbXBsZS5jb20sIGdvIHRvIC9wcm9maWxlLCBvciBbY2hlY2sgZG9jc10oaHR0cHM6Ly9kb2NzLmV4YW1wbGUuY29tKScsXG4gICAqICAge1xuICAgKiAgICAgb3BlbkV4dGVybmFsSW5OZXdUYWI6IHRydWUsXG4gICAqICAgICBvcGVuSW50ZXJuYWxJbk5ld1RhYjogZmFsc2UsXG4gICAqICAgICBwcm9jZXNzTWFya2Rvd25MaW5rczogdHJ1ZSxcbiAgICogICAgIGxpbmtDbGFzczogJ2N1c3RvbS1saW5rJ1xuICAgKiAgIH1cbiAgICogKTtcbiAgICogYGBgXG4gICAqL1xuICBwcm9jZXNzTGlua3ModGV4dDogc3RyaW5nLCBjb25maWc6IExpbmtQcm9jZXNzb3JDb25maWcgPSB7fSk6IFNhZmVIdG1sIHwgc3RyaW5nIHtcbiAgICBpZiAoIXRleHQpIHJldHVybiAnJztcblxuICAgIGNvbnN0IHtcbiAgICAgIG9wZW5FeHRlcm5hbEluTmV3VGFiID0gdHJ1ZSxcbiAgICAgIG9wZW5JbnRlcm5hbEluTmV3VGFiID0gZmFsc2UsXG4gICAgICBsaW5rQ2xhc3MgPSAncHJvY2Vzc2VkLWxpbmsnLFxuICAgICAgZXh0ZXJuYWxMaW5rQ2xhc3MgPSAnZXh0ZXJuYWwtbGluaycsXG4gICAgICBpbnRlcm5hbExpbmtDbGFzcyA9ICdpbnRlcm5hbC1saW5rJyxcbiAgICAgIHByb2Nlc3NNYXJrZG93bkxpbmtzID0gdHJ1ZSxcbiAgICB9ID0gY29uZmlnO1xuXG4gICAgbGV0IGhhc0xpbmtzID0gZmFsc2U7XG4gICAgbGV0IHByb2Nlc3NlZFRleHQgPSB0ZXh0O1xuXG4gICAgLy8gMS4gUHJvY2VzYXIgZW5sYWNlcyBlc3RpbG8gTWFya2Rvd24gW3RleHRvXSh1cmwpIHByaW1lcm9cbiAgICBpZiAocHJvY2Vzc01hcmtkb3duTGlua3MpIHtcbiAgICAgIC8vIC8vIFVzYXIgZXhlYyBlbiBidWNsZSAoY29tcGF0aWJsZSBjb24gRVMyMDE4KVxuICAgICAgLy8gY29uc3QgbWFya2Rvd25NYXRjaGVzOiBSZWdFeHBFeGVjQXJyYXlbXSA9IFtdO1xuICAgICAgLy8gdGhpcy5tYXJrZG93bkxpbmtSZWdleC5sYXN0SW5kZXggPSAwO1xuICAgICAgLy8gbGV0IG1kTWF0Y2g6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGw7XG4gICAgICAvLyB3aGlsZSAoKG1kTWF0Y2ggPSB0aGlzLm1hcmtkb3duTGlua1JlZ2V4LmV4ZWMocHJvY2Vzc2VkVGV4dCkpICE9PSBudWxsKSB7XG4gICAgICAvLyAgIG1hcmtkb3duTWF0Y2hlcy5wdXNoKG1kTWF0Y2gpO1xuICAgICAgLy8gfVxuXG4gICAgICAvLyBQcm9jZXNhciBkZSBhdHLDoXMgaGFjaWEgYWRlbGFudGUgcGFyYSBtYW50ZW5lciBsYXMgcG9zaWNpb25lc1xuICAgICAgLy8gZm9yIChsZXQgaSA9IG1hcmtkb3duTWF0Y2hlcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgLy8gICBjb25zdCBtYXRjaCA9IG1hcmtkb3duTWF0Y2hlc1tpXTtcbiAgICAgIC8vICAgY29uc3QgW2Z1bGxNYXRjaCwgbGlua1RleHQsIHVybF0gPSBtYXRjaDtcbiAgICAgIC8vICAgY29uc3Qgc3RhcnRJbmRleCA9IG1hdGNoLmluZGV4ITtcbiAgICAgIC8vICAgY29uc3QgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgZnVsbE1hdGNoLmxlbmd0aDtcblxuICAgICAgLy8gICBoYXNMaW5rcyA9IHRydWU7XG4gICAgICAvLyAgIGNvbnN0IGlzRXh0ZXJuYWwgPSAvXmh0dHBzPzpcXC9cXC8vLnRlc3QodXJsKTtcbiAgICAgIC8vICAgY29uc3QgdGFyZ2V0ID0gKGlzRXh0ZXJuYWwgPyBvcGVuRXh0ZXJuYWxJbk5ld1RhYiA6IG9wZW5JbnRlcm5hbEluTmV3VGFiKVxuICAgICAgLy8gICAgID8gaXNFeHRlcm5hbFxuICAgICAgLy8gICAgICAgPyAnIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIidcbiAgICAgIC8vICAgICAgIDogJyB0YXJnZXQ9XCJfYmxhbmtcIidcbiAgICAgIC8vICAgICA6ICcnO1xuICAgICAgLy8gICBjb25zdCB0eXBlQ2xhc3MgPSBpc0V4dGVybmFsID8gZXh0ZXJuYWxMaW5rQ2xhc3MgOiBpbnRlcm5hbExpbmtDbGFzcztcbiAgICAgIC8vICAgY29uc3QgY2xhc3NlcyA9IGAke2xpbmtDbGFzc30gJHt0eXBlQ2xhc3N9YC50cmltKCk7XG4gICAgICAvLyAgIGNvbnN0IGxpbmtIdG1sID0gYDxhIGhyZWY9XCIke3VybH1cIiR7dGFyZ2V0fSBjbGFzcz1cIiR7Y2xhc3Nlc31cIj4ke2xpbmtUZXh0fTwvYT5gO1xuXG4gICAgICAvLyAgIHByb2Nlc3NlZFRleHQgPVxuICAgICAgLy8gICAgIHByb2Nlc3NlZFRleHQuc3Vic3RyaW5nKDAsIHN0YXJ0SW5kZXgpICsgbGlua0h0bWwgKyBwcm9jZXNzZWRUZXh0LnN1YnN0cmluZyhlbmRJbmRleCk7XG4gICAgICAvLyB9XG4gICAgfVxuXG4gICAgLy8gMi4gUHJvY2VzYXIgVVJMcyBleHRlcm5hcyBkaXJlY3Rhc1xuICAgIC8vIFVzYXIgZXhlYyBlbiBidWNsZSAoY29tcGF0aWJsZSBjb24gRVMyMDE4KVxuICAgIGNvbnN0IHVybE1hdGNoZXM6IFJlZ0V4cEV4ZWNBcnJheVtdID0gW107XG4gICAgdGhpcy51cmxSZWdleC5sYXN0SW5kZXggPSAwO1xuICAgIGxldCB1cmxNYXRjaDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbDtcbiAgICB3aGlsZSAoKHVybE1hdGNoID0gdGhpcy51cmxSZWdleC5leGVjKHByb2Nlc3NlZFRleHQpKSAhPT0gbnVsbCkge1xuICAgICAgdXJsTWF0Y2hlcy5wdXNoKHVybE1hdGNoKTtcbiAgICB9XG5cbiAgICAvLyBQcm9jZXNhciBkZSBhdHLDoXMgaGFjaWEgYWRlbGFudGUgcGFyYSBtYW50ZW5lciBsYXMgcG9zaWNpb25lc1xuICAgIGZvciAobGV0IGkgPSB1cmxNYXRjaGVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBjb25zdCBtYXRjaCA9IHVybE1hdGNoZXNbaV07XG4gICAgICBjb25zdCBbZnVsbE1hdGNoLCB1cmxdID0gbWF0Y2g7XG4gICAgICBjb25zdCBzdGFydEluZGV4ID0gbWF0Y2guaW5kZXghO1xuICAgICAgY29uc3QgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgZnVsbE1hdGNoLmxlbmd0aDtcblxuICAgICAgLy8gVmVyaWZpY2FyIHF1ZSBubyBlc3TDqSB5YSBkZW50cm8gZGUgdW4gZW5sYWNlIEhUTUwgZXhpc3RlbnRlXG4gICAgICBjb25zdCB0ZXh0QmVmb3JlID0gcHJvY2Vzc2VkVGV4dC5zdWJzdHJpbmcoMCwgc3RhcnRJbmRleCk7XG4gICAgICBjb25zdCBsYXN0T3BlblRhZyA9IHRleHRCZWZvcmUubGFzdEluZGV4T2YoJzxhICcpO1xuICAgICAgY29uc3QgbGFzdENsb3NlVGFnID0gdGV4dEJlZm9yZS5sYXN0SW5kZXhPZignPC9hPicpO1xuXG4gICAgICAvLyBTaSBoYXkgdW4gdGFnIDxhIGFiaWVydG8gc2luIGNlcnJhciwgbm8gcHJvY2VzYW1vc1xuICAgICAgaWYgKGxhc3RPcGVuVGFnID4gbGFzdENsb3NlVGFnKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBMaW1waWFyIHB1bnR1YWNpw7NuIGRlbCBmaW5hbCBkZSBsYSBVUkxcbiAgICAgIGNvbnN0IGNsZWFuVXJsID0gdGhpcy5jbGVhblVybFB1bmN0dWF0aW9uKHVybCk7XG4gICAgICBjb25zdCBwdW5jdHVhdGlvblJlbW92ZWQgPSB1cmwgIT09IGNsZWFuVXJsO1xuICAgICAgY29uc3QgcHVuY3R1YXRpb24gPSBwdW5jdHVhdGlvblJlbW92ZWQgPyB1cmwuc3Vic3RyaW5nKGNsZWFuVXJsLmxlbmd0aCkgOiAnJztcblxuICAgICAgaGFzTGlua3MgPSB0cnVlO1xuICAgICAgY29uc3QgdGFyZ2V0ID0gb3BlbkV4dGVybmFsSW5OZXdUYWIgPyAnIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIicgOiAnJztcbiAgICAgIGNvbnN0IGNsYXNzZXMgPSBgJHtsaW5rQ2xhc3N9ICR7ZXh0ZXJuYWxMaW5rQ2xhc3N9YC50cmltKCk7XG4gICAgICBjb25zdCBsaW5rSHRtbCA9IGA8YSBocmVmPVwiJHtjbGVhblVybH1cIiR7dGFyZ2V0fSBjbGFzcz1cIiR7Y2xhc3Nlc31cIj4ke2NsZWFuVXJsfTwvYT5gO1xuXG4gICAgICAvLyBSZWVtcGxhemFyIGVsIFVSTCBvcmlnaW5hbCBjb24gZWwgZW5sYWNlICsgcHVudHVhY2nDs24gc2kgZXhpc3TDrWFcbiAgICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gcHVuY3R1YXRpb25SZW1vdmVkID8gbGlua0h0bWwgKyBwdW5jdHVhdGlvbiA6IGxpbmtIdG1sO1xuICAgICAgcHJvY2Vzc2VkVGV4dCA9XG4gICAgICAgIHByb2Nlc3NlZFRleHQuc3Vic3RyaW5nKDAsIHN0YXJ0SW5kZXgpICsgcmVwbGFjZW1lbnQgKyBwcm9jZXNzZWRUZXh0LnN1YnN0cmluZyhlbmRJbmRleCk7XG4gICAgfVxuXG4gICAgLy8gMy4gUHJvY2VzYXIgcnV0YXMgaW50ZXJuYXNcbiAgICAvLyAvLyBVc2FyIGV4ZWMgZW4gYnVjbGUgKGNvbXBhdGlibGUgY29uIEVTMjAxOClcbiAgICAvLyBjb25zdCBpbnRlcm5hbE1hdGNoZXM6IFJlZ0V4cEV4ZWNBcnJheVtdID0gW107XG4gICAgLy8gdGhpcy5pbnRlcm5hbFJvdXRlUmVnZXgubGFzdEluZGV4ID0gMDtcbiAgICAvLyBsZXQgaW50ZXJuYWxNYXRjaDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbDtcbiAgICAvLyB3aGlsZSAoKGludGVybmFsTWF0Y2ggPSB0aGlzLmludGVybmFsUm91dGVSZWdleC5leGVjKHByb2Nlc3NlZFRleHQpKSAhPT0gbnVsbCkge1xuICAgIC8vICAgaW50ZXJuYWxNYXRjaGVzLnB1c2goaW50ZXJuYWxNYXRjaCk7XG4gICAgLy8gfVxuXG4gICAgLy8gUHJvY2VzYXIgZGUgYXRyw6FzIGhhY2lhIGFkZWxhbnRlIHBhcmEgbWFudGVuZXIgbGFzIHBvc2ljaW9uZXNcbiAgICAvLyBmb3IgKGxldCBpID0gaW50ZXJuYWxNYXRjaGVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgLy8gICBjb25zdCBtYXRjaCA9IGludGVybmFsTWF0Y2hlc1tpXTtcbiAgICAvLyAgIGNvbnN0IFtmdWxsTWF0Y2gsIHByZWZpeCwgcm91dGVdID0gbWF0Y2g7XG4gICAgLy8gICBjb25zdCBzdGFydEluZGV4ID0gbWF0Y2guaW5kZXghO1xuICAgIC8vICAgY29uc3QgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgZnVsbE1hdGNoLmxlbmd0aDtcblxuICAgIC8vICAgLy8gVmVyaWZpY2FyIHF1ZSBubyBlc3TDqSB5YSBkZW50cm8gZGUgdW4gZW5sYWNlIEhUTUwgZXhpc3RlbnRlXG4gICAgLy8gICBjb25zdCB0ZXh0QmVmb3JlID0gcHJvY2Vzc2VkVGV4dC5zdWJzdHJpbmcoMCwgc3RhcnRJbmRleCk7XG4gICAgLy8gICBjb25zdCBsYXN0T3BlblRhZyA9IHRleHRCZWZvcmUubGFzdEluZGV4T2YoJzxhICcpO1xuICAgIC8vICAgY29uc3QgbGFzdENsb3NlVGFnID0gdGV4dEJlZm9yZS5sYXN0SW5kZXhPZignPC9hPicpO1xuXG4gICAgLy8gICAvLyBTaSBoYXkgdW4gdGFnIDxhIGFiaWVydG8gc2luIGNlcnJhciwgbm8gcHJvY2VzYW1vc1xuICAgIC8vICAgaWYgKGxhc3RPcGVuVGFnID4gbGFzdENsb3NlVGFnKSB7XG4gICAgLy8gICAgIGNvbnRpbnVlO1xuICAgIC8vICAgfVxuXG4gICAgLy8gICBoYXNMaW5rcyA9IHRydWU7XG4gICAgLy8gICBjb25zdCB0YXJnZXQgPSBvcGVuSW50ZXJuYWxJbk5ld1RhYiA/ICcgdGFyZ2V0PVwiX2JsYW5rXCInIDogJyc7XG4gICAgLy8gICBjb25zdCBjbGFzc2VzID0gYCR7bGlua0NsYXNzfSAke2ludGVybmFsTGlua0NsYXNzfWAudHJpbSgpO1xuICAgIC8vICAgY29uc3QgbGlua0h0bWwgPSBgPGEgaHJlZj1cIiR7cm91dGV9XCIke3RhcmdldH0gY2xhc3M9XCIke2NsYXNzZXN9XCI+JHtyb3V0ZX08L2E+YDtcblxuICAgIC8vICAgY29uc3QgcmVwbGFjZW1lbnQgPSBgJHtwcmVmaXh9JHtsaW5rSHRtbH1gO1xuICAgIC8vICAgcHJvY2Vzc2VkVGV4dCA9XG4gICAgLy8gICAgIHByb2Nlc3NlZFRleHQuc3Vic3RyaW5nKDAsIHN0YXJ0SW5kZXgpICsgcmVwbGFjZW1lbnQgKyBwcm9jZXNzZWRUZXh0LnN1YnN0cmluZyhlbmRJbmRleCk7XG4gICAgLy8gfVxuXG4gICAgLy8gU2kgaGF5IGVubGFjZXMsIHNhbml0aXphciBlbCBIVE1MXG4gICAgaWYgKGhhc0xpbmtzKSB7XG4gICAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwocHJvY2Vzc2VkVGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRleHQ7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZWN0YSBzaSB1biB0ZXh0byBjb250aWVuZSBlbmxhY2VzIChVUkxzLCBydXRhcyBpbnRlcm5hcyBvIGVubGFjZXMgTWFya2Rvd24pLlxuICAgKlxuICAgKiBAcGFyYW0gdGV4dCAtIFRleHRvIGEgYW5hbGl6YXJcbiAgICogQHJldHVybnMgdHJ1ZSBzaSBjb250aWVuZSBlbmxhY2VzXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgaGFzTGlua3MgPSB0aGlzLmxpbmtQcm9jZXNzb3IuaGFzTGlua3MoJ1Zpc2l0IGh0dHBzOi8vZXhhbXBsZS5jb20gb3IgW2RvY3NdKGh0dHBzOi8vZG9jcy5jb20pJyk7XG4gICAqIC8vIFJldHVybnM6IHRydWVcbiAgICogYGBgXG4gICAqL1xuICBoYXNMaW5rcyh0ZXh0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXRleHQpIHJldHVybiBmYWxzZTtcblxuICAgIC8vIFJlc2V0IHJlZ2V4IGluZGljZXNcbiAgICB0aGlzLnVybFJlZ2V4Lmxhc3RJbmRleCA9IDA7XG4gICAgdGhpcy5pbnRlcm5hbFJvdXRlUmVnZXgubGFzdEluZGV4ID0gMDtcbiAgICB0aGlzLm1hcmtkb3duTGlua1JlZ2V4Lmxhc3RJbmRleCA9IDA7XG5cbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy51cmxSZWdleC50ZXN0KHRleHQpIHx8XG4gICAgICB0aGlzLmludGVybmFsUm91dGVSZWdleC50ZXN0KHRleHQpIHx8XG4gICAgICB0aGlzLm1hcmtkb3duTGlua1JlZ2V4LnRlc3QodGV4dClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhZSB0b2RvcyBsb3MgZW5sYWNlcyBkZSB1biB0ZXh0by5cbiAgICpcbiAgICogQHBhcmFtIHRleHQgLSBUZXh0byBhIGFuYWxpemFyXG4gICAqIEByZXR1cm5zIEFycmF5IGRlIGVubGFjZXMgZW5jb250cmFkb3MgY29uIHN1IHRpcG8geSB0ZXh0byAoc2kgZXMgTWFya2Rvd24pXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgbGlua3MgPSB0aGlzLmxpbmtQcm9jZXNzb3IuZXh0cmFjdExpbmtzKCdWaXNpdCBodHRwczovL2V4YW1wbGUuY29tLCAvcHJvZmlsZSwgb3IgW2RvY3NdKGh0dHBzOi8vZG9jcy5jb20pJyk7XG4gICAqIC8vIFJldHVybnM6IFtcbiAgICogLy8gICB7IHVybDogJ2h0dHBzOi8vZXhhbXBsZS5jb20nLCB0eXBlOiAnZXh0ZXJuYWwnLCB0ZXh0OiAnaHR0cHM6Ly9leGFtcGxlLmNvbScgfSxcbiAgICogLy8gICB7IHVybDogJy9wcm9maWxlJywgdHlwZTogJ2ludGVybmFsJywgdGV4dDogJy9wcm9maWxlJyB9LFxuICAgKiAvLyAgIHsgdXJsOiAnaHR0cHM6Ly9kb2NzLmNvbScsIHR5cGU6ICdleHRlcm5hbCcsIHRleHQ6ICdkb2NzJyB9XG4gICAqIC8vIF1cbiAgICogYGBgXG4gICAqL1xuICBleHRyYWN0TGlua3ModGV4dDogc3RyaW5nKTogQXJyYXk8eyB1cmw6IHN0cmluZzsgdHlwZTogJ2V4dGVybmFsJyB8ICdpbnRlcm5hbCc7IHRleHQ6IHN0cmluZyB9PiB7XG4gICAgaWYgKCF0ZXh0KSByZXR1cm4gW107XG5cbiAgICBjb25zdCBsaW5rczogQXJyYXk8eyB1cmw6IHN0cmluZzsgdHlwZTogJ2V4dGVybmFsJyB8ICdpbnRlcm5hbCc7IHRleHQ6IHN0cmluZyB9PiA9IFtdO1xuXG4gICAgLy8gUmVzZXQgcmVnZXggaW5kaWNlc1xuICAgIHRoaXMudXJsUmVnZXgubGFzdEluZGV4ID0gMDtcbiAgICB0aGlzLmludGVybmFsUm91dGVSZWdleC5sYXN0SW5kZXggPSAwO1xuICAgIHRoaXMubWFya2Rvd25MaW5rUmVnZXgubGFzdEluZGV4ID0gMDtcblxuICAgIC8vIEV4dHJhZXIgZW5sYWNlcyBNYXJrZG93biBwcmltZXJvXG4gICAgbGV0IG1hdGNoO1xuICAgIHdoaWxlICgobWF0Y2ggPSB0aGlzLm1hcmtkb3duTGlua1JlZ2V4LmV4ZWModGV4dCkpICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB1cmwgPSBtYXRjaFsyXTtcbiAgICAgIGNvbnN0IGxpbmtUZXh0ID0gbWF0Y2hbMV07XG4gICAgICBjb25zdCB0eXBlID0gL15odHRwcz86XFwvXFwvLy50ZXN0KHVybCkgPyAnZXh0ZXJuYWwnIDogJ2ludGVybmFsJztcbiAgICAgIGxpbmtzLnB1c2goeyB1cmwsIHR5cGUsIHRleHQ6IGxpbmtUZXh0IH0pO1xuICAgIH1cblxuICAgIC8vIEV4dHJhZXIgVVJMcyBleHRlcm5hcyBkaXJlY3Rhc1xuICAgIHdoaWxlICgobWF0Y2ggPSB0aGlzLnVybFJlZ2V4LmV4ZWModGV4dCkpICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB1cmwgPSBtYXRjaFsxXTtcbiAgICAgIC8vIFZlcmlmaWNhciBxdWUgbm8gZXN0w6kgeWEgY2FwdHVyYWRvIGNvbW8gTWFya2Rvd24gbGlua1xuICAgICAgaWYgKCFsaW5rcy5zb21lKGxpbmsgPT4gbGluay51cmwgPT09IHVybCkpIHtcbiAgICAgICAgbGlua3MucHVzaCh7IHVybCwgdHlwZTogJ2V4dGVybmFsJywgdGV4dDogdXJsIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4dHJhZXIgcnV0YXMgaW50ZXJuYXMgZGlyZWN0YXNcbiAgICB3aGlsZSAoKG1hdGNoID0gdGhpcy5pbnRlcm5hbFJvdXRlUmVnZXguZXhlYyh0ZXh0KSkgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHVybCA9IG1hdGNoWzJdO1xuICAgICAgLy8gVmVyaWZpY2FyIHF1ZSBubyBlc3TDqSB5YSBjYXB0dXJhZG8gY29tbyBNYXJrZG93biBsaW5rXG4gICAgICBpZiAoIWxpbmtzLnNvbWUobGluayA9PiBsaW5rLnVybCA9PT0gdXJsKSkge1xuICAgICAgICBsaW5rcy5wdXNoKHsgdXJsLCB0eXBlOiAnaW50ZXJuYWwnLCB0ZXh0OiB1cmwgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpbmtzO1xuICB9XG59XG4iXX0=
|
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1wcm9jZXNzb3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvbGluay1wcm9jZXNzb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFrQjNDOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBSUgsTUFBTSxPQUFPLG9CQUFvQjtJQVUvQixZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBVDNDLHFHQUFxRztRQUNwRixhQUFRLEdBQUcsc0JBQXNCLENBQUM7UUFFbkQseUZBQXlGO1FBQ3hFLHVCQUFrQixHQUFHLG1CQUFtQixDQUFDO1FBRTFELDJEQUEyRDtRQUMxQyxzQkFBaUIsR0FBRywwQkFBMEIsQ0FBQztJQUVsQixDQUFDO0lBRS9DOzs7O09BSUc7SUFDSyxtQkFBbUIsQ0FBQyxHQUFXO1FBQ3JDLG9GQUFvRjtRQUNwRixvRkFBb0Y7UUFDcEYsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQUM7UUFFekMsMEZBQTBGO1FBQzFGLG9EQUFvRDtRQUNwRCxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUvQyxJQUFJLG9CQUFvQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDN0MsNERBQTREO1lBQzVELEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FvQkc7SUFDSCxZ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QUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUM3RCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsd0RBQXdEO1lBQ3hELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMxQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDbkQsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBN1BVLG9CQUFvQjttSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlua1Byb2Nlc3NvckNvbmZpZyB7XG4gIC8qKiBXaGV0aGVyIHRvIG9wZW4gZXh0ZXJuYWwgbGlua3MgaW4gbmV3IHRhYiAoZGVmYXVsdDogdHJ1ZSkgKi9cbiAgb3BlbkV4dGVybmFsSW5OZXdUYWI/OiBib29sZWFuO1xuICAvKiogV2hldGhlciB0byBvcGVuIGludGVybmFsIGxpbmtzIGluIG5ldyB0YWIgKGRlZmF1bHQ6IGZhbHNlKSAqL1xuICBvcGVuSW50ZXJuYWxJbk5ld1RhYj86IGJvb2xlYW47XG4gIC8qKiBDdXN0b20gQ1NTIGNsYXNzZXMgZm9yIGxpbmtzICovXG4gIGxpbmtDbGFzcz86IHN0cmluZztcbiAgLyoqIEN1c3RvbSBDU1MgY2xhc3NlcyBmb3IgZXh0ZXJuYWwgbGlua3MgKi9cbiAgZXh0ZXJuYWxMaW5rQ2xhc3M/OiBzdHJpbmc7XG4gIC8qKiBDdXN0b20gQ1NTIGNsYXNzZXMgZm9yIGludGVybmFsIGxpbmtzICovXG4gIGludGVybmFsTGlua0NsYXNzPzogc3RyaW5nO1xuICAvKiogV2hldGhlciB0byBwcm9jZXNzIE1hcmtkb3duLXN0eWxlIGxpbmtzIFt0ZXh0XSh1cmwpIChkZWZhdWx0OiB0cnVlKSAqL1xuICBwcm9jZXNzTWFya2Rvd25MaW5rcz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogTGlua1Byb2Nlc3NvclNlcnZpY2UgLSBTZXJ2aWNlIGZvciBwcm9jZXNzaW5nIHRleHQgY29udGVudCB0byBjb252ZXJ0IFVSTHMgYW5kIGludGVybmFsIHJvdXRlcyBpbnRvIGNsaWNrYWJsZSBsaW5rcy5cbiAqXG4gKiBUaGlzIHNlcnZpY2UgYXV0b21hdGljYWxseSBkZXRlY3RzIGV4dGVybmFsIFVSTHMgKGh0dHAvaHR0cHMpLCBpbnRlcm5hbCByb3V0ZXMgKHN0YXJ0aW5nIHdpdGggLyksXG4gKiBhbmQgTWFya2Rvd24tc3R5bGUgbGlua3MgW3RleHRdKHVybCkgYW5kIGNvbnZlcnRzIHRoZW0gaW50byBIVE1MIGFuY2hvciBlbGVtZW50cyB3aXRoIGFwcHJvcHJpYXRlIGF0dHJpYnV0ZXMuXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2U6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdHJ1Y3Rvcihwcml2YXRlIGxpbmtQcm9jZXNzb3I6IExpbmtQcm9jZXNzb3JTZXJ2aWNlKSB7fVxuICpcbiAqIHByb2Nlc3NUZXh0KCkge1xuICogICBjb25zdCB0ZXh0ID0gJ1Zpc2l0IGh0dHBzOi8vZXhhbXBsZS5jb20sIGdvIHRvIC9wcm9maWxlLCBvciBbY2hlY2sgZG9jc10oaHR0cHM6Ly9kb2NzLmV4YW1wbGUuY29tKSc7XG4gKiAgIGNvbnN0IHByb2Nlc3NlZCA9IHRoaXMubGlua1Byb2Nlc3Nvci5wcm9jZXNzTGlua3ModGV4dCk7XG4gKiAgIC8vIFJldHVybnMgU2FmZUh0bWwgd2l0aCBjbGlja2FibGUgbGlua3NcbiAqIH1cbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTGlua1Byb2Nlc3NvclNlcnZpY2Uge1xuICAvLyBSZWdleCBwYXJhIGRldGVjdGFyIFVSTHMgY29tcGxldGFzIChodHRwL2h0dHBzKSAtIGNhcHR1cmEgdG9kYSBsYSBVUkwgeSBsdWVnbyBsaW1waWFtb3MgcHVudHVhY2nDs25cbiAgcHJpdmF0ZSByZWFkb25seSB1cmxSZWdleCA9IC8oaHR0cHM/OlxcL1xcL1teXFxzXSspL2c7XG5cbiAgLy8gUmVnZXggcGFyYSBkZXRlY3RhciBydXRhcyBpbnRlcm5hcyAtIGNhcHR1cmEgdG9kYSBsYSBydXRhIHkgbHVlZ28gbGltcGlhbW9zIHB1bnR1YWNpw7NuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW50ZXJuYWxSb3V0ZVJlZ2V4ID0gLyhcXHN8XikoXFwvW15cXHNdKikvZztcblxuICAvLyBSZWdleCBwYXJhIGRldGVjdGFyIGVubGFjZXMgZXN0aWxvIE1hcmtkb3duIFt0ZXh0b10odXJsKVxuICBwcml2YXRlIHJlYWRvbmx5IG1hcmtkb3duTGlua1JlZ2V4ID0gL1xcWyhbXlxcXV0rKVxcXVxcKChbXildKylcXCkvZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7fVxuXG4gIC8qKlxuICAgKiBMaW1waWEgbGEgcHVudHVhY2nDs24gZGVsIGZpbmFsIGRlIHVuYSBVUkwuXG4gICAqIE1hbnRpZW5lIGNhcmFjdGVyZXMgdsOhbGlkb3MgZGUgVVJMIHBlcm8gcmVtdWV2ZSBzaWdub3MgZGUgcHVudHVhY2nDs24gY29tdW5lcyBhbCBmaW5hbC5cbiAgICogUHJlc2VydmEgcGFyw6FtZXRyb3MgZGUgY29uc3VsdGEsIGZyYWdtZW50b3MgeSBjYXJhY3RlcmVzIHbDoWxpZG9zIGVuIFVSTHMuXG4gICAqL1xuICBwcml2YXRlIGNsZWFuVXJsUHVuY3R1YXRpb24odXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIENhcmFjdGVyZXMgcXVlIGNvbnNpZGVyYW1vcyBwdW50dWFjacOzbiBhbCBmaW5hbCBkZSBvcmFjacOzbiwgcGVybyBOTyBwYXJ0ZSBkZSBVUkxzXG4gICAgLy8gTm8gaW5jbHVpbW9zICYgbyA9IHF1ZSBzb24gcGFydGUgZGUgcXVlcnkgcGFyYW1zLCBuaSAjIHF1ZSBlcyBwYXJ0ZSBkZSBmcmFnbWVudG9zXG4gICAgY29uc3QgdHJhaWxpbmdQdW5jdHVhdGlvbiA9IC9bLiw7IT8pXSskLztcblxuICAgIC8vIENhc29zIGVzcGVjaWFsZXM6IHNpIGxhIFVSTCB0ZXJtaW5hIGNvbiBwYXLDqW50ZXNpcyBwZXJvIG5vIHRpZW5lIHBhcsOpbnRlc2lzIGRlIGFwZXJ0dXJhXG4gICAgLy8gcHJvYmFibGVtZW50ZSBlbCBwYXLDqW50ZXNpcyBubyBlcyBwYXJ0ZSBkZSBsYSBVUkxcbiAgICBjb25zdCBoYXNPcGVuaW5nUGFyZW4gPSB1cmwuaW5jbHVkZXMoJygnKTtcbiAgICBjb25zdCBlbmRzV2l0aENsb3NpbmdQYXJlbiA9IHVybC5lbmRzV2l0aCgnKScpO1xuXG4gICAgaWYgKGVuZHNXaXRoQ2xvc2luZ1BhcmVuICYmICFoYXNPcGVuaW5nUGFyZW4pIHtcbiAgICAgIC8vIFJlbW92ZXIgZWwgcGFyw6ludGVzaXMgZGUgY2llcnJlIHNpIG5vIGhheSB1bm8gZGUgYXBlcnR1cmFcbiAgICAgIHVybCA9IHVybC5yZXBsYWNlKC9cXCkkLywgJycpO1xuICAgIH1cblxuICAgIHJldHVybiB1cmwucmVwbGFjZSh0cmFpbGluZ1B1bmN0dWF0aW9uLCAnJyk7XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzYSB0ZXh0byBwYXJhIGNvbnZlcnRpciBlbmxhY2VzIGVuIGVsZW1lbnRvcyA8YT4gY2xpY2tlYWJsZXMuXG4gICAqIERldGVjdGEgYXV0b23DoXRpY2FtZW50ZSBVUkxzIGV4dGVybmFzLCBydXRhcyBpbnRlcm5hcyB5IGVubGFjZXMgZXN0aWxvIE1hcmtkb3duLlxuICAgKlxuICAgKiBAcGFyYW0gdGV4dCAtIFRleHRvIGEgcHJvY2VzYXJcbiAgICogQHBhcmFtIGNvbmZpZyAtIENvbmZpZ3VyYWNpw7NuIGRlbCBwcm9jZXNhbWllbnRvXG4gICAqIEByZXR1cm5zIFNhZmVIdG1sIGNvbiBlbmxhY2VzIHByb2Nlc2Fkb3MgbyBzdHJpbmcgb3JpZ2luYWxcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCByZXN1bHQgPSB0aGlzLmxpbmtQcm9jZXNzb3IucHJvY2Vzc0xpbmtzKFxuICAgKiAgICdWaXNpdCBodHRwczovL2V4YW1wbGUuY29tLCBnbyB0byAvcHJvZmlsZSwgb3IgW2NoZWNrIGRvY3NdKGh0dHBzOi8vZG9jcy5leGFtcGxlLmNvbSknLFxuICAgKiAgIHtcbiAgICogICAgIG9wZW5FeHRlcm5hbEluTmV3VGFiOiB0cnVlLFxuICAgKiAgICAgb3BlbkludGVybmFsSW5OZXdUYWI6IGZhbHNlLFxuICAgKiAgICAgcHJvY2Vzc01hcmtkb3duTGlua3M6IHRydWUsXG4gICAqICAgICBsaW5rQ2xhc3M6ICdjdXN0b20tbGluaydcbiAgICogICB9XG4gICAqICk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHJvY2Vzc0xpbmtzKHRleHQ6IHN0cmluZywgY29uZmlnOiBMaW5rUHJvY2Vzc29yQ29uZmlnID0ge30pOiBTYWZlSHRtbCB8IHN0cmluZyB7XG4gICAgaWYgKCF0ZXh0KSByZXR1cm4gJyc7XG5cbiAgICBjb25zdCB7XG4gICAgICBvcGVuRXh0ZXJuYWxJbk5ld1RhYiA9IHRydWUsXG4gICAgICBvcGVuSW50ZXJuYWxJbk5ld1RhYiA9IGZhbHNlLFxuICAgICAgbGlua0NsYXNzID0gJ3Byb2Nlc3NlZC1saW5rJyxcbiAgICAgIGV4dGVybmFsTGlua0NsYXNzID0gJ2V4dGVybmFsLWxpbmsnLFxuICAgICAgaW50ZXJuYWxMaW5rQ2xhc3MgPSAnaW50ZXJuYWwtbGluaycsXG4gICAgICBwcm9jZXNzTWFya2Rvd25MaW5rcyA9IHRydWUsXG4gICAgfSA9IGNvbmZpZztcblxuICAgIGxldCBoYXNMaW5rcyA9IGZhbHNlO1xuICAgIGxldCBwcm9jZXNzZWRUZXh0ID0gdGV4dDtcblxuICAgIC8vIDEuIFByb2Nlc2FyIGVubGFjZXMgZXN0aWxvIE1hcmtkb3duIFt0ZXh0b10odXJsKSBwcmltZXJvXG4gICAgaWYgKHByb2Nlc3NNYXJrZG93bkxpbmtzKSB7XG4gICAgICBjb25zdCBtYXJrZG93bk1hdGNoZXMgPSBBcnJheS5mcm9tKHByb2Nlc3NlZFRleHQubWF0Y2hBbGwodGhpcy5tYXJrZG93bkxpbmtSZWdleCkpO1xuXG4gICAgICAvLyBQcm9jZXNhciBkZSBhdHLDoXMgaGFjaWEgYWRlbGFudGUgcGFyYSBtYW50ZW5lciBsYXMgcG9zaWNpb25lc1xuICAgICAgZm9yIChsZXQgaSA9IG1hcmtkb3duTWF0Y2hlcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBjb25zdCBtYXRjaCA9IG1hcmtkb3duTWF0Y2hlc1tpXTtcbiAgICAgICAgY29uc3QgW2Z1bGxNYXRjaCwgbGlua1RleHQsIHVybF0gPSBtYXRjaDtcbiAgICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IG1hdGNoLmluZGV4ITtcbiAgICAgICAgY29uc3QgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgZnVsbE1hdGNoLmxlbmd0aDtcblxuICAgICAgICBoYXNMaW5rcyA9IHRydWU7XG4gICAgICAgIGNvbnN0IGlzRXh0ZXJuYWwgPSAvXmh0dHBzPzpcXC9cXC8vLnRlc3QodXJsKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gKGlzRXh0ZXJuYWwgPyBvcGVuRXh0ZXJuYWxJbk5ld1RhYiA6IG9wZW5JbnRlcm5hbEluTmV3VGFiKVxuICAgICAgICAgID8gaXNFeHRlcm5hbFxuICAgICAgICAgICAgPyAnIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIidcbiAgICAgICAgICAgIDogJyB0YXJnZXQ9XCJfYmxhbmtcIidcbiAgICAgICAgICA6ICcnO1xuICAgICAgICBjb25zdCB0eXBlQ2xhc3MgPSBpc0V4dGVybmFsID8gZXh0ZXJuYWxMaW5rQ2xhc3MgOiBpbnRlcm5hbExpbmtDbGFzcztcbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IGAke2xpbmtDbGFzc30gJHt0eXBlQ2xhc3N9YC50cmltKCk7XG4gICAgICAgIGNvbnN0IGxpbmtIdG1sID0gYDxhIGhyZWY9XCIke3VybH1cIiR7dGFyZ2V0fSBjbGFzcz1cIiR7Y2xhc3Nlc31cIj4ke2xpbmtUZXh0fTwvYT5gO1xuXG4gICAgICAgIHByb2Nlc3NlZFRleHQgPVxuICAgICAgICAgIHByb2Nlc3NlZFRleHQuc3Vic3RyaW5nKDAsIHN0YXJ0SW5kZXgpICsgbGlua0h0bWwgKyBwcm9jZXNzZWRUZXh0LnN1YnN0cmluZyhlbmRJbmRleCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gMi4gUHJvY2VzYXIgVVJMcyBleHRlcm5hcyBkaXJlY3Rhc1xuICAgIGNvbnN0IHVybE1hdGNoZXMgPSBBcnJheS5mcm9tKHByb2Nlc3NlZFRleHQubWF0Y2hBbGwodGhpcy51cmxSZWdleCkpO1xuXG4gICAgLy8gUHJvY2VzYXIgZGUgYXRyw6FzIGhhY2lhIGFkZWxhbnRlIHBhcmEgbWFudGVuZXIgbGFzIHBvc2ljaW9uZXNcbiAgICBmb3IgKGxldCBpID0gdXJsTWF0Y2hlcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgY29uc3QgbWF0Y2ggPSB1cmxNYXRjaGVzW2ldO1xuICAgICAgY29uc3QgW2Z1bGxNYXRjaCwgdXJsXSA9IG1hdGNoO1xuICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IG1hdGNoLmluZGV4ITtcbiAgICAgIGNvbnN0IGVuZEluZGV4ID0gc3RhcnRJbmRleCArIGZ1bGxNYXRjaC5sZW5ndGg7XG5cbiAgICAgIC8vIFZlcmlmaWNhciBxdWUgbm8gZXN0w6kgeWEgZGVudHJvIGRlIHVuIGVubGFjZSBIVE1MIGV4aXN0ZW50ZVxuICAgICAgY29uc3QgdGV4dEJlZm9yZSA9IHByb2Nlc3NlZFRleHQuc3Vic3RyaW5nKDAsIHN0YXJ0SW5kZXgpO1xuICAgICAgY29uc3QgbGFzdE9wZW5UYWcgPSB0ZXh0QmVmb3JlLmxhc3RJbmRleE9mKCc8YSAnKTtcbiAgICAgIGNvbnN0IGxhc3RDbG9zZVRhZyA9IHRleHRCZWZvcmUubGFzdEluZGV4T2YoJzwvYT4nKTtcblxuICAgICAgLy8gU2kgaGF5IHVuIHRhZyA8YSBhYmllcnRvIHNpbiBjZXJyYXIsIG5vIHByb2Nlc2Ftb3NcbiAgICAgIGlmIChsYXN0T3BlblRhZyA+IGxhc3RDbG9zZVRhZykge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy8gTGltcGlhciBwdW50dWFjacOzbiBkZWwgZmluYWwgZGUgbGEgVVJMXG4gICAgICBjb25zdCBjbGVhblVybCA9IHRoaXMuY2xlYW5VcmxQdW5jdHVhdGlvbih1cmwpO1xuICAgICAgY29uc3QgcHVuY3R1YXRpb25SZW1vdmVkID0gdXJsICE9PSBjbGVhblVybDtcbiAgICAgIGNvbnN0IHB1bmN0dWF0aW9uID0gcHVuY3R1YXRpb25SZW1vdmVkID8gdXJsLnN1YnN0cmluZyhjbGVhblVybC5sZW5ndGgpIDogJyc7XG5cbiAgICAgIGhhc0xpbmtzID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHRhcmdldCA9IG9wZW5FeHRlcm5hbEluTmV3VGFiID8gJyB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCInIDogJyc7XG4gICAgICBjb25zdCBjbGFzc2VzID0gYCR7bGlua0NsYXNzfSAke2V4dGVybmFsTGlua0NsYXNzfWAudHJpbSgpO1xuICAgICAgY29uc3QgbGlua0h0bWwgPSBgPGEgaHJlZj1cIiR7Y2xlYW5Vcmx9XCIke3RhcmdldH0gY2xhc3M9XCIke2NsYXNzZXN9XCI+JHtjbGVhblVybH08L2E+YDtcblxuICAgICAgLy8gUmVlbXBsYXphciBlbCBVUkwgb3JpZ2luYWwgY29uIGVsIGVubGFjZSArIHB1bnR1YWNpw7NuIHNpIGV4aXN0w61hXG4gICAgICBjb25zdCByZXBsYWNlbWVudCA9IHB1bmN0dWF0aW9uUmVtb3ZlZCA/IGxpbmtIdG1sICsgcHVuY3R1YXRpb24gOiBsaW5rSHRtbDtcbiAgICAgIHByb2Nlc3NlZFRleHQgPVxuICAgICAgICBwcm9jZXNzZWRUZXh0LnN1YnN0cmluZygwLCBzdGFydEluZGV4KSArIHJlcGxhY2VtZW50ICsgcHJvY2Vzc2VkVGV4dC5zdWJzdHJpbmcoZW5kSW5kZXgpO1xuICAgIH1cblxuICAgIC8vIDMuIFByb2Nlc2FyIHJ1dGFzIGludGVybmFzXG4gICAgY29uc3QgaW50ZXJuYWxNYXRjaGVzID0gQXJyYXkuZnJvbShwcm9jZXNzZWRUZXh0Lm1hdGNoQWxsKHRoaXMuaW50ZXJuYWxSb3V0ZVJlZ2V4KSk7XG5cbiAgICAvLyBQcm9jZXNhciBkZSBhdHLDoXMgaGFjaWEgYWRlbGFudGUgcGFyYSBtYW50ZW5lciBsYXMgcG9zaWNpb25lc1xuICAgIGZvciAobGV0IGkgPSBpbnRlcm5hbE1hdGNoZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gaW50ZXJuYWxNYXRjaGVzW2ldO1xuICAgICAgY29uc3QgW2Z1bGxNYXRjaCwgcHJlZml4LCByb3V0ZV0gPSBtYXRjaDtcbiAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSBtYXRjaC5pbmRleCE7XG4gICAgICBjb25zdCBlbmRJbmRleCA9IHN0YXJ0SW5kZXggKyBmdWxsTWF0Y2gubGVuZ3RoO1xuXG4gICAgICAvLyBWZXJpZmljYXIgcXVlIG5vIGVzdMOpIHlhIGRlbnRybyBkZSB1biBlbmxhY2UgSFRNTCBleGlzdGVudGVcbiAgICAgIGNvbnN0IHRleHRCZWZvcmUgPSBwcm9jZXNzZWRUZXh0LnN1YnN0cmluZygwLCBzdGFydEluZGV4KTtcbiAgICAgIGNvbnN0IGxhc3RPcGVuVGFnID0gdGV4dEJlZm9yZS5sYXN0SW5kZXhPZignPGEgJyk7XG4gICAgICBjb25zdCBsYXN0Q2xvc2VUYWcgPSB0ZXh0QmVmb3JlLmxhc3RJbmRleE9mKCc8L2E+Jyk7XG5cbiAgICAgIC8vIFNpIGhheSB1biB0YWcgPGEgYWJpZXJ0byBzaW4gY2VycmFyLCBubyBwcm9jZXNhbW9zXG4gICAgICBpZiAobGFzdE9wZW5UYWcgPiBsYXN0Q2xvc2VUYWcpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGhhc0xpbmtzID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHRhcmdldCA9IG9wZW5JbnRlcm5hbEluTmV3VGFiID8gJyB0YXJnZXQ9XCJfYmxhbmtcIicgOiAnJztcbiAgICAgIGNvbnN0IGNsYXNzZXMgPSBgJHtsaW5rQ2xhc3N9ICR7aW50ZXJuYWxMaW5rQ2xhc3N9YC50cmltKCk7XG4gICAgICBjb25zdCBsaW5rSHRtbCA9IGA8YSBocmVmPVwiJHtyb3V0ZX1cIiR7dGFyZ2V0fSBjbGFzcz1cIiR7Y2xhc3Nlc31cIj4ke3JvdXRlfTwvYT5gO1xuXG4gICAgICBjb25zdCByZXBsYWNlbWVudCA9IGAke3ByZWZpeH0ke2xpbmtIdG1sfWA7XG4gICAgICBwcm9jZXNzZWRUZXh0ID1cbiAgICAgICAgcHJvY2Vzc2VkVGV4dC5zdWJzdHJpbmcoMCwgc3RhcnRJbmRleCkgKyByZXBsYWNlbWVudCArIHByb2Nlc3NlZFRleHQuc3Vic3RyaW5nKGVuZEluZGV4KTtcbiAgICB9XG5cbiAgICAvLyBTaSBoYXkgZW5sYWNlcywgc2FuaXRpemFyIGVsIEhUTUxcbiAgICBpZiAoaGFzTGlua3MpIHtcbiAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChwcm9jZXNzZWRUZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGV4dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlY3RhIHNpIHVuIHRleHRvIGNvbnRpZW5lIGVubGFjZXMgKFVSTHMsIHJ1dGFzIGludGVybmFzIG8gZW5sYWNlcyBNYXJrZG93bikuXG4gICAqXG4gICAqIEBwYXJhbSB0ZXh0IC0gVGV4dG8gYSBhbmFsaXphclxuICAgKiBAcmV0dXJucyB0cnVlIHNpIGNvbnRpZW5lIGVubGFjZXNcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBoYXNMaW5rcyA9IHRoaXMubGlua1Byb2Nlc3Nvci5oYXNMaW5rcygnVmlzaXQgaHR0cHM6Ly9leGFtcGxlLmNvbSBvciBbZG9jc10oaHR0cHM6Ly9kb2NzLmNvbSknKTtcbiAgICogLy8gUmV0dXJuczogdHJ1ZVxuICAgKiBgYGBcbiAgICovXG4gIGhhc0xpbmtzKHRleHQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghdGV4dCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgLy8gUmVzZXQgcmVnZXggaW5kaWNlc1xuICAgIHRoaXMudXJsUmVnZXgubGFzdEluZGV4ID0gMDtcbiAgICB0aGlzLmludGVybmFsUm91dGVSZWdleC5sYXN0SW5kZXggPSAwO1xuICAgIHRoaXMubWFya2Rvd25MaW5rUmVnZXgubGFzdEluZGV4ID0gMDtcblxuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnVybFJlZ2V4LnRlc3QodGV4dCkgfHxcbiAgICAgIHRoaXMuaW50ZXJuYWxSb3V0ZVJlZ2V4LnRlc3QodGV4dCkgfHxcbiAgICAgIHRoaXMubWFya2Rvd25MaW5rUmVnZXgudGVzdCh0ZXh0KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFlIHRvZG9zIGxvcyBlbmxhY2VzIGRlIHVuIHRleHRvLlxuICAgKlxuICAgKiBAcGFyYW0gdGV4dCAtIFRleHRvIGEgYW5hbGl6YXJcbiAgICogQHJldHVybnMgQXJyYXkgZGUgZW5sYWNlcyBlbmNvbnRyYWRvcyBjb24gc3UgdGlwbyB5IHRleHRvIChzaSBlcyBNYXJrZG93bilcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBsaW5rcyA9IHRoaXMubGlua1Byb2Nlc3Nvci5leHRyYWN0TGlua3MoJ1Zpc2l0IGh0dHBzOi8vZXhhbXBsZS5jb20sIC9wcm9maWxlLCBvciBbZG9jc10oaHR0cHM6Ly9kb2NzLmNvbSknKTtcbiAgICogLy8gUmV0dXJuczogW1xuICAgKiAvLyAgIHsgdXJsOiAnaHR0cHM6Ly9leGFtcGxlLmNvbScsIHR5cGU6ICdleHRlcm5hbCcsIHRleHQ6ICdodHRwczovL2V4YW1wbGUuY29tJyB9LFxuICAgKiAvLyAgIHsgdXJsOiAnL3Byb2ZpbGUnLCB0eXBlOiAnaW50ZXJuYWwnLCB0ZXh0OiAnL3Byb2ZpbGUnIH0sXG4gICAqIC8vICAgeyB1cmw6ICdodHRwczovL2RvY3MuY29tJywgdHlwZTogJ2V4dGVybmFsJywgdGV4dDogJ2RvY3MnIH1cbiAgICogLy8gXVxuICAgKiBgYGBcbiAgICovXG4gIGV4dHJhY3RMaW5rcyh0ZXh0OiBzdHJpbmcpOiBBcnJheTx7IHVybDogc3RyaW5nOyB0eXBlOiAnZXh0ZXJuYWwnIHwgJ2ludGVybmFsJzsgdGV4dDogc3RyaW5nIH0+IHtcbiAgICBpZiAoIXRleHQpIHJldHVybiBbXTtcblxuICAgIGNvbnN0IGxpbmtzOiBBcnJheTx7IHVybDogc3RyaW5nOyB0eXBlOiAnZXh0ZXJuYWwnIHwgJ2ludGVybmFsJzsgdGV4dDogc3RyaW5nIH0+ID0gW107XG5cbiAgICAvLyBSZXNldCByZWdleCBpbmRpY2VzXG4gICAgdGhpcy51cmxSZWdleC5sYXN0SW5kZXggPSAwO1xuICAgIHRoaXMuaW50ZXJuYWxSb3V0ZVJlZ2V4Lmxhc3RJbmRleCA9IDA7XG4gICAgdGhpcy5tYXJrZG93bkxpbmtSZWdleC5sYXN0SW5kZXggPSAwO1xuXG4gICAgLy8gRXh0cmFlciBlbmxhY2VzIE1hcmtkb3duIHByaW1lcm9cbiAgICBsZXQgbWF0Y2g7XG4gICAgd2hpbGUgKChtYXRjaCA9IHRoaXMubWFya2Rvd25MaW5rUmVnZXguZXhlYyh0ZXh0KSkgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHVybCA9IG1hdGNoWzJdO1xuICAgICAgY29uc3QgbGlua1RleHQgPSBtYXRjaFsxXTtcbiAgICAgIGNvbnN0IHR5cGUgPSAvXmh0dHBzPzpcXC9cXC8vLnRlc3QodXJsKSA/ICdleHRlcm5hbCcgOiAnaW50ZXJuYWwnO1xuICAgICAgbGlua3MucHVzaCh7IHVybCwgdHlwZSwgdGV4dDogbGlua1RleHQgfSk7XG4gICAgfVxuXG4gICAgLy8gRXh0cmFlciBVUkxzIGV4dGVybmFzIGRpcmVjdGFzXG4gICAgd2hpbGUgKChtYXRjaCA9IHRoaXMudXJsUmVnZXguZXhlYyh0ZXh0KSkgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHVybCA9IG1hdGNoWzFdO1xuICAgICAgLy8gVmVyaWZpY2FyIHF1ZSBubyBlc3TDqSB5YSBjYXB0dXJhZG8gY29tbyBNYXJrZG93biBsaW5rXG4gICAgICBpZiAoIWxpbmtzLnNvbWUobGluayA9PiBsaW5rLnVybCA9PT0gdXJsKSkge1xuICAgICAgICBsaW5rcy5wdXNoKHsgdXJsLCB0eXBlOiAnZXh0ZXJuYWwnLCB0ZXh0OiB1cmwgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXh0cmFlciBydXRhcyBpbnRlcm5hcyBkaXJlY3Rhc1xuICAgIHdoaWxlICgobWF0Y2ggPSB0aGlzLmludGVybmFsUm91dGVSZWdleC5leGVjKHRleHQpKSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdXJsID0gbWF0Y2hbMl07XG4gICAgICAvLyBWZXJpZmljYXIgcXVlIG5vIGVzdMOpIHlhIGNhcHR1cmFkbyBjb21vIE1hcmtkb3duIGxpbmtcbiAgICAgIGlmICghbGlua3Muc29tZShsaW5rID0+IGxpbmsudXJsID09PSB1cmwpKSB7XG4gICAgICAgIGxpbmtzLnB1c2goeyB1cmwsIHR5cGU6ICdpbnRlcm5hbCcsIHRleHQ6IHVybCB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGlua3M7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
1
|
+
import { Injectable, inject } from '@angular/core';
|
|
2
|
+
import { ModalController } from '@ionic/angular/standalone';
|
|
2
3
|
import { MODAL_SIZES, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_MODAL_CANCEL_BUTTON, } from './types';
|
|
3
|
-
import { SimpleModalContentComponent } from './simple-modal-content.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@ionic/angular/standalone";
|
|
6
5
|
/**
|
|
7
6
|
* ModalService
|
|
8
7
|
*
|
|
@@ -45,8 +44,8 @@ import * as i1 from "@ionic/angular/standalone";
|
|
|
45
44
|
* ```
|
|
46
45
|
*/
|
|
47
46
|
export class ModalService {
|
|
48
|
-
constructor(
|
|
49
|
-
this.modalController =
|
|
47
|
+
constructor() {
|
|
48
|
+
this.modalController = inject(ModalController);
|
|
50
49
|
}
|
|
51
50
|
/**
|
|
52
51
|
* Opens a modal with a component.
|
|
@@ -97,6 +96,8 @@ export class ModalService {
|
|
|
97
96
|
* @returns Promise resolving to the modal result
|
|
98
97
|
*/
|
|
99
98
|
async openSimple(options) {
|
|
99
|
+
// Import the simple modal component dynamically
|
|
100
|
+
const { SimpleModalContentComponent } = await import('./simple-modal-content.component');
|
|
100
101
|
return this.open({
|
|
101
102
|
component: SimpleModalContentComponent,
|
|
102
103
|
componentProps: {
|
|
@@ -200,7 +201,7 @@ export class ModalService {
|
|
|
200
201
|
}
|
|
201
202
|
return classes.join(' ');
|
|
202
203
|
}
|
|
203
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalService, deps: [
|
|
204
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
204
205
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalService, providedIn: 'root' }); }
|
|
205
206
|
}
|
|
206
207
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalService, decorators: [{
|
|
@@ -208,5 +209,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
208
209
|
args: [{
|
|
209
210
|
providedIn: 'root',
|
|
210
211
|
}]
|
|
211
|
-
}]
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvbW9kYWwvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFLTCxXQUFXLEVBQ1gsNEJBQTRCLEVBQzVCLDJCQUEyQixHQUM1QixNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBRS9FOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0NHO0FBSUgsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQUcsQ0FBQztJQUV4RDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLElBQUksQ0FBbUIsT0FBeUI7UUFDcEQsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLENBQUM7UUFDbkQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVqRCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDO1lBQzlDLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztZQUM1QixjQUFjLEVBQUU7Z0JBQ2QsR0FBRyxPQUFPLENBQUMsY0FBYztnQkFDekIseURBQXlEO2dCQUN6RCxTQUFTLEVBQUU7b0JBQ1QsT0FBTyxFQUFFLENBQUMsSUFBVSxFQUFFLElBQWEsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO2lCQUNsRTthQUNGO1lBQ0QsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQ2QsWUFB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dCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb2RhbENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7XG4gIE1vZGFsTWV0YWRhdGEsXG4gIFNpbXBsZU1vZGFsTWV0YWRhdGEsXG4gIE1vZGFsUmVzdWx0LFxuICBNb2RhbEJ1dHRvbixcbiAgTU9EQUxfU0laRVMsXG4gIERFRkFVTFRfTU9EQUxfQ09ORklSTV9CVVRUT04sXG4gIERFRkFVTFRfTU9EQUxfQ0FOQ0VMX0JVVFRPTixcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBTaW1wbGVNb2RhbENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL3NpbXBsZS1tb2RhbC1jb250ZW50LmNvbXBvbmVudCc7XG5cbi8qKlxuICogTW9kYWxTZXJ2aWNlXG4gKlxuICogQSBzZXJ2aWNlIGZvciBjcmVhdGluZyBhbmQgbWFuYWdpbmcgbW9kYWxzIHdpdGggdmFyaW91cyBjb25maWd1cmF0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyBjb21wb25lbnQgbW9kYWxcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1vZGFsU2VydmljZS5vcGVuKHtcbiAqICAgY29tcG9uZW50OiBNeUZvcm1Db21wb25lbnQsXG4gKiAgIGNvbXBvbmVudFByb3BzOiB7IHVzZXJJZDogMTIzIH0sXG4gKiAgIGhlYWRlcjogeyB0aXRsZTogJ0VkaXQgVXNlcicsIHNob3dDbG9zZUJ1dHRvbjogdHJ1ZSB9LFxuICogICBzaXplOiAnbWVkaXVtJ1xuICogfSk7XG4gKlxuICogaWYgKHJlc3VsdC5yb2xlID09PSAnY29uZmlybScpIHtcbiAqICAgY29uc29sZS5sb2coJ1NhdmVkOicsIHJlc3VsdC5kYXRhKTtcbiAqIH1cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFNpbXBsZSBjb250ZW50IG1vZGFsXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBhd2FpdCBtb2RhbFNlcnZpY2Uub3BlblNpbXBsZSh7XG4gKiAgIHRpdGxlOiAnVGVybXMgb2YgU2VydmljZScsXG4gKiAgIGNvbnRlbnQ6ICc8cD5UZXJtcyBjb250ZW50IGhlcmUuLi48L3A+JyxcbiAqICAgc2l6ZTogJ2xhcmdlJyxcbiAqICAgc2hvd0Nsb3NlQnV0dG9uOiB0cnVlXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFNoZWV0IG1vZGFsIChtb2JpbGUpXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXN1bHQgPSBhd2FpdCBtb2RhbFNlcnZpY2Uub3BlblNoZWV0KHtcbiAqICAgY29tcG9uZW50OiBGaWx0ZXJDb21wb25lbnQsXG4gKiAgIGJyZWFrcG9pbnRzOiB7XG4gKiAgICAgaW5pdGlhbEJyZWFrcG9pbnQ6IDAuNSxcbiAqICAgICBicmVha3BvaW50czogWzAsIDAuNSwgMV0sXG4gKiAgICAgc2hvd0hhbmRsZTogdHJ1ZVxuICogICB9XG4gKiB9KTtcbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RhbENvbnRyb2xsZXI6IE1vZGFsQ29udHJvbGxlcikge31cblxuICAvKipcbiAgICogT3BlbnMgYSBtb2RhbCB3aXRoIGEgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIE1vZGFsIGNvbmZpZ3VyYXRpb25cbiAgICogQHJldHVybnMgUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIG1vZGFsIHJlc3VsdFxuICAgKi9cbiAgYXN5bmMgb3BlbjxUID0gYW55LCBSID0gYW55PihvcHRpb25zOiBNb2RhbE1ldGFkYXRhPFQ+KTogUHJvbWlzZTxNb2RhbFJlc3VsdDxSPj4ge1xuICAgIGNvbnN0IHNpemUgPSBNT0RBTF9TSVpFU1tvcHRpb25zLnNpemUgfHwgJ21lZGl1bSddO1xuICAgIGNvbnN0IGNzc0NsYXNzZXMgPSB0aGlzLmJ1aWxkQ3NzQ2xhc3NlcyhvcHRpb25zKTtcblxuICAgIGNvbnN0IG1vZGFsID0gYXdhaXQgdGhpcy5tb2RhbENvbnRyb2xsZXIuY3JlYXRlKHtcbiAgICAgIGNvbXBvbmVudDogb3B0aW9ucy5jb21wb25lbnQsXG4gICAgICBjb21wb25lbnRQcm9wczoge1xuICAgICAgICAuLi5vcHRpb25zLmNvbXBvbmVudFByb3BzLFxuICAgICAgICAvLyBQYXNzIG1vZGFsIHJlZmVyZW5jZSBmb3IgZGlzbWlzcyBmcm9tIHdpdGhpbiBjb21wb25lbnRcbiAgICAgICAgX21vZGFsUmVmOiB7XG4gICAgICAgICAgZGlzbWlzczogKGRhdGE/OiBhbnksIHJvbGU/OiBzdHJpbmcpID0+IG1vZGFsLmRpc21pc3MoZGF0YSwgcm9sZSksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgaWQ6IG9wdGlvbnMuaWQsXG4gICAgICBzaG93QmFja2Ryb3A6IG9wdGlvbnMuc2hvd0JhY2tkcm9wID8/IHRydWUsXG4gICAgICBiYWNrZHJvcERpc21pc3M6IG9wdGlvbnMuYmFja2Ryb3BEaXNtaXNzID8/IHRydWUsXG4gICAgICBrZXlib2FyZENsb3NlOiBvcHRpb25zLmtleWJvYXJkQ2xvc2UgPz8gdHJ1ZSxcbiAgICAgIGNzc0NsYXNzOiBjc3NDbGFzc2VzLFxuICAgICAgbW9kZTogb3B0aW9ucy5tb2RlLFxuICAgICAgYW5pbWF0ZWQ6IG9wdGlvbnMuYW5pbWF0ZWQgPz8gdHJ1ZSxcbiAgICAgIGNhbkRpc21pc3M6IHRoaXMubm9ybWFsaXplQ2FuRGlzbWlzcyhvcHRpb25zLmNhbkRpc21pc3MgPz8gdHJ1ZSksXG4gICAgICBwcmVzZW50aW5nRWxlbWVudDogb3B0aW9ucy5wcmVzZW50aW5nRWxlbWVudCxcbiAgICAgIC8vIFNoZWV0IG1vZGFsIG9wdGlvbnNcbiAgICAgIGluaXRpYWxCcmVha3BvaW50OiBvcHRpb25zLmJyZWFrcG9pbnRzPy5pbml0aWFsQnJlYWtwb2ludCxcbiAgICAgIGJyZWFrcG9pbnRzOiBvcHRpb25zLmJyZWFrcG9pbnRzPy5icmVha3BvaW50cyxcbiAgICAgIGhhbmRsZTogb3B0aW9ucy5icmVha3BvaW50cz8uc2hvd0hhbmRsZSxcbiAgICAgIGhhbmRsZUJlaGF2aW9yOiBvcHRpb25zLmJyZWFrcG9pbnRzPy5oYW5kbGVCZWhhdmlvcixcbiAgICB9KTtcblxuICAgIC8vIEFwcGx5IGN1c3RvbSBzaXplIHN0eWxlc1xuICAgIGlmIChvcHRpb25zLndpZHRoIHx8IG9wdGlvbnMuaGVpZ2h0IHx8IHNpemUpIHtcbiAgICAgIGNvbnN0IG1vZGFsRWwgPSBtb2RhbCBhcyBIVE1MSW9uTW9kYWxFbGVtZW50O1xuICAgICAgbW9kYWxFbC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13aWR0aCcsIG9wdGlvbnMud2lkdGggfHwgc2l6ZS53aWR0aCB8fCAnYXV0bycpO1xuICAgICAgbW9kYWxFbC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1oZWlnaHQnLCBvcHRpb25zLmhlaWdodCB8fCBzaXplLmhlaWdodCB8fCAnYXV0bycpO1xuICAgIH1cblxuICAgIGF3YWl0IG1vZGFsLnByZXNlbnQoKTtcbiAgICBjb25zdCB7IGRhdGEsIHJvbGUgfSA9IGF3YWl0IG1vZGFsLm9uRGlkRGlzbWlzcygpO1xuXG4gICAgcmV0dXJuIHsgZGF0YSwgcm9sZSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIGEgc2ltcGxlIGNvbnRlbnQgbW9kYWwgd2l0aG91dCBhIGN1c3RvbSBjb21wb25lbnQuXG4gICAqIFVzZXMgSW9uaWMncyBhbGVydC1saWtlIHN0eWxpbmcgYnV0IHdpdGggbW9kYWwgY2FwYWJpbGl0aWVzLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIFNpbXBsZSBtb2RhbCBjb25maWd1cmF0aW9uXG4gICAqIEByZXR1cm5zIFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBtb2RhbCByZXN1bHRcbiAgICovXG4gIGFzeW5jIG9wZW5TaW1wbGUob3B0aW9uczogU2ltcGxlTW9kYWxNZXRhZGF0YSk6IFByb21pc2U8TW9kYWxSZXN1bHQ+IHtcbiAgICByZXR1cm4gdGhpcy5vcGVuKHtcbiAgICAgIGNvbXBvbmVudDogU2ltcGxlTW9kYWxDb250ZW50Q29tcG9uZW50LFxuICAgICAgY29tcG9uZW50UHJvcHM6IHtcbiAgICAgICAgdGl0bGU6IG9wdGlvbnMudGl0bGUsXG4gICAgICAgIGNvbnRlbnQ6IG9wdGlvbnMuY29udGVudCxcbiAgICAgICAgYnV0dG9uczogb3B0aW9ucy5idXR0b25zIHx8IFtERUZBVUxUX01PREFMX0NBTkNFTF9CVVRUT04sIERFRkFVTFRfTU9EQUxfQ09ORklSTV9CVVRUT05dLFxuICAgICAgICBzaG93Q2xvc2VCdXR0b246IG9wdGlvbnMuc2hvd0Nsb3NlQnV0dG9uID8/IHRydWUsXG4gICAgICB9LFxuICAgICAgc2l6ZTogb3B0aW9ucy5zaXplIHx8ICdtZWRpdW0nLFxuICAgICAgYmFja2Ryb3BEaXNtaXNzOiBvcHRpb25zLmJhY2tkcm9wRGlzbWlzcyA/PyB0cnVlLFxuICAgICAgY3NzQ2xhc3M6IFsnc2ltcGxlLW1vZGFsJywgb3B0aW9ucy5jc3NDbGFzc10uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyBhIGNvbmZpcm1hdGlvbiBtb2RhbC5cbiAgICogQHBhcmFtIHRpdGxlIC0gTW9kYWwgdGl0bGVcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBNb2RhbCBtZXNzYWdlXG4gICAqIEBwYXJhbSBjb25maXJtQnV0dG9uIC0gQ29uZmlybSBidXR0b24gY29uZmlnIChvcHRpb25hbClcbiAgICogQHBhcmFtIGNhbmNlbEJ1dHRvbiAtIENhbmNlbCBidXR0b24gY29uZmlnIChvcHRpb25hbClcbiAgICogQHJldHVybnMgUHJvbWlzZSByZXNvbHZpbmcgdG8gdHJ1ZSBpZiBjb25maXJtZWRcbiAgICovXG4gIGFzeW5jIGNvbmZpcm0oXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgY29uZmlybUJ1dHRvbj86IFBhcnRpYWw8TW9kYWxCdXR0b24+LFxuICAgIGNhbmNlbEJ1dHRvbj86IFBhcnRpYWw8TW9kYWxCdXR0b24+XG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMub3BlblNpbXBsZSh7XG4gICAgICB0aXRsZSxcbiAgICAgIGNvbnRlbnQ6IG1lc3NhZ2UsXG4gICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgc2hvd0Nsb3NlQnV0dG9uOiBmYWxzZSxcbiAgICAgIGJhY2tkcm9wRGlzbWlzczogZmFsc2UsXG4gICAgICBidXR0b25zOiBbXG4gICAgICAgIHsgLi4uREVGQVVMVF9NT0RBTF9DQU5DRUxfQlVUVE9OLCAuLi5jYW5jZWxCdXR0b24gfSxcbiAgICAgICAgeyAuLi5ERUZBVUxUX01PREFMX0NPTkZJUk1fQlVUVE9OLCAuLi5jb25maXJtQnV0dG9uIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdC5yb2xlID09PSAnY29uZmlybSc7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgYSBzaGVldCBtb2RhbCAoaU9TLXN0eWxlIGJvdHRvbSBzaGVldCkuXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gTW9kYWwgY29uZmlndXJhdGlvbiB3aXRoIHNoZWV0LXNwZWNpZmljIG9wdGlvbnNcbiAgICogQHJldHVybnMgUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIG1vZGFsIHJlc3VsdFxuICAgKi9cbiAgYXN5bmMgb3BlblNoZWV0PFQgPSBhbnksIFIgPSBhbnk+KFxuICAgIG9wdGlvbnM6IE9taXQ8TW9kYWxNZXRhZGF0YTxUPiwgJ2JyZWFrcG9pbnRzJz4gJiB7XG4gICAgICBpbml0aWFsQnJlYWtwb2ludD86IG51bWJlcjtcbiAgICAgIGJyZWFrcG9pbnRzPzogbnVtYmVyW107XG4gICAgICBzaG93SGFuZGxlPzogYm9vbGVhbjtcbiAgICB9XG4gICk6IFByb21pc2U8TW9kYWxSZXN1bHQ8Uj4+IHtcbiAgICByZXR1cm4gdGhpcy5vcGVuKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBicmVha3BvaW50czoge1xuICAgICAgICBpbml0aWFsQnJlYWtwb2ludDogb3B0aW9ucy5pbml0aWFsQnJlYWtwb2ludCA/PyAwLjUsXG4gICAgICAgIGJyZWFrcG9pbnRzOiBvcHRpb25zLmJyZWFrcG9pbnRzID8/IFswLCAwLjUsIDFdLFxuICAgICAgICBzaG93SGFuZGxlOiBvcHRpb25zLnNob3dIYW5kbGUgPz8gdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBjc3NDbGFzczogWydzaGVldC1tb2RhbCcsIG9wdGlvbnMuY3NzQ2xhc3NdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgYSBmdWxsc2NyZWVuIG1vZGFsLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIE1vZGFsIGNvbmZpZ3VyYXRpb25cbiAgICogQHJldHVybnMgUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIG1vZGFsIHJlc3VsdFxuICAgKi9cbiAgYXN5bmMgb3BlbkZ1bGxzY3JlZW48VCA9IGFueSwgUiA9IGFueT4ob3B0aW9uczogTW9kYWxNZXRhZGF0YTxUPik6IFByb21pc2U8TW9kYWxSZXN1bHQ8Uj4+IHtcbiAgICByZXR1cm4gdGhpcy5vcGVuKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBzaXplOiAnZnVsbCcsXG4gICAgICBjc3NDbGFzczogWydmdWxsc2NyZWVuLW1vZGFsJywgb3B0aW9ucy5jc3NDbGFzc10uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNtaXNzZXMgdGhlIHRvcC1tb3N0IG1vZGFsLlxuICAgKiBAcGFyYW0gZGF0YSAtIE9wdGlvbmFsIGRhdGEgdG8gcmV0dXJuXG4gICAqIEBwYXJhbSByb2xlIC0gT3B0aW9uYWwgcm9sZVxuICAgKi9cbiAgYXN5bmMgZGlzbWlzcyhkYXRhPzogYW55LCByb2xlPzogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMubW9kYWxDb250cm9sbGVyLmRpc21pc3MoZGF0YSwgcm9sZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdG9wLW1vc3QgbW9kYWwuXG4gICAqL1xuICBhc3luYyBnZXRUb3AoKTogUHJvbWlzZTxIVE1MSW9uTW9kYWxFbGVtZW50IHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMubW9kYWxDb250cm9sbGVyLmdldFRvcCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVDYW5EaXNtaXNzKFxuICAgIGNhbkRpc21pc3M6IGJvb2xlYW4gfCAoKCkgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4pXG4gICk6IGJvb2xlYW4gfCAoKGRhdGE/OiBhbnksIHJvbGU/OiBzdHJpbmcpID0+IFByb21pc2U8Ym9vbGVhbj4pIHtcbiAgICBpZiAodHlwZW9mIGNhbkRpc21pc3MgPT09ICdib29sZWFuJykge1xuICAgICAgcmV0dXJuIGNhbkRpc21pc3M7XG4gICAgfVxuICAgIC8vIFdyYXAgdGhlIGZ1bmN0aW9uIHRvIGVuc3VyZSBpdCByZXR1cm5zIGEgUHJvbWlzZVxuICAgIHJldHVybiBhc3luYyAoZGF0YT86IGFueSwgcm9sZT86IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gY2FuRGlzbWlzcygpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXN1bHQpO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ3NzQ2xhc3NlcyhvcHRpb25zOiBNb2RhbE1ldGFkYXRhKTogc3RyaW5nIHtcbiAgICBjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFsndmFsLW1vZGFsJ107XG5cbiAgICBpZiAob3B0aW9ucy5zaXplKSB7XG4gICAgICBjbGFzc2VzLnB1c2goYG1vZGFsLSR7b3B0aW9ucy5zaXplfWApO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmhlYWRlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdtb2RhbC13aXRoLWhlYWRlcicpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmZvb3Rlcikge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdtb2RhbC13aXRoLWZvb3RlcicpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmNzc0NsYXNzKSB7XG4gICAgICBjbGFzc2VzLnB1c2gob3B0aW9ucy5jc3NDbGFzcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsYXNzZXMuam9pbignICcpO1xuICB9XG59XG4iXX0=
|
|
212
|
+
}] });
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvbW9kYWwvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUtMLFdBQVcsRUFDWCw0QkFBNEIsRUFDNUIsMkJBQTJCLEdBQzVCLE1BQU0sU0FBUyxDQUFDOztBQUVqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDRztBQUlILE1BQU0sT0FBTyxZQUFZO0lBSHpCO1FBSVUsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7S0E0TG5EO0lBMUxDOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsSUFBSSxDQUFtQixPQUF5QjtRQUNwRCxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsQ0FBQztRQUNuRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7WUFDOUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1lBQzVCLGNBQWMsRUFBRTtnQkFDZCxHQUFHLE9BQU8sQ0FBQyxjQUFjO2dCQUN6Qix5REFBeUQ7Z0JBQ3pELFNBQVMsRUFBRTtvQkFDVCxPQUFPLEVBQUUsQ0FBQyxJQUFVLEVBQUUsSUFBYSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7aUJBQ2xFO2FBQ0Y7WUFDRCxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFD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Y0FGWCxNQUFNOzs0RkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9kYWxDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQge1xuICBNb2RhbE1ldGFkYXRhLFxuICBTaW1wbGVNb2RhbE1ldGFkYXRhLFxuICBNb2RhbFJlc3VsdCxcbiAgTW9kYWxCdXR0b24sXG4gIE1PREFMX1NJWkVTLFxuICBERUZBVUxUX01PREFMX0NPTkZJUk1fQlVUVE9OLFxuICBERUZBVUxUX01PREFMX0NBTkNFTF9CVVRUT04sXG59IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIE1vZGFsU2VydmljZVxuICpcbiAqIEEgc2VydmljZSBmb3IgY3JlYXRpbmcgYW5kIG1hbmFnaW5nIG1vZGFscyB3aXRoIHZhcmlvdXMgY29uZmlndXJhdGlvbnMuXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgY29tcG9uZW50IG1vZGFsXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXN1bHQgPSBhd2FpdCBtb2RhbFNlcnZpY2Uub3Blbih7XG4gKiAgIGNvbXBvbmVudDogTXlGb3JtQ29tcG9uZW50LFxuICogICBjb21wb25lbnRQcm9wczogeyB1c2VySWQ6IDEyMyB9LFxuICogICBoZWFkZXI6IHsgdGl0bGU6ICdFZGl0IFVzZXInLCBzaG93Q2xvc2VCdXR0b246IHRydWUgfSxcbiAqICAgc2l6ZTogJ21lZGl1bSdcbiAqIH0pO1xuICpcbiAqIGlmIChyZXN1bHQucm9sZSA9PT0gJ2NvbmZpcm0nKSB7XG4gKiAgIGNvbnNvbGUubG9nKCdTYXZlZDonLCByZXN1bHQuZGF0YSk7XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBTaW1wbGUgY29udGVudCBtb2RhbFxuICogYGBgdHlwZXNjcmlwdFxuICogYXdhaXQgbW9kYWxTZXJ2aWNlLm9wZW5TaW1wbGUoe1xuICogICB0aXRsZTogJ1Rlcm1zIG9mIFNlcnZpY2UnLFxuICogICBjb250ZW50OiAnPHA+VGVybXMgY29udGVudCBoZXJlLi4uPC9wPicsXG4gKiAgIHNpemU6ICdsYXJnZScsXG4gKiAgIHNob3dDbG9zZUJ1dHRvbjogdHJ1ZVxuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBTaGVldCBtb2RhbCAobW9iaWxlKVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9kYWxTZXJ2aWNlLm9wZW5TaGVldCh7XG4gKiAgIGNvbXBvbmVudDogRmlsdGVyQ29tcG9uZW50LFxuICogICBicmVha3BvaW50czoge1xuICogICAgIGluaXRpYWxCcmVha3BvaW50OiAwLjUsXG4gKiAgICAgYnJlYWtwb2ludHM6IFswLCAwLjUsIDFdLFxuICogICAgIHNob3dIYW5kbGU6IHRydWVcbiAqICAgfVxuICogfSk7XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsU2VydmljZSB7XG4gIHByaXZhdGUgbW9kYWxDb250cm9sbGVyID0gaW5qZWN0KE1vZGFsQ29udHJvbGxlcik7XG5cbiAgLyoqXG4gICAqIE9wZW5zIGEgbW9kYWwgd2l0aCBhIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBNb2RhbCBjb25maWd1cmF0aW9uXG4gICAqIEByZXR1cm5zIFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBtb2RhbCByZXN1bHRcbiAgICovXG4gIGFzeW5jIG9wZW48VCA9IGFueSwgUiA9IGFueT4ob3B0aW9uczogTW9kYWxNZXRhZGF0YTxUPik6IFByb21pc2U8TW9kYWxSZXN1bHQ8Uj4+IHtcbiAgICBjb25zdCBzaXplID0gTU9EQUxfU0laRVNbb3B0aW9ucy5zaXplIHx8ICdtZWRpdW0nXTtcbiAgICBjb25zdCBjc3NDbGFzc2VzID0gdGhpcy5idWlsZENzc0NsYXNzZXMob3B0aW9ucyk7XG5cbiAgICBjb25zdCBtb2RhbCA9IGF3YWl0IHRoaXMubW9kYWxDb250cm9sbGVyLmNyZWF0ZSh7XG4gICAgICBjb21wb25lbnQ6IG9wdGlvbnMuY29tcG9uZW50LFxuICAgICAgY29tcG9uZW50UHJvcHM6IHtcbiAgICAgICAgLi4ub3B0aW9ucy5jb21wb25lbnRQcm9wcyxcbiAgICAgICAgLy8gUGFzcyBtb2RhbCByZWZlcmVuY2UgZm9yIGRpc21pc3MgZnJvbSB3aXRoaW4gY29tcG9uZW50XG4gICAgICAgIF9tb2RhbFJlZjoge1xuICAgICAgICAgIGRpc21pc3M6IChkYXRhPzogYW55LCByb2xlPzogc3RyaW5nKSA9PiBtb2RhbC5kaXNtaXNzKGRhdGEsIHJvbGUpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGlkOiBvcHRpb25zLmlkLFxuICAgICAgc2hvd0JhY2tkcm9wOiBvcHRpb25zLnNob3dCYWNrZHJvcCA/PyB0cnVlLFxuICAgICAgYmFja2Ryb3BEaXNtaXNzOiBvcHRpb25zLmJhY2tkcm9wRGlzbWlzcyA/PyB0cnVlLFxuICAgICAga2V5Ym9hcmRDbG9zZTogb3B0aW9ucy5rZXlib2FyZENsb3NlID8/IHRydWUsXG4gICAgICBjc3NDbGFzczogY3NzQ2xhc3NlcyxcbiAgICAgIG1vZGU6IG9wdGlvbnMubW9kZSxcbiAgICAgIGFuaW1hdGVkOiBvcHRpb25zLmFuaW1hdGVkID8/IHRydWUsXG4gICAgICBjYW5EaXNtaXNzOiB0aGlzLm5vcm1hbGl6ZUNhbkRpc21pc3Mob3B0aW9ucy5jYW5EaXNtaXNzID8/IHRydWUpLFxuICAgICAgcHJlc2VudGluZ0VsZW1lbnQ6IG9wdGlvbnMucHJlc2VudGluZ0VsZW1lbnQsXG4gICAgICAvLyBTaGVldCBtb2RhbCBvcHRpb25zXG4gICAgICBpbml0aWFsQnJlYWtwb2ludDogb3B0aW9ucy5icmVha3BvaW50cz8uaW5pdGlhbEJyZWFrcG9pbnQsXG4gICAgICBicmVha3BvaW50czogb3B0aW9ucy5icmVha3BvaW50cz8uYnJlYWtwb2ludHMsXG4gICAgICBoYW5kbGU6IG9wdGlvbnMuYnJlYWtwb2ludHM/LnNob3dIYW5kbGUsXG4gICAgICBoYW5kbGVCZWhhdmlvcjogb3B0aW9ucy5icmVha3BvaW50cz8uaGFuZGxlQmVoYXZpb3IsXG4gICAgfSk7XG5cbiAgICAvLyBBcHBseSBjdXN0b20gc2l6ZSBzdHlsZXNcbiAgICBpZiAob3B0aW9ucy53aWR0aCB8fCBvcHRpb25zLmhlaWdodCB8fCBzaXplKSB7XG4gICAgICBjb25zdCBtb2RhbEVsID0gbW9kYWwgYXMgSFRNTElvbk1vZGFsRWxlbWVudDtcbiAgICAgIG1vZGFsRWwuc3R5bGUuc2V0UHJvcGVydHkoJy0td2lkdGgnLCBvcHRpb25zLndpZHRoIHx8IHNpemUud2lkdGggfHwgJ2F1dG8nKTtcbiAgICAgIG1vZGFsRWwuc3R5bGUuc2V0UHJvcGVydHkoJy0taGVpZ2h0Jywgb3B0aW9ucy5oZWlnaHQgfHwgc2l6ZS5oZWlnaHQgfHwgJ2F1dG8nKTtcbiAgICB9XG5cbiAgICBhd2FpdCBtb2RhbC5wcmVzZW50KCk7XG4gICAgY29uc3QgeyBkYXRhLCByb2xlIH0gPSBhd2FpdCBtb2RhbC5vbkRpZERpc21pc3MoKTtcblxuICAgIHJldHVybiB7IGRhdGEsIHJvbGUgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyBhIHNpbXBsZSBjb250ZW50IG1vZGFsIHdpdGhvdXQgYSBjdXN0b20gY29tcG9uZW50LlxuICAgKiBVc2VzIElvbmljJ3MgYWxlcnQtbGlrZSBzdHlsaW5nIGJ1dCB3aXRoIG1vZGFsIGNhcGFiaWxpdGllcy5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBTaW1wbGUgbW9kYWwgY29uZmlndXJhdGlvblxuICAgKiBAcmV0dXJucyBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgbW9kYWwgcmVzdWx0XG4gICAqL1xuICBhc3luYyBvcGVuU2ltcGxlKG9wdGlvbnM6IFNpbXBsZU1vZGFsTWV0YWRhdGEpOiBQcm9taXNlPE1vZGFsUmVzdWx0PiB7XG4gICAgLy8gSW1wb3J0IHRoZSBzaW1wbGUgbW9kYWwgY29tcG9uZW50IGR5bmFtaWNhbGx5XG4gICAgY29uc3QgeyBTaW1wbGVNb2RhbENvbnRlbnRDb21wb25lbnQgfSA9IGF3YWl0IGltcG9ydCgnLi9zaW1wbGUtbW9kYWwtY29udGVudC5jb21wb25lbnQnKTtcblxuICAgIHJldHVybiB0aGlzLm9wZW4oe1xuICAgICAgY29tcG9uZW50OiBTaW1wbGVNb2RhbENvbnRlbnRDb21wb25lbnQsXG4gICAgICBjb21wb25lbnRQcm9wczoge1xuICAgICAgICB0aXRsZTogb3B0aW9ucy50aXRsZSxcbiAgICAgICAgY29udGVudDogb3B0aW9ucy5jb250ZW50LFxuICAgICAgICBidXR0b25zOiBvcHRpb25zLmJ1dHRvbnMgfHwgW0RFRkFVTFRfTU9EQUxfQ0FOQ0VMX0JVVFRPTiwgREVGQVVMVF9NT0RBTF9DT05GSVJNX0JVVFRPTl0sXG4gICAgICAgIHNob3dDbG9zZUJ1dHRvbjogb3B0aW9ucy5zaG93Q2xvc2VCdXR0b24gPz8gdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBzaXplOiBvcHRpb25zLnNpemUgfHwgJ21lZGl1bScsXG4gICAgICBiYWNrZHJvcERpc21pc3M6IG9wdGlvbnMuYmFja2Ryb3BEaXNtaXNzID8/IHRydWUsXG4gICAgICBjc3NDbGFzczogWydzaW1wbGUtbW9kYWwnLCBvcHRpb25zLmNzc0NsYXNzXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIGEgY29uZmlybWF0aW9uIG1vZGFsLlxuICAgKiBAcGFyYW0gdGl0bGUgLSBNb2RhbCB0aXRsZVxuICAgKiBAcGFyYW0gbWVzc2FnZSAtIE1vZGFsIG1lc3NhZ2VcbiAgICogQHBhcmFtIGNvbmZpcm1CdXR0b24gLSBDb25maXJtIGJ1dHRvbiBjb25maWcgKG9wdGlvbmFsKVxuICAgKiBAcGFyYW0gY2FuY2VsQnV0dG9uIC0gQ2FuY2VsIGJ1dHRvbiBjb25maWcgKG9wdGlvbmFsKVxuICAgKiBAcmV0dXJucyBQcm9taXNlIHJlc29sdmluZyB0byB0cnVlIGlmIGNvbmZpcm1lZFxuICAgKi9cbiAgYXN5bmMgY29uZmlybShcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBjb25maXJtQnV0dG9uPzogUGFydGlhbDxNb2RhbEJ1dHRvbj4sXG4gICAgY2FuY2VsQnV0dG9uPzogUGFydGlhbDxNb2RhbEJ1dHRvbj5cbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5vcGVuU2ltcGxlKHtcbiAgICAgIHRpdGxlLFxuICAgICAgY29udGVudDogbWVzc2FnZSxcbiAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICBzaG93Q2xvc2VCdXR0b246IGZhbHNlLFxuICAgICAgYmFja2Ryb3BEaXNtaXNzOiBmYWxzZSxcbiAgICAgIGJ1dHRvbnM6IFtcbiAgICAgICAgeyAuLi5ERUZBVUxUX01PREFMX0NBTkNFTF9CVVRUT04sIC4uLmNhbmNlbEJ1dHRvbiB9LFxuICAgICAgICB7IC4uLkRFRkFVTFRfTU9EQUxfQ09ORklSTV9CVVRUT04sIC4uLmNvbmZpcm1CdXR0b24gfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0LnJvbGUgPT09ICdjb25maXJtJztcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyBhIHNoZWV0IG1vZGFsIChpT1Mtc3R5bGUgYm90dG9tIHNoZWV0KS5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBNb2RhbCBjb25maWd1cmF0aW9uIHdpdGggc2hlZXQtc3BlY2lmaWMgb3B0aW9uc1xuICAgKiBAcmV0dXJucyBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgbW9kYWwgcmVzdWx0XG4gICAqL1xuICBhc3luYyBvcGVuU2hlZXQ8VCA9IGFueSwgUiA9IGFueT4oXG4gICAgb3B0aW9uczogT21pdDxNb2RhbE1ldGFkYXRhPFQ+LCAnYnJlYWtwb2ludHMnPiAmIHtcbiAgICAgIGluaXRpYWxCcmVha3BvaW50PzogbnVtYmVyO1xuICAgICAgYnJlYWtwb2ludHM/OiBudW1iZXJbXTtcbiAgICAgIHNob3dIYW5kbGU/OiBib29sZWFuO1xuICAgIH1cbiAgKTogUHJvbWlzZTxNb2RhbFJlc3VsdDxSPj4ge1xuICAgIHJldHVybiB0aGlzLm9wZW4oe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGJyZWFrcG9pbnRzOiB7XG4gICAgICAgIGluaXRpYWxCcmVha3BvaW50OiBvcHRpb25zLmluaXRpYWxCcmVha3BvaW50ID8/IDAuNSxcbiAgICAgICAgYnJlYWtwb2ludHM6IG9wdGlvbnMuYnJlYWtwb2ludHMgPz8gWzAsIDAuNSwgMV0sXG4gICAgICAgIHNob3dIYW5kbGU6IG9wdGlvbnMuc2hvd0hhbmRsZSA/PyB0cnVlLFxuICAgICAgfSxcbiAgICAgIGNzc0NsYXNzOiBbJ3NoZWV0LW1vZGFsJywgb3B0aW9ucy5jc3NDbGFzc10uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyBhIGZ1bGxzY3JlZW4gbW9kYWwuXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gTW9kYWwgY29uZmlndXJhdGlvblxuICAgKiBAcmV0dXJucyBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgbW9kYWwgcmVzdWx0XG4gICAqL1xuICBhc3luYyBvcGVuRnVsbHNjcmVlbjxUID0gYW55LCBSID0gYW55PihvcHRpb25zOiBNb2RhbE1ldGFkYXRhPFQ+KTogUHJvbWlzZTxNb2RhbFJlc3VsdDxSPj4ge1xuICAgIHJldHVybiB0aGlzLm9wZW4oe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHNpemU6ICdmdWxsJyxcbiAgICAgIGNzc0NsYXNzOiBbJ2Z1bGxzY3JlZW4tbW9kYWwnLCBvcHRpb25zLmNzc0NsYXNzXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc21pc3NlcyB0aGUgdG9wLW1vc3QgbW9kYWwuXG4gICAqIEBwYXJhbSBkYXRhIC0gT3B0aW9uYWwgZGF0YSB0byByZXR1cm5cbiAgICogQHBhcmFtIHJvbGUgLSBPcHRpb25hbCByb2xlXG4gICAqL1xuICBhc3luYyBkaXNtaXNzKGRhdGE/OiBhbnksIHJvbGU/OiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5tb2RhbENvbnRyb2xsZXIuZGlzbWlzcyhkYXRhLCByb2xlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB0b3AtbW9zdCBtb2RhbC5cbiAgICovXG4gIGFzeW5jIGdldFRvcCgpOiBQcm9taXNlPEhUTUxJb25Nb2RhbEVsZW1lbnQgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5tb2RhbENvbnRyb2xsZXIuZ2V0VG9wKCk7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZUNhbkRpc21pc3MoXG4gICAgY2FuRGlzbWlzczogYm9vbGVhbiB8ICgoKSA9PiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPilcbiAgKTogYm9vbGVhbiB8ICgoZGF0YT86IGFueSwgcm9sZT86IHN0cmluZykgPT4gUHJvbWlzZTxib29sZWFuPikge1xuICAgIGlmICh0eXBlb2YgY2FuRGlzbWlzcyA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICByZXR1cm4gY2FuRGlzbWlzcztcbiAgICB9XG4gICAgLy8gV3JhcCB0aGUgZnVuY3Rpb24gdG8gZW5zdXJlIGl0IHJldHVybnMgYSBQcm9taXNlXG4gICAgcmV0dXJuIGFzeW5jIChkYXRhPzogYW55LCByb2xlPzogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBjYW5EaXNtaXNzKCk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCk7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDc3NDbGFzc2VzKG9wdGlvbnM6IE1vZGFsTWV0YWRhdGEpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNsYXNzZXM6IHN0cmluZ1tdID0gWyd2YWwtbW9kYWwnXTtcblxuICAgIGlmIChvcHRpb25zLnNpemUpIHtcbiAgICAgIGNsYXNzZXMucHVzaChgbW9kYWwtJHtvcHRpb25zLnNpemV9YCk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuaGVhZGVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ21vZGFsLXdpdGgtaGVhZGVyJyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZm9vdGVyKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ21vZGFsLXdpdGgtZm9vdGVyJyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuY3NzQ2xhc3MpIHtcbiAgICAgIGNsYXNzZXMucHVzaChvcHRpb25zLmNzc0NsYXNzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG4gIH1cbn1cbiJdfQ==
|