@taiga-ui/core 3.17.0 → 3.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/taiga-ui-core-abstract.umd.js +1 -0
- package/bundles/taiga-ui-core-abstract.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-dialog.umd.js +189 -167
- package/bundles/taiga-ui-core-components-dialog.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-notification.umd.js +2 -2
- package/bundles/taiga-ui-core-components-notification.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.js +1 -1
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-root.umd.js +1 -1
- package/bundles/taiga-ui-core-components-svg.umd.js +100 -20
- package/bundles/taiga-ui-core-components-svg.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-tooltip.umd.js +31 -13
- package/bundles/taiga-ui-core-components-tooltip.umd.js.map +1 -1
- package/bundles/taiga-ui-core-directives-dropdown.umd.js +45 -25
- package/bundles/taiga-ui-core-directives-dropdown.umd.js.map +1 -1
- package/bundles/taiga-ui-core-directives-hint.umd.js +67 -63
- package/bundles/taiga-ui-core-directives-hint.umd.js.map +1 -1
- package/bundles/taiga-ui-core-tokens.umd.js +39 -1
- package/bundles/taiga-ui-core-tokens.umd.js.map +1 -1
- package/components/dialog/dialog-close.service.d.ts +15 -0
- package/components/dialog/dialog.component.d.ts +5 -4
- package/components/dialog/dialog.tokens.d.ts +2 -0
- package/components/dialog/index.d.ts +1 -1
- package/components/notification/notification.component.d.ts +2 -2
- package/components/svg/deprecated-icons.d.ts +1 -0
- package/components/svg/index.d.ts +2 -0
- package/components/svg/svg-options.d.ts +14 -0
- package/components/svg/svg.component.d.ts +5 -7
- package/components/tooltip/tooltip.component.d.ts +2 -2
- package/components/tooltip/tooltip.module.d.ts +5 -4
- package/directives/dropdown/dropdown-hover-options.directive.d.ts +9 -0
- package/directives/dropdown/dropdown-hover.directive.d.ts +3 -1
- package/directives/dropdown/dropdown-position-sided.directive.d.ts +2 -2
- package/directives/dropdown/dropdown-position.directive.d.ts +2 -2
- package/directives/dropdown/index.d.ts +1 -0
- package/directives/hint/hint-hover.directive.d.ts +4 -2
- package/directives/hint/hint-position.directive.d.ts +2 -2
- package/esm2015/abstract/rect-accessor.js +2 -1
- package/esm2015/components/dialog/dialog-close.service.js +51 -0
- package/esm2015/components/dialog/dialog.component.js +26 -10
- package/esm2015/components/dialog/dialog.tokens.js +5 -1
- package/esm2015/components/dialog/index.js +2 -2
- package/esm2015/components/notification/notification.component.js +3 -3
- package/esm2015/components/primitive-textfield/primitive-textfield.component.js +2 -2
- package/esm2015/components/root/root.component.js +1 -1
- package/esm2015/components/svg/deprecated-icons.js +59 -0
- package/esm2015/components/svg/index.js +3 -1
- package/esm2015/components/svg/svg-options.js +29 -0
- package/esm2015/components/svg/svg.component.js +13 -18
- package/esm2015/components/tooltip/tooltip.component.js +13 -13
- package/esm2015/components/tooltip/tooltip.module.js +21 -4
- package/esm2015/directives/dropdown/dropdown-hover-options.directive.js +14 -0
- package/esm2015/directives/dropdown/dropdown-hover.directive.js +10 -5
- package/esm2015/directives/dropdown/dropdown-position-sided.directive.js +12 -12
- package/esm2015/directives/dropdown/dropdown-position.directive.js +11 -11
- package/esm2015/directives/dropdown/index.js +2 -1
- package/esm2015/directives/hint/hint-hover.directive.js +13 -10
- package/esm2015/directives/hint/hint-options.directive.js +2 -2
- package/esm2015/directives/hint/hint-position.directive.js +12 -11
- package/esm2015/directives/hint/hint.component.js +3 -2
- package/esm2015/interfaces/dialog-options.js +1 -1
- package/esm2015/tokens/icon-place.js +5 -2
- package/esm2015/tokens/icons-path.js +4 -1
- package/esm2015/tokens/index.js +2 -1
- package/esm2015/tokens/svg-content-processor.js +4 -1
- package/esm2015/tokens/svg-src-processor.js +4 -1
- package/esm2015/tokens/viewport.js +26 -0
- package/fesm2015/taiga-ui-core-abstract.js +1 -0
- package/fesm2015/taiga-ui-core-abstract.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-dialog.js +85 -69
- package/fesm2015/taiga-ui-core-components-dialog.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-notification.js +2 -2
- package/fesm2015/taiga-ui-core-components-notification.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-textfield.js +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-textfield.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-root.js +1 -1
- package/fesm2015/taiga-ui-core-components-svg.js +98 -21
- package/fesm2015/taiga-ui-core-components-svg.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-tooltip.js +32 -15
- package/fesm2015/taiga-ui-core-components-tooltip.js.map +1 -1
- package/fesm2015/taiga-ui-core-directives-dropdown.js +42 -25
- package/fesm2015/taiga-ui-core-directives-dropdown.js.map +1 -1
- package/fesm2015/taiga-ui-core-directives-hint.js +30 -27
- package/fesm2015/taiga-ui-core-directives-hint.js.map +1 -1
- package/fesm2015/taiga-ui-core-tokens.js +38 -2
- package/fesm2015/taiga-ui-core-tokens.js.map +1 -1
- package/interfaces/dialog-options.d.ts +4 -3
- package/package.json +4 -4
- package/styles/mixins/textfield.less +4 -22
- package/styles/mixins/textfield.scss +3 -22
- package/styles/theme/wrapper/icon.less +17 -27
- package/tokens/icon-place.d.ts +3 -0
- package/tokens/icons-path.d.ts +3 -0
- package/tokens/index.d.ts +1 -0
- package/tokens/svg-content-processor.d.ts +3 -0
- package/tokens/svg-src-processor.d.ts +3 -0
- package/tokens/viewport.d.ts +4 -0
- package/components/dialog/dialog.providers.d.ts +0 -5
- package/esm2015/components/dialog/dialog.providers.js +0 -51
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export const TUI_DEPRECATED_ICONS = {
|
|
2
|
+
tuiIconAttach: `tuiIconPaperclip`,
|
|
3
|
+
tuiIconAttention: `tuiIconAlertCircle`,
|
|
4
|
+
tuiIconBackCircle: `tuiIconArrowLeftCircle`,
|
|
5
|
+
tuiIconCall: `tuiIconPhone`,
|
|
6
|
+
tuiIconCallIn: `tuiIconPhoneIncoming`,
|
|
7
|
+
tuiIconCallOut: `tuiIconPhoneOutgoing`,
|
|
8
|
+
tuiIconCallTransfer: `tuiIconPhoneForwarded`,
|
|
9
|
+
tuiIconCancel: `tuiIconXCircle`,
|
|
10
|
+
tuiIconCancelCircle: `tuiIconSlash`,
|
|
11
|
+
tuiIconCard: `tuiIconCreditCard`,
|
|
12
|
+
tuiIconCards: `tuiIconCreditCard`,
|
|
13
|
+
tuiIconChartBar: `tuiIconBarChart`,
|
|
14
|
+
tuiIconChart: `tuiIconBarChart`,
|
|
15
|
+
tuiIconCheckList: `tuiIconClipboard`,
|
|
16
|
+
tuiIconCloseCircle: `tuiIconXCircle`,
|
|
17
|
+
tuiIconCollapse: `tuiIconMinimize`,
|
|
18
|
+
tuiIconComment: `tuiIconMessageSquare`,
|
|
19
|
+
tuiIconCommentFw: `tuiIconMessageForward`,
|
|
20
|
+
tuiIconCompany: `tuiIconBriefcase`,
|
|
21
|
+
tuiIconDefaultDoc: `tuiIconFile`,
|
|
22
|
+
tuiIconDesktop: `tuiIconMonitor`,
|
|
23
|
+
tuiIconDesktopOff: `tuiIconMonitorOff`,
|
|
24
|
+
tuiIconDislike: `tuiIconThumbsDown`,
|
|
25
|
+
tuiIconDone: `tuiIconCheckCircle`,
|
|
26
|
+
tuiIconDraft: `tuiIconEdit2`,
|
|
27
|
+
tuiIconEyeOpen: `tuiIconEye`,
|
|
28
|
+
tuiIconEyeClosed: `tuiIconEyeOff`,
|
|
29
|
+
tuiIconExpand: `tuiIconMaximize`,
|
|
30
|
+
tuiIconExternal: `tuiIconExternalLink`,
|
|
31
|
+
tuiIconFrame: `tuiIconLayout`,
|
|
32
|
+
tuiIconGeo: `tuiIconMapPin`,
|
|
33
|
+
tuiIconHeartFilled: `tuiIconHeart`,
|
|
34
|
+
tuiIconHide: `tuiIconEyeOff`,
|
|
35
|
+
tuiIconImg: `tuiIconImage`,
|
|
36
|
+
tuiIconInfoCircle: `tuiIconInfo`,
|
|
37
|
+
tuiIconLike: `tuiIconThumbsUp`,
|
|
38
|
+
tuiIconLockOpen: `tuiIconUnlock`,
|
|
39
|
+
tuiIconMobile: `tuiIconSmartphone`,
|
|
40
|
+
tuiIconMoreHor: `tuiIconMoreHorizontal`,
|
|
41
|
+
tuiIconMoreVer: `tuiIconMoreVertical`,
|
|
42
|
+
tuiIconMoreVert: `tuiIconMoreVertical`,
|
|
43
|
+
tuiIconPicture: `tuiIconImage`,
|
|
44
|
+
tuiIconPin: `tuiIconMapPin`,
|
|
45
|
+
tuiIconPrint: `tuiIconPrinter`,
|
|
46
|
+
tuiIconRefresh: `tuiIconRefreshCw`,
|
|
47
|
+
tuiIconRemove: `tuiIconX`,
|
|
48
|
+
tuiIconShow: `tuiIconEye`,
|
|
49
|
+
tuiIconSound: `tuiIconVolume`,
|
|
50
|
+
tuiIconSoundOff: `tuiIconVolumeX`,
|
|
51
|
+
tuiIconStarFilled: `tuiIconStar`,
|
|
52
|
+
tuiIconStop: `tuiIconSquare`,
|
|
53
|
+
tuiIconStructure: `tuiIconGrid`,
|
|
54
|
+
tuiIconTime: `tuiIconClock`,
|
|
55
|
+
tuiIconTooltip: `tuiIconHelpCircle`,
|
|
56
|
+
tuiIconViewList: `tuiIconList`,
|
|
57
|
+
tuiIconWifiOn: `tuiIconWifi`,
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjYXRlZC1pY29ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zdmcvZGVwcmVjYXRlZC1pY29ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBMkI7SUFDeEQsYUFBYSxFQUFFLGtCQUFrQjtJQUNqQyxnQkFBZ0IsRUFBRSxvQkFBb0I7SUFDdEMsaUJBQWlCLEVBQUUsd0JBQXdCO0lBQzNDLFdBQVcsRUFBRSxjQUFjO0lBQzNCLGFBQWEsRUFBRSxzQkFBc0I7SUFDckMsY0FBYyxFQUFFLHNCQUFzQjtJQUN0QyxtQkFBbUIsRUFBRSx1QkFBdUI7SUFDNUMsYUFBYSxFQUFFLGdCQUFnQjtJQUMvQixtQkFBbUIsRUFBRSxjQUFjO0lBQ25DLFdBQVcsRUFBRSxtQkFBbUI7SUFDaEMsWUFBWSxFQUFFLG1CQUFtQjtJQUNqQyxlQUFlLEVBQUUsaUJBQWlCO0lBQ2xDLFlBQVksRUFBRSxpQkFBaUI7SUFDL0IsZ0JBQWdCLEVBQUUsa0JBQWtCO0lBQ3BDLGtCQUFrQixFQUFFLGdCQUFnQjtJQUNwQyxlQUFlLEVBQUUsaUJBQWlCO0lBQ2xDLGNBQWMsRUFBRSxzQkFBc0I7SUFDdEMsZ0JBQWdCLEVBQUUsdUJBQXVCO0lBQ3pDLGNBQWMsRUFBRSxrQkFBa0I7SUFDbEMsaUJBQWlCLEVBQUUsYUFBYTtJQUNoQyxjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLGlCQUFpQixFQUFFLG1CQUFtQjtJQUN0QyxjQUFjLEVBQUUsbUJBQW1CO0lBQ25DLFdBQVcsRUFBRSxvQkFBb0I7SUFDakMsWUFBWSxFQUFFLGNBQWM7SUFDNUIsY0FBYyxFQUFFLFlBQVk7SUFDNUIsZ0JBQWdCLEVBQUUsZUFBZTtJQUNqQyxhQUFhLEVBQUUsaUJBQWlCO0lBQ2hDLGVBQWUsRUFBRSxxQkFBcUI7SUFDdEMsWUFBWSxFQUFFLGVBQWU7SUFDN0IsVUFBVSxFQUFFLGVBQWU7SUFDM0Isa0JBQWtCLEVBQUUsY0FBYztJQUNsQyxXQUFXLEVBQUUsZUFBZTtJQUM1QixVQUFVLEVBQUUsY0FBYztJQUMxQixpQkFBaUIsRUFBRSxhQUFhO0lBQ2hDLFdBQVcsRUFBRSxpQkFBaUI7SUFDOUIsZUFBZSxFQUFFLGVBQWU7SUFDaEMsYUFBYSxFQUFFLG1CQUFtQjtJQUNsQyxjQUFjLEVBQUUsdUJBQXVCO0lBQ3ZDLGNBQWMsRUFBRSxxQkFBcUI7SUFDckMsZUFBZSxFQUFFLHFCQUFxQjtJQUN0QyxjQUFjLEVBQUUsY0FBYztJQUM5QixVQUFVLEVBQUUsZUFBZTtJQUMzQixZQUFZLEVBQUUsZ0JBQWdCO0lBQzlCLGNBQWMsRUFBRSxrQkFBa0I7SUFDbEMsYUFBYSxFQUFFLFVBQVU7SUFDekIsV0FBVyxFQUFFLFlBQVk7SUFDekIsWUFBWSxFQUFFLGVBQWU7SUFDN0IsZUFBZSxFQUFFLGdCQUFnQjtJQUNqQyxpQkFBaUIsRUFBRSxhQUFhO0lBQ2hDLFdBQVcsRUFBRSxlQUFlO0lBQzVCLGdCQUFnQixFQUFFLGFBQWE7SUFDL0IsV0FBVyxFQUFFLGNBQWM7SUFDM0IsY0FBYyxFQUFFLG1CQUFtQjtJQUNuQyxlQUFlLEVBQUUsYUFBYTtJQUM5QixhQUFhLEVBQUUsYUFBYTtDQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFRVSV9ERVBSRUNBVEVEX0lDT05TOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIHR1aUljb25BdHRhY2g6IGB0dWlJY29uUGFwZXJjbGlwYCxcbiAgICB0dWlJY29uQXR0ZW50aW9uOiBgdHVpSWNvbkFsZXJ0Q2lyY2xlYCxcbiAgICB0dWlJY29uQmFja0NpcmNsZTogYHR1aUljb25BcnJvd0xlZnRDaXJjbGVgLFxuICAgIHR1aUljb25DYWxsOiBgdHVpSWNvblBob25lYCxcbiAgICB0dWlJY29uQ2FsbEluOiBgdHVpSWNvblBob25lSW5jb21pbmdgLFxuICAgIHR1aUljb25DYWxsT3V0OiBgdHVpSWNvblBob25lT3V0Z29pbmdgLFxuICAgIHR1aUljb25DYWxsVHJhbnNmZXI6IGB0dWlJY29uUGhvbmVGb3J3YXJkZWRgLFxuICAgIHR1aUljb25DYW5jZWw6IGB0dWlJY29uWENpcmNsZWAsXG4gICAgdHVpSWNvbkNhbmNlbENpcmNsZTogYHR1aUljb25TbGFzaGAsXG4gICAgdHVpSWNvbkNhcmQ6IGB0dWlJY29uQ3JlZGl0Q2FyZGAsXG4gICAgdHVpSWNvbkNhcmRzOiBgdHVpSWNvbkNyZWRpdENhcmRgLFxuICAgIHR1aUljb25DaGFydEJhcjogYHR1aUljb25CYXJDaGFydGAsXG4gICAgdHVpSWNvbkNoYXJ0OiBgdHVpSWNvbkJhckNoYXJ0YCxcbiAgICB0dWlJY29uQ2hlY2tMaXN0OiBgdHVpSWNvbkNsaXBib2FyZGAsXG4gICAgdHVpSWNvbkNsb3NlQ2lyY2xlOiBgdHVpSWNvblhDaXJjbGVgLFxuICAgIHR1aUljb25Db2xsYXBzZTogYHR1aUljb25NaW5pbWl6ZWAsXG4gICAgdHVpSWNvbkNvbW1lbnQ6IGB0dWlJY29uTWVzc2FnZVNxdWFyZWAsXG4gICAgdHVpSWNvbkNvbW1lbnRGdzogYHR1aUljb25NZXNzYWdlRm9yd2FyZGAsXG4gICAgdHVpSWNvbkNvbXBhbnk6IGB0dWlJY29uQnJpZWZjYXNlYCxcbiAgICB0dWlJY29uRGVmYXVsdERvYzogYHR1aUljb25GaWxlYCxcbiAgICB0dWlJY29uRGVza3RvcDogYHR1aUljb25Nb25pdG9yYCxcbiAgICB0dWlJY29uRGVza3RvcE9mZjogYHR1aUljb25Nb25pdG9yT2ZmYCxcbiAgICB0dWlJY29uRGlzbGlrZTogYHR1aUljb25UaHVtYnNEb3duYCxcbiAgICB0dWlJY29uRG9uZTogYHR1aUljb25DaGVja0NpcmNsZWAsXG4gICAgdHVpSWNvbkRyYWZ0OiBgdHVpSWNvbkVkaXQyYCxcbiAgICB0dWlJY29uRXllT3BlbjogYHR1aUljb25FeWVgLFxuICAgIHR1aUljb25FeWVDbG9zZWQ6IGB0dWlJY29uRXllT2ZmYCxcbiAgICB0dWlJY29uRXhwYW5kOiBgdHVpSWNvbk1heGltaXplYCxcbiAgICB0dWlJY29uRXh0ZXJuYWw6IGB0dWlJY29uRXh0ZXJuYWxMaW5rYCxcbiAgICB0dWlJY29uRnJhbWU6IGB0dWlJY29uTGF5b3V0YCxcbiAgICB0dWlJY29uR2VvOiBgdHVpSWNvbk1hcFBpbmAsXG4gICAgdHVpSWNvbkhlYXJ0RmlsbGVkOiBgdHVpSWNvbkhlYXJ0YCxcbiAgICB0dWlJY29uSGlkZTogYHR1aUljb25FeWVPZmZgLFxuICAgIHR1aUljb25JbWc6IGB0dWlJY29uSW1hZ2VgLFxuICAgIHR1aUljb25JbmZvQ2lyY2xlOiBgdHVpSWNvbkluZm9gLFxuICAgIHR1aUljb25MaWtlOiBgdHVpSWNvblRodW1ic1VwYCxcbiAgICB0dWlJY29uTG9ja09wZW46IGB0dWlJY29uVW5sb2NrYCxcbiAgICB0dWlJY29uTW9iaWxlOiBgdHVpSWNvblNtYXJ0cGhvbmVgLFxuICAgIHR1aUljb25Nb3JlSG9yOiBgdHVpSWNvbk1vcmVIb3Jpem9udGFsYCxcbiAgICB0dWlJY29uTW9yZVZlcjogYHR1aUljb25Nb3JlVmVydGljYWxgLFxuICAgIHR1aUljb25Nb3JlVmVydDogYHR1aUljb25Nb3JlVmVydGljYWxgLFxuICAgIHR1aUljb25QaWN0dXJlOiBgdHVpSWNvbkltYWdlYCxcbiAgICB0dWlJY29uUGluOiBgdHVpSWNvbk1hcFBpbmAsXG4gICAgdHVpSWNvblByaW50OiBgdHVpSWNvblByaW50ZXJgLFxuICAgIHR1aUljb25SZWZyZXNoOiBgdHVpSWNvblJlZnJlc2hDd2AsXG4gICAgdHVpSWNvblJlbW92ZTogYHR1aUljb25YYCxcbiAgICB0dWlJY29uU2hvdzogYHR1aUljb25FeWVgLFxuICAgIHR1aUljb25Tb3VuZDogYHR1aUljb25Wb2x1bWVgLFxuICAgIHR1aUljb25Tb3VuZE9mZjogYHR1aUljb25Wb2x1bWVYYCxcbiAgICB0dWlJY29uU3RhckZpbGxlZDogYHR1aUljb25TdGFyYCxcbiAgICB0dWlJY29uU3RvcDogYHR1aUljb25TcXVhcmVgLFxuICAgIHR1aUljb25TdHJ1Y3R1cmU6IGB0dWlJY29uR3JpZGAsXG4gICAgdHVpSWNvblRpbWU6IGB0dWlJY29uQ2xvY2tgLFxuICAgIHR1aUljb25Ub29sdGlwOiBgdHVpSWNvbkhlbHBDaXJjbGVgLFxuICAgIHR1aUljb25WaWV3TGlzdDogYHR1aUljb25MaXN0YCxcbiAgICB0dWlJY29uV2lmaU9uOiBgdHVpSWNvbldpZmlgLFxufTtcbiJdfQ==
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export * from './deprecated-icons';
|
|
1
2
|
export * from './svg.component';
|
|
2
3
|
export * from './svg.module';
|
|
3
|
-
|
|
4
|
+
export * from './svg-options';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3ZnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGVwcmVjYXRlZC1pY29ucyc7XG5leHBvcnQgKiBmcm9tICcuL3N2Zy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zdmcubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3ZnLW9wdGlvbnMnO1xuIl19
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { inject, InjectionToken } from '@angular/core';
|
|
2
|
+
import { tuiIsString, tuiSvgLinearGradientProcessor, } from '@taiga-ui/cdk';
|
|
3
|
+
import { TUI_ICONS_PATH, TUI_SVG_CONTENT_PROCESSOR, TUI_SVG_SRC_PROCESSOR, } from '@taiga-ui/core/tokens';
|
|
4
|
+
import { tuiIconsPathFactory } from '@taiga-ui/core/utils';
|
|
5
|
+
import { identity } from 'rxjs';
|
|
6
|
+
import { TUI_DEPRECATED_ICONS } from './deprecated-icons';
|
|
7
|
+
export const TUI_SVG_DEFAULT_OPTIONS = {
|
|
8
|
+
path: tuiIconsPathFactory(`assets/taiga-ui/icons`),
|
|
9
|
+
srcProcessor: identity,
|
|
10
|
+
contentProcessor: tuiSvgLinearGradientProcessor,
|
|
11
|
+
deprecated: src => TUI_DEPRECATED_ICONS[src.replace(`Large`, ``).replace(`Outline`, ``)]
|
|
12
|
+
? `${src} is deprecated, use ${TUI_DEPRECATED_ICONS[src.replace(`Large`, ``)]}/Large instead`
|
|
13
|
+
: ``,
|
|
14
|
+
};
|
|
15
|
+
export const TUI_SVG_OPTIONS = new InjectionToken(`[TUI_SVG_OPTIONS]: SVG component options`, {
|
|
16
|
+
factory: () => ({
|
|
17
|
+
path: inject(TUI_ICONS_PATH),
|
|
18
|
+
deprecated: TUI_SVG_DEFAULT_OPTIONS.deprecated,
|
|
19
|
+
srcProcessor: inject(TUI_SVG_SRC_PROCESSOR),
|
|
20
|
+
contentProcessor: inject(TUI_SVG_CONTENT_PROCESSOR),
|
|
21
|
+
}),
|
|
22
|
+
});
|
|
23
|
+
export const tuiSvgOptionsProvider = options => ({
|
|
24
|
+
provide: TUI_SVG_OPTIONS,
|
|
25
|
+
useValue: Object.assign(Object.assign(Object.assign({}, TUI_SVG_DEFAULT_OPTIONS), options), { path: tuiIsString(options.path)
|
|
26
|
+
? tuiIconsPathFactory(options.path)
|
|
27
|
+
: options.path || TUI_SVG_DEFAULT_OPTIONS.path }),
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3ZnL3N2Zy1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsY0FBYyxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUVwRSxPQUFPLEVBRUgsV0FBVyxFQUVYLDZCQUE2QixHQUNoQyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsY0FBYyxFQUNkLHlCQUF5QixFQUN6QixxQkFBcUIsR0FDeEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTlCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBU3hELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFrQjtJQUNsRCxJQUFJLEVBQUUsbUJBQW1CLENBQUMsdUJBQXVCLENBQUM7SUFDbEQsWUFBWSxFQUFFLFFBQVE7SUFDdEIsZ0JBQWdCLEVBQUUsNkJBQTZCO0lBQy9DLFVBQVUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUNkLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLEdBQUcsR0FBRyx1QkFDRixvQkFBb0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FDakQsZ0JBQWdCO1FBQ2xCLENBQUMsQ0FBQyxFQUFFO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FDN0MsMENBQTBDLEVBQzFDO0lBQ0ksT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDWixJQUFJLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQztRQUM1QixVQUFVLEVBQUUsdUJBQXVCLENBQUMsVUFBVTtRQUM5QyxZQUFZLEVBQUUsTUFBTSxDQUFDLHFCQUFxQixDQUFDO1FBQzNDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQztLQUN0RCxDQUFDO0NBQ0wsQ0FDSixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBSWIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLE9BQU8sRUFBRSxlQUFlO0lBQ3hCLFFBQVEsZ0RBQ0QsdUJBQXVCLEdBQ3ZCLE9BQU8sS0FDVixJQUFJLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDM0IsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDbkMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksdUJBQXVCLENBQUMsSUFBSSxHQUNyRDtDQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgVmFsdWVQcm92aWRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NhZmVIdG1sfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7XG4gICAgVHVpSGFuZGxlcixcbiAgICB0dWlJc1N0cmluZyxcbiAgICBUdWlTdHJpbmdIYW5kbGVyLFxuICAgIHR1aVN2Z0xpbmVhckdyYWRpZW50UHJvY2Vzc29yLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVFVJX0lDT05TX1BBVEgsXG4gICAgVFVJX1NWR19DT05URU5UX1BST0NFU1NPUixcbiAgICBUVUlfU1ZHX1NSQ19QUk9DRVNTT1IsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge3R1aUljb25zUGF0aEZhY3Rvcnl9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3V0aWxzJztcbmltcG9ydCB7aWRlbnRpdHl9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1RVSV9ERVBSRUNBVEVEX0lDT05TfSBmcm9tICcuL2RlcHJlY2F0ZWQtaWNvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFR1aVN2Z09wdGlvbnMge1xuICAgIHJlYWRvbmx5IHBhdGg6IFR1aVN0cmluZ0hhbmRsZXI8c3RyaW5nPjtcbiAgICByZWFkb25seSBkZXByZWNhdGVkOiBUdWlTdHJpbmdIYW5kbGVyPHN0cmluZz47XG4gICAgcmVhZG9ubHkgc3JjUHJvY2Vzc29yOiBUdWlIYW5kbGVyPFNhZmVIdG1sIHwgc3RyaW5nLCBTYWZlSHRtbCB8IHN0cmluZz47XG4gICAgcmVhZG9ubHkgY29udGVudFByb2Nlc3NvcjogVHVpSGFuZGxlcjxTYWZlSHRtbCB8IHN0cmluZywgU2FmZUh0bWwgfCBzdHJpbmc+O1xufVxuXG5leHBvcnQgY29uc3QgVFVJX1NWR19ERUZBVUxUX09QVElPTlM6IFR1aVN2Z09wdGlvbnMgPSB7XG4gICAgcGF0aDogdHVpSWNvbnNQYXRoRmFjdG9yeShgYXNzZXRzL3RhaWdhLXVpL2ljb25zYCksXG4gICAgc3JjUHJvY2Vzc29yOiBpZGVudGl0eSxcbiAgICBjb250ZW50UHJvY2Vzc29yOiB0dWlTdmdMaW5lYXJHcmFkaWVudFByb2Nlc3NvcixcbiAgICBkZXByZWNhdGVkOiBzcmMgPT5cbiAgICAgICAgVFVJX0RFUFJFQ0FURURfSUNPTlNbc3JjLnJlcGxhY2UoYExhcmdlYCwgYGApLnJlcGxhY2UoYE91dGxpbmVgLCBgYCldXG4gICAgICAgICAgICA/IGAke3NyY30gaXMgZGVwcmVjYXRlZCwgdXNlICR7XG4gICAgICAgICAgICAgICAgICBUVUlfREVQUkVDQVRFRF9JQ09OU1tzcmMucmVwbGFjZShgTGFyZ2VgLCBgYCldXG4gICAgICAgICAgICAgIH0vTGFyZ2UgaW5zdGVhZGBcbiAgICAgICAgICAgIDogYGAsXG59O1xuXG5leHBvcnQgY29uc3QgVFVJX1NWR19PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPFR1aVN2Z09wdGlvbnM+KFxuICAgIGBbVFVJX1NWR19PUFRJT05TXTogU1ZHIGNvbXBvbmVudCBvcHRpb25zYCxcbiAgICB7XG4gICAgICAgIGZhY3Rvcnk6ICgpID0+ICh7XG4gICAgICAgICAgICBwYXRoOiBpbmplY3QoVFVJX0lDT05TX1BBVEgpLFxuICAgICAgICAgICAgZGVwcmVjYXRlZDogVFVJX1NWR19ERUZBVUxUX09QVElPTlMuZGVwcmVjYXRlZCxcbiAgICAgICAgICAgIHNyY1Byb2Nlc3NvcjogaW5qZWN0KFRVSV9TVkdfU1JDX1BST0NFU1NPUiksXG4gICAgICAgICAgICBjb250ZW50UHJvY2Vzc29yOiBpbmplY3QoVFVJX1NWR19DT05URU5UX1BST0NFU1NPUiksXG4gICAgICAgIH0pLFxuICAgIH0sXG4pO1xuXG5leHBvcnQgY29uc3QgdHVpU3ZnT3B0aW9uc1Byb3ZpZGVyOiAoXG4gICAgb3B0aW9uczogUGFydGlhbDxPbWl0PFR1aVN2Z09wdGlvbnMsICdwYXRoJz4+ICYge1xuICAgICAgICBwYXRoPzogVHVpU3ZnT3B0aW9uc1sncGF0aCddIHwgc3RyaW5nO1xuICAgIH0sXG4pID0+IFZhbHVlUHJvdmlkZXIgPSBvcHRpb25zID0+ICh7XG4gICAgcHJvdmlkZTogVFVJX1NWR19PUFRJT05TLFxuICAgIHVzZVZhbHVlOiB7XG4gICAgICAgIC4uLlRVSV9TVkdfREVGQVVMVF9PUFRJT05TLFxuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBwYXRoOiB0dWlJc1N0cmluZyhvcHRpb25zLnBhdGgpXG4gICAgICAgICAgICA/IHR1aUljb25zUGF0aEZhY3Rvcnkob3B0aW9ucy5wYXRoKVxuICAgICAgICAgICAgOiBvcHRpb25zLnBhdGggfHwgVFVJX1NWR19ERUZBVUxUX09QVElPTlMucGF0aCxcbiAgICB9LFxufSk7XG4iXX0=
|
|
@@ -6,10 +6,11 @@ import { WINDOW } from '@ng-web-apis/common';
|
|
|
6
6
|
import { tuiAssert, tuiGetDocumentOrShadowRoot, tuiIsString, tuiPure, tuiRequiredSetter, TuiStaticRequestService, } from '@taiga-ui/cdk';
|
|
7
7
|
import { TUI_ICON_ERROR } from '@taiga-ui/core/constants';
|
|
8
8
|
import { TuiSvgService } from '@taiga-ui/core/services';
|
|
9
|
-
import {
|
|
9
|
+
import { TUI_SANITIZER } from '@taiga-ui/core/tokens';
|
|
10
10
|
import { tuiIsPresumedHTMLString } from '@taiga-ui/core/utils/miscellaneous';
|
|
11
11
|
import { of, ReplaySubject } from 'rxjs';
|
|
12
12
|
import { catchError, map, startWith, switchMap } from 'rxjs/operators';
|
|
13
|
+
import { TUI_SVG_OPTIONS } from './svg-options';
|
|
13
14
|
import * as i0 from "@angular/core";
|
|
14
15
|
import * as i1 from "@taiga-ui/cdk";
|
|
15
16
|
import * as i2 from "@angular/common";
|
|
@@ -20,17 +21,15 @@ const MISSING_EXTERNAL_ICON = 'External icon is missing on the given URL';
|
|
|
20
21
|
const FAILED_EXTERNAL_ICON = 'Failed to load external SVG';
|
|
21
22
|
// TODO: Consider moving to CDK along with SvgService and SvgDefsHostComponent
|
|
22
23
|
export class TuiSvgComponent {
|
|
23
|
-
constructor(documentRef, windowRef,
|
|
24
|
+
constructor(documentRef, windowRef, options, tuiSanitizer, svgService, staticRequestService, sanitizer, elementRef) {
|
|
24
25
|
this.documentRef = documentRef;
|
|
25
26
|
this.windowRef = windowRef;
|
|
26
|
-
this.
|
|
27
|
+
this.options = options;
|
|
27
28
|
this.tuiSanitizer = tuiSanitizer;
|
|
28
29
|
this.svgService = svgService;
|
|
29
30
|
this.staticRequestService = staticRequestService;
|
|
30
31
|
this.sanitizer = sanitizer;
|
|
31
32
|
this.elementRef = elementRef;
|
|
32
|
-
this.srcProcessor = srcProcessor;
|
|
33
|
-
this.contentProcessor = contentProcessor;
|
|
34
33
|
this.src$ = new ReplaySubject(1);
|
|
35
34
|
this.icon = '';
|
|
36
35
|
this.innerHTML$ = this.src$.pipe(switchMap(() => {
|
|
@@ -43,7 +42,9 @@ export class TuiSvgComponent {
|
|
|
43
42
|
}), startWith(''));
|
|
44
43
|
}
|
|
45
44
|
set src(src) {
|
|
46
|
-
|
|
45
|
+
const deprecated = this.options.deprecated(String(src));
|
|
46
|
+
tuiAssert.assert(!deprecated, deprecated);
|
|
47
|
+
this.icon = this.options.srcProcessor(src);
|
|
47
48
|
this.src$.next();
|
|
48
49
|
}
|
|
49
50
|
get src() {
|
|
@@ -53,7 +54,7 @@ export class TuiSvgComponent {
|
|
|
53
54
|
if (tuiIsString(this.icon)) {
|
|
54
55
|
return this.icon.includes('.svg#')
|
|
55
56
|
? this.icon
|
|
56
|
-
: this.resolveName(this.icon, this.
|
|
57
|
+
: this.resolveName(this.icon, this.options.path);
|
|
57
58
|
}
|
|
58
59
|
return '';
|
|
59
60
|
}
|
|
@@ -115,7 +116,7 @@ export class TuiSvgComponent {
|
|
|
115
116
|
return !this.isShadowDOM || !this.isName ? '' : this.sanitize(icon || '');
|
|
116
117
|
}
|
|
117
118
|
sanitize(src) {
|
|
118
|
-
src = this.contentProcessor(src);
|
|
119
|
+
src = this.options.contentProcessor(src);
|
|
119
120
|
return this.tuiSanitizer && tuiIsString(src)
|
|
120
121
|
? this.sanitizer.bypassSecurityTrustHtml(this.tuiSanitizer.sanitize(SecurityContext.HTML, src) || '')
|
|
121
122
|
: src;
|
|
@@ -128,8 +129,8 @@ export class TuiSvgComponent {
|
|
|
128
129
|
}), map(response => this.sanitize(response.replace('<svg', '<svg focusable="false"'))));
|
|
129
130
|
}
|
|
130
131
|
}
|
|
131
|
-
TuiSvgComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiSvgComponent, deps: [{ token: DOCUMENT }, { token: WINDOW }, { token:
|
|
132
|
-
TuiSvgComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiSvgComponent, selector: "tui-svg", inputs: { src: "src" }, ngImport: i0, template: "<ng-container *tuiLet=\"innerHTML$ | async as innerHTML\">\n <div\n *ngIf=\"isInnerHTML; else useTemplate\"\n class=\"t-src\"\n [innerHTML]=\"innerHTML\"\n ></div>\n <ng-template #useTemplate>\n <svg\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n focusable=\"false\"\n width=\"100%\"\n height=\"100%\"\n (error)=\"onError()\"\n >\n <use [attr.xlink:href]=\"use\"></use>\n </svg>\n </ng-template>\n</ng-container>\n", styles: [":host{display:inline-block;vertical-align:middle;flex-shrink:0;line-height:0;height:1.5rem;width:1.5rem;fill:
|
|
132
|
+
TuiSvgComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiSvgComponent, deps: [{ token: DOCUMENT }, { token: WINDOW }, { token: TUI_SVG_OPTIONS }, { token: TUI_SANITIZER, optional: true }, { token: TuiSvgService }, { token: TuiStaticRequestService }, { token: DomSanitizer }, { token: ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
133
|
+
TuiSvgComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiSvgComponent, selector: "tui-svg", inputs: { src: "src" }, ngImport: i0, template: "<ng-container *tuiLet=\"innerHTML$ | async as innerHTML\">\n <div\n *ngIf=\"isInnerHTML; else useTemplate\"\n class=\"t-src\"\n [innerHTML]=\"innerHTML\"\n ></div>\n <ng-template #useTemplate>\n <svg\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n focusable=\"false\"\n width=\"100%\"\n height=\"100%\"\n class=\"t-svg\"\n (error)=\"onError()\"\n >\n <use [attr.xlink:href]=\"use\"></use>\n </svg>\n </ng-template>\n</ng-container>\n", styles: [":host{display:inline-block;vertical-align:middle;flex-shrink:0;line-height:0;height:1.5rem;width:1.5rem;fill:transparent;stroke:transparent;font-size:1rem}.t-src{display:flex;height:100%;align-items:center;justify-content:center;fill:inherit;stroke:inherit}.t-svg{fill:inherit;stroke:inherit}\n"], directives: [{ type: i1.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
133
134
|
__decorate([
|
|
134
135
|
tuiRequiredSetter()
|
|
135
136
|
], TuiSvgComponent.prototype, "src", null);
|
|
@@ -152,7 +153,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
152
153
|
args: [WINDOW]
|
|
153
154
|
}] }, { type: undefined, decorators: [{
|
|
154
155
|
type: Inject,
|
|
155
|
-
args: [
|
|
156
|
+
args: [TUI_SVG_OPTIONS]
|
|
156
157
|
}] }, { type: i0.Sanitizer, decorators: [{
|
|
157
158
|
type: Optional
|
|
158
159
|
}, {
|
|
@@ -170,13 +171,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
170
171
|
}] }, { type: i0.ElementRef, decorators: [{
|
|
171
172
|
type: Inject,
|
|
172
173
|
args: [ElementRef]
|
|
173
|
-
}] }, { type: undefined, decorators: [{
|
|
174
|
-
type: Inject,
|
|
175
|
-
args: [TUI_SVG_SRC_PROCESSOR]
|
|
176
|
-
}] }, { type: undefined, decorators: [{
|
|
177
|
-
type: Inject,
|
|
178
|
-
args: [TUI_SVG_CONTENT_PROCESSOR]
|
|
179
174
|
}] }]; }, propDecorators: { src: [{
|
|
180
175
|
type: Input
|
|
181
176
|
}], resolveName: [] } });
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zdmcvc3ZnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zdmcvc3ZnLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBRVIsZUFBZSxHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFXLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFDSCxTQUFTLEVBQ1QsMEJBQTBCLEVBRTFCLFdBQVcsRUFDWCxPQUFPLEVBQ1AsaUJBQWlCLEVBQ2pCLHVCQUF1QixHQUUxQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFeEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFDSCxjQUFjLEVBQ2QsYUFBYSxFQUNiLHlCQUF5QixFQUN6QixxQkFBcUIsR0FDeEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQWEsRUFBRSxFQUFFLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQUVyRSxNQUFN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QU07MkJBQUMsUUFBUTs4QkFDNEIsTUFBTTswQkFBakQsTUFBTTsyQkFBQyxNQUFNOzswQkFDYixNQUFNOzJCQUFDLGNBQWM7OzBCQUNyQixRQUFROzswQkFDUixNQUFNOzJCQUFDLGFBQWE7OzBCQUVwQixNQUFNOzJCQUFDLGFBQWE7OzBCQUNwQixNQUFNOzJCQUFDLHVCQUF1Qjs7MEJBRTlCLE1BQU07MkJBQUMsWUFBWTs7MEJBQ25CLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMscUJBQXFCOzswQkFJNUIsTUFBTTsyQkFBQyx5QkFBeUI7NENBcUJqQyxHQUFHO3NCQUZOLEtBQUs7Z0JBa0ZFLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2FuaXRpemVyLFxuICAgIFNlY3VyaXR5Q29udGV4dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RvbVNhbml0aXplciwgU2FmZUh0bWx9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtXSU5ET1d9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtcbiAgICB0dWlBc3NlcnQsXG4gICAgdHVpR2V0RG9jdW1lbnRPclNoYWRvd1Jvb3QsXG4gICAgVHVpSW5qZWN0aW9uVG9rZW5UeXBlLFxuICAgIHR1aUlzU3RyaW5nLFxuICAgIHR1aVB1cmUsXG4gICAgdHVpUmVxdWlyZWRTZXR0ZXIsXG4gICAgVHVpU3RhdGljUmVxdWVzdFNlcnZpY2UsXG4gICAgVHVpU3RyaW5nSGFuZGxlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1RVSV9JQ09OX0VSUk9SfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb25zdGFudHMnO1xuaW1wb3J0IHtUdWlJY29uRXJyb3J9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtUdWlTdmdTZXJ2aWNlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICAgIFRVSV9JQ09OU19QQVRILFxuICAgIFRVSV9TQU5JVElaRVIsXG4gICAgVFVJX1NWR19DT05URU5UX1BST0NFU1NPUixcbiAgICBUVUlfU1ZHX1NSQ19QUk9DRVNTT1IsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge3R1aUlzUHJlc3VtZWRIVE1MU3RyaW5nfSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IFVOREVGSU5FRF9OQU1FRF9JQ09OID0gJ0F0dGVtcHRlZCB0byB1c2UgdW5kZWZpbmVkIG5hbWVkIGljb24nO1xuY29uc3QgTUlTU0lOR19FWFRFUk5BTF9JQ09OID0gJ0V4dGVybmFsIGljb24gaXMgbWlzc2luZyBvbiB0aGUgZ2l2ZW4gVVJMJztcbmNvbnN0IEZBSUxFRF9FWFRFUk5BTF9JQ09OID0gJ0ZhaWxlZCB0byBsb2FkIGV4dGVybmFsIFNWRyc7XG5cbi8vIFRPRE86IENvbnNpZGVyIG1vdmluZyB0byBDREsgYWxvbmcgd2l0aCBTdmdTZXJ2aWNlIGFuZCBTdmdEZWZzSG9zdENvbXBvbmVudFxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktc3ZnJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3ZnLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N2Zy5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFR1aVN2Z0NvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzcmMkID0gbmV3IFJlcGxheVN1YmplY3Q8dm9pZD4oMSk7XG4gICAgcHJpdmF0ZSBpY29uOiBTYWZlSHRtbCB8IHN0cmluZyA9ICcnO1xuICAgIHJlYWRvbmx5IGlubmVySFRNTCQ6IE9ic2VydmFibGU8U2FmZUh0bWw+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRSZWY6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KFdJTkRPVykgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dSZWY6IFdpbmRvdyxcbiAgICAgICAgQEluamVjdChUVUlfSUNPTlNfUEFUSCkgcHJpdmF0ZSByZWFkb25seSBpY29uc1BhdGg6IFR1aVN0cmluZ0hhbmRsZXI8c3RyaW5nPixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUVUlfU0FOSVRJWkVSKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHR1aVNhbml0aXplcjogU2FuaXRpemVyIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChUdWlTdmdTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IHN2Z1NlcnZpY2U6IFR1aVN2Z1NlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoVHVpU3RhdGljUmVxdWVzdFNlcnZpY2UpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhdGljUmVxdWVzdFNlcnZpY2U6IFR1aVN0YXRpY1JlcXVlc3RTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KERvbVNhbml0aXplcikgcHJpdmF0ZSByZWFkb25seSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8RWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoVFVJX1NWR19TUkNfUFJPQ0VTU09SKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNyY1Byb2Nlc3NvcjogVHVpSW5qZWN0aW9uVG9rZW5UeXBlPFxuICAgICAgICAgICAgdHlwZW9mIFRVSV9TVkdfU1JDX1BST0NFU1NPUlxuICAgICAgICA+LFxuICAgICAgICBASW5qZWN0KFRVSV9TVkdfQ09OVEVOVF9QUk9DRVNTT1IpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGVudFByb2Nlc3NvcjogVHVpSW5qZWN0aW9uVG9rZW5UeXBlPFxuICAgICAgICAgICAgdHlwZW9mIFRVSV9TVkdfQ09OVEVOVF9QUk9DRVNTT1JcbiAgICAgICAgPixcbiAgICApIHtcbiAgICAgICAgdGhpcy5pbm5lckhUTUwkID0gdGhpcy5zcmMkLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0dWlJc1N0cmluZyh0aGlzLmljb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmlzRXh0ZXJuYWxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5nZXRFeHRlcm5hbEljb24odGhpcy5pY29uKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBvZih0aGlzLmdldFNhZmVIdG1sKHRoaXMuaWNvbikpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBvZih0aGlzLmljb24pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzdGFydFdpdGgoJycpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aVJlcXVpcmVkU2V0dGVyKClcbiAgICBzZXQgc3JjKHNyYzogU2FmZUh0bWwgfCBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5pY29uID0gdGhpcy5zcmNQcm9jZXNzb3Ioc3JjKTtcbiAgICAgICAgdGhpcy5zcmMkLm5leHQoKTtcbiAgICB9XG5cbiAgICBnZXQgc3JjKCk6IFNhZmVIdG1sIHwgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvbjtcbiAgICB9XG5cbiAgICBnZXQgdXNlKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0dWlJc1N0cmluZyh0aGlzLmljb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pY29uLmluY2x1ZGVzKCcuc3ZnIycpXG4gICAgICAgICAgICAgICAgPyB0aGlzLmljb25cbiAgICAgICAgICAgICAgICA6IHRoaXMucmVzb2x2ZU5hbWUodGhpcy5pY29uLCB0aGlzLmljb25zUGF0aCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgZ2V0IGlzSW5uZXJIVE1MKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXR1aUlzU3RyaW5nKHRoaXMuaWNvbikgfHxcbiAgICAgICAgICAgIHRoaXMuaXNTcmMgfHxcbiAgICAgICAgICAgIHRoaXMuaXNFeHRlcm5hbCB8fFxuICAgICAgICAgICAgKHRoaXMuaXNOYW1lICYmIHRoaXMuaXNTaGFkb3dET00pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNTaGFkb3dET00oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0dWlHZXREb2N1bWVudE9yU2hhZG93Um9vdCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkgIT09IHRoaXMuZG9jdW1lbnRSZWZcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1VzZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlLmluY2x1ZGVzKCcuc3ZnIycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGlzRXh0ZXJuYWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVXJsIHx8IHRoaXMuaXNDcm9zc0RvbWFpbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1VybCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aUlzU3RyaW5nKHRoaXMuaWNvbikgJiYgdGhpcy5pY29uLmVuZHNXaXRoKCcuc3ZnJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNTcmMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0dWlJc1N0cmluZyh0aGlzLmljb24pICYmIHR1aUlzUHJlc3VtZWRIVE1MU3RyaW5nKHRoaXMuaWNvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNOYW1lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNVcmwgJiYgIXRoaXMuaXNVc2UgJiYgIXRoaXMuaXNTcmM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNDcm9zc0RvbWFpbigpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qge3VzZSwgaXNVc2UsIHdpbmRvd1JlZn0gPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpc1VzZSAmJlxuICAgICAgICAgICAgdXNlLnN0YXJ0c1dpdGgoJ2h0dHAnKSAmJlxuICAgICAgICAgICAgISF3aW5kb3dSZWYub3JpZ2luICYmXG4gICAgICAgICAgICAhdXNlLnN0YXJ0c1dpdGgod2luZG93UmVmLm9yaWdpbilcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkVycm9yKG1lc3NhZ2U6IHN0cmluZyA9IE1JU1NJTkdfRVhURVJOQUxfSUNPTik6IHZvaWQge1xuICAgICAgICBjb25zdCB7aWNvbn0gPSB0aGlzO1xuICAgICAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudDxUdWlJY29uRXJyb3I+KFRVSV9JQ09OX0VSUk9SLCB7XG4gICAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgICAgICBpY29uOiBpY29uIGFzIHN0cmluZyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoZmFsc2UsIG1lc3NhZ2UsIGljb24pO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgcmVzb2x2ZU5hbWUobmFtZTogc3RyaW5nLCBpY29uc1BhdGg6IFR1aVN0cmluZ0hhbmRsZXI8c3RyaW5nPik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBpY29uc1BhdGgobmFtZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTYWZlSHRtbChzcmM6IHN0cmluZyk6IFNhZmVIdG1sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTcmMgPyB0aGlzLnNhbml0aXplKHNyYykgOiB0aGlzLnByb2Nlc3Moc3JjKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3Moc3JjOiBzdHJpbmcpOiBTYWZlSHRtbCB7XG4gICAgICAgIGNvbnN0IGljb24gPSB0aGlzLnN2Z1NlcnZpY2UuZ2V0T3JpZ2luYWwoc3JjKTtcblxuICAgICAgICBpZiAodGhpcy5pc05hbWUgJiYgIWljb24gJiYgISFzcmMpIHtcbiAgICAgICAgICAgIHRoaXMub25FcnJvcihVTkRFRklORURfTkFNRURfSUNPTik7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFbXB0eSBsaW5lIGZvciBpbm5lckhUTUwgd2hlbiBpY29uIGlzIHNob3duIHRocm91Z2ggVVNFIHRhZ1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNTaGFkb3dET00gfHwgIXRoaXMuaXNOYW1lID8gJycgOiB0aGlzLnNhbml0aXplKGljb24gfHwgJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2FuaXRpemUoc3JjOiBTYWZlSHRtbCB8IHN0cmluZyk6IFNhZmVIdG1sIHwgc3RyaW5nIHtcbiAgICAgICAgc3JjID0gdGhpcy5jb250ZW50UHJvY2Vzc29yKHNyYyk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudHVpU2FuaXRpemVyICYmIHR1aUlzU3RyaW5nKHNyYylcbiAgICAgICAgICAgID8gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoXG4gICAgICAgICAgICAgICAgICB0aGlzLnR1aVNhbml0aXplci5zYW5pdGl6ZShTZWN1cml0eUNvbnRleHQuSFRNTCwgc3JjKSB8fCAnJyxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBzcmM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRFeHRlcm5hbEljb24oc3JjOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNhZmVIdG1sPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IHNyYy5pbmNsdWRlcygnLnN2ZycpID8gc3JjIDogdGhpcy51c2U7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGljUmVxdWVzdFNlcnZpY2UucmVxdWVzdCh1cmwpLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IoRkFJTEVEX0VYVEVSTkFMX0lDT04pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKCcnKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+XG4gICAgICAgICAgICAgICAgdGhpcy5zYW5pdGl6ZShyZXNwb25zZS5yZXBsYWNlKCc8c3ZnJywgJzxzdmcgZm9jdXNhYmxlPVwiZmFsc2VcIicpKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqdHVpTGV0PVwiaW5uZXJIVE1MJCB8IGFzeW5jIGFzIGlubmVySFRNTFwiPlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJpc0lubmVySFRNTDsgZWxzZSB1c2VUZW1wbGF0ZVwiXG4gICAgICAgIGNsYXNzPVwidC1zcmNcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cImlubmVySFRNTFwiXG4gICAgPjwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjdXNlVGVtcGxhdGU+XG4gICAgICAgIDxzdmdcbiAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxuICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgIGhlaWdodD1cIjEwMCVcIlxuICAgICAgICAgICAgKGVycm9yKT1cIm9uRXJyb3IoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDx1c2UgW2F0dHIueGxpbms6aHJlZl09XCJ1c2VcIj48L3VzZT5cbiAgICAgICAgPC9zdmc+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zdmcvc3ZnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zdmcvc3ZnLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBRVIsZUFBZSxHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFXLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFDSCxTQUFTLEVBQ1QsMEJBQTBCLEVBQzFCLFdBQVcsRUFDWCxPQUFPLEVBQ1AsaUJBQWlCLEVBQ2pCLHVCQUF1QixHQUUxQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFeEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQWEsRUFBRSxFQUFFLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFckUsT0FBTyxFQUFDLGVBQWUsRUFBZ0IsTUFBTSxlQUFlLENBQUM7Ozs7OztBQUU3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QkFDL0IsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEOzBEQVF1RCxRQUFROzBCQUF2RCxNQUFNOzJCQUFDLFFBQVE7OEJBQzRCLE1BQU07MEJBQWpELE1BQU07MkJBQUMsTUFBTTs7MEJBQ2IsTUFBTTsyQkFBQyxlQUFlOzswQkFDdEIsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxhQUFhOzswQkFFcEIsTUFBTTsyQkFBQyxhQUFhOzswQkFDcEIsTUFBTTsyQkFBQyx1QkFBdUI7OzBCQUU5QixNQUFNOzJCQUFDLFlBQVk7OzBCQUNuQixNQUFNOzJCQUFDLFVBQVU7NENBa0JsQixHQUFHO3NCQUZOLEtBQUs7Z0JBcUZFLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2FuaXRpemVyLFxuICAgIFNlY3VyaXR5Q29udGV4dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RvbVNhbml0aXplciwgU2FmZUh0bWx9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtXSU5ET1d9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtcbiAgICB0dWlBc3NlcnQsXG4gICAgdHVpR2V0RG9jdW1lbnRPclNoYWRvd1Jvb3QsXG4gICAgdHVpSXNTdHJpbmcsXG4gICAgdHVpUHVyZSxcbiAgICB0dWlSZXF1aXJlZFNldHRlcixcbiAgICBUdWlTdGF0aWNSZXF1ZXN0U2VydmljZSxcbiAgICBUdWlTdHJpbmdIYW5kbGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VFVJX0lDT05fRVJST1J9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aUljb25FcnJvcn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1R1aVN2Z1NlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3NlcnZpY2VzJztcbmltcG9ydCB7VFVJX1NBTklUSVpFUn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7dHVpSXNQcmVzdW1lZEhUTUxTdHJpbmd9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZiwgUmVwbGF5U3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtUVUlfU1ZHX09QVElPTlMsIFR1aVN2Z09wdGlvbnN9IGZyb20gJy4vc3ZnLW9wdGlvbnMnO1xuXG5jb25zdCBVTkRFRklORURfTkFNRURfSUNPTiA9ICdBdHRlbXB0ZWQgdG8gdXNlIHVuZGVmaW5lZCBuYW1lZCBpY29uJztcbmNvbnN0IE1JU1NJTkdfRVhURVJOQUxfSUNPTiA9ICdFeHRlcm5hbCBpY29uIGlzIG1pc3Npbmcgb24gdGhlIGdpdmVuIFVSTCc7XG5jb25zdCBGQUlMRURfRVhURVJOQUxfSUNPTiA9ICdGYWlsZWQgdG8gbG9hZCBleHRlcm5hbCBTVkcnO1xuXG4vLyBUT0RPOiBDb25zaWRlciBtb3ZpbmcgdG8gQ0RLIGFsb25nIHdpdGggU3ZnU2VydmljZSBhbmQgU3ZnRGVmc0hvc3RDb21wb25lbnRcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLXN2ZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N2Zy50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdmcuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTdmdDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3JjJCA9IG5ldyBSZXBsYXlTdWJqZWN0PHZvaWQ+KDEpO1xuICAgIHByaXZhdGUgaWNvbjogU2FmZUh0bWwgfCBzdHJpbmcgPSAnJztcblxuICAgIHJlYWRvbmx5IGlubmVySFRNTCQ6IE9ic2VydmFibGU8U2FmZUh0bWw+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRSZWY6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KFdJTkRPVykgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dSZWY6IFdpbmRvdyxcbiAgICAgICAgQEluamVjdChUVUlfU1ZHX09QVElPTlMpIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogVHVpU3ZnT3B0aW9ucyxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUVUlfU0FOSVRJWkVSKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHR1aVNhbml0aXplcjogU2FuaXRpemVyIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChUdWlTdmdTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IHN2Z1NlcnZpY2U6IFR1aVN2Z1NlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoVHVpU3RhdGljUmVxdWVzdFNlcnZpY2UpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhdGljUmVxdWVzdFNlcnZpY2U6IFR1aVN0YXRpY1JlcXVlc3RTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KERvbVNhbml0aXplcikgcHJpdmF0ZSByZWFkb25seSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8RWxlbWVudD4sXG4gICAgKSB7XG4gICAgICAgIHRoaXMuaW5uZXJIVE1MJCA9IHRoaXMuc3JjJC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodHVpSXNTdHJpbmcodGhpcy5pY29uKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pc0V4dGVybmFsXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuZ2V0RXh0ZXJuYWxJY29uKHRoaXMuaWNvbilcbiAgICAgICAgICAgICAgICAgICAgICAgIDogb2YodGhpcy5nZXRTYWZlSHRtbCh0aGlzLmljb24pKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gb2YodGhpcy5pY29uKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc3RhcnRXaXRoKCcnKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlSZXF1aXJlZFNldHRlcigpXG4gICAgc2V0IHNyYyhzcmM6IFNhZmVIdG1sIHwgc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGRlcHJlY2F0ZWQgPSB0aGlzLm9wdGlvbnMuZGVwcmVjYXRlZChTdHJpbmcoc3JjKSk7XG5cbiAgICAgICAgdHVpQXNzZXJ0LmFzc2VydCghZGVwcmVjYXRlZCwgZGVwcmVjYXRlZCk7XG4gICAgICAgIHRoaXMuaWNvbiA9IHRoaXMub3B0aW9ucy5zcmNQcm9jZXNzb3Ioc3JjKTtcbiAgICAgICAgdGhpcy5zcmMkLm5leHQoKTtcbiAgICB9XG5cbiAgICBnZXQgc3JjKCk6IFNhZmVIdG1sIHwgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvbjtcbiAgICB9XG5cbiAgICBnZXQgdXNlKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0dWlJc1N0cmluZyh0aGlzLmljb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pY29uLmluY2x1ZGVzKCcuc3ZnIycpXG4gICAgICAgICAgICAgICAgPyB0aGlzLmljb25cbiAgICAgICAgICAgICAgICA6IHRoaXMucmVzb2x2ZU5hbWUodGhpcy5pY29uLCB0aGlzLm9wdGlvbnMucGF0aCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgZ2V0IGlzSW5uZXJIVE1MKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXR1aUlzU3RyaW5nKHRoaXMuaWNvbikgfHxcbiAgICAgICAgICAgIHRoaXMuaXNTcmMgfHxcbiAgICAgICAgICAgIHRoaXMuaXNFeHRlcm5hbCB8fFxuICAgICAgICAgICAgKHRoaXMuaXNOYW1lICYmIHRoaXMuaXNTaGFkb3dET00pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNTaGFkb3dET00oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0dWlHZXREb2N1bWVudE9yU2hhZG93Um9vdCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkgIT09IHRoaXMuZG9jdW1lbnRSZWZcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1VzZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlLmluY2x1ZGVzKCcuc3ZnIycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGlzRXh0ZXJuYWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVXJsIHx8IHRoaXMuaXNDcm9zc0RvbWFpbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1VybCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aUlzU3RyaW5nKHRoaXMuaWNvbikgJiYgdGhpcy5pY29uLmVuZHNXaXRoKCcuc3ZnJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNTcmMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0dWlJc1N0cmluZyh0aGlzLmljb24pICYmIHR1aUlzUHJlc3VtZWRIVE1MU3RyaW5nKHRoaXMuaWNvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNOYW1lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNVcmwgJiYgIXRoaXMuaXNVc2UgJiYgIXRoaXMuaXNTcmM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNDcm9zc0RvbWFpbigpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qge3VzZSwgaXNVc2UsIHdpbmRvd1JlZn0gPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpc1VzZSAmJlxuICAgICAgICAgICAgdXNlLnN0YXJ0c1dpdGgoJ2h0dHAnKSAmJlxuICAgICAgICAgICAgISF3aW5kb3dSZWYub3JpZ2luICYmXG4gICAgICAgICAgICAhdXNlLnN0YXJ0c1dpdGgod2luZG93UmVmLm9yaWdpbilcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkVycm9yKG1lc3NhZ2U6IHN0cmluZyA9IE1JU1NJTkdfRVhURVJOQUxfSUNPTik6IHZvaWQge1xuICAgICAgICBjb25zdCB7aWNvbn0gPSB0aGlzO1xuICAgICAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudDxUdWlJY29uRXJyb3I+KFRVSV9JQ09OX0VSUk9SLCB7XG4gICAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgICAgICBpY29uOiBpY29uIGFzIHN0cmluZyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoZmFsc2UsIG1lc3NhZ2UsIGljb24pO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgcmVzb2x2ZU5hbWUobmFtZTogc3RyaW5nLCBpY29uc1BhdGg6IFR1aVN0cmluZ0hhbmRsZXI8c3RyaW5nPik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBpY29uc1BhdGgobmFtZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTYWZlSHRtbChzcmM6IHN0cmluZyk6IFNhZmVIdG1sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTcmMgPyB0aGlzLnNhbml0aXplKHNyYykgOiB0aGlzLnByb2Nlc3Moc3JjKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3Moc3JjOiBzdHJpbmcpOiBTYWZlSHRtbCB7XG4gICAgICAgIGNvbnN0IGljb24gPSB0aGlzLnN2Z1NlcnZpY2UuZ2V0T3JpZ2luYWwoc3JjKTtcblxuICAgICAgICBpZiAodGhpcy5pc05hbWUgJiYgIWljb24gJiYgISFzcmMpIHtcbiAgICAgICAgICAgIHRoaXMub25FcnJvcihVTkRFRklORURfTkFNRURfSUNPTik7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFbXB0eSBsaW5lIGZvciBpbm5lckhUTUwgd2hlbiBpY29uIGlzIHNob3duIHRocm91Z2ggVVNFIHRhZ1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNTaGFkb3dET00gfHwgIXRoaXMuaXNOYW1lID8gJycgOiB0aGlzLnNhbml0aXplKGljb24gfHwgJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2FuaXRpemUoc3JjOiBTYWZlSHRtbCB8IHN0cmluZyk6IFNhZmVIdG1sIHwgc3RyaW5nIHtcbiAgICAgICAgc3JjID0gdGhpcy5vcHRpb25zLmNvbnRlbnRQcm9jZXNzb3Ioc3JjKTtcblxuICAgICAgICByZXR1cm4gdGhpcy50dWlTYW5pdGl6ZXIgJiYgdHVpSXNTdHJpbmcoc3JjKVxuICAgICAgICAgICAgPyB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChcbiAgICAgICAgICAgICAgICAgIHRoaXMudHVpU2FuaXRpemVyLnNhbml0aXplKFNlY3VyaXR5Q29udGV4dC5IVE1MLCBzcmMpIHx8ICcnLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IHNyYztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEV4dGVybmFsSWNvbihzcmM6IHN0cmluZyk6IE9ic2VydmFibGU8U2FmZUh0bWw+IHtcbiAgICAgICAgY29uc3QgdXJsID0gc3JjLmluY2x1ZGVzKCcuc3ZnJykgPyBzcmMgOiB0aGlzLnVzZTtcblxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0aWNSZXF1ZXN0U2VydmljZS5yZXF1ZXN0KHVybCkucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25FcnJvcihGQUlMRURfRVhURVJOQUxfSUNPTik7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoJycpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnNhbml0aXplKHJlc3BvbnNlLnJlcGxhY2UoJzxzdmcnLCAnPHN2ZyBmb2N1c2FibGU9XCJmYWxzZVwiJykpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICp0dWlMZXQ9XCJpbm5lckhUTUwkIHwgYXN5bmMgYXMgaW5uZXJIVE1MXCI+XG4gICAgPGRpdlxuICAgICAgICAqbmdJZj1cImlzSW5uZXJIVE1MOyBlbHNlIHVzZVRlbXBsYXRlXCJcbiAgICAgICAgY2xhc3M9XCJ0LXNyY1wiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiaW5uZXJIVE1MXCJcbiAgICA+PC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlICN1c2VUZW1wbGF0ZT5cbiAgICAgICAgPHN2Z1xuICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiXG4gICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgaGVpZ2h0PVwiMTAwJVwiXG4gICAgICAgICAgICBjbGFzcz1cInQtc3ZnXCJcbiAgICAgICAgICAgIChlcnJvcik9XCJvbkVycm9yKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8dXNlIFthdHRyLnhsaW5rOmhyZWZdPVwidXNlXCI+PC91c2U+XG4gICAgICAgIDwvc3ZnPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -1,24 +1,22 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { ChangeDetectionStrategy, Component, HostBinding, HostListener, Inject, Input, Self, ViewChild, } from '@angular/core';
|
|
3
3
|
import { TUI_IS_MOBILE, tuiDefaultProp, TuiDestroyService } from '@taiga-ui/cdk';
|
|
4
|
-
import {
|
|
5
|
-
import { TUI_HINT_OPTIONS, TuiHintOptionsDirective, } from '@taiga-ui/core/directives';
|
|
4
|
+
import { TUI_HINT_OPTIONS, TuiHintHoverDirective, TuiHintOptionsDirective, } from '@taiga-ui/core/directives';
|
|
6
5
|
import { MODE_PROVIDER } from '@taiga-ui/core/providers';
|
|
7
6
|
import { TUI_MODE } from '@taiga-ui/core/tokens';
|
|
8
|
-
import { EMPTY } from 'rxjs';
|
|
9
7
|
import { takeUntil } from 'rxjs/operators';
|
|
10
8
|
import * as i0 from "@angular/core";
|
|
11
9
|
import * as i1 from "@taiga-ui/core/components/svg";
|
|
12
|
-
import * as i2 from "@taiga-ui/core/directives/
|
|
13
|
-
import * as i3 from "@
|
|
14
|
-
import * as i4 from "@
|
|
15
|
-
import * as i5 from "
|
|
10
|
+
import * as i2 from "@taiga-ui/core/directives/wrapper";
|
|
11
|
+
import * as i3 from "@taiga-ui/core/directives/hint";
|
|
12
|
+
import * as i4 from "@tinkoff/ng-polymorpheus";
|
|
13
|
+
import * as i5 from "@angular/common";
|
|
14
|
+
import * as i6 from "rxjs";
|
|
16
15
|
export class TuiTooltipComponent extends TuiHintOptionsDirective {
|
|
17
16
|
constructor(destroy$, mode$, options, isMobile) {
|
|
18
17
|
super(options);
|
|
19
18
|
this.isMobile = isMobile;
|
|
20
19
|
this.mode = null;
|
|
21
|
-
this.driver$ = EMPTY;
|
|
22
20
|
this.describeId = '';
|
|
23
21
|
mode$.pipe(takeUntil(destroy$)).subscribe(mode => {
|
|
24
22
|
this.mode = mode;
|
|
@@ -28,14 +26,16 @@ export class TuiTooltipComponent extends TuiHintOptionsDirective {
|
|
|
28
26
|
return this.appearance || this.mode || '';
|
|
29
27
|
}
|
|
30
28
|
stopOnMobile(event) {
|
|
29
|
+
var _a;
|
|
31
30
|
if (this.isMobile) {
|
|
32
31
|
event.preventDefault();
|
|
33
32
|
event.stopPropagation();
|
|
34
33
|
}
|
|
34
|
+
(_a = this.driver$) === null || _a === void 0 ? void 0 : _a.toggle(true);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
TuiTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTooltipComponent, deps: [{ token: TuiDestroyService, self: true }, { token: TUI_MODE }, { token: TUI_HINT_OPTIONS }, { token: TUI_IS_MOBILE }], target: i0.ɵɵFactoryTarget.Component });
|
|
38
|
-
TuiTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiTooltipComponent, selector: "tui-tooltip", inputs: { content: "content", direction: "direction", appearance: "appearance", showDelay: "showDelay", hideDelay: "hideDelay", describeId: "describeId" }, host: { listeners: { "mousedown": "stopOnMobile($event)", "click": "stopOnMobile($event)" }, properties: { "attr.data-appearance": "this.computedAppearance" } }, providers: [TuiDestroyService, MODE_PROVIDER], viewQueries: [{ propertyName: "driver$", first: true, predicate:
|
|
38
|
+
TuiTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiTooltipComponent, selector: "tui-tooltip", inputs: { content: "content", direction: "direction", appearance: "appearance", showDelay: "showDelay", hideDelay: "hideDelay", describeId: "describeId" }, host: { listeners: { "mousedown": "stopOnMobile($event)", "click": "stopOnMobile($event)" }, properties: { "attr.data-appearance": "this.computedAppearance" } }, providers: [TuiDestroyService, MODE_PROVIDER], viewQueries: [{ propertyName: "driver$", first: true, predicate: TuiHintHoverDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<span\n #driver=\"tuiHintHover\"\n automation-id=\"tui-tooltip__icon\"\n tuiWrapper\n appearance=\"icon\"\n class=\"t-tooltip-icon\"\n [hover]=\"(driver | async) || null\"\n [tuiHint]=\"content\"\n [tuiHintDescribe]=\"describeId\"\n [tuiHintDirection]=\"direction\"\n [tuiHintShowDelay]=\"showDelay\"\n [tuiHintHideDelay]=\"hideDelay\"\n [tuiHintAppearance]=\"computedAppearance\"\n>\n <tui-svg\n *polymorpheusOutlet=\"icon as src\"\n [src]=\"src\"\n ></tui-svg>\n</span>\n", styles: [":host{transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:inline-block;width:1.5rem;height:1.5rem;vertical-align:middle;font-size:0;line-height:0;cursor:pointer;color:var(--tui-text-01)}:host[data-appearance=error]{color:var(--tui-error-fill)}.t-tooltip-icon{display:inline-block;width:100%;height:100%;color:inherit}\n"], components: [{ type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i2.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { type: i3.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { type: i3.TuiHintDriverDirective, selector: "[tuiHint]" }, { type: i3.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { type: i3.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { type: i3.TuiHintDescribeDirective, selector: "[tuiHintDescribe]", inputs: ["tuiHintDescribe"] }, { type: i4.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
39
39
|
__decorate([
|
|
40
40
|
tuiDefaultProp()
|
|
41
41
|
], TuiTooltipComponent.prototype, "describeId", void 0);
|
|
@@ -49,12 +49,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
49
49
|
providers: [TuiDestroyService, MODE_PROVIDER],
|
|
50
50
|
inputs: ['content', 'direction', 'appearance', 'showDelay', 'hideDelay'],
|
|
51
51
|
}]
|
|
52
|
-
}], ctorParameters: function () { return [{ type:
|
|
52
|
+
}], ctorParameters: function () { return [{ type: i6.Observable, decorators: [{
|
|
53
53
|
type: Self
|
|
54
54
|
}, {
|
|
55
55
|
type: Inject,
|
|
56
56
|
args: [TuiDestroyService]
|
|
57
|
-
}] }, { type:
|
|
57
|
+
}] }, { type: i6.Observable, decorators: [{
|
|
58
58
|
type: Inject,
|
|
59
59
|
args: [TUI_MODE]
|
|
60
60
|
}] }, { type: undefined, decorators: [{
|
|
@@ -65,7 +65,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
65
65
|
args: [TUI_IS_MOBILE]
|
|
66
66
|
}] }]; }, propDecorators: { driver$: [{
|
|
67
67
|
type: ViewChild,
|
|
68
|
-
args: [
|
|
68
|
+
args: [TuiHintHoverDirective]
|
|
69
69
|
}], describeId: [{
|
|
70
70
|
type: Input
|
|
71
71
|
}], computedAppearance: [{
|
|
@@ -78,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
78
78
|
type: HostListener,
|
|
79
79
|
args: ['click', ['$event']]
|
|
80
80
|
}] } });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLElBQUksRUFDSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGFBQWEsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUNILGdCQUFnQixFQUNoQixxQkFBcUIsRUFFckIsdUJBQXVCLEdBQzFCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUcvQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBVXpDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSx1QkFBdUI7SUFVNUQsWUFDdUMsUUFBNkIsRUFDOUMsS0FBdUMsRUFDL0IsT0FBdUIsRUFDVCxRQUFpQjtRQUV6RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFGeUIsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQWJyRCxTQUFJLEdBQXlCLElBQUksQ0FBQztRQU8xQyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBVVosS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsSUFDSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFJRCxZQUFZLENBQUMsS0FBaUI7O1FBQzFCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDM0I7UUFFRCxNQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDOztpSEFyQ1EsbUJBQW1CLGtCQVdSLGlCQUFpQix5QkFDekIsUUFBUSxhQUNSLGdCQUFnQixhQUNoQixhQUFhO3FHQWRoQixtQkFBbUIsb1dBSGpCLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxDQUFDLG1FQU1sQyxxQkFBcUIsdUVDbENwQyxtaEJBbUJBO0FEb0JJO0lBREMsY0FBYyxFQUFFO3VEQUNEOzRGQVJQLG1CQUFtQjtrQkFSL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsV0FBVyxFQUFFLHlCQUF5QjtvQkFDdEMsU0FBUyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ25DLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLENBQUM7b0JBQzdDLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUM7aUJBQzNFOzswQkFZUSxJQUFJOzswQkFBSSxNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ2hDLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUN2QixNQUFNOzJCQUFDLGFBQWE7NENBVmhCLE9BQU87c0JBRGYsU0FBUzt1QkFBQyxxQkFBcUI7Z0JBS2hDLFVBQVU7c0JBRlQsS0FBSztnQkFrQkYsa0JBQWtCO3NCQURyQixXQUFXO3VCQUFDLHNCQUFzQjtnQkFPbkMsWUFBWTtzQkFGWCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3BDLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RVSV9JU19NT0JJTEUsIHR1aURlZmF1bHRQcm9wLCBUdWlEZXN0cm95U2VydmljZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFRVSV9ISU5UX09QVElPTlMsXG4gICAgVHVpSGludEhvdmVyRGlyZWN0aXZlLFxuICAgIFR1aUhpbnRPcHRpb25zLFxuICAgIFR1aUhpbnRPcHRpb25zRGlyZWN0aXZlLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzJztcbmltcG9ydCB7TU9ERV9QUk9WSURFUn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvcHJvdmlkZXJzJztcbmltcG9ydCB7VFVJX01PREV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge1R1aUJyaWdodG5lc3N9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS10b29sdGlwJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG9vbHRpcC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90b29sdGlwLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtUdWlEZXN0cm95U2VydmljZSwgTU9ERV9QUk9WSURFUl0sXG4gICAgaW5wdXRzOiBbJ2NvbnRlbnQnLCAnZGlyZWN0aW9uJywgJ2FwcGVhcmFuY2UnLCAnc2hvd0RlbGF5JywgJ2hpZGVEZWxheSddLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlUb29sdGlwQ29tcG9uZW50IGV4dGVuZHMgVHVpSGludE9wdGlvbnNEaXJlY3RpdmUge1xuICAgIHByaXZhdGUgbW9kZTogVHVpQnJpZ2h0bmVzcyB8IG51bGwgPSBudWxsO1xuXG4gICAgQFZpZXdDaGlsZChUdWlIaW50SG92ZXJEaXJlY3RpdmUpXG4gICAgcmVhZG9ubHkgZHJpdmVyJD86IFR1aUhpbnRIb3ZlckRpcmVjdGl2ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkZXNjcmliZUlkID0gJyc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQFNlbGYoKSBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKSBkZXN0cm95JDogT2JzZXJ2YWJsZTx1bmtub3duPixcbiAgICAgICAgQEluamVjdChUVUlfTU9ERSkgbW9kZSQ6IE9ic2VydmFibGU8VHVpQnJpZ2h0bmVzcyB8IG51bGw+LFxuICAgICAgICBASW5qZWN0KFRVSV9ISU5UX09QVElPTlMpIG9wdGlvbnM6IFR1aUhpbnRPcHRpb25zLFxuICAgICAgICBASW5qZWN0KFRVSV9JU19NT0JJTEUpIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGU6IGJvb2xlYW4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuXG4gICAgICAgIG1vZGUkLnBpcGUodGFrZVVudGlsKGRlc3Ryb3kkKSkuc3Vic2NyaWJlKG1vZGUgPT4ge1xuICAgICAgICAgICAgdGhpcy5tb2RlID0gbW9kZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtYXBwZWFyYW5jZScpXG4gICAgZ2V0IGNvbXB1dGVkQXBwZWFyYW5jZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hcHBlYXJhbmNlIHx8IHRoaXMubW9kZSB8fCAnJztcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBzdG9wT25Nb2JpbGUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZHJpdmVyJD8udG9nZ2xlKHRydWUpO1xuICAgIH1cbn1cbiIsIjxzcGFuXG4gICAgI2RyaXZlcj1cInR1aUhpbnRIb3ZlclwiXG4gICAgYXV0b21hdGlvbi1pZD1cInR1aS10b29sdGlwX19pY29uXCJcbiAgICB0dWlXcmFwcGVyXG4gICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgIGNsYXNzPVwidC10b29sdGlwLWljb25cIlxuICAgIFtob3Zlcl09XCIoZHJpdmVyIHwgYXN5bmMpIHx8IG51bGxcIlxuICAgIFt0dWlIaW50XT1cImNvbnRlbnRcIlxuICAgIFt0dWlIaW50RGVzY3JpYmVdPVwiZGVzY3JpYmVJZFwiXG4gICAgW3R1aUhpbnREaXJlY3Rpb25dPVwiZGlyZWN0aW9uXCJcbiAgICBbdHVpSGludFNob3dEZWxheV09XCJzaG93RGVsYXlcIlxuICAgIFt0dWlIaW50SGlkZURlbGF5XT1cImhpZGVEZWxheVwiXG4gICAgW3R1aUhpbnRBcHBlYXJhbmNlXT1cImNvbXB1dGVkQXBwZWFyYW5jZVwiXG4+XG4gICAgPHR1aS1zdmdcbiAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cImljb24gYXMgc3JjXCJcbiAgICAgICAgW3NyY109XCJzcmNcIlxuICAgID48L3R1aS1zdmc+XG48L3NwYW4+XG4iXX0=
|
|
@@ -2,20 +2,37 @@ import { CommonModule } from '@angular/common';
|
|
|
2
2
|
import { NgModule } from '@angular/core';
|
|
3
3
|
import { TuiSvgModule } from '@taiga-ui/core/components/svg';
|
|
4
4
|
import { TuiHintModule } from '@taiga-ui/core/directives/hint';
|
|
5
|
+
import { TuiWrapperModule } from '@taiga-ui/core/directives/wrapper';
|
|
5
6
|
import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
|
|
6
7
|
import { TuiTooltipComponent } from './tooltip.component';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
export class TuiTooltipModule {
|
|
9
10
|
}
|
|
10
11
|
TuiTooltipModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
-
TuiTooltipModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTooltipModule, declarations: [TuiTooltipComponent], imports: [CommonModule,
|
|
12
|
-
|
|
12
|
+
TuiTooltipModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTooltipModule, declarations: [TuiTooltipComponent], imports: [CommonModule,
|
|
13
|
+
TuiWrapperModule,
|
|
14
|
+
TuiSvgModule,
|
|
15
|
+
TuiHintModule,
|
|
16
|
+
PolymorpheusModule], exports: [TuiTooltipComponent] });
|
|
17
|
+
TuiTooltipModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTooltipModule, imports: [[
|
|
18
|
+
CommonModule,
|
|
19
|
+
TuiWrapperModule,
|
|
20
|
+
TuiSvgModule,
|
|
21
|
+
TuiHintModule,
|
|
22
|
+
PolymorpheusModule,
|
|
23
|
+
]] });
|
|
13
24
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTooltipModule, decorators: [{
|
|
14
25
|
type: NgModule,
|
|
15
26
|
args: [{
|
|
16
|
-
imports: [
|
|
27
|
+
imports: [
|
|
28
|
+
CommonModule,
|
|
29
|
+
TuiWrapperModule,
|
|
30
|
+
TuiSvgModule,
|
|
31
|
+
TuiHintModule,
|
|
32
|
+
PolymorpheusModule,
|
|
33
|
+
],
|
|
17
34
|
declarations: [TuiTooltipComponent],
|
|
18
35
|
exports: [TuiTooltipComponent],
|
|
19
36
|
}]
|
|
20
37
|
}] });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRTVELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDOztBQWF4RCxNQUFNLE9BQU8sZ0JBQWdCOzs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBSFYsbUJBQW1CLGFBTjlCLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsWUFBWTtRQUNaLGFBQWE7UUFDYixrQkFBa0IsYUFHWixtQkFBbUI7K0dBRXBCLGdCQUFnQixZQVZoQjtZQUNMLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLGFBQWE7WUFDYixrQkFBa0I7U0FDckI7NEZBSVEsZ0JBQWdCO2tCQVg1QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGtCQUFrQjtxQkFDckI7b0JBQ0QsWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1R1aVN2Z01vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9zdmcnO1xuaW1wb3J0IHtUdWlIaW50TW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2hpbnQnO1xuaW1wb3J0IHtUdWlXcmFwcGVyTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL3dyYXBwZXInO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNNb2R1bGV9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5cbmltcG9ydCB7VHVpVG9vbHRpcENvbXBvbmVudH0gZnJvbSAnLi90b29sdGlwLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFR1aVdyYXBwZXJNb2R1bGUsXG4gICAgICAgIFR1aVN2Z01vZHVsZSxcbiAgICAgICAgVHVpSGludE1vZHVsZSxcbiAgICAgICAgUG9seW1vcnBoZXVzTW9kdWxlLFxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbVHVpVG9vbHRpcENvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW1R1aVRvb2x0aXBDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlUb29sdGlwTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
/** Default values for hint options */
|
|
3
|
+
export const TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS = {
|
|
4
|
+
showDelay: 200,
|
|
5
|
+
hideDelay: 500,
|
|
6
|
+
};
|
|
7
|
+
export const TUI_DROPDOWN_HOVER_OPTIONS = new InjectionToken('[TUI_DROPDOWN_HOVER_OPTIONS] Default parameters for dropdown hover directive', {
|
|
8
|
+
factory: () => TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS,
|
|
9
|
+
});
|
|
10
|
+
export const tuiDropdownHoverOptionsProvider = (options) => ({
|
|
11
|
+
provide: TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS,
|
|
12
|
+
useValue: Object.assign(Object.assign({}, TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS), options),
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taG92ZXItb3B0aW9ucy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvZHJvcGRvd24vZHJvcGRvd24taG92ZXItb3B0aW9ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFPNUQsc0NBQXNDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUE0QjtJQUN2RSxTQUFTLEVBQUUsR0FBRztJQUNkLFNBQVMsRUFBRSxHQUFHO0NBQ2pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLGNBQWMsQ0FDeEQsOEVBQThFLEVBQzlFO0lBQ0ksT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLGtDQUFrQztDQUNwRCxDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FFdkIsQ0FBQyxPQUF5QyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLE9BQU8sRUFBRSxrQ0FBa0M7SUFDM0MsUUFBUSxrQ0FBTSxrQ0FBa0MsR0FBSyxPQUFPLENBQUM7Q0FDaEUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbiwgVmFsdWVQcm92aWRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVpRHJvcGRvd25Ib3Zlck9wdGlvbnMge1xuICAgIHJlYWRvbmx5IHNob3dEZWxheTogbnVtYmVyO1xuICAgIHJlYWRvbmx5IGhpZGVEZWxheTogbnVtYmVyO1xufVxuXG4vKiogRGVmYXVsdCB2YWx1ZXMgZm9yIGhpbnQgb3B0aW9ucyAqL1xuZXhwb3J0IGNvbnN0IFRVSV9EUk9QRE9XTl9IT1ZFUl9ERUZBVUxUX09QVElPTlM6IFR1aURyb3Bkb3duSG92ZXJPcHRpb25zID0ge1xuICAgIHNob3dEZWxheTogMjAwLFxuICAgIGhpZGVEZWxheTogNTAwLFxufTtcblxuZXhwb3J0IGNvbnN0IFRVSV9EUk9QRE9XTl9IT1ZFUl9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPFR1aURyb3Bkb3duSG92ZXJPcHRpb25zPihcbiAgICAnW1RVSV9EUk9QRE9XTl9IT1ZFUl9PUFRJT05TXSBEZWZhdWx0IHBhcmFtZXRlcnMgZm9yIGRyb3Bkb3duIGhvdmVyIGRpcmVjdGl2ZScsXG4gICAge1xuICAgICAgICBmYWN0b3J5OiAoKSA9PiBUVUlfRFJPUERPV05fSE9WRVJfREVGQVVMVF9PUFRJT05TLFxuICAgIH0sXG4pO1xuXG5leHBvcnQgY29uc3QgdHVpRHJvcGRvd25Ib3Zlck9wdGlvbnNQcm92aWRlcjogKFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8VHVpRHJvcGRvd25Ib3Zlck9wdGlvbnM+LFxuKSA9PiBWYWx1ZVByb3ZpZGVyID0gKG9wdGlvbnM6IFBhcnRpYWw8VHVpRHJvcGRvd25Ib3Zlck9wdGlvbnM+KSA9PiAoe1xuICAgIHByb3ZpZGU6IFRVSV9EUk9QRE9XTl9IT1ZFUl9ERUZBVUxUX09QVElPTlMsXG4gICAgdXNlVmFsdWU6IHsuLi5UVUlfRFJPUERPV05fSE9WRVJfREVGQVVMVF9PUFRJT05TLCAuLi5vcHRpb25zfSxcbn0pO1xuIl19
|
|
@@ -4,25 +4,27 @@ import { tuiDefaultProp, TuiHoveredService } from '@taiga-ui/cdk';
|
|
|
4
4
|
import { tuiAsDriver, TuiDriver } from '@taiga-ui/core/abstract';
|
|
5
5
|
import { merge, of, Subject } from 'rxjs';
|
|
6
6
|
import { delay, share, switchMap, tap } from 'rxjs/operators';
|
|
7
|
+
import { TUI_DROPDOWN_HOVER_OPTIONS, } from './dropdown-hover-options.directive';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
import * as i1 from "rxjs";
|
|
9
10
|
export class TuiDropdownHoverDirective extends TuiDriver {
|
|
10
|
-
constructor(hovered
|
|
11
|
+
constructor(hovered$, options) {
|
|
11
12
|
super(subscriber => this.stream$.subscribe(subscriber));
|
|
12
13
|
this.hovered$ = hovered$;
|
|
14
|
+
this.options = options;
|
|
13
15
|
this.toggle$ = new Subject();
|
|
14
16
|
this.stream$ = merge(this.toggle$, this.hovered$).pipe(switchMap(visible => of(visible).pipe(delay(visible ? this.showDelay : this.hideDelay))), tap(visible => {
|
|
15
17
|
this.hovered = visible;
|
|
16
18
|
}), share());
|
|
17
|
-
this.showDelay =
|
|
18
|
-
this.hideDelay =
|
|
19
|
+
this.showDelay = this.options.showDelay;
|
|
20
|
+
this.hideDelay = this.options.hideDelay;
|
|
19
21
|
this.hovered = false;
|
|
20
22
|
}
|
|
21
23
|
toggle(visible) {
|
|
22
24
|
this.toggle$.next(visible);
|
|
23
25
|
}
|
|
24
26
|
}
|
|
25
|
-
TuiDropdownHoverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDropdownHoverDirective, deps: [{ token: TuiHoveredService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
27
|
+
TuiDropdownHoverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDropdownHoverDirective, deps: [{ token: TuiHoveredService }, { token: TUI_DROPDOWN_HOVER_OPTIONS }], target: i0.ɵɵFactoryTarget.Directive });
|
|
26
28
|
TuiDropdownHoverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiDropdownHoverDirective, selector: "[tuiDropdownHover]:not(ng-container)", inputs: { showDelay: ["tuiDropdownShowDelay", "showDelay"], hideDelay: ["tuiDropdownHideDelay", "hideDelay"] }, providers: [tuiAsDriver(TuiDropdownHoverDirective), TuiHoveredService], usesInheritance: true, ngImport: i0 });
|
|
27
29
|
__decorate([
|
|
28
30
|
tuiDefaultProp()
|
|
@@ -39,6 +41,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
39
41
|
}], ctorParameters: function () { return [{ type: i1.Observable, decorators: [{
|
|
40
42
|
type: Inject,
|
|
41
43
|
args: [TuiHoveredService]
|
|
44
|
+
}] }, { type: undefined, decorators: [{
|
|
45
|
+
type: Inject,
|
|
46
|
+
args: [TUI_DROPDOWN_HOVER_OPTIONS]
|
|
42
47
|
}] }]; }, propDecorators: { showDelay: [{
|
|
43
48
|
type: Input,
|
|
44
49
|
args: ['tuiDropdownShowDelay']
|
|
@@ -46,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
46
51
|
type: Input,
|
|
47
52
|
args: ['tuiDropdownHideDelay']
|
|
48
53
|
}] } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taG92ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9kaXJlY3RpdmVzL2Ryb3Bkb3duL2Ryb3Bkb3duLWhvdmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxjQUFjLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsS0FBSyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTVELE9BQU8sRUFDSCwwQkFBMEIsR0FFN0IsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBTTVDLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxTQUFTO0lBc0JwRCxZQUNnRCxRQUE2QixFQUV4RCxPQUFnQztRQUVqRCxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBSlosYUFBUSxHQUFSLFFBQVEsQ0FBcUI7UUFFeEQsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUF4QnBDLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ2pDLFlBQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUM5RCxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDaEIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDckUsRUFDRCxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUMzQixDQUFDLENBQUMsRUFDRixLQUFLLEVBQUUsQ0FDVixDQUFDO1FBSUYsY0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBSW5DLGNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUVuQyxZQUFPLEdBQUcsS0FBSyxDQUFDO0lBUWhCLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBZ0I7UUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7dUhBaENRLHlCQUF5QixrQkF1QnRCLGlCQUFpQixhQUNqQiwwQkFBMEI7MkdBeEI3Qix5QkFBeUIsK0tBRnZCLENBQUMsV0FBVyxDQUFDLHlCQUF5QixDQUFDLEVBQUUsaUJBQWlCLENBQUM7QUFnQnRFO0lBREMsY0FBYyxFQUFFOzREQUNrQjtBQUluQztJQURDLGNBQWMsRUFBRTs0REFDa0I7NEZBbEIxQix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNDQUFzQztvQkFDaEQsU0FBUyxFQUFFLENBQUMsV0FBVywyQkFBMkIsRUFBRSxpQkFBaUIsQ0FBQztpQkFDekU7OzBCQXdCUSxNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ3hCLE1BQU07MkJBQUMsMEJBQTBCOzRDQVZ0QyxTQUFTO3NCQUZSLEtBQUs7dUJBQUMsc0JBQXNCO2dCQU03QixTQUFTO3NCQUZSLEtBQUs7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlEZWZhdWx0UHJvcCwgVHVpSG92ZXJlZFNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHt0dWlBc0RyaXZlciwgVHVpRHJpdmVyfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9hYnN0cmFjdCc7XG5pbXBvcnQge21lcmdlLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlbGF5LCBzaGFyZSwgc3dpdGNoTWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBUVUlfRFJPUERPV05fSE9WRVJfT1BUSU9OUyxcbiAgICBUdWlEcm9wZG93bkhvdmVyT3B0aW9ucyxcbn0gZnJvbSAnLi9kcm9wZG93bi1ob3Zlci1vcHRpb25zLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3R1aURyb3Bkb3duSG92ZXJdOm5vdChuZy1jb250YWluZXIpJyxcbiAgICBwcm92aWRlcnM6IFt0dWlBc0RyaXZlcihUdWlEcm9wZG93bkhvdmVyRGlyZWN0aXZlKSwgVHVpSG92ZXJlZFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEcm9wZG93bkhvdmVyRGlyZWN0aXZlIGV4dGVuZHMgVHVpRHJpdmVyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvZ2dsZSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RyZWFtJCA9IG1lcmdlKHRoaXMudG9nZ2xlJCwgdGhpcy5ob3ZlcmVkJCkucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKHZpc2libGUgPT5cbiAgICAgICAgICAgIG9mKHZpc2libGUpLnBpcGUoZGVsYXkodmlzaWJsZSA/IHRoaXMuc2hvd0RlbGF5IDogdGhpcy5oaWRlRGVsYXkpKSxcbiAgICAgICAgKSxcbiAgICAgICAgdGFwKHZpc2libGUgPT4ge1xuICAgICAgICAgICAgdGhpcy5ob3ZlcmVkID0gdmlzaWJsZTtcbiAgICAgICAgfSksXG4gICAgICAgIHNoYXJlKCksXG4gICAgKTtcblxuICAgIEBJbnB1dCgndHVpRHJvcGRvd25TaG93RGVsYXknKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2hvd0RlbGF5ID0gdGhpcy5vcHRpb25zLnNob3dEZWxheTtcblxuICAgIEBJbnB1dCgndHVpRHJvcGRvd25IaWRlRGVsYXknKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaGlkZURlbGF5ID0gdGhpcy5vcHRpb25zLmhpZGVEZWxheTtcblxuICAgIGhvdmVyZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFR1aUhvdmVyZWRTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IGhvdmVyZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+LFxuICAgICAgICBASW5qZWN0KFRVSV9EUk9QRE9XTl9IT1ZFUl9PUFRJT05TKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFR1aURyb3Bkb3duSG92ZXJPcHRpb25zLFxuICAgICkge1xuICAgICAgICBzdXBlcihzdWJzY3JpYmVyID0+IHRoaXMuc3RyZWFtJC5zdWJzY3JpYmUoc3Vic2NyaWJlcikpO1xuICAgIH1cblxuICAgIHRvZ2dsZSh2aXNpYmxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudG9nZ2xlJC5uZXh0KHZpc2libGUpO1xuICAgIH1cbn1cbiJdfQ==
|