@fundamental-ngx/core 0.35.0-rc.13 → 0.35.0-rc.14
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/action-bar/package.json +1 -1
- package/action-sheet/package.json +1 -1
- package/alert/package.json +1 -1
- package/avatar/package.json +1 -1
- package/avatar-group/package.json +1 -1
- package/bar/package.json +1 -1
- package/breadcrumb/package.json +1 -1
- package/busy-indicator/package.json +1 -1
- package/button/package.json +1 -1
- package/calendar/package.json +1 -1
- package/card/package.json +1 -1
- package/carousel/package.json +1 -1
- package/checkbox/package.json +1 -1
- package/combobox/package.json +1 -1
- package/date-picker/package.json +1 -1
- package/datetime/package.json +1 -1
- package/datetime-picker/package.json +1 -1
- package/dialog/package.json +1 -1
- package/dynamic-page/package.json +1 -1
- package/dynamic-side-content/package.json +1 -1
- package/esm2020/popover/base/base-popover.class.mjs +17 -3
- package/esm2020/popover/popover-service/popover.service.mjs +9 -14
- package/facets/package.json +1 -1
- package/feed-input/package.json +1 -1
- package/feed-list-item/package.json +1 -1
- package/fesm2015/fundamental-ngx-core-popover.mjs +24 -16
- package/fesm2015/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-popover.mjs +24 -15
- package/fesm2020/fundamental-ngx-core-popover.mjs.map +1 -1
- package/file-uploader/package.json +1 -1
- package/fixed-card-layout/package.json +1 -1
- package/flexible-column-layout/package.json +1 -1
- package/form/package.json +1 -1
- package/formatted-text/package.json +1 -1
- package/grid-list/package.json +1 -1
- package/icon/package.json +1 -1
- package/illustrated-message/package.json +1 -1
- package/infinite-scroll/package.json +1 -1
- package/info-label/package.json +1 -1
- package/inline-help/package.json +1 -1
- package/input-group/package.json +1 -1
- package/layout-grid/package.json +1 -1
- package/layout-panel/package.json +1 -1
- package/link/package.json +1 -1
- package/list/package.json +1 -1
- package/menu/package.json +1 -1
- package/message-box/package.json +1 -1
- package/message-strip/package.json +1 -1
- package/message-toast/package.json +1 -1
- package/micro-process-flow/package.json +1 -1
- package/mobile-mode/package.json +1 -1
- package/multi-input/package.json +1 -1
- package/nested-list/package.json +1 -1
- package/notification/package.json +1 -1
- package/object-identifier/package.json +1 -1
- package/object-marker/package.json +1 -1
- package/object-number/package.json +1 -1
- package/object-status/package.json +1 -1
- package/package.json +1 -1
- package/pagination/package.json +1 -1
- package/panel/package.json +1 -1
- package/popover/base/base-popover.class.d.ts +26 -3
- package/popover/esm2020/base/base-popover.class.mjs +17 -3
- package/popover/esm2020/popover-service/popover.service.mjs +9 -14
- package/popover/fesm2015/fundamental-ngx-core-popover.mjs +24 -16
- package/popover/fesm2015/fundamental-ngx-core-popover.mjs.map +1 -1
- package/popover/fesm2020/fundamental-ngx-core-popover.mjs +24 -15
- package/popover/fesm2020/fundamental-ngx-core-popover.mjs.map +1 -1
- package/popover/package.json +1 -1
- package/popover/popover-service/popover.service.d.ts +1 -5
- package/product-switch/package.json +1 -1
- package/progress-indicator/package.json +1 -1
- package/quick-view/package.json +1 -1
- package/radio/package.json +1 -1
- package/rating-indicator/package.json +1 -1
- package/resizable-card-layout/package.json +1 -1
- package/scroll-spy/package.json +1 -1
- package/scrollbar/package.json +1 -1
- package/segmented-button/package.json +1 -1
- package/select/package.json +1 -1
- package/shared/package.json +1 -1
- package/shellbar/package.json +1 -1
- package/side-navigation/package.json +1 -1
- package/slider/package.json +1 -1
- package/split-button/package.json +1 -1
- package/splitter/package.json +1 -1
- package/status-indicator/package.json +1 -1
- package/step-input/package.json +1 -1
- package/switch/package.json +1 -1
- package/table/package.json +1 -1
- package/tabs/package.json +1 -1
- package/text/package.json +1 -1
- package/theming/package.json +1 -1
- package/tile/package.json +1 -1
- package/time/package.json +1 -1
- package/time-picker/package.json +1 -1
- package/timeline/package.json +1 -1
- package/title/package.json +1 -1
- package/token/package.json +1 -1
- package/toolbar/package.json +1 -1
- package/tree/package.json +1 -1
- package/upload-collection/package.json +1 -1
- package/utils/package.json +1 -1
- package/vertical-navigation/package.json +1 -1
- package/wizard/package.json +1 -1
package/package.json
CHANGED
package/pagination/package.json
CHANGED
package/panel/package.json
CHANGED
|
@@ -24,9 +24,23 @@ export declare class BasePopoverClass {
|
|
|
24
24
|
* right, right-start, right-end, left, left-start, left-end.
|
|
25
25
|
*/
|
|
26
26
|
placement: Placement | null;
|
|
27
|
-
/**
|
|
28
|
-
*
|
|
29
|
-
|
|
27
|
+
/**
|
|
28
|
+
* The trigger events that will open/close the popover.
|
|
29
|
+
* Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp) or a config object for the corresponding event.
|
|
30
|
+
* Using the config object allows to specify whether an event should apply both for open and close actions or only some of them.
|
|
31
|
+
*
|
|
32
|
+
* Consider the following value for `triggers`:
|
|
33
|
+
* ```
|
|
34
|
+
* [
|
|
35
|
+
* 'click', // basically it's an alias for "{ trigger: 'click', openAction: true, closeAction: true }"
|
|
36
|
+
* { trigger: 'mouseenter', openAction: true, closeAction: false }, // "mouseenter" will only open the popover
|
|
37
|
+
* { trigger: 'mouseleave', openAction: false, closeAction: true } // "mouseleave" will only close the popover
|
|
38
|
+
* ]
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* @default ['click']
|
|
42
|
+
*/
|
|
43
|
+
triggers: (string | TriggerConfig)[];
|
|
30
44
|
/** Whether the popover is open. Can be used through two-way binding. */
|
|
31
45
|
isOpen: boolean;
|
|
32
46
|
/** Whether the popover should close when a click is made outside its boundaries. */
|
|
@@ -75,3 +89,12 @@ export declare class BasePopoverClass {
|
|
|
75
89
|
static ɵfac: i0.ɵɵFactoryDeclaration<BasePopoverClass, never>;
|
|
76
90
|
static ɵdir: i0.ɵɵDirectiveDeclaration<BasePopoverClass, never, never, { "closeOnNavigation": "closeOnNavigation"; "disabled": "disabled"; "maxWidth": "maxWidth"; "noArrow": "noArrow"; "additionalBodyClass": "additionalBodyClass"; "additionalTriggerClass": "additionalTriggerClass"; "closeOnEscapeKey": "closeOnEscapeKey"; "placement": "placement"; "triggers": "triggers"; "isOpen": "isOpen"; "closeOnOutsideClick": "closeOnOutsideClick"; "focusTrapped": "focusTrapped"; "focusAutoCapture": "focusAutoCapture"; "scrollStrategy": "scrollStrategy"; "cdkPositions": "cdkPositions"; "fillControlMode": "fillControlMode"; "appendTo": "appendTo"; "fixedPosition": "fixedPosition"; "options": "options"; "addContainerClass": "addContainerClass"; "additionalClasses": "additionalClasses"; }, { "isOpenChange": "isOpenChange"; }, never>;
|
|
77
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Config for the trigger event, which allows to specify
|
|
94
|
+
* whether an event should apply both for open and close actions or only some of them
|
|
95
|
+
*/
|
|
96
|
+
export interface TriggerConfig {
|
|
97
|
+
trigger: string;
|
|
98
|
+
openAction: boolean;
|
|
99
|
+
closeAction: boolean;
|
|
100
|
+
}
|
|
@@ -23,8 +23,22 @@ export class BasePopoverClass {
|
|
|
23
23
|
* right, right-start, right-end, left, left-start, left-end.
|
|
24
24
|
*/
|
|
25
25
|
this.placement = null;
|
|
26
|
-
/**
|
|
27
|
-
*
|
|
26
|
+
/**
|
|
27
|
+
* The trigger events that will open/close the popover.
|
|
28
|
+
* Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp) or a config object for the corresponding event.
|
|
29
|
+
* Using the config object allows to specify whether an event should apply both for open and close actions or only some of them.
|
|
30
|
+
*
|
|
31
|
+
* Consider the following value for `triggers`:
|
|
32
|
+
* ```
|
|
33
|
+
* [
|
|
34
|
+
* 'click', // basically it's an alias for "{ trigger: 'click', openAction: true, closeAction: true }"
|
|
35
|
+
* { trigger: 'mouseenter', openAction: true, closeAction: false }, // "mouseenter" will only open the popover
|
|
36
|
+
* { trigger: 'mouseleave', openAction: false, closeAction: true } // "mouseleave" will only close the popover
|
|
37
|
+
* ]
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @default ['click']
|
|
41
|
+
*/
|
|
28
42
|
this.triggers = ['click'];
|
|
29
43
|
/** Whether the popover is open. Can be used through two-way binding. */
|
|
30
44
|
this.isOpen = false;
|
|
@@ -119,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
|
|
|
119
133
|
}], isOpenChange: [{
|
|
120
134
|
type: Output
|
|
121
135
|
}] } });
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wb3BvdmVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcG9wb3Zlci9iYXNlL2Jhc2UtcG9wb3Zlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLaEcsTUFBTSxPQUFPLGdCQUFnQjtJQUQ3QjtRQUdJLCtEQUErRDtRQUMvRCxzQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFFekIsdUNBQXVDO1FBR3ZDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsa0dBQWtHO1FBRWxHLGFBQVEsR0FBcUIsSUFBSSxDQUFDO1FBRWxDLGdEQUFnRDtRQUVoRCxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBRWYsc0VBQXNFO1FBRXRFLHdCQUFtQixHQUFrQixJQUFJLENBQUM7UUFFMUMsc0VBQXNFO1FBRXRFLDJCQUFzQixHQUFrQixJQUFJLENBQUM7UUFFN0MsdUVBQXVFO1FBRXZFLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUV4Qjs7Ozs7V0FLRztRQUVILGNBQVMsR0FBcUIsSUFBSSxDQUFDO1FBRW5DOzs7Ozs7Ozs7Ozs7Ozs7V0FlRztRQUVILGFBQVEsR0FBK0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVqRCx3RUFBd0U7UUFFeEUsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUVmLG9GQUFvRjtRQUVwRix3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFFM0Isa0RBQWtEO1FBRWxELGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCOzs7V0FHRztRQUVILHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUV6Qjs7Ozs7O1dBTUc7UUFFSCxtQkFBYyxHQUEwQixJQUFJLENBQUM7UUFFN0M7Ozs7O1dBS0c7UUFFSCxpQkFBWSxHQUErQixJQUFJLENBQUM7UUFFaEQ7Ozs7O1dBS0c7UUFFSCxvQkFBZSxHQUE4QixJQUFJLENBQUM7UUFNbEQsa0ZBQWtGO1FBRWxGLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBY3RCLG1FQUFtRTtRQUVuRSxpQkFBWSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO0tBQ3JFOzs2R0FoSVksZ0JBQWdCO2lHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsU0FBUzs7UUFHTiwrREFBK0Q7UUFDL0QsaUJBQWlCO3NCQUZoQixLQUFLO2dCQU9OLFFBQVE7c0JBRlAsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxtQ0FBbUM7Z0JBS2hELFFBQVE7c0JBRFAsS0FBSztnQkFLTixPQUFPO3NCQUROLEtBQUs7Z0JBS04sbUJBQW1CO3NCQURsQixLQUFLO2dCQUtOLHNCQUFzQjtzQkFEckIsS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFVTixTQUFTO3NCQURSLEtBQUs7Z0JBb0JOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixNQUFNO3NCQURMLEtBQUs7Z0JBS04sbUJBQW1CO3NCQURsQixLQUFLO2dCQUtOLFlBQVk7c0JBRFgsS0FBSztnQkFRTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFXTixjQUFjO3NCQURiLEtBQUs7Z0JBVU4sWUFBWTtzQkFEWCxLQUFLO2dCQVVOLGVBQWU7c0JBRGQsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sYUFBYTtzQkFEWixLQUFLO2dCQUtOLE9BQU87c0JBRE4sS0FBSztnQkFLTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBS04saUJBQWlCO3NCQURoQixLQUFLO2dCQUtOLFlBQVk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24sIFNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgUGxhY2VtZW50LCBQb3BvdmVyRmlsbE1vZGUsIE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIEJhc2VQb3BvdmVyQ2xhc3Mge1xuICAgIEBJbnB1dCgpXG4gICAgLyoqIFdoZXRoZXIgdG8gY2xvc2UgdGhlIHBvcG92ZXIgb24gcm91dGVyIG5hdmlnYXRpb24gc3RhcnQuICovXG4gICAgY2xvc2VPbk5hdmlnYXRpb24gPSB0cnVlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHBvcG92ZXIgaXMgZGlzYWJsZWQuICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLXBvcG92ZXItY3VzdG9tLS1kaXNhYmxlZCcpXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKiBNYXhpbXVtIHdpZHRoIG9mIHBvcG92ZXIgYm9keSBpbiBweCwgcHJldmVudHMgZnJvbSBvdmVyZXh0ZW5kaW5nIGJvZHkgYnkgYGZpbGxDb250cm9sTW9kZWAgICovXG4gICAgQElucHV0KClcbiAgICBtYXhXaWR0aDogTnVsbGFibGU8bnVtYmVyPiA9IG51bGw7XG5cbiAgICAvKiogV2hldGhlciB0aGUgcG9wb3ZlciBzaG91bGQgaGF2ZSBhbiBhcnJvdy4gKi9cbiAgICBASW5wdXQoKVxuICAgIG5vQXJyb3cgPSB0cnVlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHBvcG92ZXIgY29udGFpbmVyIG5lZWRzIGFuIGV4dHJhIGNsYXNzIGZvciBzdHlsaW5nLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWRkaXRpb25hbEJvZHlDbGFzczogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKiogV2hldGhlciB0aGUgcG9wb3ZlciBjb250YWluZXIgbmVlZHMgYW4gZXh0cmEgY2xhc3MgZm9yIHN0eWxpbmcuICovXG4gICAgQElucHV0KClcbiAgICBhZGRpdGlvbmFsVHJpZ2dlckNsYXNzOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBwb3BvdmVyIHNob3VsZCBjbG9zZSB3aGVuIHRoZSBlc2NhcGUga2V5IGlzIHByZXNzZWQuICovXG4gICAgQElucHV0KClcbiAgICBjbG9zZU9uRXNjYXBlS2V5ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBwbGFjZW1lbnQgb2YgdGhlIHBvcG92ZXIuXG4gICAgICogSXQgY2FuIGJlIG9uZSBvZjpcbiAgICAgKiB0b3AsIHRvcC1zdGFydCwgdG9wLWVuZCwgYm90dG9tLCBib3R0b20tc3RhcnQsIGJvdHRvbS1lbmQsXG4gICAgICogcmlnaHQsIHJpZ2h0LXN0YXJ0LCByaWdodC1lbmQsIGxlZnQsIGxlZnQtc3RhcnQsIGxlZnQtZW5kLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2VtZW50OiBQbGFjZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0cmlnZ2VyIGV2ZW50cyB0aGF0IHdpbGwgb3Blbi9jbG9zZSB0aGUgcG9wb3Zlci5cbiAgICAgKiBBY2NlcHRzIGFueSBbSFRNTCBET00gRXZlbnRzXShodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2pzcmVmL2RvbV9vYmpfZXZlbnQuYXNwKSBvciBhIGNvbmZpZyBvYmplY3QgZm9yIHRoZSBjb3JyZXNwb25kaW5nIGV2ZW50LlxuICAgICAqIFVzaW5nIHRoZSBjb25maWcgb2JqZWN0IGFsbG93cyB0byBzcGVjaWZ5IHdoZXRoZXIgYW4gZXZlbnQgc2hvdWxkIGFwcGx5IGJvdGggZm9yIG9wZW4gYW5kIGNsb3NlIGFjdGlvbnMgb3Igb25seSBzb21lIG9mIHRoZW0uXG4gICAgICpcbiAgICAgKiBDb25zaWRlciB0aGUgZm9sbG93aW5nIHZhbHVlIGZvciBgdHJpZ2dlcnNgOlxuICAgICAqIGBgYFxuICAgICAqIFtcbiAgICAgKiAgJ2NsaWNrJywgLy8gYmFzaWNhbGx5IGl0J3MgYW4gYWxpYXMgZm9yIFwieyB0cmlnZ2VyOiAnY2xpY2snLCBvcGVuQWN0aW9uOiB0cnVlLCBjbG9zZUFjdGlvbjogdHJ1ZSB9XCJcbiAgICAgKiAgeyB0cmlnZ2VyOiAnbW91c2VlbnRlcicsIG9wZW5BY3Rpb246IHRydWUsIGNsb3NlQWN0aW9uOiBmYWxzZSB9LCAvLyBcIm1vdXNlZW50ZXJcIiB3aWxsIG9ubHkgb3BlbiB0aGUgcG9wb3ZlclxuICAgICAqICB7IHRyaWdnZXI6ICdtb3VzZWxlYXZlJywgb3BlbkFjdGlvbjogZmFsc2UsIGNsb3NlQWN0aW9uOiB0cnVlIH0gLy8gXCJtb3VzZWxlYXZlXCIgd2lsbCBvbmx5IGNsb3NlIHRoZSBwb3BvdmVyXG4gICAgICogXVxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQGRlZmF1bHQgWydjbGljayddXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB0cmlnZ2VyczogKHN0cmluZyB8IFRyaWdnZXJDb25maWcpW10gPSBbJ2NsaWNrJ107XG5cbiAgICAvKiogV2hldGhlciB0aGUgcG9wb3ZlciBpcyBvcGVuLiBDYW4gYmUgdXNlZCB0aHJvdWdoIHR3by13YXkgYmluZGluZy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlzT3BlbiA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHBvcG92ZXIgc2hvdWxkIGNsb3NlIHdoZW4gYSBjbGljayBpcyBtYWRlIG91dHNpZGUgaXRzIGJvdW5kYXJpZXMuICovXG4gICAgQElucHV0KClcbiAgICBjbG9zZU9uT3V0c2lkZUNsaWNrID0gdHJ1ZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBwb3BvdmVyIHNob3VsZCBiZSBmb2N1c1RyYXBwZWQuICovXG4gICAgQElucHV0KClcbiAgICBmb2N1c1RyYXBwZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHBvcG92ZXIgc2hvdWxkIGF1dG9tYXRpY2FsbHkgbW92ZSBmb2N1cyBpbnRvIHRoZSB0cmFwcGVkIHJlZ2lvbiB1cG9uXG4gICAgICogaW5pdGlhbGl6YXRpb24gYW5kIHJldHVybiBmb2N1cyB0byB0aGUgcHJldmlvdXMgYWN0aXZlRWxlbWVudCB1cG9uIGRlc3RydWN0aW9uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZm9jdXNBdXRvQ2FwdHVyZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogU2Nyb2xsIHN0cmF0ZWd5LCB0aGVyZSBhcmUgNCBhY2NlcHRlZFxuICAgICAqIC0gQ2xvc2VTY3JvbGxTdHJhdGVneVxuICAgICAqIC0gTm9vcFNjcm9sbFN0cmF0ZWd5XG4gICAgICogLSBCbG9ja1Njcm9sbFN0cmF0ZWd5XG4gICAgICogLSBSZXBvc2l0aW9uU2Nyb2xsU3RyYXRlZ3kgKCBkZWZhdWx0IClcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNjcm9sbFN0cmF0ZWd5OiBTY3JvbGxTdHJhdGVneSB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBwb3NpdGlvbnMgb3B0aW9ucyBmb3Igb3ZlcmxheSBkZWZpbmVkIGJ5IGFuZ3VsYXIgQ0RLLlxuICAgICAqIFBvc2l0aW9ucyB3aWxsIGJlIHRha2VuIGluIG9yZGVyLCBzYW1lIGxpa2Ugb24gYXJyYXkuIElmIGZpcnN0IHBvc2l0aW9uIHByb3ZpZGVkIGRvZXNuJ3QgZml0IHRvIHdpbmRvdyxcbiAgICAgKiBhbm90aGVyIHdpbGwgYmUgdXNlZFxuICAgICAqIE1vcmUgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIGh0dHBzOi8vbWF0ZXJpYWwuYW5ndWxhci5pby9jZGsvb3ZlcmxheS9hcGlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNka1Bvc2l0aW9uczogQ29ubmVjdGVkUG9zaXRpb25bXSB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUHJlc2V0IG9wdGlvbnMgZm9yIHRoZSBwb3BvdmVyIGJvZHkgd2lkdGguXG4gICAgICogKiBgYXQtbGVhc3RgIHdpbGwgYXBwbHkgYSBtaW5pbXVtIHdpZHRoIHRvIHRoZSBib2R5IGVxdWl2YWxlbnQgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb250cm9sLlxuICAgICAqICogYGVxdWFsYCB3aWxsIGFwcGx5IGEgd2lkdGggdG8gdGhlIGJvZHkgZXF1aXZhbGVudCB0byB0aGUgd2lkdGggb2YgdGhlIGNvbnRyb2wuXG4gICAgICogKiBMZWF2ZSBibGFuayBmb3Igbm8gZWZmZWN0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsbENvbnRyb2xNb2RlOiBOdWxsYWJsZTxQb3BvdmVyRmlsbE1vZGU+ID0gbnVsbDtcblxuICAgIC8qKiBUaGUgZWxlbWVudCB0byB3aGljaCAgdGhlIG92ZXJsYXkgaXMgYXR0YWNoZWQuIEJ5IGRlZmF1bHQgaXQgaXMgYm9keSAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXBwZW5kVG86IE51bGxhYmxlPEVsZW1lbnRSZWYgfCBFbGVtZW50PjtcblxuICAgIC8qKiBXaGV0aGVyIHBvc2l0aW9uIHNob3VsZG4ndCBjaGFuZ2UsIHdoZW4gcG9wb3ZlciBhcHByb2FjaCB0aGUgY29ybmVyIG9mIHBhZ2UgKi9cbiAgICBASW5wdXQoKVxuICAgIGZpeGVkUG9zaXRpb24gPSBmYWxzZTtcblxuICAgIC8qKiBAZGVwcmVjYXRlZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgb3B0aW9ucztcblxuICAgIC8qKiBAZGVwcmVjYXRlZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWRkQ29udGFpbmVyQ2xhc3M7XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgKi9cbiAgICBASW5wdXQoKVxuICAgIGFkZGl0aW9uYWxDbGFzc2VzO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc3RhdGUgb2YgdGhlIGlzT3BlbiBwcm9wZXJ0eSBjaGFuZ2VzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGlzT3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xufVxuXG4vKipcbiAqIENvbmZpZyBmb3IgdGhlIHRyaWdnZXIgZXZlbnQsIHdoaWNoIGFsbG93cyB0byBzcGVjaWZ5XG4gKiB3aGV0aGVyIGFuIGV2ZW50IHNob3VsZCBhcHBseSBib3RoIGZvciBvcGVuIGFuZCBjbG9zZSBhY3Rpb25zIG9yIG9ubHkgc29tZSBvZiB0aGVtXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJpZ2dlckNvbmZpZyB7XG4gICAgdHJpZ2dlcjogc3RyaW5nO1xuICAgIG9wZW5BY3Rpb246IGJvb2xlYW47XG4gICAgY2xvc2VBY3Rpb246IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -106,12 +106,12 @@ export class PopoverService extends BasePopoverClass {
|
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
/** Toggles the popover open state */
|
|
109
|
-
toggle() {
|
|
109
|
+
toggle(openAction = true, closeAction = true) {
|
|
110
110
|
if (this.isOpen) {
|
|
111
|
-
this.close();
|
|
111
|
+
closeAction && this.close();
|
|
112
112
|
}
|
|
113
113
|
else {
|
|
114
|
-
this.open();
|
|
114
|
+
openAction && this.open();
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
/**
|
|
@@ -176,21 +176,16 @@ export class PopoverService extends BasePopoverClass {
|
|
|
176
176
|
this._removeTriggerListeners();
|
|
177
177
|
if (this.triggers?.length) {
|
|
178
178
|
this.triggers.forEach((trigger) => {
|
|
179
|
-
|
|
180
|
-
|
|
179
|
+
const triggerName = typeof trigger === 'string' ? trigger : trigger.trigger;
|
|
180
|
+
this._eventRef.push(this._renderer.listen(this._triggerElement.nativeElement, triggerName, () => {
|
|
181
|
+
const closeAction = typeof trigger !== 'object' || !!trigger.closeAction;
|
|
182
|
+
const openAction = typeof trigger !== 'object' || !!trigger.openAction;
|
|
183
|
+
this.toggle(openAction, closeAction);
|
|
181
184
|
}));
|
|
182
185
|
});
|
|
183
186
|
}
|
|
184
187
|
}
|
|
185
188
|
/** @hidden */
|
|
186
|
-
_isToggle(trigger) {
|
|
187
|
-
// prevent unexpected toggling when it triggers the same event
|
|
188
|
-
if (this._prevTrigger !== trigger || this.triggers?.length <= 1) {
|
|
189
|
-
this.toggle();
|
|
190
|
-
}
|
|
191
|
-
this._prevTrigger = trigger;
|
|
192
|
-
}
|
|
193
|
-
/** @hidden */
|
|
194
189
|
_getOverlayConfig(position) {
|
|
195
190
|
const direction = this._getDirection();
|
|
196
191
|
return new OverlayConfig({
|
|
@@ -348,4 +343,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
|
|
|
348
343
|
}] }, { type: i3.PopoverContainerDirective, decorators: [{
|
|
349
344
|
type: Optional
|
|
350
345
|
}] }]; } });
|
|
351
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcG9wb3Zlci9wb3BvdmVyLXNlcnZpY2UvcG9wb3Zlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQWlDLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUdILE9BQU8sRUFDUCxhQUFhLEVBRWIsYUFBYSxFQUVoQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFZLE1BQU0sOEJBQThCLENBQUM7QUFFN0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0RBQWtELENBQUM7Ozs7O0FBRTdGLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQztBQVMvQixNQUFNLE9BQU8sY0FBZSxTQUFRLGdCQUFnQjtJQXdDaEQsWUFDWSxRQUFpQixFQUNqQixTQUFvQixFQUNwQixjQUE2QixFQUM3QixTQUFtQixFQUNQLFdBQXVCLEVBQ2QsaUJBQTRDO1FBRXpFLEtBQUssRUFBRSxDQUFDO1FBUEEsYUFBUSxHQUFS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LElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUMxQztJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ04sMEJBQTBCO1FBQzlCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsR0FBZ0IsUUFBUSxDQUFDLGFBQWEsQ0FBQztZQUM5RCxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQztTQUN4RDtJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ04saUNBQWlDO1FBQ3JDLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUNsRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDbkM7SUFDTCxDQUFDOzsyR0F0YVEsY0FBYzsrR0FBZCxjQUFjOzJGQUFkLGNBQWM7a0JBRDFCLFVBQVU7OzBCQThDRixRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE9wdGlvbmFsLCBSZW5kZXJlcjIsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwsIFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICAgIENvbm5lY3RlZFBvc2l0aW9uLFxuICAgIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSxcbiAgICBPdmVybGF5LFxuICAgIE92ZXJsYXlDb25maWcsXG4gICAgT3ZlcmxheVJlZixcbiAgICBWaWV3cG9ydFJ1bGVyLFxuICAgIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZVxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBtZXJnZSwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgR2V0RGVmYXVsdFBvc2l0aW9uLCBQb3BvdmVyUG9zaXRpb24sIE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5cbmltcG9ydCB7IEJhc2VQb3BvdmVyQ2xhc3MgfSBmcm9tICcuLi9iYXNlL2Jhc2UtcG9wb3Zlci5jbGFzcyc7XG5pbXBvcnQgeyBQb3BvdmVyQm9keUNvbXBvbmVudCB9IGZyb20gJy4uL3BvcG92ZXItYm9keS9wb3BvdmVyLWJvZHkuY29tcG9uZW50JztcbmltcG9ydCB7IFBvcG92ZXJDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9wb3BvdmVyLWNvbnRhaW5lci9wb3BvdmVyLWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuXG5jb25zdCBNQVhfQk9EWV9TSVpFID0gOTk5OTk5OTk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9wb3ZlclRlbXBsYXRlIHtcbiAgICBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG4gICAgcG9wb3ZlckJvZHk6IFBvcG92ZXJCb2R5Q29tcG9uZW50O1xuICAgIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUG9wb3ZlclNlcnZpY2UgZXh0ZW5kcyBCYXNlUG9wb3ZlckNsYXNzIHtcbiAgICAvKiogU3RyaW5nIGNvbnRlbnQgZGlzcGxheWVkIGluc2lkZSBwb3BvdmVyIGJvZHkgKi9cbiAgICBzdHJpbmdDb250ZW50OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFRlbXBsYXRlIGNvbnRlbnQgZGlzcGxheWVkIGluc2lkZSBwb3BvdmVyIGJvZHkgKi9cbiAgICB0ZW1wbGF0ZUNvbnRlbnQ6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25Mb2FkID0gbmV3IFN1YmplY3Q8RWxlbWVudFJlZj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZXZlbnRSZWY6ICgoKSA9PiB2b2lkKVtdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3JlZnJlc2gkOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCB2b2lkPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcGxhY2VtZW50UmVmcmVzaCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wb3BvdmVyQm9keTogUG9wb3ZlckJvZHlDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9sYXN0QWN0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RlbXBsYXRlRGF0YTogTnVsbGFibGU8UG9wb3ZlclRlbXBsYXRlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcHJldlRyaWdnZXI6IHN0cmluZztcblxuICAgIC8qKiBBbiBSeEpTIFN1YmplY3QgdGhhdCB3aWxsIGtpbGwgdGhlIGRhdGEgc3RyZWFtIHVwb24gY29tcG9uZW504oCZcyBkZXN0cnVjdGlvbiAoZm9yIHVuc3Vic2NyaWJpbmcpICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX29uRGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgX3ZpZXdwb3J0UnVsZXI6IFZpZXdwb3J0UnVsZXIsXG4gICAgICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfcnRsU2VydmljZTogUnRsU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBfcG9wb3ZlckNvbnRhaW5lcjogUG9wb3ZlckNvbnRhaW5lckRpcmVjdGl2ZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIC8qKiBNZXJnZSBvYnNlcnZhYmxlcyAtIGNsb3NlIG9yIGRlc3Ryb3kgKi9cbiAgICAgICAgdGhpcy5fcmVmcmVzaCQgPSBtZXJnZSh0aGlzLmlzT3BlbkNoYW5nZSwgdGhpcy5fb25EZXN0cm95JCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIGluaXRpYWxpc2luZyB0aGUgcG9wb3ZlciBzZXJ2aWNlIC0gc2hvdWxkIGJlIGNhbGxlZCwgYWZ0ZXIgdmlldyBpcyBpbml0aWFsaXNlZCwgcGFyYW1zOlxuICAgICAqIC0gdHJpZ2dlckVsZW1lbnQgLSBlbGVtZW50LCB3aGljaCBpcyBlcXVpdmFsZW50IGZvciBjZGtPdmVybGF5T3JpZ2luLCBvciBmZC1wb3BvdmVyLWNvbnRyb2wsXG4gICAgICogICBieSBkZWZhdWx0IHRvIHRoaXMgZWxlbWVudCB0aGUgcG9wb3ZlciBib2R5IHdpbGwgbGJlIGFwcGVuZGVkIGFuZCBldmVudHMgb24gdGhpcyBlbGVtZW50IHdpbGwgdHJpZ2dlclxuICAgICAqICAgcG9wb3ZlcidzICB0b2dnbGVcbiAgICAgKiAtIGNvbmZpZyAtIGNvbmZpZ3VyYXRpb24gb2JqZWN0IC0gaW4gdGhpcyBjYXNlIHRoZSBpbnRlbnRpb24gaXMgdG8gdXNlIGluaGVyaXRhbmNlIG9mIEJhc2VQb3BvdmVyQ2xhc3MgaW4gY29tcG9uZW50XG4gICAgICogLSB0ZW1wbGF0ZURhdGEgLSBpbiBjYXNlIG9mIGhhdmluZyBhbHJlYWR5IFBvcG92ZXJCb2R5Q29tcG9uZW50LCB0aGVyZSBpcyB3YXkgdG8gcGFzcyBjb250YWluZXIsIHRlbXBsYXRlIGNvbnRhaW5pbmdcbiAgICAgKiAgIFBvcG92ZXJDb21wb25lbnQgYW5kIFBvcG92ZXJDb21wb25lbnQgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBpbml0aWFsaXNlKHRyaWdnZXJFbGVtZW50OiBFbGVtZW50UmVmLCBjb25maWc/OiBCYXNlUG9wb3ZlckNsYXNzLCB0ZW1wbGF0ZURhdGE/OiBQb3BvdmVyVGVtcGxhdGUgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RlbXBsYXRlRGF0YSA9IHRlbXBsYXRlRGF0YTtcbiAgICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSB0cmlnZ2VyRWxlbWVudDtcblxuICAgICAgICBpZiAoY29uZmlnKSB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hDb25maWd1cmF0aW9uKGNvbmZpZyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9yZWZyZXNoVHJpZ2dlckxpc3RlbmVycygpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiB3cmFwcGVyIGNvbnRhaW5lciBoZWlnaHQgY2hhbmdlcyBvdXRzaWRlLCByZWZyZXNoIHBvcG92ZXIgcG9zaXRpb24uXG4gICAgICAgIHRoaXMuX3BvcG92ZXJDb250YWluZXI/LnJlZnJlc2hQb3NpdGlvbiQucGlwZSh0YWtlVW50aWwodGhpcy5fcmVmcmVzaCQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoUG9zaXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIENsb3NlcyB0aGUgcG9wb3Zlci4gKi9cbiAgICBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpO1xuXG4gICAgICAgICAgICBjb25zdCBwcmV2U3RhdGUgPSB0aGlzLmlzT3BlbjtcbiAgICAgICAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAocHJldlN0YXRlICE9PSB0aGlzLmlzT3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNPcGVuQ2hhbmdlLmVtaXQodGhpcy5pc09wZW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9mb2N1c0xhc3RBY3RpdmVFbGVtZW50QmVmb3JlT3BlbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIE9wZW5zIHRoZSBwb3BvdmVyLiAqL1xuICAgIG9wZW4oKTogdm9pZCB7XG4gICAgICAgIGlmICgoIXRoaXMuX292ZXJsYXlSZWYgfHwgIXRoaXMuX292ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKSkgJiYgIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5fZ2V0UG9zaXRpb25TdHJhdGVneSgpO1xuICAgICAgICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHRoaXMuX2dldE92ZXJsYXlDb25maWcocG9zaXRpb24pKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuX3RlbXBsYXRlRGF0YSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2F0dGFjaFRlbXBsYXRlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2F0dGFjaEJvZHlDb21wb25lbnQoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fbGlzdGVuRm9yUG9zaXRpb25DaGFuZ2UocG9zaXRpb24ucG9zaXRpb25DaGFuZ2VzKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuZmlsbENvbnRyb2xNb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGlzdGVuT25SZXNpemUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcHJldlN0YXRlID0gdGhpcy5pc09wZW47XG4gICAgICAgICAgICB0aGlzLmlzT3BlbiA9IHRydWU7XG4gICAgICAgICAgICBpZiAocHJldlN0YXRlICE9PSB0aGlzLmlzT3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNPcGVuQ2hhbmdlLmVtaXQodGhpcy5pc09wZW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgICAgIHRoaXMuX2xpc3Rlbk9uQ2xvc2UoKTtcbiAgICAgICAgICAgIHRoaXMuX2xpc3Rlbk9uT3V0Q2xpY2tzKCk7XG4gICAgICAgICAgICB0aGlzLl9mb2N1c0ZpcnN0VGFiYmFibGVFbGVtZW50KCk7XG4gICAgICAgICAgICB0aGlzLl9vbkxvYWQubmV4dCh0aGlzLl9nZXRQb3BvdmVyQm9keSgpLl9lbGVtZW50UmVmKTtcbiAgICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBtZXRob2QgdXBkYXRpbmcgdGVtcGxhdGUgb3IgdGV4dCBpbnNpZGUgcmVuZGVyZWQgUG9wb3ZlckJvZHkgKi9cbiAgICB1cGRhdGVDb250ZW50KHN0cmluZ0NvbnRlbnQ6IHN0cmluZywgdGVtcGxhdGVDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0cmluZ0NvbnRlbnQgPSBzdHJpbmdDb250ZW50O1xuICAgICAgICB0aGlzLnRlbXBsYXRlQ29udGVudCA9IHRlbXBsYXRlQ29udGVudDtcbiAgICAgICAgaWYgKHRoaXMuX2dldFBvcG92ZXJCb2R5KCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3Bhc3NWYXJpYWJsZXNUb0JvZHkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBUb2dnbGVzIHRoZSBwb3BvdmVyIG9wZW4gc3RhdGUgKi9cbiAgICB0b2dnbGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgY2FsbGVkIHRvIGNoYW5nZSBwb3NpdGlvbiBvZiBwb3BvdmVyLFxuICAgICAqIHJlY29tbWVuZGVkIHRvIGJlIHVzZWQgb25seSB3aGVuIHBvcG92ZXIgaXMgb3BlbmVkLCBvdGhlcndpc2UgY2hhbmdlIHBvc2l0aW9uIG9yIGNka1BsYWNlbWVudFxuICAgICAqL1xuICAgIGFwcGx5TmV3UG9zaXRpb24ocG9zaXRpb25zOiBDb25uZWN0ZWRQb3NpdGlvbltdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlZlBvc2l0aW9uID0gdGhpcy5fZ2V0UG9zaXRpb25TdHJhdGVneShwb3NpdGlvbnMpO1xuICAgICAgICB0aGlzLl9saXN0ZW5Gb3JQb3NpdGlvbkNoYW5nZShyZWZQb3NpdGlvbi5wb3NpdGlvbkNoYW5nZXMpO1xuICAgICAgICB0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kocmVmUG9zaXRpb24pO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgY2FsbGVkIHRvIHJlZnJlc2ggcG9zaXRpb24gb2Ygb3BlbmVkIHBvcG92ZXIgKi9cbiAgICByZWZyZXNoUG9zaXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9vdmVybGF5UmVmKSB7XG4gICAgICAgICAgICB0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogRXF1aXZhbGVudCBmb3IgbmdPbkRlc3Ryb3kgbWV0aG9kLCB3aGV0aGVyIGNvbXBvbmVudCBpcyBkZXN0cm95ZWQsIHRoaXMgbWV0aG9kIHNob3VsZCBiZSBjYWxsZWQgKi9cbiAgICBvbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX3JlbW92ZVRyaWdnZXJMaXN0ZW5lcnMoKTtcbiAgICAgICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdGhhdCBzZXRzIGNvbmZpZ3VyYXRpb24vb3B0aW9ucywgaXQgZGV0ZWN0cyBpZiB0aGVyZSBpcyBzb21ldGhpbmcgY2hhbmdlZCBhbmQgb3ZlcndyaXRlcyB0aGVtXG4gICAgICovXG4gICAgcmVmcmVzaENvbmZpZ3VyYXRpb24oY29uZmlnOiBCYXNlUG9wb3ZlckNsYXNzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9ubHlDaGFuZ2VkID0gT2JqZWN0LmtleXMobmV3IEJhc2VQb3BvdmVyQ2xhc3MoKSkuZmlsdGVyKChrZXkpID0+IHRoaXNba2V5XSAhPT0gY29uZmlnW2tleV0pO1xuXG4gICAgICAgIGlmIChvbmx5Q2hhbmdlZC5pbmNsdWRlcygnaXNPcGVuJykpIHtcbiAgICAgICAgICAgIGlmIChjb25maWcuaXNPcGVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKiBUT0RPXG4gICAgICAgICAqIFRoaXMgb3ZlcnJpZGluZyBpcyBkYW5nZXJvdXMgdGhpbmcgYW5kIGxlYWRzIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3JcbiAgICAgICAgICogV2UgaGF2ZSB0byBhdm9pZCB0aGlzLlxuICAgICAgICAgKi9cbiAgICAgICAgb25seUNoYW5nZWQuZm9yRWFjaCgoa2V5KSA9PiAodGhpc1trZXldID0gY29uZmlnW2tleV0pKTtcblxuICAgICAgICBpZiAob25seUNoYW5nZWQuaW5jbHVkZXMoJ3RyaWdnZXJzJykpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlZnJlc2hUcmlnZ2VyTGlzdGVuZXJzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBpbnRlbmRlZCB0byBiZSBjYWxsZWQgaW4gb3JkZXJcbiAgICAgKiB0byBwb3N0cG9uZSB0aGUgbWFpbiBmdW5jdGlvbmFsaXR5IGJ1dCBiZSBhYmxlXG4gICAgICogdG8gZW5hYmxlIGl0IGJhY2sgaW4gdGhlIGZ1dHVyZSBieSBpbml0aWFsaXNlKClcbiAgICAgKi9cbiAgICBkZWFjdGl2YXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZW1vdmVUcmlnZ2VyTGlzdGVuZXJzKCk7XG4gICAgfVxuXG4gICAgLyoqIFJlZnJlc2ggbGlzdGVuZXJzIG9uIHRyaWdnZXIgZWxlbWVudCBldmVudHMgKi9cbiAgICBfcmVmcmVzaFRyaWdnZXJMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3JlbW92ZVRyaWdnZXJMaXN0ZW5lcnMoKTtcblxuICAgICAgICBpZiAodGhpcy50cmlnZ2Vycz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJzLmZvckVhY2goKHRyaWdnZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9ldmVudFJlZi5wdXNoKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5saXN0ZW4odGhpcy5fdHJpZ2dlckVsZW1lbnQubmF0aXZlRWxlbWVudCwgdHJpZ2dlciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNUb2dnbGUodHJpZ2dlcik7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc1RvZ2dsZSh0cmlnZ2VyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8gcHJldmVudCB1bmV4cGVjdGVkIHRvZ2dsaW5nIHdoZW4gaXQgdHJpZ2dlcnMgdGhlIHNhbWUgZXZlbnRcbiAgICAgICAgaWYgKHRoaXMuX3ByZXZUcmlnZ2VyICE9PSB0cmlnZ2VyIHx8IHRoaXMudHJpZ2dlcnM/Lmxlbmd0aCA8PSAxKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcHJldlRyaWdnZXIgPSB0cmlnZ2VyO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0T3ZlcmxheUNvbmZpZyhwb3NpdGlvbjogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5KTogT3ZlcmxheUNvbmZpZyB7XG4gICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IHRoaXMuX2dldERpcmVjdGlvbigpO1xuXG4gICAgICAgIHJldHVybiBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgICAgICBkaXNwb3NlT25OYXZpZ2F0aW9uOiB0aGlzLmNsb3NlT25OYXZpZ2F0aW9uLFxuICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneTogcG9zaXRpb24sXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5zY3JvbGxTdHJhdGVneSB8fCB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZpZXdwb3J0UnVsZXJcbiAgICAgICAgICAgIC5jaGFuZ2UoMTUpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fcmVmcmVzaCQpLCBzdGFydFdpdGgoMSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2FwcGx5V2lkdGhPdmVybGF5KCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0RGlyZWN0aW9uKCk6ICdydGwnIHwgJ2x0cicge1xuICAgICAgICBpZiAoIXRoaXMuX3J0bFNlcnZpY2UpIHtcbiAgICAgICAgICAgIHJldHVybiAnbHRyJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9ydGxTZXJ2aWNlLnJ0bC5nZXRWYWx1ZSgpID8gJ3J0bCcgOiAnbHRyJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFBvc2l0aW9uU3RyYXRlZ3koZm9yY2VkUG9zaXRpb25zPzogQ29ubmVjdGVkUG9zaXRpb25bXSk6IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSB7XG4gICAgICAgIGxldCByZXN1bHRQb3NpdGlvbiA9IGZvcmNlZFBvc2l0aW9ucyA/IGZvcmNlZFBvc2l0aW9ucyA6IHRoaXMuX2dldFBvc2l0aW9ucygpO1xuXG4gICAgICAgIGlmICghdGhpcy5maXhlZFBvc2l0aW9uKSB7XG4gICAgICAgICAgICByZXN1bHRQb3NpdGlvbiA9IHJlc3VsdFBvc2l0aW9uLmNvbmNhdChHZXREZWZhdWx0UG9zaXRpb24ocmVzdWx0UG9zaXRpb24pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9vdmVybGF5XG4gICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5hcHBlbmRUbyB8fCB0aGlzLl90cmlnZ2VyRWxlbWVudClcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKHJlc3VsdFBvc2l0aW9uKVxuICAgICAgICAgICAgLndpdGhQdXNoKGZhbHNlKTtcbiAgICB9XG5cbiAgICAvKiogcmVtb3ZlIGxpc3RlbmVycyBmcm9tIHRyaWdnZXIgZWxlbWVudCBldmVudHMgKi9cbiAgICBwcml2YXRlIF9yZW1vdmVUcmlnZ2VyTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9ldmVudFJlZi5mb3JFYWNoKChldmVudCkgPT4gZXZlbnQoKSk7XG4gICAgICAgIHRoaXMuX2V2ZW50UmVmID0gW107XG4gICAgfVxuXG4gICAgLyoqIEF0dGFjaCB0ZW1wbGF0ZSBjb250YWluaW5nIHBvcG92ZXIgYm9keSB0byBvdmVybGF5ICovXG4gICAgcHJpdmF0ZSBfYXR0YWNoVGVtcGxhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Bhc3NWYXJpYWJsZXNUb0JvZHkoKTtcbiAgICAgICAgaWYgKHRoaXMuX3RlbXBsYXRlRGF0YSkge1xuICAgICAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuX3RlbXBsYXRlRGF0YS50ZW1wbGF0ZSwgdGhpcy5fdGVtcGxhdGVEYXRhLmNvbnRhaW5lcikpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIENyZWF0ZSBQb3BvdmVyQm9keUNvbXBvbmVudCBhbmQgYXR0YWNoIGl0IGludG8gb3ZlcmxheSAqL1xuICAgIHByaXZhdGUgX2F0dGFjaEJvZHlDb21wb25lbnQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG92ZXJsYXkgPSB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaChuZXcgQ29tcG9uZW50UG9ydGFsKFBvcG92ZXJCb2R5Q29tcG9uZW50LCBudWxsLCB0aGlzLl9pbmplY3RvcikpO1xuICAgICAgICB0aGlzLl9wb3BvdmVyQm9keSA9IG92ZXJsYXkuaW5zdGFuY2U7XG4gICAgICAgIHRoaXMuX3Bhc3NWYXJpYWJsZXNUb0JvZHkoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlbkZvclBvc2l0aW9uQ2hhbmdlKHBvc2l0aW9uQ2hhbmdlOiBPYnNlcnZhYmxlPENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZT4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcGxhY2VtZW50UmVmcmVzaCQubmV4dCgpO1xuICAgICAgICBwb3NpdGlvbkNoYW5nZVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX3BsYWNlbWVudFJlZnJlc2gkKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLm5vQXJyb3cgJiYgISF0aGlzLl9nZXRQb3BvdmVyQm9keSgpKSxcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldmlvdXMsIGN1cnJlbnQpID0+IHByZXZpb3VzLmNvbm5lY3Rpb25QYWlyID09PSBjdXJyZW50LmNvbm5lY3Rpb25QYWlyKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHRoaXMuX2dldFBvcG92ZXJCb2R5KCkuX3NldEFycm93U3R5bGVzKGV2ZW50LmNvbm5lY3Rpb25QYWlyLCB0aGlzLl9nZXREaXJlY3Rpb24oKSkpO1xuICAgIH1cblxuICAgIC8qKiBTdWJzY3JpYmUgdG8gY2xvc2UgZXZlbnRzIGZyb20gQ0RLIE92ZXJsYXksIHRvIHRocm93IHByb3BlciBldmVudHMsIGNoYW5nZSB2YWx1ZXMgKi9cbiAgICBwcml2YXRlIF9saXN0ZW5PbkNsb3NlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjbG9zZUV2ZW50cyQgPSBtZXJnZSh0aGlzLl9vdmVybGF5UmVmLmRldGFjaG1lbnRzKCksIHRoaXMuX2dldFBvcG92ZXJCb2R5KCkub25DbG9zZSk7XG5cbiAgICAgICAgY2xvc2VFdmVudHMkLnBpcGUodGFrZVVudGlsKHRoaXMuX3JlZnJlc2gkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2UoKSk7XG4gICAgfVxuXG4gICAgLyoqIExpc3RlbmVyIGZvciBjbGljayBldmVudHMgKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Pbk91dENsaWNrcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2xvc2VFdmVudHMkID0gbWVyZ2UodGhpcy5fb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCksIHRoaXMuX292ZXJsYXlSZWYuX291dHNpZGVQb2ludGVyRXZlbnRzKTtcblxuICAgICAgICBjbG9zZUV2ZW50cyRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoZXZlbnQpID0+IHRoaXMuX3Nob3VsZENsb3NlKGV2ZW50KSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX3JlZnJlc2gkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlKCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2hvdWxkQ2xvc2UoZXZlbnQ6IE1vdXNlRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNPcGVuICYmIHRoaXMuY2xvc2VPbk91dHNpZGVDbGljayAmJiAhdGhpcy5fdHJpZ2dlckNvbnRhaW5zVGFyZ2V0KGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEV2ZW50VGFyZ2V0KGV2ZW50OiBFdmVudCk6IEV2ZW50VGFyZ2V0IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBldmVudC5jb21wb3NlZFBhdGggPyBldmVudC5jb21wb3NlZFBhdGgoKVswXSA6IGV2ZW50LnRhcmdldDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RyaWdnZXJDb250YWluc1RhcmdldChldmVudDogRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdHJpZ2dlckVsZW1lbnQgPSB0aGlzLl90cmlnZ2VyRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICByZXR1cm4gdHJpZ2dlckVsZW1lbnQuY29udGFpbnModGhpcy5fZ2V0RXZlbnRUYXJnZXQoZXZlbnQpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFBvc2l0aW9ucygpOiBDb25uZWN0ZWRQb3NpdGlvbltdIHtcbiAgICAgICAgaWYgKHRoaXMuY2RrUG9zaXRpb25zKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jZGtQb3NpdGlvbnM7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5wbGFjZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBbUG9wb3ZlclBvc2l0aW9uLmdldENka1BsYWNlbWVudCh0aGlzLnBsYWNlbWVudCwgdGhpcy5fZ2V0RGlyZWN0aW9uKCkpXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FwcGx5V2lkdGhPdmVybGF5KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBtYXhXaWR0aExpbWl0ID0gdGhpcy5tYXhXaWR0aCA/IHRoaXMubWF4V2lkdGggOiBNQVhfQk9EWV9TSVpFO1xuICAgICAgICBjb25zdCB3aWR0aCA9IE1hdGgubWluKHRoaXMuX2dldFRyaWdnZXJXaWR0aCgpLCBtYXhXaWR0aExpbWl0KTtcbiAgICAgICAgaWYgKHRoaXMuZmlsbENvbnRyb2xNb2RlID09PSAnYXQtbGVhc3QnKSB7XG4gICAgICAgICAgICB0aGlzLl9nZXRQb3BvdmVyQm9keSgpLl9wb3BvdmVyQm9keU1pbldpZHRoID0gd2lkdGg7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5maWxsQ29udHJvbE1vZGUgPT09ICdlcXVhbCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2dldFBvcG92ZXJCb2R5KCkuX3BvcG92ZXJCb2R5V2lkdGggPSB3aWR0aDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wYXNzVmFyaWFibGVzVG9Cb2R5KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBib2R5ID0gdGhpcy5fZ2V0UG9wb3ZlckJvZHkoKTtcbiAgICAgICAgYm9keS50ZXh0ID0gdGhpcy5zdHJpbmdDb250ZW50O1xuICAgICAgICBib2R5Ll9hZGRpdGlvbmFsQm9keUNsYXNzID0gdGhpcy5hZGRpdGlvbmFsQm9keUNsYXNzO1xuICAgICAgICBib2R5Ll9mb2N1c1RyYXBwZWQgPSB0aGlzLmZvY3VzVHJhcHBlZDtcbiAgICAgICAgYm9keS5fbWF4V2lkdGggPSB0aGlzLm1heFdpZHRoO1xuICAgICAgICBib2R5Ll9ub0Fycm93ID0gdGhpcy5ub0Fycm93O1xuICAgICAgICBib2R5Ll9mb2N1c0F1dG9DYXB0dXJlID0gdGhpcy5mb2N1c0F1dG9DYXB0dXJlO1xuICAgICAgICBib2R5Ll90ZW1wbGF0ZVRvRGlzcGxheSA9IHRoaXMudGVtcGxhdGVDb250ZW50ITtcbiAgICAgICAgYm9keS5fY2xvc2VPbkVzY2FwZUtleSA9IHRoaXMuY2xvc2VPbkVzY2FwZUtleTtcbiAgICAgICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0VHJpZ2dlcldpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl90cmlnZ2VyRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0UG9wb3ZlckJvZHkoKTogUG9wb3ZlckJvZHlDb21wb25lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGVtcGxhdGVEYXRhPy5wb3BvdmVyQm9keSB8fCB0aGlzLl9wb3BvdmVyQm9keTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RldGVjdENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9nZXRQb3BvdmVyQm9keSgpKSB7XG4gICAgICAgICAgICB0aGlzLl9nZXRQb3BvdmVyQm9keSgpLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9jdXNGaXJzdFRhYmJhYmxlRWxlbWVudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNBdXRvQ2FwdHVyZSkge1xuICAgICAgICAgICAgdGhpcy5fbGFzdEFjdGl2ZUVsZW1lbnQgPSA8SFRNTEVsZW1lbnQ+ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIHRoaXMuX2dldFBvcG92ZXJCb2R5KCk/Ll9mb2N1c0ZpcnN0VGFiYmFibGVFbGVtZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZvY3VzTGFzdEFjdGl2ZUVsZW1lbnRCZWZvcmVPcGVuKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb2N1c0F1dG9DYXB0dXJlICYmIHRoaXMuX2xhc3RBY3RpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9sYXN0QWN0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
346
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcG9wb3Zlci9wb3BvdmVyLXNlcnZpY2UvcG9wb3Zlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQWlDLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUdILE9BQU8sRUFDUCxhQUFhLEVBRWIsYUFBYSxFQUVoQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFZLE1BQU0sOEJBQThCLENBQUM7QUFFN0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0RBQWtELENBQUM7Ozs7O0FBRTdGLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQztBQVMvQixNQUFNLE9BQU8sY0FBZSxTQUFRLGdCQUFnQjtJQXFDaEQsWUFDWSxRQUFpQixFQUNqQixTQUFvQixFQUNwQixjQUE2QixFQUM3QixTQUFtQixFQUNQLFdBQXVCLEVBQ2QsaUJBQTRDO1FBRXpFLEtBQUssRUFBRSxDQUFDO1FBUEEsYUFBUSxHQUFS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RUQsY0FBYztJQUNOLGVBQWU7UUFDbkIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ2hFLENBQUM7SUFFRCxjQUFjO0lBQ04sY0FBYztRQUNsQixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDMUM7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNOLDBCQUEwQjtRQUM5QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN2QixJQUFJLENBQUMsa0JBQWtCLEdBQWdCLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDOUQsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLDBCQUEwQixFQUFFLENBQUM7U0FDeEQ7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNOLGlDQUFpQztRQUNyQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDbEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ25DO0lBQ0wsQ0FBQzs7MkdBNVpRLGNBQWM7K0dBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVOzswQkEyQ0YsUUFBUTs7MEJBQ1IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIEluamVjdG9yLCBPcHRpb25hbCwgUmVuZGVyZXIyLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgICBDb25uZWN0ZWRQb3NpdGlvbixcbiAgICBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgT3ZlcmxheSxcbiAgICBPdmVybGF5Q29uZmlnLFxuICAgIE92ZXJsYXlSZWYsXG4gICAgVmlld3BvcnRSdWxlcixcbiAgICBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2Vcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgbWVyZ2UsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBSdGxTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEdldERlZmF1bHRQb3NpdGlvbiwgUG9wb3ZlclBvc2l0aW9uLCBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuXG5pbXBvcnQgeyBCYXNlUG9wb3ZlckNsYXNzIH0gZnJvbSAnLi4vYmFzZS9iYXNlLXBvcG92ZXIuY2xhc3MnO1xuaW1wb3J0IHsgUG9wb3ZlckJvZHlDb21wb25lbnQgfSBmcm9tICcuLi9wb3BvdmVyLWJvZHkvcG9wb3Zlci1ib2R5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb3BvdmVyQ29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vcG9wb3Zlci1jb250YWluZXIvcG9wb3Zlci1jb250YWluZXIuZGlyZWN0aXZlJztcblxuY29uc3QgTUFYX0JPRFlfU0laRSA9IDk5OTk5OTk5O1xuXG5leHBvcnQgaW50ZXJmYWNlIFBvcG92ZXJUZW1wbGF0ZSB7XG4gICAgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xuICAgIHBvcG92ZXJCb2R5OiBQb3BvdmVyQm9keUNvbXBvbmVudDtcbiAgICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pjtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBvcG92ZXJTZXJ2aWNlIGV4dGVuZHMgQmFzZVBvcG92ZXJDbGFzcyB7XG4gICAgLyoqIFN0cmluZyBjb250ZW50IGRpc3BsYXllZCBpbnNpZGUgcG9wb3ZlciBib2R5ICovXG4gICAgc3RyaW5nQ29udGVudDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBUZW1wbGF0ZSBjb250ZW50IGRpc3BsYXllZCBpbnNpZGUgcG9wb3ZlciBib2R5ICovXG4gICAgdGVtcGxhdGVDb250ZW50OiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uTG9hZCA9IG5ldyBTdWJqZWN0PEVsZW1lbnRSZWY+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2V2ZW50UmVmOiAoKCkgPT4gdm9pZClbXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9vdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZWZyZXNoJDogT2JzZXJ2YWJsZTxib29sZWFuIHwgdm9pZD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3BsYWNlbWVudFJlZnJlc2gkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcG9wb3ZlckJvZHk6IFBvcG92ZXJCb2R5Q29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudDogRWxlbWVudFJlZjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGFzdEFjdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90ZW1wbGF0ZURhdGE6IE51bGxhYmxlPFBvcG92ZXJUZW1wbGF0ZT47XG5cbiAgICAvKiogQW4gUnhKUyBTdWJqZWN0IHRoYXQgd2lsbCBraWxsIHRoZSBkYXRhIHN0cmVhbSB1cG9uIGNvbXBvbmVudOKAmXMgZGVzdHJ1Y3Rpb24gKGZvciB1bnN1YnNjcmliaW5nKSAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxuICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIF92aWV3cG9ydFJ1bGVyOiBWaWV3cG9ydFJ1bGVyLFxuICAgICAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX3J0bFNlcnZpY2U6IFJ0bFNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgX3BvcG92ZXJDb250YWluZXI6IFBvcG92ZXJDb250YWluZXJEaXJlY3RpdmVcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICAvKiogTWVyZ2Ugb2JzZXJ2YWJsZXMgLSBjbG9zZSBvciBkZXN0cm95ICovXG4gICAgICAgIHRoaXMuX3JlZnJlc2gkID0gbWVyZ2UodGhpcy5pc09wZW5DaGFuZ2UsIHRoaXMuX29uRGVzdHJveSQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBpbml0aWFsaXNpbmcgdGhlIHBvcG92ZXIgc2VydmljZSAtIHNob3VsZCBiZSBjYWxsZWQsIGFmdGVyIHZpZXcgaXMgaW5pdGlhbGlzZWQsIHBhcmFtczpcbiAgICAgKiAtIHRyaWdnZXJFbGVtZW50IC0gZWxlbWVudCwgd2hpY2ggaXMgZXF1aXZhbGVudCBmb3IgY2RrT3ZlcmxheU9yaWdpbiwgb3IgZmQtcG9wb3Zlci1jb250cm9sLFxuICAgICAqICAgYnkgZGVmYXVsdCB0byB0aGlzIGVsZW1lbnQgdGhlIHBvcG92ZXIgYm9keSB3aWxsIGxiZSBhcHBlbmRlZCBhbmQgZXZlbnRzIG9uIHRoaXMgZWxlbWVudCB3aWxsIHRyaWdnZXJcbiAgICAgKiAgIHBvcG92ZXIncyAgdG9nZ2xlXG4gICAgICogLSBjb25maWcgLSBjb25maWd1cmF0aW9uIG9iamVjdCAtIGluIHRoaXMgY2FzZSB0aGUgaW50ZW50aW9uIGlzIHRvIHVzZSBpbmhlcml0YW5jZSBvZiBCYXNlUG9wb3ZlckNsYXNzIGluIGNvbXBvbmVudFxuICAgICAqIC0gdGVtcGxhdGVEYXRhIC0gaW4gY2FzZSBvZiBoYXZpbmcgYWxyZWFkeSBQb3BvdmVyQm9keUNvbXBvbmVudCwgdGhlcmUgaXMgd2F5IHRvIHBhc3MgY29udGFpbmVyLCB0ZW1wbGF0ZSBjb250YWluaW5nXG4gICAgICogICBQb3BvdmVyQ29tcG9uZW50IGFuZCBQb3BvdmVyQ29tcG9uZW50IGluc3RhbmNlXG4gICAgICovXG4gICAgaW5pdGlhbGlzZSh0cmlnZ2VyRWxlbWVudDogRWxlbWVudFJlZiwgY29uZmlnPzogQmFzZVBvcG92ZXJDbGFzcywgdGVtcGxhdGVEYXRhPzogUG9wb3ZlclRlbXBsYXRlIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90ZW1wbGF0ZURhdGEgPSB0ZW1wbGF0ZURhdGE7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gdHJpZ2dlckVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKGNvbmZpZykge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoQ29uZmlndXJhdGlvbihjb25maWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcmVmcmVzaFRyaWdnZXJMaXN0ZW5lcnMoKTtcblxuICAgICAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgd3JhcHBlciBjb250YWluZXIgaGVpZ2h0IGNoYW5nZXMgb3V0c2lkZSwgcmVmcmVzaCBwb3BvdmVyIHBvc2l0aW9uLlxuICAgICAgICB0aGlzLl9wb3BvdmVyQ29udGFpbmVyPy5yZWZyZXNoUG9zaXRpb24kLnBpcGUodGFrZVVudGlsKHRoaXMuX3JlZnJlc2gkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaFBvc2l0aW9uKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBDbG9zZXMgdGhlIHBvcG92ZXIuICovXG4gICAgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9vdmVybGF5UmVmKSB7XG4gICAgICAgICAgICB0aGlzLl9vdmVybGF5UmVmLmRpc3Bvc2UoKTtcblxuICAgICAgICAgICAgY29uc3QgcHJldlN0YXRlID0gdGhpcy5pc09wZW47XG4gICAgICAgICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHByZXZTdGF0ZSAhPT0gdGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzT3BlbkNoYW5nZS5lbWl0KHRoaXMuaXNPcGVuKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fZm9jdXNMYXN0QWN0aXZlRWxlbWVudEJlZm9yZU9wZW4oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBPcGVucyB0aGUgcG9wb3Zlci4gKi9cbiAgICBvcGVuKCk6IHZvaWQge1xuICAgICAgICBpZiAoKCF0aGlzLl9vdmVybGF5UmVmIHx8ICF0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkpICYmICF0aGlzLmRpc2FibGVkICYmIHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuX2dldFBvc2l0aW9uU3RyYXRlZ3koKTtcbiAgICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh0aGlzLl9nZXRPdmVybGF5Q29uZmlnKHBvc2l0aW9uKSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl90ZW1wbGF0ZURhdGEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hdHRhY2hUZW1wbGF0ZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hdHRhY2hCb2R5Q29tcG9uZW50KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2xpc3RlbkZvclBvc2l0aW9uQ2hhbmdlKHBvc2l0aW9uLnBvc2l0aW9uQ2hhbmdlcyk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmZpbGxDb250cm9sTW9kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xpc3Rlbk9uUmVzaXplKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHByZXZTdGF0ZSA9IHRoaXMuaXNPcGVuO1xuICAgICAgICAgICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHByZXZTdGF0ZSAhPT0gdGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzT3BlbkNoYW5nZS5lbWl0KHRoaXMuaXNPcGVuKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgICAgICB0aGlzLl9saXN0ZW5PbkNsb3NlKCk7XG4gICAgICAgICAgICB0aGlzLl9saXN0ZW5Pbk91dENsaWNrcygpO1xuICAgICAgICAgICAgdGhpcy5fZm9jdXNGaXJzdFRhYmJhYmxlRWxlbWVudCgpO1xuICAgICAgICAgICAgdGhpcy5fb25Mb2FkLm5leHQodGhpcy5fZ2V0UG9wb3ZlckJvZHkoKS5fZWxlbWVudFJlZik7XG4gICAgICAgICAgICB0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogbWV0aG9kIHVwZGF0aW5nIHRlbXBsYXRlIG9yIHRleHQgaW5zaWRlIHJlbmRlcmVkIFBvcG92ZXJCb2R5ICovXG4gICAgdXBkYXRlQ29udGVudChzdHJpbmdDb250ZW50OiBzdHJpbmcsIHRlbXBsYXRlQ29udGVudDogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdHJpbmdDb250ZW50ID0gc3RyaW5nQ29udGVudDtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZUNvbnRlbnQgPSB0ZW1wbGF0ZUNvbnRlbnQ7XG4gICAgICAgIGlmICh0aGlzLl9nZXRQb3BvdmVyQm9keSgpKSB7XG4gICAgICAgICAgICB0aGlzLl9wYXNzVmFyaWFibGVzVG9Cb2R5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogVG9nZ2xlcyB0aGUgcG9wb3ZlciBvcGVuIHN0YXRlICovXG4gICAgdG9nZ2xlKG9wZW5BY3Rpb24gPSB0cnVlLCBjbG9zZUFjdGlvbiA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICBjbG9zZUFjdGlvbiAmJiB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvcGVuQWN0aW9uICYmIHRoaXMub3BlbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIGNhbGxlZCB0byBjaGFuZ2UgcG9zaXRpb24gb2YgcG9wb3ZlcixcbiAgICAgKiByZWNvbW1lbmRlZCB0byBiZSB1c2VkIG9ubHkgd2hlbiBwb3BvdmVyIGlzIG9wZW5lZCwgb3RoZXJ3aXNlIGNoYW5nZSBwb3NpdGlvbiBvciBjZGtQbGFjZW1lbnRcbiAgICAgKi9cbiAgICBhcHBseU5ld1Bvc2l0aW9uKHBvc2l0aW9uczogQ29ubmVjdGVkUG9zaXRpb25bXSk6IHZvaWQge1xuICAgICAgICBjb25zdCByZWZQb3NpdGlvbiA9IHRoaXMuX2dldFBvc2l0aW9uU3RyYXRlZ3kocG9zaXRpb25zKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuRm9yUG9zaXRpb25DaGFuZ2UocmVmUG9zaXRpb24ucG9zaXRpb25DaGFuZ2VzKTtcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHJlZlBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIGNhbGxlZCB0byByZWZyZXNoIHBvc2l0aW9uIG9mIG9wZW5lZCBwb3BvdmVyICovXG4gICAgcmVmcmVzaFBvc2l0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fb3ZlcmxheVJlZikge1xuICAgICAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEVxdWl2YWxlbnQgZm9yIG5nT25EZXN0cm95IG1ldGhvZCwgd2hldGhlciBjb21wb25lbnQgaXMgZGVzdHJveWVkLCB0aGlzIG1ldGhvZCBzaG91bGQgYmUgY2FsbGVkICovXG4gICAgb25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9yZW1vdmVUcmlnZ2VyTGlzdGVuZXJzKCk7XG4gICAgICAgIGlmICh0aGlzLl9vdmVybGF5UmVmKSB7XG4gICAgICAgICAgICB0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRoYXQgc2V0cyBjb25maWd1cmF0aW9uL29wdGlvbnMsIGl0IGRldGVjdHMgaWYgdGhlcmUgaXMgc29tZXRoaW5nIGNoYW5nZWQgYW5kIG92ZXJ3cml0ZXMgdGhlbVxuICAgICAqL1xuICAgIHJlZnJlc2hDb25maWd1cmF0aW9uKGNvbmZpZzogQmFzZVBvcG92ZXJDbGFzcyk6IHZvaWQge1xuICAgICAgICBjb25zdCBvbmx5Q2hhbmdlZCA9IE9iamVjdC5rZXlzKG5ldyBCYXNlUG9wb3ZlckNsYXNzKCkpLmZpbHRlcigoa2V5KSA9PiB0aGlzW2tleV0gIT09IGNvbmZpZ1trZXldKTtcblxuICAgICAgICBpZiAob25seUNoYW5nZWQuaW5jbHVkZXMoJ2lzT3BlbicpKSB7XG4gICAgICAgICAgICBpZiAoY29uZmlnLmlzT3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKiogVE9ET1xuICAgICAgICAgKiBUaGlzIG92ZXJyaWRpbmcgaXMgZGFuZ2Vyb3VzIHRoaW5nIGFuZCBsZWFkcyB0byB1bmV4cGVjdGVkIGJlaGF2aW9yXG4gICAgICAgICAqIFdlIGhhdmUgdG8gYXZvaWQgdGhpcy5cbiAgICAgICAgICovXG4gICAgICAgIG9ubHlDaGFuZ2VkLmZvckVhY2goKGtleSkgPT4gKHRoaXNba2V5XSA9IGNvbmZpZ1trZXldKSk7XG5cbiAgICAgICAgaWYgKG9ubHlDaGFuZ2VkLmluY2x1ZGVzKCd0cmlnZ2VycycpKSB7XG4gICAgICAgICAgICB0aGlzLl9yZWZyZXNoVHJpZ2dlckxpc3RlbmVycygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgaW50ZW5kZWQgdG8gYmUgY2FsbGVkIGluIG9yZGVyXG4gICAgICogdG8gcG9zdHBvbmUgdGhlIG1haW4gZnVuY3Rpb25hbGl0eSBidXQgYmUgYWJsZVxuICAgICAqIHRvIGVuYWJsZSBpdCBiYWNrIGluIHRoZSBmdXR1cmUgYnkgaW5pdGlhbGlzZSgpXG4gICAgICovXG4gICAgZGVhY3RpdmF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlVHJpZ2dlckxpc3RlbmVycygpO1xuICAgIH1cblxuICAgIC8qKiBSZWZyZXNoIGxpc3RlbmVycyBvbiB0cmlnZ2VyIGVsZW1lbnQgZXZlbnRzICovXG4gICAgX3JlZnJlc2hUcmlnZ2VyTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9yZW1vdmVUcmlnZ2VyTGlzdGVuZXJzKCk7XG5cbiAgICAgICAgaWYgKHRoaXMudHJpZ2dlcnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy50cmlnZ2Vycy5mb3JFYWNoKCh0cmlnZ2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlck5hbWUgPSB0eXBlb2YgdHJpZ2dlciA9PT0gJ3N0cmluZycgPyB0cmlnZ2VyIDogdHJpZ2dlci50cmlnZ2VyO1xuICAgICAgICAgICAgICAgIHRoaXMuX2V2ZW50UmVmLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmxpc3Rlbih0aGlzLl90cmlnZ2VyRWxlbWVudC5uYXRpdmVFbGVtZW50LCB0cmlnZ2VyTmFtZSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xvc2VBY3Rpb24gPSB0eXBlb2YgdHJpZ2dlciAhPT0gJ29iamVjdCcgfHwgISF0cmlnZ2VyLmNsb3NlQWN0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3BlbkFjdGlvbiA9IHR5cGVvZiB0cmlnZ2VyICE9PSAnb2JqZWN0JyB8fCAhIXRyaWdnZXIub3BlbkFjdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlKG9wZW5BY3Rpb24sIGNsb3NlQWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldE92ZXJsYXlDb25maWcocG9zaXRpb246IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSk6IE92ZXJsYXlDb25maWcge1xuICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSB0aGlzLl9nZXREaXJlY3Rpb24oKTtcblxuICAgICAgICByZXR1cm4gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICAgICAgZGlzcG9zZU9uTmF2aWdhdGlvbjogdGhpcy5jbG9zZU9uTmF2aWdhdGlvbixcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHBvc2l0aW9uLFxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuc2Nyb2xsU3RyYXRlZ3kgfHwgdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3Rlbk9uUmVzaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl92aWV3cG9ydFJ1bGVyXG4gICAgICAgICAgICAuY2hhbmdlKDE1KVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3JlZnJlc2gkKSwgc3RhcnRXaXRoKDEpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9hcHBseVdpZHRoT3ZlcmxheSgpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldERpcmVjdGlvbigpOiAncnRsJyB8ICdsdHInIHtcbiAgICAgICAgaWYgKCF0aGlzLl9ydGxTZXJ2aWNlKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2x0cic7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fcnRsU2VydmljZS5ydGwuZ2V0VmFsdWUoKSA/ICdydGwnIDogJ2x0cic7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRQb3NpdGlvblN0cmF0ZWd5KGZvcmNlZFBvc2l0aW9ucz86IENvbm5lY3RlZFBvc2l0aW9uW10pOiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgICAgICBsZXQgcmVzdWx0UG9zaXRpb24gPSBmb3JjZWRQb3NpdGlvbnMgPyBmb3JjZWRQb3NpdGlvbnMgOiB0aGlzLl9nZXRQb3NpdGlvbnMoKTtcblxuICAgICAgICBpZiAoIXRoaXMuZml4ZWRQb3NpdGlvbikge1xuICAgICAgICAgICAgcmVzdWx0UG9zaXRpb24gPSByZXN1bHRQb3NpdGlvbi5jb25jYXQoR2V0RGVmYXVsdFBvc2l0aW9uKHJlc3VsdFBvc2l0aW9uKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVxuICAgICAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuYXBwZW5kVG8gfHwgdGhpcy5fdHJpZ2dlckVsZW1lbnQpXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhyZXN1bHRQb3NpdGlvbilcbiAgICAgICAgICAgIC53aXRoUHVzaChmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqIHJlbW92ZSBsaXN0ZW5lcnMgZnJvbSB0cmlnZ2VyIGVsZW1lbnQgZXZlbnRzICovXG4gICAgcHJpdmF0ZSBfcmVtb3ZlVHJpZ2dlckxpc3RlbmVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZXZlbnRSZWYuZm9yRWFjaCgoZXZlbnQpID0+IGV2ZW50KCkpO1xuICAgICAgICB0aGlzLl9ldmVudFJlZiA9IFtdO1xuICAgIH1cblxuICAgIC8qKiBBdHRhY2ggdGVtcGxhdGUgY29udGFpbmluZyBwb3BvdmVyIGJvZHkgdG8gb3ZlcmxheSAqL1xuICAgIHByaXZhdGUgX2F0dGFjaFRlbXBsYXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wYXNzVmFyaWFibGVzVG9Cb2R5KCk7XG4gICAgICAgIGlmICh0aGlzLl90ZW1wbGF0ZURhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLl90ZW1wbGF0ZURhdGEudGVtcGxhdGUsIHRoaXMuX3RlbXBsYXRlRGF0YS5jb250YWluZXIpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBDcmVhdGUgUG9wb3ZlckJvZHlDb21wb25lbnQgYW5kIGF0dGFjaCBpdCBpbnRvIG92ZXJsYXkgKi9cbiAgICBwcml2YXRlIF9hdHRhY2hCb2R5Q29tcG9uZW50KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBvdmVybGF5ID0gdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2gobmV3IENvbXBvbmVudFBvcnRhbChQb3BvdmVyQm9keUNvbXBvbmVudCwgbnVsbCwgdGhpcy5faW5qZWN0b3IpKTtcbiAgICAgICAgdGhpcy5fcG9wb3ZlckJvZHkgPSBvdmVybGF5Lmluc3RhbmNlO1xuICAgICAgICB0aGlzLl9wYXNzVmFyaWFibGVzVG9Cb2R5KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Gb3JQb3NpdGlvbkNoYW5nZShwb3NpdGlvbkNoYW5nZTogT2JzZXJ2YWJsZTxDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2U+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3BsYWNlbWVudFJlZnJlc2gkLm5leHQoKTtcbiAgICAgICAgcG9zaXRpb25DaGFuZ2VcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9wbGFjZW1lbnRSZWZyZXNoJCksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy5ub0Fycm93ICYmICEhdGhpcy5fZ2V0UG9wb3ZlckJvZHkoKSksXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXZpb3VzLCBjdXJyZW50KSA9PiBwcmV2aW91cy5jb25uZWN0aW9uUGFpciA9PT0gY3VycmVudC5jb25uZWN0aW9uUGFpcilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB0aGlzLl9nZXRQb3BvdmVyQm9keSgpLl9zZXRBcnJvd1N0eWxlcyhldmVudC5jb25uZWN0aW9uUGFpciwgdGhpcy5fZ2V0RGlyZWN0aW9uKCkpKTtcbiAgICB9XG5cbiAgICAvKiogU3Vic2NyaWJlIHRvIGNsb3NlIGV2ZW50cyBmcm9tIENESyBPdmVybGF5LCB0byB0aHJvdyBwcm9wZXIgZXZlbnRzLCBjaGFuZ2UgdmFsdWVzICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25DbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2xvc2VFdmVudHMkID0gbWVyZ2UodGhpcy5fb3ZlcmxheVJlZi5kZXRhY2htZW50cygpLCB0aGlzLl9nZXRQb3BvdmVyQm9keSgpLm9uQ2xvc2UpO1xuXG4gICAgICAgIGNsb3NlRXZlbnRzJC5waXBlKHRha2VVbnRpbCh0aGlzLl9yZWZyZXNoJCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlKCkpO1xuICAgIH1cblxuICAgIC8qKiBMaXN0ZW5lciBmb3IgY2xpY2sgZXZlbnRzICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25PdXRDbGlja3MoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNsb3NlRXZlbnRzJCA9IG1lcmdlKHRoaXMuX292ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLCB0aGlzLl9vdmVybGF5UmVmLl9vdXRzaWRlUG9pbnRlckV2ZW50cyk7XG5cbiAgICAgICAgY2xvc2VFdmVudHMkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiB0aGlzLl9zaG91bGRDbG9zZShldmVudCkpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9yZWZyZXNoJClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Nob3VsZENsb3NlKGV2ZW50OiBNb3VzZUV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzT3BlbiAmJiB0aGlzLmNsb3NlT25PdXRzaWRlQ2xpY2sgJiYgIXRoaXMuX3RyaWdnZXJDb250YWluc1RhcmdldChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRFdmVudFRhcmdldChldmVudDogRXZlbnQpOiBFdmVudFRhcmdldCB8IG51bGwge1xuICAgICAgICByZXR1cm4gZXZlbnQuY29tcG9zZWRQYXRoID8gZXZlbnQuY29tcG9zZWRQYXRoKClbMF0gOiBldmVudC50YXJnZXQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90cmlnZ2VyQ29udGFpbnNUYXJnZXQoZXZlbnQ6IEV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHRyaWdnZXJFbGVtZW50ID0gdGhpcy5fdHJpZ2dlckVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgcmV0dXJuIHRyaWdnZXJFbGVtZW50LmNvbnRhaW5zKHRoaXMuX2dldEV2ZW50VGFyZ2V0KGV2ZW50KSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRQb3NpdGlvbnMoKTogQ29ubmVjdGVkUG9zaXRpb25bXSB7XG4gICAgICAgIGlmICh0aGlzLmNka1Bvc2l0aW9ucykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2RrUG9zaXRpb25zO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucGxhY2VtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gW1BvcG92ZXJQb3NpdGlvbi5nZXRDZGtQbGFjZW1lbnQodGhpcy5wbGFjZW1lbnQsIHRoaXMuX2dldERpcmVjdGlvbigpKV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hcHBseVdpZHRoT3ZlcmxheSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbWF4V2lkdGhMaW1pdCA9IHRoaXMubWF4V2lkdGggPyB0aGlzLm1heFdpZHRoIDogTUFYX0JPRFlfU0laRTtcbiAgICAgICAgY29uc3Qgd2lkdGggPSBNYXRoLm1pbih0aGlzLl9nZXRUcmlnZ2VyV2lkdGgoKSwgbWF4V2lkdGhMaW1pdCk7XG4gICAgICAgIGlmICh0aGlzLmZpbGxDb250cm9sTW9kZSA9PT0gJ2F0LWxlYXN0Jykge1xuICAgICAgICAgICAgdGhpcy5fZ2V0UG9wb3ZlckJvZHkoKS5fcG9wb3ZlckJvZHlNaW5XaWR0aCA9IHdpZHRoO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZmlsbENvbnRyb2xNb2RlID09PSAnZXF1YWwnKSB7XG4gICAgICAgICAgICB0aGlzLl9nZXRQb3BvdmVyQm9keSgpLl9wb3BvdmVyQm9keVdpZHRoID0gd2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcGFzc1ZhcmlhYmxlc1RvQm9keSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYm9keSA9IHRoaXMuX2dldFBvcG92ZXJCb2R5KCk7XG4gICAgICAgIGJvZHkudGV4dCA9IHRoaXMuc3RyaW5nQ29udGVudDtcbiAgICAgICAgYm9keS5fYWRkaXRpb25hbEJvZHlDbGFzcyA9IHRoaXMuYWRkaXRpb25hbEJvZHlDbGFzcztcbiAgICAgICAgYm9keS5fZm9jdXNUcmFwcGVkID0gdGhpcy5mb2N1c1RyYXBwZWQ7XG4gICAgICAgIGJvZHkuX21heFdpZHRoID0gdGhpcy5tYXhXaWR0aDtcbiAgICAgICAgYm9keS5fbm9BcnJvdyA9IHRoaXMubm9BcnJvdztcbiAgICAgICAgYm9keS5fZm9jdXNBdXRvQ2FwdHVyZSA9IHRoaXMuZm9jdXNBdXRvQ2FwdHVyZTtcbiAgICAgICAgYm9keS5fdGVtcGxhdGVUb0Rpc3BsYXkgPSB0aGlzLnRlbXBsYXRlQ29udGVudCE7XG4gICAgICAgIGJvZHkuX2Nsb3NlT25Fc2NhcGVLZXkgPSB0aGlzLmNsb3NlT25Fc2NhcGVLZXk7XG4gICAgICAgIHRoaXMuX2RldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFRyaWdnZXJXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHJpZ2dlckVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFBvcG92ZXJCb2R5KCk6IFBvcG92ZXJCb2R5Q29tcG9uZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RlbXBsYXRlRGF0YT8ucG9wb3ZlckJvZHkgfHwgdGhpcy5fcG9wb3ZlckJvZHk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZXRlY3RDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fZ2V0UG9wb3ZlckJvZHkoKSkge1xuICAgICAgICAgICAgdGhpcy5fZ2V0UG9wb3ZlckJvZHkoKS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzQXV0b0NhcHR1cmUpIHtcbiAgICAgICAgICAgIHRoaXMuX2xhc3RBY3RpdmVFbGVtZW50ID0gPEhUTUxFbGVtZW50PmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLl9nZXRQb3BvdmVyQm9keSgpPy5fZm9jdXNGaXJzdFRhYmJhYmxlRWxlbWVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb2N1c0xhc3RBY3RpdmVFbGVtZW50QmVmb3JlT3BlbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNBdXRvQ2FwdHVyZSAmJiB0aGlzLl9sYXN0QWN0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5fbGFzdEFjdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -220,8 +220,22 @@ class BasePopoverClass {
|
|
|
220
220
|
* right, right-start, right-end, left, left-start, left-end.
|
|
221
221
|
*/
|
|
222
222
|
this.placement = null;
|
|
223
|
-
/**
|
|
224
|
-
*
|
|
223
|
+
/**
|
|
224
|
+
* The trigger events that will open/close the popover.
|
|
225
|
+
* Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp) or a config object for the corresponding event.
|
|
226
|
+
* Using the config object allows to specify whether an event should apply both for open and close actions or only some of them.
|
|
227
|
+
*
|
|
228
|
+
* Consider the following value for `triggers`:
|
|
229
|
+
* ```
|
|
230
|
+
* [
|
|
231
|
+
* 'click', // basically it's an alias for "{ trigger: 'click', openAction: true, closeAction: true }"
|
|
232
|
+
* { trigger: 'mouseenter', openAction: true, closeAction: false }, // "mouseenter" will only open the popover
|
|
233
|
+
* { trigger: 'mouseleave', openAction: false, closeAction: true } // "mouseleave" will only close the popover
|
|
234
|
+
* ]
|
|
235
|
+
* ```
|
|
236
|
+
*
|
|
237
|
+
* @default ['click']
|
|
238
|
+
*/
|
|
225
239
|
this.triggers = ['click'];
|
|
226
240
|
/** Whether the popover is open. Can be used through two-way binding. */
|
|
227
241
|
this.isOpen = false;
|
|
@@ -444,12 +458,12 @@ class PopoverService extends BasePopoverClass {
|
|
|
444
458
|
}
|
|
445
459
|
}
|
|
446
460
|
/** Toggles the popover open state */
|
|
447
|
-
toggle() {
|
|
461
|
+
toggle(openAction = true, closeAction = true) {
|
|
448
462
|
if (this.isOpen) {
|
|
449
|
-
this.close();
|
|
463
|
+
closeAction && this.close();
|
|
450
464
|
}
|
|
451
465
|
else {
|
|
452
|
-
this.open();
|
|
466
|
+
openAction && this.open();
|
|
453
467
|
}
|
|
454
468
|
}
|
|
455
469
|
/**
|
|
@@ -515,22 +529,16 @@ class PopoverService extends BasePopoverClass {
|
|
|
515
529
|
this._removeTriggerListeners();
|
|
516
530
|
if ((_a = this.triggers) === null || _a === void 0 ? void 0 : _a.length) {
|
|
517
531
|
this.triggers.forEach((trigger) => {
|
|
518
|
-
|
|
519
|
-
|
|
532
|
+
const triggerName = typeof trigger === 'string' ? trigger : trigger.trigger;
|
|
533
|
+
this._eventRef.push(this._renderer.listen(this._triggerElement.nativeElement, triggerName, () => {
|
|
534
|
+
const closeAction = typeof trigger !== 'object' || !!trigger.closeAction;
|
|
535
|
+
const openAction = typeof trigger !== 'object' || !!trigger.openAction;
|
|
536
|
+
this.toggle(openAction, closeAction);
|
|
520
537
|
}));
|
|
521
538
|
});
|
|
522
539
|
}
|
|
523
540
|
}
|
|
524
541
|
/** @hidden */
|
|
525
|
-
_isToggle(trigger) {
|
|
526
|
-
var _a;
|
|
527
|
-
// prevent unexpected toggling when it triggers the same event
|
|
528
|
-
if (this._prevTrigger !== trigger || ((_a = this.triggers) === null || _a === void 0 ? void 0 : _a.length) <= 1) {
|
|
529
|
-
this.toggle();
|
|
530
|
-
}
|
|
531
|
-
this._prevTrigger = trigger;
|
|
532
|
-
}
|
|
533
|
-
/** @hidden */
|
|
534
542
|
_getOverlayConfig(position) {
|
|
535
543
|
const direction = this._getDirection();
|
|
536
544
|
return new OverlayConfig({
|