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
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { Component, Input } from "@angular/core";
|
|
2
|
+
import { SlickSleepService } from "../utils/slick-sleep.service";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
export class SlickButtonSpinnerComponent {
|
|
6
|
+
constructor(el) {
|
|
7
|
+
this.el = el;
|
|
8
|
+
this.spinnerVisible = false;
|
|
9
|
+
this.checkVisible = false;
|
|
10
|
+
this.errorVisible = false;
|
|
11
|
+
this.currentStatus = "hidden";
|
|
12
|
+
this.inProcess = false;
|
|
13
|
+
this.expanded = false;
|
|
14
|
+
el.nativeElement.classList.add("slick-button-spinner");
|
|
15
|
+
}
|
|
16
|
+
ngOnInit() {
|
|
17
|
+
}
|
|
18
|
+
async ngAfterViewInit() {
|
|
19
|
+
this.originalPadding = this.el.nativeElement.style.paddingRight;
|
|
20
|
+
}
|
|
21
|
+
async ngOnChanges(changes) {
|
|
22
|
+
if (!changes.spinnerStatus || !changes.spinnerStatus.currentValue)
|
|
23
|
+
return;
|
|
24
|
+
switch (changes.spinnerStatus.currentValue.toLowerCase()) {
|
|
25
|
+
case 'spin':
|
|
26
|
+
if (this.inProcess === true) {
|
|
27
|
+
// If it's expanding, wait for it to finish, then collapse it
|
|
28
|
+
let waitInterval = setInterval(async () => {
|
|
29
|
+
if (this.inProcess === false) {
|
|
30
|
+
clearTimeout(waitInterval);
|
|
31
|
+
await this.expand();
|
|
32
|
+
this.hideError();
|
|
33
|
+
this.hideCheck();
|
|
34
|
+
this.showSpinner();
|
|
35
|
+
}
|
|
36
|
+
}, 50);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
await this.expand();
|
|
40
|
+
this.hideError();
|
|
41
|
+
this.hideCheck();
|
|
42
|
+
this.showSpinner();
|
|
43
|
+
}
|
|
44
|
+
break;
|
|
45
|
+
case 'ok':
|
|
46
|
+
if (this.inProcess === true) {
|
|
47
|
+
// If it's expanding, wait for it to finish, then collapse it
|
|
48
|
+
let waitInterval = setInterval(() => {
|
|
49
|
+
if (this.inProcess === false) {
|
|
50
|
+
clearTimeout(waitInterval);
|
|
51
|
+
this.hideSpinner();
|
|
52
|
+
this.hideError();
|
|
53
|
+
this.showCheck();
|
|
54
|
+
}
|
|
55
|
+
}, 50);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
this.hideSpinner();
|
|
59
|
+
this.hideError();
|
|
60
|
+
this.showCheck();
|
|
61
|
+
}
|
|
62
|
+
break;
|
|
63
|
+
case 'error':
|
|
64
|
+
if (this.inProcess === true) {
|
|
65
|
+
// If it's expanding, wait for it to finish, then collapse it
|
|
66
|
+
let waitInterval = setInterval(() => {
|
|
67
|
+
if (this.inProcess === false) {
|
|
68
|
+
clearTimeout(waitInterval);
|
|
69
|
+
this.hideSpinner();
|
|
70
|
+
this.hideCheck();
|
|
71
|
+
this.showError();
|
|
72
|
+
}
|
|
73
|
+
}, 50);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
this.hideSpinner();
|
|
77
|
+
this.hideCheck();
|
|
78
|
+
this.showError();
|
|
79
|
+
}
|
|
80
|
+
break;
|
|
81
|
+
case 'hide':
|
|
82
|
+
if (this.inProcess === true) {
|
|
83
|
+
// If it's expanding, wait for it to finish, then collapse it
|
|
84
|
+
let waitInterval = setInterval(() => {
|
|
85
|
+
if (this.inProcess === false) {
|
|
86
|
+
clearTimeout(waitInterval);
|
|
87
|
+
this.hideCheck();
|
|
88
|
+
this.hideError();
|
|
89
|
+
this.hideSpinner();
|
|
90
|
+
this.collapse();
|
|
91
|
+
}
|
|
92
|
+
}, 50);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
this.hideCheck();
|
|
96
|
+
this.hideError();
|
|
97
|
+
this.hideSpinner();
|
|
98
|
+
this.collapse();
|
|
99
|
+
}
|
|
100
|
+
case 'reset':
|
|
101
|
+
this.expanded = false;
|
|
102
|
+
this.hideCheck();
|
|
103
|
+
this.hideError();
|
|
104
|
+
this.hideSpinner();
|
|
105
|
+
this.el.nativeElement.disabled = false;
|
|
106
|
+
this.el.nativeElement.style.paddingRight = this.originalPadding;
|
|
107
|
+
this.el.nativeElement.classList.remove("expand-button-spinner");
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
showSpinner() {
|
|
112
|
+
this.spinnerVisible = true;
|
|
113
|
+
this.el.nativeElement.disabled = true;
|
|
114
|
+
}
|
|
115
|
+
hideSpinner() {
|
|
116
|
+
this.spinnerVisible = false;
|
|
117
|
+
this.el.nativeElement.disabled = false;
|
|
118
|
+
}
|
|
119
|
+
showCheck() {
|
|
120
|
+
this.checkVisible = true;
|
|
121
|
+
this.showCheckInterval = setTimeout(() => {
|
|
122
|
+
this.hideCheck();
|
|
123
|
+
this.hideError();
|
|
124
|
+
this.collapse();
|
|
125
|
+
}, 2500);
|
|
126
|
+
}
|
|
127
|
+
hideCheck() {
|
|
128
|
+
clearTimeout(this.showCheckInterval);
|
|
129
|
+
this.checkVisible = false;
|
|
130
|
+
}
|
|
131
|
+
showError() {
|
|
132
|
+
this.el.nativeElement.disabled = false;
|
|
133
|
+
this.errorVisible = true;
|
|
134
|
+
}
|
|
135
|
+
hideError() {
|
|
136
|
+
this.errorVisible = false;
|
|
137
|
+
}
|
|
138
|
+
async expand() {
|
|
139
|
+
if (this.inProcess === true || this.expanded === true) {
|
|
140
|
+
return Promise.resolve();
|
|
141
|
+
}
|
|
142
|
+
this.expanded = true;
|
|
143
|
+
this.inProcess = true;
|
|
144
|
+
this.el.nativeElement.classList.remove("collapse-button-spinner");
|
|
145
|
+
this.el.nativeElement.classList.add("expand-button-spinner");
|
|
146
|
+
await SlickSleepService.sleep(350);
|
|
147
|
+
this.originalPadding = this.el.nativeElement.style.paddingRight;
|
|
148
|
+
this.el.nativeElement.style.paddingRight = "35px";
|
|
149
|
+
this.inProcess = false;
|
|
150
|
+
return Promise.resolve();
|
|
151
|
+
}
|
|
152
|
+
async collapse() {
|
|
153
|
+
if (this.inProcess === true || this.expanded === false) {
|
|
154
|
+
return Promise.resolve();
|
|
155
|
+
}
|
|
156
|
+
this.expanded = false;
|
|
157
|
+
this.inProcess = true;
|
|
158
|
+
this.el.nativeElement.classList.remove("expand-button-spinner");
|
|
159
|
+
this.el.nativeElement.classList.add("collapse-button-spinner");
|
|
160
|
+
await SlickSleepService.sleep(500);
|
|
161
|
+
this.el.nativeElement.style.paddingRight = this.originalPadding;
|
|
162
|
+
this.inProcess = false;
|
|
163
|
+
Promise.resolve();
|
|
164
|
+
}
|
|
165
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickButtonSpinnerComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
166
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: SlickButtonSpinnerComponent, selector: "[slick-button-spinner]", inputs: { spinnerStatus: ["slick-button-spinner", "spinnerStatus"] }, usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content><div *ngIf=\"spinnerVisible\" class=\"slick-button-spinner_spin-icon\"></div><div *ngIf=\"checkVisible\" class=\"slick-button-spinner_check\"><i class=\"far fa-check-circle\"></i></div><div *ngIf=\"errorVisible\" class=\"slick-button-spinner_error\"><i class=\"far fa-times-circle\"></i></div>\r\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
167
|
+
}
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickButtonSpinnerComponent, decorators: [{
|
|
169
|
+
type: Component,
|
|
170
|
+
args: [{ selector: '[slick-button-spinner]', template: "<ng-content></ng-content><div *ngIf=\"spinnerVisible\" class=\"slick-button-spinner_spin-icon\"></div><div *ngIf=\"checkVisible\" class=\"slick-button-spinner_check\"><i class=\"far fa-check-circle\"></i></div><div *ngIf=\"errorVisible\" class=\"slick-button-spinner_error\"><i class=\"far fa-times-circle\"></i></div>\r\n" }]
|
|
171
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { spinnerStatus: [{
|
|
172
|
+
type: Input,
|
|
173
|
+
args: ['slick-button-spinner']
|
|
174
|
+
}] } });
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stYnV0dG9uLXNwaW5uZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stYnV0dG9uLXNwaW5uZXIvc2xpY2stYnV0dG9uLXNwaW5uZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stYnV0dG9uLXNwaW5uZXIvc2xpY2stYnV0dG9uLXNwaW5uZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQStELE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFNakUsTUFBTSxPQUFPLDJCQUEyQjtJQWF2QyxZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQVZsQyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUV0QixrQkFBYSxHQUFXLFFBQVEsQ0FBQztRQUNqQyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFLakMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO0lBQ2pFLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxJQUFJLENBQUMsT0FBTyxDQUFD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QkFBd0I7K0VBSUgsYUFBYTtzQkFBM0MsS0FBSzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBFbGVtZW50UmVmLCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFNsaWNrU2xlZXBTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLXNsZWVwLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnW3NsaWNrLWJ1dHRvbi1zcGlubmVyXScsXHJcblx0dGVtcGxhdGVVcmw6IFwic2xpY2stYnV0dG9uLXNwaW5uZXIuY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tCdXR0b25TcGlubmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG5cdEBJbnB1dCgnc2xpY2stYnV0dG9uLXNwaW5uZXInKSBzcGlubmVyU3RhdHVzOiBzdHJpbmc7XHJcblxyXG5cdHNwaW5uZXJWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblx0Y2hlY2tWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblx0ZXJyb3JWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdHByaXZhdGUgY3VycmVudFN0YXR1czogc3RyaW5nID0gXCJoaWRkZW5cIjtcclxuXHRwcml2YXRlIGluUHJvY2VzczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdHByaXZhdGUgZXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRwcml2YXRlIHNob3dDaGVja0ludGVydmFsOiBOb2RlSlMuVGltZW91dDtcclxuXHRwcml2YXRlIG9yaWdpbmFsUGFkZGluZzogc3RyaW5nO1xyXG5cclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7XHRcdFxyXG5cdFx0ZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwic2xpY2stYnV0dG9uLXNwaW5uZXJcIik7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHR9XHJcblxyXG5cdGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHRcdHRoaXMub3JpZ2luYWxQYWRkaW5nID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnBhZGRpbmdSaWdodDtcclxuXHR9XHJcblxyXG5cdGFzeW5jIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuXHRcdGlmICghY2hhbmdlcy5zcGlubmVyU3RhdHVzIHx8ICFjaGFuZ2VzLnNwaW5uZXJTdGF0dXMuY3VycmVudFZhbHVlKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0c3dpdGNoIChjaGFuZ2VzLnNwaW5uZXJTdGF0dXMuY3VycmVudFZhbHVlLnRvTG93ZXJDYXNlKCkpIHtcclxuXHRcdFx0Y2FzZSAnc3Bpbic6XHJcblx0XHRcdFx0aWYgKHRoaXMuaW5Qcm9jZXNzID09PSB0cnVlKSB7XHJcblx0XHRcdFx0XHQvLyBJZiBpdCdzIGV4cGFuZGluZywgd2FpdCBmb3IgaXQgdG8gZmluaXNoLCB0aGVuIGNvbGxhcHNlIGl0XHJcblx0XHRcdFx0XHRsZXQgd2FpdEludGVydmFsID0gc2V0SW50ZXJ2YWwoYXN5bmMgKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5pblByb2Nlc3MgPT09IGZhbHNlKSB7XHJcblx0XHRcdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KHdhaXRJbnRlcnZhbCk7XHJcblx0XHRcdFx0XHRcdFx0YXdhaXQgdGhpcy5leHBhbmQoKTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmhpZGVFcnJvcigpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuaGlkZUNoZWNrKCk7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5zaG93U3Bpbm5lcigpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LCA1MCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdFx0YXdhaXQgdGhpcy5leHBhbmQoKTtcclxuXHRcdFx0XHRcdHRoaXMuaGlkZUVycm9yKCk7XHJcblx0XHRcdFx0XHR0aGlzLmhpZGVDaGVjaygpO1xyXG5cdFx0XHRcdFx0dGhpcy5zaG93U3Bpbm5lcigpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRicmVhaztcclxuXHJcblx0XHRcdGNhc2UgJ29rJzpcclxuXHRcdFx0XHRpZiAodGhpcy5pblByb2Nlc3MgPT09IHRydWUpIHtcclxuXHRcdFx0XHRcdC8vIElmIGl0J3MgZXhwYW5kaW5nLCB3YWl0IGZvciBpdCB0byBmaW5pc2gsIHRoZW4gY29sbGFwc2UgaXRcclxuXHRcdFx0XHRcdGxldCB3YWl0SW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLmluUHJvY2VzcyA9PT0gZmFsc2UpIHtcclxuXHRcdFx0XHRcdFx0XHRjbGVhclRpbWVvdXQod2FpdEludGVydmFsKTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmhpZGVTcGlubmVyKCk7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5oaWRlRXJyb3IoKTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnNob3dDaGVjaygpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LCA1MCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5oaWRlU3Bpbm5lcigpO1xyXG5cdFx0XHRcdFx0dGhpcy5oaWRlRXJyb3IoKTtcclxuXHRcdFx0XHRcdHRoaXMuc2hvd0NoZWNrKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGJyZWFrO1xyXG5cclxuXHRcdFx0Y2FzZSAnZXJyb3InOlxyXG5cdFx0XHRcdGlmICh0aGlzLmluUHJvY2VzcyA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0Ly8gSWYgaXQncyBleHBhbmRpbmcsIHdhaXQgZm9yIGl0IHRvIGZpbmlzaCwgdGhlbiBjb2xsYXBzZSBpdFxyXG5cdFx0XHRcdFx0bGV0IHdhaXRJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMuaW5Qcm9jZXNzID09PSBmYWxzZSkge1xyXG5cdFx0XHRcdFx0XHRcdGNsZWFyVGltZW91dCh3YWl0SW50ZXJ2YWwpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuaGlkZVNwaW5uZXIoKTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmhpZGVDaGVjaygpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc2hvd0Vycm9yKCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sIDUwKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0XHR0aGlzLmhpZGVTcGlubmVyKCk7XHJcblx0XHRcdFx0XHR0aGlzLmhpZGVDaGVjaygpO1xyXG5cdFx0XHRcdFx0dGhpcy5zaG93RXJyb3IoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0YnJlYWs7XHJcblxyXG5cdFx0XHRjYXNlICdoaWRlJzpcclxuXHRcdFx0XHRpZiAodGhpcy5pblByb2Nlc3MgPT09IHRydWUpIHtcclxuXHRcdFx0XHRcdC8vIElmIGl0J3MgZXhwYW5kaW5nLCB3YWl0IGZvciBpdCB0byBmaW5pc2gsIHRoZW4gY29sbGFwc2UgaXRcclxuXHRcdFx0XHRcdGxldCB3YWl0SW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLmluUHJvY2VzcyA9PT0gZmFsc2UpIHtcclxuXHRcdFx0XHRcdFx0XHRjbGVhclRpbWVvdXQod2FpdEludGVydmFsKTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmhpZGVDaGVjaygpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuaGlkZUVycm9yKCk7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5oaWRlU3Bpbm5lcigpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuY29sbGFwc2UoKVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LCA1MCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5oaWRlQ2hlY2soKTtcclxuXHRcdFx0XHRcdHRoaXMuaGlkZUVycm9yKCk7XHJcblx0XHRcdFx0XHR0aGlzLmhpZGVTcGlubmVyKCk7XHJcblx0XHRcdFx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0Y2FzZSAncmVzZXQnOlxyXG5cdFx0XHRcdHRoaXMuZXhwYW5kZWQgPSBmYWxzZTtcclxuXHRcdFx0XHR0aGlzLmhpZGVDaGVjaygpO1xyXG5cdFx0XHRcdHRoaXMuaGlkZUVycm9yKCk7XHJcblx0XHRcdFx0dGhpcy5oaWRlU3Bpbm5lcigpO1xyXG5cdFx0XHRcdHRoaXMuZWwubmF0aXZlRWxlbWVudC5kaXNhYmxlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5wYWRkaW5nUmlnaHQgPSB0aGlzLm9yaWdpbmFsUGFkZGluZztcclxuXHRcdFx0XHR0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImV4cGFuZC1idXR0b24tc3Bpbm5lclwiKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc2hvd1NwaW5uZXIoKSB7XHJcblx0XHR0aGlzLnNwaW5uZXJWaXNpYmxlID0gdHJ1ZTtcclxuXHRcdHRoaXMuZWwubmF0aXZlRWxlbWVudC5kaXNhYmxlZCA9IHRydWU7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGhpZGVTcGlubmVyKCkge1xyXG5cdFx0dGhpcy5zcGlubmVyVmlzaWJsZSA9IGZhbHNlO1xyXG5cdFx0dGhpcy5lbC5uYXRpdmVFbGVtZW50LmRpc2FibGVkID0gZmFsc2U7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHNob3dDaGVjaygpIHtcclxuXHRcdHRoaXMuY2hlY2tWaXNpYmxlID0gdHJ1ZTtcclxuXHRcdHRoaXMuc2hvd0NoZWNrSW50ZXJ2YWwgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dGhpcy5oaWRlQ2hlY2soKTtcclxuXHRcdFx0dGhpcy5oaWRlRXJyb3IoKTtcclxuXHRcdFx0dGhpcy5jb2xsYXBzZSgpO1xyXG5cdFx0fSwgMjUwMCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGhpZGVDaGVjaygpIHtcclxuXHRcdGNsZWFyVGltZW91dCh0aGlzLnNob3dDaGVja0ludGVydmFsKTtcclxuXHRcdHRoaXMuY2hlY2tWaXNpYmxlID0gZmFsc2U7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHNob3dFcnJvcigpIHtcclxuXHRcdHRoaXMuZWwubmF0aXZlRWxlbWVudC5kaXNhYmxlZCA9IGZhbHNlO1xyXG5cdFx0dGhpcy5lcnJvclZpc2libGUgPSB0cnVlO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBoaWRlRXJyb3IoKSB7XHJcblx0XHR0aGlzLmVycm9yVmlzaWJsZSA9IGZhbHNlO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBhc3luYyBleHBhbmQoKTogUHJvbWlzZTx2b2lkPiB7XHJcblxyXG5cdFx0aWYgKHRoaXMuaW5Qcm9jZXNzID09PSB0cnVlIHx8IHRoaXMuZXhwYW5kZWQgPT09IHRydWUpIHtcclxuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuZXhwYW5kZWQgPSB0cnVlO1xyXG5cdFx0dGhpcy5pblByb2Nlc3MgPSB0cnVlO1xyXG5cdFx0dGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2xsYXBzZS1idXR0b24tc3Bpbm5lclwiKTtcclxuXHRcdHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiZXhwYW5kLWJ1dHRvbi1zcGlubmVyXCIpO1xyXG5cclxuXHRcdGF3YWl0IFNsaWNrU2xlZXBTZXJ2aWNlLnNsZWVwKDM1MCk7XHJcblx0XHR0aGlzLm9yaWdpbmFsUGFkZGluZyA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5wYWRkaW5nUmlnaHQ7XHJcblx0XHR0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUucGFkZGluZ1JpZ2h0ID0gXCIzNXB4XCI7XHJcblx0XHR0aGlzLmluUHJvY2VzcyA9IGZhbHNlO1xyXG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBhc3luYyBjb2xsYXBzZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuXHRcdGlmICh0aGlzLmluUHJvY2VzcyA9PT0gdHJ1ZSB8fCB0aGlzLmV4cGFuZGVkID09PSBmYWxzZSkge1xyXG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5leHBhbmRlZCA9IGZhbHNlO1xyXG5cdFx0dGhpcy5pblByb2Nlc3MgPSB0cnVlO1xyXG5cdFx0dGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJleHBhbmQtYnV0dG9uLXNwaW5uZXJcIik7XHJcblx0XHR0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImNvbGxhcHNlLWJ1dHRvbi1zcGlubmVyXCIpO1xyXG5cdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoNTAwKTtcclxuXHRcdHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5wYWRkaW5nUmlnaHQgPSB0aGlzLm9yaWdpbmFsUGFkZGluZztcclxuXHRcdHRoaXMuaW5Qcm9jZXNzID0gZmFsc2U7XHJcblx0XHRQcm9taXNlLnJlc29sdmUoKTtcclxuXHR9XHJcbn0iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+PGRpdiAqbmdJZj1cInNwaW5uZXJWaXNpYmxlXCIgY2xhc3M9XCJzbGljay1idXR0b24tc3Bpbm5lcl9zcGluLWljb25cIj48L2Rpdj48ZGl2ICpuZ0lmPVwiY2hlY2tWaXNpYmxlXCIgY2xhc3M9XCJzbGljay1idXR0b24tc3Bpbm5lcl9jaGVja1wiPjxpIGNsYXNzPVwiZmFyIGZhLWNoZWNrLWNpcmNsZVwiPjwvaT48L2Rpdj48ZGl2ICpuZ0lmPVwiZXJyb3JWaXNpYmxlXCIgY2xhc3M9XCJzbGljay1idXR0b24tc3Bpbm5lcl9lcnJvclwiPjxpIGNsYXNzPVwiZmFyIGZhLXRpbWVzLWNpcmNsZVwiPjwvaT48L2Rpdj5cclxuIl19
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { NgModule } from "@angular/core";
|
|
2
|
-
import { CommonModule } from "@angular/common";
|
|
3
|
-
import { SlickButtonSpinnerComponent } from "./slick-button-spinner.component";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class SlickButtonSpinnerModule {
|
|
6
|
-
}
|
|
7
|
-
/** @nocollapse */
|
|
8
|
-
/** @nocollapse */
|
|
9
|
-
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
11
|
-
type: NgModule,
|
|
12
|
-
args: [{
|
|
13
|
-
imports: [CommonModule],
|
|
14
|
-
declarations: [SlickButtonSpinnerComponent],
|
|
15
|
-
exports: [SlickButtonSpinnerComponent]
|
|
16
|
-
}]
|
|
17
|
-
}] });
|
|
18
|
-
export { SlickButtonSpinnerComponent };
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { SlickButtonSpinnerComponent } from "./slick-button-spinner.component";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class SlickButtonSpinnerModule {
|
|
6
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickButtonSpinnerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: SlickButtonSpinnerModule, declarations: [SlickButtonSpinnerComponent], imports: [CommonModule], exports: [SlickButtonSpinnerComponent] }); }
|
|
8
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickButtonSpinnerModule, imports: [CommonModule] }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickButtonSpinnerModule, decorators: [{
|
|
11
|
+
type: NgModule,
|
|
12
|
+
args: [{
|
|
13
|
+
imports: [CommonModule],
|
|
14
|
+
declarations: [SlickButtonSpinnerComponent],
|
|
15
|
+
exports: [SlickButtonSpinnerComponent]
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
export { SlickButtonSpinnerComponent };
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stYnV0dG9uLXNwaW5uZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stYnV0dG9uLXNwaW5uZXIvc2xpY2stYnV0dG9uLXNwaW5uZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQU8vRSxNQUFNLE9BQU8sd0JBQXdCO2lJQUF4Qix3QkFBd0I7a0lBQXhCLHdCQUF3QixpQkFIckIsMkJBQTJCLGFBRGhDLFlBQVksYUFFWiwyQkFBMkI7a0lBRXpCLHdCQUF3QixZQUoxQixZQUFZOzsyRkFJVix3QkFBd0I7a0JBTHBDLFFBQVE7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixZQUFZLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztvQkFDM0MsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7aUJBQ3RDOztBQUdELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IFNsaWNrQnV0dG9uU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gXCIuL3NsaWNrLWJ1dHRvbi1zcGlubmVyLmNvbXBvbmVudFwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuXHRkZWNsYXJhdGlvbnM6IFtTbGlja0J1dHRvblNwaW5uZXJDb21wb25lbnRdLFxyXG5cdGV4cG9ydHM6IFtTbGlja0J1dHRvblNwaW5uZXJDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbGlja0J1dHRvblNwaW5uZXJNb2R1bGUgeyB9XHJcblxyXG5leHBvcnQgeyBTbGlja0J1dHRvblNwaW5uZXJDb21wb25lbnQgfSJdfQ==
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import { Component, forwardRef, Input, Output, EventEmitter, HostListener } from "@angular/core";
|
|
2
|
+
import { SlickUtilsService } from "../utils/slick-utils.service";
|
|
3
|
+
import { NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
4
|
+
import moment from "moment";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
class DayModel {
|
|
8
|
+
}
|
|
9
|
+
class WeekModel {
|
|
10
|
+
}
|
|
11
|
+
class MonthModel {
|
|
12
|
+
}
|
|
13
|
+
export class SlickCalendarComponent {
|
|
14
|
+
onClick(event, targetElement) {
|
|
15
|
+
if (!targetElement || SlickUtilsService.checkParentClassExists(targetElement, "slickCalendar_month"))
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
constructor() {
|
|
19
|
+
this.condensed = false;
|
|
20
|
+
this.monthsToShow = 1;
|
|
21
|
+
this.monthsToIncrement = 1;
|
|
22
|
+
this.inactiveDates = [];
|
|
23
|
+
this.inactiveWeekends = false;
|
|
24
|
+
this.showDaysNotInMonth = false;
|
|
25
|
+
this.multiSelect = false;
|
|
26
|
+
this.multiSelectDatesChange = new EventEmitter();
|
|
27
|
+
this.onDateSelect = new EventEmitter();
|
|
28
|
+
this.onDateChange = new EventEmitter();
|
|
29
|
+
this.onMonthChange = new EventEmitter();
|
|
30
|
+
this.onMultiDateChange = new EventEmitter();
|
|
31
|
+
this.selectedDate = new Date();
|
|
32
|
+
this.visibleDate = new Date();
|
|
33
|
+
this.propagateChange = (_) => { };
|
|
34
|
+
this.uuid = SlickUtilsService.newGuid();
|
|
35
|
+
}
|
|
36
|
+
ngOnInit() {
|
|
37
|
+
this.recalc();
|
|
38
|
+
}
|
|
39
|
+
async ngOnChanges(changes) {
|
|
40
|
+
if (changes.condensed)
|
|
41
|
+
this.condensed = (this.condensed || 'false').toString().toLowerCase() === 'true' ? true : false;
|
|
42
|
+
if (changes.inactiveWeekends)
|
|
43
|
+
this.inactiveWeekends = (this.inactiveWeekends || 'true').toString().toLowerCase() === 'false' ? false : true;
|
|
44
|
+
if (changes.showDaysNotInMonth)
|
|
45
|
+
this.showDaysNotInMonth = (this.showDaysNotInMonth || 'false').toString().toLowerCase() === 'true' ? true : false;
|
|
46
|
+
if (changes.multiSelect)
|
|
47
|
+
this.multiSelect = (this.multiSelect || 'false').toString().toLowerCase() === 'true' ? true : false;
|
|
48
|
+
const widthPerCalendar = (this.condensed) ? 180 : 250;
|
|
49
|
+
this.minWidth = this.monthsToShow * widthPerCalendar;
|
|
50
|
+
this.recalc();
|
|
51
|
+
}
|
|
52
|
+
// this is the initial value set to the component
|
|
53
|
+
writeValue(obj) {
|
|
54
|
+
if (obj) {
|
|
55
|
+
if (moment(obj).isValid()) {
|
|
56
|
+
this.selectedDate = obj;
|
|
57
|
+
this.visibleDate = obj;
|
|
58
|
+
if (this.months) {
|
|
59
|
+
// Say we have 3 months showing and they select a date on the 3rd month
|
|
60
|
+
// Recalc will re-draw the 3rd month as the first month instead of just
|
|
61
|
+
// higlighting the date on the 3rd month. Highlight instead.
|
|
62
|
+
let dateFound = false;
|
|
63
|
+
for (let month of this.months) {
|
|
64
|
+
for (let week of month.weeks) {
|
|
65
|
+
for (let day of week.days) {
|
|
66
|
+
day.isSelected = false;
|
|
67
|
+
if (day.isInCurrentMonth === true && moment(day.date).isSame(this.selectedDate, "date")) {
|
|
68
|
+
day.isSelected = true;
|
|
69
|
+
dateFound = true;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// But if they've
|
|
75
|
+
if (dateFound === false)
|
|
76
|
+
this.recalc();
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this.recalc();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
this.selectedDate = null;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
if (!this.selectedDate && this.onDateChange)
|
|
88
|
+
this.onDateChange.emit(null);
|
|
89
|
+
this.selectedDate = null;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// registers 'fn' that will be fired when changes are made
|
|
93
|
+
// this is how we emit the changes back to the form
|
|
94
|
+
registerOnChange(fn) {
|
|
95
|
+
this.propagateChange = fn;
|
|
96
|
+
}
|
|
97
|
+
// not used, used for touch input
|
|
98
|
+
registerOnTouched() { }
|
|
99
|
+
prevMonth() {
|
|
100
|
+
this.visibleDate = moment(this.visibleDate).subtract(this.monthsToIncrement, "months").toDate();
|
|
101
|
+
this.recalc();
|
|
102
|
+
if (this.onMonthChange) {
|
|
103
|
+
let monthStart = moment(this.visibleDate).startOf("month");
|
|
104
|
+
if (this.showDaysNotInMonth === true)
|
|
105
|
+
monthStart = monthStart.startOf("week");
|
|
106
|
+
this.onMonthChange.emit(monthStart.toDate());
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
nextMonth() {
|
|
110
|
+
this.visibleDate = moment(this.visibleDate).add(this.monthsToIncrement, "months").toDate();
|
|
111
|
+
this.recalc();
|
|
112
|
+
if (this.onMonthChange) {
|
|
113
|
+
let monthStart = moment(this.visibleDate).startOf("month");
|
|
114
|
+
if (this.showDaysNotInMonth === true)
|
|
115
|
+
monthStart = monthStart.startOf("week");
|
|
116
|
+
this.onMonthChange.emit(monthStart.toDate());
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
selectMonth(monthIdx) {
|
|
120
|
+
const month = this.months[monthIdx];
|
|
121
|
+
let visibleDate = moment(this.visibleDate);
|
|
122
|
+
let dateString = month + visibleDate.format(" 1, YYYY");
|
|
123
|
+
this.visibleDate = moment(dateString, "MMMM DD, YYYY").toDate();
|
|
124
|
+
this.recalc();
|
|
125
|
+
}
|
|
126
|
+
setDate(dayModel) {
|
|
127
|
+
if (this.showDaysNotInMonth === false && dayModel.isInCurrentMonth === false)
|
|
128
|
+
return;
|
|
129
|
+
if (dayModel.isActive === false)
|
|
130
|
+
return;
|
|
131
|
+
if (this.multiSelect === false) {
|
|
132
|
+
this.selectedDate = dayModel.date;
|
|
133
|
+
this.visibleDate = dayModel.date;
|
|
134
|
+
this.propagateChange(this.selectedDate);
|
|
135
|
+
if (this.onDateChange)
|
|
136
|
+
this.onDateChange.emit(this.selectedDate);
|
|
137
|
+
if (this.onDateSelect)
|
|
138
|
+
this.onDateSelect.emit(this.selectedDate);
|
|
139
|
+
// Say we have 3 months showing and they select a date on the 3rd month
|
|
140
|
+
// Recalc will re-draw the 3rd month as the first month instead of just
|
|
141
|
+
// higlighting the date on the 3rd month. Highlight instead.
|
|
142
|
+
let dateFound = false;
|
|
143
|
+
for (let month of this.months) {
|
|
144
|
+
for (let week of month.weeks) {
|
|
145
|
+
for (let day of week.days) {
|
|
146
|
+
day.isSelected = false;
|
|
147
|
+
if (day.isInCurrentMonth === true && moment(day.date).isSame(this.selectedDate, "date")) {
|
|
148
|
+
day.isSelected = true;
|
|
149
|
+
dateFound = true;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
// But if they've
|
|
155
|
+
if (dateFound === false)
|
|
156
|
+
this.recalc();
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// This will be reversed since we haven't re-calced the dates yet.
|
|
160
|
+
if (!dayModel.isSelected)
|
|
161
|
+
this.multiSelectDates.push(dayModel.date);
|
|
162
|
+
else {
|
|
163
|
+
let dateIdx = this.multiSelectDates.findIndex(d => moment(d).startOf("date").isSame(moment(dayModel.date).startOf("date")));
|
|
164
|
+
this.multiSelectDates.splice(dateIdx, 1);
|
|
165
|
+
}
|
|
166
|
+
if (this.onMultiDateChange)
|
|
167
|
+
this.onMultiDateChange.emit(this.multiSelectDates);
|
|
168
|
+
for (let month of this.months) {
|
|
169
|
+
for (let week of month.weeks) {
|
|
170
|
+
for (let day of week.days) {
|
|
171
|
+
day.isSelected = false;
|
|
172
|
+
if (day.isInCurrentMonth === true && (this.multiSelectDates.findIndex(x => moment(x).isSame(moment(day.date), "date")) >= 0)) {
|
|
173
|
+
day.isSelected = true;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
recalc() {
|
|
181
|
+
this.months = [];
|
|
182
|
+
for (let monthCount = 0; monthCount < this.monthsToShow; monthCount++) {
|
|
183
|
+
let currentDate = moment(this.visibleDate).startOf("month");
|
|
184
|
+
currentDate = moment(currentDate).add(monthCount, "months");
|
|
185
|
+
currentDate = moment(currentDate).startOf("week").startOf("date");
|
|
186
|
+
const month = new MonthModel();
|
|
187
|
+
month.weeks = [];
|
|
188
|
+
// CurrentDate is most likely going to be the month before, so add 15 days to get to the middle of the current month
|
|
189
|
+
const monthToDisplay = moment(currentDate).add(15, "days");
|
|
190
|
+
month.monthDisplay = (this.condensed === true) ? monthToDisplay.format("MMM, YY") : monthToDisplay.format("MMMM, YYYY");
|
|
191
|
+
for (let weekCount = 0; weekCount < 6; weekCount++) {
|
|
192
|
+
const week = new WeekModel();
|
|
193
|
+
week.days = [];
|
|
194
|
+
for (let dayCount = 0; dayCount < 7; dayCount++) {
|
|
195
|
+
const day = new DayModel();
|
|
196
|
+
day.date = currentDate.toDate();
|
|
197
|
+
day.isToday = moment().isSame(currentDate, "date");
|
|
198
|
+
if (this.multiSelect && this.multiSelectDates)
|
|
199
|
+
day.isSelected = (this.multiSelectDates.findIndex(x => moment(x).isSame(moment(day.date), "date")) >= 0);
|
|
200
|
+
else
|
|
201
|
+
day.isSelected = moment(this.selectedDate).isSame(currentDate, "date");
|
|
202
|
+
day.isInCurrentMonth = (currentDate.month() === monthToDisplay.month());
|
|
203
|
+
day.isActive = true;
|
|
204
|
+
if (this.inactiveWeekends && currentDate.day() === 6 || currentDate.day() === 7)
|
|
205
|
+
day.isActive = false;
|
|
206
|
+
if (this.inactiveDates && this.inactiveDates.findIndex(x => moment(x).isSame(currentDate, "date")) >= 0)
|
|
207
|
+
day.isActive = false;
|
|
208
|
+
if (this.showDaysNotInMonth === false && day.isInCurrentMonth === false)
|
|
209
|
+
day.isActive = false;
|
|
210
|
+
// It's possible for the day to be in the month display, but hidden, but active
|
|
211
|
+
if (day.isActive === false)
|
|
212
|
+
day.isSelected = false;
|
|
213
|
+
if (day.isInCurrentMonth === false)
|
|
214
|
+
day.isSelected = false;
|
|
215
|
+
week.days.push(day);
|
|
216
|
+
currentDate = moment(currentDate).add(1, "days");
|
|
217
|
+
}
|
|
218
|
+
month.weeks.push(week);
|
|
219
|
+
}
|
|
220
|
+
this.months.push(month);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
224
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: SlickCalendarComponent, selector: "slick-calendar", inputs: { condensed: "condensed", monthsToShow: "monthsToShow", monthsToIncrement: "monthsToIncrement", inactiveDates: "inactiveDates", inactiveWeekends: "inactiveWeekends", showDaysNotInMonth: "showDaysNotInMonth", multiSelect: "multiSelect", multiSelectDates: "multiSelectDates" }, outputs: { multiSelectDatesChange: "multiSelectDatesChange", onDateSelect: "onDateSelect", onDateChange: "onDateChange", onMonthChange: "onMonthChange", onMultiDateChange: "onMultiDateChange" }, host: { listeners: { "click": "onClick($event,$event.target)" } }, providers: [
|
|
225
|
+
{
|
|
226
|
+
provide: NG_VALUE_ACCESSOR,
|
|
227
|
+
useExisting: forwardRef((() => SlickCalendarComponent)),
|
|
228
|
+
multi: true,
|
|
229
|
+
}
|
|
230
|
+
], usesOnChanges: true, ngImport: i0, template: "<div class=\"slick-calendar default-width card\" id=\"slick-calendar_{{uuid}}\" [style.minWidth.px]=\"minWidth\" [ngClass]=\"{'slick-calendar_condensed': condensed === true, 'slick-calendar_single': monthsToShow === 1 }\">\r\n\t<div class=\"slick-calendar_prev-month slick-calendar-arrow\" (click)=\"prevMonth()\" style=\"margin-left: 12px; margin-top: 3px;\"><i class=\"fas fa-long-arrow-left\" ></i></div>\r\n\t<div class=\"slick-calendar_next-month slick-calendar-arrow\" (click)=\"nextMonth()\" style=\"margin-right: 12px; margin-top: 3px;\"><i class=\"fas fa-long-arrow-right\" ></i></div>\r\n\r\n\t<div class=\"d-flex justify-content-around pt-2\" [ngClass]=\"{ 'mx-3': monthsToShow > 1, 'mx-1': monthsToShow === 1 }\">\r\n\t\t<div *ngFor=\"let month of months\" class=\"flex-fill mx-2\" style=\"text-align: center;max-width: 220px;\">\r\n\r\n\t\t\t<table class=\"table table-sm table-borderless calendarfix\" style=\"table-layout: fixed; \">\r\n\t\t\t\t<thead>\r\n\t\t\t\t\t<tr class=\"slick-calendar_month-display\">\r\n\t\t\t\t\t\t<td colspan=\"7\"><b>{{month.monthDisplay}}</b></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr class=\"slick-calendar_days-of-week text-dark\">\r\n\t\t\t\t\t\t<td><span *ngIf='condensed === false'>S</span><span *ngIf='condensed === true'>S</span></td>\r\n\t\t\t\t\t\t<td><span *ngIf='condensed === false'>M</span><span *ngIf='condensed === true'>M</span></td>\r\n\t\t\t\t\t\t<td><span *ngIf='condensed === false'>T</span><span *ngIf='condensed === true'>T</span></td>\r\n\t\t\t\t\t\t<td><span *ngIf='condensed === false'>W</span><span *ngIf='condensed === true'>W</span></td>\r\n\t\t\t\t\t\t<td><span *ngIf='condensed === false'>T</span><span *ngIf='condensed === true'>T</span></td>\r\n\t\t\t\t\t\t<td><span *ngIf='condensed === false'>F</span><span *ngIf='condensed === true'>F</span></td>\r\n\t\t\t\t\t\t<td><span *ngIf='condensed === false'>S</span><span *ngIf='condensed === true'>S</span></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</thead>\r\n\r\n\t\t\t\t<tbody>\r\n\t\t\t\t\t<tr *ngFor=\"let week of month.weeks\">\r\n\t\t\t\t\t\t<td *ngFor=\"let day of week.days\" (click)=\"setDate(day)\" class=\"slick-calendar_date\" [ngClass]=\"{ 'slick-calendar_is-today': day.isToday, 'bg-primary text-white': day.isSelected, 'slick-calendar_not_in_month': day.isInCurrentMonth === false, 'slick-calendar_inactive': day.isActive === false }\">\r\n\t\t\t\t\t\t\t<span *ngIf=\"showDaysNotInMonth === true || (showDaysNotInMonth === false && day.isInCurrentMonth === true)\">{{day.date | date:'d'}}</span>\r\n\t\t\t\t\t\t\t<span *ngIf=\"monthsToShow > 1 && (showDaysNotInMonth === false && day.isInCurrentMonth === false)\"> </span>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</tbody>\r\n\t\t\t</table>\r\n\r\n\r\n\t\t</div>\r\n\r\n\t</div>\r\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] }); }
|
|
231
|
+
}
|
|
232
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickCalendarComponent, decorators: [{
|
|
233
|
+
type: Component,
|
|
234
|
+
args: [{ selector: 'slick-calendar', providers: [
|
|
235
|
+
{
|
|
236
|
+
provide: NG_VALUE_ACCESSOR,
|
|
237
|
+
useExisting: forwardRef((() => SlickCalendarComponent)),
|
|
238
|
+
multi: true,
|
|
239
|
+
}
|
|
240
|
+
], template: "<div class=\"slick-calendar default-width card\" id=\"slick-calendar_{{uuid}}\" [style.minWidth.px]=\"minWidth\" [ngClass]=\"{'slick-calendar_condensed': condensed === true, 'slick-calendar_single': monthsToShow === 1 }\">\r\n\t<div class=\"slick-calendar_prev-month slick-calendar-arrow\" (click)=\"prevMonth()\" style=\"margin-left: 12px; margin-top: 3px;\"><i class=\"fas fa-long-arrow-left\" ></i></div>\r\n\t<div class=\"slick-calendar_next-month slick-calendar-arrow\" (click)=\"nextMonth()\" style=\"margin-right: 12px; margin-top: 3px;\"><i class=\"fas fa-long-arrow-right\" ></i></div>\r\n\r\n\t<div class=\"d-flex justify-content-around pt-2\" [ngClass]=\"{ 'mx-3': monthsToShow > 1, 'mx-1': monthsToShow === 1 }\">\r\n\t\t<div *ngFor=\"let month of months\" class=\"flex-fill mx-2\" style=\"text-align: center;max-width: 220px;\">\r\n\r\n\t\t\t<table class=\"table table-sm table-borderless calendarfix\" style=\"table-layout: fixed; \">\r\n\t\t\t\t<thead>\r\n\t\t\t\t\t<tr class=\"slick-calendar_month-display\">\r\n\t\t\t\t\t\t<td colspan=\"7\"><b>{{month.monthDisplay}}</b></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr class=\"slick-calendar_days-of-week text-dark\">\r\n\t\t\t\t\t\t<td><span *ngIf='condensed === false'>S</span><span *ngIf='condensed === true'>S</span></td>\r\n\t\t\t\t\t\t<td><span *ngIf='condensed === false'>M</span><span *ngIf='condensed === true'>M</span></td>\r\n\t\t\t\t\t\t<td><span *ngIf='condensed === false'>T</span><span *ngIf='condensed === true'>T</span></td>\r\n\t\t\t\t\t\t<td><span *ngIf='condensed === false'>W</span><span *ngIf='condensed === true'>W</span></td>\r\n\t\t\t\t\t\t<td><span *ngIf='condensed === false'>T</span><span *ngIf='condensed === true'>T</span></td>\r\n\t\t\t\t\t\t<td><span *ngIf='condensed === false'>F</span><span *ngIf='condensed === true'>F</span></td>\r\n\t\t\t\t\t\t<td><span *ngIf='condensed === false'>S</span><span *ngIf='condensed === true'>S</span></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</thead>\r\n\r\n\t\t\t\t<tbody>\r\n\t\t\t\t\t<tr *ngFor=\"let week of month.weeks\">\r\n\t\t\t\t\t\t<td *ngFor=\"let day of week.days\" (click)=\"setDate(day)\" class=\"slick-calendar_date\" [ngClass]=\"{ 'slick-calendar_is-today': day.isToday, 'bg-primary text-white': day.isSelected, 'slick-calendar_not_in_month': day.isInCurrentMonth === false, 'slick-calendar_inactive': day.isActive === false }\">\r\n\t\t\t\t\t\t\t<span *ngIf=\"showDaysNotInMonth === true || (showDaysNotInMonth === false && day.isInCurrentMonth === true)\">{{day.date | date:'d'}}</span>\r\n\t\t\t\t\t\t\t<span *ngIf=\"monthsToShow > 1 && (showDaysNotInMonth === false && day.isInCurrentMonth === false)\"> </span>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</tbody>\r\n\t\t\t</table>\r\n\r\n\r\n\t\t</div>\r\n\r\n\t</div>\r\n</div>" }]
|
|
241
|
+
}], ctorParameters: () => [], propDecorators: { condensed: [{
|
|
242
|
+
type: Input
|
|
243
|
+
}], monthsToShow: [{
|
|
244
|
+
type: Input
|
|
245
|
+
}], monthsToIncrement: [{
|
|
246
|
+
type: Input
|
|
247
|
+
}], inactiveDates: [{
|
|
248
|
+
type: Input
|
|
249
|
+
}], inactiveWeekends: [{
|
|
250
|
+
type: Input
|
|
251
|
+
}], showDaysNotInMonth: [{
|
|
252
|
+
type: Input
|
|
253
|
+
}], multiSelect: [{
|
|
254
|
+
type: Input
|
|
255
|
+
}], multiSelectDates: [{
|
|
256
|
+
type: Input
|
|
257
|
+
}], multiSelectDatesChange: [{
|
|
258
|
+
type: Output
|
|
259
|
+
}], onDateSelect: [{
|
|
260
|
+
type: Output
|
|
261
|
+
}], onDateChange: [{
|
|
262
|
+
type: Output
|
|
263
|
+
}], onMonthChange: [{
|
|
264
|
+
type: Output
|
|
265
|
+
}], onMultiDateChange: [{
|
|
266
|
+
type: Output
|
|
267
|
+
}], onClick: [{
|
|
268
|
+
type: HostListener,
|
|
269
|
+
args: ['click', ['$event', '$event.target']]
|
|
270
|
+
}] } });
|
|
271
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stY2FsZW5kYXIvc2xpY2stY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stY2FsZW5kYXIvc2xpY2stY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQW9DLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7QUFHNUIsTUFBTSxRQUFRO0NBTWI7QUFFRCxNQUFNLFNBQVM7Q0FFZDtBQUVELE1BQU0sVUFBVTtDQUdmO0FBWUQsTUFBTSxPQUFPLHNCQUFzQjtJQWdCbEMsT0FBTyxDQUFDLEtBQWlCLEVBQUUsYUFBMEI7UUFDcEQsSUFBSSxDQUFDLGFBQWEsSUFBSSxpQkFBaUIsQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUscUJBQXFCLENBQUM7WUFDbkcsT0FBTztJQUNULENBQUM7SUFRRDtRQTFCUyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBQ3pCLHNCQUFpQixHQUFXLENBQUMsQ0FBQztRQUM5QixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ3BDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTVCLDJCQUFzQixHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFFLGlCQUFZLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDNUQsaUJBQVksR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUM1RCxrQkFBYSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzdELHNCQUFpQixHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBUy9FLGlCQUFZLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNoQyxnQkFBVyxHQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUFnQy9CLG9CQUFlLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQTNCakMsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsUUFBUTtRQUNQLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLElBQUksT0FBTyxDQUFDLFNBQVM7WUFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUVqRyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0I7WUFDM0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFL0csSUFBSSxPQUFPLENBQUMsa0JBQWtCO1lBQzdCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRW5ILElBQUksT0FBTyxDQUFDLFdBQVc7WUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUVyRyxNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUN0RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUM7UUFFckQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBRWYsQ0FBQztJQUlELGlEQUFpRDtJQUNqRCxVQUFVLENBQUMsR0FBUTtRQUNsQixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1QsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO2dCQUV2QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFFakIsdUVBQXVFO29CQUN2RSx3RUFBd0U7b0JBQ3hFLDZEQUE2RDtvQkFDN0QsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO29CQUN0QixLQUFLLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQzt3QkFDL0IsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7NEJBQzlCLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dDQUMzQixHQUFHLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztnQ0FDdkIsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQ0FDekYsR0FBRyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7b0NBQ3RCLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0NBQ2xCLENBQUM7NEJBQ0YsQ0FBQzt3QkFDRixDQUFDO29CQUNGLENBQUM7b0JBRUQsa0JBQWtCO29CQUNsQixJQUFJLFNBQVMsS0FBSyxLQUFLO3dCQUN0QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2hCLENBQUM7cUJBQ0ksQ0FBQztvQkFDTCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2YsQ0FBQztZQUNGLENBQUM7aUJBQ0ksQ0FBQztnQkFDTCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUMxQixDQUFDO1FBQ0YsQ0FBQzthQUNJLENBQUM7WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWTtnQkFDMUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDMUIsQ0FBQztJQUNGLENBQUM7SUFFRCwwREFBMEQ7SUFDMUQsbURBQW1EO0lBQ25ELGdCQUFnQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGlDQUFpQztJQUNqQyxpQkFBaUIsS0FBSyxDQUFDO0lBRXZCLFNBQVM7UUFDUixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxRQUFRLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFZCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMzRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxJQUFJO2dCQUNuQyxVQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUV6QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0YsQ0FBQztJQUVELFNBQVM7UUFDUixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxRQUFRLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzRixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFZCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMzRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxJQUFJO2dCQUNuQyxVQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUV6QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0YsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFRO1FBQ25CLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEMsSUFBSSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQyxJQUFJLFVBQVUsR0FBRyxLQUFLLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV4RCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU8sQ0FBQyxRQUFrQjtRQUN6QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxLQUFLLElBQUksUUFBUSxDQUFDLGdCQUFnQixLQUFLLEtBQUs7WUFDM0UsT0FBTztRQUVSLElBQUksUUFBUSxDQUFDLFFBQVEsS0FBSyxLQUFLO1lBQzlCLE9BQU87UUFFUixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztZQUVqQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUV4QyxJQUFJLElBQUksQ0FBQyxZQUFZO2dCQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFM0MsSUFBSSxJQUFJLENBQUMsWUFBWTtnQkFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRTNDLHVFQUF1RTtZQUN2RSx3RUFBd0U7WUFDeEUsNkRBQTZEO1lBQzdELElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN0QixLQUFLLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDL0IsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQzlCLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO3dCQUMzQixHQUFHLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQzt3QkFDdkIsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQzs0QkFDekYsR0FBRyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7NEJBQ3RCLFNBQVMsR0FBRyxJQUFJLENBQUM7d0JBQ2xCLENBQUM7b0JBQ0YsQ0FBQztnQkFDRixDQUFDO1lBQ0YsQ0FBQztZQUVELGtCQUFrQjtZQUNsQixJQUFJLFNBQVMsS0FBSyxLQUFLO2dCQUN0QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsQ0FBQzthQUNJLENBQUM7WUFDTCxrRUFBa0U7WUFDbEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVO2dCQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDdEMsQ0FBQztnQkFDTCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM1SCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMxQyxDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsaUJBQWlCO2dCQUN6QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1lBRW5ELEtBQUssSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMvQixLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDOUIsS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQzNCLEdBQUcsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO3dCQUN2QixJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQzs0QkFDOUgsR0FBRyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7d0JBQ3ZCLENBQUM7b0JBQ0YsQ0FBQztnQkFDRixDQUFDO1lBQ0YsQ0FBQztRQUVGLENBQUM7SUFDRixDQUFDO0lBRU8sTUFBTTtRQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWpCLEtBQUssSUFBSSxVQUFVLEdBQUcsQ0FBQyxFQUFFLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDdkUsSUFBSSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUQsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1lBQzNELFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVsRSxNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQy9CLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBRWpCLG9IQUFvSDtZQUNwSCxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMzRCxLQUFLLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUV4SCxLQUFLLElBQUksU0FBUyxHQUFHLENBQUMsRUFBRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUM7Z0JBQ3BELE1BQU0sSUFBSSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUVmLEtBQUssSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFLFFBQVEsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQztvQkFDakQsTUFBTSxHQUFHLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztvQkFDM0IsR0FBRyxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2hDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFDbkQsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxnQkFBZ0I7d0JBQzVDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7O3dCQUV6RyxHQUFHLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFFeEUsR0FBRyxDQUFDLGdCQUFnQixHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO29CQUV4RSxHQUFHLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztvQkFFcEIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksV0FBVyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxXQUFXLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQzt3QkFDOUUsR0FBRyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7b0JBRXRCLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQzt3QkFDdEcsR0FBRyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7b0JBRXRCLElBQUksSUFBSSxDQUFDLGtCQUFrQixLQUFLLEtBQUssSUFBSSxHQUFHLENBQUMsZ0JBQWdCLEtBQUssS0FBSzt3QkFDdEUsR0FBRyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7b0JBRXRCLCtFQUErRTtvQkFDL0UsSUFBSSxHQUFHLENBQUMsUUFBUSxLQUFLLEtBQUs7d0JBQ3pCLEdBQUcsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO29CQUV4QixJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsS0FBSyxLQUFLO3dCQUNqQyxHQUFHLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztvQkFFeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBRXBCLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDbEQsQ0FBQztnQkFFRCxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QixDQUFDO1lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsQ0FBQztJQUNGLENBQUM7aUlBNVFXLHNCQUFzQjtxSEFBdEIsc0JBQXNCLDJrQkFQdkI7WUFDVjtnQkFDQyxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixFQUFDO2dCQUNyRCxLQUFLLEVBQUUsSUFBSTthQUNYO1NBQUMsK0NDL0JKLGt1RkFxQ007OzJGREpPLHNCQUFzQjtrQkFWbEMsU0FBUzsrQkFDQyxnQkFBZ0IsYUFFZjt3QkFDVjs0QkFDQyxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSx1QkFBdUIsRUFBQzs0QkFDckQsS0FBSyxFQUFFLElBQUk7eUJBQ1g7cUJBQUM7d0RBR00sU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0ksc0JBQXNCO3NCQUEvQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFHUCxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgT25Jbml0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU2xpY2tVdGlsc1NlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvc2xpY2stdXRpbHMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcblxyXG5cclxuY2xhc3MgRGF5TW9kZWwge1xyXG5cdGRhdGU6IERhdGU7XHJcblx0aXNTZWxlY3RlZDogYm9vbGVhbjtcclxuXHRpc1RvZGF5OiBib29sZWFuO1xyXG5cdGlzSW5DdXJyZW50TW9udGg6IGJvb2xlYW47XHJcblx0aXNBY3RpdmU6IGJvb2xlYW47XHJcbn1cclxuXHJcbmNsYXNzIFdlZWtNb2RlbCB7XHJcblx0ZGF5czogRGF5TW9kZWxbXTtcclxufVxyXG5cclxuY2xhc3MgTW9udGhNb2RlbCB7XHJcblx0bW9udGhEaXNwbGF5OiBzdHJpbmc7XHJcblx0d2Vla3M6IFdlZWtNb2RlbFtdXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnc2xpY2stY2FsZW5kYXInLFxyXG5cdHRlbXBsYXRlVXJsOiAnc2xpY2stY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHByb3ZpZGVyczogW1xyXG5cdFx0e1xyXG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2xpY2tDYWxlbmRhckNvbXBvbmVudCksXHJcblx0XHRcdG11bHRpOiB0cnVlLFxyXG5cdFx0fV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNsaWNrQ2FsZW5kYXJDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkNoYW5nZXMge1xyXG5cdEBJbnB1dCgpIGNvbmRlbnNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdEBJbnB1dCgpIG1vbnRoc1RvU2hvdzogbnVtYmVyID0gMTtcclxuXHRASW5wdXQoKSBtb250aHNUb0luY3JlbWVudDogbnVtYmVyID0gMTtcclxuXHRASW5wdXQoKSBpbmFjdGl2ZURhdGVzOiBEYXRlW10gPSBbXTtcclxuXHRASW5wdXQoKSBpbmFjdGl2ZVdlZWtlbmRzOiBib29sZWFuID0gZmFsc2U7XHJcblx0QElucHV0KCkgc2hvd0RheXNOb3RJbk1vbnRoOiBib29sZWFuID0gZmFsc2U7XHJcblx0QElucHV0KCkgbXVsdGlTZWxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRASW5wdXQoKSBtdWx0aVNlbGVjdERhdGVzOiBEYXRlW107XHJcblx0QE91dHB1dCgpIG11bHRpU2VsZWN0RGF0ZXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlW10+KCk7XHJcblx0QE91dHB1dCgpIG9uRGF0ZVNlbGVjdDogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG5cdEBPdXRwdXQoKSBvbkRhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuXHRAT3V0cHV0KCkgb25Nb250aENoYW5nZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG5cdEBPdXRwdXQoKSBvbk11bHRpRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGVbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVbXT4oKTtcclxuXHJcblx0QEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCcsICckZXZlbnQudGFyZ2V0J10pXHJcblx0b25DbGljayhldmVudDogTW91c2VFdmVudCwgdGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcclxuXHRcdGlmICghdGFyZ2V0RWxlbWVudCB8fCBTbGlja1V0aWxzU2VydmljZS5jaGVja1BhcmVudENsYXNzRXhpc3RzKHRhcmdldEVsZW1lbnQsIFwic2xpY2tDYWxlbmRhcl9tb250aFwiKSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cdH1cclxuXHJcblx0dXVpZDogc3RyaW5nO1xyXG5cdHNlbGVjdGVkRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcblx0dmlzaWJsZURhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cdG1vbnRoczogTW9udGhNb2RlbFtdO1xyXG5cdG1pbldpZHRoOiBudW1iZXI7XHJcblxyXG5cdGNvbnN0cnVjdG9yKCkge1xyXG5cdFx0dGhpcy51dWlkID0gU2xpY2tVdGlsc1NlcnZpY2UubmV3R3VpZCgpO1xyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHR0aGlzLnJlY2FsYygpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG5cdFx0aWYgKGNoYW5nZXMuY29uZGVuc2VkKVxyXG5cdFx0XHR0aGlzLmNvbmRlbnNlZCA9ICh0aGlzLmNvbmRlbnNlZCB8fCAnZmFsc2UnKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyA/IHRydWUgOiBmYWxzZTtcclxuXHJcblx0XHRpZiAoY2hhbmdlcy5pbmFjdGl2ZVdlZWtlbmRzKVxyXG5cdFx0XHR0aGlzLmluYWN0aXZlV2Vla2VuZHMgPSAodGhpcy5pbmFjdGl2ZVdlZWtlbmRzIHx8ICd0cnVlJykudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSAnZmFsc2UnID8gZmFsc2UgOiB0cnVlO1xyXG5cclxuXHRcdGlmIChjaGFuZ2VzLnNob3dEYXlzTm90SW5Nb250aClcclxuXHRcdFx0dGhpcy5zaG93RGF5c05vdEluTW9udGggPSAodGhpcy5zaG93RGF5c05vdEluTW9udGggfHwgJ2ZhbHNlJykudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScgPyB0cnVlIDogZmFsc2U7XHJcblxyXG5cdFx0aWYgKGNoYW5nZXMubXVsdGlTZWxlY3QpXHJcblx0XHRcdHRoaXMubXVsdGlTZWxlY3QgPSAodGhpcy5tdWx0aVNlbGVjdCB8fCAnZmFsc2UnKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyA/IHRydWUgOiBmYWxzZTtcclxuXHJcblx0XHRjb25zdCB3aWR0aFBlckNhbGVuZGFyID0gKHRoaXMuY29uZGVuc2VkKSA/IDE4MCA6IDI1MDtcclxuXHRcdHRoaXMubWluV2lkdGggPSB0aGlzLm1vbnRoc1RvU2hvdyAqIHdpZHRoUGVyQ2FsZW5kYXI7XHJcblxyXG5cdFx0dGhpcy5yZWNhbGMoKTtcclxuXHJcblx0fVxyXG5cclxuXHRwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcblxyXG5cdC8vIHRoaXMgaXMgdGhlIGluaXRpYWwgdmFsdWUgc2V0IHRvIHRoZSBjb21wb25lbnRcclxuXHR3cml0ZVZhbHVlKG9iajogYW55KSB7XHJcblx0XHRpZiAob2JqKSB7XHJcblx0XHRcdGlmIChtb21lbnQob2JqKS5pc1ZhbGlkKCkpIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkRGF0ZSA9IG9iajtcclxuXHRcdFx0XHR0aGlzLnZpc2libGVEYXRlID0gb2JqO1xyXG5cclxuXHRcdFx0XHRpZiAodGhpcy5tb250aHMpIHtcclxuXHJcblx0XHRcdFx0XHQvLyBTYXkgd2UgaGF2ZSAzIG1vbnRocyBzaG93aW5nIGFuZCB0aGV5IHNlbGVjdCBhIGRhdGUgb24gdGhlIDNyZCBtb250aFxyXG5cdFx0XHRcdFx0Ly8gUmVjYWxjIHdpbGwgcmUtZHJhdyB0aGUgM3JkIG1vbnRoIGFzIHRoZSBmaXJzdCBtb250aCBpbnN0ZWFkIG9mIGp1c3QgXHJcblx0XHRcdFx0XHQvLyBoaWdsaWdodGluZyB0aGUgZGF0ZSBvbiB0aGUgM3JkIG1vbnRoLiAgSGlnaGxpZ2h0IGluc3RlYWQuXHJcblx0XHRcdFx0XHRsZXQgZGF0ZUZvdW5kID0gZmFsc2U7XHJcblx0XHRcdFx0XHRmb3IgKGxldCBtb250aCBvZiB0aGlzLm1vbnRocykge1xyXG5cdFx0XHRcdFx0XHRmb3IgKGxldCB3ZWVrIG9mIG1vbnRoLndlZWtzKSB7XHJcblx0XHRcdFx0XHRcdFx0Zm9yIChsZXQgZGF5IG9mIHdlZWsuZGF5cykge1xyXG5cdFx0XHRcdFx0XHRcdFx0ZGF5LmlzU2VsZWN0ZWQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChkYXkuaXNJbkN1cnJlbnRNb250aCA9PT0gdHJ1ZSAmJiBtb21lbnQoZGF5LmRhdGUpLmlzU2FtZSh0aGlzLnNlbGVjdGVkRGF0ZSwgXCJkYXRlXCIpKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGRheS5pc1NlbGVjdGVkID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0ZUZvdW5kID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQvLyBCdXQgaWYgdGhleSd2ZSBcclxuXHRcdFx0XHRcdGlmIChkYXRlRm91bmQgPT09IGZhbHNlKVxyXG5cdFx0XHRcdFx0XHR0aGlzLnJlY2FsYygpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMucmVjYWxjKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWREYXRlID0gbnVsbDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0ZWxzZSB7XHJcblx0XHRcdGlmICghdGhpcy5zZWxlY3RlZERhdGUgJiYgdGhpcy5vbkRhdGVDaGFuZ2UpXHJcblx0XHRcdFx0dGhpcy5vbkRhdGVDaGFuZ2UuZW1pdChudWxsKTtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZERhdGUgPSBudWxsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gcmVnaXN0ZXJzICdmbicgdGhhdCB3aWxsIGJlIGZpcmVkIHdoZW4gY2hhbmdlcyBhcmUgbWFkZVxyXG5cdC8vIHRoaXMgaXMgaG93IHdlIGVtaXQgdGhlIGNoYW5nZXMgYmFjayB0byB0aGUgZm9ybVxyXG5cdHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG5cdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuXHR9XHJcblxyXG5cdC8vIG5vdCB1c2VkLCB1c2VkIGZvciB0b3VjaCBpbnB1dFxyXG5cdHJlZ2lzdGVyT25Ub3VjaGVkKCkgeyB9XHJcblxyXG5cdHByZXZNb250aCgpIHtcclxuXHRcdHRoaXMudmlzaWJsZURhdGUgPSBtb21lbnQodGhpcy52aXNpYmxlRGF0ZSkuc3VidHJhY3QodGhpcy5tb250aHNUb0luY3JlbWVudCwgXCJtb250aHNcIikudG9EYXRlKCk7XHJcblx0XHR0aGlzLnJlY2FsYygpO1xyXG5cclxuXHRcdGlmICh0aGlzLm9uTW9udGhDaGFuZ2UpIHtcclxuXHRcdFx0bGV0IG1vbnRoU3RhcnQgPSBtb21lbnQodGhpcy52aXNpYmxlRGF0ZSkuc3RhcnRPZihcIm1vbnRoXCIpO1xyXG5cdFx0XHRpZiAodGhpcy5zaG93RGF5c05vdEluTW9udGggPT09IHRydWUpXHJcblx0XHRcdFx0bW9udGhTdGFydCA9IG1vbnRoU3RhcnQuc3RhcnRPZihcIndlZWtcIik7XHJcblxyXG5cdFx0XHR0aGlzLm9uTW9udGhDaGFuZ2UuZW1pdChtb250aFN0YXJ0LnRvRGF0ZSgpKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG5leHRNb250aCgpIHtcclxuXHRcdHRoaXMudmlzaWJsZURhdGUgPSBtb21lbnQodGhpcy52aXNpYmxlRGF0ZSkuYWRkKHRoaXMubW9udGhzVG9JbmNyZW1lbnQsIFwibW9udGhzXCIpLnRvRGF0ZSgpO1xyXG5cdFx0dGhpcy5yZWNhbGMoKTtcclxuXHJcblx0XHRpZiAodGhpcy5vbk1vbnRoQ2hhbmdlKSB7XHJcblx0XHRcdGxldCBtb250aFN0YXJ0ID0gbW9tZW50KHRoaXMudmlzaWJsZURhdGUpLnN0YXJ0T2YoXCJtb250aFwiKTtcclxuXHRcdFx0aWYgKHRoaXMuc2hvd0RheXNOb3RJbk1vbnRoID09PSB0cnVlKVxyXG5cdFx0XHRcdG1vbnRoU3RhcnQgPSBtb250aFN0YXJ0LnN0YXJ0T2YoXCJ3ZWVrXCIpO1xyXG5cclxuXHRcdFx0dGhpcy5vbk1vbnRoQ2hhbmdlLmVtaXQobW9udGhTdGFydC50b0RhdGUoKSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRzZWxlY3RNb250aChtb250aElkeCkge1xyXG5cdFx0Y29uc3QgbW9udGggPSB0aGlzLm1vbnRoc1ttb250aElkeF07XHJcblx0XHRsZXQgdmlzaWJsZURhdGUgPSBtb21lbnQodGhpcy52aXNpYmxlRGF0ZSk7XHJcblx0XHRsZXQgZGF0ZVN0cmluZyA9IG1vbnRoICsgdmlzaWJsZURhdGUuZm9ybWF0KFwiIDEsIFlZWVlcIik7XHJcblxyXG5cdFx0dGhpcy52aXNpYmxlRGF0ZSA9IG1vbWVudChkYXRlU3RyaW5nLCBcIk1NTU0gREQsIFlZWVlcIikudG9EYXRlKCk7XHJcblx0XHR0aGlzLnJlY2FsYygpO1xyXG5cdH1cclxuXHJcblx0c2V0RGF0ZShkYXlNb2RlbDogRGF5TW9kZWwpIHtcclxuXHRcdGlmICh0aGlzLnNob3dEYXlzTm90SW5Nb250aCA9PT0gZmFsc2UgJiYgZGF5TW9kZWwuaXNJbkN1cnJlbnRNb250aCA9PT0gZmFsc2UpXHJcblx0XHRcdHJldHVybjtcclxuXHJcblx0XHRpZiAoZGF5TW9kZWwuaXNBY3RpdmUgPT09IGZhbHNlKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0aWYgKHRoaXMubXVsdGlTZWxlY3QgPT09IGZhbHNlKSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0ZWREYXRlID0gZGF5TW9kZWwuZGF0ZTtcclxuXHRcdFx0dGhpcy52aXNpYmxlRGF0ZSA9IGRheU1vZGVsLmRhdGU7XHJcblxyXG5cdFx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcblxyXG5cdFx0XHRpZiAodGhpcy5vbkRhdGVDaGFuZ2UpXHJcblx0XHRcdFx0dGhpcy5vbkRhdGVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcblxyXG5cdFx0XHRpZiAodGhpcy5vbkRhdGVTZWxlY3QpXHJcblx0XHRcdFx0dGhpcy5vbkRhdGVTZWxlY3QuZW1pdCh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcblxyXG5cdFx0XHQvLyBTYXkgd2UgaGF2ZSAzIG1vbnRocyBzaG93aW5nIGFuZCB0aGV5IHNlbGVjdCBhIGRhdGUgb24gdGhlIDNyZCBtb250aFxyXG5cdFx0XHQvLyBSZWNhbGMgd2lsbCByZS1kcmF3IHRoZSAzcmQgbW9udGggYXMgdGhlIGZpcnN0IG1vbnRoIGluc3RlYWQgb2YganVzdCBcclxuXHRcdFx0Ly8gaGlnbGlnaHRpbmcgdGhlIGRhdGUgb24gdGhlIDNyZCBtb250aC4gIEhpZ2hsaWdodCBpbnN0ZWFkLlxyXG5cdFx0XHRsZXQgZGF0ZUZvdW5kID0gZmFsc2U7XHJcblx0XHRcdGZvciAobGV0IG1vbnRoIG9mIHRoaXMubW9udGhzKSB7XHJcblx0XHRcdFx0Zm9yIChsZXQgd2VlayBvZiBtb250aC53ZWVrcykge1xyXG5cdFx0XHRcdFx0Zm9yIChsZXQgZGF5IG9mIHdlZWsuZGF5cykge1xyXG5cdFx0XHRcdFx0XHRkYXkuaXNTZWxlY3RlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRpZiAoZGF5LmlzSW5DdXJyZW50TW9udGggPT09IHRydWUgJiYgbW9tZW50KGRheS5kYXRlKS5pc1NhbWUodGhpcy5zZWxlY3RlZERhdGUsIFwiZGF0ZVwiKSkge1xyXG5cdFx0XHRcdFx0XHRcdGRheS5pc1NlbGVjdGVkID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRkYXRlRm91bmQgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBCdXQgaWYgdGhleSd2ZSBcclxuXHRcdFx0aWYgKGRhdGVGb3VuZCA9PT0gZmFsc2UpXHJcblx0XHRcdFx0dGhpcy5yZWNhbGMoKTtcclxuXHRcdH1cclxuXHRcdGVsc2Uge1xyXG5cdFx0XHQvLyBUaGlzIHdpbGwgYmUgcmV2ZXJzZWQgc2luY2Ugd2UgaGF2ZW4ndCByZS1jYWxjZWQgdGhlIGRhdGVzIHlldC5cclxuXHRcdFx0aWYgKCFkYXlNb2RlbC5pc1NlbGVjdGVkKVxyXG5cdFx0XHRcdHRoaXMubXVsdGlTZWxlY3REYXRlcy5wdXNoKGRheU1vZGVsLmRhdGUpO1xyXG5cdFx0XHRlbHNlIHtcclxuXHRcdFx0XHRsZXQgZGF0ZUlkeCA9IHRoaXMubXVsdGlTZWxlY3REYXRlcy5maW5kSW5kZXgoZCA9PiBtb21lbnQoZCkuc3RhcnRPZihcImRhdGVcIikuaXNTYW1lKG1vbWVudChkYXlNb2RlbC5kYXRlKS5zdGFydE9mKFwiZGF0ZVwiKSkpO1xyXG5cdFx0XHRcdHRoaXMubXVsdGlTZWxlY3REYXRlcy5zcGxpY2UoZGF0ZUlkeCwgMSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmICh0aGlzLm9uTXVsdGlEYXRlQ2hhbmdlKVxyXG5cdFx0XHRcdHRoaXMub25NdWx0aURhdGVDaGFuZ2UuZW1pdCh0aGlzLm11bHRpU2VsZWN0RGF0ZXMpXHJcblxyXG5cdFx0XHRmb3IgKGxldCBtb250aCBvZiB0aGlzLm1vbnRocykge1xyXG5cdFx0XHRcdGZvciAobGV0IHdlZWsgb2YgbW9udGgud2Vla3MpIHtcclxuXHRcdFx0XHRcdGZvciAobGV0IGRheSBvZiB3ZWVrLmRheXMpIHtcclxuXHRcdFx0XHRcdFx0ZGF5LmlzU2VsZWN0ZWQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0aWYgKGRheS5pc0luQ3VycmVudE1vbnRoID09PSB0cnVlICYmICh0aGlzLm11bHRpU2VsZWN0RGF0ZXMuZmluZEluZGV4KHggPT4gbW9tZW50KHgpLmlzU2FtZShtb21lbnQoZGF5LmRhdGUpLCBcImRhdGVcIikpID49IDApKSB7XHJcblx0XHRcdFx0XHRcdFx0ZGF5LmlzU2VsZWN0ZWQgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSByZWNhbGMoKSB7XHJcblx0XHR0aGlzLm1vbnRocyA9IFtdO1xyXG5cclxuXHRcdGZvciAobGV0IG1vbnRoQ291bnQgPSAwOyBtb250aENvdW50IDwgdGhpcy5tb250aHNUb1Nob3c7IG1vbnRoQ291bnQrKykge1xyXG5cdFx0XHRsZXQgY3VycmVudERhdGUgPSBtb21lbnQodGhpcy52aXNpYmxlRGF0ZSkuc3RhcnRPZihcIm1vbnRoXCIpO1xyXG5cdFx0XHRjdXJyZW50RGF0ZSA9IG1vbWVudChjdXJyZW50RGF0ZSkuYWRkKG1vbnRoQ291bnQsIFwibW9udGhzXCIpXHJcblx0XHRcdGN1cnJlbnREYXRlID0gbW9tZW50KGN1cnJlbnREYXRlKS5zdGFydE9mKFwid2Vla1wiKS5zdGFydE9mKFwiZGF0ZVwiKTtcclxuXHJcblx0XHRcdGNvbnN0IG1vbnRoID0gbmV3IE1vbnRoTW9kZWwoKTtcclxuXHRcdFx0bW9udGgud2Vla3MgPSBbXTtcclxuXHJcblx0XHRcdC8vIEN1cnJlbnREYXRlIGlzIG1vc3QgbGlrZWx5IGdvaW5nIHRvIGJlIHRoZSBtb250aCBiZWZvcmUsIHNvIGFkZCAxNSBkYXlzIHRvIGdldCB0byB0aGUgbWlkZGxlIG9mIHRoZSBjdXJyZW50IG1vbnRoXHJcblx0XHRcdGNvbnN0IG1vbnRoVG9EaXNwbGF5ID0gbW9tZW50KGN1cnJlbnREYXRlKS5hZGQoMTUsIFwiZGF5c1wiKTtcclxuXHRcdFx0bW9udGgubW9udGhEaXNwbGF5ID0gKHRoaXMuY29uZGVuc2VkID09PSB0cnVlKSA/IG1vbnRoVG9EaXNwbGF5LmZvcm1hdChcIk1NTSwgWVlcIikgOiBtb250aFRvRGlzcGxheS5mb3JtYXQoXCJNTU1NLCBZWVlZXCIpO1xyXG5cclxuXHRcdFx0Zm9yIChsZXQgd2Vla0NvdW50ID0gMDsgd2Vla0NvdW50IDwgNjsgd2Vla0NvdW50KyspIHtcclxuXHRcdFx0XHRjb25zdCB3ZWVrID0gbmV3IFdlZWtNb2RlbCgpO1xyXG5cdFx0XHRcdHdlZWsuZGF5cyA9IFtdO1xyXG5cclxuXHRcdFx0XHRmb3IgKGxldCBkYXlDb3VudCA9IDA7IGRheUNvdW50IDwgNzsgZGF5Q291bnQrKykge1xyXG5cdFx0XHRcdFx0Y29uc3QgZGF5ID0gbmV3IERheU1vZGVsKCk7XHJcblx0XHRcdFx0XHRkYXkuZGF0ZSA9IGN1cnJlbnREYXRlLnRvRGF0ZSgpO1xyXG5cdFx0XHRcdFx0ZGF5LmlzVG9kYXkgPSBtb21lbnQoKS5pc1NhbWUoY3VycmVudERhdGUsIFwiZGF0ZVwiKTtcclxuXHRcdFx0XHRcdGlmICh0aGlzLm11bHRpU2VsZWN0ICYmIHRoaXMubXVsdGlTZWxlY3REYXRlcylcclxuXHRcdFx0XHRcdFx0ZGF5LmlzU2VsZWN0ZWQgPSAodGhpcy5tdWx0aVNlbGVjdERhdGVzLmZpbmRJbmRleCh4ID0+IG1vbWVudCh4KS5pc1NhbWUobW9tZW50KGRheS5kYXRlKSwgXCJkYXRlXCIpKSA+PSAwKTtcclxuXHRcdFx0XHRcdGVsc2VcclxuXHRcdFx0XHRcdFx0ZGF5LmlzU2VsZWN0ZWQgPSBtb21lbnQodGhpcy5zZWxlY3RlZERhdGUpLmlzU2FtZShjdXJyZW50RGF0ZSwgXCJkYXRlXCIpO1xyXG5cclxuXHRcdFx0XHRcdGRheS5pc0luQ3VycmVudE1vbnRoID0gKGN1cnJlbnREYXRlLm1vbnRoKCkgPT09IG1vbnRoVG9EaXNwbGF5Lm1vbnRoKCkpO1xyXG5cclxuXHRcdFx0XHRcdGRheS5pc0FjdGl2ZSA9IHRydWU7XHJcblxyXG5cdFx0XHRcdFx0aWYgKHRoaXMuaW5hY3RpdmVXZWVrZW5kcyAmJiBjdXJyZW50RGF0ZS5kYXkoKSA9PT0gNiB8fCBjdXJyZW50RGF0ZS5kYXkoKSA9PT0gNylcclxuXHRcdFx0XHRcdFx0ZGF5LmlzQWN0aXZlID0gZmFsc2U7XHJcblxyXG5cdFx0XHRcdFx0aWYgKHRoaXMuaW5hY3RpdmVEYXRlcyAmJiB0aGlzLmluYWN0aXZlRGF0ZXMuZmluZEluZGV4KHggPT4gbW9tZW50KHgpLmlzU2FtZShjdXJyZW50RGF0ZSwgXCJkYXRlXCIpKSA+PSAwKVxyXG5cdFx0XHRcdFx0XHRkYXkuaXNBY3RpdmUgPSBmYWxzZTtcclxuXHJcblx0XHRcdFx0XHRpZiAodGhpcy5zaG93RGF5c05vdEluTW9udGggPT09IGZhbHNlICYmIGRheS5pc0luQ3VycmVudE1vbnRoID09PSBmYWxzZSlcclxuXHRcdFx0XHRcdFx0ZGF5LmlzQWN0aXZlID0gZmFsc2U7XHJcblxyXG5cdFx0XHRcdFx0Ly8gSXQncyBwb3NzaWJsZSBmb3IgdGhlIGRheSB0byBiZSBpbiB0aGUgbW9udGggZGlzcGxheSwgYnV0IGhpZGRlbiwgYnV0IGFjdGl2ZVxyXG5cdFx0XHRcdFx0aWYgKGRheS5pc0FjdGl2ZSA9PT0gZmFsc2UpXHJcblx0XHRcdFx0XHRcdGRheS5pc1NlbGVjdGVkID0gZmFsc2U7XHJcblxyXG5cdFx0XHRcdFx0aWYgKGRheS5pc0luQ3VycmVudE1vbnRoID09PSBmYWxzZSlcclxuXHRcdFx0XHRcdFx0ZGF5LmlzU2VsZWN0ZWQgPSBmYWxzZTtcclxuXHJcblx0XHRcdFx0XHR3ZWVrLmRheXMucHVzaChkYXkpO1xyXG5cclxuXHRcdFx0XHRcdGN1cnJlbnREYXRlID0gbW9tZW50KGN1cnJlbnREYXRlKS5hZGQoMSwgXCJkYXlzXCIpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0bW9udGgud2Vla3MucHVzaCh3ZWVrKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dGhpcy5tb250aHMucHVzaChtb250aCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxufSIsIjxkaXYgY2xhc3M9XCJzbGljay1jYWxlbmRhciBkZWZhdWx0LXdpZHRoIGNhcmRcIiBpZD1cInNsaWNrLWNhbGVuZGFyX3t7dXVpZH19XCIgW3N0eWxlLm1pbldpZHRoLnB4XT1cIm1pbldpZHRoXCIgW25nQ2xhc3NdPVwieydzbGljay1jYWxlbmRhcl9jb25kZW5zZWQnOiBjb25kZW5zZWQgPT09IHRydWUsICdzbGljay1jYWxlbmRhcl9zaW5nbGUnOiBtb250aHNUb1Nob3cgPT09IDEgfVwiPlxyXG5cdDxkaXYgY2xhc3M9XCJzbGljay1jYWxlbmRhcl9wcmV2LW1vbnRoIHNsaWNrLWNhbGVuZGFyLWFycm93XCIgKGNsaWNrKT1cInByZXZNb250aCgpXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogMTJweDsgbWFyZ2luLXRvcDogM3B4O1wiPjxpIGNsYXNzPVwiZmFzIGZhLWxvbmctYXJyb3ctbGVmdFwiID48L2k+PC9kaXY+XHJcblx0PGRpdiBjbGFzcz1cInNsaWNrLWNhbGVuZGFyX25leHQtbW9udGggc2xpY2stY2FsZW5kYXItYXJyb3dcIiAoY2xpY2spPVwibmV4dE1vbnRoKClcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTJweDsgbWFyZ2luLXRvcDogM3B4O1wiPjxpIGNsYXNzPVwiZmFzIGZhLWxvbmctYXJyb3ctcmlnaHRcIiA+PC9pPjwvZGl2PlxyXG5cclxuXHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1hcm91bmQgcHQtMlwiIFtuZ0NsYXNzXT1cInsgJ214LTMnOiBtb250aHNUb1Nob3cgPiAxLCAnbXgtMSc6IG1vbnRoc1RvU2hvdyA9PT0gMSB9XCI+XHJcblx0XHQ8ZGl2ICpuZ0Zvcj1cImxldCBtb250aCBvZiBtb250aHNcIiBjbGFzcz1cImZsZXgtZmlsbCBteC0yXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7bWF4LXdpZHRoOiAyMjBweDtcIj5cclxuXHJcblx0XHRcdDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLXNtIHRhYmxlLWJvcmRlcmxlc3MgY2FsZW5kYXJmaXhcIiBzdHlsZT1cInRhYmxlLWxheW91dDogZml4ZWQ7IFwiPlxyXG5cdFx0XHRcdDx0aGVhZD5cclxuXHRcdFx0XHRcdDx0ciBjbGFzcz1cInNsaWNrLWNhbGVuZGFyX21vbnRoLWRpc3BsYXlcIj5cclxuXHRcdFx0XHRcdFx0PHRkIGNvbHNwYW49XCI3XCI+PGI+e3ttb250aC5tb250aERpc3BsYXl9fTwvYj48L3RkPlxyXG5cdFx0XHRcdFx0PC90cj5cclxuXHRcdFx0XHRcdDx0ciBjbGFzcz1cInNsaWNrLWNhbGVuZGFyX2RheXMtb2Ytd2VlayB0ZXh0LWRhcmtcIj5cclxuXHRcdFx0XHRcdFx0PHRkPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IGZhbHNlJz5TPC9zcGFuPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IHRydWUnPlM8L3NwYW4+PC90ZD5cclxuXHRcdFx0XHRcdFx0PHRkPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IGZhbHNlJz5NPC9zcGFuPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IHRydWUnPk08L3NwYW4+PC90ZD5cclxuXHRcdFx0XHRcdFx0PHRkPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IGZhbHNlJz5UPC9zcGFuPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IHRydWUnPlQ8L3NwYW4+PC90ZD5cclxuXHRcdFx0XHRcdFx0PHRkPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IGZhbHNlJz5XPC9zcGFuPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IHRydWUnPlc8L3NwYW4+PC90ZD5cclxuXHRcdFx0XHRcdFx0PHRkPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IGZhbHNlJz5UPC9zcGFuPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IHRydWUnPlQ8L3NwYW4+PC90ZD5cclxuXHRcdFx0XHRcdFx0PHRkPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IGZhbHNlJz5GPC9zcGFuPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IHRydWUnPkY8L3NwYW4+PC90ZD5cclxuXHRcdFx0XHRcdFx0PHRkPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IGZhbHNlJz5TPC9zcGFuPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IHRydWUnPlM8L3NwYW4+PC90ZD5cclxuXHRcdFx0XHRcdDwvdHI+XHJcblx0XHRcdFx0PC90aGVhZD5cclxuXHJcblx0XHRcdFx0PHRib2R5PlxyXG5cdFx0XHRcdFx0PHRyICpuZ0Zvcj1cImxldCB3ZWVrIG9mIG1vbnRoLndlZWtzXCI+XHJcblx0XHRcdFx0XHRcdDx0ZCAqbmdGb3I9XCJsZXQgZGF5IG9mIHdlZWsuZGF5c1wiIChjbGljayk9XCJzZXREYXRlKGRheSlcIiBjbGFzcz1cInNsaWNrLWNhbGVuZGFyX2RhdGVcIiBbbmdDbGFzc109XCJ7ICdzbGljay1jYWxlbmRhcl9pcy10b2RheSc6IGRheS5pc1RvZGF5LCAnYmctcHJpbWFyeSB0ZXh0LXdoaXRlJzogZGF5LmlzU2VsZWN0ZWQsICdzbGljay1jYWxlbmRhcl9ub3RfaW5fbW9udGgnOiBkYXkuaXNJbkN1cnJlbnRNb250aCA9PT0gZmFsc2UsICdzbGljay1jYWxlbmRhcl9pbmFjdGl2ZSc6IGRheS5pc0FjdGl2ZSA9PT0gZmFsc2UgfVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuICpuZ0lmPVwic2hvd0RheXNOb3RJbk1vbnRoID09PSB0cnVlIHx8IChzaG93RGF5c05vdEluTW9udGggPT09IGZhbHNlICYmIGRheS5pc0luQ3VycmVudE1vbnRoID09PSB0cnVlKVwiPnt7ZGF5LmRhdGUgfCBkYXRlOidkJ319PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuICpuZ0lmPVwibW9udGhzVG9TaG93ID4gMSAmJiAoc2hvd0RheXNOb3RJbk1vbnRoID09PSBmYWxzZSAmJiBkYXkuaXNJbkN1cnJlbnRNb250aCA9PT0gZmFsc2UpXCI+Jm5ic3A7PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdFx0PC90cj5cclxuXHRcdFx0XHQ8L3Rib2R5PlxyXG5cdFx0XHQ8L3RhYmxlPlxyXG5cclxuXHJcblx0XHQ8L2Rpdj5cclxuXHJcblx0PC9kaXY+XHJcbjwvZGl2PiJdfQ==
|