slick-components 4.4.13 → 4.4.16
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/css/slick-components.css +598 -365
- package/css/slick-components.min.css +1 -1
- package/esm2020/public-api.mjs +43 -0
- package/esm2020/slick-accordion/slick-accordion-item-header.component.mjs +14 -0
- package/esm2020/slick-accordion/slick-accordion-item.component.mjs +86 -0
- package/esm2020/slick-accordion/slick-accordion.component.mjs +75 -0
- package/esm2020/slick-accordion/slick-accordion.module.mjs +23 -0
- package/esm2020/slick-auto-complete/slick-auto-complete-list-item-template.directive.mjs +22 -0
- package/esm2020/slick-auto-complete/slick-auto-complete.component.mjs +375 -0
- package/esm2020/slick-auto-complete/slick-auto-complete.module.mjs +24 -0
- package/esm2020/slick-button-spinner/slick-button-spinner.component.mjs +175 -0
- package/esm2020/slick-button-spinner/slick-button-spinner.module.mjs +19 -0
- package/esm2020/slick-calendar/slick-calendar.component.mjs +246 -0
- package/esm2020/slick-calendar/slick-calendar.module.mjs +19 -0
- package/esm2020/slick-card/slick-card-header.component.mjs +14 -0
- package/esm2020/slick-card/slick-card.component.mjs +42 -0
- package/esm2020/slick-card/slick-card.module.mjs +20 -0
- package/esm2020/slick-components.mjs +5 -0
- package/esm2020/slick-confirm-dialog/slick-confirm-dialog.component.mjs +65 -0
- package/esm2020/slick-confirm-dialog/slick-confirm-dialog.module.mjs +20 -0
- package/esm2020/slick-container/slick-container-body.component.mjs +24 -0
- package/esm2020/slick-container/slick-container-footer.component.mjs +20 -0
- package/esm2020/slick-container/slick-container-header.component.mjs +20 -0
- package/esm2020/slick-container/slick-container.component.mjs +21 -0
- package/esm2020/slick-container/slick-container.module.mjs +25 -0
- package/esm2020/slick-context-menu/slick-context-menu-item.component.mjs +14 -0
- package/esm2020/slick-context-menu/slick-context-menu.component.mjs +48 -0
- package/esm2020/slick-context-menu/slick-context-menu.module.mjs +20 -0
- package/{esm2015/slick-currency-mask/slick-currency-mask-options.model.js → esm2020/slick-currency-mask/slick-currency-mask-options.model.mjs} +0 -0
- package/esm2020/slick-currency-mask/slick-currency-mask.directive.mjs +233 -0
- package/esm2020/slick-currency-mask/slick-currency-mask.module.mjs +19 -0
- package/esm2020/slick-date-picker/slick-date-picker.component.mjs +278 -0
- package/esm2020/slick-date-picker/slick-date-picker.module.mjs +21 -0
- package/esm2020/slick-dialog/slick-dialog-footer.component.mjs +24 -0
- package/esm2020/slick-dialog/slick-dialog.component.mjs +294 -0
- package/esm2020/slick-dialog/slick-dialog.module.mjs +23 -0
- package/esm2020/slick-dialog/slick-dialog.service.mjs +68 -0
- package/esm2020/slick-drag-drop/slick-drag-drop.directive.mjs +13 -0
- package/esm2020/slick-drag-drop/slick-drag-drop.module.mjs +21 -0
- package/esm2020/slick-drag-drop/slick-draggable.directive.mjs +13 -0
- package/{esm2015/slick-drop-down/slick-drop-down-button.model.js → esm2020/slick-drop-down/slick-drop-down-button.model.mjs} +0 -0
- package/esm2020/slick-drop-down/slick-drop-down.component.mjs +479 -0
- package/esm2020/slick-drop-down/slick-drop-down.module.mjs +24 -0
- package/esm2020/slick-drop-down/slick-drop-down.service.mjs +55 -0
- package/esm2020/slick-drop-list/slick-drop-list-grab.directive.mjs +18 -0
- package/esm2020/slick-drop-list/slick-drop-list-item.directive.mjs +18 -0
- package/esm2020/slick-drop-list/slick-drop-list.directive.mjs +215 -0
- package/esm2020/slick-drop-list/slick-drop-list.module.mjs +23 -0
- package/esm2020/slick-email-viewer/slick-email-viewer-dialog.component.mjs +81 -0
- package/esm2020/slick-email-viewer/slick-email-viewer.component.mjs +42 -0
- package/esm2020/slick-email-viewer/slick-email-viewer.module.mjs +26 -0
- package/{esm2015/slick-emailer/slick-emailer-address.model.js → esm2020/slick-emailer/slick-emailer-address.model.mjs} +0 -0
- package/esm2020/slick-emailer/slick-emailer-dialog.component.mjs +153 -0
- package/esm2020/slick-emailer/slick-emailer.component.mjs +235 -0
- package/{esm2015/slick-emailer/slick-emailer.model.js → esm2020/slick-emailer/slick-emailer.model.mjs} +0 -0
- package/esm2020/slick-emailer/slick-emailer.module.mjs +29 -0
- package/esm2020/slick-file-drop/slick-file-drop.component.mjs +156 -0
- package/esm2020/slick-file-drop/slick-file-drop.module.mjs +20 -0
- package/esm2020/slick-file-list/slick-file-list-item.component.mjs +173 -0
- package/esm2020/slick-file-list/slick-file-list.component.mjs +130 -0
- package/esm2020/slick-file-list/slick-file-list.module.mjs +23 -0
- package/{esm2015/slick-file-model/slick-file.model.js → esm2020/slick-file-model/slick-file.model.mjs} +0 -0
- package/esm2020/slick-google-address-search/slick-google-address-search.directive.mjs +75 -0
- package/esm2020/slick-google-address-search/slick-google-address-search.module.mjs +19 -0
- package/esm2020/slick-google-map/slick-google-map-dialog.component.mjs +50 -0
- package/esm2020/slick-google-map/slick-google-map.component.mjs +48 -0
- package/esm2020/slick-google-map/slick-google-map.module.mjs +22 -0
- package/esm2020/slick-grid/slick-grid-column-template.directive.mjs +19 -0
- package/{esm2015/slick-grid/slick-grid-column.model.js → esm2020/slick-grid/slick-grid-column.model.mjs} +0 -0
- package/{esm2015/slick-grid/slick-grid-favorite.model.js → esm2020/slick-grid/slick-grid-favorite.model.mjs} +0 -0
- package/{esm2015/slick-grid/slick-grid-request.model.js → esm2020/slick-grid/slick-grid-request.model.mjs} +0 -0
- package/{esm2015/slick-grid/slick-grid-response.model.js → esm2020/slick-grid/slick-grid-response.model.mjs} +0 -0
- package/esm2020/slick-grid/slick-grid-sanitize.pipe.mjs +20 -0
- package/esm2020/slick-grid/slick-grid.component.mjs +793 -0
- package/esm2020/slick-grid/slick-grid.module.mjs +43 -0
- package/{esm2015/slick-grid/slick-grid.options.js → esm2020/slick-grid/slick-grid.options.mjs} +0 -0
- package/esm2020/slick-grid/slick-grid.service.mjs +66 -0
- package/esm2020/slick-multi-select/slick-multi-select.component.mjs +362 -0
- package/esm2020/slick-multi-select/slick-multi-select.module.mjs +20 -0
- package/esm2020/slick-multi-select/slick-multi-select.service.mjs +77 -0
- package/esm2020/slick-ordered-list/slick-ordered-list.component.mjs +200 -0
- package/esm2020/slick-ordered-list/slick-ordered-list.module.mjs +20 -0
- package/esm2020/slick-paging/slick-paging.component.mjs +185 -0
- package/esm2020/slick-paging/slick-paging.module.mjs +19 -0
- package/esm2020/slick-photo-gallery/slick-photo-gallery.component.mjs +98 -0
- package/{esm2015/slick-photo-gallery/slick-photo-gallery.model.js → esm2020/slick-photo-gallery/slick-photo-gallery.model.mjs} +0 -0
- package/esm2020/slick-photo-gallery/slick-photo-gallery.module.mjs +21 -0
- package/esm2020/slick-pick-list/slick-pick-list.component.mjs +84 -0
- package/esm2020/slick-pick-list/slick-pick-list.module.mjs +20 -0
- package/esm2020/slick-popover/slick-popover.component.mjs +204 -0
- package/esm2020/slick-popover/slick-popover.module.mjs +19 -0
- package/esm2020/slick-profile-picture/slick-profile-picture.component.mjs +267 -0
- package/esm2020/slick-profile-picture/slick-profile-picture.module.mjs +20 -0
- package/esm2020/slick-progress-bar/slick-progress-bar.module.mjs +18 -0
- package/esm2020/slick-progress-bar/slick-progress-bar.service.mjs +53 -0
- package/esm2020/slick-screen-blocker/slick-screen-blocker.module.mjs +18 -0
- package/esm2020/slick-screen-blocker/slick-screen-blocker.service.mjs +83 -0
- package/{esm2015/slick-slider/slick-slider-tick.model.js → esm2020/slick-slider/slick-slider-tick.model.mjs} +0 -0
- package/esm2020/slick-slider/slick-slider.component.mjs +90 -0
- package/esm2020/slick-slider/slick-slider.module.mjs +20 -0
- package/esm2020/slick-split-screen/slick-screen-split-left-content.component.mjs +15 -0
- package/esm2020/slick-split-screen/slick-screen-split-right-content.component.mjs +15 -0
- package/esm2020/slick-split-screen/slick-split-screen.component.mjs +159 -0
- package/esm2020/slick-split-screen/slick-split-screen.module.mjs +21 -0
- package/esm2020/slick-tabs/slick-tab-header.component.mjs +28 -0
- package/esm2020/slick-tabs/slick-tab.component.mjs +63 -0
- package/{esm2015/slick-tabs/slick-tab.model.js → esm2020/slick-tabs/slick-tab.model.mjs} +0 -0
- package/esm2020/slick-tabs/slick-tabs.component.mjs +107 -0
- package/esm2020/slick-tabs/slick-tabs.module.mjs +23 -0
- package/esm2020/slick-toast/slick-toast.module.mjs +18 -0
- package/esm2020/slick-toast/slick-toast.service.mjs +88 -0
- package/{esm2015/slick-tree-view/slick-tree-node.model.js → esm2020/slick-tree-view/slick-tree-node.model.mjs} +0 -0
- package/esm2020/slick-tree-view/slick-tree-view.component.mjs +293 -0
- package/esm2020/slick-tree-view/slick-tree-view.module.mjs +22 -0
- package/esm2020/slick-type-ahead/slick-type-ahead.directive.mjs +164 -0
- package/esm2020/slick-type-ahead/slick-type-ahead.module.mjs +18 -0
- package/esm2020/slick-validation-indicator/slick-validation-indicator.directive.mjs +63 -0
- package/esm2020/slick-validation-indicator/slick-validation-indicator.module.mjs +19 -0
- package/esm2020/utils/slick-function-lock.service.mjs +55 -0
- package/esm2020/utils/slick-init.service.mjs +49 -0
- package/esm2020/utils/slick-log.service.mjs +23 -0
- package/esm2020/utils/slick-sleep.service.mjs +14 -0
- package/esm2020/utils/slick-utils.service.mjs +247 -0
- package/fesm2015/{slick-components.js → slick-components.mjs} +2779 -2070
- package/fesm2015/slick-components.mjs.map +1 -0
- package/fesm2020/slick-components.mjs +8467 -0
- package/fesm2020/slick-components.mjs.map +1 -0
- package/package.json +20 -8
- package/public-api.d.ts +8 -8
- package/slick-accordion/slick-accordion-item-header.component.d.ts +3 -0
- package/slick-accordion/slick-accordion-item.component.d.ts +3 -0
- package/slick-accordion/slick-accordion.component.d.ts +3 -0
- package/slick-accordion/slick-accordion.module.d.ts +8 -0
- package/slick-auto-complete/slick-auto-complete-list-item-template.directive.d.ts +3 -0
- package/slick-auto-complete/slick-auto-complete.component.d.ts +3 -0
- package/slick-auto-complete/slick-auto-complete.module.d.ts +8 -0
- package/slick-button-spinner/slick-button-spinner.component.d.ts +3 -0
- package/slick-button-spinner/slick-button-spinner.module.d.ts +6 -0
- package/slick-calendar/slick-calendar.component.d.ts +3 -0
- package/slick-calendar/slick-calendar.module.d.ts +6 -0
- package/slick-card/slick-card-header.component.d.ts +3 -0
- package/slick-card/slick-card.component.d.ts +3 -0
- package/slick-card/slick-card.module.d.ts +10 -0
- package/slick-components.d.ts +1 -22
- package/slick-confirm-dialog/slick-confirm-dialog.component.d.ts +3 -0
- package/slick-confirm-dialog/slick-confirm-dialog.module.d.ts +7 -0
- package/slick-container/slick-container-body.component.d.ts +3 -0
- package/slick-container/slick-container-footer.component.d.ts +3 -0
- package/slick-container/slick-container-header.component.d.ts +3 -0
- package/slick-container/slick-container.component.d.ts +3 -0
- package/slick-container/slick-container.module.d.ts +9 -0
- package/slick-context-menu/slick-context-menu-item.component.d.ts +3 -0
- package/slick-context-menu/slick-context-menu.component.d.ts +3 -0
- package/slick-context-menu/slick-context-menu.module.d.ts +7 -0
- package/slick-currency-mask/slick-currency-mask.directive.d.ts +3 -0
- package/slick-currency-mask/slick-currency-mask.module.d.ts +5 -0
- package/slick-date-picker/slick-date-picker.component.d.ts +3 -0
- package/slick-date-picker/slick-date-picker.module.d.ts +8 -0
- package/slick-dialog/slick-dialog-footer.component.d.ts +3 -0
- package/slick-dialog/slick-dialog.component.d.ts +3 -0
- package/slick-dialog/slick-dialog.module.d.ts +10 -1
- package/slick-dialog/slick-dialog.service.d.ts +3 -0
- package/slick-drag-drop/slick-drag-drop.directive.d.ts +3 -0
- package/slick-drag-drop/slick-drag-drop.module.d.ts +11 -0
- package/slick-drag-drop/slick-draggable.directive.d.ts +3 -0
- package/slick-drop-down/slick-drop-down.component.d.ts +3 -0
- package/slick-drop-down/slick-drop-down.module.d.ts +9 -0
- package/slick-drop-down/slick-drop-down.service.d.ts +3 -0
- package/slick-drop-list/slick-drop-list-grab.directive.d.ts +3 -0
- package/slick-drop-list/slick-drop-list-item.directive.d.ts +3 -0
- package/slick-drop-list/slick-drop-list.directive.d.ts +13 -7
- package/slick-drop-list/slick-drop-list.module.d.ts +14 -0
- package/slick-email-viewer/slick-email-viewer-dialog.component.d.ts +3 -0
- package/slick-email-viewer/slick-email-viewer.component.d.ts +3 -0
- package/slick-email-viewer/slick-email-viewer.module.d.ts +10 -0
- package/slick-emailer/slick-emailer-dialog.component.d.ts +3 -0
- package/slick-emailer/slick-emailer.component.d.ts +3 -0
- package/slick-emailer/slick-emailer.module.d.ts +13 -0
- package/slick-file-drop/slick-file-drop.component.d.ts +3 -0
- package/slick-file-drop/slick-file-drop.module.d.ts +7 -0
- package/slick-file-list/slick-file-list-item.component.d.ts +3 -0
- package/slick-file-list/slick-file-list.component.d.ts +3 -0
- package/slick-file-list/slick-file-list.module.d.ts +10 -0
- package/slick-google-address-search/slick-google-address-search.directive.d.ts +3 -0
- package/slick-google-address-search/slick-google-address-search.module.d.ts +6 -0
- package/slick-google-map/slick-google-map-dialog.component.d.ts +3 -0
- package/slick-google-map/slick-google-map.component.d.ts +3 -0
- package/slick-google-map/slick-google-map.module.d.ts +8 -0
- package/slick-grid/slick-grid-column-template.directive.d.ts +3 -0
- package/slick-grid/slick-grid-sanitize.pipe.d.ts +3 -0
- package/slick-grid/slick-grid.component.d.ts +3 -0
- package/slick-grid/slick-grid.module.d.ts +16 -0
- package/slick-grid/slick-grid.service.d.ts +3 -0
- package/slick-multi-select/slick-multi-select.component.d.ts +3 -0
- package/slick-multi-select/slick-multi-select.module.d.ts +7 -0
- package/slick-multi-select/slick-multi-select.service.d.ts +3 -0
- package/slick-ordered-list/slick-ordered-list.component.d.ts +3 -0
- package/slick-ordered-list/slick-ordered-list.module.d.ts +7 -0
- package/slick-paging/slick-paging.component.d.ts +3 -0
- package/slick-paging/slick-paging.module.d.ts +6 -0
- package/slick-photo-gallery/slick-photo-gallery.component.d.ts +3 -0
- package/slick-photo-gallery/slick-photo-gallery.module.d.ts +6 -0
- package/slick-pick-list/slick-pick-list.component.d.ts +3 -0
- package/slick-pick-list/slick-pick-list.module.d.ts +7 -0
- package/slick-popover/slick-popover.component.d.ts +3 -0
- package/slick-popover/slick-popover.module.d.ts +6 -0
- package/slick-profile-picture/slick-profile-picture.component.d.ts +3 -0
- package/slick-profile-picture/slick-profile-picture.module.d.ts +7 -0
- package/slick-progress-bar/slick-progress-bar.module.d.ts +5 -0
- package/slick-progress-bar/slick-progress-bar.service.d.ts +3 -0
- package/slick-screen-blocker/slick-screen-blocker.module.d.ts +5 -0
- package/slick-screen-blocker/slick-screen-blocker.service.d.ts +3 -0
- package/slick-slider/slick-slider.component.d.ts +3 -0
- package/slick-slider/slick-slider.module.d.ts +6 -0
- package/slick-split-screen/slick-screen-split-left-content.component.d.ts +3 -0
- package/slick-split-screen/slick-screen-split-right-content.component.d.ts +3 -0
- package/slick-split-screen/slick-split-screen.component.d.ts +3 -0
- package/slick-split-screen/slick-split-screen.module.d.ts +8 -0
- package/slick-tabs/slick-tab-header.component.d.ts +3 -0
- package/slick-tabs/slick-tab.component.d.ts +3 -0
- package/slick-tabs/slick-tabs.component.d.ts +3 -0
- package/slick-tabs/slick-tabs.module.d.ts +10 -0
- package/slick-toast/slick-toast.module.d.ts +5 -0
- package/slick-toast/slick-toast.service.d.ts +3 -0
- package/slick-tree-view/slick-tree-view.component.d.ts +3 -0
- package/slick-tree-view/slick-tree-view.module.d.ts +8 -0
- package/slick-type-ahead/slick-type-ahead.directive.d.ts +3 -0
- package/slick-type-ahead/slick-type-ahead.module.d.ts +5 -0
- package/slick-validation-indicator/slick-validation-indicator.directive.d.ts +3 -0
- package/slick-validation-indicator/slick-validation-indicator.module.d.ts +6 -0
- package/utils/slick-function-lock.service.d.ts +3 -0
- package/utils/slick-init.service.d.ts +3 -0
- package/utils/slick-log.service.d.ts +3 -0
- package/utils/slick-sleep.service.d.ts +3 -0
- package/utils/slick-utils.service.d.ts +5 -0
- package/bundles/slick-components.umd.js +0 -9777
- package/bundles/slick-components.umd.js.map +0 -1
- package/esm2015/public-api.js +0 -43
- package/esm2015/slick-accordion/slick-accordion-item-header.component.js +0 -10
- package/esm2015/slick-accordion/slick-accordion-item.component.js +0 -80
- package/esm2015/slick-accordion/slick-accordion.component.js +0 -77
- package/esm2015/slick-accordion/slick-accordion.module.js +0 -18
- package/esm2015/slick-auto-complete/slick-auto-complete-list-item-template.directive.js +0 -21
- package/esm2015/slick-auto-complete/slick-auto-complete.component.js +0 -352
- package/esm2015/slick-auto-complete/slick-auto-complete.module.js +0 -19
- package/esm2015/slick-button-spinner/slick-button-spinner.component.js +0 -186
- package/esm2015/slick-button-spinner/slick-button-spinner.module.js +0 -14
- package/esm2015/slick-calendar/slick-calendar.component.js +0 -233
- package/esm2015/slick-calendar/slick-calendar.module.js +0 -14
- package/esm2015/slick-card/slick-card-header.component.js +0 -10
- package/esm2015/slick-card/slick-card.component.js +0 -37
- package/esm2015/slick-card/slick-card.module.js +0 -14
- package/esm2015/slick-components.js +0 -27
- package/esm2015/slick-confirm-dialog/slick-confirm-dialog.component.js +0 -62
- package/esm2015/slick-confirm-dialog/slick-confirm-dialog.module.js +0 -15
- package/esm2015/slick-container/slick-container-body.component.js +0 -18
- package/esm2015/slick-container/slick-container-footer.component.js +0 -16
- package/esm2015/slick-container/slick-container-header.component.js +0 -16
- package/esm2015/slick-container/slick-container.component.js +0 -19
- package/esm2015/slick-container/slick-container.module.js +0 -20
- package/esm2015/slick-context-menu/slick-context-menu-item.component.js +0 -10
- package/esm2015/slick-context-menu/slick-context-menu.component.js +0 -43
- package/esm2015/slick-context-menu/slick-context-menu.module.js +0 -15
- package/esm2015/slick-currency-mask/slick-currency-mask.directive.js +0 -234
- package/esm2015/slick-currency-mask/slick-currency-mask.module.js +0 -14
- package/esm2015/slick-date-picker/slick-date-picker.component.js +0 -267
- package/esm2015/slick-date-picker/slick-date-picker.module.js +0 -16
- package/esm2015/slick-dialog/slick-dialog-footer.component.js +0 -18
- package/esm2015/slick-dialog/slick-dialog.component.js +0 -282
- package/esm2015/slick-dialog/slick-dialog.module.js +0 -18
- package/esm2015/slick-dialog/slick-dialog.service.js +0 -67
- package/esm2015/slick-drag-drop/slick-drag-drop.directive.js +0 -9
- package/esm2015/slick-drag-drop/slick-drag-drop.module.js +0 -14
- package/esm2015/slick-drag-drop/slick-draggable.directive.js +0 -9
- package/esm2015/slick-drop-down/slick-drop-down.component.js +0 -465
- package/esm2015/slick-drop-down/slick-drop-down.module.js +0 -19
- package/esm2015/slick-drop-down/slick-drop-down.service.js +0 -59
- package/esm2015/slick-drop-list/slick-drop-list-grab.directive.js +0 -18
- package/esm2015/slick-drop-list/slick-drop-list-item.directive.js +0 -18
- package/esm2015/slick-drop-list/slick-drop-list.directive.js +0 -162
- package/esm2015/slick-drop-list/slick-drop-list.module.js +0 -15
- package/esm2015/slick-email-viewer/slick-email-viewer-dialog.component.js +0 -61
- package/esm2015/slick-email-viewer/slick-email-viewer.component.js +0 -39
- package/esm2015/slick-email-viewer/slick-email-viewer.module.js +0 -21
- package/esm2015/slick-emailer/slick-emailer-dialog.component.js +0 -122
- package/esm2015/slick-emailer/slick-emailer.component.js +0 -226
- package/esm2015/slick-emailer/slick-emailer.module.js +0 -24
- package/esm2015/slick-file-drop/slick-file-drop.component.js +0 -144
- package/esm2015/slick-file-drop/slick-file-drop.module.js +0 -15
- package/esm2015/slick-file-list/slick-file-list-item.component.js +0 -156
- package/esm2015/slick-file-list/slick-file-list.component.js +0 -114
- package/esm2015/slick-file-list/slick-file-list.module.js +0 -18
- package/esm2015/slick-google-address-search/slick-google-address-search.directive.js +0 -75
- package/esm2015/slick-google-address-search/slick-google-address-search.module.js +0 -14
- package/esm2015/slick-google-map/slick-google-map-dialog.component.js +0 -45
- package/esm2015/slick-google-map/slick-google-map.component.js +0 -45
- package/esm2015/slick-google-map/slick-google-map.module.js +0 -17
- package/esm2015/slick-grid/slick-grid-column-template.directive.js +0 -19
- package/esm2015/slick-grid/slick-grid-sanitize.pipe.js +0 -20
- package/esm2015/slick-grid/slick-grid.component.js +0 -792
- package/esm2015/slick-grid/slick-grid.module.js +0 -38
- package/esm2015/slick-grid/slick-grid.service.js +0 -72
- package/esm2015/slick-multi-select/slick-multi-select.component.js +0 -356
- package/esm2015/slick-multi-select/slick-multi-select.module.js +0 -15
- package/esm2015/slick-multi-select/slick-multi-select.service.js +0 -74
- package/esm2015/slick-ordered-list/slick-ordered-list.component.js +0 -198
- package/esm2015/slick-ordered-list/slick-ordered-list.module.js +0 -15
- package/esm2015/slick-paging/slick-paging.component.js +0 -180
- package/esm2015/slick-paging/slick-paging.module.js +0 -14
- package/esm2015/slick-photo-gallery/slick-photo-gallery.component.js +0 -101
- package/esm2015/slick-photo-gallery/slick-photo-gallery.module.js +0 -16
- package/esm2015/slick-pick-list/slick-pick-list.component.js +0 -78
- package/esm2015/slick-pick-list/slick-pick-list.module.js +0 -15
- package/esm2015/slick-popover/slick-popover.component.js +0 -199
- package/esm2015/slick-popover/slick-popover.module.js +0 -14
- package/esm2015/slick-profile-picture/slick-profile-picture.component.js +0 -242
- package/esm2015/slick-profile-picture/slick-profile-picture.module.js +0 -15
- package/esm2015/slick-progress-bar/slick-progress-bar.module.js +0 -13
- package/esm2015/slick-progress-bar/slick-progress-bar.service.js +0 -50
- package/esm2015/slick-screen-blocker/slick-screen-blocker.module.js +0 -13
- package/esm2015/slick-screen-blocker/slick-screen-blocker.service.js +0 -80
- package/esm2015/slick-slider/slick-slider.component.js +0 -88
- package/esm2015/slick-slider/slick-slider.module.js +0 -15
- package/esm2015/slick-split-screen/slick-screen-split-left-content.component.js +0 -13
- package/esm2015/slick-split-screen/slick-screen-split-right-content.component.js +0 -13
- package/esm2015/slick-split-screen/slick-split-screen.component.js +0 -148
- package/esm2015/slick-split-screen/slick-split-screen.module.js +0 -16
- package/esm2015/slick-tabs/slick-tab-header.component.js +0 -25
- package/esm2015/slick-tabs/slick-tab.component.js +0 -67
- package/esm2015/slick-tabs/slick-tabs.component.js +0 -104
- package/esm2015/slick-tabs/slick-tabs.module.js +0 -17
- package/esm2015/slick-toast/slick-toast.module.js +0 -13
- package/esm2015/slick-toast/slick-toast.service.js +0 -91
- package/esm2015/slick-tree-view/slick-tree-view.component.js +0 -287
- package/esm2015/slick-tree-view/slick-tree-view.module.js +0 -17
- package/esm2015/slick-type-ahead/slick-type-ahead.directive.js +0 -155
- package/esm2015/slick-type-ahead/slick-type-ahead.module.js +0 -13
- package/esm2015/slick-validation-indicator/slick-validation-indicator.directive.js +0 -61
- package/esm2015/slick-validation-indicator/slick-validation-indicator.module.js +0 -14
- package/esm2015/utils/slick-function-lock.service.js +0 -54
- package/esm2015/utils/slick-init.service.js +0 -48
- package/esm2015/utils/slick-log.service.js +0 -27
- package/esm2015/utils/slick-sleep.service.js +0 -14
- package/esm2015/utils/slick-utils.service.js +0 -229
- package/fesm2015/slick-components.js.map +0 -1
- package/slick-components.metadata.json +0 -1
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ViewChild } from "@angular/core";
|
|
2
|
+
import { SlickTreeNodeModel } from './slick-tree-node.model';
|
|
3
|
+
import { SlickSleepService } from "../utils/slick-sleep.service";
|
|
4
|
+
import { SlickUtilsService } from "../utils/slick-utils.service";
|
|
5
|
+
import { SlickConfirmDialogResults } from '../slick-confirm-dialog/slick-confirm-dialog.module';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../slick-confirm-dialog/slick-confirm-dialog.component";
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
9
|
+
import * as i3 from "@angular/forms";
|
|
10
|
+
class SlickTreeViewDisplayModel {
|
|
11
|
+
constructor(node, level) {
|
|
12
|
+
this.uuid = node.uuid;
|
|
13
|
+
this.parentUuid = node.parentUuid;
|
|
14
|
+
this.node = node;
|
|
15
|
+
this.text = node.text;
|
|
16
|
+
this.level = level;
|
|
17
|
+
this.expanded = node.expanded;
|
|
18
|
+
this.editingText = false;
|
|
19
|
+
this.indentArray = [];
|
|
20
|
+
for (let i = 0; i < this.level; i++)
|
|
21
|
+
this.indentArray.push(true);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export class SlickTreeViewComponent {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.nodesChange = new EventEmitter();
|
|
27
|
+
this.showRootNode = true;
|
|
28
|
+
this.expandOnClick = true;
|
|
29
|
+
this.onNodeSelected = new EventEmitter();
|
|
30
|
+
this.onNodeChanged = new EventEmitter();
|
|
31
|
+
this.onNodeAdded = new EventEmitter();
|
|
32
|
+
this.onNodeDeleted = new EventEmitter();
|
|
33
|
+
this.fnDocumentClick = (e) => this.documentClick(e);
|
|
34
|
+
this.fnContextMenu = (e) => this.contextMenu(e);
|
|
35
|
+
this.uuid = SlickUtilsService.newGuid();
|
|
36
|
+
this.newUuid = null;
|
|
37
|
+
}
|
|
38
|
+
ngOnInit() {
|
|
39
|
+
document.addEventListener("click", this.fnDocumentClick, true);
|
|
40
|
+
this.slickTreeViewRef.nativeElement.addEventListener("contextmenu", this.fnContextMenu, true);
|
|
41
|
+
}
|
|
42
|
+
ngOnDestroy() {
|
|
43
|
+
document.removeEventListener("click", this.fnDocumentClick, true);
|
|
44
|
+
this.slickTreeViewRef.nativeElement.removeEventListener("contextmenu", this.fnContextMenu, true);
|
|
45
|
+
}
|
|
46
|
+
ngOnChanges(changes) {
|
|
47
|
+
this.expandOnClick = (this.expandOnClick.toString().toLowerCase() === 'false') ? false : true;
|
|
48
|
+
this.showRootNode = (this.showRootNode.toString().toLowerCase() === 'false') ? false : true;
|
|
49
|
+
this.rootNodeUuid = this.rootNodeUuid || null;
|
|
50
|
+
if (changes.nodes)
|
|
51
|
+
this.refreshDisplay();
|
|
52
|
+
}
|
|
53
|
+
async documentClick(e) {
|
|
54
|
+
if (e.target && SlickUtilsService.checkParentClassExists(e.target, "slick-tree-view_node-text-edit"))
|
|
55
|
+
return;
|
|
56
|
+
if (e.target && SlickUtilsService.checkParentClassExists(e.target, "slick-tree-view_context-menu"))
|
|
57
|
+
return;
|
|
58
|
+
const contextMenuElement = this.contextMenuRef.nativeElement;
|
|
59
|
+
contextMenuElement.classList.remove("menu-visible");
|
|
60
|
+
contextMenuElement.classList.add("menu-hidden");
|
|
61
|
+
this.processNewNode();
|
|
62
|
+
this.displayNodes = this.displayNodes.map(displayNode => {
|
|
63
|
+
if (displayNode.editingText) {
|
|
64
|
+
displayNode.editingText = false;
|
|
65
|
+
if (this.onNodeChanged && displayNode.text !== displayNode.node.text) {
|
|
66
|
+
displayNode.node.text = displayNode.text;
|
|
67
|
+
this.onNodeChanged.emit(displayNode.node);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return displayNode;
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
onTextKeydown(e, displayNode) {
|
|
74
|
+
// Esc
|
|
75
|
+
if (e.keyCode === 27) {
|
|
76
|
+
displayNode.editingText = false;
|
|
77
|
+
displayNode.node.text = displayNode.text;
|
|
78
|
+
this.processNewNode();
|
|
79
|
+
}
|
|
80
|
+
// Enter or tab
|
|
81
|
+
if (e.keyCode === 13 || e.keyCode === 9) {
|
|
82
|
+
displayNode.editingText = false;
|
|
83
|
+
this.processNewNode();
|
|
84
|
+
if (this.onNodeChanged && displayNode.text !== displayNode.node.text) {
|
|
85
|
+
displayNode.node.text = displayNode.text;
|
|
86
|
+
this.onNodeChanged.emit(displayNode.node);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
contextMenu(e) {
|
|
91
|
+
if (!e || !e.target)
|
|
92
|
+
return;
|
|
93
|
+
if (!SlickUtilsService.checkParentIdExists(e.target, `slick-tree-view_${this.uuid}`))
|
|
94
|
+
return;
|
|
95
|
+
const contextNodeElement = SlickUtilsService.findParent(e.target, "slick-tree-view-node");
|
|
96
|
+
if (!contextNodeElement)
|
|
97
|
+
return;
|
|
98
|
+
e.preventDefault();
|
|
99
|
+
this.contextNodeUuid = contextNodeElement.getAttribute("data-uuid");
|
|
100
|
+
const node = this.nodes.find(x => x.uuid === this.contextNodeUuid);
|
|
101
|
+
this.contextMenuShowAdd = node.canAddChildren;
|
|
102
|
+
this.contextMenuShowDelete = node.canDelete;
|
|
103
|
+
this.contextMenuShowEditText = node.canEditText;
|
|
104
|
+
// If there's nothing to do, don't even show the context menu
|
|
105
|
+
if (this.contextMenuShowAdd === false && this.contextMenuShowDelete === false && this.contextMenuShowEditText === false)
|
|
106
|
+
return;
|
|
107
|
+
const contextMenuElement = this.contextMenuRef.nativeElement;
|
|
108
|
+
const top = (contextNodeElement.offsetTop + contextNodeElement.offsetHeight - 5);
|
|
109
|
+
const indentationElement = contextNodeElement.querySelector(".slick-tree-view_indentation");
|
|
110
|
+
const iconElement = contextNodeElement.querySelector(".slick-tree-view_icon");
|
|
111
|
+
const indentationWidth = (indentationElement) ? indentationElement.offsetWidth : 0;
|
|
112
|
+
const iconWidth = (iconElement) ? iconElement.offsetWidth : 0;
|
|
113
|
+
const left = indentationWidth + iconWidth + 2;
|
|
114
|
+
contextMenuElement.style.top = top + "px";
|
|
115
|
+
contextMenuElement.style.left = left + "px";
|
|
116
|
+
contextMenuElement.classList.add("menu-visible");
|
|
117
|
+
contextMenuElement.classList.remove("menu-hidden");
|
|
118
|
+
}
|
|
119
|
+
async addNode() {
|
|
120
|
+
// Hide the context menu
|
|
121
|
+
const contextMenuElement = this.contextMenuRef.nativeElement;
|
|
122
|
+
contextMenuElement.classList.remove("menu-visible");
|
|
123
|
+
contextMenuElement.classList.add("menu-hidden");
|
|
124
|
+
if (!this.contextNodeUuid)
|
|
125
|
+
return;
|
|
126
|
+
const parentNodeIdx = this.nodes.findIndex(x => x.uuid === this.contextNodeUuid);
|
|
127
|
+
const parentNode = this.nodes[parentNodeIdx];
|
|
128
|
+
// Since we want to add this one to the top, pass null as the parent
|
|
129
|
+
var newNode = new SlickTreeNodeModel(null, "New Folder");
|
|
130
|
+
newNode.parentUuid = parentNode.uuid;
|
|
131
|
+
parentNode.expanded = true;
|
|
132
|
+
this.nodes.splice(parentNodeIdx, 0, newNode);
|
|
133
|
+
this.refreshDisplay();
|
|
134
|
+
const displayNode = this.displayNodes.find(x => x.uuid === newNode.uuid);
|
|
135
|
+
this.editText(displayNode);
|
|
136
|
+
this.newUuid = newNode.uuid;
|
|
137
|
+
}
|
|
138
|
+
async deleteNode() {
|
|
139
|
+
// Hide the context menu
|
|
140
|
+
const contextMenuElement = this.contextMenuRef.nativeElement;
|
|
141
|
+
contextMenuElement.classList.remove("menu-visible");
|
|
142
|
+
contextMenuElement.classList.add("menu-hidden");
|
|
143
|
+
if (!this.contextNodeUuid)
|
|
144
|
+
return;
|
|
145
|
+
const node = this.nodes.find(x => x.uuid === this.contextNodeUuid);
|
|
146
|
+
this.deleteNodeName = node.text;
|
|
147
|
+
const confirmResult = await this.deleteNodeConfirmRef.confirm();
|
|
148
|
+
if (confirmResult === SlickConfirmDialogResults.Cancel)
|
|
149
|
+
return;
|
|
150
|
+
const removedNodes = this.deleteRecursive(node);
|
|
151
|
+
this.refreshDisplay();
|
|
152
|
+
if (this.onNodeDeleted)
|
|
153
|
+
this.onNodeDeleted.emit(removedNodes);
|
|
154
|
+
if (this.nodesChange)
|
|
155
|
+
this.nodesChange.emit(this.nodes);
|
|
156
|
+
}
|
|
157
|
+
editNodeText() {
|
|
158
|
+
// Hide the context menu
|
|
159
|
+
const contextMenuElement = this.contextMenuRef.nativeElement;
|
|
160
|
+
contextMenuElement.classList.remove("menu-visible");
|
|
161
|
+
contextMenuElement.classList.add("menu-hidden");
|
|
162
|
+
if (!this.contextNodeUuid)
|
|
163
|
+
return;
|
|
164
|
+
const displayNode = this.displayNodes.find(x => x.uuid === this.contextNodeUuid);
|
|
165
|
+
this.editText(displayNode);
|
|
166
|
+
if (this.nodesChange)
|
|
167
|
+
this.nodesChange.emit(this.nodes);
|
|
168
|
+
}
|
|
169
|
+
selectNode(displayNode) {
|
|
170
|
+
if (this.selectedUuid === displayNode.uuid)
|
|
171
|
+
return;
|
|
172
|
+
this.selectedUuid = displayNode.uuid;
|
|
173
|
+
if (displayNode.node.expandOnClick === true)
|
|
174
|
+
this.expandNode(displayNode);
|
|
175
|
+
if (this.onNodeSelected)
|
|
176
|
+
this.onNodeSelected.emit(displayNode.node);
|
|
177
|
+
}
|
|
178
|
+
expandNode(displayNode) {
|
|
179
|
+
displayNode.node.expanded = true;
|
|
180
|
+
this.refreshDisplay();
|
|
181
|
+
}
|
|
182
|
+
collapseNode(displayNode) {
|
|
183
|
+
displayNode.node.expanded = false;
|
|
184
|
+
this.refreshDisplay();
|
|
185
|
+
}
|
|
186
|
+
async editText(displayNode) {
|
|
187
|
+
if (!displayNode.node.canEditText)
|
|
188
|
+
return;
|
|
189
|
+
displayNode.editingText = true;
|
|
190
|
+
await SlickSleepService.sleep();
|
|
191
|
+
const textbox = document.querySelector(`.slick-tree-view_node-text-edit_${displayNode.uuid}`);
|
|
192
|
+
if (textbox) {
|
|
193
|
+
textbox.focus();
|
|
194
|
+
textbox.select();
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
refreshDisplay() {
|
|
198
|
+
this.displayNodes = [];
|
|
199
|
+
if (!this.nodes || this.nodes.length === 0)
|
|
200
|
+
return;
|
|
201
|
+
let rootNode;
|
|
202
|
+
if (this.rootNodeUuid)
|
|
203
|
+
rootNode = this.nodes.find(x => x.uuid === this.rootNodeUuid);
|
|
204
|
+
else
|
|
205
|
+
rootNode = this.nodes.find(x => x.parentUuid === null);
|
|
206
|
+
// Always expand the root node
|
|
207
|
+
rootNode.expanded = true;
|
|
208
|
+
// If we aren't showing the root node, start at -1 for the indent level
|
|
209
|
+
this.populateDisplayNodes(rootNode, (this.showRootNode) ? 0 : -1);
|
|
210
|
+
if (this.showRootNode === false)
|
|
211
|
+
this.displayNodes = this.displayNodes.filter(x => x.parentUuid !== null);
|
|
212
|
+
}
|
|
213
|
+
populateDisplayNodes(node, level) {
|
|
214
|
+
if (level >= 100) {
|
|
215
|
+
console.error("Exceeeded max of 100 levels deep. Possible infinite recursion.");
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
const displayNode = new SlickTreeViewDisplayModel(node, level);
|
|
219
|
+
if (node.expandOnClick === null || node.expandOnClick === undefined)
|
|
220
|
+
node.expandOnClick = this.expandOnClick;
|
|
221
|
+
if (displayNode.parentUuid === null)
|
|
222
|
+
displayNode.node.canDelete = false;
|
|
223
|
+
if (displayNode.uuid === this.newUuid)
|
|
224
|
+
displayNode.editingText = true;
|
|
225
|
+
this.displayNodes.push(displayNode);
|
|
226
|
+
const childNodes = this.nodes.filter(x => x.parentUuid === node.uuid) || [];
|
|
227
|
+
displayNode.hasChildNodes = (childNodes.length > 0);
|
|
228
|
+
if (node.expanded === true)
|
|
229
|
+
childNodes.forEach(childNode => {
|
|
230
|
+
if (!childNode.hidden)
|
|
231
|
+
this.populateDisplayNodes(childNode, level + 1);
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
deleteRecursive(node) {
|
|
235
|
+
let removedNodes = [];
|
|
236
|
+
const childNodes = this.nodes.filter(x => x.parentUuid === node.uuid) || [];
|
|
237
|
+
childNodes.forEach(childNode => {
|
|
238
|
+
removedNodes = removedNodes.concat(this.deleteRecursive(childNode));
|
|
239
|
+
});
|
|
240
|
+
removedNodes.push(node);
|
|
241
|
+
this.nodes = this.nodes.filter(x => x.uuid !== node.uuid);
|
|
242
|
+
return removedNodes;
|
|
243
|
+
}
|
|
244
|
+
processNewNode() {
|
|
245
|
+
if (!this.newUuid)
|
|
246
|
+
return;
|
|
247
|
+
const newNode = this.nodes.find(x => x.uuid === this.newUuid);
|
|
248
|
+
const displayNode = this.displayNodes.find(x => x.uuid == this.newUuid);
|
|
249
|
+
// Do this so that we don't trigger the node update
|
|
250
|
+
newNode.text = displayNode.text;
|
|
251
|
+
this.newUuid = null;
|
|
252
|
+
if (!newNode)
|
|
253
|
+
return;
|
|
254
|
+
if (this.onNodeAdded)
|
|
255
|
+
this.onNodeAdded.emit(newNode);
|
|
256
|
+
if (this.nodesChange)
|
|
257
|
+
this.nodesChange.emit(this.nodes);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
/** @nocollapse */ SlickTreeViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTreeViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
261
|
+
/** @nocollapse */ SlickTreeViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: SlickTreeViewComponent, selector: "slick-tree-view", inputs: { nodes: "nodes", showRootNode: "showRootNode", rootNodeUuid: "rootNodeUuid", expandOnClick: "expandOnClick" }, outputs: { nodesChange: "nodesChange", onNodeSelected: "onNodeSelected", onNodeChanged: "onNodeChanged", onNodeAdded: "onNodeAdded", onNodeDeleted: "onNodeDeleted" }, viewQueries: [{ propertyName: "slickTreeViewRef", first: true, predicate: ["slickTreeViewRef"], descendants: true, static: true }, { propertyName: "contextMenuRef", first: true, predicate: ["contextMenuRef"], descendants: true }, { propertyName: "deleteNodeConfirmRef", first: true, predicate: ["deleteNodeConfirmRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #slickTreeViewRef id=\"slick-tree-view_{{uuid}}\" class=\"slick-tree-view position-relative pr-2\">\r\n\t<div class=\"d-flex slick-tree-view-node\" [attr.data-uuid]=\"displayNode.uuid\" *ngFor=\"let displayNode of displayNodes\">\r\n\t\t<div class=\"slick-tree-view_indentation\">\r\n\t\t\t<i *ngFor=\"let indent of displayNode.indentArray\" class=\"far fa-caret-right mr-1\" style=\"opacity: 0\"></i>\r\n\t\t\t<i *ngIf=\"!displayNode.hasChildNodes\" class=\"far fa-caret-right mr-1\" style=\"opacity: 0\"></i>\r\n\t\t\t<i *ngIf=\"displayNode.hasChildNodes && !displayNode.expanded\" class=\"far fa-caret-right mr-1\" style=\"cursor: pointer\" (click)=\"expandNode(displayNode)\"></i>\r\n\t\t\t<i *ngIf=\"displayNode.hasChildNodes && displayNode.expanded\" class=\"far fa-caret-down mr-1\" style=\"cursor: pointer\" (click)=\"collapseNode(displayNode)\"></i>\r\n\t\t</div>\r\n\t\t<div class=\"d-flex px-1\" [ngClass]=\"{'bg-success text-white' : displayNode.uuid === selectedUuid }\">\r\n\t\t\t<div *ngIf=\"displayNode.node.iconClass || displayNode.node.iconUrl\" class=\"mr-1 slick-tree-view_icon\">\r\n\t\t\t\t<i *ngIf=\"displayNode.node.iconClass\" [style.color]=\"displayNode.node.iconColor\" [ngClass]=\"displayNode.node.iconClass\"></i>\r\n\t\t\t</div>\r\n\t\t\t<div *ngIf=\"!displayNode.editingText\" style=\"cursor: pointer\" (click)=\"selectNode(displayNode)\" (dblclick)=\"editText(displayNode)\">{{displayNode.text}}</div>\r\n\t\t\t<div *ngIf=\"displayNode.editingText\" class=\"slick-tree-view_node-text-edit\"><input type=\"text\" class=\"form-control slick-tree-view_node-text-edit_{{displayNode.uuid}}\" [(ngModel)]=\"displayNode.text\" (keydown)=\"onTextKeydown($event, displayNode)\" /></div>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<div #contextMenuRef class='slick-tree-view_context-menu dropdown-menu p-0 show menu-hidden'>\r\n\t\t<div *ngIf=\"contextMenuShowAdd\" class=\"px-2 dropdown-item\" (click)=\"addNode()\">Add</div>\r\n\t\t<div *ngIf=\"contextMenuShowDelete\" class=\"px-2 dropdown-item\" (click)=\"deleteNode()\">Delete</div>\r\n\t\t<div *ngIf=\"contextMenuShowEditText\" class=\"px-2 dropdown-item\" (click)=\"editNodeText()\">Edit Name</div>\r\n\t</div>\r\n</div>\r\n\r\n<slick-confirm-dialog #deleteNodeConfirmRef>\r\n\tAre you sure you want to delete {{deleteNodeName}}?\r\n</slick-confirm-dialog>", components: [{ type: i1.SlickConfirmDialogComponent, selector: "slick-confirm-dialog", inputs: ["width", "okButtonText", "cancelButtonText", "showOkButton", "showCancelButton"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
262
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTreeViewComponent, decorators: [{
|
|
263
|
+
type: Component,
|
|
264
|
+
args: [{ selector: 'slick-tree-view', template: "<div #slickTreeViewRef id=\"slick-tree-view_{{uuid}}\" class=\"slick-tree-view position-relative pr-2\">\r\n\t<div class=\"d-flex slick-tree-view-node\" [attr.data-uuid]=\"displayNode.uuid\" *ngFor=\"let displayNode of displayNodes\">\r\n\t\t<div class=\"slick-tree-view_indentation\">\r\n\t\t\t<i *ngFor=\"let indent of displayNode.indentArray\" class=\"far fa-caret-right mr-1\" style=\"opacity: 0\"></i>\r\n\t\t\t<i *ngIf=\"!displayNode.hasChildNodes\" class=\"far fa-caret-right mr-1\" style=\"opacity: 0\"></i>\r\n\t\t\t<i *ngIf=\"displayNode.hasChildNodes && !displayNode.expanded\" class=\"far fa-caret-right mr-1\" style=\"cursor: pointer\" (click)=\"expandNode(displayNode)\"></i>\r\n\t\t\t<i *ngIf=\"displayNode.hasChildNodes && displayNode.expanded\" class=\"far fa-caret-down mr-1\" style=\"cursor: pointer\" (click)=\"collapseNode(displayNode)\"></i>\r\n\t\t</div>\r\n\t\t<div class=\"d-flex px-1\" [ngClass]=\"{'bg-success text-white' : displayNode.uuid === selectedUuid }\">\r\n\t\t\t<div *ngIf=\"displayNode.node.iconClass || displayNode.node.iconUrl\" class=\"mr-1 slick-tree-view_icon\">\r\n\t\t\t\t<i *ngIf=\"displayNode.node.iconClass\" [style.color]=\"displayNode.node.iconColor\" [ngClass]=\"displayNode.node.iconClass\"></i>\r\n\t\t\t</div>\r\n\t\t\t<div *ngIf=\"!displayNode.editingText\" style=\"cursor: pointer\" (click)=\"selectNode(displayNode)\" (dblclick)=\"editText(displayNode)\">{{displayNode.text}}</div>\r\n\t\t\t<div *ngIf=\"displayNode.editingText\" class=\"slick-tree-view_node-text-edit\"><input type=\"text\" class=\"form-control slick-tree-view_node-text-edit_{{displayNode.uuid}}\" [(ngModel)]=\"displayNode.text\" (keydown)=\"onTextKeydown($event, displayNode)\" /></div>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<div #contextMenuRef class='slick-tree-view_context-menu dropdown-menu p-0 show menu-hidden'>\r\n\t\t<div *ngIf=\"contextMenuShowAdd\" class=\"px-2 dropdown-item\" (click)=\"addNode()\">Add</div>\r\n\t\t<div *ngIf=\"contextMenuShowDelete\" class=\"px-2 dropdown-item\" (click)=\"deleteNode()\">Delete</div>\r\n\t\t<div *ngIf=\"contextMenuShowEditText\" class=\"px-2 dropdown-item\" (click)=\"editNodeText()\">Edit Name</div>\r\n\t</div>\r\n</div>\r\n\r\n<slick-confirm-dialog #deleteNodeConfirmRef>\r\n\tAre you sure you want to delete {{deleteNodeName}}?\r\n</slick-confirm-dialog>" }]
|
|
265
|
+
}], ctorParameters: function () { return []; }, propDecorators: { nodes: [{
|
|
266
|
+
type: Input
|
|
267
|
+
}], nodesChange: [{
|
|
268
|
+
type: Output
|
|
269
|
+
}], showRootNode: [{
|
|
270
|
+
type: Input
|
|
271
|
+
}], rootNodeUuid: [{
|
|
272
|
+
type: Input
|
|
273
|
+
}], expandOnClick: [{
|
|
274
|
+
type: Input
|
|
275
|
+
}], onNodeSelected: [{
|
|
276
|
+
type: Output
|
|
277
|
+
}], onNodeChanged: [{
|
|
278
|
+
type: Output
|
|
279
|
+
}], onNodeAdded: [{
|
|
280
|
+
type: Output
|
|
281
|
+
}], onNodeDeleted: [{
|
|
282
|
+
type: Output
|
|
283
|
+
}], slickTreeViewRef: [{
|
|
284
|
+
type: ViewChild,
|
|
285
|
+
args: ["slickTreeViewRef", { static: true }]
|
|
286
|
+
}], contextMenuRef: [{
|
|
287
|
+
type: ViewChild,
|
|
288
|
+
args: ["contextMenuRef"]
|
|
289
|
+
}], deleteNodeConfirmRef: [{
|
|
290
|
+
type: ViewChild,
|
|
291
|
+
args: ["deleteNodeConfirmRef"]
|
|
292
|
+
}] } });
|
|
293
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stdHJlZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLXRyZWUtdmlldy9zbGljay10cmVlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stdHJlZS12aWV3L3NsaWNrLXRyZWUtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsTUFBTSxFQUFFLFlBQVksRUFBcUIsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQzNJLE9BQU8sRUFBdUIsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQStCLHlCQUF5QixFQUFFLE1BQU0scURBQXFELENBQUM7Ozs7O0FBRTdILE1BQU0seUJBQXlCO0lBQzlCLFlBQVksSUFBeUIsRUFBRSxLQUFhO1FBQ25ELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUV6QixJQUFJLENBQUMsV0FBVyxHQUFH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QUVSLElBQUksSUFBSSxDQUFDLFdBQVc7WUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMsV0FBVztZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7c0lBdlVXLHNCQUFzQjswSEFBdEIsc0JBQXNCLGlzQkNwQ25DLDh4RUEwQnVCOzJGRFVWLHNCQUFzQjtrQkFKbEMsU0FBUzsrQkFDQyxpQkFBaUI7MEVBSWxCLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNFLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBRTBDLGdCQUFnQjtzQkFBaEUsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2xCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUNRLG9CQUFvQjtzQkFBdEQsU0FBUzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSVNsaWNrVHJlZU5vZGVNb2RlbCwgU2xpY2tUcmVlTm9kZU1vZGVsIH0gZnJvbSAnLi9zbGljay10cmVlLW5vZGUubW9kZWwnO1xyXG5pbXBvcnQgeyBTbGlja1NsZWVwU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay1zbGVlcC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNsaWNrVXRpbHNTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLXV0aWxzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2xpY2tDb25maXJtRGlhbG9nQ29tcG9uZW50LCBTbGlja0NvbmZpcm1EaWFsb2dSZXN1bHRzIH0gZnJvbSAnLi4vc2xpY2stY29uZmlybS1kaWFsb2cvc2xpY2stY29uZmlybS1kaWFsb2cubW9kdWxlJztcclxuXHJcbmNsYXNzIFNsaWNrVHJlZVZpZXdEaXNwbGF5TW9kZWwge1xyXG5cdGNvbnN0cnVjdG9yKG5vZGU6IElTbGlja1RyZWVOb2RlTW9kZWwsIGxldmVsOiBudW1iZXIpIHtcclxuXHRcdHRoaXMudXVpZCA9IG5vZGUudXVpZDtcclxuXHRcdHRoaXMucGFyZW50VXVpZCA9IG5vZGUucGFyZW50VXVpZDtcclxuXHRcdHRoaXMubm9kZSA9IG5vZGU7XHJcblx0XHR0aGlzLnRleHQgPSBub2RlLnRleHQ7XHJcblx0XHR0aGlzLmxldmVsID0gbGV2ZWw7XHJcblx0XHR0aGlzLmV4cGFuZGVkID0gbm9kZS5leHBhbmRlZDtcclxuXHRcdHRoaXMuZWRpdGluZ1RleHQgPSBmYWxzZTtcclxuXHJcblx0XHR0aGlzLmluZGVudEFycmF5ID0gW107XHJcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGV2ZWw7IGkrKylcclxuXHRcdFx0dGhpcy5pbmRlbnRBcnJheS5wdXNoKHRydWUpO1xyXG5cdH1cclxuXHJcblx0bm9kZTogSVNsaWNrVHJlZU5vZGVNb2RlbDtcclxuXHR1dWlkOiBzdHJpbmc7XHJcblx0dGV4dDogc3RyaW5nO1xyXG5cdHBhcmVudFV1aWQ6IHN0cmluZztcclxuXHRsZXZlbDogbnVtYmVyO1xyXG5cdGluZGVudEFycmF5OiBib29sZWFuW107XHJcblx0ZXhwYW5kZWQ6IGJvb2xlYW47XHJcblx0aGFzQ2hpbGROb2RlczogYm9vbGVhbjtcclxuXHRlZGl0aW5nVGV4dDogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdzbGljay10cmVlLXZpZXcnLFxyXG5cdHRlbXBsYXRlVXJsOiAnc2xpY2stdHJlZS12aWV3LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tUcmVlVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cdEBJbnB1dCgpIG5vZGVzOiBJU2xpY2tUcmVlTm9kZU1vZGVsW107XHJcblx0QE91dHB1dCgpIG5vZGVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVNsaWNrVHJlZU5vZGVNb2RlbFtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRASW5wdXQoKSBzaG93Um9vdE5vZGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cdEBJbnB1dCgpIHJvb3ROb2RlVXVpZDogc3RyaW5nO1xyXG5cdEBJbnB1dCgpIGV4cGFuZE9uQ2xpY2s6IGJvb2xlYW4gPSB0cnVlO1xyXG5cdEBPdXRwdXQoKSBvbk5vZGVTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SVNsaWNrVHJlZU5vZGVNb2RlbD4oKTtcclxuXHRAT3V0cHV0KCkgb25Ob2RlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SVNsaWNrVHJlZU5vZGVNb2RlbD4oKTtcclxuXHRAT3V0cHV0KCkgb25Ob2RlQWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElTbGlja1RyZWVOb2RlTW9kZWw+KCk7XHJcblx0QE91dHB1dCgpIG9uTm9kZURlbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElTbGlja1RyZWVOb2RlTW9kZWxbXT4oKTtcclxuXHJcblx0QFZpZXdDaGlsZChcInNsaWNrVHJlZVZpZXdSZWZcIiwgeyBzdGF0aWM6IHRydWUgfSkgc2xpY2tUcmVlVmlld1JlZjogRWxlbWVudFJlZjtcclxuXHRAVmlld0NoaWxkKFwiY29udGV4dE1lbnVSZWZcIikgY29udGV4dE1lbnVSZWY6IEVsZW1lbnRSZWY7XHJcblx0QFZpZXdDaGlsZChcImRlbGV0ZU5vZGVDb25maXJtUmVmXCIpIGRlbGV0ZU5vZGVDb25maXJtUmVmOiBTbGlja0NvbmZpcm1EaWFsb2dDb21wb25lbnQ7XHJcblxyXG5cdGZuRG9jdW1lbnRDbGljayA9IChlKSA9PiB0aGlzLmRvY3VtZW50Q2xpY2soZSk7XHJcblx0Zm5Db250ZXh0TWVudSA9IChlKSA9PiB0aGlzLmNvbnRleHRNZW51KGUpO1xyXG5cclxuXHRjb250ZXh0Tm9kZVV1aWQ6IHN0cmluZztcclxuXHJcblx0dXVpZDogc3RyaW5nID0gU2xpY2tVdGlsc1NlcnZpY2UubmV3R3VpZCgpO1xyXG5cdGRpc3BsYXlOb2RlczogU2xpY2tUcmVlVmlld0Rpc3BsYXlNb2RlbFtdO1xyXG5cdHNlbGVjdGVkVXVpZDogc3RyaW5nO1xyXG5cdG5ld1V1aWQ6IHN0cmluZyA9IG51bGw7XHJcblx0ZGVsZXRlTm9kZU5hbWU6IHN0cmluZztcclxuXHJcblx0Y29udGV4dE1lbnVTaG93QWRkOiBib29sZWFuO1xyXG5cdGNvbnRleHRNZW51U2hvd0RlbGV0ZTogYm9vbGVhbjtcclxuXHRjb250ZXh0TWVudVNob3dFZGl0VGV4dDogYm9vbGVhbjtcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7IH1cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHRkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1xyXG5cdFx0dGhpcy5zbGlja1RyZWVWaWV3UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNvbnRleHRtZW51XCIsIHRoaXMuZm5Db250ZXh0TWVudSwgdHJ1ZSk7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLmZuRG9jdW1lbnRDbGljaywgdHJ1ZSk7XHJcblx0XHR0aGlzLnNsaWNrVHJlZVZpZXdSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY29udGV4dG1lbnVcIiwgdGhpcy5mbkNvbnRleHRNZW51LCB0cnVlKTtcclxuXHR9XHJcblxyXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuXHRcdHRoaXMuZXhwYW5kT25DbGljayA9ICh0aGlzLmV4cGFuZE9uQ2xpY2sudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSAnZmFsc2UnKSA/IGZhbHNlIDogdHJ1ZTtcclxuXHRcdHRoaXMuc2hvd1Jvb3ROb2RlID0gKHRoaXMuc2hvd1Jvb3ROb2RlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhbHNlJykgPyBmYWxzZSA6IHRydWU7XHJcblx0XHR0aGlzLnJvb3ROb2RlVXVpZCA9IHRoaXMucm9vdE5vZGVVdWlkIHx8IG51bGw7XHJcblxyXG5cdFx0aWYgKGNoYW5nZXMubm9kZXMpXHJcblx0XHRcdHRoaXMucmVmcmVzaERpc3BsYXkoKTtcclxuXHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFzeW5jIGRvY3VtZW50Q2xpY2soZTogTW91c2VFdmVudCkge1xyXG5cdFx0aWYgKGUudGFyZ2V0ICYmIFNsaWNrVXRpbHNTZXJ2aWNlLmNoZWNrUGFyZW50Q2xhc3NFeGlzdHMoPEhUTUxFbGVtZW50PmUudGFyZ2V0LCBcInNsaWNrLXRyZWUtdmlld19ub2RlLXRleHQtZWRpdFwiKSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGlmIChlLnRhcmdldCAmJiBTbGlja1V0aWxzU2VydmljZS5jaGVja1BhcmVudENsYXNzRXhpc3RzKDxIVE1MRWxlbWVudD5lLnRhcmdldCwgXCJzbGljay10cmVlLXZpZXdfY29udGV4dC1tZW51XCIpKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgY29udGV4dE1lbnVFbGVtZW50ID0gPEhUTUxFbGVtZW50PnRoaXMuY29udGV4dE1lbnVSZWYubmF0aXZlRWxlbWVudDtcclxuXHRcdGNvbnRleHRNZW51RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwibWVudS12aXNpYmxlXCIpO1xyXG5cdFx0Y29udGV4dE1lbnVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJtZW51LWhpZGRlblwiKTtcclxuXHJcblx0XHR0aGlzLnByb2Nlc3NOZXdOb2RlKCk7XHJcblxyXG5cdFx0dGhpcy5kaXNwbGF5Tm9kZXMgPSB0aGlzLmRpc3BsYXlOb2Rlcy5tYXAoZGlzcGxheU5vZGUgPT4ge1xyXG5cdFx0XHRpZiAoZGlzcGxheU5vZGUuZWRpdGluZ1RleHQpIHtcclxuXHRcdFx0XHRkaXNwbGF5Tm9kZS5lZGl0aW5nVGV4dCA9IGZhbHNlO1xyXG5cdFx0XHRcdGlmICh0aGlzLm9uTm9kZUNoYW5nZWQgJiYgZGlzcGxheU5vZGUudGV4dCAhPT0gZGlzcGxheU5vZGUubm9kZS50ZXh0KSB7XHJcblx0XHRcdFx0XHRkaXNwbGF5Tm9kZS5ub2RlLnRleHQgPSBkaXNwbGF5Tm9kZS50ZXh0O1xyXG5cdFx0XHRcdFx0dGhpcy5vbk5vZGVDaGFuZ2VkLmVtaXQoZGlzcGxheU5vZGUubm9kZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRyZXR1cm4gZGlzcGxheU5vZGU7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG9uVGV4dEtleWRvd24oZTogS2V5Ym9hcmRFdmVudCwgZGlzcGxheU5vZGU6IFNsaWNrVHJlZVZpZXdEaXNwbGF5TW9kZWwpIHtcclxuXHRcdC8vIEVzY1xyXG5cdFx0aWYgKGUua2V5Q29kZSA9PT0gMjcpIHtcclxuXHRcdFx0ZGlzcGxheU5vZGUuZWRpdGluZ1RleHQgPSBmYWxzZTtcclxuXHRcdFx0ZGlzcGxheU5vZGUubm9kZS50ZXh0ID0gZGlzcGxheU5vZGUudGV4dDtcclxuXHRcdFx0dGhpcy5wcm9jZXNzTmV3Tm9kZSgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIEVudGVyIG9yIHRhYlxyXG5cdFx0aWYgKGUua2V5Q29kZSA9PT0gMTMgfHwgZS5rZXlDb2RlID09PSA5KSB7XHJcblx0XHRcdGRpc3BsYXlOb2RlLmVkaXRpbmdUZXh0ID0gZmFsc2U7XHJcblx0XHRcdHRoaXMucHJvY2Vzc05ld05vZGUoKTtcclxuXHRcdFx0aWYgKHRoaXMub25Ob2RlQ2hhbmdlZCAmJiBkaXNwbGF5Tm9kZS50ZXh0ICE9PSBkaXNwbGF5Tm9kZS5ub2RlLnRleHQpIHtcclxuXHRcdFx0XHRkaXNwbGF5Tm9kZS5ub2RlLnRleHQgPSBkaXNwbGF5Tm9kZS50ZXh0O1xyXG5cdFx0XHRcdHRoaXMub25Ob2RlQ2hhbmdlZC5lbWl0KGRpc3BsYXlOb2RlLm5vZGUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjb250ZXh0TWVudShlOiBNb3VzZUV2ZW50KSB7XHJcblx0XHRpZiAoIWUgfHwgIWUudGFyZ2V0KVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0aWYgKCFTbGlja1V0aWxzU2VydmljZS5jaGVja1BhcmVudElkRXhpc3RzKDxIVE1MRWxlbWVudD5lLnRhcmdldCwgYHNsaWNrLXRyZWUtdmlld18ke3RoaXMudXVpZH1gKSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IGNvbnRleHROb2RlRWxlbWVudCA9IDxIVE1MRGl2RWxlbWVudD5TbGlja1V0aWxzU2VydmljZS5maW5kUGFyZW50KDxIVE1MRWxlbWVudD5lLnRhcmdldCwgXCJzbGljay10cmVlLXZpZXctbm9kZVwiKTtcclxuXHRcdGlmICghY29udGV4dE5vZGVFbGVtZW50KVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuXHRcdHRoaXMuY29udGV4dE5vZGVVdWlkID0gY29udGV4dE5vZGVFbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtdXVpZFwiKTtcclxuXHJcblx0XHRjb25zdCBub2RlID0gdGhpcy5ub2Rlcy5maW5kKHggPT4geC51dWlkID09PSB0aGlzLmNvbnRleHROb2RlVXVpZCk7XHJcblx0XHR0aGlzLmNvbnRleHRNZW51U2hvd0FkZCA9IG5vZGUuY2FuQWRkQ2hpbGRyZW47XHJcblx0XHR0aGlzLmNvbnRleHRNZW51U2hvd0RlbGV0ZSA9IG5vZGUuY2FuRGVsZXRlO1xyXG5cdFx0dGhpcy5jb250ZXh0TWVudVNob3dFZGl0VGV4dCA9IG5vZGUuY2FuRWRpdFRleHQ7XHJcblxyXG5cdFx0Ly8gSWYgdGhlcmUncyBub3RoaW5nIHRvIGRvLCBkb24ndCBldmVuIHNob3cgdGhlIGNvbnRleHQgbWVudVxyXG5cdFx0aWYgKHRoaXMuY29udGV4dE1lbnVTaG93QWRkID09PSBmYWxzZSAmJiB0aGlzLmNvbnRleHRNZW51U2hvd0RlbGV0ZSA9PT0gZmFsc2UgJiYgdGhpcy5jb250ZXh0TWVudVNob3dFZGl0VGV4dCA9PT0gZmFsc2UpXHJcblx0XHRcdHJldHVybjtcclxuXHJcblx0XHRjb25zdCBjb250ZXh0TWVudUVsZW1lbnQgPSA8SFRNTEVsZW1lbnQ+dGhpcy5jb250ZXh0TWVudVJlZi5uYXRpdmVFbGVtZW50O1xyXG5cdFx0Y29uc3QgdG9wID0gKGNvbnRleHROb2RlRWxlbWVudC5vZmZzZXRUb3AgKyBjb250ZXh0Tm9kZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IC0gNSk7XHJcblxyXG5cdFx0Y29uc3QgaW5kZW50YXRpb25FbGVtZW50ID0gPEhUTUxEaXZFbGVtZW50PmNvbnRleHROb2RlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLnNsaWNrLXRyZWUtdmlld19pbmRlbnRhdGlvblwiKTtcclxuXHRcdGNvbnN0IGljb25FbGVtZW50ID0gPEhUTUxEaXZFbGVtZW50PmNvbnRleHROb2RlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLnNsaWNrLXRyZWUtdmlld19pY29uXCIpO1xyXG5cdFx0Y29uc3QgaW5kZW50YXRpb25XaWR0aCA9IChpbmRlbnRhdGlvbkVsZW1lbnQpID8gaW5kZW50YXRpb25FbGVtZW50Lm9mZnNldFdpZHRoIDogMDtcclxuXHRcdGNvbnN0IGljb25XaWR0aCA9IChpY29uRWxlbWVudCkgPyBpY29uRWxlbWVudC5vZmZzZXRXaWR0aCA6IDA7XHJcblx0XHRjb25zdCBsZWZ0ID0gaW5kZW50YXRpb25XaWR0aCArIGljb25XaWR0aCArIDI7XHJcblxyXG5cdFx0Y29udGV4dE1lbnVFbGVtZW50LnN0eWxlLnRvcCA9IHRvcCArIFwicHhcIjtcclxuXHRcdGNvbnRleHRNZW51RWxlbWVudC5zdHlsZS5sZWZ0ID0gbGVmdCArIFwicHhcIjtcclxuXHRcdGNvbnRleHRNZW51RWxlbWVudC5jbGFzc0xpc3QuYWRkKFwibWVudS12aXNpYmxlXCIpO1xyXG5cdFx0Y29udGV4dE1lbnVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJtZW51LWhpZGRlblwiKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIGFkZE5vZGUoKSB7XHJcblx0XHQvLyBIaWRlIHRoZSBjb250ZXh0IG1lbnVcclxuXHRcdGNvbnN0IGNvbnRleHRNZW51RWxlbWVudCA9IDxIVE1MRWxlbWVudD50aGlzLmNvbnRleHRNZW51UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcblx0XHRjb250ZXh0TWVudUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcIm1lbnUtdmlzaWJsZVwiKTtcclxuXHRcdGNvbnRleHRNZW51RWxlbWVudC5jbGFzc0xpc3QuYWRkKFwibWVudS1oaWRkZW5cIik7XHJcblxyXG5cdFx0aWYgKCF0aGlzLmNvbnRleHROb2RlVXVpZClcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IHBhcmVudE5vZGVJZHggPSB0aGlzLm5vZGVzLmZpbmRJbmRleCh4ID0+IHgudXVpZCA9PT0gdGhpcy5jb250ZXh0Tm9kZVV1aWQpO1xyXG5cdFx0Y29uc3QgcGFyZW50Tm9kZSA9IHRoaXMubm9kZXNbcGFyZW50Tm9kZUlkeF1cclxuXHRcdC8vIFNpbmNlIHdlIHdhbnQgdG8gYWRkIHRoaXMgb25lIHRvIHRoZSB0b3AsIHBhc3MgbnVsbCBhcyB0aGUgcGFyZW50XHJcblx0XHR2YXIgbmV3Tm9kZSA9IG5ldyBTbGlja1RyZWVOb2RlTW9kZWwobnVsbCwgXCJOZXcgRm9sZGVyXCIpO1xyXG5cdFx0bmV3Tm9kZS5wYXJlbnRVdWlkID0gcGFyZW50Tm9kZS51dWlkO1xyXG5cdFx0cGFyZW50Tm9kZS5leHBhbmRlZCA9IHRydWU7XHJcblx0XHR0aGlzLm5vZGVzLnNwbGljZShwYXJlbnROb2RlSWR4LCAwLCBuZXdOb2RlKTtcclxuXHJcblx0XHR0aGlzLnJlZnJlc2hEaXNwbGF5KCk7XHJcblxyXG5cdFx0Y29uc3QgZGlzcGxheU5vZGUgPSB0aGlzLmRpc3BsYXlOb2Rlcy5maW5kKHggPT4geC51dWlkID09PSBuZXdOb2RlLnV1aWQpO1xyXG5cdFx0dGhpcy5lZGl0VGV4dChkaXNwbGF5Tm9kZSk7XHJcblxyXG5cdFx0dGhpcy5uZXdVdWlkID0gbmV3Tm9kZS51dWlkO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZGVsZXRlTm9kZSgpIHtcclxuXHRcdC8vIEhpZGUgdGhlIGNvbnRleHQgbWVudVxyXG5cdFx0Y29uc3QgY29udGV4dE1lbnVFbGVtZW50ID0gPEhUTUxFbGVtZW50PnRoaXMuY29udGV4dE1lbnVSZWYubmF0aXZlRWxlbWVudDtcclxuXHRcdGNvbnRleHRNZW51RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwibWVudS12aXNpYmxlXCIpO1xyXG5cdFx0Y29udGV4dE1lbnVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJtZW51LWhpZGRlblwiKTtcclxuXHJcblx0XHRpZiAoIXRoaXMuY29udGV4dE5vZGVVdWlkKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0Y29uc3Qgbm9kZSA9IHRoaXMubm9kZXMuZmluZCh4ID0+IHgudXVpZCA9PT0gdGhpcy5jb250ZXh0Tm9kZVV1aWQpO1xyXG5cclxuXHRcdHRoaXMuZGVsZXRlTm9kZU5hbWUgPSBub2RlLnRleHQ7XHJcblxyXG5cdFx0Y29uc3QgY29uZmlybVJlc3VsdCA9IGF3YWl0IHRoaXMuZGVsZXRlTm9kZUNvbmZpcm1SZWYuY29uZmlybSgpO1xyXG5cclxuXHRcdGlmIChjb25maXJtUmVzdWx0ID09PSBTbGlja0NvbmZpcm1EaWFsb2dSZXN1bHRzLkNhbmNlbClcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IHJlbW92ZWROb2RlcyA9IHRoaXMuZGVsZXRlUmVjdXJzaXZlKG5vZGUpO1xyXG5cclxuXHRcdHRoaXMucmVmcmVzaERpc3BsYXkoKTtcclxuXHJcblx0XHRpZiAodGhpcy5vbk5vZGVEZWxldGVkKVxyXG5cdFx0XHR0aGlzLm9uTm9kZURlbGV0ZWQuZW1pdChyZW1vdmVkTm9kZXMpO1xyXG5cclxuXHRcdGlmICh0aGlzLm5vZGVzQ2hhbmdlKSBcclxuXHRcdFx0dGhpcy5ub2Rlc0NoYW5nZS5lbWl0KHRoaXMubm9kZXMpO1x0XHRcclxuXHR9XHJcblxyXG5cdGVkaXROb2RlVGV4dCgpIHtcclxuXHRcdC8vIEhpZGUgdGhlIGNvbnRleHQgbWVudVxyXG5cdFx0Y29uc3QgY29udGV4dE1lbnVFbGVtZW50ID0gPEhUTUxFbGVtZW50PnRoaXMuY29udGV4dE1lbnVSZWYubmF0aXZlRWxlbWVudDtcclxuXHRcdGNvbnRleHRNZW51RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwibWVudS12aXNpYmxlXCIpO1xyXG5cdFx0Y29udGV4dE1lbnVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJtZW51LWhpZGRlblwiKTtcclxuXHJcblx0XHRpZiAoIXRoaXMuY29udGV4dE5vZGVVdWlkKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgZGlzcGxheU5vZGUgPSB0aGlzLmRpc3BsYXlOb2Rlcy5maW5kKHggPT4geC51dWlkID09PSB0aGlzLmNvbnRleHROb2RlVXVpZCk7XHJcblx0XHR0aGlzLmVkaXRUZXh0KGRpc3BsYXlOb2RlKTtcclxuXHJcblx0XHRpZiAodGhpcy5ub2Rlc0NoYW5nZSkgXHJcblx0XHRcdHRoaXMubm9kZXNDaGFuZ2UuZW1pdCh0aGlzLm5vZGVzKTtcdFx0XHJcblx0fVxyXG5cclxuXHRzZWxlY3ROb2RlKGRpc3BsYXlOb2RlOiBTbGlja1RyZWVWaWV3RGlzcGxheU1vZGVsKSB7XHJcblx0XHRpZiAodGhpcy5zZWxlY3RlZFV1aWQgPT09IGRpc3BsYXlOb2RlLnV1aWQpXHJcblx0XHRcdHJldHVybjtcclxuXHJcblx0XHR0aGlzLnNlbGVjdGVkVXVpZCA9IGRpc3BsYXlOb2RlLnV1aWQ7XHJcblx0XHRpZiAoZGlzcGxheU5vZGUubm9kZS5leHBhbmRPbkNsaWNrID09PSB0cnVlKVxyXG5cdFx0XHR0aGlzLmV4cGFuZE5vZGUoZGlzcGxheU5vZGUpO1xyXG5cclxuXHRcdGlmICh0aGlzLm9uTm9kZVNlbGVjdGVkKVxyXG5cdFx0XHR0aGlzLm9uTm9kZVNlbGVjdGVkLmVtaXQoZGlzcGxheU5vZGUubm9kZSk7XHJcblx0fVxyXG5cclxuXHRleHBhbmROb2RlKGRpc3BsYXlOb2RlOiBTbGlja1RyZWVWaWV3RGlzcGxheU1vZGVsKSB7XHJcblx0XHRkaXNwbGF5Tm9kZS5ub2RlLmV4cGFuZGVkID0gdHJ1ZTtcclxuXHRcdHRoaXMucmVmcmVzaERpc3BsYXkoKTtcclxuXHR9XHJcblxyXG5cdGNvbGxhcHNlTm9kZShkaXNwbGF5Tm9kZTogU2xpY2tUcmVlVmlld0Rpc3BsYXlNb2RlbCkge1xyXG5cdFx0ZGlzcGxheU5vZGUubm9kZS5leHBhbmRlZCA9IGZhbHNlO1xyXG5cdFx0dGhpcy5yZWZyZXNoRGlzcGxheSgpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZWRpdFRleHQoZGlzcGxheU5vZGU6IFNsaWNrVHJlZVZpZXdEaXNwbGF5TW9kZWwpIHtcclxuXHRcdGlmICghZGlzcGxheU5vZGUubm9kZS5jYW5FZGl0VGV4dClcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGRpc3BsYXlOb2RlLmVkaXRpbmdUZXh0ID0gdHJ1ZTtcclxuXHJcblx0XHRhd2FpdCBTbGlja1NsZWVwU2VydmljZS5zbGVlcCgpO1xyXG5cdFx0Y29uc3QgdGV4dGJveCA9IDxIVE1MSW5wdXRFbGVtZW50PmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC5zbGljay10cmVlLXZpZXdfbm9kZS10ZXh0LWVkaXRfJHtkaXNwbGF5Tm9kZS51dWlkfWApO1xyXG5cdFx0aWYgKHRleHRib3gpIHtcclxuXHRcdFx0dGV4dGJveC5mb2N1cygpO1xyXG5cdFx0XHR0ZXh0Ym94LnNlbGVjdCgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSByZWZyZXNoRGlzcGxheSgpIHtcclxuXHRcdHRoaXMuZGlzcGxheU5vZGVzID0gW107XHJcblxyXG5cdFx0aWYgKCF0aGlzLm5vZGVzIHx8IHRoaXMubm9kZXMubGVuZ3RoID09PSAwKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0bGV0IHJvb3ROb2RlOiBJU2xpY2tUcmVlTm9kZU1vZGVsO1xyXG5cdFx0aWYgKHRoaXMucm9vdE5vZGVVdWlkKVxyXG5cdFx0XHRyb290Tm9kZSA9IHRoaXMubm9kZXMuZmluZCh4ID0+IHgudXVpZCA9PT0gdGhpcy5yb290Tm9kZVV1aWQpO1xyXG5cdFx0ZWxzZVxyXG5cdFx0XHRyb290Tm9kZSA9IHRoaXMubm9kZXMuZmluZCh4ID0+IHgucGFyZW50VXVpZCA9PT0gbnVsbCk7XHJcblx0XHQvLyBBbHdheXMgZXhwYW5kIHRoZSByb290IG5vZGVcclxuXHRcdHJvb3ROb2RlLmV4cGFuZGVkID0gdHJ1ZTtcclxuXHJcblx0XHQvLyBJZiB3ZSBhcmVuJ3Qgc2hvd2luZyB0aGUgcm9vdCBub2RlLCBzdGFydCBhdCAtMSBmb3IgdGhlIGluZGVudCBsZXZlbFxyXG5cdFx0dGhpcy5wb3B1bGF0ZURpc3BsYXlOb2Rlcyhyb290Tm9kZSwgKHRoaXMuc2hvd1Jvb3ROb2RlKSA/IDAgOiAtMSk7XHJcblxyXG5cdFx0aWYgKHRoaXMuc2hvd1Jvb3ROb2RlID09PSBmYWxzZSkgXHJcblx0XHRcdHRoaXMuZGlzcGxheU5vZGVzID0gdGhpcy5kaXNwbGF5Tm9kZXMuZmlsdGVyKHggPT4geC5wYXJlbnRVdWlkICE9PSBudWxsKTtcdFx0XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHBvcHVsYXRlRGlzcGxheU5vZGVzKG5vZGU6IElTbGlja1RyZWVOb2RlTW9kZWwsIGxldmVsOiBudW1iZXIpIHtcclxuXHRcdGlmIChsZXZlbCA+PSAxMDApIHtcclxuXHRcdFx0Y29uc29sZS5lcnJvcihcIkV4Y2VlZWRlZCBtYXggb2YgMTAwIGxldmVscyBkZWVwLiAgUG9zc2libGUgaW5maW5pdGUgcmVjdXJzaW9uLlwiKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGRpc3BsYXlOb2RlID0gbmV3IFNsaWNrVHJlZVZpZXdEaXNwbGF5TW9kZWwobm9kZSwgbGV2ZWwpO1xyXG5cclxuXHRcdGlmIChub2RlLmV4cGFuZE9uQ2xpY2sgPT09IG51bGwgfHwgbm9kZS5leHBhbmRPbkNsaWNrID09PSB1bmRlZmluZWQpXHJcblx0XHRcdG5vZGUuZXhwYW5kT25DbGljayA9IHRoaXMuZXhwYW5kT25DbGljaztcclxuXHJcblx0XHRpZiAoZGlzcGxheU5vZGUucGFyZW50VXVpZCA9PT0gbnVsbClcclxuXHRcdFx0ZGlzcGxheU5vZGUubm9kZS5jYW5EZWxldGUgPSBmYWxzZTtcclxuXHJcblx0XHRpZiAoZGlzcGxheU5vZGUudXVpZCA9PT0gdGhpcy5uZXdVdWlkKSBcclxuXHRcdFx0ZGlzcGxheU5vZGUuZWRpdGluZ1RleHQgPSB0cnVlO1xyXG5cdFx0XHJcblx0XHR0aGlzLmRpc3BsYXlOb2Rlcy5wdXNoKGRpc3BsYXlOb2RlKTtcclxuXHJcblx0XHRjb25zdCBjaGlsZE5vZGVzID0gdGhpcy5ub2Rlcy5maWx0ZXIoeCA9PiB4LnBhcmVudFV1aWQgPT09IG5vZGUudXVpZCkgfHwgW107XHJcblx0XHRkaXNwbGF5Tm9kZS5oYXNDaGlsZE5vZGVzID0gKGNoaWxkTm9kZXMubGVuZ3RoID4gMCk7XHJcblxyXG5cdFx0aWYgKG5vZGUuZXhwYW5kZWQgPT09IHRydWUpXHJcblx0XHRcdGNoaWxkTm9kZXMuZm9yRWFjaChjaGlsZE5vZGUgPT4ge1xyXG5cdFx0XHRcdGlmICghY2hpbGROb2RlLmhpZGRlbilcclxuXHRcdFx0XHRcdHRoaXMucG9wdWxhdGVEaXNwbGF5Tm9kZXMoY2hpbGROb2RlLCBsZXZlbCArIDEpXHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBkZWxldGVSZWN1cnNpdmUobm9kZTogSVNsaWNrVHJlZU5vZGVNb2RlbCk6IElTbGlja1RyZWVOb2RlTW9kZWxbXSB7XHJcblx0XHRsZXQgcmVtb3ZlZE5vZGVzOiBJU2xpY2tUcmVlTm9kZU1vZGVsW10gPSBbXTtcclxuXHJcblx0XHRjb25zdCBjaGlsZE5vZGVzID0gdGhpcy5ub2Rlcy5maWx0ZXIoeCA9PiB4LnBhcmVudFV1aWQgPT09IG5vZGUudXVpZCkgfHwgW107XHJcblxyXG5cdFx0Y2hpbGROb2Rlcy5mb3JFYWNoKGNoaWxkTm9kZSA9PiB7XHJcblx0XHRcdHJlbW92ZWROb2RlcyA9IHJlbW92ZWROb2Rlcy5jb25jYXQodGhpcy5kZWxldGVSZWN1cnNpdmUoY2hpbGROb2RlKSlcclxuXHRcdH0pO1xyXG5cclxuXHRcdHJlbW92ZWROb2Rlcy5wdXNoKG5vZGUpO1xyXG5cclxuXHRcdHRoaXMubm9kZXMgPSB0aGlzLm5vZGVzLmZpbHRlcih4ID0+IHgudXVpZCAhPT0gbm9kZS51dWlkKTtcclxuXHJcblx0XHRyZXR1cm4gcmVtb3ZlZE5vZGVzO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBwcm9jZXNzTmV3Tm9kZSgpIHtcclxuXHRcdGlmICghdGhpcy5uZXdVdWlkKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgbmV3Tm9kZSA9IHRoaXMubm9kZXMuZmluZCh4ID0+IHgudXVpZCA9PT0gdGhpcy5uZXdVdWlkKTtcclxuXHRcdGNvbnN0IGRpc3BsYXlOb2RlID0gdGhpcy5kaXNwbGF5Tm9kZXMuZmluZCh4ID0+IHgudXVpZCA9PSB0aGlzLm5ld1V1aWQpO1xyXG5cdFx0Ly8gRG8gdGhpcyBzbyB0aGF0IHdlIGRvbid0IHRyaWdnZXIgdGhlIG5vZGUgdXBkYXRlXHJcblx0XHQgbmV3Tm9kZS50ZXh0ID0gZGlzcGxheU5vZGUudGV4dDtcclxuXHJcblx0XHR0aGlzLm5ld1V1aWQgPSBudWxsO1xyXG5cclxuXHRcdGlmICghbmV3Tm9kZSkgXHJcblx0XHRcdHJldHVybjtcdFx0XHJcblxyXG5cdFx0aWYgKHRoaXMub25Ob2RlQWRkZWQpXHJcblx0XHRcdHRoaXMub25Ob2RlQWRkZWQuZW1pdChuZXdOb2RlKTtcclxuXHJcblx0XHRpZiAodGhpcy5ub2Rlc0NoYW5nZSlcclxuXHRcdFx0dGhpcy5ub2Rlc0NoYW5nZS5lbWl0KHRoaXMubm9kZXMpO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2ICNzbGlja1RyZWVWaWV3UmVmIGlkPVwic2xpY2stdHJlZS12aWV3X3t7dXVpZH19XCIgY2xhc3M9XCJzbGljay10cmVlLXZpZXcgcG9zaXRpb24tcmVsYXRpdmUgcHItMlwiPlxyXG5cdDxkaXYgY2xhc3M9XCJkLWZsZXggc2xpY2stdHJlZS12aWV3LW5vZGVcIiBbYXR0ci5kYXRhLXV1aWRdPVwiZGlzcGxheU5vZGUudXVpZFwiICpuZ0Zvcj1cImxldCBkaXNwbGF5Tm9kZSBvZiBkaXNwbGF5Tm9kZXNcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJzbGljay10cmVlLXZpZXdfaW5kZW50YXRpb25cIj5cclxuXHRcdFx0PGkgKm5nRm9yPVwibGV0IGluZGVudCBvZiBkaXNwbGF5Tm9kZS5pbmRlbnRBcnJheVwiIGNsYXNzPVwiZmFyIGZhLWNhcmV0LXJpZ2h0IG1yLTFcIiBzdHlsZT1cIm9wYWNpdHk6IDBcIj48L2k+XHJcblx0XHRcdDxpICpuZ0lmPVwiIWRpc3BsYXlOb2RlLmhhc0NoaWxkTm9kZXNcIiBjbGFzcz1cImZhciBmYS1jYXJldC1yaWdodCBtci0xXCIgc3R5bGU9XCJvcGFjaXR5OiAwXCI+PC9pPlxyXG5cdFx0XHQ8aSAqbmdJZj1cImRpc3BsYXlOb2RlLmhhc0NoaWxkTm9kZXMgJiYgIWRpc3BsYXlOb2RlLmV4cGFuZGVkXCIgY2xhc3M9XCJmYXIgZmEtY2FyZXQtcmlnaHQgbXItMVwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCIgKGNsaWNrKT1cImV4cGFuZE5vZGUoZGlzcGxheU5vZGUpXCI+PC9pPlxyXG5cdFx0XHQ8aSAqbmdJZj1cImRpc3BsYXlOb2RlLmhhc0NoaWxkTm9kZXMgJiYgZGlzcGxheU5vZGUuZXhwYW5kZWRcIiBjbGFzcz1cImZhciBmYS1jYXJldC1kb3duIG1yLTFcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiIChjbGljayk9XCJjb2xsYXBzZU5vZGUoZGlzcGxheU5vZGUpXCI+PC9pPlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IHB4LTFcIiBbbmdDbGFzc109XCJ7J2JnLXN1Y2Nlc3MgdGV4dC13aGl0ZScgOiBkaXNwbGF5Tm9kZS51dWlkID09PSBzZWxlY3RlZFV1aWQgfVwiPlxyXG5cdFx0XHQ8ZGl2ICpuZ0lmPVwiZGlzcGxheU5vZGUubm9kZS5pY29uQ2xhc3MgfHwgZGlzcGxheU5vZGUubm9kZS5pY29uVXJsXCIgY2xhc3M9XCJtci0xIHNsaWNrLXRyZWUtdmlld19pY29uXCI+XHJcblx0XHRcdFx0PGkgKm5nSWY9XCJkaXNwbGF5Tm9kZS5ub2RlLmljb25DbGFzc1wiIFtzdHlsZS5jb2xvcl09XCJkaXNwbGF5Tm9kZS5ub2RlLmljb25Db2xvclwiIFtuZ0NsYXNzXT1cImRpc3BsYXlOb2RlLm5vZGUuaWNvbkNsYXNzXCI+PC9pPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PGRpdiAqbmdJZj1cIiFkaXNwbGF5Tm9kZS5lZGl0aW5nVGV4dFwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCIgKGNsaWNrKT1cInNlbGVjdE5vZGUoZGlzcGxheU5vZGUpXCIgKGRibGNsaWNrKT1cImVkaXRUZXh0KGRpc3BsYXlOb2RlKVwiPnt7ZGlzcGxheU5vZGUudGV4dH19PC9kaXY+XHJcblx0XHRcdDxkaXYgKm5nSWY9XCJkaXNwbGF5Tm9kZS5lZGl0aW5nVGV4dFwiIGNsYXNzPVwic2xpY2stdHJlZS12aWV3X25vZGUtdGV4dC1lZGl0XCI+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgc2xpY2stdHJlZS12aWV3X25vZGUtdGV4dC1lZGl0X3t7ZGlzcGxheU5vZGUudXVpZH19XCIgWyhuZ01vZGVsKV09XCJkaXNwbGF5Tm9kZS50ZXh0XCIgKGtleWRvd24pPVwib25UZXh0S2V5ZG93bigkZXZlbnQsIGRpc3BsYXlOb2RlKVwiIC8+PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHJcblx0PGRpdiAjY29udGV4dE1lbnVSZWYgY2xhc3M9J3NsaWNrLXRyZWUtdmlld19jb250ZXh0LW1lbnUgZHJvcGRvd24tbWVudSBwLTAgc2hvdyBtZW51LWhpZGRlbic+XHJcblx0XHQ8ZGl2ICpuZ0lmPVwiY29udGV4dE1lbnVTaG93QWRkXCIgY2xhc3M9XCJweC0yIGRyb3Bkb3duLWl0ZW1cIiAoY2xpY2spPVwiYWRkTm9kZSgpXCI+QWRkPC9kaXY+XHJcblx0XHQ8ZGl2ICpuZ0lmPVwiY29udGV4dE1lbnVTaG93RGVsZXRlXCIgY2xhc3M9XCJweC0yIGRyb3Bkb3duLWl0ZW1cIiAoY2xpY2spPVwiZGVsZXRlTm9kZSgpXCI+RGVsZXRlPC9kaXY+XHJcblx0XHQ8ZGl2ICpuZ0lmPVwiY29udGV4dE1lbnVTaG93RWRpdFRleHRcIiBjbGFzcz1cInB4LTIgZHJvcGRvd24taXRlbVwiIChjbGljayk9XCJlZGl0Tm9kZVRleHQoKVwiPkVkaXQgTmFtZTwvZGl2PlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxzbGljay1jb25maXJtLWRpYWxvZyAjZGVsZXRlTm9kZUNvbmZpcm1SZWY+XHJcblx0QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB7e2RlbGV0ZU5vZGVOYW1lfX0/XHJcbjwvc2xpY2stY29uZmlybS1kaWFsb2c+Il19
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from "@angular/core";
|
|
3
|
+
import { FormsModule } from "@angular/forms";
|
|
4
|
+
import { SlickConfirmDialogModule } from "../slick-confirm-dialog/slick-confirm-dialog.module";
|
|
5
|
+
import { SlickTreeViewComponent } from "./slick-tree-view.component";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class SlickTreeViewModule {
|
|
8
|
+
}
|
|
9
|
+
/** @nocollapse */ SlickTreeViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTreeViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
|
+
/** @nocollapse */ SlickTreeViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTreeViewModule, declarations: [SlickTreeViewComponent], imports: [CommonModule, FormsModule, SlickConfirmDialogModule], exports: [CommonModule, FormsModule, SlickTreeViewComponent] });
|
|
11
|
+
/** @nocollapse */ SlickTreeViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTreeViewModule, imports: [[CommonModule, FormsModule, SlickConfirmDialogModule], CommonModule, FormsModule] });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTreeViewModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
imports: [CommonModule, FormsModule, SlickConfirmDialogModule],
|
|
16
|
+
declarations: [SlickTreeViewComponent],
|
|
17
|
+
exports: [CommonModule, FormsModule, SlickTreeViewComponent]
|
|
18
|
+
}]
|
|
19
|
+
}] });
|
|
20
|
+
export { SlickTreeViewComponent };
|
|
21
|
+
export { SlickTreeNodeModel } from "./slick-tree-node.model";
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stdHJlZS12aWV3Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLXRyZWUtdmlldy9zbGljay10cmVlLXZpZXcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFPckUsTUFBTSxPQUFPLG1CQUFtQjs7bUlBQW5CLG1CQUFtQjtvSUFBbkIsbUJBQW1CLGlCQUhoQixzQkFBc0IsYUFEM0IsWUFBWSxFQUFFLFdBQVcsRUFBRSx3QkFBd0IsYUFFbkQsWUFBWSxFQUFFLFdBQVcsRUFBRSxzQkFBc0I7b0lBRS9DLG1CQUFtQixZQUp0QixDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsd0JBQXdCLENBQUMsRUFFcEQsWUFBWSxFQUFFLFdBQVc7MkZBRXZCLG1CQUFtQjtrQkFML0IsUUFBUTttQkFBQztvQkFDVCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLHdCQUF3QixDQUFDO29CQUM5RCxZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDdEMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsQ0FBQztpQkFDNUQ7O0FBR0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLENBQUE7QUFDakMsT0FBTyxFQUF1QixrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBTbGlja0NvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tIFwiLi4vc2xpY2stY29uZmlybS1kaWFsb2cvc2xpY2stY29uZmlybS1kaWFsb2cubW9kdWxlXCI7XHJcbmltcG9ydCB7IFNsaWNrVHJlZVZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi9zbGljay10cmVlLXZpZXcuY29tcG9uZW50XCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBTbGlja0NvbmZpcm1EaWFsb2dNb2R1bGVdLFxyXG5cdGRlY2xhcmF0aW9uczogW1NsaWNrVHJlZVZpZXdDb21wb25lbnRdLFxyXG5cdGV4cG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBTbGlja1RyZWVWaWV3Q29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tUcmVlVmlld01vZHVsZSB7IH1cclxuXHJcbmV4cG9ydCB7IFNsaWNrVHJlZVZpZXdDb21wb25lbnQgfVxyXG5leHBvcnQgeyBJU2xpY2tUcmVlTm9kZU1vZGVsLCBTbGlja1RyZWVOb2RlTW9kZWwgfSBmcm9tIFwiLi9zbGljay10cmVlLW5vZGUubW9kZWxcIjtcclxuIl19
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { Directive, Input, Output, EventEmitter, forwardRef } from "@angular/core";
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
3
|
+
import { SlickSleepService } from "../utils/slick-sleep.service";
|
|
4
|
+
import { SlickUtilsService } from "../utils/slick-utils.service";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class SlickTypeAheadDirective {
|
|
7
|
+
constructor(el) {
|
|
8
|
+
this.el = el;
|
|
9
|
+
this.slickTypeAheadChange = new EventEmitter();
|
|
10
|
+
this.fnKeyDown = (e) => this.keyDown(e);
|
|
11
|
+
this.propagateChange = (_) => { };
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
this.el.nativeElement.addEventListener('keydown', this.fnKeyDown);
|
|
15
|
+
}
|
|
16
|
+
ngOnChanges() {
|
|
17
|
+
}
|
|
18
|
+
ngOnDestroy() {
|
|
19
|
+
this.el.nativeElement.removeEventListener('keydown', this.fnKeyDown);
|
|
20
|
+
}
|
|
21
|
+
async keyDown(e) {
|
|
22
|
+
if (e.altKey || e.ctrlKey)
|
|
23
|
+
return;
|
|
24
|
+
var valid = (e.keyCode > 47 && e.keyCode < 58) || // number keys
|
|
25
|
+
e.keyCode === 32 || e.keyCode === 13 ||
|
|
26
|
+
e.keyCode === 8 || e.keyCode === 9 || // spacebar, return & tab key(s) (if you want to allow carriage returns)
|
|
27
|
+
(e.keyCode > 64 && e.keyCode < 91) || // letter keys
|
|
28
|
+
(e.keyCode > 95 && e.keyCode < 112) || // numpad keys
|
|
29
|
+
(e.keyCode > 185 && e.keyCode < 193) || // ;=,-./` (in order)
|
|
30
|
+
(e.keyCode > 218 && e.keyCode < 223); // [\]' (in order)
|
|
31
|
+
if (!valid) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
e.stopPropagation();
|
|
35
|
+
await SlickSleepService.sleep();
|
|
36
|
+
// Tab/enter
|
|
37
|
+
if (e.which === 9) {
|
|
38
|
+
this.propagateChange(this.suggestedItem);
|
|
39
|
+
this.createSelection(this.el.nativeElement, this.el.nativeElement.value, 0);
|
|
40
|
+
if (this.slickTypeAheadChange) {
|
|
41
|
+
if (this.filteredItems && this.filteredItems.length > 0)
|
|
42
|
+
this.slickTypeAheadChange.emit(this.filteredItems[0]);
|
|
43
|
+
else
|
|
44
|
+
this.slickTypeAheadChange.emit(this.el.nativeElement.value);
|
|
45
|
+
}
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
if (e.which === 8) {
|
|
49
|
+
if (this.el.nativeElement.value.length > 0) {
|
|
50
|
+
var cursorLoc = this.el.nativeElement.selectionStart;
|
|
51
|
+
if (cursorLoc > 0) {
|
|
52
|
+
var valSubstr = this.el.nativeElement.value.substring(0, cursorLoc - 1);
|
|
53
|
+
valSubstr += this.el.nativeElement.value.substring(cursorLoc);
|
|
54
|
+
this.el.nativeElement.value = valSubstr;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (!this.el.nativeElement.value)
|
|
59
|
+
return;
|
|
60
|
+
// Esc
|
|
61
|
+
if (e.which === 27) {
|
|
62
|
+
this.filteredItems = null;
|
|
63
|
+
this.suggestedItem = null;
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
this.suggestedItem = null;
|
|
67
|
+
let val = this.el.nativeElement.value.toLowerCase();
|
|
68
|
+
if (!this.slickTypeAheadField && !this.slickTypeAheadFields) {
|
|
69
|
+
this.filteredItems = this.slickTypeAhead.filter(x => x.toLowerCase().indexOf(val) === 0);
|
|
70
|
+
if (this.filteredItems && this.filteredItems.length > 0)
|
|
71
|
+
this.suggestedItem = this.filteredItems[0];
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
if (this.slickTypeAheadField) {
|
|
75
|
+
this.filteredItems = this.slickTypeAhead.filter(x => ((SlickUtilsService.getDeepObject(x, this.slickTypeAheadField)) ? SlickUtilsService.getDeepObject(x, this.slickTypeAheadField).toLowerCase().indexOf(val) === 0 : false));
|
|
76
|
+
if (this.filteredItems && this.filteredItems.length > 0)
|
|
77
|
+
this.suggestedItem = SlickUtilsService.getDeepObject(this.filteredItems[0], this.slickTypeAheadField);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
let fields = this.slickTypeAheadFields.split("|");
|
|
81
|
+
this.filteredItems = null;
|
|
82
|
+
fields.forEach(field => {
|
|
83
|
+
if (!this.filteredItems || this.filteredItems.length === 0) {
|
|
84
|
+
this.filteredItems = this.slickTypeAhead.filter(x => ((SlickUtilsService.getDeepObject(x, field)) ? SlickUtilsService.getDeepObject(x, field).toLowerCase().indexOf(val) === 0 : false));
|
|
85
|
+
if (this.filteredItems && this.filteredItems.length > 0) {
|
|
86
|
+
this.suggestedItem = SlickUtilsService.getDeepObject(this.filteredItems[0], field);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (this.suggestedItem) {
|
|
93
|
+
var len = this.el.nativeElement.value.length;
|
|
94
|
+
this.el.nativeElement.value = this.suggestedItem;
|
|
95
|
+
this.createSelection(this.el.nativeElement, len, this.suggestedItem.length);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
this.suggestedItem = this.el.nativeElement.value;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
createSelection(field, start, end) {
|
|
102
|
+
if (field.createTextRange) {
|
|
103
|
+
var selRange = field.createTextRange();
|
|
104
|
+
selRange.collapse(true);
|
|
105
|
+
selRange.moveStart('character', start);
|
|
106
|
+
selRange.moveEnd('character', end);
|
|
107
|
+
selRange.select();
|
|
108
|
+
field.focus();
|
|
109
|
+
}
|
|
110
|
+
else if (field.setSelectionRange) {
|
|
111
|
+
field.focus();
|
|
112
|
+
field.setSelectionRange(start, end);
|
|
113
|
+
}
|
|
114
|
+
else if (typeof field.selectionStart != 'undefined') {
|
|
115
|
+
field.selectionStart = start;
|
|
116
|
+
field.selectionEnd = end;
|
|
117
|
+
field.focus();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// this is the initial value set to the component
|
|
121
|
+
writeValue(obj) {
|
|
122
|
+
}
|
|
123
|
+
// registers 'fn' that will be fired when changes are made
|
|
124
|
+
// this is how we emit the changes back to the form
|
|
125
|
+
registerOnChange(fn) {
|
|
126
|
+
this.propagateChange = fn;
|
|
127
|
+
}
|
|
128
|
+
// not used, used for touch input
|
|
129
|
+
registerOnTouched() { }
|
|
130
|
+
}
|
|
131
|
+
/** @nocollapse */ SlickTypeAheadDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTypeAheadDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
132
|
+
/** @nocollapse */ SlickTypeAheadDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.3", type: SlickTypeAheadDirective, selector: "[slick-type-ahead]", inputs: { slickTypeAhead: ["slick-type-ahead", "slickTypeAhead"], slickTypeAheadField: ["slick-type-ahead-field-id", "slickTypeAheadField"], slickTypeAheadFields: ["slick-type-ahead-field-ids", "slickTypeAheadFields"] }, outputs: { slickTypeAheadChange: "slick-type-ahead-change" }, providers: [
|
|
133
|
+
{
|
|
134
|
+
provide: NG_VALUE_ACCESSOR,
|
|
135
|
+
useExisting: forwardRef((() => SlickTypeAheadDirective)),
|
|
136
|
+
multi: true,
|
|
137
|
+
}
|
|
138
|
+
], usesOnChanges: true, ngImport: i0 });
|
|
139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTypeAheadDirective, decorators: [{
|
|
140
|
+
type: Directive,
|
|
141
|
+
args: [{
|
|
142
|
+
selector: '[slick-type-ahead]',
|
|
143
|
+
providers: [
|
|
144
|
+
{
|
|
145
|
+
provide: NG_VALUE_ACCESSOR,
|
|
146
|
+
useExisting: forwardRef((() => SlickTypeAheadDirective)),
|
|
147
|
+
multi: true,
|
|
148
|
+
}
|
|
149
|
+
]
|
|
150
|
+
}]
|
|
151
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { slickTypeAhead: [{
|
|
152
|
+
type: Input,
|
|
153
|
+
args: ["slick-type-ahead"]
|
|
154
|
+
}], slickTypeAheadField: [{
|
|
155
|
+
type: Input,
|
|
156
|
+
args: ["slick-type-ahead-field-id"]
|
|
157
|
+
}], slickTypeAheadFields: [{
|
|
158
|
+
type: Input,
|
|
159
|
+
args: ["slick-type-ahead-field-ids"]
|
|
160
|
+
}], slickTypeAheadChange: [{
|
|
161
|
+
type: Output,
|
|
162
|
+
args: ["slick-type-ahead-change"]
|
|
163
|
+
}] } });
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stdHlwZS1haGVhZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9zbGljay10eXBlLWFoZWFkL3NsaWNrLXR5cGUtYWhlYWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQTRDLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBV2pFLE1BQU0sT0FBTyx1QkFBdUI7SUFXbkMsWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFQQyx5QkFBb0IsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV4RixjQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUF1STNDLG9CQUFlLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQWhJbEMsQ0FBQztJQUVELFFBQVE7UUFDUCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxXQUFXO0lBQ1gsQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFD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QztZQUM3QixLQUFLLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQztZQUN6QixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDZDtJQUNGLENBQUM7SUFJRCxpREFBaUQ7SUFDMUMsVUFBVSxDQUFDLEdBQVE7SUFDMUIsQ0FBQztJQUVELDBEQUEwRDtJQUMxRCxtREFBbUQ7SUFDNUMsZ0JBQWdCLENBQUMsRUFBTztRQUM5QixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsaUNBQWlDO0lBQzFCLGlCQUFpQixLQUFLLENBQUM7O3VJQTFKbEIsdUJBQXVCOzJIQUF2Qix1QkFBdUIsd1VBUHhCO1FBQ1Y7WUFDQyxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLEVBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLEVBQUM7WUFDdEQsS0FBSyxFQUFFLElBQUk7U0FDWDtLQUFDOzJGQUVTLHVCQUF1QjtrQkFUbkMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixTQUFTLEVBQUU7d0JBQ1Y7NEJBQ0MsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsd0JBQXdCLEVBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNYO3FCQUFDO2lCQUNIO2lHQUUyQixjQUFjO3NCQUF4QyxLQUFLO3VCQUFDLGtCQUFrQjtnQkFDVyxtQkFBbUI7c0JBQXRELEtBQUs7dUJBQUMsMkJBQTJCO2dCQUNHLG9CQUFvQjtzQkFBeEQsS0FBSzt1QkFBQyw0QkFBNEI7Z0JBQ0Esb0JBQW9CO3NCQUF0RCxNQUFNO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95LCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFNsaWNrU2xlZXBTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLXNsZWVwLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2xpY2tVdGlsc1NlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvc2xpY2stdXRpbHMuc2VydmljZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcblx0c2VsZWN0b3I6ICdbc2xpY2stdHlwZS1haGVhZF0nLFxyXG5cdHByb3ZpZGVyczogW1xyXG5cdFx0e1xyXG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2xpY2tUeXBlQWhlYWREaXJlY3RpdmUpLFxyXG5cdFx0XHRtdWx0aTogdHJ1ZSxcclxuXHRcdH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbGlja1R5cGVBaGVhZERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cdEBJbnB1dChcInNsaWNrLXR5cGUtYWhlYWRcIikgc2xpY2tUeXBlQWhlYWQ6IGFueVtdO1xyXG5cdEBJbnB1dChcInNsaWNrLXR5cGUtYWhlYWQtZmllbGQtaWRcIikgc2xpY2tUeXBlQWhlYWRGaWVsZDogc3RyaW5nO1xyXG5cdEBJbnB1dChcInNsaWNrLXR5cGUtYWhlYWQtZmllbGQtaWRzXCIpIHNsaWNrVHlwZUFoZWFkRmllbGRzOiBzdHJpbmc7XHJcblx0QE91dHB1dChcInNsaWNrLXR5cGUtYWhlYWQtY2hhbmdlXCIpIHNsaWNrVHlwZUFoZWFkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcblx0cHJpdmF0ZSBmbktleURvd24gPSAoZSkgPT4gdGhpcy5rZXlEb3duKGUpO1xyXG5cclxuXHRwcml2YXRlIGZpbHRlcmVkSXRlbXM6IHN0cmluZ1tdO1xyXG5cdHByaXZhdGUgc3VnZ2VzdGVkSXRlbTogc3RyaW5nO1xyXG5cclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7XHJcblxyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHR0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuZm5LZXlEb3duKTtcclxuXHR9XHJcblxyXG5cdG5nT25DaGFuZ2VzKCkge1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHR0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuZm5LZXlEb3duKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIGtleURvd24oZTogS2V5Ym9hcmRFdmVudCkge1xyXG5cdFx0aWYgKGUuYWx0S2V5IHx8IGUuY3RybEtleSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdHZhciB2YWxpZCA9XHJcblx0XHRcdChlLmtleUNvZGUgPiA0NyAmJiBlLmtleUNvZGUgPCA1OCkgfHwgLy8gbnVtYmVyIGtleXNcclxuXHRcdFx0ZS5rZXlDb2RlID09PSAzMiB8fCBlLmtleUNvZGUgPT09IDEzIHx8XHJcblx0XHRcdGUua2V5Q29kZSA9PT0gOCB8fCBlLmtleUNvZGUgPT09IDkgfHwgLy8gc3BhY2ViYXIsIHJldHVybiAmIHRhYiBrZXkocykgKGlmIHlvdSB3YW50IHRvIGFsbG93IGNhcnJpYWdlIHJldHVybnMpXHJcblx0XHRcdChlLmtleUNvZGUgPiA2NCAmJiBlLmtleUNvZGUgPCA5MSkgfHwgLy8gbGV0dGVyIGtleXNcclxuXHRcdFx0KGUua2V5Q29kZSA+IDk1ICYmIGUua2V5Q29kZSA8IDExMikgfHwgLy8gbnVtcGFkIGtleXNcclxuXHRcdFx0KGUua2V5Q29kZSA+IDE4NSAmJiBlLmtleUNvZGUgPCAxOTMpIHx8IC8vIDs9LC0uL2AgKGluIG9yZGVyKVxyXG5cdFx0XHQoZS5rZXlDb2RlID4gMjE4ICYmIGUua2V5Q29kZSA8IDIyMyk7ICAgLy8gW1xcXScgKGluIG9yZGVyKVxyXG5cclxuXHRcdGlmICghdmFsaWQpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG5cdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoKTtcclxuXHRcdC8vIFRhYi9lbnRlclxyXG5cdFx0aWYgKGUud2hpY2ggPT09IDkpIHtcclxuXHRcdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5zdWdnZXN0ZWRJdGVtKTtcclxuXHRcdFx0dGhpcy5jcmVhdGVTZWxlY3Rpb24odGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUsIDApO1xyXG5cclxuXHRcdFx0aWYgKHRoaXMuc2xpY2tUeXBlQWhlYWRDaGFuZ2UpIHtcclxuXHRcdFx0XHRpZiAodGhpcy5maWx0ZXJlZEl0ZW1zICYmIHRoaXMuZmlsdGVyZWRJdGVtcy5sZW5ndGggPiAwKVxyXG5cdFx0XHRcdFx0dGhpcy5zbGlja1R5cGVBaGVhZENoYW5nZS5lbWl0KHRoaXMuZmlsdGVyZWRJdGVtc1swXSlcclxuXHRcdFx0XHRlbHNlXHJcblx0XHRcdFx0XHR0aGlzLnNsaWNrVHlwZUFoZWFkQ2hhbmdlLmVtaXQodGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChlLndoaWNoID09PSA4KSB7XHJcblx0XHRcdGlmICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdHZhciBjdXJzb3JMb2MgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XHJcblx0XHRcdFx0aWYgKGN1cnNvckxvYyA+IDApIHtcclxuXHRcdFx0XHRcdHZhciB2YWxTdWJzdHIgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUuc3Vic3RyaW5nKDAsIGN1cnNvckxvYyAtIDEpO1xyXG5cdFx0XHRcdFx0dmFsU3Vic3RyICs9IHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZS5zdWJzdHJpbmcoY3Vyc29yTG9jKTtcclxuXHRcdFx0XHRcdHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbFN1YnN0cjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIXRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdC8vIEVzY1xyXG5cdFx0aWYgKGUud2hpY2ggPT09IDI3KSB7XHJcblx0XHRcdHRoaXMuZmlsdGVyZWRJdGVtcyA9IG51bGw7XHJcblx0XHRcdHRoaXMuc3VnZ2VzdGVkSXRlbSA9IG51bGw7XHJcblxyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5zdWdnZXN0ZWRJdGVtID0gbnVsbDtcclxuXHRcdGxldCB2YWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUudG9Mb3dlckNhc2UoKTtcclxuXHRcdFxyXG5cdFx0aWYgKCF0aGlzLnNsaWNrVHlwZUFoZWFkRmllbGQgJiYgIXRoaXMuc2xpY2tUeXBlQWhlYWRGaWVsZHMpIHtcclxuXHRcdFx0dGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5zbGlja1R5cGVBaGVhZC5maWx0ZXIoeCA9PiB4LnRvTG93ZXJDYXNlKCkuaW5kZXhPZih2YWwpID09PSAwKTtcclxuXHJcblx0XHRcdGlmICh0aGlzLmZpbHRlcmVkSXRlbXMgJiYgdGhpcy5maWx0ZXJlZEl0ZW1zLmxlbmd0aCA+IDApXHJcblx0XHRcdFx0dGhpcy5zdWdnZXN0ZWRJdGVtID0gdGhpcy5maWx0ZXJlZEl0ZW1zWzBdO1xyXG5cdFx0fVxyXG5cdFx0ZWxzZSB7XHJcblx0XHRcdGlmICh0aGlzLnNsaWNrVHlwZUFoZWFkRmllbGQpIHtcclxuXHRcdFx0XHR0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLnNsaWNrVHlwZUFoZWFkLmZpbHRlcih4ID0+ICgoU2xpY2tVdGlsc1NlcnZpY2UuZ2V0RGVlcE9iamVjdCh4LCB0aGlzLnNsaWNrVHlwZUFoZWFkRmllbGQpKSA/IFNsaWNrVXRpbHNTZXJ2aWNlLmdldERlZXBPYmplY3QoeCwgdGhpcy5zbGlja1R5cGVBaGVhZEZpZWxkKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodmFsKSA9PT0gMCA6IGZhbHNlKSlcclxuXHJcblx0XHRcdFx0aWYgKHRoaXMuZmlsdGVyZWRJdGVtcyAmJiB0aGlzLmZpbHRlcmVkSXRlbXMubGVuZ3RoID4gMClcclxuXHRcdFx0XHRcdHRoaXMuc3VnZ2VzdGVkSXRlbSA9IFNsaWNrVXRpbHNTZXJ2aWNlLmdldERlZXBPYmplY3QodGhpcy5maWx0ZXJlZEl0ZW1zWzBdLCB0aGlzLnNsaWNrVHlwZUFoZWFkRmllbGQpXHJcblx0XHRcdH1cclxuXHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0bGV0IGZpZWxkcyA9IHRoaXMuc2xpY2tUeXBlQWhlYWRGaWVsZHMuc3BsaXQoXCJ8XCIpO1xyXG5cdFx0XHRcdHRoaXMuZmlsdGVyZWRJdGVtcyA9IG51bGw7XHJcblx0XHRcdFx0ZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKCF0aGlzLmZpbHRlcmVkSXRlbXMgfHwgdGhpcy5maWx0ZXJlZEl0ZW1zLmxlbmd0aCA9PT0gMCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLnNsaWNrVHlwZUFoZWFkLmZpbHRlcih4ID0+ICgoU2xpY2tVdGlsc1NlcnZpY2UuZ2V0RGVlcE9iamVjdCh4LCBmaWVsZCkpID8gU2xpY2tVdGlsc1NlcnZpY2UuZ2V0RGVlcE9iamVjdCh4LCBmaWVsZCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKHZhbCkgPT09IDAgOiBmYWxzZSkpXHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLmZpbHRlcmVkSXRlbXMgJiYgdGhpcy5maWx0ZXJlZEl0ZW1zLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnN1Z2dlc3RlZEl0ZW0gPSBTbGlja1V0aWxzU2VydmljZS5nZXREZWVwT2JqZWN0KHRoaXMuZmlsdGVyZWRJdGVtc1swXSwgZmllbGQpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5zdWdnZXN0ZWRJdGVtKSB7XHJcblx0XHRcdHZhciBsZW4gPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUubGVuZ3RoO1xyXG5cdFx0XHR0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLnN1Z2dlc3RlZEl0ZW07XHJcblx0XHRcdHRoaXMuY3JlYXRlU2VsZWN0aW9uKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgbGVuLCB0aGlzLnN1Z2dlc3RlZEl0ZW0ubGVuZ3RoKVxyXG5cdFx0fVxyXG5cdFx0ZWxzZSB7XHJcblx0XHRcdHRoaXMuc3VnZ2VzdGVkSXRlbSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgY3JlYXRlU2VsZWN0aW9uKGZpZWxkOiBhbnksIHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKSB7XHJcblx0XHRpZiAoZmllbGQuY3JlYXRlVGV4dFJhbmdlKSB7XHJcblx0XHRcdHZhciBzZWxSYW5nZSA9IGZpZWxkLmNyZWF0ZVRleHRSYW5nZSgpO1xyXG5cdFx0XHRzZWxSYW5nZS5jb2xsYXBzZSh0cnVlKTtcclxuXHRcdFx0c2VsUmFuZ2UubW92ZVN0YXJ0KCdjaGFyYWN0ZXInLCBzdGFydCk7XHJcblx0XHRcdHNlbFJhbmdlLm1vdmVFbmQoJ2NoYXJhY3RlcicsIGVuZCk7XHJcblx0XHRcdHNlbFJhbmdlLnNlbGVjdCgpO1xyXG5cdFx0XHRmaWVsZC5mb2N1cygpO1xyXG5cdFx0fSBlbHNlIGlmIChmaWVsZC5zZXRTZWxlY3Rpb25SYW5nZSkge1xyXG5cdFx0XHRmaWVsZC5mb2N1cygpO1xyXG5cdFx0XHRmaWVsZC5zZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kKTtcclxuXHRcdH0gZWxzZSBpZiAodHlwZW9mIGZpZWxkLnNlbGVjdGlvblN0YXJ0ICE9ICd1bmRlZmluZWQnKSB7XHJcblx0XHRcdGZpZWxkLnNlbGVjdGlvblN0YXJ0ID0gc3RhcnQ7XHJcblx0XHRcdGZpZWxkLnNlbGVjdGlvbkVuZCA9IGVuZDtcclxuXHRcdFx0ZmllbGQuZm9jdXMoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuXHJcblx0Ly8gdGhpcyBpcyB0aGUgaW5pdGlhbCB2YWx1ZSBzZXQgdG8gdGhlIGNvbXBvbmVudFxyXG5cdHB1YmxpYyB3cml0ZVZhbHVlKG9iajogYW55KSB7XHJcblx0fVxyXG5cclxuXHQvLyByZWdpc3RlcnMgJ2ZuJyB0aGF0IHdpbGwgYmUgZmlyZWQgd2hlbiBjaGFuZ2VzIGFyZSBtYWRlXHJcblx0Ly8gdGhpcyBpcyBob3cgd2UgZW1pdCB0aGUgY2hhbmdlcyBiYWNrIHRvIHRoZSBmb3JtXHJcblx0cHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG5cdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuXHR9XHJcblxyXG5cdC8vIG5vdCB1c2VkLCB1c2VkIGZvciB0b3VjaCBpbnB1dFxyXG5cdHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZCgpIHsgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { SlickTypeAheadDirective } from "./slick-type-ahead.directive";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class SlickTypeAheadModule {
|
|
5
|
+
}
|
|
6
|
+
/** @nocollapse */ SlickTypeAheadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTypeAheadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
/** @nocollapse */ SlickTypeAheadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTypeAheadModule, declarations: [SlickTypeAheadDirective], exports: [SlickTypeAheadDirective] });
|
|
8
|
+
/** @nocollapse */ SlickTypeAheadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTypeAheadModule, imports: [[]] });
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTypeAheadModule, decorators: [{
|
|
10
|
+
type: NgModule,
|
|
11
|
+
args: [{
|
|
12
|
+
imports: [],
|
|
13
|
+
declarations: [SlickTypeAheadDirective],
|
|
14
|
+
exports: [SlickTypeAheadDirective]
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
export { SlickTypeAheadDirective };
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stdHlwZS1haGVhZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9zbGljay10eXBlLWFoZWFkL3NsaWNrLXR5cGUtYWhlYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBT3ZFLE1BQU0sT0FBTyxvQkFBb0I7O29JQUFwQixvQkFBb0I7cUlBQXBCLG9CQUFvQixpQkFIakIsdUJBQXVCLGFBQzVCLHVCQUF1QjtxSUFFckIsb0JBQW9CLFlBSnZCLEVBQUU7MkZBSUMsb0JBQW9CO2tCQUxoQyxRQUFRO21CQUFDO29CQUNULE9BQU8sRUFBRSxFQUFFO29CQUNYLFlBQVksRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUN2QyxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDbEM7O0FBRUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFNsaWNrVHlwZUFoZWFkRGlyZWN0aXZlIH0gZnJvbSBcIi4vc2xpY2stdHlwZS1haGVhZC5kaXJlY3RpdmVcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcblx0aW1wb3J0czogW10sXHJcblx0ZGVjbGFyYXRpb25zOiBbU2xpY2tUeXBlQWhlYWREaXJlY3RpdmVdLFxyXG5cdGV4cG9ydHM6IFtTbGlja1R5cGVBaGVhZERpcmVjdGl2ZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNsaWNrVHlwZUFoZWFkTW9kdWxlIHsgfVxyXG5leHBvcnQgeyBTbGlja1R5cGVBaGVhZERpcmVjdGl2ZSB9XHJcbiJdfQ==
|