slick-components 5.0.28 → 17.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{esm2020 → esm2022}/public-api.mjs +44 -44
- package/{esm2020 → esm2022}/slick-accordion/slick-accordion-item-header.component.mjs +14 -14
- package/esm2022/slick-accordion/slick-accordion-item.component.mjs +92 -0
- package/{esm2020 → esm2022}/slick-accordion/slick-accordion.component.mjs +80 -80
- package/{esm2020 → esm2022}/slick-accordion/slick-accordion.module.mjs +23 -23
- package/{esm2020 → esm2022}/slick-auto-complete/slick-auto-complete-list-item-template.directive.mjs +22 -22
- package/esm2022/slick-auto-complete/slick-auto-complete.component.mjs +388 -0
- package/{esm2020 → esm2022}/slick-auto-complete/slick-auto-complete.module.mjs +25 -25
- package/esm2022/slick-button-spinner/slick-button-spinner.component.mjs +175 -0
- package/{esm2020 → esm2022}/slick-button-spinner/slick-button-spinner.module.mjs +19 -19
- package/esm2022/slick-calendar/slick-calendar.component.mjs +271 -0
- package/{esm2020 → esm2022}/slick-calendar/slick-calendar.module.mjs +19 -19
- package/{esm2020 → esm2022}/slick-card/slick-card-header.component.mjs +14 -14
- package/esm2022/slick-card/slick-card.component.mjs +42 -0
- package/{esm2020 → esm2022}/slick-card/slick-card.module.mjs +20 -20
- package/{esm2020 → esm2022}/slick-components.mjs +4 -4
- package/{esm2020 → esm2022}/slick-confirm-dialog/slick-confirm-dialog.component.mjs +65 -65
- package/{esm2020 → esm2022}/slick-confirm-dialog/slick-confirm-dialog.module.mjs +20 -20
- package/{esm2020 → esm2022}/slick-container/slick-container-body.component.mjs +24 -24
- package/{esm2020 → esm2022}/slick-container/slick-container-footer.component.mjs +20 -20
- package/{esm2020 → esm2022}/slick-container/slick-container-header.component.mjs +20 -20
- package/{esm2020 → esm2022}/slick-container/slick-container.component.mjs +21 -21
- package/{esm2020 → esm2022}/slick-container/slick-container.module.mjs +25 -25
- package/{esm2020 → esm2022}/slick-context-menu/slick-context-menu-item.component.mjs +14 -14
- package/esm2022/slick-context-menu/slick-context-menu.component.mjs +48 -0
- package/{esm2020 → esm2022}/slick-context-menu/slick-context-menu.module.mjs +20 -20
- package/{esm2020 → esm2022}/slick-currency-mask/slick-currency-mask-options.model.mjs +11 -11
- package/esm2022/slick-currency-mask/slick-currency-mask.directive.mjs +233 -0
- package/{esm2020 → esm2022}/slick-currency-mask/slick-currency-mask.module.mjs +19 -19
- package/esm2022/slick-date-picker/slick-date-picker.component.mjs +278 -0
- package/{esm2020 → esm2022}/slick-date-picker/slick-date-picker.module.mjs +21 -21
- package/{esm2020 → esm2022}/slick-dialog/slick-dialog-footer.component.mjs +24 -24
- package/esm2022/slick-dialog/slick-dialog.component.mjs +294 -0
- package/{esm2020 → esm2022}/slick-dialog/slick-dialog.module.mjs +23 -23
- package/esm2022/slick-dialog/slick-dialog.service.mjs +68 -0
- package/{esm2020 → esm2022}/slick-drag-drop/slick-drag-drop.directive.mjs +13 -13
- package/{esm2020 → esm2022}/slick-drag-drop/slick-drag-drop.module.mjs +21 -21
- package/{esm2020 → esm2022}/slick-drag-drop/slick-draggable.directive.mjs +13 -13
- package/{esm2020 → esm2022}/slick-drop-down/slick-drop-down-button.model.mjs +7 -7
- package/esm2022/slick-drop-down/slick-drop-down.component.mjs +447 -0
- package/{esm2020 → esm2022}/slick-drop-down/slick-drop-down.module.mjs +24 -24
- package/esm2022/slick-drop-down/slick-drop-down.service.mjs +55 -0
- package/{esm2020 → esm2022}/slick-drop-list/slick-drop-list-grab.directive.mjs +18 -18
- package/{esm2020 → esm2022}/slick-drop-list/slick-drop-list-item.directive.mjs +18 -18
- package/esm2022/slick-drop-list/slick-drop-list.directive.mjs +215 -0
- package/{esm2020 → esm2022}/slick-drop-list/slick-drop-list.module.mjs +23 -23
- package/{esm2020 → esm2022}/slick-email-viewer/slick-email-viewer-dialog.component.mjs +62 -62
- package/esm2022/slick-email-viewer/slick-email-viewer.component.mjs +42 -0
- package/{esm2020 → esm2022}/slick-email-viewer/slick-email-viewer.module.mjs +26 -26
- package/{esm2020 → esm2022}/slick-emailer/slick-emailer-address.model.mjs +2 -2
- package/esm2022/slick-emailer/slick-emailer-dialog.component.mjs +153 -0
- package/esm2022/slick-emailer/slick-emailer.component.mjs +235 -0
- package/{esm2020 → esm2022}/slick-emailer/slick-emailer.model.mjs +2 -2
- package/{esm2020 → esm2022}/slick-emailer/slick-emailer.module.mjs +29 -29
- package/esm2022/slick-file-drop/slick-file-drop.component.mjs +156 -0
- package/{esm2020 → esm2022}/slick-file-drop/slick-file-drop.module.mjs +20 -20
- package/esm2022/slick-file-list/slick-file-list-item.component.mjs +190 -0
- package/esm2022/slick-file-list/slick-file-list.component.mjs +130 -0
- package/{esm2020 → esm2022}/slick-file-list/slick-file-list.module.mjs +23 -23
- package/{esm2020 → esm2022}/slick-file-model/slick-file.model.mjs +2 -2
- package/esm2022/slick-google-address-search/slick-google-address-search.directive.mjs +78 -0
- package/{esm2020 → esm2022}/slick-google-address-search/slick-google-address-search.module.mjs +19 -19
- package/esm2022/slick-google-map/slick-google-map-dialog.component.mjs +50 -0
- package/esm2022/slick-google-map/slick-google-map.component.mjs +48 -0
- package/{esm2020 → esm2022}/slick-google-map/slick-google-map.module.mjs +22 -22
- package/{esm2020 → esm2022}/slick-grid/slick-grid-column-template.directive.mjs +19 -19
- package/{esm2020 → esm2022}/slick-grid/slick-grid-column.model.mjs +66 -66
- package/{esm2020 → esm2022}/slick-grid/slick-grid-favorite.model.mjs +2 -2
- package/{esm2020 → esm2022}/slick-grid/slick-grid-request.model.mjs +2 -2
- package/{esm2020 → esm2022}/slick-grid/slick-grid-response.model.mjs +2 -2
- package/{esm2020 → esm2022}/slick-grid/slick-grid-sanitize.pipe.mjs +20 -20
- package/esm2022/slick-grid/slick-grid.component.mjs +793 -0
- package/{esm2020 → esm2022}/slick-grid/slick-grid.module.mjs +43 -43
- package/{esm2020 → esm2022}/slick-grid/slick-grid.options.mjs +11 -11
- package/esm2022/slick-grid/slick-grid.service.mjs +66 -0
- package/esm2022/slick-multi-select/slick-multi-select.component.mjs +415 -0
- package/{esm2020 → esm2022}/slick-multi-select/slick-multi-select.module.mjs +20 -20
- package/esm2022/slick-multi-select/slick-multi-select.service.mjs +78 -0
- package/esm2022/slick-ordered-list/slick-ordered-list.component.mjs +200 -0
- package/{esm2020 → esm2022}/slick-ordered-list/slick-ordered-list.module.mjs +20 -20
- package/esm2022/slick-paging/slick-paging.component.mjs +185 -0
- package/{esm2020 → esm2022}/slick-paging/slick-paging.module.mjs +19 -19
- package/esm2022/slick-photo-gallery/slick-photo-gallery.component.mjs +98 -0
- package/{esm2020 → esm2022}/slick-photo-gallery/slick-photo-gallery.model.mjs +2 -2
- package/{esm2020 → esm2022}/slick-photo-gallery/slick-photo-gallery.module.mjs +21 -21
- package/{esm2020 → esm2022}/slick-pick-list/slick-pick-list.component.mjs +84 -84
- package/{esm2020 → esm2022}/slick-pick-list/slick-pick-list.module.mjs +20 -20
- package/esm2022/slick-popover/slick-popover.component.mjs +204 -0
- package/{esm2020 → esm2022}/slick-popover/slick-popover.module.mjs +19 -19
- package/esm2022/slick-profile-picture/slick-profile-picture.component.mjs +267 -0
- package/{esm2020 → esm2022}/slick-profile-picture/slick-profile-picture.module.mjs +20 -20
- package/{esm2020 → esm2022}/slick-progress-bar/slick-progress-bar.module.mjs +18 -18
- package/esm2022/slick-progress-bar/slick-progress-bar.service.mjs +53 -0
- package/{esm2020 → esm2022}/slick-screen-blocker/slick-screen-blocker.module.mjs +18 -18
- package/esm2022/slick-screen-blocker/slick-screen-blocker.service.mjs +83 -0
- package/esm2022/slick-search-bar/slick-search-bar.component.mjs +130 -0
- package/{esm2020 → esm2022}/slick-search-bar/slick-search-bar.module.mjs +20 -20
- package/{esm2020 → esm2022}/slick-slider/slick-slider-tick.model.mjs +2 -2
- package/esm2022/slick-slider/slick-slider.component.mjs +90 -0
- package/{esm2020 → esm2022}/slick-slider/slick-slider.module.mjs +20 -20
- package/{esm2020 → esm2022}/slick-split-screen/slick-screen-split-left-content.component.mjs +15 -15
- package/{esm2020 → esm2022}/slick-split-screen/slick-screen-split-right-content.component.mjs +15 -15
- package/esm2022/slick-split-screen/slick-split-screen.component.mjs +159 -0
- package/{esm2020 → esm2022}/slick-split-screen/slick-split-screen.module.mjs +21 -21
- package/esm2022/slick-star-rating/slick-star-rating.component.mjs +91 -0
- package/{esm2020 → esm2022}/slick-star-rating/slick-star-rating.module.mjs +21 -21
- package/{esm2020 → esm2022}/slick-tabs/slick-tab-header.component.mjs +28 -28
- package/esm2022/slick-tabs/slick-tab.component.mjs +63 -0
- package/{esm2020 → esm2022}/slick-tabs/slick-tab.model.mjs +2 -2
- package/esm2022/slick-tabs/slick-tabs.component.mjs +107 -0
- package/{esm2020 → esm2022}/slick-tabs/slick-tabs.module.mjs +23 -23
- package/{esm2020 → esm2022}/slick-toast/slick-toast.module.mjs +18 -18
- package/esm2022/slick-toast/slick-toast.service.mjs +88 -0
- package/esm2022/slick-tree-view/slick-tree-node.model.mjs +18 -0
- package/esm2022/slick-tree-view/slick-tree-view.component.mjs +293 -0
- package/{esm2020 → esm2022}/slick-tree-view/slick-tree-view.module.mjs +22 -22
- package/esm2022/slick-type-ahead/slick-type-ahead.directive.mjs +164 -0
- package/{esm2020 → esm2022}/slick-type-ahead/slick-type-ahead.module.mjs +18 -18
- package/esm2022/slick-validation-indicator/slick-validation-indicator.directive.mjs +66 -0
- package/{esm2020 → esm2022}/slick-validation-indicator/slick-validation-indicator.module.mjs +19 -19
- package/esm2022/utils/slick-function-lock.service.mjs +55 -0
- package/esm2022/utils/slick-init.service.mjs +49 -0
- package/{esm2020 → esm2022}/utils/slick-log.service.mjs +23 -23
- package/{esm2020 → esm2022}/utils/slick-sleep.service.mjs +14 -14
- package/esm2022/utils/slick-utils.service.mjs +247 -0
- package/{fesm2020 → fesm2022}/slick-components.mjs +8495 -8495
- package/fesm2022/slick-components.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/package.json +11 -17
- package/public-api.d.ts +41 -41
- package/slick-accordion/slick-accordion-item-header.component.d.ts +5 -5
- package/slick-accordion/slick-accordion-item.component.d.ts +24 -24
- package/slick-accordion/slick-accordion.component.d.ts +22 -22
- package/slick-accordion/slick-accordion.module.d.ts +16 -16
- package/slick-auto-complete/slick-auto-complete-list-item-template.directive.d.ts +10 -10
- package/slick-auto-complete/slick-auto-complete.component.d.ts +60 -60
- package/slick-auto-complete/slick-auto-complete.module.d.ts +15 -15
- package/slick-button-spinner/slick-button-spinner.component.d.ts +28 -28
- package/slick-button-spinner/slick-button-spinner.module.d.ts +10 -10
- package/slick-calendar/slick-calendar.component.d.ts +53 -53
- package/slick-calendar/slick-calendar.module.d.ts +10 -10
- package/slick-card/slick-card-header.component.d.ts +5 -5
- package/slick-card/slick-card.component.d.ts +13 -13
- package/slick-card/slick-card.module.d.ts +12 -12
- package/slick-confirm-dialog/slick-confirm-dialog.component.d.ts +26 -26
- package/slick-confirm-dialog/slick-confirm-dialog.module.d.ts +11 -11
- package/slick-container/slick-container-body.component.d.ts +7 -7
- package/slick-container/slick-container-footer.component.d.ts +6 -6
- package/slick-container/slick-container-header.component.d.ts +6 -6
- package/slick-container/slick-container.component.d.ts +8 -8
- package/slick-container/slick-container.module.d.ts +19 -19
- package/slick-context-menu/slick-context-menu-item.component.d.ts +5 -5
- package/slick-context-menu/slick-context-menu.component.d.ts +13 -13
- package/slick-context-menu/slick-context-menu.module.d.ts +12 -12
- package/slick-currency-mask/slick-currency-mask-options.model.d.ts +10 -10
- package/slick-currency-mask/slick-currency-mask.directive.d.ts +29 -29
- package/slick-currency-mask/slick-currency-mask.module.d.ts +10 -10
- package/slick-date-picker/slick-date-picker.component.d.ts +45 -45
- package/slick-date-picker/slick-date-picker.module.d.ts +12 -12
- package/slick-dialog/slick-dialog-footer.component.d.ts +7 -7
- package/slick-dialog/slick-dialog.component.d.ts +56 -56
- package/slick-dialog/slick-dialog.module.d.ts +13 -13
- package/slick-dialog/slick-dialog.service.d.ts +17 -17
- package/slick-drag-drop/slick-drag-drop.directive.d.ts +5 -5
- package/slick-drag-drop/slick-drag-drop.module.d.ts +13 -13
- package/slick-drag-drop/slick-draggable.directive.d.ts +5 -5
- package/slick-drop-down/slick-drop-down-button.model.d.ts +13 -13
- package/slick-drop-down/slick-drop-down.component.d.ts +78 -78
- package/slick-drop-down/slick-drop-down.module.d.ts +14 -14
- package/slick-drop-down/slick-drop-down.service.d.ts +12 -12
- package/slick-drop-list/slick-drop-list-grab.directive.d.ts +7 -7
- package/slick-drop-list/slick-drop-list-item.directive.d.ts +7 -7
- package/slick-drop-list/slick-drop-list.directive.d.ts +33 -33
- package/slick-drop-list/slick-drop-list.module.d.ts +16 -16
- package/slick-email-viewer/slick-email-viewer-dialog.component.d.ts +19 -19
- package/slick-email-viewer/slick-email-viewer.component.d.ts +13 -13
- package/slick-email-viewer/slick-email-viewer.module.d.ts +18 -18
- package/slick-emailer/slick-emailer-address.model.d.ts +10 -10
- package/slick-emailer/slick-emailer-dialog.component.d.ts +33 -33
- package/slick-emailer/slick-emailer.component.d.ts +50 -50
- package/slick-emailer/slick-emailer.model.d.ts +16 -16
- package/slick-emailer/slick-emailer.module.d.ts +21 -21
- package/slick-file-drop/slick-file-drop.component.d.ts +25 -25
- package/slick-file-drop/slick-file-drop.module.d.ts +11 -11
- package/slick-file-list/slick-file-list-item.component.d.ts +37 -37
- package/slick-file-list/slick-file-list.component.d.ts +31 -31
- package/slick-file-list/slick-file-list.module.d.ts +14 -14
- package/slick-file-model/slick-file.model.d.ts +28 -28
- package/slick-google-address-search/slick-google-address-search.directive.d.ts +16 -17
- package/slick-google-address-search/slick-google-address-search.module.d.ts +10 -10
- package/slick-google-map/slick-google-map-dialog.component.d.ts +15 -16
- package/slick-google-map/slick-google-map.component.d.ts +17 -18
- package/slick-google-map/slick-google-map.module.d.ts +14 -14
- package/slick-grid/slick-grid-column-template.directive.d.ts +9 -9
- package/slick-grid/slick-grid-column.model.d.ts +64 -64
- package/slick-grid/slick-grid-favorite.model.d.ts +9 -9
- package/slick-grid/slick-grid-request.model.d.ts +33 -33
- package/slick-grid/slick-grid-response.model.d.ts +8 -8
- package/slick-grid/slick-grid-sanitize.pipe.d.ts +10 -10
- package/slick-grid/slick-grid.component.d.ts +119 -119
- package/slick-grid/slick-grid.module.d.ts +32 -32
- package/slick-grid/slick-grid.options.d.ts +35 -35
- package/slick-grid/slick-grid.service.d.ts +12 -12
- package/slick-multi-select/slick-multi-select.component.d.ts +69 -69
- package/slick-multi-select/slick-multi-select.module.d.ts +11 -11
- package/slick-multi-select/slick-multi-select.service.d.ts +9 -9
- package/slick-ordered-list/slick-ordered-list.component.d.ts +28 -28
- package/slick-ordered-list/slick-ordered-list.module.d.ts +11 -11
- package/slick-paging/slick-paging.component.d.ts +31 -31
- package/slick-paging/slick-paging.module.d.ts +10 -10
- package/slick-photo-gallery/slick-photo-gallery.component.d.ts +26 -26
- package/slick-photo-gallery/slick-photo-gallery.model.d.ts +8 -8
- package/slick-photo-gallery/slick-photo-gallery.module.d.ts +12 -12
- package/slick-pick-list/slick-pick-list.component.d.ts +24 -24
- package/slick-pick-list/slick-pick-list.module.d.ts +11 -11
- package/slick-popover/slick-popover.component.d.ts +39 -39
- package/slick-popover/slick-popover.module.d.ts +10 -10
- package/slick-profile-picture/slick-profile-picture.component.d.ts +29 -29
- package/slick-profile-picture/slick-profile-picture.module.d.ts +11 -11
- package/slick-progress-bar/slick-progress-bar.module.d.ts +9 -9
- package/slick-progress-bar/slick-progress-bar.service.d.ts +12 -12
- package/slick-screen-blocker/slick-screen-blocker.module.d.ts +9 -9
- package/slick-screen-blocker/slick-screen-blocker.service.d.ts +16 -16
- package/slick-search-bar/slick-search-bar.component.d.ts +37 -37
- package/slick-search-bar/slick-search-bar.module.d.ts +11 -11
- package/slick-slider/slick-slider-tick.model.d.ts +10 -10
- package/slick-slider/slick-slider.component.d.ts +29 -29
- package/slick-slider/slick-slider.module.d.ts +11 -11
- package/slick-split-screen/slick-screen-split-left-content.component.d.ts +6 -6
- package/slick-split-screen/slick-screen-split-right-content.component.d.ts +6 -6
- package/slick-split-screen/slick-split-screen.component.d.ts +40 -40
- package/slick-split-screen/slick-split-screen.module.d.ts +14 -14
- package/slick-star-rating/slick-star-rating.component.d.ts +28 -28
- package/slick-star-rating/slick-star-rating.module.d.ts +12 -12
- package/slick-tabs/slick-tab-header.component.d.ts +12 -12
- package/slick-tabs/slick-tab.component.d.ts +22 -22
- package/slick-tabs/slick-tab.model.d.ts +10 -10
- package/slick-tabs/slick-tabs.component.d.ts +25 -25
- package/slick-tabs/slick-tabs.module.d.ts +16 -16
- package/slick-toast/slick-toast.module.d.ts +9 -9
- package/slick-toast/slick-toast.service.d.ts +16 -16
- package/slick-tree-view/slick-tree-node.model.d.ts +30 -30
- package/slick-tree-view/slick-tree-view.component.d.ts +62 -62
- package/slick-tree-view/slick-tree-view.module.d.ts +13 -13
- package/slick-type-ahead/slick-type-ahead.directive.d.ts +25 -25
- package/slick-type-ahead/slick-type-ahead.module.d.ts +9 -9
- package/slick-validation-indicator/slick-validation-indicator.directive.d.ts +22 -22
- package/slick-validation-indicator/slick-validation-indicator.module.d.ts +10 -10
- package/utils/slick-function-lock.service.d.ts +9 -9
- package/utils/slick-init.service.d.ts +21 -21
- package/utils/slick-log.service.d.ts +9 -9
- package/utils/slick-sleep.service.d.ts +6 -6
- package/utils/slick-utils.service.d.ts +24 -24
- package/esm2020/slick-accordion/slick-accordion-item.component.mjs +0 -92
- package/esm2020/slick-auto-complete/slick-auto-complete.component.mjs +0 -388
- package/esm2020/slick-button-spinner/slick-button-spinner.component.mjs +0 -175
- package/esm2020/slick-calendar/slick-calendar.component.mjs +0 -271
- package/esm2020/slick-card/slick-card.component.mjs +0 -42
- package/esm2020/slick-context-menu/slick-context-menu.component.mjs +0 -48
- package/esm2020/slick-currency-mask/slick-currency-mask.directive.mjs +0 -233
- package/esm2020/slick-date-picker/slick-date-picker.component.mjs +0 -278
- package/esm2020/slick-dialog/slick-dialog.component.mjs +0 -294
- package/esm2020/slick-dialog/slick-dialog.service.mjs +0 -68
- package/esm2020/slick-drop-down/slick-drop-down.component.mjs +0 -447
- package/esm2020/slick-drop-down/slick-drop-down.service.mjs +0 -55
- package/esm2020/slick-drop-list/slick-drop-list.directive.mjs +0 -215
- package/esm2020/slick-email-viewer/slick-email-viewer.component.mjs +0 -42
- package/esm2020/slick-emailer/slick-emailer-dialog.component.mjs +0 -153
- package/esm2020/slick-emailer/slick-emailer.component.mjs +0 -235
- package/esm2020/slick-file-drop/slick-file-drop.component.mjs +0 -156
- package/esm2020/slick-file-list/slick-file-list-item.component.mjs +0 -190
- package/esm2020/slick-file-list/slick-file-list.component.mjs +0 -130
- package/esm2020/slick-google-address-search/slick-google-address-search.directive.mjs +0 -78
- package/esm2020/slick-google-map/slick-google-map-dialog.component.mjs +0 -50
- package/esm2020/slick-google-map/slick-google-map.component.mjs +0 -48
- package/esm2020/slick-grid/slick-grid.component.mjs +0 -793
- package/esm2020/slick-grid/slick-grid.service.mjs +0 -66
- package/esm2020/slick-multi-select/slick-multi-select.component.mjs +0 -415
- package/esm2020/slick-multi-select/slick-multi-select.service.mjs +0 -78
- package/esm2020/slick-ordered-list/slick-ordered-list.component.mjs +0 -200
- package/esm2020/slick-paging/slick-paging.component.mjs +0 -185
- package/esm2020/slick-photo-gallery/slick-photo-gallery.component.mjs +0 -98
- package/esm2020/slick-popover/slick-popover.component.mjs +0 -204
- package/esm2020/slick-profile-picture/slick-profile-picture.component.mjs +0 -267
- package/esm2020/slick-progress-bar/slick-progress-bar.service.mjs +0 -53
- package/esm2020/slick-screen-blocker/slick-screen-blocker.service.mjs +0 -83
- package/esm2020/slick-search-bar/slick-search-bar.component.mjs +0 -130
- package/esm2020/slick-slider/slick-slider.component.mjs +0 -90
- package/esm2020/slick-split-screen/slick-split-screen.component.mjs +0 -159
- package/esm2020/slick-star-rating/slick-star-rating.component.mjs +0 -91
- package/esm2020/slick-tabs/slick-tab.component.mjs +0 -63
- package/esm2020/slick-tabs/slick-tabs.component.mjs +0 -107
- package/esm2020/slick-toast/slick-toast.service.mjs +0 -88
- package/esm2020/slick-tree-view/slick-tree-node.model.mjs +0 -18
- package/esm2020/slick-tree-view/slick-tree-view.component.mjs +0 -293
- package/esm2020/slick-type-ahead/slick-type-ahead.directive.mjs +0 -164
- package/esm2020/slick-validation-indicator/slick-validation-indicator.directive.mjs +0 -66
- package/esm2020/utils/slick-function-lock.service.mjs +0 -55
- package/esm2020/utils/slick-init.service.mjs +0 -49
- package/esm2020/utils/slick-utils.service.mjs +0 -247
- package/fesm2015/slick-components.mjs +0 -9084
- package/fesm2015/slick-components.mjs.map +0 -1
- package/fesm2020/slick-components.mjs.map +0 -1
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { Component, Input, ViewChild, HostListener } from "@angular/core";
|
|
2
|
-
import { SlickPhotoGalleryModel } from "./slick-photo-gallery.model";
|
|
3
|
-
import { SlickSleepService } from "../utils/slick-sleep.service";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common";
|
|
6
|
-
export class SlickPhotoGalleryComponent {
|
|
7
|
-
constructor(changeDetector) {
|
|
8
|
-
this.changeDetector = changeDetector;
|
|
9
|
-
this.isVisible = false;
|
|
10
|
-
this.isPhotoGalleryVisible = false;
|
|
11
|
-
this.selectedPhoto = null;
|
|
12
|
-
this.visibleIndex = 0;
|
|
13
|
-
}
|
|
14
|
-
async onResize(e) {
|
|
15
|
-
if (e.which === 39)
|
|
16
|
-
this.nextPhoto();
|
|
17
|
-
else if (e.which === 37)
|
|
18
|
-
this.previousPhoto();
|
|
19
|
-
else if (e.which === 27)
|
|
20
|
-
this.closeWindow();
|
|
21
|
-
}
|
|
22
|
-
ngOnDestroy() {
|
|
23
|
-
// It's fine if this fails. It just means it was removed elsewhere
|
|
24
|
-
try {
|
|
25
|
-
document.body.appendChild(this.containerRef.nativeElement);
|
|
26
|
-
}
|
|
27
|
-
catch { }
|
|
28
|
-
}
|
|
29
|
-
ngOnChanges(changes) {
|
|
30
|
-
if (changes.files) {
|
|
31
|
-
this.photos = [];
|
|
32
|
-
if (changes.files.currentValue) {
|
|
33
|
-
this.photos = changes.files.currentValue.map((f) => {
|
|
34
|
-
let photoModel = new SlickPhotoGalleryModel();
|
|
35
|
-
photoModel.photoUrl = f.base64Image || f.url;
|
|
36
|
-
photoModel.title = f.title;
|
|
37
|
-
return photoModel;
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
async showPhotoGallery(visibleIndex = 0) {
|
|
43
|
-
this.isVisible = true;
|
|
44
|
-
this.changeDetector.detectChanges();
|
|
45
|
-
document.body.appendChild(this.containerRef.nativeElement);
|
|
46
|
-
await SlickSleepService.sleep();
|
|
47
|
-
this.isPhotoGalleryVisible = true;
|
|
48
|
-
this.visibleIndex = visibleIndex;
|
|
49
|
-
if (this.photos && this.photos.length > 0)
|
|
50
|
-
this.selectedPhoto = this.photos[this.visibleIndex];
|
|
51
|
-
}
|
|
52
|
-
hidePhotoGallery() {
|
|
53
|
-
// It's fine if this fails. It just means it was removed elsewhere
|
|
54
|
-
try {
|
|
55
|
-
document.body.removeChild(this.containerRef.nativeElement);
|
|
56
|
-
}
|
|
57
|
-
catch { }
|
|
58
|
-
this.isVisible = false;
|
|
59
|
-
}
|
|
60
|
-
previousPhoto() {
|
|
61
|
-
if (this.visibleIndex === 0)
|
|
62
|
-
this.visibleIndex = this.photos.length - 1;
|
|
63
|
-
else
|
|
64
|
-
this.visibleIndex--;
|
|
65
|
-
this.selectedPhoto = this.photos[this.visibleIndex];
|
|
66
|
-
}
|
|
67
|
-
nextPhoto() {
|
|
68
|
-
if (this.visibleIndex === this.photos.length - 1)
|
|
69
|
-
this.visibleIndex = 0;
|
|
70
|
-
else
|
|
71
|
-
this.visibleIndex++;
|
|
72
|
-
this.selectedPhoto = this.photos[this.visibleIndex];
|
|
73
|
-
}
|
|
74
|
-
setPosition(idx) {
|
|
75
|
-
this.visibleIndex = idx;
|
|
76
|
-
this.selectedPhoto = this.photos[this.visibleIndex];
|
|
77
|
-
}
|
|
78
|
-
closeWindow() {
|
|
79
|
-
this.hidePhotoGallery();
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
/** @nocollapse */ SlickPhotoGalleryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SlickPhotoGalleryComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
83
|
-
/** @nocollapse */ SlickPhotoGalleryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SlickPhotoGalleryComponent, selector: "slick-photo-gallery", inputs: { photos: "photos", files: "files" }, host: { listeners: { "window:keydown": "onResize($event)" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["containerRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #containerRef *ngIf=\"isVisible === true\" class='slick-photo-gallery'>\r\n\t<div class=\"slick-photo-gallery_overlay\" (click)=\"closeWindow()\" [ngClass]=\"{'visible': isPhotoGalleryVisible === true}\"></div>\r\n\t<div class=\"modal-content slick-photo-gallery_content\" style=\"width: 90%; margin-left: 5%;\" *ngIf=\"isPhotoGalleryVisible === true\">\r\n\t\t<div class=\"modal-header slick-photo-gallery_header\"><div class=\"header-right\" (click)='closeWindow()'><i class=\"far fa-times\"></i></div></div>\r\n\t\t<div class=\"modal-body\">\r\n\t\t\t<div *ngIf=\"selectedPhoto\" class='slick-photo-gallery_photo-container'>\r\n\t\t\t\t<img class='slick-photo-gallery_photo' [src]='selectedPhoto.photoUrl' />\r\n\t\t\t</div>\r\n\t\t\t<div (click)='previousPhoto()' class='slick-photo-gallery_previous-photo'><i class='far fa-chevron-left'></i></div>\r\n\t\t\t<div (click)='nextPhoto()' class='slick-photo-gallery_next-photo'><i class='far fa-chevron-right'></i></div>\r\n\t\t\t<!--<div *ngIf=\"photos\" class='slick-photo-gallery_position-indicators'>\r\n\t\t\t\t<i (click)='setPosition(index)' *ngFor='let photo of photos; let index = index' [ngClass]='(index === visibleIndex) ? \"fas fa-circle\" : \"far fa-circle\"'></i>\r\n\t\t\t</div>-->\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SlickPhotoGalleryComponent, decorators: [{
|
|
85
|
-
type: Component,
|
|
86
|
-
args: [{ selector: "slick-photo-gallery", template: "<div #containerRef *ngIf=\"isVisible === true\" class='slick-photo-gallery'>\r\n\t<div class=\"slick-photo-gallery_overlay\" (click)=\"closeWindow()\" [ngClass]=\"{'visible': isPhotoGalleryVisible === true}\"></div>\r\n\t<div class=\"modal-content slick-photo-gallery_content\" style=\"width: 90%; margin-left: 5%;\" *ngIf=\"isPhotoGalleryVisible === true\">\r\n\t\t<div class=\"modal-header slick-photo-gallery_header\"><div class=\"header-right\" (click)='closeWindow()'><i class=\"far fa-times\"></i></div></div>\r\n\t\t<div class=\"modal-body\">\r\n\t\t\t<div *ngIf=\"selectedPhoto\" class='slick-photo-gallery_photo-container'>\r\n\t\t\t\t<img class='slick-photo-gallery_photo' [src]='selectedPhoto.photoUrl' />\r\n\t\t\t</div>\r\n\t\t\t<div (click)='previousPhoto()' class='slick-photo-gallery_previous-photo'><i class='far fa-chevron-left'></i></div>\r\n\t\t\t<div (click)='nextPhoto()' class='slick-photo-gallery_next-photo'><i class='far fa-chevron-right'></i></div>\r\n\t\t\t<!--<div *ngIf=\"photos\" class='slick-photo-gallery_position-indicators'>\r\n\t\t\t\t<i (click)='setPosition(index)' *ngFor='let photo of photos; let index = index' [ngClass]='(index === visibleIndex) ? \"fas fa-circle\" : \"far fa-circle\"'></i>\r\n\t\t\t</div>-->\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n" }]
|
|
87
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { photos: [{
|
|
88
|
-
type: Input
|
|
89
|
-
}], files: [{
|
|
90
|
-
type: Input
|
|
91
|
-
}], containerRef: [{
|
|
92
|
-
type: ViewChild,
|
|
93
|
-
args: ["containerRef"]
|
|
94
|
-
}], onResize: [{
|
|
95
|
-
type: HostListener,
|
|
96
|
-
args: ['window:keydown', ['$event']]
|
|
97
|
-
}] } });
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stcGhvdG8tZ2FsbGVyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9zbGljay1waG90by1nYWxsZXJ5L3NsaWNrLXBob3RvLWdhbGxlcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stcGhvdG8tZ2FsbGVyeS9zbGljay1waG90by1nYWxsZXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBbUQsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM5SSxPQUFPLEVBQTJCLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQU1qRSxNQUFNLE9BQU8sMEJBQTBCO0lBcUJ0QyxZQUFvQixjQUFpQztRQUFqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFMckQsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQiwwQkFBcUIsR0FBWSxLQUFLLENBQUM7UUFDdkMsa0JBQWEsR0FBNEIsSUFBSSxDQUFDO1FBQzlDLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO0lBRWdDLENBQUM7SUFkMUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFnQjtRQUM5QixJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDYixJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssRUFBRTtZQUN0QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDakIsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFTRCxXQUFXO1FB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QUUsQ0FBQztJQUN6QixDQUFDOzswSUEvRlcsMEJBQTBCOzhIQUExQiwwQkFBMEIsMlNDVHZDLDZ3Q0FnQkE7MkZEUGEsMEJBQTBCO2tCQUp0QyxTQUFTOytCQUNDLHFCQUFxQjt3R0FJdEIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFcUIsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUduQixRQUFRO3NCQURiLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgT25EZXN0cm95LCBIb3N0TGlzdGVuZXIsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSVNsaWNrUGhvdG9HYWxsZXJ5TW9kZWwsIFNsaWNrUGhvdG9HYWxsZXJ5TW9kZWwgfSBmcm9tIFwiLi9zbGljay1waG90by1nYWxsZXJ5Lm1vZGVsXCI7XHJcbmltcG9ydCB7IElTbGlja0ZpbGVNb2RlbCB9IGZyb20gXCIuLi9zbGljay1maWxlLW1vZGVsL3NsaWNrLWZpbGUubW9kZWxcIjtcclxuaW1wb3J0IHsgU2xpY2tTbGVlcFNlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvc2xpY2stc2xlZXAuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6IFwic2xpY2stcGhvdG8tZ2FsbGVyeVwiLFxyXG5cdHRlbXBsYXRlVXJsOiBcInNsaWNrLXBob3RvLWdhbGxlcnkuY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tQaG90b0dhbGxlcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcblx0QElucHV0KCkgcGhvdG9zOiBJU2xpY2tQaG90b0dhbGxlcnlNb2RlbFtdO1xyXG5cdEBJbnB1dCgpIGZpbGVzOiBJU2xpY2tGaWxlTW9kZWxbXTtcclxuXHJcblx0QFZpZXdDaGlsZChcImNvbnRhaW5lclJlZlwiKSBjb250YWluZXJSZWY6IEVsZW1lbnRSZWY7XHJcblxyXG5cdEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duJywgWyckZXZlbnQnXSlcclxuXHRhc3luYyBvblJlc2l6ZShlOiBLZXlib2FyZEV2ZW50KSB7XHJcblx0XHRpZiAoZS53aGljaCA9PT0gMzkpXHJcblx0XHRcdHRoaXMubmV4dFBob3RvKCk7XHJcblx0XHRlbHNlIGlmIChlLndoaWNoID09PSAzNylcclxuXHRcdFx0dGhpcy5wcmV2aW91c1Bob3RvKCk7XHJcblx0XHRlbHNlIGlmIChlLndoaWNoID09PSAyNylcclxuXHRcdFx0dGhpcy5jbG9zZVdpbmRvdygpO1xyXG5cdH1cclxuXHJcblx0aXNWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblx0aXNQaG90b0dhbGxlcnlWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblx0c2VsZWN0ZWRQaG90bzogSVNsaWNrUGhvdG9HYWxsZXJ5TW9kZWwgPSBudWxsO1xyXG5cdHZpc2libGVJbmRleDogbnVtYmVyID0gMDtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdC8vIEl0J3MgZmluZSBpZiB0aGlzIGZhaWxzLiAgSXQganVzdCBtZWFucyBpdCB3YXMgcmVtb3ZlZCBlbHNld2hlcmVcclxuXHRcdHRyeSB7XHJcblx0XHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudCk7XHJcblx0XHR9XHJcblx0XHRjYXRjaCB7IH1cclxuXHR9XHJcblxyXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuXHRcdGlmIChjaGFuZ2VzLmZpbGVzKSB7XHJcblx0XHRcdHRoaXMucGhvdG9zID0gW107XHJcblx0XHRcdGlmIChjaGFuZ2VzLmZpbGVzLmN1cnJlbnRWYWx1ZSkge1xyXG5cdFx0XHRcdHRoaXMucGhvdG9zID0gY2hhbmdlcy5maWxlcy5jdXJyZW50VmFsdWUubWFwKChmKSA9PiB7XHJcblx0XHRcdFx0XHRsZXQgcGhvdG9Nb2RlbCA9IG5ldyBTbGlja1Bob3RvR2FsbGVyeU1vZGVsKCk7XHJcblx0XHRcdFx0XHRwaG90b01vZGVsLnBob3RvVXJsID0gZi5iYXNlNjRJbWFnZSB8fCBmLnVybDtcclxuXHRcdFx0XHRcdHBob3RvTW9kZWwudGl0bGUgPSBmLnRpdGxlO1xyXG5cdFx0XHRcdFx0cmV0dXJuIHBob3RvTW9kZWw7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGFzeW5jIHNob3dQaG90b0dhbGxlcnkodmlzaWJsZUluZGV4OiBudW1iZXIgPSAwKSB7XHJcblx0XHR0aGlzLmlzVmlzaWJsZSA9IHRydWU7XHJcblxyXG5cdFx0dGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG5cdFx0ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50KTtcclxuXHJcblx0XHRhd2FpdCBTbGlja1NsZWVwU2VydmljZS5zbGVlcCgpO1xyXG5cdFx0dGhpcy5pc1Bob3RvR2FsbGVyeVZpc2libGUgPSB0cnVlO1xyXG5cclxuXHRcdHRoaXMudmlzaWJsZUluZGV4ID0gdmlzaWJsZUluZGV4O1xyXG5cdFx0aWYgKHRoaXMucGhvdG9zICYmIHRoaXMucGhvdG9zLmxlbmd0aCA+IDApXHJcblx0XHRcdHRoaXMuc2VsZWN0ZWRQaG90byA9IHRoaXMucGhvdG9zW3RoaXMudmlzaWJsZUluZGV4XTtcclxuXHR9XHJcblxyXG5cdGhpZGVQaG90b0dhbGxlcnkoKSB7XHJcblx0XHQvLyBJdCdzIGZpbmUgaWYgdGhpcyBmYWlscy4gIEl0IGp1c3QgbWVhbnMgaXQgd2FzIHJlbW92ZWQgZWxzZXdoZXJlXHJcblx0XHR0cnkge1xyXG5cdFx0XHRkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG5cdFx0fVxyXG5cdFx0Y2F0Y2ggeyB9XHJcblxyXG5cdFx0dGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcclxuXHR9XHJcblxyXG5cdHByZXZpb3VzUGhvdG8oKSB7XHJcblx0XHRpZiAodGhpcy52aXNpYmxlSW5kZXggPT09IDApXHJcblx0XHRcdHRoaXMudmlzaWJsZUluZGV4ID0gdGhpcy5waG90b3MubGVuZ3RoIC0gMTtcclxuXHRcdGVsc2VcclxuXHRcdFx0dGhpcy52aXNpYmxlSW5kZXgtLTtcclxuXHJcblx0XHR0aGlzLnNlbGVjdGVkUGhvdG8gPSB0aGlzLnBob3Rvc1t0aGlzLnZpc2libGVJbmRleF07XHJcblx0fVxyXG5cclxuXHRuZXh0UGhvdG8oKSB7XHJcblx0XHRpZiAodGhpcy52aXNpYmxlSW5kZXggPT09IHRoaXMucGhvdG9zLmxlbmd0aCAtIDEpXHJcblx0XHRcdHRoaXMudmlzaWJsZUluZGV4ID0gMDtcclxuXHRcdGVsc2VcclxuXHRcdFx0dGhpcy52aXNpYmxlSW5kZXgrKztcclxuXHJcblx0XHR0aGlzLnNlbGVjdGVkUGhvdG8gPSB0aGlzLnBob3Rvc1t0aGlzLnZpc2libGVJbmRleF07XHJcblx0fVxyXG5cclxuXHRzZXRQb3NpdGlvbihpZHg6IG51bWJlcikge1xyXG5cdFx0dGhpcy52aXNpYmxlSW5kZXggPSBpZHg7XHJcblx0XHR0aGlzLnNlbGVjdGVkUGhvdG8gPSB0aGlzLnBob3Rvc1t0aGlzLnZpc2libGVJbmRleF07XHJcblx0fVxyXG5cclxuXHRjbG9zZVdpbmRvdygpIHtcclxuXHRcdHRoaXMuaGlkZVBob3RvR2FsbGVyeSgpO1xyXG5cdH1cclxufSIsIjxkaXYgI2NvbnRhaW5lclJlZiAqbmdJZj1cImlzVmlzaWJsZSA9PT0gdHJ1ZVwiIGNsYXNzPSdzbGljay1waG90by1nYWxsZXJ5Jz5cclxuXHQ8ZGl2IGNsYXNzPVwic2xpY2stcGhvdG8tZ2FsbGVyeV9vdmVybGF5XCIgKGNsaWNrKT1cImNsb3NlV2luZG93KClcIiBbbmdDbGFzc109XCJ7J3Zpc2libGUnOiBpc1Bob3RvR2FsbGVyeVZpc2libGUgPT09IHRydWV9XCI+PC9kaXY+XHJcblx0PGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnQgc2xpY2stcGhvdG8tZ2FsbGVyeV9jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDogOTAlOyBtYXJnaW4tbGVmdDogNSU7XCIgKm5nSWY9XCJpc1Bob3RvR2FsbGVyeVZpc2libGUgPT09IHRydWVcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgc2xpY2stcGhvdG8tZ2FsbGVyeV9oZWFkZXJcIj48ZGl2IGNsYXNzPVwiaGVhZGVyLXJpZ2h0XCIgKGNsaWNrKT0nY2xvc2VXaW5kb3coKSc+PGkgY2xhc3M9XCJmYXIgZmEtdGltZXNcIj48L2k+PC9kaXY+PC9kaXY+XHJcblx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxyXG5cdFx0XHQ8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRQaG90b1wiIGNsYXNzPSdzbGljay1waG90by1nYWxsZXJ5X3Bob3RvLWNvbnRhaW5lcic+XHJcblx0XHRcdFx0PGltZyBjbGFzcz0nc2xpY2stcGhvdG8tZ2FsbGVyeV9waG90bycgW3NyY109J3NlbGVjdGVkUGhvdG8ucGhvdG9VcmwnIC8+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8ZGl2IChjbGljayk9J3ByZXZpb3VzUGhvdG8oKScgY2xhc3M9J3NsaWNrLXBob3RvLWdhbGxlcnlfcHJldmlvdXMtcGhvdG8nPjxpIGNsYXNzPSdmYXIgZmEtY2hldnJvbi1sZWZ0Jz48L2k+PC9kaXY+XHJcblx0XHRcdDxkaXYgKGNsaWNrKT0nbmV4dFBob3RvKCknIGNsYXNzPSdzbGljay1waG90by1nYWxsZXJ5X25leHQtcGhvdG8nPjxpIGNsYXNzPSdmYXIgZmEtY2hldnJvbi1yaWdodCc+PC9pPjwvZGl2PlxyXG5cdFx0XHQ8IS0tPGRpdiAqbmdJZj1cInBob3Rvc1wiIGNsYXNzPSdzbGljay1waG90by1nYWxsZXJ5X3Bvc2l0aW9uLWluZGljYXRvcnMnPlxyXG5cdFx0XHRcdDxpIChjbGljayk9J3NldFBvc2l0aW9uKGluZGV4KScgKm5nRm9yPSdsZXQgcGhvdG8gb2YgcGhvdG9zOyBsZXQgaW5kZXggPSBpbmRleCcgW25nQ2xhc3NdPScoaW5kZXggPT09IHZpc2libGVJbmRleCkgPyBcImZhcyBmYS1jaXJjbGVcIiA6IFwiZmFyIGZhLWNpcmNsZVwiJz48L2k+XHJcblx0XHRcdDwvZGl2Pi0tPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
import { Component, Input, ViewChild } from "@angular/core";
|
|
2
|
-
import { SlickSleepService } from "../utils/slick-sleep.service";
|
|
3
|
-
import { SlickUtilsService } from "../utils/slick-utils.service";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common";
|
|
6
|
-
export class SlickPopoverComponent {
|
|
7
|
-
constructor(el) {
|
|
8
|
-
this.el = el;
|
|
9
|
-
this.position = 'right';
|
|
10
|
-
this.hoverDelay = 250;
|
|
11
|
-
this.outDelay = 250;
|
|
12
|
-
this.alignment = "left";
|
|
13
|
-
this.topOffsetPx = 0;
|
|
14
|
-
this.leftOffsetPx = 0;
|
|
15
|
-
this.whiteBackground = false;
|
|
16
|
-
this.showByClick = false;
|
|
17
|
-
this.showArrow = true;
|
|
18
|
-
this.fnReposition = () => this.reposition();
|
|
19
|
-
this.fnDocumentClick = (e) => this.documentClick(e);
|
|
20
|
-
this.fnMouseEnter = () => this.mouseEnter();
|
|
21
|
-
this.fnMouseLeave = () => this.mouseLeave();
|
|
22
|
-
this.isVisible = false;
|
|
23
|
-
this.uuid = SlickUtilsService.newGuid();
|
|
24
|
-
}
|
|
25
|
-
async ngOnChanges(changes) {
|
|
26
|
-
if (changes.topOffsetPx)
|
|
27
|
-
this.topOffsetPx = parseFloat(changes.topOffsetPx.currentValue);
|
|
28
|
-
if (changes.leftOffsetPx)
|
|
29
|
-
this.leftOffsetPx = parseFloat(changes.leftOffsetPx.currentValue);
|
|
30
|
-
if (changes.position) {
|
|
31
|
-
this.containerDivRef.nativeElement.classList.add("hidden");
|
|
32
|
-
this.containerDivRef.nativeElement.classList.remove("visible");
|
|
33
|
-
}
|
|
34
|
-
if (changes.showByClick)
|
|
35
|
-
this.showByClick = (this.showByClick.toString().toLowerCase() === 'true') ? true : false;
|
|
36
|
-
if (changes.whiteBackground && changes.whiteBackground.currentValue)
|
|
37
|
-
this.whiteBackground = (changes.whiteBackground.currentValue.toString().toLowerCase() !== 'false');
|
|
38
|
-
if (changes.showArrow && changes.showArrow.currentValue)
|
|
39
|
-
this.showArrow = (changes.showArrow.currentValue.toString().toLowerCase() !== 'false');
|
|
40
|
-
await SlickSleepService.sleep();
|
|
41
|
-
this.reposition();
|
|
42
|
-
}
|
|
43
|
-
ngAfterViewInit() {
|
|
44
|
-
this.containerDivRef.nativeElement.classList.add("hidden");
|
|
45
|
-
this.containerDivRef.nativeElement.classList.add("showArrow");
|
|
46
|
-
// Remove this from the inline version and put it on the body so that it doesn't hide behind the bottom
|
|
47
|
-
// of a div when it expands beyond the bottom.
|
|
48
|
-
//this.el.nativeElement.remove(this.el);
|
|
49
|
-
document.body.appendChild(this.el.nativeElement);
|
|
50
|
-
// This is necessary, otherwise `this` in the reposition function will be window
|
|
51
|
-
// and not the component.
|
|
52
|
-
// Since angular has no way to use the third parameter, I'm doing this in raw js
|
|
53
|
-
if (this.showByClick === true) {
|
|
54
|
-
document.addEventListener("click", this.fnDocumentClick, true);
|
|
55
|
-
if (!this.element.getAttribute("id"))
|
|
56
|
-
this.element.setAttribute('id', `slick-popover-element_${this.uuid}`);
|
|
57
|
-
this.elementId = this.element.getAttribute("id");
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
this.el.nativeElement.addEventListener("mouseenter", this.fnMouseEnter);
|
|
61
|
-
this.element.addEventListener("mouseenter", this.fnMouseEnter);
|
|
62
|
-
this.el.nativeElement.addEventListener("mouseleave", this.fnMouseLeave);
|
|
63
|
-
this.element.addEventListener("mouseleave", this.fnMouseLeave);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
ngOnDestroy() {
|
|
67
|
-
document.removeEventListener("click", this.fnDocumentClick, true);
|
|
68
|
-
this.el.nativeElement.removeEventListener("mouseenter", this.fnMouseEnter);
|
|
69
|
-
this.element.removeEventListener("mouseenter", this.fnMouseEnter);
|
|
70
|
-
this.el.nativeElement.removeEventListener("mouseleave", this.fnMouseLeave);
|
|
71
|
-
try {
|
|
72
|
-
this.element.removeEventListener("mouseleave", this.fnMouseLeave);
|
|
73
|
-
document.body.removeChild(this.el.nativeElement);
|
|
74
|
-
}
|
|
75
|
-
catch { }
|
|
76
|
-
}
|
|
77
|
-
mouseEnter() {
|
|
78
|
-
clearTimeout(this.displayTimeout);
|
|
79
|
-
clearTimeout(this.leaveTimeout);
|
|
80
|
-
this.displayTimeout = setTimeout(() => {
|
|
81
|
-
this.reposition();
|
|
82
|
-
this.containerDivRef.nativeElement.classList.remove("hidden");
|
|
83
|
-
this.containerDivRef.nativeElement.classList.add("visible");
|
|
84
|
-
}, this.hoverDelay);
|
|
85
|
-
}
|
|
86
|
-
mouseLeave() {
|
|
87
|
-
clearTimeout(this.displayTimeout);
|
|
88
|
-
clearTimeout(this.leaveTimeout);
|
|
89
|
-
this.leaveTimeout = setTimeout(() => {
|
|
90
|
-
this.containerDivRef.nativeElement.classList.add("hidden");
|
|
91
|
-
this.containerDivRef.nativeElement.classList.remove("visible");
|
|
92
|
-
}, this.outDelay);
|
|
93
|
-
}
|
|
94
|
-
async reposition() {
|
|
95
|
-
if (!this.topOffsetPx)
|
|
96
|
-
this.topOffsetPx = 0;
|
|
97
|
-
if (!this.leftOffsetPx)
|
|
98
|
-
this.leftOffsetPx = 0;
|
|
99
|
-
if (this.showArrow === true)
|
|
100
|
-
this.containerDivRef.nativeElement.classList.add("showArrow");
|
|
101
|
-
else if (this.showArrow === false)
|
|
102
|
-
this.containerDivRef.nativeElement.classList.remove("showArrow");
|
|
103
|
-
if (this.whiteBackground === true)
|
|
104
|
-
this.containerDivRef.nativeElement.classList.add("whiteBackground");
|
|
105
|
-
else if (this.whiteBackground === false)
|
|
106
|
-
this.containerDivRef.nativeElement.classList.remove("whiteBackground");
|
|
107
|
-
let targetRect = this.element.getBoundingClientRect();
|
|
108
|
-
let targetLeft = targetRect.left;
|
|
109
|
-
let targetTop = targetRect.top;
|
|
110
|
-
let targetHeight = this.element.offsetHeight;
|
|
111
|
-
let targetWidth = targetRect.width;
|
|
112
|
-
let popoverHeight = this.popoverContentRef.nativeElement.offsetHeight;
|
|
113
|
-
let popoverWidth = this.popoverContentRef.nativeElement.getBoundingClientRect().width;
|
|
114
|
-
if (this.showArrow) {
|
|
115
|
-
popoverWidth += 5;
|
|
116
|
-
}
|
|
117
|
-
if (this.position === 'left') {
|
|
118
|
-
this.top = (targetTop + this.topOffsetPx);
|
|
119
|
-
this.left = (targetLeft - popoverWidth - 3 + this.leftOffsetPx);
|
|
120
|
-
if (this.showArrow)
|
|
121
|
-
this.left -= 2;
|
|
122
|
-
}
|
|
123
|
-
else if (this.position === 'right') {
|
|
124
|
-
this.top = (targetTop + this.topOffsetPx);
|
|
125
|
-
this.left = (targetLeft + targetWidth - 7 + this.leftOffsetPx);
|
|
126
|
-
if (this.showArrow)
|
|
127
|
-
this.left += 7;
|
|
128
|
-
}
|
|
129
|
-
else if (this.position === 'top') {
|
|
130
|
-
this.top = (targetTop - popoverHeight - 3 + this.topOffsetPx);
|
|
131
|
-
this.left = (targetLeft + this.leftOffsetPx);
|
|
132
|
-
// default to left aligned
|
|
133
|
-
this.left = (targetLeft + this.leftOffsetPx);
|
|
134
|
-
if (this.alignment && this.alignment.toLowerCase() === 'right')
|
|
135
|
-
this.left = targetLeft + targetWidth - popoverWidth - 4 + this.leftOffsetPx;
|
|
136
|
-
if (this.showArrow)
|
|
137
|
-
this.top -= 7;
|
|
138
|
-
}
|
|
139
|
-
else if (this.position === 'bottom') {
|
|
140
|
-
this.top = (targetTop + targetHeight - 7 + this.topOffsetPx);
|
|
141
|
-
// default to left aligned
|
|
142
|
-
this.left = (targetLeft + this.leftOffsetPx);
|
|
143
|
-
if (this.alignment && this.alignment.toLowerCase() === 'right')
|
|
144
|
-
this.left = targetLeft + targetWidth - popoverWidth - 4 + this.leftOffsetPx;
|
|
145
|
-
if (this.showArrow)
|
|
146
|
-
this.top += 7;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
documentClick(e) {
|
|
150
|
-
if (SlickUtilsService.checkParentIdExists(e.target, this.elementId) === true) {
|
|
151
|
-
if (this.isVisible === true) {
|
|
152
|
-
this.containerDivRef.nativeElement.classList.remove("visible");
|
|
153
|
-
this.containerDivRef.nativeElement.classList.add("hidden");
|
|
154
|
-
this.isVisible = false;
|
|
155
|
-
}
|
|
156
|
-
else {
|
|
157
|
-
this.reposition();
|
|
158
|
-
this.containerDivRef.nativeElement.classList.remove("hidden");
|
|
159
|
-
this.containerDivRef.nativeElement.classList.add("visible");
|
|
160
|
-
this.isVisible = true;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
if (this.isVisible === true) {
|
|
165
|
-
this.containerDivRef.nativeElement.classList.remove("visible");
|
|
166
|
-
this.containerDivRef.nativeElement.classList.add("hidden");
|
|
167
|
-
this.isVisible = false;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
/** @nocollapse */ SlickPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SlickPopoverComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
173
|
-
/** @nocollapse */ SlickPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SlickPopoverComponent, selector: "slick-popover", inputs: { element: "element", position: "position", hoverDelay: "hoverDelay", outDelay: "outDelay", alignment: "alignment", topOffsetPx: "topOffsetPx", leftOffsetPx: "leftOffsetPx", whiteBackground: "whiteBackground", showByClick: "showByClick", showArrow: "showArrow" }, viewQueries: [{ propertyName: "containerDivRef", first: true, predicate: ["containerDivRef"], descendants: true, static: true }, { propertyName: "popoverContentRef", first: true, predicate: ["popoverContentRef"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div #containerDivRef id=\"slick-popover_{{uuid}}\" class=\"slick-popover slick-popover_{{position}}\" [style.top.px]=\"top\" [style.left.px]=\"left\">\r\n\t<div #popoverContentRef class=\"popover fade bs-popover-{{position}} show\">\r\n\t\t<div *ngIf=\"showArrow === true\" class=\"arrow\"></div>\r\n\t\t<div class=\"popover-body\"><ng-content></ng-content></div>\r\n\t</div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
174
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SlickPopoverComponent, decorators: [{
|
|
175
|
-
type: Component,
|
|
176
|
-
args: [{ selector: 'slick-popover', template: "<div #containerDivRef id=\"slick-popover_{{uuid}}\" class=\"slick-popover slick-popover_{{position}}\" [style.top.px]=\"top\" [style.left.px]=\"left\">\r\n\t<div #popoverContentRef class=\"popover fade bs-popover-{{position}} show\">\r\n\t\t<div *ngIf=\"showArrow === true\" class=\"arrow\"></div>\r\n\t\t<div class=\"popover-body\"><ng-content></ng-content></div>\r\n\t</div>\r\n</div>\r\n" }]
|
|
177
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { element: [{
|
|
178
|
-
type: Input
|
|
179
|
-
}], position: [{
|
|
180
|
-
type: Input
|
|
181
|
-
}], hoverDelay: [{
|
|
182
|
-
type: Input
|
|
183
|
-
}], outDelay: [{
|
|
184
|
-
type: Input
|
|
185
|
-
}], alignment: [{
|
|
186
|
-
type: Input
|
|
187
|
-
}], topOffsetPx: [{
|
|
188
|
-
type: Input
|
|
189
|
-
}], leftOffsetPx: [{
|
|
190
|
-
type: Input
|
|
191
|
-
}], whiteBackground: [{
|
|
192
|
-
type: Input
|
|
193
|
-
}], showByClick: [{
|
|
194
|
-
type: Input
|
|
195
|
-
}], showArrow: [{
|
|
196
|
-
type: Input
|
|
197
|
-
}], containerDivRef: [{
|
|
198
|
-
type: ViewChild,
|
|
199
|
-
args: ["containerDivRef", { static: true }]
|
|
200
|
-
}], popoverContentRef: [{
|
|
201
|
-
type: ViewChild,
|
|
202
|
-
args: ["popoverContentRef", { static: true }]
|
|
203
|
-
}] } });
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stcG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9zbGljay1wb3BvdmVyL3NsaWNrLXBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stcG9wb3Zlci9zbGljay1wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF3QyxTQUFTLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFNakUsTUFBTSxPQUFPLHFCQUFxQjtJQTZCakMsWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUEzQnpCLGFBQVEsR0FBVyxPQUFPLENBQUM7UUFDM0IsZUFBVSxHQUFXLEdBQUcsQ0FBQztRQUN6QixhQUFRLEdBQVcsR0FBRyxDQUFDO1FBQ3ZCLGNBQVMsR0FBVyxNQUFNLENBQUM7UUFDM0IsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFDeEIsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDekIsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsY0FBUyxHQUFZLElBQUksQ0FBQztRQVNuQyxpQkFBWSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN2QyxvQkFBZSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9DLGlCQUFZLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUs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SUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDdEI7U0FDRDthQUNJO1lBQ0osSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksRUFBRTtnQkFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDL0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7YUFDdkI7U0FDRDtJQUNGLENBQUM7O3FJQTVNVyxxQkFBcUI7eUhBQXJCLHFCQUFxQixtbEJDUmxDLHdZQU1BOzJGREVhLHFCQUFxQjtrQkFKakMsU0FBUzsrQkFDQyxlQUFlO2lHQUloQixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRTBDLGVBQWU7c0JBQTlELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNJLGlCQUFpQjtzQkFBbEUsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTbGlja1NsZWVwU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay1zbGVlcC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNsaWNrVXRpbHNTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLXV0aWxzLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnc2xpY2stcG9wb3ZlcicsXHJcblx0dGVtcGxhdGVVcmw6ICdzbGljay1wb3BvdmVyLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tQb3BvdmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cdEBJbnB1dCgpIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xyXG5cdEBJbnB1dCgpIHBvc2l0aW9uOiBzdHJpbmcgPSAncmlnaHQnO1xyXG5cdEBJbnB1dCgpIGhvdmVyRGVsYXk6IG51bWJlciA9IDI1MDtcclxuXHRASW5wdXQoKSBvdXREZWxheTogbnVtYmVyID0gMjUwO1xyXG5cdEBJbnB1dCgpIGFsaWdubWVudDogc3RyaW5nID0gXCJsZWZ0XCI7XHJcblx0QElucHV0KCkgdG9wT2Zmc2V0UHg6IG51bWJlciA9IDA7XHJcblx0QElucHV0KCkgbGVmdE9mZnNldFB4OiBudW1iZXIgPSAwO1xyXG5cdEBJbnB1dCgpIHdoaXRlQmFja2dyb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdEBJbnB1dCgpIHNob3dCeUNsaWNrOiBib29sZWFuID0gZmFsc2U7XHJcblx0QElucHV0KCkgc2hvd0Fycm93OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcblx0QFZpZXdDaGlsZChcImNvbnRhaW5lckRpdlJlZlwiLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb250YWluZXJEaXZSZWY6IEVsZW1lbnRSZWY7XHJcblx0QFZpZXdDaGlsZChcInBvcG92ZXJDb250ZW50UmVmXCIsIHsgc3RhdGljOiB0cnVlIH0pIHBvcG92ZXJDb250ZW50UmVmOiBFbGVtZW50UmVmO1xyXG5cdFxyXG5cdHV1aWQ6IHN0cmluZztcclxuXHR0b3A6IG51bWJlcjtcclxuXHRsZWZ0OiBudW1iZXI7XHJcblxyXG5cdGZuUmVwb3NpdGlvbiA9ICgpID0+IHRoaXMucmVwb3NpdGlvbigpO1xyXG5cdGZuRG9jdW1lbnRDbGljayA9IChlKSA9PiB0aGlzLmRvY3VtZW50Q2xpY2soZSk7XHJcblx0Zm5Nb3VzZUVudGVyID0gKCkgPT4gdGhpcy5tb3VzZUVudGVyKCk7XHJcblx0Zm5Nb3VzZUxlYXZlID0gKCkgPT4gdGhpcy5tb3VzZUxlYXZlKCk7XHJcblxyXG5cdGRpc3BsYXlUaW1lb3V0OiBOb2RlSlMuVGltZXI7XHJcblx0bGVhdmVUaW1lb3V0OiBOb2RlSlMuVGltZXI7XHJcblx0aXNWaXNpYmxlID0gZmFsc2U7XHJcblx0ZWxlbWVudElkOiBzdHJpbmc7XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHtcclxuXHRcdHRoaXMudXVpZCA9IFNsaWNrVXRpbHNTZXJ2aWNlLm5ld0d1aWQoKTtcdFx0XHJcblx0fVxyXG5cclxuXHRhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcblx0XHRpZiAoY2hhbmdlcy50b3BPZmZzZXRQeClcclxuXHRcdFx0dGhpcy50b3BPZmZzZXRQeCA9IHBhcnNlRmxvYXQoY2hhbmdlcy50b3BPZmZzZXRQeC5jdXJyZW50VmFsdWUpO1xyXG5cclxuXHRcdGlmIChjaGFuZ2VzLmxlZnRPZmZzZXRQeClcclxuXHRcdFx0dGhpcy5sZWZ0T2Zmc2V0UHggPSBwYXJzZUZsb2F0KGNoYW5nZXMubGVmdE9mZnNldFB4LmN1cnJlbnRWYWx1ZSk7XHJcblxyXG5cdFx0aWYgKGNoYW5nZXMucG9zaXRpb24pIHtcclxuXHRcdFx0dGhpcy5jb250YWluZXJEaXZSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiaGlkZGVuXCIpO1xyXG5cdFx0XHR0aGlzLmNvbnRhaW5lckRpdlJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJ2aXNpYmxlXCIpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChjaGFuZ2VzLnNob3dCeUNsaWNrKSBcclxuXHRcdFx0dGhpcy5zaG93QnlDbGljayA9ICh0aGlzLnNob3dCeUNsaWNrLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnKSA/IHRydWUgOiBmYWxzZTtcclxuXHJcblx0XHRpZiAoY2hhbmdlcy53aGl0ZUJhY2tncm91bmQgJiYgY2hhbmdlcy53aGl0ZUJhY2tncm91bmQuY3VycmVudFZhbHVlKVxyXG5cdFx0XHR0aGlzLndoaXRlQmFja2dyb3VuZCA9IChjaGFuZ2VzLndoaXRlQmFja2dyb3VuZC5jdXJyZW50VmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpICE9PSAnZmFsc2UnKTtcdFx0XHJcblxyXG5cdFx0aWYgKGNoYW5nZXMuc2hvd0Fycm93ICYmIGNoYW5nZXMuc2hvd0Fycm93LmN1cnJlbnRWYWx1ZSlcclxuXHRcdFx0dGhpcy5zaG93QXJyb3cgPSAoY2hhbmdlcy5zaG93QXJyb3cuY3VycmVudFZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSAhPT0gJ2ZhbHNlJyk7XHRcdFxyXG5cclxuXHRcdGF3YWl0IFNsaWNrU2xlZXBTZXJ2aWNlLnNsZWVwKCk7XHJcblx0XHR0aGlzLnJlcG9zaXRpb24oKTtcclxuXHR9XHJcblxyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHRcdHRoaXMuY29udGFpbmVyRGl2UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImhpZGRlblwiKTtcclxuXHRcdHRoaXMuY29udGFpbmVyRGl2UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcInNob3dBcnJvd1wiKTtcclxuXHJcblx0XHQvLyBSZW1vdmUgdGhpcyBmcm9tIHRoZSBpbmxpbmUgdmVyc2lvbiBhbmQgcHV0IGl0IG9uIHRoZSBib2R5IHNvIHRoYXQgaXQgZG9lc24ndCBoaWRlIGJlaGluZCB0aGUgYm90dG9tXHJcblx0XHQvLyBvZiBhIGRpdiB3aGVuIGl0IGV4cGFuZHMgYmV5b25kIHRoZSBib3R0b20uXHJcblx0XHQvL3RoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmUodGhpcy5lbCk7XHJcblx0XHRkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XHJcblxyXG5cdFx0Ly8gVGhpcyBpcyBuZWNlc3NhcnksIG90aGVyd2lzZSBgdGhpc2AgaW4gdGhlIHJlcG9zaXRpb24gZnVuY3Rpb24gd2lsbCBiZSB3aW5kb3dcclxuXHRcdC8vIGFuZCBub3QgdGhlIGNvbXBvbmVudC5cclxuXHRcdC8vIFNpbmNlIGFuZ3VsYXIgaGFzIG5vIHdheSB0byB1c2UgdGhlIHRoaXJkIHBhcmFtZXRlciwgSSdtIGRvaW5nIHRoaXMgaW4gcmF3IGpzXHJcblx0XHRpZiAodGhpcy5zaG93QnlDbGljayA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1xyXG5cdFx0XHRpZiAoIXRoaXMuZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJpZFwiKSlcclxuXHRcdFx0XHR0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsIGBzbGljay1wb3BvdmVyLWVsZW1lbnRfJHt0aGlzLnV1aWR9YCk7XHJcblxyXG5cdFx0XHR0aGlzLmVsZW1lbnRJZCA9IHRoaXMuZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJpZFwiKTtcclxuXHRcdH1cclxuXHRcdGVsc2Uge1xyXG5cdFx0XHR0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZW50ZXJcIiwgdGhpcy5mbk1vdXNlRW50ZXIpO1xyXG5cdFx0XHR0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZW50ZXJcIiwgdGhpcy5mbk1vdXNlRW50ZXIpO1xyXG5cdFx0XHR0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgdGhpcy5mbk1vdXNlTGVhdmUpO1xyXG5cdFx0XHR0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgdGhpcy5mbk1vdXNlTGVhdmUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1x0XHRcdFxyXG5cdFx0dGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWVudGVyXCIsIHRoaXMuZm5Nb3VzZUVudGVyKTtcclxuXHRcdHRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLCB0aGlzLmZuTW91c2VFbnRlcik7XHJcblx0XHR0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgdGhpcy5mbk1vdXNlTGVhdmUpO1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0dGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsIHRoaXMuZm5Nb3VzZUxlYXZlKTtcclxuXHRcdFx0ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xyXG5cdFx0fVxyXG5cdFx0Y2F0Y2ggeyB9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIG1vdXNlRW50ZXIoKSB7XHJcblx0XHRjbGVhclRpbWVvdXQodGhpcy5kaXNwbGF5VGltZW91dCk7XHJcblx0XHRjbGVhclRpbWVvdXQodGhpcy5sZWF2ZVRpbWVvdXQpO1xyXG5cdFx0dGhpcy5kaXNwbGF5VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHR0aGlzLnJlcG9zaXRpb24oKTtcclxuXHRcdFx0dGhpcy5jb250YWluZXJEaXZSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwiaGlkZGVuXCIpO1xyXG5cdFx0XHR0aGlzLmNvbnRhaW5lckRpdlJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJ2aXNpYmxlXCIpO1xyXG5cdFx0fSwgdGhpcy5ob3ZlckRlbGF5KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgbW91c2VMZWF2ZSgpIHtcclxuXHRcdGNsZWFyVGltZW91dCh0aGlzLmRpc3BsYXlUaW1lb3V0KTtcclxuXHRcdGNsZWFyVGltZW91dCh0aGlzLmxlYXZlVGltZW91dCk7XHJcblxyXG5cdFx0dGhpcy5sZWF2ZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dGhpcy5jb250YWluZXJEaXZSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiaGlkZGVuXCIpO1xyXG5cdFx0XHR0aGlzLmNvbnRhaW5lckRpdlJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJ2aXNpYmxlXCIpO1xyXG5cdFx0fSwgdGhpcy5vdXREZWxheSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFzeW5jIHJlcG9zaXRpb24oKSB7XHJcblx0XHRpZiAoIXRoaXMudG9wT2Zmc2V0UHgpXHJcblx0XHRcdHRoaXMudG9wT2Zmc2V0UHggPSAwO1xyXG5cclxuXHRcdGlmICghdGhpcy5sZWZ0T2Zmc2V0UHgpXHJcblx0XHRcdHRoaXMubGVmdE9mZnNldFB4ID0gMDtcclxuXHJcblx0XHRpZiAodGhpcy5zaG93QXJyb3cgPT09IHRydWUpXHJcblx0XHRcdHRoaXMuY29udGFpbmVyRGl2UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcInNob3dBcnJvd1wiKTtcclxuXHRcdGVsc2UgaWYgKHRoaXMuc2hvd0Fycm93ID09PSBmYWxzZSlcclxuXHRcdFx0dGhpcy5jb250YWluZXJEaXZSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwic2hvd0Fycm93XCIpO1xyXG5cclxuXHRcdGlmICh0aGlzLndoaXRlQmFja2dyb3VuZCA9PT0gdHJ1ZSlcclxuXHRcdFx0dGhpcy5jb250YWluZXJEaXZSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwid2hpdGVCYWNrZ3JvdW5kXCIpO1xyXG5cdFx0ZWxzZSBpZiAodGhpcy53aGl0ZUJhY2tncm91bmQgPT09IGZhbHNlKVxyXG5cdFx0XHR0aGlzLmNvbnRhaW5lckRpdlJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJ3aGl0ZUJhY2tncm91bmRcIik7XHJcblxyXG5cclxuXHRcdGxldCB0YXJnZXRSZWN0ID0gdGhpcy5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cdFx0bGV0IHRhcmdldExlZnQgPSB0YXJnZXRSZWN0LmxlZnQ7XHJcblx0XHRsZXQgdGFyZ2V0VG9wID0gdGFyZ2V0UmVjdC50b3A7XHJcblx0XHRsZXQgdGFyZ2V0SGVpZ2h0ID0gdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodDtcclxuXHRcdGxldCB0YXJnZXRXaWR0aCA9IHRhcmdldFJlY3Qud2lkdGg7XHJcblxyXG5cdFx0bGV0IHBvcG92ZXJIZWlnaHQgPSB0aGlzLnBvcG92ZXJDb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG5cdFx0bGV0IHBvcG92ZXJXaWR0aCA9IHRoaXMucG9wb3ZlckNvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcclxuXHJcblx0XHRpZiAodGhpcy5zaG93QXJyb3cpIHtcclxuXHRcdFx0cG9wb3ZlcldpZHRoICs9IDU7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMucG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG5cdFx0XHR0aGlzLnRvcCA9ICh0YXJnZXRUb3AgKyB0aGlzLnRvcE9mZnNldFB4KTtcclxuXHRcdFx0dGhpcy5sZWZ0ID0gKHRhcmdldExlZnQgLSBwb3BvdmVyV2lkdGggLSAzICsgdGhpcy5sZWZ0T2Zmc2V0UHgpO1xyXG5cdFx0XHRpZiAodGhpcy5zaG93QXJyb3cpXHJcblx0XHRcdFx0dGhpcy5sZWZ0IC09IDI7XHJcblx0XHR9XHJcblx0XHRlbHNlIGlmICh0aGlzLnBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcblx0XHRcdHRoaXMudG9wID0gKHRhcmdldFRvcCArIHRoaXMudG9wT2Zmc2V0UHgpO1xyXG5cdFx0XHR0aGlzLmxlZnQgPSAodGFyZ2V0TGVmdCArIHRhcmdldFdpZHRoIC03ICsgdGhpcy5sZWZ0T2Zmc2V0UHgpO1xyXG5cdFx0XHRpZiAodGhpcy5zaG93QXJyb3cpXHJcblx0XHRcdFx0dGhpcy5sZWZ0ICs9IDc7XHJcblx0XHR9XHJcblx0XHRlbHNlIGlmICh0aGlzLnBvc2l0aW9uID09PSAndG9wJykge1xyXG5cdFx0XHR0aGlzLnRvcCA9ICh0YXJnZXRUb3AgLSBwb3BvdmVySGVpZ2h0IC0gMyArIHRoaXMudG9wT2Zmc2V0UHgpO1xyXG5cdFx0XHR0aGlzLmxlZnQgPSAodGFyZ2V0TGVmdCArIHRoaXMubGVmdE9mZnNldFB4KTtcclxuXHRcdFx0Ly8gZGVmYXVsdCB0byBsZWZ0IGFsaWduZWRcclxuXHRcdFx0dGhpcy5sZWZ0ID0gKHRhcmdldExlZnQgKyB0aGlzLmxlZnRPZmZzZXRQeCk7XHJcblx0XHRcdGlmICh0aGlzLmFsaWdubWVudCAmJiB0aGlzLmFsaWdubWVudC50b0xvd2VyQ2FzZSgpID09PSAncmlnaHQnKVxyXG5cdFx0XHRcdHRoaXMubGVmdCA9IHRhcmdldExlZnQgKyB0YXJnZXRXaWR0aCAtIHBvcG92ZXJXaWR0aCAtIDQgKyB0aGlzLmxlZnRPZmZzZXRQeDtcclxuXHJcblx0XHRcdGlmICh0aGlzLnNob3dBcnJvdylcclxuXHRcdFx0XHR0aGlzLnRvcCAtPSA3O1xyXG5cdFx0fVxyXG5cdFx0ZWxzZSBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbScpIHtcdFx0XHRcclxuXHRcdFx0dGhpcy50b3AgPSAodGFyZ2V0VG9wICsgdGFyZ2V0SGVpZ2h0IC0gNyArIHRoaXMudG9wT2Zmc2V0UHgpO1xyXG5cdFx0XHQvLyBkZWZhdWx0IHRvIGxlZnQgYWxpZ25lZFxyXG5cdFx0XHR0aGlzLmxlZnQgPSAodGFyZ2V0TGVmdCArIHRoaXMubGVmdE9mZnNldFB4KTtcclxuXHRcdFx0aWYgKHRoaXMuYWxpZ25tZW50ICYmIHRoaXMuYWxpZ25tZW50LnRvTG93ZXJDYXNlKCkgPT09ICdyaWdodCcpXHJcblx0XHRcdFx0dGhpcy5sZWZ0ID0gdGFyZ2V0TGVmdCArIHRhcmdldFdpZHRoIC0gcG9wb3ZlcldpZHRoIC0gNCArIHRoaXMubGVmdE9mZnNldFB4O1xyXG5cdFx0XHRcclxuXHRcdFx0aWYgKHRoaXMuc2hvd0Fycm93KVxyXG5cdFx0XHRcdHRoaXMudG9wICs9IDc7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGRvY3VtZW50Q2xpY2soZTogTW91c2VFdmVudCkge1xyXG5cdFx0aWYgKFNsaWNrVXRpbHNTZXJ2aWNlLmNoZWNrUGFyZW50SWRFeGlzdHMoPEhUTUxFbGVtZW50PmUudGFyZ2V0LCB0aGlzLmVsZW1lbnRJZCkgPT09IHRydWUpIHtcclxuXHRcdFx0aWYgKHRoaXMuaXNWaXNpYmxlID09PSB0cnVlKSB7XHJcblx0XHRcdFx0dGhpcy5jb250YWluZXJEaXZSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwidmlzaWJsZVwiKTtcclxuXHRcdFx0XHR0aGlzLmNvbnRhaW5lckRpdlJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJoaWRkZW5cIik7XHJcblx0XHRcdFx0dGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRlbHNlIHtcclxuXHRcdFx0XHR0aGlzLnJlcG9zaXRpb24oKTtcclxuXHRcdFx0XHR0aGlzLmNvbnRhaW5lckRpdlJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJoaWRkZW5cIik7XHJcblx0XHRcdFx0dGhpcy5jb250YWluZXJEaXZSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwidmlzaWJsZVwiKTtcclxuXHRcdFx0XHR0aGlzLmlzVmlzaWJsZSA9IHRydWU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdGVsc2Uge1xyXG5cdFx0XHRpZiAodGhpcy5pc1Zpc2libGUgPT09IHRydWUpIHtcclxuXHRcdFx0XHR0aGlzLmNvbnRhaW5lckRpdlJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJ2aXNpYmxlXCIpO1xyXG5cdFx0XHRcdHRoaXMuY29udGFpbmVyRGl2UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImhpZGRlblwiKTtcclxuXHRcdFx0XHR0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIjxkaXYgI2NvbnRhaW5lckRpdlJlZiBpZD1cInNsaWNrLXBvcG92ZXJfe3t1dWlkfX1cIiBjbGFzcz1cInNsaWNrLXBvcG92ZXIgc2xpY2stcG9wb3Zlcl97e3Bvc2l0aW9ufX1cIiBbc3R5bGUudG9wLnB4XT1cInRvcFwiIFtzdHlsZS5sZWZ0LnB4XT1cImxlZnRcIj5cclxuXHQ8ZGl2ICNwb3BvdmVyQ29udGVudFJlZiBjbGFzcz1cInBvcG92ZXIgZmFkZSBicy1wb3BvdmVyLXt7cG9zaXRpb259fSBzaG93XCI+XHJcblx0XHQ8ZGl2ICpuZ0lmPVwic2hvd0Fycm93ID09PSB0cnVlXCIgY2xhc3M9XCJhcnJvd1wiPjwvZGl2PlxyXG5cdFx0PGRpdiBjbGFzcz1cInBvcG92ZXItYm9keVwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Rpdj5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|